diff options
Diffstat (limited to 'vnet/vnet/ip')
-rw-r--r-- | vnet/vnet/ip/ip4_forward.c | 2 | ||||
-rw-r--r-- | vnet/vnet/ip/ip6_forward.c | 2 | ||||
-rw-r--r-- | vnet/vnet/ip/lookup.c | 6 | ||||
-rw-r--r-- | vnet/vnet/ip/lookup.h | 9 |
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 */ |