diff options
author | shwethab <shwetha.bhandari@gmail.com> | 2017-04-11 06:21:44 +0000 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-05-17 18:39:46 +0000 |
commit | 883a4bd4ee2d69f1f05870152de14acd91c96df4 (patch) | |
tree | 1b800c0d5ada2aacc40e1c1df142d28a7e852eeb /src/plugins/ioam/ip6/ioam_cache.h | |
parent | bfd9227e6da567e0e19e026afe94cd4c0b65f725 (diff) |
ioam: configuration for SRv6 localsid (VPP-693)
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>
(cherry picked from commit 00c14a94c34fac89e6e589c4a7aad20d8dd183dc)
Diffstat (limited to 'src/plugins/ioam/ip6/ioam_cache.h')
-rw-r--r-- | src/plugins/ioam/ip6/ioam_cache.h | 18 |
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 e668ad7f5b4..25a8fb65729 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 */ |