X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fgre%2Finterface.c;h=bb0be865664a70ba9520b2640342c395bd75ca02;hb=d6eed1bb207291e4541f45f229d71358bfb35165;hp=3b566b6ea818ae78021a522ee77d9db01fc833be;hpb=6fdcc3daa40ebfcb793998b6e4527dd6db03cfb7;p=vpp.git diff --git a/src/vnet/gre/interface.c b/src/vnet/gre/interface.c index 3b566b6ea81..bb0be865664 100644 --- a/src/vnet/gre/interface.c +++ b/src/vnet/gre/interface.c @@ -353,7 +353,7 @@ static walk_rc_t gre_tunnel_add_teib_walk (index_t nei, void *ctx) { gre_tunnel_t *t = ctx; - gre_tunnel_key_t key; + gre_tunnel_key_t key = {}; gre_teib_mk_key (t, teib_entry_get (nei), &key); gre_tunnel_db_add (t, &key); @@ -370,7 +370,6 @@ vnet_gre_tunnel_add (vnet_gre_tunnel_add_del_args_t * a, gre_tunnel_t *t; vnet_hw_interface_t *hi; u32 hw_if_index, sw_if_index; - clib_error_t *error; u8 is_ipv6 = a->is_ipv6; gre_tunnel_key_t key; @@ -415,17 +414,16 @@ vnet_gre_tunnel_add (vnet_gre_tunnel_add_del_args_t * a, } else { + vnet_eth_interface_registration_t eir = {}; + /* Default MAC address (d00b:eed0:0000 + sw_if_index) */ u8 address[6] = { 0xd0, 0x0b, 0xee, 0xd0, (u8) (t_idx >> 8), (u8) t_idx }; - error = - ethernet_register_interface (vnm, gre_device_class.index, t_idx, - address, &hw_if_index, 0); - if (error) - { - clib_error_report (error); - return VNET_API_ERROR_INVALID_REGISTRATION; - } + + eir.dev_class_index = gre_device_class.index; + eir.dev_instance = t_idx; + eir.address = address; + hw_if_index = vnet_eth_register_interface (vnm, &eir); } /* Set GRE tunnel interface output node (not used for L3 payload) */ @@ -449,13 +447,13 @@ vnet_gre_tunnel_add (vnet_gre_tunnel_add_del_args_t * a, if (!is_ipv6) { - hi->min_packet_bytes = - 64 + sizeof (gre_header_t) + sizeof (ip4_header_t); + hi->frame_overhead = sizeof (gre_header_t) + sizeof (ip4_header_t); + hi->min_frame_size = hi->frame_overhead + 64; } else { - hi->min_packet_bytes = - 64 + sizeof (gre_header_t) + sizeof (ip6_header_t); + hi->frame_overhead = sizeof (gre_header_t) + sizeof (ip6_header_t); + hi->min_frame_size = hi->frame_overhead + 64; } /* Standard default gre MTU. */