Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
dpdk: allow interface name to be specified from startup.conf
[vpp.git]
/
src
/
vnet
/
ipip
/
ipip.c
diff --git
a/src/vnet/ipip/ipip.c
b/src/vnet/ipip/ipip.c
index
c39d27d
..
9c58e52
100644
(file)
--- a/
src/vnet/ipip/ipip.c
+++ b/
src/vnet/ipip/ipip.c
@@
-138,6
+138,10
@@
ipip6_fixup (vlib_main_t * vm, ip_adjacency_t * adj, vlib_buffer_t * b,
ip6_header_t *ip6;
const ipip_tunnel_t *t = data;
ip6_header_t *ip6;
const ipip_tunnel_t *t = data;
+ /* Must set locally originated otherwise we're not allowed to
+ fragment the packet later */
+ b->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
+
ip6 = vlib_buffer_get_current (b);
ip6->payload_length =
clib_host_to_net_u16 (vlib_buffer_length_in_chain (vm, b) -
ip6 = vlib_buffer_get_current (b);
ip6->payload_length =
clib_host_to_net_u16 (vlib_buffer_length_in_chain (vm, b) -
@@
-355,7
+359,7
@@
ipip_tunnel_t *
ipip_tunnel_db_find_by_sw_if_index (u32 sw_if_index)
{
ipip_main_t *gm = &ipip_main;
ipip_tunnel_db_find_by_sw_if_index (u32 sw_if_index)
{
ipip_main_t *gm = &ipip_main;
- if (vec_len (gm->tunnel_index_by_sw_if_index) < sw_if_index)
+ if (vec_len (gm->tunnel_index_by_sw_if_index) <
=
sw_if_index)
return NULL;
u32 ti = gm->tunnel_index_by_sw_if_index[sw_if_index];
if (ti == ~0)
return NULL;
u32 ti = gm->tunnel_index_by_sw_if_index[sw_if_index];
if (ti == ~0)
@@
-481,7
+485,7
@@
ipip_add_tunnel (ipip_transport_t transport,
return VNET_API_ERROR_IF_ALREADY_EXISTS;
pool_get_aligned (gm->tunnels, t, CLIB_CACHE_LINE_BYTES);
return VNET_API_ERROR_IF_ALREADY_EXISTS;
pool_get_aligned (gm->tunnels, t, CLIB_CACHE_LINE_BYTES);
- memset (t, 0, sizeof (*t));
+
clib_
memset (t, 0, sizeof (*t));
/* Reconcile the real dev_instance and a possible requested instance */
u32 t_idx = t - gm->tunnels; /* tunnel index (or instance) */
/* Reconcile the real dev_instance and a possible requested instance */
u32 t_idx = t - gm->tunnels; /* tunnel index (or instance) */
@@
-526,10
+530,8
@@
ipip_add_tunnel (ipip_transport_t transport,
hi->min_packet_bytes = 64 + sizeof (ip6_header_t);
}
hi->min_packet_bytes = 64 + sizeof (ip6_header_t);
}
- hi->per_packet_overhead_bytes = /* preamble */ 8 + /* inter frame gap */ 12;
-
/* Standard default ipip MTU. */
/* Standard default ipip MTU. */
-
hi->max_l3_packet_bytes[VLIB_RX] = hi->max_l3_packet_bytes[VLIB_TX] = 9000
;
+
vnet_sw_interface_set_mtu (vnm, sw_if_index, 9000)
;
t->tunnel_src = *src;
t->tunnel_dst = *dst;
t->tunnel_src = *src;
t->tunnel_dst = *dst;
@@
-588,7
+590,7
@@
ipip_init (vlib_main_t * vm)
{
ipip_main_t *gm = &ipip_main;
{
ipip_main_t *gm = &ipip_main;
- memset (gm, 0, sizeof (gm[0]));
+
clib_
memset (gm, 0, sizeof (gm[0]));
gm->vlib_main = vm;
gm->vnet_main = vnet_get_main ();
gm->tunnel_by_key =
gm->vlib_main = vm;
gm->vnet_main = vnet_get_main ();
gm->tunnel_by_key =