aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/ip
diff options
context:
space:
mode:
Diffstat (limited to 'vnet/vnet/ip')
-rw-r--r--vnet/vnet/ip/ip4_forward.c2
-rw-r--r--vnet/vnet/ip/ip6_forward.c2
-rw-r--r--vnet/vnet/ip/lookup.c6
-rw-r--r--vnet/vnet/ip/lookup.h9
4 files changed, 12 insertions, 7 deletions
diff --git a/vnet/vnet/ip/ip4_forward.c b/vnet/vnet/ip/ip4_forward.c
index 04619837469..6bfe1cff2f2 100644
--- a/vnet/vnet/ip/ip4_forward.c
+++ b/vnet/vnet/ip/ip4_forward.c
@@ -998,7 +998,7 @@ ip4_add_interface_routes (u32 sw_if_index,
if (classify_table_index != (u32) ~0)
{
adj->lookup_next_index = IP_LOOKUP_NEXT_CLASSIFY;
- adj->classify_table_index = classify_table_index;
+ adj->classify.table_index = classify_table_index;
}
else
adj->lookup_next_index = IP_LOOKUP_NEXT_LOCAL;
diff --git a/vnet/vnet/ip/ip6_forward.c b/vnet/vnet/ip/ip6_forward.c
index a478bab5fc4..3e8261a05a5 100644
--- a/vnet/vnet/ip/ip6_forward.c
+++ b/vnet/vnet/ip/ip6_forward.c
@@ -930,7 +930,7 @@ ip6_add_interface_routes (vnet_main_t * vnm, u32 sw_if_index,
if (classify_table_index != (u32) ~0)
{
adj->lookup_next_index = IP_LOOKUP_NEXT_CLASSIFY;
- adj->classify_table_index = classify_table_index;
+ adj->classify.table_index = classify_table_index;
}
else
adj->lookup_next_index = IP_LOOKUP_NEXT_LOCAL;
diff --git a/vnet/vnet/ip/lookup.c b/vnet/vnet/ip/lookup.c
index a6b037a3ad9..629c900a6b6 100644
--- a/vnet/vnet/ip/lookup.c
+++ b/vnet/vnet/ip/lookup.c
@@ -132,7 +132,7 @@ ip_add_adjacency (ip_lookup_main_t * lm,
adj[i].rewrite_header.sw_if_index = ~0;
adj[i].explicit_fib_index = ~0;
adj[i].mcast_group_index = ~0;
- adj[i].classify_table_index = ~0;
+ adj[i].classify.table_index = ~0;
adj[i].saved_lookup_next_index = 0;
if (copy_adj)
@@ -958,7 +958,7 @@ u8 * format_ip_adjacency (u8 * s, va_list * args)
break;
case IP_LOOKUP_NEXT_CLASSIFY:
- s = format (s, " table %d", adj->classify_table_index);
+ s = format (s, " table %d", adj->classify.table_index);
default:
break;
@@ -1072,7 +1072,7 @@ static uword unformat_ip_adjacency (unformat_input_t * input, va_list * args)
(void) unformat (input, "%d", &adj->if_address_index);
else if (next == IP_LOOKUP_NEXT_CLASSIFY)
{
- if (!unformat (input, "%d", &adj->classify_table_index))
+ if (!unformat (input, "%d", &adj->classify.table_index))
{
clib_warning ("classify adj must specify table index");
return 0;
diff --git a/vnet/vnet/ip/lookup.h b/vnet/vnet/ip/lookup.h
index 42869350dff..ba242ef5de4 100644
--- a/vnet/vnet/ip/lookup.h
+++ b/vnet/vnet/ip/lookup.h
@@ -129,11 +129,16 @@ typedef struct {
i16 explicit_fib_index;
u16 mcast_group_index;
- /* When classifying, start here */
- u16 classify_table_index;
/* Highest possible perf subgraph arc interposition, e.g. for ip6 ioam */
u16 saved_lookup_next_index;
+ union {
+ /* IP_LOOKUP_NEXT_CLASSIFY only */
+ struct {
+ u16 table_index;
+ } classify;
+ };
+
STRUCT_MARK(signature_end);
/* Number of FIB entries sharing this adjacency */