40 #define IP_FRAG_FLAG_IP4_HEADER 0x01 //Encapsulating IPv4 header 41 #define IP_FRAG_FLAG_IP6_HEADER 0x02 //Encapsulating IPv6 header 43 #define IP4_FRAG_NODE_NAME "ip4-frag" 44 #define IP6_FRAG_NODE_NAME "ip6-frag" 68 #define foreach_ip_frag_error \ 70 _(NONE, "packet fragmented") \ 71 _(SMALL_PACKET, "packet smaller than MTU") \ 72 _(FRAGMENT_SENT, "number of sent fragments") \ 73 _(CANT_FRAGMENT_HEADER, "can't fragment header") \ 74 _(DONT_FRAGMENT_SET, "can't fragment this packet") \ 75 _(MALFORMED, "malformed packet") \ 76 _(MEMORY, "could not allocate buffer") \ 77 _(UNKNOWN, "unknown error") 81 #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
void ip6_frag_do_fragment(vlib_main_t *vm, u32 pi, u32 **buffer, ip_frag_error_t *error)