diff options
author | Neale Ranns <nranns@cisco.com> | 2017-10-13 05:15:07 -0700 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-10-14 09:11:42 +0000 |
commit | 054c03ac9c20a5e38121590b83f01fd91f82acf0 (patch) | |
tree | 93ec5f8d85defb3e58d12fdca917a68000dbe6d3 /src/vnet/ip | |
parent | d77275307b6ad6459ecba01912a302fb7dbf0f02 (diff) |
Source Lookup progammable via API
Change-Id: I5d5d4f22b6369d504455a644f73076d772fbcfb4
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/ip')
-rw-r--r-- | src/vnet/ip/ip.api | 4 | ||||
-rw-r--r-- | src/vnet/ip/ip_api.c | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api index df9ce6e615a..f5341667892 100644 --- a/src/vnet/ip/ip.api +++ b/src/vnet/ip/ip.api @@ -370,6 +370,9 @@ autoreply define sw_interface_ip6_set_link_local_address @param is_local - @param is_classify - @param is_multipath - Set to 1 if this is a multipath route, else 0 + @param is_source_lookup - The the path is a deaggregate path (i.e. a lookup + in another table) is the lookup on the packet's + source address or destination. @param not_last - Is last or not last msg in group of multiple add/del msgs @param next_hop_weight - @param dst_address_length - @@ -398,6 +401,7 @@ autoreply define ip_add_del_route u8 is_resolve_host; u8 is_resolve_attached; u8 is_l2_bridged; + u8 is_source_lookup; /* Is last/not-last message in group of multiple add/del messages. */ u8 not_last; u8 next_hop_weight; diff --git a/src/vnet/ip/ip_api.c b/src/vnet/ip/ip_api.c index f3712d3fd29..8a3ceb2a4e9 100644 --- a/src/vnet/ip/ip_api.c +++ b/src/vnet/ip/ip_api.c @@ -830,6 +830,7 @@ add_del_route_t_handler (u8 is_multipath, u8 is_interface_rx, u8 is_rpf_id, u8 is_l2_bridged, + u8 is_source_lookup, u32 fib_index, const fib_prefix_t * prefix, dpo_proto_t next_hop_proto, @@ -877,6 +878,8 @@ add_del_route_t_handler (u8 is_multipath, path_flags |= FIB_ROUTE_PATH_INTF_RX; if (is_rpf_id) path_flags |= FIB_ROUTE_PATH_RPF_ID; + if (is_source_lookup) + path_flags |= FIB_ROUTE_PATH_SOURCE_LOOKUP; if (is_multicast) entry_flags |= FIB_ENTRY_FLAG_MULTICAST; @@ -1076,6 +1079,7 @@ ip4_add_del_route_t_handler (vl_api_ip_add_del_route_t * mp) mp->is_resolve_host, mp->is_resolve_attached, 0, 0, mp->is_l2_bridged, + mp->is_source_lookup, fib_index, &pfx, DPO_PROTO_IP4, &nh, ntohl (mp->next_hop_sw_if_index), @@ -1136,6 +1140,7 @@ ip6_add_del_route_t_handler (vl_api_ip_add_del_route_t * mp) mp->is_resolve_host, mp->is_resolve_attached, 0, 0, mp->is_l2_bridged, + mp->is_source_lookup, fib_index, &pfx, DPO_PROTO_IP6, &nh, ntohl (mp->next_hop_sw_if_index), next_hop_fib_index, |