Locally generated packet go through lookup/load-balance - locally-generated is an...
authorNeale Ranns <[email protected]>
Tue, 29 Nov 2016 14:51:37 +0000 (06:51 -0800)
committerDamjan Marion <[email protected]>
Mon, 5 Dec 2016 09:20:26 +0000 (09:20 +0000)
commitf06aea5c7267cffabc1cc2438510a8fe7784079c
treeb0ded9cd5d10d96b5c416dfc93935c5baca1d475
parent072f8debf21c786ab785ed623229935e0a6cddb6
Locally generated packet go through lookup/load-balance - locally-generated is an attribute of the packet and checked where necessary

Add a flag to the vnet_buffer to indicate a packet is locally originated. Then in the rewrite nodes we can check this flag and not perform the TTL decrement. The switch path cost is expected to be fractions of a clock - the flags will be hot in the cache.
The cehcks are necessary to due the requirements that VPP must be able to emit an IP packet with TTL=255.

Change-Id: Ieb9cf06e34df54fd5c950293de8b665016295c51
Signed-off-by: Neale Ranns <[email protected]>
12 files changed:
vnet/vnet/adj/adj_nbr.c
vnet/vnet/buffer.h
vnet/vnet/fib/fib_types.c
vnet/vnet/ip/icmp4.c
vnet/vnet/ip/ip4_forward.c
vnet/vnet/ip/ip4_source_and_port_range_check.c
vnet/vnet/ip/ip6_forward.c
vnet/vnet/ip/ip6_neighbor.c
vnet/vnet/ip/lookup.h
vnet/vnet/ip/ping.c
vnet/vnet/ip/ping.h
vnet/vnet/map/ip6_map.c