summaryrefslogtreecommitdiffstats
path: root/src/plugins/ioam/ip6/ioam_cache.h
diff options
context:
space:
mode:
authorshwethab <shwetha.bhandari@gmail.com>2017-04-11 06:21:44 +0000
committerFlorin Coras <florin.coras@gmail.com>2017-04-13 08:50:21 +0000
commit00c14a94c34fac89e6e589c4a7aad20d8dd183dc (patch)
treedfe3a571da8390ba2329a62b283e92bf19af1726 /src/plugins/ioam/ip6/ioam_cache.h
parent5e189f1a8862f5a8f837dc612c15d63d2b9b6457 (diff)
VPP-693: IOAM configuration for SRv6 localsid
This add debug cli to accept SRv6 localsid that will be used to attract the return traffic for M-Anycast flows. Change-Id: I8f8dd115c36498141ae4cb143c6584141950b1d3 Signed-off-by: shwethab <shwetha.bhandari@gmail.com>
Diffstat (limited to 'src/plugins/ioam/ip6/ioam_cache.h')
-rw-r--r--src/plugins/ioam/ip6/ioam_cache.h18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/plugins/ioam/ip6/ioam_cache.h b/src/plugins/ioam/ip6/ioam_cache.h
index 3f69fa7255d..effa815d63a 100644
--- a/src/plugins/ioam/ip6/ioam_cache.h
+++ b/src/plugins/ioam/ip6/ioam_cache.h
@@ -173,6 +173,7 @@ typedef struct
/* The current rewrite string being used */
u8 *rewrite;
u8 rewrite_pool_index_offset;
+ ip6_address_t sr_localsid_cache;
u64 lookup_table_nbuckets;
u64 lookup_table_size;
@@ -190,6 +191,7 @@ typedef struct
*/
bool criteria_oneway;
u8 wait_for_responses;
+ ip6_address_t sr_localsid_ts;
/* convenience */
vlib_main_t *vlib_main;
@@ -276,17 +278,11 @@ typedef CLIB_PACKED (struct
static inline void
ioam_e2e_id_rewrite_handler (ioam_e2e_id_option_t * e2e_option,
- vlib_buffer_t * b0)
+ ip6_address_t * address)
{
- ip6_main_t *im = &ip6_main;
- ip6_address_t *my_address = 0;
- my_address =
- ip6_interface_first_address (im, vnet_buffer (b0)->sw_if_index[VLIB_RX]);
- if (my_address)
- {
- e2e_option->id.as_u64[0] = my_address->as_u64[0];
- e2e_option->id.as_u64[1] = my_address->as_u64[1];
- }
+ e2e_option->id.as_u64[0] = address->as_u64[0];
+ e2e_option->id.as_u64[1] = address->as_u64[1];
+
}
/* Following functions are for the caching of ioam header
@@ -400,7 +396,7 @@ ioam_cache_add (vlib_buffer_t * b0,
/* suffix rewrite string with e2e ID option */
e2e = (ioam_e2e_id_option_t *) (entry->ioam_rewrite_string + e2e_id_offset);
- ioam_e2e_id_rewrite_handler (e2e, b0);
+ ioam_e2e_id_rewrite_handler (e2e, &cm->sr_localsid_cache);
entry->my_address_offset = (u8 *) (&e2e->id) - (u8 *) hbh0;
/* add it to hash, replacing and freeing any collision for now */