40 #define IP_FRAG_FLAG_IP4_HEADER 0x01 //Encapsulating IPv4 header 41 #define IP_FRAG_FLAG_IP6_HEADER 0x02 //Encapsulating IPv6 header 42 #define IP_FRAG_FLAG_MPLS_HEADER 0x04 //Encapsulating MPLS header 44 #define IP4_FRAG_NODE_NAME "ip4-frag" 45 #define IP6_FRAG_NODE_NAME "ip6-frag" 71 #define foreach_ip_frag_error \ 73 _(NONE, "packet fragmented") \ 74 _(SMALL_PACKET, "packet smaller than MTU") \ 75 _(FRAGMENT_SENT, "number of sent fragments") \ 76 _(CANT_FRAGMENT_HEADER, "can't fragment header") \ 77 _(DONT_FRAGMENT_SET, "can't fragment this packet") \ 78 _(MALFORMED, "malformed packet") \ 79 _(MEMORY, "could not allocate buffer") \ 80 _(UNKNOWN, "unknown error") 84 #define _(sym,str) IP_FRAG_ERROR_##sym, void ip_frag_set_vnet_buffer(vlib_buffer_t *b, u16 mtu, u8 next_index, u8 flags)
vlib_node_registration_t ip4_frag_node
(constructor) VLIB_REGISTER_NODE (ip4_frag_node)
#define foreach_ip_frag_error
vlib_node_registration_t ip6_frag_node
(constructor) VLIB_REGISTER_NODE (ip6_frag_node)
void ip4_frag_do_fragment(vlib_main_t *vm, u32 pi, u32 **buffer, ip_frag_error_t *error)
struct _vlib_node_registration vlib_node_registration_t
VLIB buffer representation.
void ip6_frag_do_fragment(vlib_main_t *vm, u32 pi, u32 **buffer, ip_frag_error_t *error)