From 80e8816b41282ad705aa64790f1e9652f8f36f14 Mon Sep 17 00:00:00 2001 From: "Igor Mikhailov (imichail)" Date: Fri, 4 Nov 2016 20:25:00 -0700 Subject: Restore punt/inject after FIB2.0 The tuntap punt/inject should be enabled for IPv4/6 RX once any vpp interface has an IP address. Change-Id: I4a507b7540b7464ed6d21035ac9b8f9463028c6f Signed-off-by: Igor Mikhailov (imichail) --- vnet/vnet/unix/tuntap.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'vnet') diff --git a/vnet/vnet/unix/tuntap.c b/vnet/vnet/unix/tuntap.c index 43ff06aa9ff..4eab3913780 100644 --- a/vnet/vnet/unix/tuntap.c +++ b/vnet/vnet/unix/tuntap.c @@ -753,6 +753,12 @@ tuntap_ip4_add_del_interface_address (ip4_main_t * im, snprintf (ifr.ifr_name, sizeof(ifr.ifr_name), "%s:%d", tm->tun_name, (int)(ap - tm->subifs)); + /* the tuntap punt/inject is enabled for IPv4 RX so long as + * any vpp interface has an IPv4 address. + * this is also ref counted. + */ + ip4_sw_interface_enable_disable (tm->sw_if_index, !is_delete); + if (! is_delete) { struct sockaddr_in * sin; @@ -856,6 +862,12 @@ tuntap_ip6_add_del_interface_address (ip6_main_t * im, snprintf (ifr.ifr_name, sizeof(ifr.ifr_name), "%s:%d", tm->tun_name, (int)(ap - tm->subifs)); + /* the tuntap punt/inject is enabled for IPv6 RX so long as + * any vpp interface has an IPv6 address. + * this is also ref counted. + */ + ip6_sw_interface_enable_disable (tm->sw_if_index, !is_delete); + if (! is_delete) { int sockfd = socket (AF_INET6, SOCK_STREAM, 0); -- cgit 1.2.3-korg