Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
IP load-balance; trace at the end of the node so the flow hash used is displayed
[vpp.git]
/
src
/
vnet
/
ip
/
ip6_forward.c
diff --git
a/src/vnet/ip/ip6_forward.c
b/src/vnet/ip/ip6_forward.c
index
efd5e0d
..
303c4bb
100644
(file)
--- 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",
{
.arc_name = "ip6-unicast",
.node_name = "ip6-policer-classify",
- .runs_before = VNET_FEATURES ("ipsec
-input-ip6
"),
+ .runs_before = VNET_FEATURES ("ipsec
6-input
"),
};
VNET_FEATURE_INIT (ip6_ipsec, static) =
{
.arc_name = "ip6-unicast",
};
VNET_FEATURE_INIT (ip6_ipsec, static) =
{
.arc_name = "ip6-unicast",
- .node_name = "ipsec
-input-ip6
",
+ .node_name = "ipsec
6-input
",
.runs_before = VNET_FEATURES ("l2tp-decap"),
};
.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",
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 ("ipsec
6-output
"),
};
VNET_FEATURE_INIT (ip6_ipsec_output, static) = {
.arc_name = "ip6-output",
};
VNET_FEATURE_INIT (ip6_ipsec_output, static) = {
.arc_name = "ip6-output",
- .node_name = "ipsec
-output-ip6
",
+ .node_name = "ipsec
6-output
",
.runs_before = VNET_FEATURES ("interface-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;
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);
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);
}
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;
}
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_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* */
},
};
/* *INDENT-ON* */
@@
-1566,9
+1567,10
@@
ip6_mtu_check (vlib_buffer_t * b, u16 packet_bytes,
if (is_locally_generated)
{
/* IP fragmentation */
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;
*next = IP6_REWRITE_NEXT_FRAGMENT;
+ *error = IP6_ERROR_MTU_EXCEEDED;
}
else
{
}
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;
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);
}
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;
{
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);
p.ip.ip_version_traffic_class_and_flow_label =
clib_host_to_net_u32 (0x6 << 28);