aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/interface_cli.c
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2017-03-11 05:55:21 -0800
committerFlorin Coras <florin.coras@gmail.com>2017-03-17 15:49:39 +0000
commit4b919a56642ccd0a44920feace872aeb5b7a62cf (patch)
tree17750f4efc80d7863b68f9cd08ab381cd00dd534 /src/vnet/interface_cli.c
parentc60f557590f79b8817382bdd982825b66c4e0a73 (diff)
Attached hosts
allow this config to function: set int ip address loop0 169.254.1.1/32 (the default GW address for attached hosts) set int unnumbered af_packet0 use loop0 ('enable' IP on the host interface) ip route add 192.168.1.1/32 via af_packet0 (where to find the host) repeat for each host and host interface. Inter-host communication is throught the /32 routes. To allow this: 1 - attached host routes have the ATTACHED flag set, so the ARP code accepts then as legitimate sources 2 - unnumbered interfaces inherit the source address from the IP interface Change-Id: Ib66c5f0e848c528f79372813adc3a0c11b50717f Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/interface_cli.c')
-rw-r--r--src/vnet/interface_cli.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/vnet/interface_cli.c b/src/vnet/interface_cli.c
index bd715e4ea4b..ec8530da299 100644
--- a/src/vnet/interface_cli.c
+++ b/src/vnet/interface_cli.c
@@ -864,6 +864,10 @@ set_unnumbered (vlib_main_t * vm,
si->unnumbered_sw_if_index = (u32) ~ 0;
ip4_sw_interface_enable_disable (unnumbered_sw_if_index, 0);
ip6_sw_interface_enable_disable (unnumbered_sw_if_index, 0);
+ ip4_main.lookup_main.if_address_pool_index_by_sw_if_index
+ [unnumbered_sw_if_index] = ~0;
+ ip6_main.lookup_main.if_address_pool_index_by_sw_if_index
+ [unnumbered_sw_if_index] = ~0;
}
else if (is_set)
{
@@ -871,6 +875,14 @@ set_unnumbered (vlib_main_t * vm,
si->unnumbered_sw_if_index = inherit_from_sw_if_index;
ip4_sw_interface_enable_disable (unnumbered_sw_if_index, 1);
ip6_sw_interface_enable_disable (unnumbered_sw_if_index, 1);
+ ip4_main.lookup_main.if_address_pool_index_by_sw_if_index
+ [unnumbered_sw_if_index] =
+ ip4_main.lookup_main.if_address_pool_index_by_sw_if_index
+ [inherit_from_sw_if_index];
+ ip6_main.lookup_main.if_address_pool_index_by_sw_if_index
+ [unnumbered_sw_if_index] =
+ ip6_main.lookup_main.if_address_pool_index_by_sw_if_index
+ [inherit_from_sw_if_index];
}
return 0;