X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fvnet%2Fip%2Fip6_forward.c;h=303c4bbd8e4d052e4f21c8c8c0c42e6478090a05;hb=a71844f27a0be91fcda25b19604d16122ccc3e73;hp=efd5e0d106a977b501b626dc66780acf1fdbbd7f;hpb=e3750671423e70283dd1e60c53ddffdfe651ecbb;p=vpp.git diff --git a/src/vnet/ip/ip6_forward.c b/src/vnet/ip/ip6_forward.c index efd5e0d106a..303c4bbd8e4 100644 --- a/src/vnet/ip/ip6_forward.c +++ b/src/vnet/ip/ip6_forward.c @@ -361,13 +361,13 @@ VNET_FEATURE_INIT (ip6_policer_classify, static) = { .arc_name = "ip6-unicast", .node_name = "ip6-policer-classify", - .runs_before = VNET_FEATURES ("ipsec-input-ip6"), + .runs_before = VNET_FEATURES ("ipsec6-input"), }; VNET_FEATURE_INIT (ip6_ipsec, static) = { .arc_name = "ip6-unicast", - .node_name = "ipsec-input-ip6", + .node_name = "ipsec6-input", .runs_before = VNET_FEATURES ("l2tp-decap"), }; @@ -443,12 +443,12 @@ VNET_FEATURE_ARC_INIT (ip6_output, static) = VNET_FEATURE_INIT (ip6_outacl, static) = { .arc_name = "ip6-output", .node_name = "ip6-outacl", - .runs_before = VNET_FEATURES ("ipsec-output-ip6"), + .runs_before = VNET_FEATURES ("ipsec6-output"), }; VNET_FEATURE_INIT (ip6_ipsec_output, static) = { .arc_name = "ip6-output", - .node_name = "ipsec-output-ip6", + .node_name = "ipsec6-output", .runs_before = VNET_FEATURES ("interface-output"), }; @@ -536,9 +536,6 @@ ip6_load_balance (vlib_main_t * vm, n_left_from = frame->n_vectors; next = node->cached_next_index; - if (node->flags & VLIB_NODE_FLAG_TRACE) - ip6_forward_next_trace (vm, node, frame, VLIB_TX); - while (n_left_from > 0) { vlib_get_next_frame (vm, node, next, to_next, n_left_to_next); @@ -736,6 +733,9 @@ ip6_load_balance (vlib_main_t * vm, vlib_put_next_frame (vm, node, next, n_left_to_next); } + if (node->flags & VLIB_NODE_FLAG_TRACE) + ip6_forward_next_trace (vm, node, frame, VLIB_TX); + return frame->n_vectors; } @@ -1389,6 +1389,7 @@ VLIB_REGISTER_NODE (ip6_local_node, static) = [IP_LOCAL_NEXT_PUNT] = "ip6-punt", [IP_LOCAL_NEXT_UDP_LOOKUP] = "ip6-udp-lookup", [IP_LOCAL_NEXT_ICMP] = "ip6-icmp-input", + [IP_LOCAL_NEXT_REASSEMBLY] = "ip6-reassembly", }, }; /* *INDENT-ON* */ @@ -1566,9 +1567,10 @@ ip6_mtu_check (vlib_buffer_t * b, u16 packet_bytes, if (is_locally_generated) { /* IP fragmentation */ - ip_frag_set_vnet_buffer (b, 0, adj_packet_bytes, - IP6_FRAG_NEXT_IP6_LOOKUP, 0); + ip_frag_set_vnet_buffer (b, adj_packet_bytes, + IP6_FRAG_NEXT_IP6_REWRITE, 0); *next = IP6_REWRITE_NEXT_FRAGMENT; + *error = IP6_ERROR_MTU_EXCEEDED; } else { @@ -2512,8 +2514,8 @@ static clib_error_t * ip6_hop_by_hop_init (vlib_main_t * vm) { ip6_hop_by_hop_main_t *hm = &ip6_hop_by_hop_main; - memset (hm->options, 0, sizeof (hm->options)); - memset (hm->trace, 0, sizeof (hm->trace)); + clib_memset (hm->options, 0, sizeof (hm->options)); + clib_memset (hm->trace, 0, sizeof (hm->trace)); hm->next_override = IP6_LOOKUP_NEXT_POP_HOP_BY_HOP; return (0); } @@ -2647,7 +2649,7 @@ ip6_lookup_init (vlib_main_t * vm) { icmp6_neighbor_solicitation_header_t p; - memset (&p, 0, sizeof (p)); + clib_memset (&p, 0, sizeof (p)); p.ip.ip_version_traffic_class_and_flow_label = clib_host_to_net_u32 (0x6 << 28);