X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fnx-match.h;h=a7441d0b39fcbd36321ec2351de5e54a748f7e60;hb=refs%2Fheads%2Freview;hp=aefcb653bb9a068d681948dcf57162d75ecbc917;hpb=d31f1109f10e5ffb9bf266306b913ebf23781666;p=sliver-openvswitch.git diff --git a/lib/nx-match.h b/lib/nx-match.h index aefcb653b..a7441d0b3 100644 --- a/lib/nx-match.h +++ b/lib/nx-match.h @@ -49,9 +49,15 @@ void nxm_format_reg_load(const struct nx_action_reg_load *, struct ds *); int nxm_check_reg_move(const struct nx_action_reg_move *, const struct flow *); int nxm_check_reg_load(const struct nx_action_reg_load *, const struct flow *); +int nxm_src_check(ovs_be32 src, unsigned int ofs, unsigned int n_bits, + const struct flow *); +int nxm_dst_check(ovs_be32 dst, unsigned int ofs, unsigned int n_bits, + const struct flow *); void nxm_execute_reg_move(const struct nx_action_reg_move *, struct flow *); void nxm_execute_reg_load(const struct nx_action_reg_load *, struct flow *); +void nxm_reg_load(ovs_be32 dst, ovs_be16 ofs_nbits, uint64_t src_data, + struct flow *); int nxm_field_bytes(uint32_t header); int nxm_field_bits(uint32_t header); @@ -95,15 +101,17 @@ nxm_decode_n_bits(ovs_be16 ofs_nbits) * NXM_OF_IP_PROTO 4 2 -- 6 * NXM_OF_IPV6_SRC_W 4 16 16 36 * NXM_OF_IPV6_DST_W 4 16 16 36 - * NXM_OF_TCP_SRC 4 2 -- 6 - * NXM_OF_TCP_DST 4 2 -- 6 + * NXM_OF_ICMP_TYPE 4 1 -- 5 + * NXM_OF_ICMP_CODE 4 1 -- 5 + * NXM_NX_ND_TARGET 4 16 -- 20 + * NXM_NX_ND_SLL 4 6 -- 10 * NXM_NX_REG_W(0) 4 4 4 12 * NXM_NX_REG_W(1) 4 4 4 12 * NXM_NX_REG_W(2) 4 4 4 12 * NXM_NX_REG_W(3) 4 4 4 12 * NXM_NX_TUN_ID_W 4 8 8 20 * ------------------------------------------- - * total 209 + * total 237 * * So this value is conservative. */