From 3081564d2b82d320989b4d047f5716129b45eec6 Mon Sep 17 00:00:00 2001 From: Pablo Camarillo Date: Thu, 15 Feb 2018 00:34:59 +0100 Subject: [PATCH 001/154] SRv6 to GTP mapping Change-Id: Id458181d6f96b0f7584c6fcf5ab4e899197de24e Signed-off-by: Pablo Camarillo Signed-off-by: pcamaril --- src/plugins/srv6-ad/ad.c | 1 + src/plugins/srv6-am/am.c | 1 + src/plugins/srv6-as/as.c | 1 + src/plugins/srv6-gtp/node.c | 208 +++++++++++ src/plugins/srv6-gtp/srv6_gtp.c | 221 ++++++++++++ src/plugins/srv6-gtp/srv6_gtp.h | 64 ++++ src/plugins/srv6_gtp.am | 22 ++ src/vnet/srv6/sr.h | 25 +- src/vnet/srv6/sr_localsid.c | 35 +- src/vnet/srv6/sr_policy_rewrite.c | 556 +++++++++++++++--------------- 10 files changed, 834 insertions(+), 300 deletions(-) create mode 100644 src/plugins/srv6-gtp/node.c create mode 100755 src/plugins/srv6-gtp/srv6_gtp.c create mode 100644 src/plugins/srv6-gtp/srv6_gtp.h create mode 100644 src/plugins/srv6_gtp.am diff --git a/src/plugins/srv6-ad/ad.c b/src/plugins/srv6-ad/ad.c index bc55bc1abe46..46fdd5845170 100644 --- a/src/plugins/srv6-ad/ad.c +++ b/src/plugins/srv6-ad/ad.c @@ -424,6 +424,7 @@ srv6_ad_init (vlib_main_t * vm) keyword_str, def_str, params_str, + 128, &sm->srv6_ad_dpo_type, format_srv6_ad_localsid, unformat_srv6_ad_localsid, diff --git a/src/plugins/srv6-am/am.c b/src/plugins/srv6-am/am.c index ce8b4d9b2cea..3f454eb12a11 100644 --- a/src/plugins/srv6-am/am.c +++ b/src/plugins/srv6-am/am.c @@ -211,6 +211,7 @@ srv6_am_init (vlib_main_t * vm) keyword_str, def_str, params_str, + 128, &sm->srv6_am_dpo_type, format_srv6_am_localsid, unformat_srv6_am_localsid, diff --git a/src/plugins/srv6-as/as.c b/src/plugins/srv6-as/as.c index ea13fc8834e8..ce9243f59e4b 100644 --- a/src/plugins/srv6-as/as.c +++ b/src/plugins/srv6-as/as.c @@ -534,6 +534,7 @@ srv6_as_init (vlib_main_t * vm) keyword_str, def_str, params_str, + 128, &sm->srv6_as_dpo_type, format_srv6_as_localsid, unformat_srv6_as_localsid, diff --git a/src/plugins/srv6-gtp/node.c b/src/plugins/srv6-gtp/node.c new file mode 100644 index 000000000000..a7808dacef99 --- /dev/null +++ b/src/plugins/srv6-gtp/node.c @@ -0,0 +1,208 @@ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include +#include +#include + +typedef struct { + u32 localsid_index; +} srv6_gtp_trace_t; + +/* packet trace format function */ +static u8 * format_srv6_gtp_trace (u8 * s, va_list * args) +{ + CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *); + CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); + srv6_gtp_trace_t * t = va_arg (*args, srv6_gtp_trace_t *); + s = format (s, "SRv6-gtp: localsid_index %d\n", + t->localsid_index); + return s; +} + +vlib_node_registration_t srv6_gtp_node; + +#define foreach_srv6_localsid_counter \ +_(PROCESSED, "srv6-gtp processed packets") \ +_(NO_SRH, "(Error) No SRH.") + +typedef enum { +#define _(sym,str) SRV6_LOCALSID_COUNTER_##sym, + foreach_srv6_localsid_counter +#undef _ + SRV6_LOCALSID_N_COUNTERS, +} srv6_gtp_counters; + +static char * srv6_localsid_counter_strings[] = { +#define _(sym,string) string, + foreach_srv6_localsid_counter +#undef _ +}; + +typedef enum { + SRV6_GTP_NEXT_ERROR, + SRV6_GTP_NEXT_IP4LOOKUP, + SRV6_GTP_N_NEXT, +} srv6_gtp_next_t; + +/* + * @brief Function doing SRH processing for D* variants + */ +static_always_inline void +end_decaps_srh_processing (vlib_node_runtime_t * node, + vlib_buffer_t * b0, + ip6_header_t * ip0, + ip6_sr_header_t * sr0, + ip6_sr_localsid_t * ls0, u32 * next0) +{ + /* Compute the size of the IPv6 header with all Ext. headers */ + u8 next_proto; + ip6_ext_header_t *next_ext_header; + u16 total_size = 0; + + next_proto = ip0->protocol; + next_ext_header = (void *) (ip0 + 1); + total_size = sizeof (ip6_header_t); + while (ip6_ext_hdr (next_proto)) + { + total_size += ip6_ext_header_len (next_ext_header); + next_proto = next_ext_header->next_hdr; + next_ext_header = ip6_ext_next_header (next_ext_header); + } + vlib_buffer_advance (b0, total_size); + return; +} + +/* + * @brief SRv6 Sample Localsid graph node + * WARNING: YOU MUST DO THE DUAL LOOP + */ +static uword +srv6_gtp_fn (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) +{ + u32 n_left_from, * from, * to_next; + u32 next_index; + + ip6_sr_main_t * sm = &sr_main; + + from = vlib_frame_vector_args (frame); + n_left_from = frame->n_vectors; + next_index = node->cached_next_index; + u32 thread_index = vlib_get_thread_index (); + + while (n_left_from > 0) + { + u32 n_left_to_next; + + vlib_get_next_frame (vm, node, next_index, + to_next, n_left_to_next); + + while (n_left_from > 0 && n_left_to_next > 0) + { + u32 bi0; + vlib_buffer_t * b0; + ip6_header_t * ip0 = 0; + ip4_header_t *ip4 = 0; + ip6_sr_header_t * sr0; + ip6_ext_header_t *prev0; + u32 next0 = SRV6_GTP_NEXT_IP4LOOKUP; + ip6_sr_localsid_t *ls0; + srv6_gtp_per_sid_memory_t *ls0_mem; + u32 teid = 0; + u32 sum0 = 0; + u32 new_l0 = 0; + + bi0 = from[0]; + to_next[0] = bi0; + from += 1; + to_next += 1; + n_left_from -= 1; + n_left_to_next -= 1; + + b0 = vlib_get_buffer (vm, bi0); + ip0 = vlib_buffer_get_current (b0); + sr0 = (ip6_sr_header_t *)(ip0+1); + teid = ip0->dst_address.as_u32[3]; + + /* Lookup the SR End behavior based on IP DA (adj) */ + ls0 = pool_elt_at_index (sm->localsids, vnet_buffer(b0)->ip.adj_index[VLIB_TX]); + ls0_mem = ls0->plugin_mem; + + /* SRH processing */ + ip6_ext_header_find_t (ip0, prev0, sr0, IP_PROTOCOL_IPV6_ROUTE); + end_decaps_srh_processing (node, b0, ip0, sr0, ls0, &next0); + ip0 = vlib_buffer_get_current (b0); + + /* Push GTP header */ + ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= vec_len (ls0_mem->rewrite)); + clib_memcpy (((u8 *) ip0) - vec_len (ls0_mem->rewrite), ls0_mem->rewrite, vec_len (ls0_mem->rewrite)); + vlib_buffer_advance (b0, -(word) vec_len (ls0_mem->rewrite)); + + ip4_gtpu_header_t *hdr = vlib_buffer_get_current (b0); + ip4 = &hdr->ip4; + udp_header_t *udp = &hdr->udp; + gtpu_header_t *gtpu = &hdr->gtpu; + gtpu->teid = teid; + + u16 old_l0 = 0; + sum0 = ip4->checksum; + new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain (vm, b0)); + sum0 = ip_csum_update (sum0, old_l0, new_l0, ip4_header_t, length); + ip4->checksum = ip_csum_fold (sum0); + ip4->length = new_l0; + + new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain(vm, b0) - sizeof (*ip4)); + udp->length = new_l0; + new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain(vm, b0) - sizeof (*ip4) - sizeof(*udp)); + gtpu->length = new_l0; + + /* Set Next frame to IP4 lookup */ + next0 = SRV6_GTP_NEXT_IP4LOOKUP; + + if (PREDICT_FALSE(b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_gtp_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); + tr->localsid_index = ls0 - sm->localsids; + } + + /* This increments the SRv6 per LocalSID counters.*/ + vlib_increment_combined_counter + (((next0 == SRV6_GTP_NEXT_ERROR) ? &(sm->sr_ls_invalid_counters) : &(sm->sr_ls_valid_counters)), + thread_index, + ls0 - sm->localsids, + 1, vlib_buffer_length_in_chain (vm, b0)); + + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, + n_left_to_next, bi0, next0); + } + vlib_put_next_frame (vm, node, next_index, n_left_to_next); + } + return frame->n_vectors; +} + +VLIB_REGISTER_NODE (srv6_gtp_node) = { + .function = srv6_gtp_fn, + .name = "srv6-gtp", + .vector_size = sizeof (u32), + .format_trace = format_srv6_gtp_trace, + .type = VLIB_NODE_TYPE_INTERNAL, + .n_errors = SRV6_LOCALSID_N_COUNTERS, + .error_strings = srv6_localsid_counter_strings, + .n_next_nodes = 2, + .next_nodes = { + [SRV6_GTP_NEXT_IP4LOOKUP] = "ip4-lookup", + [SRV6_GTP_NEXT_ERROR] = "error-drop", + }, +}; diff --git a/src/plugins/srv6-gtp/srv6_gtp.c b/src/plugins/srv6-gtp/srv6_gtp.c new file mode 100755 index 000000000000..e4a992f68fab --- /dev/null +++ b/src/plugins/srv6-gtp/srv6_gtp.c @@ -0,0 +1,221 @@ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + *------------------------------------------------------------------ + * srv6_gtp.c - SRv6 LocalSID doing SRv6->GTP translation + *------------------------------------------------------------------ + */ + +#include +#include +#include +#include +#include +#include + +unsigned char srv6_localsid_name[32] = "SRv6 to GTP"; +unsigned char keyword_str[32] = "end.gtp"; +unsigned char def_str[64] = "This SRv6 localSID maps SRv6 traffic into a GTP tunnel"; +unsigned char params_str[32] = "sa da "; +u8 prefix_length = 96; //4B will be Arguments. Size used in FIB entry + +/*****************************************/ +/* SRv6 LocalSID instantiation and removal functions */ +static int +srv6_localsid_creation_fn (ip6_sr_localsid_t *localsid) +{ + /* + * Do you want to do anything fancy upon localsid instantiation? + * You can do it here + * (If return != 0 the localsid creation will be cancelled.) + */ + /* As an example Im going to do a +1 to the fib table inserted by the user */ + srv6_gtp_per_sid_memory_t *ls_mem = (void*)localsid->plugin_mem; + //Prepare rewrite string + + vec_validate_aligned (ls_mem->rewrite, sizeof(ip4_gtpu_header_t)-1, CLIB_CACHE_LINE_BYTES); + + ip4_gtpu_header_t *hdr = (void *)ls_mem->rewrite; + ip4_header_t *ip = &hdr->ip4; + udp_header_t *udp = &hdr->udp; + gtpu_header_t *gtpu = &hdr->gtpu; + + ip->ip_version_and_header_length = 0x45; + ip->ttl = 64; + ip->protocol = IP_PROTOCOL_UDP; + ip->src_address = ls_mem->src_addr; + ip->dst_address = ls_mem->dst_addr; + ip->checksum = ip4_header_checksum (ip); + + udp->src_port = clib_host_to_net_u16 (2152); + udp->dst_port = clib_host_to_net_u16 (UDP_DST_PORT_GTPU); + + gtpu->ver_flags = GTPU_V1_VER | GTPU_PT_GTP; + gtpu->type = GTPU_TYPE_GTPU; + return 0; +} + +static int +srv6_localsid_removal_fn (ip6_sr_localsid_t *localsid) +{ + /* Do you want to do anything fancy upon localsid removal? + * You can do it here + * (If return != 0 the localsid removal will be cancelled.) + */ + /* + * BTW if you stored something in localsid->plugin_mem you should clean it now + */ + clib_mem_free(((srv6_gtp_per_sid_memory_t *)localsid->plugin_mem)->rewrite); + //In this example we are only cleaning the memory allocated per localsid + clib_mem_free(localsid->plugin_mem); + return 0; +} + +/**********************************/ +/* SRv6 LocalSID format functions */ +/* + * Prints nicely the parameters of a localsid + * Example: print "Table 5" + */ +u8 * +format_srv6_gtp (u8 * s, va_list * args) +{ + srv6_gtp_per_sid_memory_t *ls_mem = va_arg (*args, void *); + s = format (s, "IPv4 SA: %U\n", format_ip4_address, &ls_mem->src_addr); + s = format (s, "IPv4 DA: %U", format_ip4_address, &ls_mem->dst_addr); + return s; +} + +/* + * Process the parameters of a localsid + * Example: process from: + * sr localsid address cafe::1 behavior new_srv6_localsid 5 + * everything from behavior on... so in this case 'new_srv6_localsid 5' + * Notice that it MUST match the keyword_str and params_str defined above. + */ +//"sa da teid "; +uword +unformat_srv6_gtp (unformat_input_t * input, va_list * args) +{ + void **plugin_mem = va_arg (*args, void **); + srv6_gtp_per_sid_memory_t *ls_mem; + ip4_address_t sa, da; + char sa_set, da_set; + sa_set = da_set = 0; + + if (!unformat (input, "end.gtp")) + return 0; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (!sa_set && unformat (input, "src %U", unformat_ip4_address, &sa)) + sa_set = 1; + + if (!da_set && unformat (input, "dst %U", unformat_ip4_address, &da)) + da_set = 1; + else + break; + } + + if(sa_set && da_set) + { + /* Allocate a portion of memory */ + ls_mem = clib_mem_alloc_aligned_at_offset (sizeof(srv6_gtp_per_sid_memory_t), 0, 0, 1); + + /* Set to zero the memory */ + memset (ls_mem, 0, sizeof(srv6_gtp_per_sid_memory_t)); + + /* Our brand-new car is ready */ + ls_mem->src_addr = sa; + ls_mem->dst_addr = da; + + /* Dont forget to add it to the localsid */ + *plugin_mem = ls_mem; + return 1; + } + return 0; +} + +/*************************/ +/* SRv6 LocalSID FIB DPO */ +static u8 * +format_srv6_gtp_dpo (u8 * s, va_list * args) +{ + index_t index = va_arg (*args, index_t); + CLIB_UNUSED (u32 indent) = va_arg (*args, u32); + + return (format (s, "SR: srv6-to-gtp:[%u]", index)); +} + +void +srv6_gtp_dpo_lock (dpo_id_t * dpo) +{ +} + +void +srv6_gtp_dpo_unlock (dpo_id_t * dpo) +{ +} + +const static dpo_vft_t srv6_gtp_vft = { + .dv_lock = srv6_gtp_dpo_lock, + .dv_unlock = srv6_gtp_dpo_unlock, + .dv_format = format_srv6_gtp_dpo, +}; + +const static char *const srv6_gtp_ip6_nodes[] = { + "srv6-gtp", + NULL, +}; + +const static char *const *const srv6_gtp_nodes[DPO_PROTO_NUM] = { + [DPO_PROTO_IP6] = srv6_gtp_ip6_nodes, +}; + +/**********************/ +static clib_error_t * srv6_gtp_init (vlib_main_t * vm) +{ + srv6_gtp_main_t * sm = &srv6_gtp_main; + int rv = 0; + /* Create DPO */ + sm->srv6_gtp_dpo_type = dpo_register_new_type ( + &srv6_gtp_vft, srv6_gtp_nodes); + + /* Register SRv6 LocalSID */ + rv = sr_localsid_register_function (vm, + srv6_localsid_name, + keyword_str, + def_str, + params_str, + prefix_length, + &sm->srv6_gtp_dpo_type, + format_srv6_gtp, + unformat_srv6_gtp, + srv6_localsid_creation_fn, + srv6_localsid_removal_fn); + if (rv < 0) + clib_error_return (0, "SRv6 LocalSID function could not be registered."); + else + sm->srv6_localsid_behavior_id = rv; + + return 0; +} + +VLIB_INIT_FUNCTION (srv6_gtp_init); + +VLIB_PLUGIN_REGISTER () = { + .version = VPP_BUILD_VER, + .description = "SRv6-to-GTP", +}; diff --git a/src/plugins/srv6-gtp/srv6_gtp.h b/src/plugins/srv6-gtp/srv6_gtp.h new file mode 100644 index 000000000000..ce183b46a336 --- /dev/null +++ b/src/plugins/srv6-gtp/srv6_gtp.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef __included_srv6_gtp_h__ +#define __included_srv6_gtp_h__ + +#include +#include +#include +#include +#include + +#include +#include +#include + + +typedef struct { + /* API message ID base */ + u16 msg_id_base; + + /* convenience */ + vlib_main_t * vlib_main; + vnet_main_t * vnet_main; + + /* DPO type */ + dpo_type_t srv6_gtp_dpo_type; + + /* SRv6 LocalSID behavior number */ + u32 srv6_localsid_behavior_id; +} srv6_gtp_main_t; + +/* + * This is the memory that will be stored per each localsid + * the user instantiates + */ +typedef struct { + ip4_address_t src_addr; + ip4_address_t dst_addr; + u8 *rewrite; +} srv6_gtp_per_sid_memory_t ; + +srv6_gtp_main_t srv6_gtp_main; + +format_function_t format_srv6_gtp; +unformat_function_t unformat_srv6_gtp; + +void srv6_gtp_dpo_lock (dpo_id_t * dpo); +void srv6_gtp_dpo_unlock (dpo_id_t * dpo); + +extern vlib_node_registration_t srv6_gtp_node; + +#endif /* __included_srv6_gtp_h__ */ diff --git a/src/plugins/srv6_gtp.am b/src/plugins/srv6_gtp.am new file mode 100644 index 000000000000..89aef14b2ba8 --- /dev/null +++ b/src/plugins/srv6_gtp.am @@ -0,0 +1,22 @@ +# Copyright (c) 2016 Cisco Systems, Inc. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +vppplugins_LTLIBRARIES += srv6gtp_plugin.la + +srv6gtp_plugin_la_SOURCES = \ + srv6-gtp/srv6_gtp.c \ + srv6-gtp/node.c + +noinst_HEADERS += srv6-gtp/srv6_gtp.h + +# vi:syntax=automake diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 2353b284363b..c40807c588ce 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -54,6 +54,27 @@ #define SR_SEGMENT_LIST_WEIGHT_DEFAULT 1 +typedef struct +{ + u8 ver_flags; + u8 type; + u16 length; /* length in octets of the payload */ + u32 teid; +} __attribute__ ((packed)) gtpu_header_t; + +/* *INDENT-OFF* */ +typedef struct +{ + ip4_header_t ip4; /* 20 bytes */ + udp_header_t udp; /* 8 bytes */ + gtpu_header_t gtpu; /* 8 bytes */ +} __attribute__ ((packed)) ip4_gtpu_header_t; +/* *INDENT-ON* */ +#define GTPU_V1_VER (1<<5) + +#define GTPU_PT_GTP (1<<4) +#define GTPU_TYPE_GTPU 255 + /** * @brief SR Segment List (SID list) */ @@ -141,6 +162,8 @@ typedef struct u8 *params_str; /**< Behavior parameters (i.e. ) */ + u8 prefix_length; + dpo_type_t dpo; /**< DPO type registration */ format_function_t *ls_format; /**< LocalSID format function */ @@ -250,7 +273,7 @@ extern void sr_dpo_unlock (dpo_id_t * dpo); extern int sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, u8 * keyword_str, u8 * def_str, - u8 * params_str, dpo_type_t * dpo, + u8 * params_str, u8 prefix_length, dpo_type_t * dpo, format_function_t * ls_format, unformat_function_t * ls_unformat, sr_plugin_callback_t * creation_fn, diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index 7aeb1b680b26..b26bf18510b2 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -70,6 +70,8 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, ip6_sr_main_t *sm = &sr_main; uword *p; int rv; + u8 pref_length = 128; + sr_localsid_fn_registration_t *plugin = 0; ip6_sr_localsid_t *ls = 0; @@ -81,21 +83,25 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, if (p) { if (is_del) - { - /* Retrieve localsid */ - ls = pool_elt_at_index (sm->localsids, p[0]); + { + /* Retrieve localsid */ + ls = pool_elt_at_index (sm->localsids, p[0]); + if (ls->behavior >= SR_BEHAVIOR_LAST) + { + plugin = pool_elt_at_index (sm->plugin_functions, ls->behavior - SR_BEHAVIOR_LAST); + pref_length = plugin->prefix_length; + } /* Delete FIB entry */ fib_prefix_t pfx = { .fp_proto = FIB_PROTOCOL_IP6, - .fp_len = 128, + .fp_len = pref_length, .fp_addr = { .ip6 = *localsid_addr, } }; fib_table_entry_delete (fib_table_find (FIB_PROTOCOL_IP6, - fib_table), - &pfx, FIB_SOURCE_SR); + fib_table), &pfx, FIB_SOURCE_SR); /* In case it is a Xconnect iface remove the (OIF, NHOP) adj */ if (ls->behavior == SR_BEHAVIOR_X || ls->behavior == SR_BEHAVIOR_DX6 @@ -103,14 +109,8 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, adj_unlock (ls->nh_adj); if (ls->behavior >= SR_BEHAVIOR_LAST) - { - sr_localsid_fn_registration_t *plugin = 0; - plugin = pool_elt_at_index (sm->plugin_functions, - ls->behavior - SR_BEHAVIOR_LAST); - /* Callback plugin removal function */ rv = plugin->removal (ls); - } /* Delete localsid registry */ pool_put (sm->localsids, ls); @@ -125,10 +125,16 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, if (is_del) return -2; + if (behavior >= SR_BEHAVIOR_LAST) + { + sr_localsid_fn_registration_t *plugin = 0; + plugin = pool_elt_at_index (sm->plugin_functions, behavior - SR_BEHAVIOR_LAST); + pref_length = plugin->prefix_length; + } /* Check whether there exists a FIB entry with such address */ fib_prefix_t pfx = { .fp_proto = FIB_PROTOCOL_IP6, - .fp_len = 128, + .fp_len = pref_length, }; pfx.fp_addr.as_u64[0] = localsid_addr->as_u64[0]; @@ -1524,7 +1530,7 @@ const static char *const *const sr_loc_d_nodes[DPO_PROTO_NUM] = { int sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, u8 * keyword_str, u8 * def_str, - u8 * params_str, dpo_type_t * dpo, + u8 * params_str, u8 prefix_length, dpo_type_t * dpo, format_function_t * ls_format, unformat_function_t * ls_unformat, sr_plugin_callback_t * creation_fn, @@ -1553,6 +1559,7 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, plugin->sr_localsid_function_number = (plugin - sm->plugin_functions); plugin->sr_localsid_function_number += SR_BEHAVIOR_LAST; + plugin->prefix_length = prefix_length; plugin->ls_format = ls_format; plugin->ls_unformat = ls_unformat; plugin->creation = creation_fn; diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index e9c42211209d..6d75be2d6046 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -115,7 +115,7 @@ static ip6_address_t sr_pr_encaps_src; void sr_set_source (ip6_address_t * address) { - clib_memcpy_fast (&sr_pr_encaps_src, address, sizeof (sr_pr_encaps_src)); + clib_memcpy (&sr_pr_encaps_src, address, sizeof (sr_pr_encaps_src)); } static clib_error_t * @@ -192,8 +192,8 @@ compute_rewrite_encaps (ip6_address_t * sl) addrp = srh->segments + vec_len (sl) - 1; vec_foreach (this_address, sl) { - clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + clib_memcpy (addrp->as_u8, this_address->as_u8, + sizeof (ip6_address_t)); addrp--; } } @@ -234,8 +234,7 @@ compute_rewrite_insert (ip6_address_t * sl) addrp = srh->segments + vec_len (sl); vec_foreach (this_address, sl) { - clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + clib_memcpy (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); addrp--; } return rs; @@ -273,8 +272,7 @@ compute_rewrite_bsid (ip6_address_t * sl) addrp = srh->segments + vec_len (sl) - 1; vec_foreach (this_address, sl) { - clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + clib_memcpy (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); addrp--; } return rs; @@ -303,7 +301,7 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, ip6_sr_sl_t *segment_list; pool_get (sm->sid_lists, segment_list); - clib_memset (segment_list, 0, sizeof (*segment_list)); + memset (segment_list, 0, sizeof (*segment_list)); vec_add1 (sr_policy->segments_lists, segment_list - sm->sid_lists); @@ -590,8 +588,8 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Add an SR policy object */ pool_get (sm->sr_policies, sr_policy); - clib_memset (sr_policy, 0, sizeof (*sr_policy)); - clib_memcpy_fast (&sr_policy->bsid, bsid, sizeof (ip6_address_t)); + memset (sr_policy, 0, sizeof (*sr_policy)); + clib_memcpy (&sr_policy->bsid, bsid, sizeof (ip6_address_t)); sr_policy->type = behavior; sr_policy->fib_table = (fib_table != (u32) ~ 0 ? fib_table : 0); //Is default FIB 0 ? sr_policy->is_encap = is_encap; @@ -854,8 +852,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, if (unformat (input, "next %U", unformat_ip6_address, &next_address)) { vec_add2 (segments, this_seg, 1); - clib_memcpy_fast (this_seg->as_u8, next_address.as_u8, - sizeof (*this_seg)); + clib_memcpy (this_seg->as_u8, next_address.as_u8, + sizeof (*this_seg)); } else if (unformat (input, "add sl")) operation = 1; @@ -888,7 +886,6 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, is_encap); - vec_free (segments); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -906,7 +903,6 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_mod ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), sr_policy_index, fib_table, operation, segments, sl_index, weight); - vec_free (segments); } switch (rv) @@ -1161,14 +1157,14 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, ip2_encap = vlib_buffer_get_current (b2); ip3_encap = vlib_buffer_get_current (b3); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip1_encap) - vec_len (sl1->rewrite), + sl1->rewrite, vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) ip2_encap) - vec_len (sl2->rewrite), + sl2->rewrite, vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) ip3_encap) - vec_len (sl3->rewrite), + sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -1191,40 +1187,40 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -1259,8 +1255,8 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, ip0_encap = vlib_buffer_get_current (b0); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); ip0 = vlib_buffer_get_current (b0); @@ -1272,10 +1268,10 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } encap_pkts++; @@ -1319,32 +1315,22 @@ VLIB_REGISTER_NODE (sr_policy_rewrite_encaps_node) = { * @brief IPv4 encapsulation processing as per RFC2473 */ static_always_inline void -encaps_processing_v4 (vlib_node_runtime_t * node, +encaps_processing_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * b0, - ip6_header_t * ip0, ip4_header_t * ip0_encap) + ip6_header_t * ip0) { u32 new_l0; ip6_sr_header_t *sr0; - u32 checksum0; - - /* Inner IPv4: Decrement TTL & update checksum */ - ip0_encap->ttl -= 1; - checksum0 = ip0_encap->checksum + clib_host_to_net_u16 (0x0100); - checksum0 += checksum0 >= 0xffff; - ip0_encap->checksum = checksum0; - /* Outer IPv6: Update length, FL, proto */ - new_l0 = ip0->payload_length + clib_net_to_host_u16 (ip0_encap->length); + new_l0 = vlib_buffer_length_in_chain(vm, b0) - sizeof (ip6_header_t); ip0->payload_length = clib_host_to_net_u16 (new_l0); - ip0->ip_version_traffic_class_and_flow_label = - clib_host_to_net_u32 (0 | ((6 & 0xF) << 28) | - ((ip0_encap->tos & 0xFF) << 20)); + ip0->ip_version_traffic_class_and_flow_label =clib_host_to_net_u32 (0 | ((6 & 0xF) << 28)) ; if (ip0->protocol == IP_PROTOCOL_IPV6_ROUTE) - { - sr0 = (void *) (ip0 + 1); - sr0->protocol = IP_PROTOCOL_IP_IN_IP; - } + { + sr0 = (void *) (ip0 + 1); + sr0->protocol = IP_PROTOCOL_IP_IN_IP; + } else ip0->protocol = IP_PROTOCOL_IP_IN_IP; } @@ -1364,8 +1350,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, next_index = node->cached_next_index; - int encap_pkts = 0, bsid_pkts = 0; - while (n_left_from > 0) { u32 n_left_to_next; @@ -1380,8 +1364,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; - ip4_header_t *ip0_encap, *ip1_encap, *ip2_encap, *ip3_encap; + ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; + ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; + u32 teid0, teid1, teid2, teid3; /* Prefetch next iteration. */ { @@ -1430,43 +1416,52 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sl3 = pool_elt_at_index (sm->sid_lists, vnet_buffer (b3)->ip.adj_index[VLIB_TX]); - ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl0->rewrite)); - ASSERT (b1->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl1->rewrite)); - ASSERT (b2->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl2->rewrite)); - ASSERT (b3->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl3->rewrite)); - - ip0_encap = vlib_buffer_get_current (b0); - ip1_encap = vlib_buffer_get_current (b1); - ip2_encap = vlib_buffer_get_current (b2); - ip3_encap = vlib_buffer_get_current (b3); - - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); - - vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); - vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); - vlib_buffer_advance (b2, -(word) vec_len (sl2->rewrite)); - vlib_buffer_advance (b3, -(word) vec_len (sl3->rewrite)); - - ip0 = vlib_buffer_get_current (b0); - ip1 = vlib_buffer_get_current (b1); - ip2 = vlib_buffer_get_current (b2); - ip3 = vlib_buffer_get_current (b3); - encaps_processing_v4 (node, b0, ip0, ip0_encap); - encaps_processing_v4 (node, b1, ip1, ip1_encap); - encaps_processing_v4 (node, b2, ip2, ip2_encap); - encaps_processing_v4 (node, b3, ip3, ip3_encap); + hdr0 = vlib_buffer_get_current (b0); + hdr1 = vlib_buffer_get_current (b1); + hdr2 = vlib_buffer_get_current (b2); + hdr3 = vlib_buffer_get_current (b3); + + teid0 = hdr0->gtpu.teid; + teid1 = hdr1->gtpu.teid; + teid2 = hdr2->gtpu.teid; + teid3 = hdr3->gtpu.teid; + + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); + + clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); + clib_memcpy (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); + clib_memcpy (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); + + vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); + vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); + vlib_buffer_advance (b2, -(word) vec_len (sl2->rewrite)); + vlib_buffer_advance (b3, -(word) vec_len (sl3->rewrite)); + + ip0 = vlib_buffer_get_current (b0); + ip1 = vlib_buffer_get_current (b1); + ip2 = vlib_buffer_get_current (b2); + ip3 = vlib_buffer_get_current (b3); + + encaps_processing_v4 (vm, node, b0, ip0); + encaps_processing_v4 (vm, node, b1, ip1); + encaps_processing_v4 (vm, node, b2, ip2); + encaps_processing_v4 (vm, node, b3, ip3); + + /* Set the TEID in the last SID args */ + sr0 = (void*)(ip0+1); + sr1 = (void*)(ip1+1); + sr2 = (void*)(ip2+1); + sr3 = (void*)(ip3+1); + + sr0->segments->as_u32[3] = teid0; + sr1->segments->as_u32[3] = teid1; + sr2->segments->as_u32[3] = teid2; + sr3->segments->as_u32[3] = teid3; if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE))) { @@ -1474,44 +1469,43 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } - encap_pkts += 4; vlib_validate_buffer_enqueue_x4 (vm, node, next_index, to_next, n_left_to_next, bi0, bi1, bi2, bi3, next0, next1, next2, next3); @@ -1523,8 +1517,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 bi0; vlib_buffer_t *b0; ip6_header_t *ip0 = 0; - ip4_header_t *ip0_encap = 0; ip6_sr_sl_t *sl0; + ip6_sr_header_t *sr0; + ip4_gtpu_header_t *hdr0; + u32 teid0; + u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; bi0 = from[0]; @@ -1538,31 +1535,28 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sl0 = pool_elt_at_index (sm->sid_lists, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); - ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl0->rewrite)); - - ip0_encap = vlib_buffer_get_current (b0); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); - - ip0 = vlib_buffer_get_current (b0); - - encaps_processing_v4 (node, b0, ip0, ip0_encap); + hdr0 = vlib_buffer_get_current (b0); + teid0 = hdr0->gtpu.teid; + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); + vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); + ip0 = vlib_buffer_get_current (b0); + encaps_processing_v4 (vm, node, b0, ip0); + sr0 = (void*)(ip0+1); + sr0->segments->as_u32[3] = teid0; if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } - encap_pkts++; vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); } @@ -1570,14 +1564,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_put_next_frame (vm, node, next_index, n_left_to_next); } - /* Update counters */ - vlib_node_increment_counter (vm, sr_policy_rewrite_encaps_node.index, - SR_POLICY_REWRITE_ERROR_COUNTER_TOTAL, - encap_pkts); - vlib_node_increment_counter (vm, sr_policy_rewrite_encaps_node.index, - SR_POLICY_REWRITE_ERROR_COUNTER_BSID, - bsid_pkts); - return from_frame->n_vectors; } @@ -1801,14 +1787,14 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, en2 = vlib_buffer_get_current (b2); en3 = vlib_buffer_get_current (b3); - clib_memcpy_fast (((u8 *) en0) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) en1) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) en2) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) en3) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, + vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) en1) - vec_len (sl1->rewrite), sl1->rewrite, + vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) en2) - vec_len (sl2->rewrite), sl2->rewrite, + vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) en3) - vec_len (sl3->rewrite), sl3->rewrite, + vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -1870,40 +1856,40 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -1957,8 +1943,8 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, en0 = vlib_buffer_get_current (b0); - clib_memcpy_fast (((u8 *) en0) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, + vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -1980,10 +1966,10 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } encap_pkts++; @@ -2147,23 +2133,23 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr3 = (ip6_sr_header_t *) (ip3 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, - (void *) sr0 - (void *) ip0); - clib_memcpy_fast ((u8 *) ip1 - vec_len (sl1->rewrite), (u8 *) ip1, - (void *) sr1 - (void *) ip1); - clib_memcpy_fast ((u8 *) ip2 - vec_len (sl2->rewrite), (u8 *) ip2, - (void *) sr2 - (void *) ip2); - clib_memcpy_fast ((u8 *) ip3 - vec_len (sl3->rewrite), (u8 *) ip3, - (void *) sr3 - (void *) ip3); - - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite)), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) sr1 - vec_len (sl1->rewrite)), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) sr2 - vec_len (sl2->rewrite)), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) sr3 - vec_len (sl3->rewrite)), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy ((u8 *) ip1 - vec_len (sl1->rewrite), (u8 *) ip1, + (void *) sr1 - (void *) ip1); + clib_memcpy ((u8 *) ip2 - vec_len (sl2->rewrite), (u8 *) ip2, + (void *) sr2 - (void *) ip2); + clib_memcpy ((u8 *) ip3 - vec_len (sl3->rewrite), (u8 *) ip3, + (void *) sr3 - (void *) ip3); + + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, + vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) sr1 - vec_len (sl1->rewrite)), sl1->rewrite, + vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) sr2 - vec_len (sl2->rewrite)), sl2->rewrite, + vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) sr3 - vec_len (sl3->rewrite)), sl3->rewrite, + vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -2286,40 +2272,40 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -2362,10 +2348,10 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr0 = (ip6_sr_header_t *) (ip0 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, - (void *) sr0 - (void *) ip0); - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite)), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, + vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -2402,10 +2388,10 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } insert_pkts++; @@ -2569,23 +2555,23 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr3 = (ip6_sr_header_t *) (ip3 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), - (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy_fast ((u8 *) ip1 - vec_len (sl1->rewrite_bsid), - (u8 *) ip1, (void *) sr1 - (void *) ip1); - clib_memcpy_fast ((u8 *) ip2 - vec_len (sl2->rewrite_bsid), - (u8 *) ip2, (void *) sr2 - (void *) ip2); - clib_memcpy_fast ((u8 *) ip3 - vec_len (sl3->rewrite_bsid), - (u8 *) ip3, (void *) sr3 - (void *) ip3); - - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), - sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); - clib_memcpy_fast (((u8 *) sr1 - vec_len (sl1->rewrite_bsid)), - sl1->rewrite_bsid, vec_len (sl1->rewrite_bsid)); - clib_memcpy_fast (((u8 *) sr2 - vec_len (sl2->rewrite_bsid)), - sl2->rewrite_bsid, vec_len (sl2->rewrite_bsid)); - clib_memcpy_fast (((u8 *) sr3 - vec_len (sl3->rewrite_bsid)), - sl3->rewrite_bsid, vec_len (sl3->rewrite_bsid)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy ((u8 *) ip1 - vec_len (sl1->rewrite_bsid), (u8 *) ip1, + (void *) sr1 - (void *) ip1); + clib_memcpy ((u8 *) ip2 - vec_len (sl2->rewrite_bsid), (u8 *) ip2, + (void *) sr2 - (void *) ip2); + clib_memcpy ((u8 *) ip3 - vec_len (sl3->rewrite_bsid), (u8 *) ip3, + (void *) sr3 - (void *) ip3); + + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), + sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); + clib_memcpy (((u8 *) sr1 - vec_len (sl1->rewrite_bsid)), + sl1->rewrite_bsid, vec_len (sl1->rewrite_bsid)); + clib_memcpy (((u8 *) sr2 - vec_len (sl2->rewrite_bsid)), + sl2->rewrite_bsid, vec_len (sl2->rewrite_bsid)); + clib_memcpy (((u8 *) sr3 - vec_len (sl3->rewrite_bsid)), + sl3->rewrite_bsid, vec_len (sl3->rewrite_bsid)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite_bsid)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite_bsid)); @@ -2699,40 +2685,40 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -2775,10 +2761,10 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr0 = (ip6_sr_header_t *) (ip0 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), - (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), - sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), + sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite_bsid)); @@ -2813,10 +2799,10 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } insert_pkts++; @@ -2999,14 +2985,14 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, end_bsid_encaps_srh_processing (node, b2, ip2_encap, sr2, &next2); end_bsid_encaps_srh_processing (node, b3, ip3_encap, sr3, &next3); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip1_encap) - vec_len (sl1->rewrite), + sl1->rewrite, vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) ip2_encap) - vec_len (sl2->rewrite), + sl2->rewrite, vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) ip3_encap) - vec_len (sl3->rewrite), + sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -3029,40 +3015,40 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -3102,8 +3088,8 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, IP_PROTOCOL_IPV6_ROUTE); end_bsid_encaps_srh_processing (node, b0, ip0_encap, sr0, &next0); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); ip0 = vlib_buffer_get_current (b0); @@ -3115,10 +3101,10 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } encap_pkts++; From a2c80a293406c600fad1fb99692e7d76daf75df8 Mon Sep 17 00:00:00 2001 From: Pablo Camarillo Date: Thu, 15 Feb 2018 00:34:59 +0100 Subject: [PATCH 002/154] SRv6 to GTP mapping Change-Id: Id458181d6f96b0f7584c6fcf5ab4e899197de24e Signed-off-by: Pablo Camarillo Signed-off-by: pcamaril --- src/plugins/srv6-ad/ad.c | 1 + src/plugins/srv6-am/am.c | 1 + src/plugins/srv6-as/as.c | 1 + src/plugins/srv6-gtp/node.c | 208 +++++++++++ src/plugins/srv6-gtp/srv6_gtp.c | 221 ++++++++++++ src/plugins/srv6-gtp/srv6_gtp.h | 64 ++++ src/plugins/srv6_gtp.am | 22 ++ src/vnet/srv6/sr.h | 25 +- src/vnet/srv6/sr_localsid.c | 35 +- src/vnet/srv6/sr_policy_rewrite.c | 556 +++++++++++++++--------------- 10 files changed, 834 insertions(+), 300 deletions(-) create mode 100644 src/plugins/srv6-gtp/node.c create mode 100755 src/plugins/srv6-gtp/srv6_gtp.c create mode 100644 src/plugins/srv6-gtp/srv6_gtp.h create mode 100644 src/plugins/srv6_gtp.am diff --git a/src/plugins/srv6-ad/ad.c b/src/plugins/srv6-ad/ad.c index bc55bc1abe46..46fdd5845170 100644 --- a/src/plugins/srv6-ad/ad.c +++ b/src/plugins/srv6-ad/ad.c @@ -424,6 +424,7 @@ srv6_ad_init (vlib_main_t * vm) keyword_str, def_str, params_str, + 128, &sm->srv6_ad_dpo_type, format_srv6_ad_localsid, unformat_srv6_ad_localsid, diff --git a/src/plugins/srv6-am/am.c b/src/plugins/srv6-am/am.c index ce8b4d9b2cea..3f454eb12a11 100644 --- a/src/plugins/srv6-am/am.c +++ b/src/plugins/srv6-am/am.c @@ -211,6 +211,7 @@ srv6_am_init (vlib_main_t * vm) keyword_str, def_str, params_str, + 128, &sm->srv6_am_dpo_type, format_srv6_am_localsid, unformat_srv6_am_localsid, diff --git a/src/plugins/srv6-as/as.c b/src/plugins/srv6-as/as.c index ea13fc8834e8..ce9243f59e4b 100644 --- a/src/plugins/srv6-as/as.c +++ b/src/plugins/srv6-as/as.c @@ -534,6 +534,7 @@ srv6_as_init (vlib_main_t * vm) keyword_str, def_str, params_str, + 128, &sm->srv6_as_dpo_type, format_srv6_as_localsid, unformat_srv6_as_localsid, diff --git a/src/plugins/srv6-gtp/node.c b/src/plugins/srv6-gtp/node.c new file mode 100644 index 000000000000..a7808dacef99 --- /dev/null +++ b/src/plugins/srv6-gtp/node.c @@ -0,0 +1,208 @@ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include +#include +#include + +typedef struct { + u32 localsid_index; +} srv6_gtp_trace_t; + +/* packet trace format function */ +static u8 * format_srv6_gtp_trace (u8 * s, va_list * args) +{ + CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *); + CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); + srv6_gtp_trace_t * t = va_arg (*args, srv6_gtp_trace_t *); + s = format (s, "SRv6-gtp: localsid_index %d\n", + t->localsid_index); + return s; +} + +vlib_node_registration_t srv6_gtp_node; + +#define foreach_srv6_localsid_counter \ +_(PROCESSED, "srv6-gtp processed packets") \ +_(NO_SRH, "(Error) No SRH.") + +typedef enum { +#define _(sym,str) SRV6_LOCALSID_COUNTER_##sym, + foreach_srv6_localsid_counter +#undef _ + SRV6_LOCALSID_N_COUNTERS, +} srv6_gtp_counters; + +static char * srv6_localsid_counter_strings[] = { +#define _(sym,string) string, + foreach_srv6_localsid_counter +#undef _ +}; + +typedef enum { + SRV6_GTP_NEXT_ERROR, + SRV6_GTP_NEXT_IP4LOOKUP, + SRV6_GTP_N_NEXT, +} srv6_gtp_next_t; + +/* + * @brief Function doing SRH processing for D* variants + */ +static_always_inline void +end_decaps_srh_processing (vlib_node_runtime_t * node, + vlib_buffer_t * b0, + ip6_header_t * ip0, + ip6_sr_header_t * sr0, + ip6_sr_localsid_t * ls0, u32 * next0) +{ + /* Compute the size of the IPv6 header with all Ext. headers */ + u8 next_proto; + ip6_ext_header_t *next_ext_header; + u16 total_size = 0; + + next_proto = ip0->protocol; + next_ext_header = (void *) (ip0 + 1); + total_size = sizeof (ip6_header_t); + while (ip6_ext_hdr (next_proto)) + { + total_size += ip6_ext_header_len (next_ext_header); + next_proto = next_ext_header->next_hdr; + next_ext_header = ip6_ext_next_header (next_ext_header); + } + vlib_buffer_advance (b0, total_size); + return; +} + +/* + * @brief SRv6 Sample Localsid graph node + * WARNING: YOU MUST DO THE DUAL LOOP + */ +static uword +srv6_gtp_fn (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) +{ + u32 n_left_from, * from, * to_next; + u32 next_index; + + ip6_sr_main_t * sm = &sr_main; + + from = vlib_frame_vector_args (frame); + n_left_from = frame->n_vectors; + next_index = node->cached_next_index; + u32 thread_index = vlib_get_thread_index (); + + while (n_left_from > 0) + { + u32 n_left_to_next; + + vlib_get_next_frame (vm, node, next_index, + to_next, n_left_to_next); + + while (n_left_from > 0 && n_left_to_next > 0) + { + u32 bi0; + vlib_buffer_t * b0; + ip6_header_t * ip0 = 0; + ip4_header_t *ip4 = 0; + ip6_sr_header_t * sr0; + ip6_ext_header_t *prev0; + u32 next0 = SRV6_GTP_NEXT_IP4LOOKUP; + ip6_sr_localsid_t *ls0; + srv6_gtp_per_sid_memory_t *ls0_mem; + u32 teid = 0; + u32 sum0 = 0; + u32 new_l0 = 0; + + bi0 = from[0]; + to_next[0] = bi0; + from += 1; + to_next += 1; + n_left_from -= 1; + n_left_to_next -= 1; + + b0 = vlib_get_buffer (vm, bi0); + ip0 = vlib_buffer_get_current (b0); + sr0 = (ip6_sr_header_t *)(ip0+1); + teid = ip0->dst_address.as_u32[3]; + + /* Lookup the SR End behavior based on IP DA (adj) */ + ls0 = pool_elt_at_index (sm->localsids, vnet_buffer(b0)->ip.adj_index[VLIB_TX]); + ls0_mem = ls0->plugin_mem; + + /* SRH processing */ + ip6_ext_header_find_t (ip0, prev0, sr0, IP_PROTOCOL_IPV6_ROUTE); + end_decaps_srh_processing (node, b0, ip0, sr0, ls0, &next0); + ip0 = vlib_buffer_get_current (b0); + + /* Push GTP header */ + ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= vec_len (ls0_mem->rewrite)); + clib_memcpy (((u8 *) ip0) - vec_len (ls0_mem->rewrite), ls0_mem->rewrite, vec_len (ls0_mem->rewrite)); + vlib_buffer_advance (b0, -(word) vec_len (ls0_mem->rewrite)); + + ip4_gtpu_header_t *hdr = vlib_buffer_get_current (b0); + ip4 = &hdr->ip4; + udp_header_t *udp = &hdr->udp; + gtpu_header_t *gtpu = &hdr->gtpu; + gtpu->teid = teid; + + u16 old_l0 = 0; + sum0 = ip4->checksum; + new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain (vm, b0)); + sum0 = ip_csum_update (sum0, old_l0, new_l0, ip4_header_t, length); + ip4->checksum = ip_csum_fold (sum0); + ip4->length = new_l0; + + new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain(vm, b0) - sizeof (*ip4)); + udp->length = new_l0; + new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain(vm, b0) - sizeof (*ip4) - sizeof(*udp)); + gtpu->length = new_l0; + + /* Set Next frame to IP4 lookup */ + next0 = SRV6_GTP_NEXT_IP4LOOKUP; + + if (PREDICT_FALSE(b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_gtp_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); + tr->localsid_index = ls0 - sm->localsids; + } + + /* This increments the SRv6 per LocalSID counters.*/ + vlib_increment_combined_counter + (((next0 == SRV6_GTP_NEXT_ERROR) ? &(sm->sr_ls_invalid_counters) : &(sm->sr_ls_valid_counters)), + thread_index, + ls0 - sm->localsids, + 1, vlib_buffer_length_in_chain (vm, b0)); + + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, + n_left_to_next, bi0, next0); + } + vlib_put_next_frame (vm, node, next_index, n_left_to_next); + } + return frame->n_vectors; +} + +VLIB_REGISTER_NODE (srv6_gtp_node) = { + .function = srv6_gtp_fn, + .name = "srv6-gtp", + .vector_size = sizeof (u32), + .format_trace = format_srv6_gtp_trace, + .type = VLIB_NODE_TYPE_INTERNAL, + .n_errors = SRV6_LOCALSID_N_COUNTERS, + .error_strings = srv6_localsid_counter_strings, + .n_next_nodes = 2, + .next_nodes = { + [SRV6_GTP_NEXT_IP4LOOKUP] = "ip4-lookup", + [SRV6_GTP_NEXT_ERROR] = "error-drop", + }, +}; diff --git a/src/plugins/srv6-gtp/srv6_gtp.c b/src/plugins/srv6-gtp/srv6_gtp.c new file mode 100755 index 000000000000..e4a992f68fab --- /dev/null +++ b/src/plugins/srv6-gtp/srv6_gtp.c @@ -0,0 +1,221 @@ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + *------------------------------------------------------------------ + * srv6_gtp.c - SRv6 LocalSID doing SRv6->GTP translation + *------------------------------------------------------------------ + */ + +#include +#include +#include +#include +#include +#include + +unsigned char srv6_localsid_name[32] = "SRv6 to GTP"; +unsigned char keyword_str[32] = "end.gtp"; +unsigned char def_str[64] = "This SRv6 localSID maps SRv6 traffic into a GTP tunnel"; +unsigned char params_str[32] = "sa da "; +u8 prefix_length = 96; //4B will be Arguments. Size used in FIB entry + +/*****************************************/ +/* SRv6 LocalSID instantiation and removal functions */ +static int +srv6_localsid_creation_fn (ip6_sr_localsid_t *localsid) +{ + /* + * Do you want to do anything fancy upon localsid instantiation? + * You can do it here + * (If return != 0 the localsid creation will be cancelled.) + */ + /* As an example Im going to do a +1 to the fib table inserted by the user */ + srv6_gtp_per_sid_memory_t *ls_mem = (void*)localsid->plugin_mem; + //Prepare rewrite string + + vec_validate_aligned (ls_mem->rewrite, sizeof(ip4_gtpu_header_t)-1, CLIB_CACHE_LINE_BYTES); + + ip4_gtpu_header_t *hdr = (void *)ls_mem->rewrite; + ip4_header_t *ip = &hdr->ip4; + udp_header_t *udp = &hdr->udp; + gtpu_header_t *gtpu = &hdr->gtpu; + + ip->ip_version_and_header_length = 0x45; + ip->ttl = 64; + ip->protocol = IP_PROTOCOL_UDP; + ip->src_address = ls_mem->src_addr; + ip->dst_address = ls_mem->dst_addr; + ip->checksum = ip4_header_checksum (ip); + + udp->src_port = clib_host_to_net_u16 (2152); + udp->dst_port = clib_host_to_net_u16 (UDP_DST_PORT_GTPU); + + gtpu->ver_flags = GTPU_V1_VER | GTPU_PT_GTP; + gtpu->type = GTPU_TYPE_GTPU; + return 0; +} + +static int +srv6_localsid_removal_fn (ip6_sr_localsid_t *localsid) +{ + /* Do you want to do anything fancy upon localsid removal? + * You can do it here + * (If return != 0 the localsid removal will be cancelled.) + */ + /* + * BTW if you stored something in localsid->plugin_mem you should clean it now + */ + clib_mem_free(((srv6_gtp_per_sid_memory_t *)localsid->plugin_mem)->rewrite); + //In this example we are only cleaning the memory allocated per localsid + clib_mem_free(localsid->plugin_mem); + return 0; +} + +/**********************************/ +/* SRv6 LocalSID format functions */ +/* + * Prints nicely the parameters of a localsid + * Example: print "Table 5" + */ +u8 * +format_srv6_gtp (u8 * s, va_list * args) +{ + srv6_gtp_per_sid_memory_t *ls_mem = va_arg (*args, void *); + s = format (s, "IPv4 SA: %U\n", format_ip4_address, &ls_mem->src_addr); + s = format (s, "IPv4 DA: %U", format_ip4_address, &ls_mem->dst_addr); + return s; +} + +/* + * Process the parameters of a localsid + * Example: process from: + * sr localsid address cafe::1 behavior new_srv6_localsid 5 + * everything from behavior on... so in this case 'new_srv6_localsid 5' + * Notice that it MUST match the keyword_str and params_str defined above. + */ +//"sa da teid "; +uword +unformat_srv6_gtp (unformat_input_t * input, va_list * args) +{ + void **plugin_mem = va_arg (*args, void **); + srv6_gtp_per_sid_memory_t *ls_mem; + ip4_address_t sa, da; + char sa_set, da_set; + sa_set = da_set = 0; + + if (!unformat (input, "end.gtp")) + return 0; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (!sa_set && unformat (input, "src %U", unformat_ip4_address, &sa)) + sa_set = 1; + + if (!da_set && unformat (input, "dst %U", unformat_ip4_address, &da)) + da_set = 1; + else + break; + } + + if(sa_set && da_set) + { + /* Allocate a portion of memory */ + ls_mem = clib_mem_alloc_aligned_at_offset (sizeof(srv6_gtp_per_sid_memory_t), 0, 0, 1); + + /* Set to zero the memory */ + memset (ls_mem, 0, sizeof(srv6_gtp_per_sid_memory_t)); + + /* Our brand-new car is ready */ + ls_mem->src_addr = sa; + ls_mem->dst_addr = da; + + /* Dont forget to add it to the localsid */ + *plugin_mem = ls_mem; + return 1; + } + return 0; +} + +/*************************/ +/* SRv6 LocalSID FIB DPO */ +static u8 * +format_srv6_gtp_dpo (u8 * s, va_list * args) +{ + index_t index = va_arg (*args, index_t); + CLIB_UNUSED (u32 indent) = va_arg (*args, u32); + + return (format (s, "SR: srv6-to-gtp:[%u]", index)); +} + +void +srv6_gtp_dpo_lock (dpo_id_t * dpo) +{ +} + +void +srv6_gtp_dpo_unlock (dpo_id_t * dpo) +{ +} + +const static dpo_vft_t srv6_gtp_vft = { + .dv_lock = srv6_gtp_dpo_lock, + .dv_unlock = srv6_gtp_dpo_unlock, + .dv_format = format_srv6_gtp_dpo, +}; + +const static char *const srv6_gtp_ip6_nodes[] = { + "srv6-gtp", + NULL, +}; + +const static char *const *const srv6_gtp_nodes[DPO_PROTO_NUM] = { + [DPO_PROTO_IP6] = srv6_gtp_ip6_nodes, +}; + +/**********************/ +static clib_error_t * srv6_gtp_init (vlib_main_t * vm) +{ + srv6_gtp_main_t * sm = &srv6_gtp_main; + int rv = 0; + /* Create DPO */ + sm->srv6_gtp_dpo_type = dpo_register_new_type ( + &srv6_gtp_vft, srv6_gtp_nodes); + + /* Register SRv6 LocalSID */ + rv = sr_localsid_register_function (vm, + srv6_localsid_name, + keyword_str, + def_str, + params_str, + prefix_length, + &sm->srv6_gtp_dpo_type, + format_srv6_gtp, + unformat_srv6_gtp, + srv6_localsid_creation_fn, + srv6_localsid_removal_fn); + if (rv < 0) + clib_error_return (0, "SRv6 LocalSID function could not be registered."); + else + sm->srv6_localsid_behavior_id = rv; + + return 0; +} + +VLIB_INIT_FUNCTION (srv6_gtp_init); + +VLIB_PLUGIN_REGISTER () = { + .version = VPP_BUILD_VER, + .description = "SRv6-to-GTP", +}; diff --git a/src/plugins/srv6-gtp/srv6_gtp.h b/src/plugins/srv6-gtp/srv6_gtp.h new file mode 100644 index 000000000000..ce183b46a336 --- /dev/null +++ b/src/plugins/srv6-gtp/srv6_gtp.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2015 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef __included_srv6_gtp_h__ +#define __included_srv6_gtp_h__ + +#include +#include +#include +#include +#include + +#include +#include +#include + + +typedef struct { + /* API message ID base */ + u16 msg_id_base; + + /* convenience */ + vlib_main_t * vlib_main; + vnet_main_t * vnet_main; + + /* DPO type */ + dpo_type_t srv6_gtp_dpo_type; + + /* SRv6 LocalSID behavior number */ + u32 srv6_localsid_behavior_id; +} srv6_gtp_main_t; + +/* + * This is the memory that will be stored per each localsid + * the user instantiates + */ +typedef struct { + ip4_address_t src_addr; + ip4_address_t dst_addr; + u8 *rewrite; +} srv6_gtp_per_sid_memory_t ; + +srv6_gtp_main_t srv6_gtp_main; + +format_function_t format_srv6_gtp; +unformat_function_t unformat_srv6_gtp; + +void srv6_gtp_dpo_lock (dpo_id_t * dpo); +void srv6_gtp_dpo_unlock (dpo_id_t * dpo); + +extern vlib_node_registration_t srv6_gtp_node; + +#endif /* __included_srv6_gtp_h__ */ diff --git a/src/plugins/srv6_gtp.am b/src/plugins/srv6_gtp.am new file mode 100644 index 000000000000..89aef14b2ba8 --- /dev/null +++ b/src/plugins/srv6_gtp.am @@ -0,0 +1,22 @@ +# Copyright (c) 2016 Cisco Systems, Inc. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +vppplugins_LTLIBRARIES += srv6gtp_plugin.la + +srv6gtp_plugin_la_SOURCES = \ + srv6-gtp/srv6_gtp.c \ + srv6-gtp/node.c + +noinst_HEADERS += srv6-gtp/srv6_gtp.h + +# vi:syntax=automake diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 2353b284363b..c40807c588ce 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -54,6 +54,27 @@ #define SR_SEGMENT_LIST_WEIGHT_DEFAULT 1 +typedef struct +{ + u8 ver_flags; + u8 type; + u16 length; /* length in octets of the payload */ + u32 teid; +} __attribute__ ((packed)) gtpu_header_t; + +/* *INDENT-OFF* */ +typedef struct +{ + ip4_header_t ip4; /* 20 bytes */ + udp_header_t udp; /* 8 bytes */ + gtpu_header_t gtpu; /* 8 bytes */ +} __attribute__ ((packed)) ip4_gtpu_header_t; +/* *INDENT-ON* */ +#define GTPU_V1_VER (1<<5) + +#define GTPU_PT_GTP (1<<4) +#define GTPU_TYPE_GTPU 255 + /** * @brief SR Segment List (SID list) */ @@ -141,6 +162,8 @@ typedef struct u8 *params_str; /**< Behavior parameters (i.e. ) */ + u8 prefix_length; + dpo_type_t dpo; /**< DPO type registration */ format_function_t *ls_format; /**< LocalSID format function */ @@ -250,7 +273,7 @@ extern void sr_dpo_unlock (dpo_id_t * dpo); extern int sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, u8 * keyword_str, u8 * def_str, - u8 * params_str, dpo_type_t * dpo, + u8 * params_str, u8 prefix_length, dpo_type_t * dpo, format_function_t * ls_format, unformat_function_t * ls_unformat, sr_plugin_callback_t * creation_fn, diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index 7aeb1b680b26..b26bf18510b2 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -70,6 +70,8 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, ip6_sr_main_t *sm = &sr_main; uword *p; int rv; + u8 pref_length = 128; + sr_localsid_fn_registration_t *plugin = 0; ip6_sr_localsid_t *ls = 0; @@ -81,21 +83,25 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, if (p) { if (is_del) - { - /* Retrieve localsid */ - ls = pool_elt_at_index (sm->localsids, p[0]); + { + /* Retrieve localsid */ + ls = pool_elt_at_index (sm->localsids, p[0]); + if (ls->behavior >= SR_BEHAVIOR_LAST) + { + plugin = pool_elt_at_index (sm->plugin_functions, ls->behavior - SR_BEHAVIOR_LAST); + pref_length = plugin->prefix_length; + } /* Delete FIB entry */ fib_prefix_t pfx = { .fp_proto = FIB_PROTOCOL_IP6, - .fp_len = 128, + .fp_len = pref_length, .fp_addr = { .ip6 = *localsid_addr, } }; fib_table_entry_delete (fib_table_find (FIB_PROTOCOL_IP6, - fib_table), - &pfx, FIB_SOURCE_SR); + fib_table), &pfx, FIB_SOURCE_SR); /* In case it is a Xconnect iface remove the (OIF, NHOP) adj */ if (ls->behavior == SR_BEHAVIOR_X || ls->behavior == SR_BEHAVIOR_DX6 @@ -103,14 +109,8 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, adj_unlock (ls->nh_adj); if (ls->behavior >= SR_BEHAVIOR_LAST) - { - sr_localsid_fn_registration_t *plugin = 0; - plugin = pool_elt_at_index (sm->plugin_functions, - ls->behavior - SR_BEHAVIOR_LAST); - /* Callback plugin removal function */ rv = plugin->removal (ls); - } /* Delete localsid registry */ pool_put (sm->localsids, ls); @@ -125,10 +125,16 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, if (is_del) return -2; + if (behavior >= SR_BEHAVIOR_LAST) + { + sr_localsid_fn_registration_t *plugin = 0; + plugin = pool_elt_at_index (sm->plugin_functions, behavior - SR_BEHAVIOR_LAST); + pref_length = plugin->prefix_length; + } /* Check whether there exists a FIB entry with such address */ fib_prefix_t pfx = { .fp_proto = FIB_PROTOCOL_IP6, - .fp_len = 128, + .fp_len = pref_length, }; pfx.fp_addr.as_u64[0] = localsid_addr->as_u64[0]; @@ -1524,7 +1530,7 @@ const static char *const *const sr_loc_d_nodes[DPO_PROTO_NUM] = { int sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, u8 * keyword_str, u8 * def_str, - u8 * params_str, dpo_type_t * dpo, + u8 * params_str, u8 prefix_length, dpo_type_t * dpo, format_function_t * ls_format, unformat_function_t * ls_unformat, sr_plugin_callback_t * creation_fn, @@ -1553,6 +1559,7 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, plugin->sr_localsid_function_number = (plugin - sm->plugin_functions); plugin->sr_localsid_function_number += SR_BEHAVIOR_LAST; + plugin->prefix_length = prefix_length; plugin->ls_format = ls_format; plugin->ls_unformat = ls_unformat; plugin->creation = creation_fn; diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index e9c42211209d..6d75be2d6046 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -115,7 +115,7 @@ static ip6_address_t sr_pr_encaps_src; void sr_set_source (ip6_address_t * address) { - clib_memcpy_fast (&sr_pr_encaps_src, address, sizeof (sr_pr_encaps_src)); + clib_memcpy (&sr_pr_encaps_src, address, sizeof (sr_pr_encaps_src)); } static clib_error_t * @@ -192,8 +192,8 @@ compute_rewrite_encaps (ip6_address_t * sl) addrp = srh->segments + vec_len (sl) - 1; vec_foreach (this_address, sl) { - clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + clib_memcpy (addrp->as_u8, this_address->as_u8, + sizeof (ip6_address_t)); addrp--; } } @@ -234,8 +234,7 @@ compute_rewrite_insert (ip6_address_t * sl) addrp = srh->segments + vec_len (sl); vec_foreach (this_address, sl) { - clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + clib_memcpy (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); addrp--; } return rs; @@ -273,8 +272,7 @@ compute_rewrite_bsid (ip6_address_t * sl) addrp = srh->segments + vec_len (sl) - 1; vec_foreach (this_address, sl) { - clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + clib_memcpy (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); addrp--; } return rs; @@ -303,7 +301,7 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, ip6_sr_sl_t *segment_list; pool_get (sm->sid_lists, segment_list); - clib_memset (segment_list, 0, sizeof (*segment_list)); + memset (segment_list, 0, sizeof (*segment_list)); vec_add1 (sr_policy->segments_lists, segment_list - sm->sid_lists); @@ -590,8 +588,8 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Add an SR policy object */ pool_get (sm->sr_policies, sr_policy); - clib_memset (sr_policy, 0, sizeof (*sr_policy)); - clib_memcpy_fast (&sr_policy->bsid, bsid, sizeof (ip6_address_t)); + memset (sr_policy, 0, sizeof (*sr_policy)); + clib_memcpy (&sr_policy->bsid, bsid, sizeof (ip6_address_t)); sr_policy->type = behavior; sr_policy->fib_table = (fib_table != (u32) ~ 0 ? fib_table : 0); //Is default FIB 0 ? sr_policy->is_encap = is_encap; @@ -854,8 +852,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, if (unformat (input, "next %U", unformat_ip6_address, &next_address)) { vec_add2 (segments, this_seg, 1); - clib_memcpy_fast (this_seg->as_u8, next_address.as_u8, - sizeof (*this_seg)); + clib_memcpy (this_seg->as_u8, next_address.as_u8, + sizeof (*this_seg)); } else if (unformat (input, "add sl")) operation = 1; @@ -888,7 +886,6 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, is_encap); - vec_free (segments); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -906,7 +903,6 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_mod ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), sr_policy_index, fib_table, operation, segments, sl_index, weight); - vec_free (segments); } switch (rv) @@ -1161,14 +1157,14 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, ip2_encap = vlib_buffer_get_current (b2); ip3_encap = vlib_buffer_get_current (b3); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip1_encap) - vec_len (sl1->rewrite), + sl1->rewrite, vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) ip2_encap) - vec_len (sl2->rewrite), + sl2->rewrite, vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) ip3_encap) - vec_len (sl3->rewrite), + sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -1191,40 +1187,40 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -1259,8 +1255,8 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, ip0_encap = vlib_buffer_get_current (b0); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); ip0 = vlib_buffer_get_current (b0); @@ -1272,10 +1268,10 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } encap_pkts++; @@ -1319,32 +1315,22 @@ VLIB_REGISTER_NODE (sr_policy_rewrite_encaps_node) = { * @brief IPv4 encapsulation processing as per RFC2473 */ static_always_inline void -encaps_processing_v4 (vlib_node_runtime_t * node, +encaps_processing_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * b0, - ip6_header_t * ip0, ip4_header_t * ip0_encap) + ip6_header_t * ip0) { u32 new_l0; ip6_sr_header_t *sr0; - u32 checksum0; - - /* Inner IPv4: Decrement TTL & update checksum */ - ip0_encap->ttl -= 1; - checksum0 = ip0_encap->checksum + clib_host_to_net_u16 (0x0100); - checksum0 += checksum0 >= 0xffff; - ip0_encap->checksum = checksum0; - /* Outer IPv6: Update length, FL, proto */ - new_l0 = ip0->payload_length + clib_net_to_host_u16 (ip0_encap->length); + new_l0 = vlib_buffer_length_in_chain(vm, b0) - sizeof (ip6_header_t); ip0->payload_length = clib_host_to_net_u16 (new_l0); - ip0->ip_version_traffic_class_and_flow_label = - clib_host_to_net_u32 (0 | ((6 & 0xF) << 28) | - ((ip0_encap->tos & 0xFF) << 20)); + ip0->ip_version_traffic_class_and_flow_label =clib_host_to_net_u32 (0 | ((6 & 0xF) << 28)) ; if (ip0->protocol == IP_PROTOCOL_IPV6_ROUTE) - { - sr0 = (void *) (ip0 + 1); - sr0->protocol = IP_PROTOCOL_IP_IN_IP; - } + { + sr0 = (void *) (ip0 + 1); + sr0->protocol = IP_PROTOCOL_IP_IN_IP; + } else ip0->protocol = IP_PROTOCOL_IP_IN_IP; } @@ -1364,8 +1350,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, next_index = node->cached_next_index; - int encap_pkts = 0, bsid_pkts = 0; - while (n_left_from > 0) { u32 n_left_to_next; @@ -1380,8 +1364,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; - ip4_header_t *ip0_encap, *ip1_encap, *ip2_encap, *ip3_encap; + ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; + ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; + u32 teid0, teid1, teid2, teid3; /* Prefetch next iteration. */ { @@ -1430,43 +1416,52 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sl3 = pool_elt_at_index (sm->sid_lists, vnet_buffer (b3)->ip.adj_index[VLIB_TX]); - ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl0->rewrite)); - ASSERT (b1->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl1->rewrite)); - ASSERT (b2->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl2->rewrite)); - ASSERT (b3->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl3->rewrite)); - - ip0_encap = vlib_buffer_get_current (b0); - ip1_encap = vlib_buffer_get_current (b1); - ip2_encap = vlib_buffer_get_current (b2); - ip3_encap = vlib_buffer_get_current (b3); - - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); - - vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); - vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); - vlib_buffer_advance (b2, -(word) vec_len (sl2->rewrite)); - vlib_buffer_advance (b3, -(word) vec_len (sl3->rewrite)); - - ip0 = vlib_buffer_get_current (b0); - ip1 = vlib_buffer_get_current (b1); - ip2 = vlib_buffer_get_current (b2); - ip3 = vlib_buffer_get_current (b3); - encaps_processing_v4 (node, b0, ip0, ip0_encap); - encaps_processing_v4 (node, b1, ip1, ip1_encap); - encaps_processing_v4 (node, b2, ip2, ip2_encap); - encaps_processing_v4 (node, b3, ip3, ip3_encap); + hdr0 = vlib_buffer_get_current (b0); + hdr1 = vlib_buffer_get_current (b1); + hdr2 = vlib_buffer_get_current (b2); + hdr3 = vlib_buffer_get_current (b3); + + teid0 = hdr0->gtpu.teid; + teid1 = hdr1->gtpu.teid; + teid2 = hdr2->gtpu.teid; + teid3 = hdr3->gtpu.teid; + + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); + + clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); + clib_memcpy (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); + clib_memcpy (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); + + vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); + vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); + vlib_buffer_advance (b2, -(word) vec_len (sl2->rewrite)); + vlib_buffer_advance (b3, -(word) vec_len (sl3->rewrite)); + + ip0 = vlib_buffer_get_current (b0); + ip1 = vlib_buffer_get_current (b1); + ip2 = vlib_buffer_get_current (b2); + ip3 = vlib_buffer_get_current (b3); + + encaps_processing_v4 (vm, node, b0, ip0); + encaps_processing_v4 (vm, node, b1, ip1); + encaps_processing_v4 (vm, node, b2, ip2); + encaps_processing_v4 (vm, node, b3, ip3); + + /* Set the TEID in the last SID args */ + sr0 = (void*)(ip0+1); + sr1 = (void*)(ip1+1); + sr2 = (void*)(ip2+1); + sr3 = (void*)(ip3+1); + + sr0->segments->as_u32[3] = teid0; + sr1->segments->as_u32[3] = teid1; + sr2->segments->as_u32[3] = teid2; + sr3->segments->as_u32[3] = teid3; if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE))) { @@ -1474,44 +1469,43 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } - encap_pkts += 4; vlib_validate_buffer_enqueue_x4 (vm, node, next_index, to_next, n_left_to_next, bi0, bi1, bi2, bi3, next0, next1, next2, next3); @@ -1523,8 +1517,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 bi0; vlib_buffer_t *b0; ip6_header_t *ip0 = 0; - ip4_header_t *ip0_encap = 0; ip6_sr_sl_t *sl0; + ip6_sr_header_t *sr0; + ip4_gtpu_header_t *hdr0; + u32 teid0; + u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; bi0 = from[0]; @@ -1538,31 +1535,28 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sl0 = pool_elt_at_index (sm->sid_lists, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); - ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= - vec_len (sl0->rewrite)); - - ip0_encap = vlib_buffer_get_current (b0); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); - - ip0 = vlib_buffer_get_current (b0); - - encaps_processing_v4 (node, b0, ip0, ip0_encap); + hdr0 = vlib_buffer_get_current (b0); + teid0 = hdr0->gtpu.teid; + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); + vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); + ip0 = vlib_buffer_get_current (b0); + encaps_processing_v4 (vm, node, b0, ip0); + sr0 = (void*)(ip0+1); + sr0->segments->as_u32[3] = teid0; if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } - encap_pkts++; vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); } @@ -1570,14 +1564,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_put_next_frame (vm, node, next_index, n_left_to_next); } - /* Update counters */ - vlib_node_increment_counter (vm, sr_policy_rewrite_encaps_node.index, - SR_POLICY_REWRITE_ERROR_COUNTER_TOTAL, - encap_pkts); - vlib_node_increment_counter (vm, sr_policy_rewrite_encaps_node.index, - SR_POLICY_REWRITE_ERROR_COUNTER_BSID, - bsid_pkts); - return from_frame->n_vectors; } @@ -1801,14 +1787,14 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, en2 = vlib_buffer_get_current (b2); en3 = vlib_buffer_get_current (b3); - clib_memcpy_fast (((u8 *) en0) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) en1) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) en2) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) en3) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, + vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) en1) - vec_len (sl1->rewrite), sl1->rewrite, + vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) en2) - vec_len (sl2->rewrite), sl2->rewrite, + vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) en3) - vec_len (sl3->rewrite), sl3->rewrite, + vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -1870,40 +1856,40 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -1957,8 +1943,8 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, en0 = vlib_buffer_get_current (b0); - clib_memcpy_fast (((u8 *) en0) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, + vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -1980,10 +1966,10 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } encap_pkts++; @@ -2147,23 +2133,23 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr3 = (ip6_sr_header_t *) (ip3 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, - (void *) sr0 - (void *) ip0); - clib_memcpy_fast ((u8 *) ip1 - vec_len (sl1->rewrite), (u8 *) ip1, - (void *) sr1 - (void *) ip1); - clib_memcpy_fast ((u8 *) ip2 - vec_len (sl2->rewrite), (u8 *) ip2, - (void *) sr2 - (void *) ip2); - clib_memcpy_fast ((u8 *) ip3 - vec_len (sl3->rewrite), (u8 *) ip3, - (void *) sr3 - (void *) ip3); - - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite)), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) sr1 - vec_len (sl1->rewrite)), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) sr2 - vec_len (sl2->rewrite)), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) sr3 - vec_len (sl3->rewrite)), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy ((u8 *) ip1 - vec_len (sl1->rewrite), (u8 *) ip1, + (void *) sr1 - (void *) ip1); + clib_memcpy ((u8 *) ip2 - vec_len (sl2->rewrite), (u8 *) ip2, + (void *) sr2 - (void *) ip2); + clib_memcpy ((u8 *) ip3 - vec_len (sl3->rewrite), (u8 *) ip3, + (void *) sr3 - (void *) ip3); + + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, + vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) sr1 - vec_len (sl1->rewrite)), sl1->rewrite, + vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) sr2 - vec_len (sl2->rewrite)), sl2->rewrite, + vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) sr3 - vec_len (sl3->rewrite)), sl3->rewrite, + vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -2286,40 +2272,40 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -2362,10 +2348,10 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr0 = (ip6_sr_header_t *) (ip0 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, - (void *) sr0 - (void *) ip0); - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite)), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, + vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -2402,10 +2388,10 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } insert_pkts++; @@ -2569,23 +2555,23 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr3 = (ip6_sr_header_t *) (ip3 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), - (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy_fast ((u8 *) ip1 - vec_len (sl1->rewrite_bsid), - (u8 *) ip1, (void *) sr1 - (void *) ip1); - clib_memcpy_fast ((u8 *) ip2 - vec_len (sl2->rewrite_bsid), - (u8 *) ip2, (void *) sr2 - (void *) ip2); - clib_memcpy_fast ((u8 *) ip3 - vec_len (sl3->rewrite_bsid), - (u8 *) ip3, (void *) sr3 - (void *) ip3); - - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), - sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); - clib_memcpy_fast (((u8 *) sr1 - vec_len (sl1->rewrite_bsid)), - sl1->rewrite_bsid, vec_len (sl1->rewrite_bsid)); - clib_memcpy_fast (((u8 *) sr2 - vec_len (sl2->rewrite_bsid)), - sl2->rewrite_bsid, vec_len (sl2->rewrite_bsid)); - clib_memcpy_fast (((u8 *) sr3 - vec_len (sl3->rewrite_bsid)), - sl3->rewrite_bsid, vec_len (sl3->rewrite_bsid)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy ((u8 *) ip1 - vec_len (sl1->rewrite_bsid), (u8 *) ip1, + (void *) sr1 - (void *) ip1); + clib_memcpy ((u8 *) ip2 - vec_len (sl2->rewrite_bsid), (u8 *) ip2, + (void *) sr2 - (void *) ip2); + clib_memcpy ((u8 *) ip3 - vec_len (sl3->rewrite_bsid), (u8 *) ip3, + (void *) sr3 - (void *) ip3); + + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), + sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); + clib_memcpy (((u8 *) sr1 - vec_len (sl1->rewrite_bsid)), + sl1->rewrite_bsid, vec_len (sl1->rewrite_bsid)); + clib_memcpy (((u8 *) sr2 - vec_len (sl2->rewrite_bsid)), + sl2->rewrite_bsid, vec_len (sl2->rewrite_bsid)); + clib_memcpy (((u8 *) sr3 - vec_len (sl3->rewrite_bsid)), + sl3->rewrite_bsid, vec_len (sl3->rewrite_bsid)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite_bsid)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite_bsid)); @@ -2699,40 +2685,40 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -2775,10 +2761,10 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr0 = (ip6_sr_header_t *) (ip0 + 1); - clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), - (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), - sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); + clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, + (void *) sr0 - (void *) ip0); + clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), + sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite_bsid)); @@ -2813,10 +2799,10 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } insert_pkts++; @@ -2999,14 +2985,14 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, end_bsid_encaps_srh_processing (node, b2, ip2_encap, sr2, &next2); end_bsid_encaps_srh_processing (node, b3, ip3_encap, sr3, &next3); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip1_encap) - vec_len (sl1->rewrite), + sl1->rewrite, vec_len (sl1->rewrite)); + clib_memcpy (((u8 *) ip2_encap) - vec_len (sl2->rewrite), + sl2->rewrite, vec_len (sl2->rewrite)); + clib_memcpy (((u8 *) ip3_encap) - vec_len (sl3->rewrite), + sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); @@ -3029,40 +3015,40 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } } @@ -3102,8 +3088,8 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, IP_PROTOCOL_IPV6_ROUTE); end_bsid_encaps_srh_processing (node, b0, ip0_encap, sr0, &next0); - clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); ip0 = vlib_buffer_get_current (b0); @@ -3115,10 +3101,10 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, - sizeof (tr->dst.as_u8)); + clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + sizeof (tr->dst.as_u8)); } encap_pkts++; From 367a4925b0ce24c0aa3ea8b951309a9e29acf722 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Tue, 5 Mar 2019 00:50:47 -0800 Subject: [PATCH 003/154] IETF104: build scripts & configuration Change-Id: I0826978f6b5ef180310c7ca72a848cdccfe53164 Signed-off-by: Filip Varga --- extras/ietf104/Dockerfile.j2 | 49 ++++++ extras/ietf104/requirements.txt | 2 + extras/ietf104/runner.py | 295 ++++++++++++++++++++++++++++++++ extras/ietf104/startup.conf.j2 | 14 ++ src/vnet/dpo/dpo.c | 2 +- 5 files changed, 361 insertions(+), 1 deletion(-) create mode 100644 extras/ietf104/Dockerfile.j2 create mode 100644 extras/ietf104/requirements.txt create mode 100755 extras/ietf104/runner.py create mode 100644 extras/ietf104/startup.conf.j2 diff --git a/extras/ietf104/Dockerfile.j2 b/extras/ietf104/Dockerfile.j2 new file mode 100644 index 000000000000..f0bff0945d7b --- /dev/null +++ b/extras/ietf104/Dockerfile.j2 @@ -0,0 +1,49 @@ + +FROM ubuntu:18.04 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + inetutils-traceroute \ + ca-certificates \ + build-essential \ + git gdb sudo \ + iputils-ping \ + net-tools \ + iproute2 \ + tcpdump \ + netcat; \ + rm -rf /var/lib/apt/lists/*; \ + mv /usr/sbin/tcpdump /usr/bin/tcpdump + +RUN set -eux; \ + mkdir -p {{vpp_path}} + +COPY . / {{vpp_path}}/ + +WORKDIR {{vpp_path}} + +RUN set -eux; \ + export UNATTENDED=y; \ + make install-dep; \ + rm -rf /var/lib/apt/lists/* + +RUN set -eux; \ + export UNATTENDED=y; \ + make wipe; \ + make build; \ + make pkg-deb; \ + rm -rf .ccache; \ + find . -type f -name '*.o' -exec rm -rf '{}' \; + +WORKDIR {{vpp_path}}/build-root + +RUN set -eux; \ + dpkg -i vpp-lib_*.deb vpp_*.deb vpp-dev_*.deb vpp-plugins_*.deb vpp-dbg_*.deb + +WORKDIR /usr/share/vpp/plugins/perfmon + +RUN tar Jxf PerfmonTables.tar.xz + +CMD vpp -c {{vpp_path}}/startup.conf + diff --git a/extras/ietf104/requirements.txt b/extras/ietf104/requirements.txt new file mode 100644 index 000000000000..0b79bff22db8 --- /dev/null +++ b/extras/ietf104/requirements.txt @@ -0,0 +1,2 @@ +docker +jinja2 diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py new file mode 100755 index 000000000000..316f81f9dfb0 --- /dev/null +++ b/extras/ietf104/runner.py @@ -0,0 +1,295 @@ +#!/usr/bin/env python3 + +from os.path import dirname, realpath, split, join +from os import remove +from logging import getLogger, basicConfig, DEBUG, \ + INFO, ERROR +from argparse import ArgumentParser +from subprocess import Popen, run +from atexit import register +import sys + +from jinja2 import Environment, FileSystemLoader +from docker.errors import NotFound +from docker import from_env + + +verbose_levels = { + 'error': ERROR, + 'debug': DEBUG, + 'info': INFO} + + +class Container(object): + + def __init__(self, ref, name): + self._name = name + self._ref = ref + + @property + def name(self): + return self._name + + @classmethod + def new(cls, client, image, name): + ref = client.containers.run(detach=True, + remove=True, auto_remove=True, + image=image, name=name, + network_mode=None, + command="sleep 300") + return cls(ref, name) + + @classmethod + def get(cls, client, name): + try: + ref = client.containers.get(name) + except NotFound: + pass + else: + return cls(ref, name) + + def rem(self): + self._ref.kill() + + +class Containers(object): + + def __init__(self, client, image): + self.client = client + self.image = image + + def tmp_render(self, path, template, kwargs): + + with open(path, "w") as fo: + fo.write(template.render(**kwargs)) + + register(lambda : remove(path)) + + def build(self, path, vpp_path): + env = Environment( + loader=FileSystemLoader(path), + trim_blocks=True) + + self.tmp_render(join(vpp_path, "Dockerfile"), + env.get_template("Dockerfile.j2"), + {'vpp_path': vpp_path}) + + self.tmp_render(join(vpp_path, "startup.conf"), + env.get_template("startup.conf.j2"), + {'vpp_path': vpp_path}) + + ref, _ = self.client.images.build(path=vpp_path, + tag=self.image, rm=True) + return ref + + def new(self, name): + return Container.new(self.client, self.image, name) + + def get(self, name): + return Container.get(self.client, name) + + +class Network(object): + + def __init__(self, ref, name): + self._name = name + self._ref = ref + + @property + def name(self): + return self._name + + @classmethod + def new(cls, client, name): + ref = client.networks.create( + name, driver="bridge", + check_duplicate=True) + return cls(ref, name) + + @classmethod + def get(cls, client, name): + try: + ref = client.networks.get(name) + except NotFound: + pass + else: + return cls(ref, name) + + def rem(self): + self._ref.remove() + + def connect(self, c): + self._ref.connect(c.name) + + +class Networks(object): + + def __init__(self, client): + self.client = client + + def new(self, name): + return Network.new(self.client, name) + + def get(self, name): + return Network.get(self.client, name) + + +class Program(object): + + image = "ietf104-image" + prefix = "hck" + + instance_names = [ + "vpp-1", + "vpp-2", + "vpp-3", + "vpp-4" + ] + + network_names = [ + "net-1", + "net-2", + "net-3", + ] + + def __init__(self, image=None, prefix=None): + self.path = dirname(realpath(__file__)) + + client = from_env() + self.containers = Containers(client, self.image) + self.networks = Networks(client) + + if prefix is not None: + self.prefix = prefix + if image: + self.image = image + + self.logger = getLogger(__name__) + + @property + def vpp_path(self): + return split(split(self.path)[0])[0] + + def get_name(self, name): + if not self.prefix: + return name + return "{}-{}".format(self.prefix, name) + + def stop_containers(self): + + for name in self.instance_names: + instance = self.containers.get(self.get_name(name)) + if instance: + instance.rem() + + for name in self.network_names: + network = self.networks.get(self.get_name(name)) + if network: + network.rem() + + def start_containers(self): + + networks = list() + + for name in self.network_names: + networks.append(self.networks.new(self.get_name(name))) + + n1, n2, n3 = networks + + instances = list() + + for name in self.instance_names: + instances.append(self.containers.new(self.get_name(name))) + + c1, c2, c3, c4 = instances + + n1.connect(c1) + n1.connect(c2) + + n2.connect(c2) + n2.connect(c3) + + n3.connect(c3) + n3.connect(c4) + + # TODO: + # 1) connect networks to vpp instances (default + pg interface) + # 2) configure ipv6 addresses for each network interface + + # TODO: we need to somehow map pg_interface from vpp instance + # in container to localhost so we can programatically access + # it and write/read packets directly from the interface + + # TODO: + # 3) send ping over pg_interface + + def restart_containers(self): + self.stop_containers() + self.start_containers() + + def build_image(self): + # TODO: run make wipe & other commands on the repo + # before calling docker build + self.containers.build(self.path, self.vpp_path) + + +def get_args(): + parser = ArgumentParser() + + parser.add_argument("--verbose", choices=[ + 'error', 'debug', 'info']) + + subparsers = parser.add_subparsers() + + p1 = subparsers.add_parser("infra") + + p1.add_argument("op", choices=[ + 'stop', 'start', 'restart', 'build']) + + p1.add_argument("--prefix") + p1.add_argument("--image") + + p2 = subparsers.add_parser("vpp") + + p2.add_argument("op", choices=[ + 'connect']) + p2.add_argument("name") + + return vars(parser.parse_args()) + + +def main(op, image=None, prefix=None, verbose=None, name=None): + + if verbose: + basicConfig(level=verbose_levels[verbose]) + + program = Program(image, prefix) + + try: + if op == 'build': + program.build_image() + elif op == 'stop': + program.stop_containers() + elif op == 'start': + program.start_containers() + elif op == 'restart': + program.restart_containers() + elif op == 'connect': + # TODO: connect to the vpp name shell + # if we don't have name list all vpps + # and let the user choose + pass + + except Exception: + program.logger.exception("") + rc = 1 + else: + program.logger.info("operation {} done".format(op)) + rc = 0 + + return rc + + +if __name__ == "__main__": + sys.exit(main(**get_args())) + diff --git a/extras/ietf104/startup.conf.j2 b/extras/ietf104/startup.conf.j2 new file mode 100644 index 000000000000..5a4a2ef103d1 --- /dev/null +++ b/extras/ietf104/startup.conf.j2 @@ -0,0 +1,14 @@ +unix { + nodaemon + cli-no-pager + cli-listen 0.0.0.0:5002 +} +plugins { + plugin dpdk_plugin.so { + disable + } +} +cpu { + workers 2 +} + diff --git a/src/vnet/dpo/dpo.c b/src/vnet/dpo/dpo.c index 83eb6f12c443..799ded3fed81 100644 --- a/src/vnet/dpo/dpo.c +++ b/src/vnet/dpo/dpo.c @@ -16,7 +16,7 @@ * @brief * A Data-Path Object is an object that represents actions that are * applied to packets are they are switched through VPP. - * + * * The DPO is a base class that is specialised by other objects to provide * concreate actions * From 235e3fecadc508203feaa0c35b6505f6ed9e711a Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Tue, 5 Mar 2019 22:49:51 -0800 Subject: [PATCH 004/154] IETF104: build issue fixed Change-Id: Icf8d308147eaeb75838a3b84bd1da8774b9cc664 Signed-off-by: Filip Varga --- extras/ietf104/Dockerfile.j2 | 3 ++- extras/ietf104/runner.py | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/extras/ietf104/Dockerfile.j2 b/extras/ietf104/Dockerfile.j2 index f0bff0945d7b..f32240429aa3 100644 --- a/extras/ietf104/Dockerfile.j2 +++ b/extras/ietf104/Dockerfile.j2 @@ -39,7 +39,8 @@ RUN set -eux; \ WORKDIR {{vpp_path}}/build-root RUN set -eux; \ - dpkg -i vpp-lib_*.deb vpp_*.deb vpp-dev_*.deb vpp-plugins_*.deb vpp-dbg_*.deb + rm vpp-api-python_*.deb; \ + dpkg -i *.deb WORKDIR /usr/share/vpp/plugins/perfmon diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 316f81f9dfb0..494dc3ef750f 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -137,7 +137,8 @@ def get(self, name): class Program(object): image = "ietf104-image" - prefix = "hck" + + name_prefix = "hck" instance_names = [ "vpp-1", @@ -155,15 +156,15 @@ class Program(object): def __init__(self, image=None, prefix=None): self.path = dirname(realpath(__file__)) + if image: + self.image = image + if prefix is not None: + self.name_prefix = prefix + client = from_env() self.containers = Containers(client, self.image) self.networks = Networks(client) - - if prefix is not None: - self.prefix = prefix - if image: - self.image = image - + self.logger = getLogger(__name__) @property @@ -171,9 +172,9 @@ def vpp_path(self): return split(split(self.path)[0])[0] def get_name(self, name): - if not self.prefix: + if not self.name_prefix: return name - return "{}-{}".format(self.prefix, name) + return "{}-{}".format(self.name_prefix, name) def stop_containers(self): From 881a5516260735837af53b419e7c09489fea5e68 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Wed, 6 Mar 2019 05:24:20 -0800 Subject: [PATCH 005/154] IETF104: basic ipv6 configuration with automated setup of presentation environment Change-Id: Id4d8f7e33adba8ec2c6c19bf7938f6404e214e30 Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 114 ++++++++++++++++++++++++++++++++------- 1 file changed, 94 insertions(+), 20 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 494dc3ef750f..c937f28f7cf0 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 from os.path import dirname, realpath, split, join -from os import remove +from os import remove, system from logging import getLogger, basicConfig, DEBUG, \ INFO, ERROR from argparse import ArgumentParser @@ -10,7 +10,7 @@ import sys from jinja2 import Environment, FileSystemLoader -from docker.errors import NotFound +from docker.errors import NotFound, APIError from docker import from_env @@ -22,6 +22,8 @@ class Container(object): + cmd = "vppctl -s 0:5002" + def __init__(self, ref, name): self._name = name self._ref = ref @@ -30,14 +32,26 @@ def __init__(self, ref, name): def name(self): return self._name + def disconnect_all(self): + status = False + for net in self._ref.client.networks.list(): + try: + net.disconnect(self._ref) + except APIError: + continue + status = True + return status + @classmethod def new(cls, client, image, name): ref = client.containers.run(detach=True, remove=True, auto_remove=True, image=image, name=name, - network_mode=None, - command="sleep 300") - return cls(ref, name) + privileged=True) + # hack disconnect all default networks + obj = cls(ref, name) + obj.disconnect_all() + return obj @classmethod def get(cls, client, name): @@ -51,6 +65,30 @@ def get(cls, client, name): def rem(self): self._ref.kill() + def vppctl(self): + system("docker exec -it {} {}".format(self.name, self.cmd)) + + def vppctl_exec(self, cmd): + ec, resp = self._ref.exec_run(cmd="{} {}".format(self.cmd, cmd)) + assert(ec == 0) + + def setup_host_interface(self, name, ip): + self.vppctl_exec("create host-interface name {}".format(name)) + self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) + self.vppctl_exec("set int state host-{} up".format(name)) + + # TODO: + def setup_pg_interface(self): + pass + + def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via host-{} {}".format( + subnet, out_if_name, next_hop_ip)) + + def set_ipv6_default_route(self, out_if_name, next_hop_ip): + self.vppctl_exec("ip route add ::/0 via host-{} {}".format( + out_if_name, next_hop_ip)) + class Containers(object): @@ -88,6 +126,10 @@ def new(self, name): def get(self, name): return Container.get(self.client, name) + def vppctl(self, name): + container = self.get(name) + container.vppctl() + class Network(object): @@ -213,16 +255,46 @@ def start_containers(self): n3.connect(c3) n3.connect(c4) - # TODO: - # 1) connect networks to vpp instances (default + pg interface) - # 2) configure ipv6 addresses for each network interface + c1.setup_host_interface("eth1", "A1::1/120") + c2.setup_host_interface("eth1", "A1::2/120") + + c2.setup_host_interface("eth2", "A2::1/120") + c3.setup_host_interface("eth1", "A2::2/120") + + c3.setup_host_interface("eth2", "A3::1/120") + c4.setup_host_interface("eth1", "A3::2/120") - # TODO: we need to somehow map pg_interface from vpp instance - # in container to localhost so we can programatically access - # it and write/read packets directly from the interface + c1.set_ipv6_default_route("eth1", "A1::2") + c2.set_ipv6_default_route("eth2", "A2::2") + c3.set_ipv6_default_route("eth1", "A2::1") + c4.set_ipv6_default_route("eth1", "A3::1") + + c2.set_ipv6_route("eth1", "A1::1", "172.20.0.1/32") + c3.set_ipv6_route("eth2", "A3::2", "B::1/128") # TODO: - # 3) send ping over pg_interface + + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + c4.vppctl_exec("create loopback interface") + c4.vppctl_exec("set int ip addr loop0 B::1/120") + + def status_containers(self): + + print("containers:") + + for name in self.instance_names: + name = self.get_name(name) + print("\t{} - {}".format(name, + "running" if self.containers.get(name) else "missing")) + + print("networks:") + + for name in self.network_names: + name = self.get_name(name) + print("\t{} - {}".format(name, + "running" if self.networks.get(name) else "missing")) def restart_containers(self): self.stop_containers() @@ -233,6 +305,9 @@ def build_image(self): # before calling docker build self.containers.build(self.path, self.vpp_path) + def vppctl(self, name): + self.containers.vppctl(name) + def get_args(): parser = ArgumentParser() @@ -245,15 +320,15 @@ def get_args(): p1 = subparsers.add_parser("infra") p1.add_argument("op", choices=[ - 'stop', 'start', 'restart', 'build']) + 'stop', 'start', 'status', 'restart', 'build']) p1.add_argument("--prefix") p1.add_argument("--image") - p2 = subparsers.add_parser("vpp") + p2 = subparsers.add_parser("ct") p2.add_argument("op", choices=[ - 'connect']) + 'vppctl']) p2.add_argument("name") return vars(parser.parse_args()) @@ -273,13 +348,12 @@ def main(op, image=None, prefix=None, verbose=None, name=None): program.stop_containers() elif op == 'start': program.start_containers() + elif op == 'status': + program.status_containers() elif op == 'restart': program.restart_containers() - elif op == 'connect': - # TODO: connect to the vpp name shell - # if we don't have name list all vpps - # and let the user choose - pass + elif op == 'vppctl': + program.vppctl(name) except Exception: program.logger.exception("") From cbd02047f8fbc44746ba5416dce67823ca3fb79e Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Wed, 6 Mar 2019 06:10:30 -0800 Subject: [PATCH 006/154] IETF104: cleanup cli and add extra features Change-Id: Ia08b32aef90d3da3b840a1d4b0efb8c2d67b4459 Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 62 +++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index c937f28f7cf0..04bc552ff7cc 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -71,6 +71,7 @@ def vppctl(self): def vppctl_exec(self, cmd): ec, resp = self._ref.exec_run(cmd="{} {}".format(self.cmd, cmd)) assert(ec == 0) + return resp def setup_host_interface(self, name, ip): self.vppctl_exec("create host-interface name {}".format(name)) @@ -126,9 +127,12 @@ def new(self, name): def get(self, name): return Container.get(self.client, name) - def vppctl(self, name): + def vppctl(self, name, command=None): container = self.get(name) - container.vppctl() + if not command: + container.vppctl() + else: + print(container.vppctl_exec(command).decode()) class Network(object): @@ -246,6 +250,7 @@ def start_containers(self): c1, c2, c3, c4 = instances + # setup network between instances n1.connect(c1) n1.connect(c2) @@ -255,21 +260,28 @@ def start_containers(self): n3.connect(c3) n3.connect(c4) + # c1 & c2 link c1.setup_host_interface("eth1", "A1::1/120") c2.setup_host_interface("eth1", "A1::2/120") + # c2 & c3 link c2.setup_host_interface("eth2", "A2::1/120") c3.setup_host_interface("eth1", "A2::2/120") + # c3 & c4 link c3.setup_host_interface("eth2", "A3::1/120") c4.setup_host_interface("eth1", "A3::2/120") + # c1 > c2 default route c1.set_ipv6_default_route("eth1", "A1::2") + # c2 > c3 default route c2.set_ipv6_default_route("eth2", "A2::2") + # c3 > c2 default route c3.set_ipv6_default_route("eth1", "A2::1") + # c4 > c3 default route c4.set_ipv6_default_route("eth1", "A3::1") - c2.set_ipv6_route("eth1", "A1::1", "172.20.0.1/32") + # c3 > c4 static route for address B::1/128 c3.set_ipv6_route("eth2", "A3::2", "B::1/128") # TODO: @@ -277,23 +289,24 @@ def start_containers(self): # pg interface on c1 172.20.0.1 # pg interface on c4 B::1/120 + # TODO: remove (only used for testing purposes) c4.vppctl_exec("create loopback interface") c4.vppctl_exec("set int ip addr loop0 B::1/120") def status_containers(self): - print("containers:") + print("Instances:") - for name in self.instance_names: + for i, name in enumerate(self.instance_names): name = self.get_name(name) - print("\t{} - {}".format(name, + print("\t[{}] {} - {}".format(i, name, "running" if self.containers.get(name) else "missing")) - print("networks:") + print("Networks:") - for name in self.network_names: + for i, name in enumerate(self.network_names): name = self.get_name(name) - print("\t{} - {}".format(name, + print("\t[{}] {} - {}".format(i, name, "running" if self.networks.get(name) else "missing")) def restart_containers(self): @@ -301,12 +314,16 @@ def restart_containers(self): self.start_containers() def build_image(self): - # TODO: run make wipe & other commands on the repo - # before calling docker build + # TODO: build process should be optimized (speed and size) self.containers.build(self.path, self.vpp_path) - def vppctl(self, name): - self.containers.vppctl(name) + def vppctl(self, index, command=None): + if index >= len(self.instance_names): + return + name = self.get_name( + self.instance_names[index]) + self.logger.error("connecting to: {}".format(name)) + self.containers.vppctl(name, command) def get_args(): @@ -317,7 +334,8 @@ def get_args(): subparsers = parser.add_subparsers() - p1 = subparsers.add_parser("infra") + p1 = subparsers.add_parser("infra", + help="Infrastructure related commands.") p1.add_argument("op", choices=[ 'stop', 'start', 'status', 'restart', 'build']) @@ -325,16 +343,21 @@ def get_args(): p1.add_argument("--prefix") p1.add_argument("--image") - p2 = subparsers.add_parser("ct") + p2 = subparsers.add_parser("cmd", + help="Instance related commands.") p2.add_argument("op", choices=[ 'vppctl']) - p2.add_argument("name") - + + p2.add_argument("index", type=int, + help="Container instance index. (./runner.py infra status)") + + p2.add_argument("--command") + return vars(parser.parse_args()) -def main(op, image=None, prefix=None, verbose=None, name=None): +def main(op, image=None, prefix=None, verbose=None, index=None, command=None): if verbose: basicConfig(level=verbose_levels[verbose]) @@ -353,13 +376,12 @@ def main(op, image=None, prefix=None, verbose=None, name=None): elif op == 'restart': program.restart_containers() elif op == 'vppctl': - program.vppctl(name) + program.vppctl(index, command) except Exception: program.logger.exception("") rc = 1 else: - program.logger.info("operation {} done".format(op)) rc = 0 return rc From 568873f5b687b7c555ec3fea789ebc7fd6a82b4c Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Thu, 7 Mar 2019 01:09:42 -0800 Subject: [PATCH 007/154] IETF104: cleanup cli and add extra features Change-Id: I0577c45b42c38e8fe4c5457fbb05e9a4e3173cac Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 04bc552ff7cc..6d495fd07517 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -186,6 +186,10 @@ class Program(object): name_prefix = "hck" + # TODO: add description to these instances + # for exmaple what the vpp is supposed to be + # in our topoloty overview + instance_names = [ "vpp-1", "vpp-2", From ba1e018c1c8149f3170bc762a06aa0ff45dfc81b Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Thu, 7 Mar 2019 01:24:01 -0800 Subject: [PATCH 008/154] IETF104: bash support Change-Id: I4e25eb5758b6c33e495d5003005ef402218cea69 Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 6d495fd07517..f776f010490e 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -23,6 +23,7 @@ class Container(object): cmd = "vppctl -s 0:5002" + cmd_bash = "/bin/bash" def __init__(self, ref, name): self._name = name @@ -68,11 +69,17 @@ def rem(self): def vppctl(self): system("docker exec -it {} {}".format(self.name, self.cmd)) + def bash(self): + system("docker exec -it {} {}".format(self.name, self.cmd_bash)) + def vppctl_exec(self, cmd): ec, resp = self._ref.exec_run(cmd="{} {}".format(self.cmd, cmd)) assert(ec == 0) return resp + def bash_exec(self, cmd): + pass + def setup_host_interface(self, name, ip): self.vppctl_exec("create host-interface name {}".format(name)) self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) @@ -134,6 +141,14 @@ def vppctl(self, name, command=None): else: print(container.vppctl_exec(command).decode()) + def bash(self, name, command=None): + container = self.get(name) + if not command: + container.bash() + else: + print(container.bash_exec(command).decode()) + + class Network(object): @@ -329,6 +344,14 @@ def vppctl(self, index, command=None): self.logger.error("connecting to: {}".format(name)) self.containers.vppctl(name, command) + def bash(self, index, command=None): + if index >= len(self.instance_names): + return + name = self.get_name( + self.instance_names[index]) + self.logger.error("connecting to: {}".format(name)) + self.containers.bash(name, command) + def get_args(): parser = ArgumentParser() @@ -351,7 +374,7 @@ def get_args(): help="Instance related commands.") p2.add_argument("op", choices=[ - 'vppctl']) + 'vppctl', 'bash']) p2.add_argument("index", type=int, help="Container instance index. (./runner.py infra status)") @@ -361,13 +384,17 @@ def get_args(): return vars(parser.parse_args()) -def main(op, image=None, prefix=None, verbose=None, index=None, command=None): +def main(op=None, image=None, prefix=None, verbose=None, index=None, command=None): if verbose: basicConfig(level=verbose_levels[verbose]) program = Program(image, prefix) + # TODO: return help msg + if op is None: + return 1 + try: if op == 'build': program.build_image() @@ -381,6 +408,8 @@ def main(op, image=None, prefix=None, verbose=None, index=None, command=None): program.restart_containers() elif op == 'vppctl': program.vppctl(index, command) + elif op == 'bash': + program.bash(index, command) except Exception: program.logger.exception("") From caaa5473e9ec428171df59d3d03e0af82fc82bbf Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Fri, 8 Mar 2019 17:12:56 +0100 Subject: [PATCH 009/154] IETF104: docker step separation Change-Id: Ie52ad01ff32d90f9cbb231747115f1370e5f136a Signed-off-by: Filip Varga --- extras/ietf104/Dockerfile.j2 | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/extras/ietf104/Dockerfile.j2 b/extras/ietf104/Dockerfile.j2 index f32240429aa3..1adcc5197db7 100644 --- a/extras/ietf104/Dockerfile.j2 +++ b/extras/ietf104/Dockerfile.j2 @@ -1,6 +1,8 @@ FROM ubuntu:18.04 +ARG VPP_PATH={{vpp_path}} + RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ @@ -17,11 +19,14 @@ RUN set -eux; \ mv /usr/sbin/tcpdump /usr/bin/tcpdump RUN set -eux; \ - mkdir -p {{vpp_path}} + mkdir -p $VPP_PATH + +COPY . / $VPP_PATH/ -COPY . / {{vpp_path}}/ +WORKDIR $VPP_PATH -WORKDIR {{vpp_path}} +RUN set -eux; \ + make wipe RUN set -eux; \ export UNATTENDED=y; \ @@ -30,13 +35,12 @@ RUN set -eux; \ RUN set -eux; \ export UNATTENDED=y; \ - make wipe; \ make build; \ make pkg-deb; \ rm -rf .ccache; \ find . -type f -name '*.o' -exec rm -rf '{}' \; -WORKDIR {{vpp_path}}/build-root +WORKDIR $VPP_PATH/build-root RUN set -eux; \ rm vpp-api-python_*.deb; \ @@ -46,5 +50,5 @@ WORKDIR /usr/share/vpp/plugins/perfmon RUN tar Jxf PerfmonTables.tar.xz -CMD vpp -c {{vpp_path}}/startup.conf +CMD vpp -c $VPP_PATH/startup.conf From 106e1ee72381d7550bc5cd7e48a7581dc891979b Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Fri, 8 Mar 2019 17:34:27 +0100 Subject: [PATCH 010/154] IETF104: fixups Change-Id: I01e1d0c7bae29442f884a44a3a50773af56ba47d Signed-off-by: Filip Varga --- extras/ietf104/Dockerfile.j2 | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/extras/ietf104/Dockerfile.j2 b/extras/ietf104/Dockerfile.j2 index 1adcc5197db7..8f41d4885f2c 100644 --- a/extras/ietf104/Dockerfile.j2 +++ b/extras/ietf104/Dockerfile.j2 @@ -1,8 +1,6 @@ FROM ubuntu:18.04 -ARG VPP_PATH={{vpp_path}} - RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ @@ -19,11 +17,11 @@ RUN set -eux; \ mv /usr/sbin/tcpdump /usr/bin/tcpdump RUN set -eux; \ - mkdir -p $VPP_PATH + mkdir -p {{vpp_path}} -COPY . / $VPP_PATH/ +COPY . / {{vpp_path}}/ -WORKDIR $VPP_PATH +WORKDIR {{vpp_path}} RUN set -eux; \ make wipe @@ -40,7 +38,7 @@ RUN set -eux; \ rm -rf .ccache; \ find . -type f -name '*.o' -exec rm -rf '{}' \; -WORKDIR $VPP_PATH/build-root +WORKDIR {{vpp_path}}/build-root RUN set -eux; \ rm vpp-api-python_*.deb; \ @@ -50,5 +48,5 @@ WORKDIR /usr/share/vpp/plugins/perfmon RUN tar Jxf PerfmonTables.tar.xz -CMD vpp -c $VPP_PATH/startup.conf +CMD vpp -c {{vpp_path}}/startup.conf From c3f2da906431c1f1f070a242d0f02c9778720582 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Fri, 8 Mar 2019 18:13:20 +0100 Subject: [PATCH 011/154] IETF104: todo Change-Id: Ib67642b943417a98008831da8bffa88c3d17508b Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index f776f010490e..76c2384a1c51 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -49,6 +49,8 @@ def new(cls, client, image, name): remove=True, auto_remove=True, image=image, name=name, privileged=True) + # TODO: bug if container exits, we don't know about it + # we should test if it is still running # hack disconnect all default networks obj = cls(ref, name) obj.disconnect_all() From 0e58a2e44722fc50f04dc9b60c929ade7ad5dd9c Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Mon, 11 Mar 2019 17:43:48 +0100 Subject: [PATCH 012/154] Add README Change-Id: I8d171cc06b0e5d2f69c8f1c02fcfbbb3fecd9d3d --- extras/ietf104/README.md | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 extras/ietf104/README.md diff --git a/extras/ietf104/README.md b/extras/ietf104/README.md new file mode 100644 index 000000000000..056af60dada0 --- /dev/null +++ b/extras/ietf104/README.md @@ -0,0 +1,50 @@ +# VPP1 + +## Linux +sysctl net.ipv6.conf.all.disable_ipv6=0 +ip link add tmp1 type veth peer name tmp2 +ip link set dev tmp1 up +ip link set dev tmp2 up +ip -6 addr add a20::2/120 dev tmp2 +ip -6 route del default +ip -6 route add default dev tmp2 via a20::1 + +ping a30::2 + +## VPP SRv6 + +create host-interface name tmp1 +set interface ip address host-tmp1 a20::1/120 +set interface state host-tmp1 up +set sr encaps source addr C1:: +sr policy add bsid c1::999:1 next c2:: next c3:: next c4:: +sr steer l3 a30::/120 via bsid c1::999:1 + +# VPP2 + +## VPP SRv6 + +sr localsid address C2:: behavior end + +# VPP3 + +## VPP SRv6 + +sr localsid address C3:: behavior end + +# VPP4 + +## Linux +sysctl net.ipv6.conf.all.disable_ipv6=0 +ip link add tmp1 type veth peer name tmp2 +ip link set dev tmp1 up +ip link set dev tmp2 up +ip -6 addr add a30::2/120 dev tmp2 +ip -6 route del default +ip -6 route add default dev tmp2 via a30::1 + +## VPP SRv6 +create host-interface name tmp1 +set interface ip address host-tmp1 a30::1/120 +set interface state host-tmp1 up +sr localsid address C4:: behavior end.dx6 host-tmp1 a30::2 From 21d6cbd51aa948d608d2f923c62a113a1bbf3a3b Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Mon, 11 Mar 2019 17:59:41 +0100 Subject: [PATCH 013/154] README - formating Change-Id: I578348e76d54fa27523a5dbfe90a2e77202fcd0c --- extras/ietf104/README.md | 54 ++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/extras/ietf104/README.md b/extras/ietf104/README.md index 056af60dada0..fc98b5bf02f7 100644 --- a/extras/ietf104/README.md +++ b/extras/ietf104/README.md @@ -1,50 +1,50 @@ # VPP1 ## Linux -sysctl net.ipv6.conf.all.disable_ipv6=0 -ip link add tmp1 type veth peer name tmp2 -ip link set dev tmp1 up -ip link set dev tmp2 up -ip -6 addr add a20::2/120 dev tmp2 -ip -6 route del default -ip -6 route add default dev tmp2 via a20::1 + sysctl net.ipv6.conf.all.disable_ipv6=0 + ip link add tmp1 type veth peer name tmp2 + ip link set dev tmp1 up + ip link set dev tmp2 up + ip -6 addr add a20::2/120 dev tmp2 + ip -6 route del default + ip -6 route add default dev tmp2 via a20::1 -ping a30::2 + ping a30::2 ## VPP SRv6 -create host-interface name tmp1 -set interface ip address host-tmp1 a20::1/120 -set interface state host-tmp1 up -set sr encaps source addr C1:: -sr policy add bsid c1::999:1 next c2:: next c3:: next c4:: -sr steer l3 a30::/120 via bsid c1::999:1 + create host-interface name tmp1 + set interface ip address host-tmp1 a20::1/120 + set interface state host-tmp1 up + set sr encaps source addr C1:: + sr policy add bsid c1::999:1 next c2:: next c3:: next c4:: + sr steer l3 a30::/120 via bsid c1::999:1 # VPP2 ## VPP SRv6 -sr localsid address C2:: behavior end + sr localsid address C2:: behavior end # VPP3 ## VPP SRv6 -sr localsid address C3:: behavior end + sr localsid address C3:: behavior end # VPP4 ## Linux -sysctl net.ipv6.conf.all.disable_ipv6=0 -ip link add tmp1 type veth peer name tmp2 -ip link set dev tmp1 up -ip link set dev tmp2 up -ip -6 addr add a30::2/120 dev tmp2 -ip -6 route del default -ip -6 route add default dev tmp2 via a30::1 + sysctl net.ipv6.conf.all.disable_ipv6=0 + ip link add tmp1 type veth peer name tmp2 + ip link set dev tmp1 up + ip link set dev tmp2 up + ip -6 addr add a30::2/120 dev tmp2 + ip -6 route del default + ip -6 route add default dev tmp2 via a30::1 ## VPP SRv6 -create host-interface name tmp1 -set interface ip address host-tmp1 a30::1/120 -set interface state host-tmp1 up -sr localsid address C4:: behavior end.dx6 host-tmp1 a30::2 + create host-interface name tmp1 + set interface ip address host-tmp1 a30::1/120 + set interface state host-tmp1 up + sr localsid address C4:: behavior end.dx6 host-tmp1 a30::2 From cc6b46841f6ad3cca00fc2857357ab01e8cefb9a Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 17 Mar 2019 21:58:13 +0100 Subject: [PATCH 014/154] IETF104: pg functionality Change-Id: I0f4c4766e578e1dcec63350ccf69f7b3dbbb8cea Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 80 +++++++++++++++++++++++++++++++++++----- 1 file changed, 70 insertions(+), 10 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 76c2384a1c51..f7daed34a6bd 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -1,7 +1,8 @@ #!/usr/bin/env python3 -from os.path import dirname, realpath, split, join -from os import remove, system +from os.path import dirname, realpath, split, join, \ + isdir +from os import remove, system, mkdir from logging import getLogger, basicConfig, DEBUG, \ INFO, ERROR from argparse import ArgumentParser @@ -12,6 +13,7 @@ from jinja2 import Environment, FileSystemLoader from docker.errors import NotFound, APIError from docker import from_env +from scapy.all import * verbose_levels = { @@ -22,6 +24,7 @@ class Container(object): + tmp = "/tmp" cmd = "vppctl -s 0:5002" cmd_bash = "/bin/bash" @@ -33,6 +36,18 @@ def __init__(self, ref, name): def name(self): return self._name + @property + def temp(self): + return join(self.tmp, self.name) + + @property + def pg_input_file(self): + return join(self.temp, "pgi.pcap") + + @property + def pg_output_file(self): + return join(self.temp, "pgo.pcap") + def disconnect_all(self): status = False for net in self._ref.client.networks.list(): @@ -45,10 +60,19 @@ def disconnect_all(self): @classmethod def new(cls, client, image, name): + + if not isdir(self.temp): + mkdir(self.temp) + ref = client.containers.run(detach=True, remove=True, auto_remove=True, image=image, name=name, - privileged=True) + privileged=True, + volumes={ self.temp: { + 'bind': '/mnt', + 'mode': 'rw' + }}) + # TODO: bug if container exits, we don't know about it # we should test if it is still running # hack disconnect all default networks @@ -87,9 +111,28 @@ def setup_host_interface(self, name, ip): self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) self.vppctl_exec("set int state host-{} up".format(name)) - # TODO: - def setup_pg_interface(self): - pass + + def pg_create_interface(self): + self.vppctl_exec("create packet-generator interface pg0") + + def pg_enable(self): + # start packet generator + self.vppctl_exec("packet-generator enable") + + def pg_create_stream(self, stream): + + if not type(stream) == list: + stream = list(stream) + + wrpcap(self.pg_input_file, stream) + self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( + self.pg_input_file)) + + def pg_capture_packets(self): + self.vppctl_exec("packet-generator capture pg0 pcap {}".format( + self.pg_output_file)) + # sleep ? or read until you get the desired number of packets ? + return rdpcap(self.pg_output_file) def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): self.vppctl_exec("ip route add {} via host-{} {}".format( @@ -271,6 +314,10 @@ def start_containers(self): c1, c2, c3, c4 = instances + # setup packet generator interfaces + c1.pg_create_interface() + c4.pg_create_interface() + # setup network between instances n1.connect(c1) n1.connect(c2) @@ -305,15 +352,28 @@ def start_containers(self): # c3 > c4 static route for address B::1/128 c3.set_ipv6_route("eth2", "A3::2", "B::1/128") - # TODO: - - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 + # TODO: remove (only used for testing purposes) c4.vppctl_exec("create loopback interface") c4.vppctl_exec("set int ip addr loop0 B::1/120") + def test_ping(self): + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c4 = self.containers.get(get_name(self.instance_names[-1])) + + p1 = (Ether(dst="", src="") / + IPv6(src="", dst="")) + + c1.pg_create_stream(p1) + c4.pg_enable() + c1.pg_enable() + + pkts = c4.pg_capture_packets() + def status_containers(self): print("Instances:") From e342c7a6ebfc1b0c5d1be7e1f9219b5f751e6afe Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 17 Mar 2019 23:48:03 +0100 Subject: [PATCH 015/154] IETF104: pg functionality improved Change-Id: I337b71b84168511cdf84187f17507a4a136f8609 Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 58 +++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index f7daed34a6bd..ca1e18f9c30a 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -48,6 +48,14 @@ def pg_input_file(self): def pg_output_file(self): return join(self.temp, "pgo.pcap") + @property + def pg_input_file_in(self): + return join("/mnt", "pgi.pcap") + + @property + def pg_output_file_in(self): + return join("/mnt", "pgo.pcap") + def disconnect_all(self): status = False for net in self._ref.client.networks.list(): @@ -61,14 +69,15 @@ def disconnect_all(self): @classmethod def new(cls, client, image, name): - if not isdir(self.temp): - mkdir(self.temp) + temp = join(cls.tmp, name) + if not isdir(temp): + mkdir(temp) ref = client.containers.run(detach=True, remove=True, auto_remove=True, image=image, name=name, privileged=True, - volumes={ self.temp: { + volumes={ temp: { 'bind': '/mnt', 'mode': 'rw' }}) @@ -112,8 +121,10 @@ def setup_host_interface(self, name, ip): self.vppctl_exec("set int state host-{} up".format(name)) - def pg_create_interface(self): + def pg_create_interface(self, mac, ip): self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(mac)) + self.vppctl_exec("set int ip addr pg0 {}".format(ip)) def pg_enable(self): # start packet generator @@ -121,16 +132,16 @@ def pg_enable(self): def pg_create_stream(self, stream): - if not type(stream) == list: - stream = list(stream) + #if not type(stream) == list: + # stream = list(stream) wrpcap(self.pg_input_file, stream) self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( - self.pg_input_file)) + self.pg_input_file_in)) def pg_capture_packets(self): self.vppctl_exec("packet-generator capture pg0 pcap {}".format( - self.pg_output_file)) + self.pg_output_file_in)) # sleep ? or read until you get the desired number of packets ? return rdpcap(self.pg_output_file) @@ -315,8 +326,8 @@ def start_containers(self): c1, c2, c3, c4 = instances # setup packet generator interfaces - c1.pg_create_interface() - c4.pg_create_interface() + c1.pg_create_interface(ip="C::1/120", mac="aa:bb:cc:dd:ee:01") + c4.pg_create_interface(ip="B::1/120", mac="aa:bb:cc:dd:ee:04") # setup network between instances n1.connect(c1) @@ -352,27 +363,24 @@ def start_containers(self): # c3 > c4 static route for address B::1/128 c3.set_ipv6_route("eth2", "A3::2", "B::1/128") - - - # TODO: remove (only used for testing purposes) - c4.vppctl_exec("create loopback interface") - c4.vppctl_exec("set int ip addr loop0 B::1/120") - def test_ping(self): # pg interface on c1 172.20.0.1 # pg interface on c4 B::1/120 c1 = self.containers.get(self.get_name(self.instance_names[0])) - c4 = self.containers.get(get_name(self.instance_names[-1])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::1", dst="B::1")/ICMPv6EchoRequest()) - p1 = (Ether(dst="", src="") / - IPv6(src="", dst="")) + p.show2() - c1.pg_create_stream(p1) + c1.pg_create_stream(p) c4.pg_enable() c1.pg_enable() - pkts = c4.pg_capture_packets() + for p in c4.pg_capture_packets(): + p.show2() def status_containers(self): @@ -443,6 +451,12 @@ def get_args(): p2.add_argument("--command") + p3 = subparsers.add_parser("test", + help="Test related commands.") + + p3.add_argument("op", choices=[ + "ping"]) + return vars(parser.parse_args()) @@ -472,6 +486,8 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.vppctl(index, command) elif op == 'bash': program.bash(index, command) + elif op == 'ping': + program.test_ping() except Exception: program.logger.exception("") From 34acb5d125c94ff629562e3396d505232255f351 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Mon, 18 Mar 2019 04:07:54 -0700 Subject: [PATCH 016/154] IETF104: resolving pg issues (need arp done) Change-Id: I9144b3417a035b2a7e93273391fa2074a9e0bb9a Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index ca1e18f9c30a..b156135fa609 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -125,16 +125,13 @@ def pg_create_interface(self, mac, ip): self.vppctl_exec("create packet-generator interface pg0") self.vppctl_exec("set int mac address pg0 {}".format(mac)) self.vppctl_exec("set int ip addr pg0 {}".format(ip)) + self.vppctl_exec("set int state pg0 up") def pg_enable(self): # start packet generator self.vppctl_exec("packet-generator enable") def pg_create_stream(self, stream): - - #if not type(stream) == list: - # stream = list(stream) - wrpcap(self.pg_input_file, stream) self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( self.pg_input_file_in)) @@ -153,6 +150,9 @@ def set_ipv6_default_route(self, out_if_name, next_hop_ip): self.vppctl_exec("ip route add ::/0 via host-{} {}".format( out_if_name, next_hop_ip)) + def enable_trace(self, count): + self.vppctl_exec("trace add af-packet-input {}".format(count)) + class Containers(object): @@ -311,6 +311,8 @@ def stop_containers(self): def start_containers(self): + self.stop_containers() + networks = list() for name in self.network_names: @@ -326,8 +328,8 @@ def start_containers(self): c1, c2, c3, c4 = instances # setup packet generator interfaces - c1.pg_create_interface(ip="C::1/120", mac="aa:bb:cc:dd:ee:01") - c4.pg_create_interface(ip="B::1/120", mac="aa:bb:cc:dd:ee:04") + c1.pg_create_interface(ip="C::2/120", mac="aa:bb:cc:dd:ee:01") + c4.pg_create_interface(ip="B::2/120", mac="aa:bb:cc:dd:ee:04") # setup network between instances n1.connect(c1) @@ -362,8 +364,18 @@ def start_containers(self): # c3 > c4 static route for address B::1/128 c3.set_ipv6_route("eth2", "A3::2", "B::1/128") + c3.set_ipv6_route("eth2", "A3::2", "B::2/128") + + c1.enable_trace(10) + c2.enable_trace(10) + c3.enable_trace(10) + c4.enable_trace(10) + + self.status_containers() def test_ping(self): + # TESTS: + # trace add af-packet-input 10 # pg interface on c1 172.20.0.1 # pg interface on c4 B::1/120 @@ -398,10 +410,6 @@ def status_containers(self): print("\t[{}] {} - {}".format(i, name, "running" if self.networks.get(name) else "missing")) - def restart_containers(self): - self.stop_containers() - self.start_containers() - def build_image(self): # TODO: build process should be optimized (speed and size) self.containers.build(self.path, self.vpp_path) @@ -480,8 +488,6 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.start_containers() elif op == 'status': program.status_containers() - elif op == 'restart': - program.restart_containers() elif op == 'vppctl': program.vppctl(index, command) elif op == 'bash': From ab8af579a1cfe8c1ad73f83850b2b76859a51b05 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Mon, 18 Mar 2019 05:36:23 -0700 Subject: [PATCH 017/154] IETF104: pg example done Change-Id: Ia88d86ba74fb813f247674e780be81d6d261d7cc Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 97 +++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 41 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index b156135fa609..291f393ef1ca 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -1,13 +1,15 @@ #!/usr/bin/env python3 from os.path import dirname, realpath, split, join, \ - isdir + isdir, exists from os import remove, system, mkdir from logging import getLogger, basicConfig, DEBUG, \ INFO, ERROR from argparse import ArgumentParser from subprocess import Popen, run from atexit import register +from shutil import rmtree +from time import sleep import sys from jinja2 import Environment, FileSystemLoader @@ -22,6 +24,10 @@ 'info': INFO} +class ContainerStartupError(Exception): + pass + + class Container(object): tmp = "/tmp" @@ -70,8 +76,9 @@ def disconnect_all(self): def new(cls, client, image, name): temp = join(cls.tmp, name) - if not isdir(temp): - mkdir(temp) + if isdir(temp): + rmtree(temp) + mkdir(temp) ref = client.containers.run(detach=True, remove=True, auto_remove=True, @@ -82,10 +89,10 @@ def new(cls, client, image, name): 'mode': 'rw' }}) - # TODO: bug if container exits, we don't know about it - # we should test if it is still running - # hack disconnect all default networks - obj = cls(ref, name) + obj = cls.get(client, name) + if not obj: + raise ContainerStartupError() + obj.disconnect_all() return obj @@ -112,19 +119,19 @@ def vppctl_exec(self, cmd): assert(ec == 0) return resp - def bash_exec(self, cmd): - pass - def setup_host_interface(self, name, ip): self.vppctl_exec("create host-interface name {}".format(name)) self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) self.vppctl_exec("set int state host-{} up".format(name)) + def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask - def pg_create_interface(self, mac, ip): self.vppctl_exec("create packet-generator interface pg0") - self.vppctl_exec("set int mac address pg0 {}".format(mac)) - self.vppctl_exec("set int ip addr pg0 {}".format(ip)) + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip6 neighbor pg0 {} {}".format(remote_ip, + remote_mac)) self.vppctl_exec("set int state pg0 up") def pg_enable(self): @@ -136,10 +143,13 @@ def pg_create_stream(self, stream): self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( self.pg_input_file_in)) - def pg_capture_packets(self): + def pg_start_capture(self): + if exists(self.pg_output_file): + remove(self.pg_output_file) self.vppctl_exec("packet-generator capture pg0 pcap {}".format( self.pg_output_file_in)) - # sleep ? or read until you get the desired number of packets ? + + def pg_read_packets(self): return rdpcap(self.pg_output_file) def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): @@ -197,13 +207,9 @@ def vppctl(self, name, command=None): else: print(container.vppctl_exec(command).decode()) - def bash(self, name, command=None): + def bash(self, name): container = self.get(name) - if not command: - container.bash() - else: - print(container.bash_exec(command).decode()) - + container.bash() class Network(object): @@ -328,8 +334,11 @@ def start_containers(self): c1, c2, c3, c4 = instances # setup packet generator interfaces - c1.pg_create_interface(ip="C::2/120", mac="aa:bb:cc:dd:ee:01") - c4.pg_create_interface(ip="B::2/120", mac="aa:bb:cc:dd:ee:04") + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") # setup network between instances n1.connect(c1) @@ -354,6 +363,7 @@ def start_containers(self): c4.setup_host_interface("eth1", "A3::2/120") # c1 > c2 default route + c1.set_ipv6_default_route("eth1", "A1::2") # c2 > c3 default route c2.set_ipv6_default_route("eth2", "A2::2") @@ -366,32 +376,35 @@ def start_containers(self): c3.set_ipv6_route("eth2", "A3::2", "B::1/128") c3.set_ipv6_route("eth2", "A3::2", "B::2/128") - c1.enable_trace(10) - c2.enable_trace(10) - c3.enable_trace(10) - c4.enable_trace(10) - - self.status_containers() - def test_ping(self): # TESTS: # trace add af-packet-input 10 # pg interface on c1 172.20.0.1 # pg interface on c4 B::1/120 + self.start_containers() + c1 = self.containers.get(self.get_name(self.instance_names[0])) c4 = self.containers.get(self.get_name(self.instance_names[-1])) p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::1", dst="B::1")/ICMPv6EchoRequest()) + IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) + print("Sending packet on {}:".format(c1.name)) p.show2() + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + c1.pg_create_stream(p) - c4.pg_enable() c1.pg_enable() - for p in c4.pg_capture_packets(): + # timeout (sleep) if needed + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): p.show2() def status_containers(self): @@ -411,7 +424,7 @@ def status_containers(self): "running" if self.networks.get(name) else "missing")) def build_image(self): - # TODO: build process should be optimized (speed and size) + # TODO: optimize build process for speed and image size self.containers.build(self.path, self.vpp_path) def vppctl(self, index, command=None): @@ -457,7 +470,8 @@ def get_args(): p2.add_argument("index", type=int, help="Container instance index. (./runner.py infra status)") - p2.add_argument("--command") + p2.add_argument("--command", + help="Only vppctl supports this optional argument.") p3 = subparsers.add_parser("test", help="Test related commands.") @@ -465,7 +479,12 @@ def get_args(): p3.add_argument("op", choices=[ "ping"]) - return vars(parser.parse_args()) + args = parser.parse_args() + if not hasattr(args, "op") or not args.op: + parser.print_help(sys.stderr) + sys.exit(1) + + return vars(args) def main(op=None, image=None, prefix=None, verbose=None, index=None, command=None): @@ -475,10 +494,6 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program = Program(image, prefix) - # TODO: return help msg - if op is None: - return 1 - try: if op == 'build': program.build_image() @@ -491,7 +506,7 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non elif op == 'vppctl': program.vppctl(index, command) elif op == 'bash': - program.bash(index, command) + program.bash(index) elif op == 'ping': program.test_ping() From 39269367b3cd034c4bff5f8d30adf4580436ce5a Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Tue, 19 Mar 2019 12:43:27 +0100 Subject: [PATCH 018/154] IETF104: Add SRV6 base test. Change-Id: If92a7f479f01a95e0fb3a97fa1d4b0917b96d10d --- extras/ietf104/runner.py | 103 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 100 insertions(+), 3 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 291f393ef1ca..d1c7c73f4712 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -16,6 +16,7 @@ from docker.errors import NotFound, APIError from docker import from_env from scapy.all import * +from scapy.contrib.gtp_v2 import * verbose_levels = { @@ -127,6 +128,7 @@ def setup_host_interface(self, name, ip): def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): # remote_ip can't have subnet mask + time.sleep(2) self.vppctl_exec("create packet-generator interface pg0") self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) @@ -334,8 +336,8 @@ def start_containers(self): c1, c2, c3, c4 = instances # setup packet generator interfaces - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + #c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + #local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") @@ -387,12 +389,103 @@ def test_ping(self): c1 = self.containers.get(self.get_name(self.instance_names[0])) c4 = self.containers.get(self.get_name(self.instance_names[-1])) + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_srv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 C::1/120 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + + c1.vppctl_exec("set sr encaps source addr D1::") + c1.vppctl_exec("sr policy add bsid D1::999:1 next D2:: next D3:: next D4::") + c1.vppctl_exec("sr steer l3 B::/120 via bsid D1::999:1") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid address D4:: behavior end.dx6 pg0 B::2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/128") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) print("Sending packet on {}:".format(c1.name)) p.show2() + c1.enable_trace(10) + c2.enable_trace(10) + c3.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + + def test_tmap(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="172.20.0.1", remote_ip="172.20.0.2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/UDP(sport=2152, dport=2152)/GTPHeader(teid=200)/IP(src="172.99.0.1", dst="172.99.0.2")/ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + c1.enable_trace(10) c4.enable_trace(10) @@ -477,7 +570,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping"]) + "ping", "srv6", "tmap"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -509,6 +602,10 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.bash(index) elif op == 'ping': program.test_ping() + elif op == 'srv6': + program.test_srv6() + elif op == 'tmap': + program.test_tmap() except Exception: program.logger.exception("") From 82051926b3bc56fe835c55e2827e63befc448950 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sat, 23 Mar 2019 01:07:28 -0700 Subject: [PATCH 019/154] IETF104: missing requirement Change-Id: Iff12c621b7ae5ebeb39b62c5f85f03d50fa72682 Signed-off-by: Filip Varga --- extras/ietf104/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/extras/ietf104/requirements.txt b/extras/ietf104/requirements.txt index 0b79bff22db8..2938cddeceb0 100644 --- a/extras/ietf104/requirements.txt +++ b/extras/ietf104/requirements.txt @@ -1,2 +1,3 @@ docker jinja2 +scapy From 726bba1374feb3830a0ce384701d0ad5e011b096 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sat, 23 Mar 2019 11:57:54 +0100 Subject: [PATCH 020/154] CLI sr_policy gtp4_removal Change-Id: I3690467bc4b88fbf7725716ff15c51527d60b0df --- src/vnet/srv6/sr.h | 3 ++- src/vnet/srv6/sr_api.c | 2 +- src/vnet/srv6/sr_policy_rewrite.c | 25 ++++++++++++++++++++----- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index c40807c588ce..a6805bc52f33 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -281,7 +281,8 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, extern int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, - u32 weight, u8 behavior, u32 fib_table, u8 is_encap); + u32 weight, u8 behavior, u32 fib_table, u8 is_encap, + u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix); extern int sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, u8 operation, ip6_address_t * segments, u32 sl_index, diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index 46fb8293c646..9aa58300a54c 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -113,7 +113,7 @@ vl_api_sr_policy_add_t_handler (vl_api_sr_policy_add_t * mp) rv = sr_policy_add ((ip6_address_t *) & mp->bsid_addr, segments, ntohl (mp->sids.weight), - mp->type, ntohl (mp->fib_table), mp->is_encap); + mp->type, ntohl (mp->fib_table), mp->is_encap, 0, NULL); vec_free (segments); REPLY_MACRO (VL_API_SR_POLICY_ADD_REPLY); diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 6d75be2d6046..4d4381895389 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -295,7 +295,7 @@ compute_rewrite_bsid (ip6_address_t * sl) */ static inline ip6_sr_sl_t * create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, - u8 is_encap) + u8 is_encap, u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_sl_t *segment_list; @@ -549,7 +549,9 @@ update_replicate (ip6_sr_policy_t * sr_policy) */ int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, - u32 weight, u8 behavior, u32 fib_table, u8 is_encap) + u32 weight, u8 behavior, u32 fib_table, u8 is_encap, + u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix, + u32 gtp4_mask_width) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -599,7 +601,8 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, NULL); /* Create a segment list and add the index to the SR policy */ - create_sl (sr_policy, segments, weight, is_encap); + create_sl (sr_policy, segments, weight, is_encap, is_gtp4_removal, + gtp4_sr_prefix, gtp4_mask_width); /* If FIB doesnt exist, create them */ if (sm->fib_table_ip6 == (u32) ~ 0) @@ -832,6 +835,9 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, u8 operation = 0; char is_encap = 1; char is_spray = 0; + char is_gtp4_removal = 0; + ip46_address_t gtp4_sr_prefix; + u32 gtp4_mask_width = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -867,6 +873,14 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, is_encap = 1; else if (unformat (input, "insert")) is_encap = 0; + else if (unformat (input, "gtp4_removal sr-prefix %U/%d", + unformat_ip6_address, >p4_sr_prefix.ip6, >p4_mask_width)) + { + ip6_address_t mask; + ip6_address_mask_from_width(&mask, gtp4_mask_width); + ip6_address_mask(>p4_sr_prefix.ip6, &mask); + is_gtp4_removal = 1; + } else if (unformat (input, "spray")) is_spray = 1; else @@ -885,7 +899,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, return clib_error_return (0, "No Segment List specified"); rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : - SR_POLICY_TYPE_DEFAULT), fib_table, is_encap); + SR_POLICY_TYPE_DEFAULT), fib_table, is_encap, is_gtp4_removal, + >p4_sr_prefix); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -939,7 +954,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, VLIB_CLI_COMMAND (sr_policy_command, static) = { .path = "sr policy", .short_help = "sr policy [add||del||mod] [bsid 2001::1||index 5] " - "next A:: next B:: next C:: (weight 1) (fib-table 2) (encap|insert)", + "next A:: next B:: next C:: (weight 1) (fib-table 2) (encap|insert|gtp4_removal sr-prefix /)", .long_help = "Manipulation of SR policies.\n" "A Segment Routing policy may contain several SID lists. Each SID list has\n" From caf9538a6c8e716b1e5791879fd9d4408239fe5f Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sat, 23 Mar 2019 04:33:01 -0700 Subject: [PATCH 021/154] IETF104: tmap id creation + extras Change-Id: I2c6583d2989d4aaaa87ea8755f92c31750e76b2b Signed-off-by: Filip Varga --- extras/ietf104/Dockerfile.j2 | 8 +- src/vnet/srv6/sr.h | 4 + src/vnet/srv6/sr_policy_rewrite.c | 141 +++++++++++++++++------------- 3 files changed, 93 insertions(+), 60 deletions(-) diff --git a/extras/ietf104/Dockerfile.j2 b/extras/ietf104/Dockerfile.j2 index 8f41d4885f2c..f31541e436c3 100644 --- a/extras/ietf104/Dockerfile.j2 +++ b/extras/ietf104/Dockerfile.j2 @@ -44,9 +44,15 @@ RUN set -eux; \ rm vpp-api-python_*.deb; \ dpkg -i *.deb +RUN set -euex; \ + cp {{vpp_path}}/startup.conf /etc/startup.conf; \ + rm -rf {{vpp_path}} + WORKDIR /usr/share/vpp/plugins/perfmon RUN tar Jxf PerfmonTables.tar.xz + +WORKDIR / -CMD vpp -c {{vpp_path}}/startup.conf +CMD vpp -c /etc/startup.conf diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index c40807c588ce..199e220455b6 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -90,6 +90,10 @@ typedef struct dpo_id_t bsid_dpo; /**< DPO for Encaps/Insert for BSID */ dpo_id_t ip6_dpo; /**< DPO for Encaps/Insert IPv6 */ dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ + + u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ + u64 tmap_prefix; /**< T.M.Tmap prefix used for node ID computation */ + } ip6_sr_sl_t; /* SR policy types */ diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 6d75be2d6046..2d93470824f3 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -163,6 +163,7 @@ compute_rewrite_encaps (ip6_address_t * sl) if (vec_len (sl) > 1) { header_length += sizeof (ip6_sr_header_t); + // TODO: (vec_len (sl) + 1) header_length += vec_len (sl) * sizeof (ip6_address_t); } @@ -1364,10 +1365,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; - ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; + ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; - ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; - u32 teid0, teid1, teid2, teid3; + ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; + u32 teid0, teid1, teid2, teid3; /* Prefetch next iteration. */ { @@ -1417,51 +1418,55 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, pool_elt_at_index (sm->sid_lists, vnet_buffer (b3)->ip.adj_index[VLIB_TX]); - hdr0 = vlib_buffer_get_current (b0); - hdr1 = vlib_buffer_get_current (b1); - hdr2 = vlib_buffer_get_current (b2); - hdr3 = vlib_buffer_get_current (b3); - - teid0 = hdr0->gtpu.teid; - teid1 = hdr1->gtpu.teid; - teid2 = hdr2->gtpu.teid; - teid3 = hdr3->gtpu.teid; - - vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); - vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); - vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); - vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); - - clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); + hdr0 = vlib_buffer_get_current (b0); + hdr1 = vlib_buffer_get_current (b1); + hdr2 = vlib_buffer_get_current (b2); + hdr3 = vlib_buffer_get_current (b3); + + teid0 = hdr0->gtpu.teid; + teid1 = hdr1->gtpu.teid; + teid2 = hdr2->gtpu.teid; + teid3 = hdr3->gtpu.teid; + + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); + + clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + clib_memcpy (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), + sl1->rewrite, vec_len (sl1->rewrite)); + clib_memcpy (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), + sl2->rewrite, vec_len (sl2->rewrite)); + clib_memcpy (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), + sl3->rewrite, vec_len (sl3->rewrite)); - vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); - vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); - vlib_buffer_advance (b2, -(word) vec_len (sl2->rewrite)); - vlib_buffer_advance (b3, -(word) vec_len (sl3->rewrite)); - - ip0 = vlib_buffer_get_current (b0); - ip1 = vlib_buffer_get_current (b1); - ip2 = vlib_buffer_get_current (b2); - ip3 = vlib_buffer_get_current (b3); - - encaps_processing_v4 (vm, node, b0, ip0); - encaps_processing_v4 (vm, node, b1, ip1); - encaps_processing_v4 (vm, node, b2, ip2); - encaps_processing_v4 (vm, node, b3, ip3); - - /* Set the TEID in the last SID args */ - sr0 = (void*)(ip0+1); - sr1 = (void*)(ip1+1); - sr2 = (void*)(ip2+1); - sr3 = (void*)(ip3+1); - - sr0->segments->as_u32[3] = teid0; - sr1->segments->as_u32[3] = teid1; - sr2->segments->as_u32[3] = teid2; - sr3->segments->as_u32[3] = teid3; + vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); + vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); + vlib_buffer_advance (b2, -(word) vec_len (sl2->rewrite)); + vlib_buffer_advance (b3, -(word) vec_len (sl3->rewrite)); + + ip0 = vlib_buffer_get_current (b0); + ip1 = vlib_buffer_get_current (b1); + ip2 = vlib_buffer_get_current (b2); + ip3 = vlib_buffer_get_current (b3); + + encaps_processing_v4 (vm, node, b0, ip0); + encaps_processing_v4 (vm, node, b1, ip1); + encaps_processing_v4 (vm, node, b2, ip2); + encaps_processing_v4 (vm, node, b3, ip3); + + /* Set the TEID in the last SID args */ + sr0 = (void*)(ip0+1); + sr1 = (void*)(ip1+1); + sr2 = (void*)(ip2+1); + sr3 = (void*)(ip3+1); + + sr0->segments->as_u32[3] = teid0; + sr1->segments->as_u32[3] = teid1; + sr2->segments->as_u32[3] = teid2; + sr3->segments->as_u32[3] = teid3; if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE))) { @@ -1518,9 +1523,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t *b0; ip6_header_t *ip0 = 0; ip6_sr_sl_t *sl0; - ip6_sr_header_t *sr0; - ip4_gtpu_header_t *hdr0; - u32 teid0; + ip6_sr_header_t *sr0; + ip4_gtpu_header_t *hdr0; + u32 teid0; u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; @@ -1536,15 +1541,32 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, pool_elt_at_index (sm->sid_lists, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); - hdr0 = vlib_buffer_get_current (b0); - teid0 = hdr0->gtpu.teid; - vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); - clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); - vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); - ip0 = vlib_buffer_get_current (b0); - encaps_processing_v4 (vm, node, b0, ip0); - sr0 = (void*)(ip0+1); - sr0->segments->as_u32[3] = teid0; + // GTPU = IPv4 + UDP + GTP + hdr0 = vlib_buffer_get_current (b0); + teid0 = hdr0->gtpu.teid; + // go after GTPU, we are at segment header + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); + ip0 = vlib_buffer_get_current (b0); + + // ?? + encaps_processing_v4 (vm, node, b0, ip0); + + sr0 = (void*)(ip0+1); + if (PREDICT_TRUE (sl0->is_tmap)) + { + sr0 = ((void *) sr0) - vec_len (sl0->rewrite); + sr0->segments->as_u64[0] = sl0->tmap_prefix; + sr0->segments->as_u32[2] = hdr0->ip4.dst_address.as_u32; + sr0->segments->as_u32[3] = teid0; + } + else + { + // do we need this ? ? ? + sr0->segments->as_u32[3] = teid0; + } if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) @@ -2362,6 +2384,7 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, vec_len (sl0->rewrite); ip0->payload_length = clib_host_to_net_u16 (new_l0); + // LOOK he is adding to last one destination address sr0 = ((void *) sr0) - vec_len (sl0->rewrite); sr0->segments->as_u64[0] = ip0->dst_address.as_u64[0]; sr0->segments->as_u64[1] = ip0->dst_address.as_u64[1]; From 82344d552a4d788b3e0e871c3fe4c75d78bfa000 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sat, 23 Mar 2019 05:26:51 -0700 Subject: [PATCH 022/154] IETF104: sr header offset computation and id computation Change-Id: I8d099572031be40063d1bc6808af5c95b5241f3a Signed-off-by: Filip Varga --- src/vnet/srv6/sr_policy_rewrite.c | 115 +++++++++++++++++++++++------- 1 file changed, 89 insertions(+), 26 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index f038050b81f5..203c148e5914 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -150,11 +150,11 @@ VLIB_CLI_COMMAND (set_sr_src_command, static) = { * @return precomputed rewrite string for encapsulation */ static inline u8 * -compute_rewrite_encaps (ip6_address_t * sl) +compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap) { ip6_header_t *iph; ip6_sr_header_t *srh; - ip6_address_t *addrp, *this_address; + ip6_address_t *addrp, *this_address, *segment; u32 header_length = 0; u8 *rs = NULL; @@ -163,8 +163,15 @@ compute_rewrite_encaps (ip6_address_t * sl) if (vec_len (sl) > 1) { header_length += sizeof (ip6_sr_header_t); - // TODO: (vec_len (sl) + 1) - header_length += vec_len (sl) * sizeof (ip6_address_t); + + if (is_tmap) + { + header_length += (vec_len (sl) + 1) * sizeof (ip6_address_t); + } + else + { + header_length += vec_len (sl) * sizeof (ip6_address_t); + } } vec_validate (rs, header_length - 1); @@ -197,6 +204,13 @@ compute_rewrite_encaps (ip6_address_t * sl) sizeof (ip6_address_t)); addrp--; } + + if (is_tmap) + { + segment = (void *) srh + header_length - + sizeof (ip6_address_t); + segment->as_u64[0] = sl0->tmap_prefix; + } } iph->dst_address.as_u64[0] = sl->as_u64[0]; iph->dst_address.as_u64[1] = sl->as_u64[1]; @@ -296,7 +310,7 @@ compute_rewrite_bsid (ip6_address_t * sl) */ static inline ip6_sr_sl_t * create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, - u8 is_encap, u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix) + u8 is_encap, u8 is_tmap, ip46_address_t *tmap_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_sl_t *segment_list; @@ -311,13 +325,17 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, (weight != (u32) ~ 0 ? weight : SR_SEGMENT_LIST_WEIGHT_DEFAULT); segment_list->segments = vec_dup (sl); + segment_list->is_tmap = is_tmap; + segment_list->tmap_prefix = tmap_prefix; + if (is_encap) { - segment_list->rewrite = compute_rewrite_encaps (sl); + segment_list->rewrite = compute_rewrite_encaps (sl, is_tmap); segment_list->rewrite_bsid = segment_list->rewrite; } else { + // TODO: figure out if we need compute_rewrite_insert + is_tmap segment_list->rewrite = compute_rewrite_insert (sl); segment_list->rewrite_bsid = compute_rewrite_bsid (sl); } @@ -551,7 +569,7 @@ update_replicate (ip6_sr_policy_t * sr_policy) int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix, + u8 is_tmap, ip46_address_t *tmap_prefix, u32 gtp4_mask_width) { ip6_sr_main_t *sm = &sr_main; @@ -602,8 +620,8 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, NULL); /* Create a segment list and add the index to the SR policy */ - create_sl (sr_policy, segments, weight, is_encap, is_gtp4_removal, - gtp4_sr_prefix, gtp4_mask_width); + create_sl (sr_policy, segments, weight, is_encap, is_tmap, + tmap_prefix, gtp4_mask_width); /* If FIB doesnt exist, create them */ if (sm->fib_table_ip6 == (u32) ~ 0) @@ -836,8 +854,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, u8 operation = 0; char is_encap = 1; char is_spray = 0; - char is_gtp4_removal = 0; - ip46_address_t gtp4_sr_prefix; + char is_tmap = 0; + ip46_address_t tmap_prefix; u32 gtp4_mask_width = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -875,12 +893,12 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, else if (unformat (input, "insert")) is_encap = 0; else if (unformat (input, "gtp4_removal sr-prefix %U/%d", - unformat_ip6_address, >p4_sr_prefix.ip6, >p4_mask_width)) + unformat_ip6_address, &tmap_prefix.ip6, >p4_mask_width)) { ip6_address_t mask; ip6_address_mask_from_width(&mask, gtp4_mask_width); - ip6_address_mask(>p4_sr_prefix.ip6, &mask); - is_gtp4_removal = 1; + ip6_address_mask(&tmap_prefix.ip6, &mask); + is_tmap = 1; } else if (unformat (input, "spray")) is_spray = 1; @@ -900,8 +918,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, return clib_error_return (0, "No Segment List specified"); rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : - SR_POLICY_TYPE_DEFAULT), fib_table, is_encap, is_gtp4_removal, - >p4_sr_prefix); + SR_POLICY_TYPE_DEFAULT), fib_table, + is_encap, is_tmap, &tmap_prefix); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -1384,6 +1402,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; u32 teid0, teid1, teid2, teid3; + ip6_address_t *segment; /* Prefetch next iteration. */ { @@ -1478,10 +1497,53 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr2 = (void*)(ip2+1); sr3 = (void*)(ip3+1); - sr0->segments->as_u32[3] = teid0; - sr1->segments->as_u32[3] = teid1; - sr2->segments->as_u32[3] = teid2; - sr3->segments->as_u32[3] = teid3; + if (PREDICT_TRUE (sl0->is_tmap)) + { + segment = (void *) sr0 + vec_len (sl0->rewrite) - + sizeof (ip6_address_t); + segment->as_u32[2] = hdr0->ip4.dst_address.as_u32; + segment->as_u32[3] = teid0; + } + else + { + sl0->segments->as_u32[3] = teid0; + } + + if (PREDICT_TRUE (sl1->is_tmap)) + { + segment = (void *) sr1 + vec_len (sl1->rewrite) - + sizeof (ip6_address_t); + segment->as_u32[2] = hdr1->ip4.dst_address.as_u32; + segment->as_u32[3] = teid1; + } + else + { + sl1->segments->as_u32[3] = teid1; + } + + if (PREDICT_TRUE (sl2->is_tmap)) + { + segment = (void *) sr2 + vec_len (sl2->rewrite) - + sizeof (ip6_address_t); + segment->as_u32[2] = hdr2->ip4.dst_address.as_u32; + segment->as_u32[3] = teid2; + } + else + { + sl2->segments->as_u32[3] = teid2; + } + + if (PREDICT_TRUE (sl3->is_tmap)) + { + segment = (void *) sr3 + vec_len (sl3->rewrite) - + sizeof (ip6_address_t); + segment->as_u32[2] = hdr3->ip4.dst_address.as_u32; + segment->as_u32[3] = teid3; + } + else + { + sl3->segments->as_u32[3] = teid3; + } if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE))) { @@ -1540,6 +1602,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; ip4_gtpu_header_t *hdr0; + ip6_address_t *segment; u32 teid0; u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; @@ -1558,9 +1621,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // GTPU = IPv4 + UDP + GTP hdr0 = vlib_buffer_get_current (b0); - teid0 = hdr0->gtpu.teid; // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + // srv header clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -1570,16 +1633,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, encaps_processing_v4 (vm, node, b0, ip0); sr0 = (void*)(ip0+1); + teid0 = hdr0->gtpu.teid; if (PREDICT_TRUE (sl0->is_tmap)) { - sr0 = ((void *) sr0) - vec_len (sl0->rewrite); - sr0->segments->as_u64[0] = sl0->tmap_prefix; - sr0->segments->as_u32[2] = hdr0->ip4.dst_address.as_u32; - sr0->segments->as_u32[3] = teid0; + segment = (void *) sr0 + vec_len (sl0->rewrite) - + sizeof (ip6_address_t); + segment->as_u32[2] = hdr0->ip4.dst_address.as_u32; + segment->as_u32[3] = teid0; } else { - // do we need this ? ? ? sr0->segments->as_u32[3] = teid0; } From 11a5568c9df5439ebec3a977c8662951428efdf8 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sat, 23 Mar 2019 13:36:04 +0100 Subject: [PATCH 023/154] Fix error. Change-Id: I6b7118ece8a2c480a5137c8dd411004834978624 --- src/vnet/srv6/sr.h | 1 - src/vnet/srv6/sr_policy_rewrite.c | 15 +++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index caec35ce460a..d6b92e0b5287 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -92,7 +92,6 @@ typedef struct dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ - u64 tmap_prefix; /**< T.M.Tmap prefix used for node ID computation */ } ip6_sr_sl_t; diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 203c148e5914..1d86f35aaf1e 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -150,7 +150,7 @@ VLIB_CLI_COMMAND (set_sr_src_command, static) = { * @return precomputed rewrite string for encapsulation */ static inline u8 * -compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap) +compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap, u64 tmap_prefix) { ip6_header_t *iph; ip6_sr_header_t *srh; @@ -209,7 +209,7 @@ compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap) { segment = (void *) srh + header_length - sizeof (ip6_address_t); - segment->as_u64[0] = sl0->tmap_prefix; + segment->as_u64[0] = tmap_prefix; } } iph->dst_address.as_u64[0] = sl->as_u64[0]; @@ -326,11 +326,11 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, segment_list->segments = vec_dup (sl); segment_list->is_tmap = is_tmap; - segment_list->tmap_prefix = tmap_prefix; if (is_encap) { - segment_list->rewrite = compute_rewrite_encaps (sl, is_tmap); + segment_list->rewrite = compute_rewrite_encaps (sl, is_tmap, + tmap_prefix->as_u64[0]); segment_list->rewrite_bsid = segment_list->rewrite; } else @@ -569,8 +569,7 @@ update_replicate (ip6_sr_policy_t * sr_policy) int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_tmap, ip46_address_t *tmap_prefix, - u32 gtp4_mask_width) + u8 is_tmap, ip46_address_t *tmap_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -621,7 +620,7 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Create a segment list and add the index to the SR policy */ create_sl (sr_policy, segments, weight, is_encap, is_tmap, - tmap_prefix, gtp4_mask_width); + tmap_prefix); /* If FIB doesnt exist, create them */ if (sm->fib_table_ip6 == (u32) ~ 0) @@ -775,7 +774,7 @@ sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, { /* Create the new SL */ segment_list = - create_sl (sr_policy, segments, weight, sr_policy->is_encap); + create_sl (sr_policy, segments, weight, sr_policy->is_encap, 0, NULL); /* Create a new LB DPO */ if (sr_policy->type == SR_POLICY_TYPE_DEFAULT) From 71da85137d513776ad162ff45a5904763abb1090 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sat, 23 Mar 2019 05:56:08 -0700 Subject: [PATCH 024/154] IETF104: fixed runner ref Change-Id: I317367e7e90da9697f2bdd2fd62c7d2d84fc496b Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index d1c7c73f4712..db1805ac7f50 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -528,13 +528,13 @@ def vppctl(self, index, command=None): self.logger.error("connecting to: {}".format(name)) self.containers.vppctl(name, command) - def bash(self, index, command=None): + def bash(self, index): if index >= len(self.instance_names): return name = self.get_name( self.instance_names[index]) self.logger.error("connecting to: {}".format(name)) - self.containers.bash(name, command) + self.containers.bash(name) def get_args(): From debf69e389b6fa4f9285d73db5490fb8a029f74f Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sat, 23 Mar 2019 08:13:27 -0700 Subject: [PATCH 025/154] IETF104: new srv6 endpoint module base code Change-Id: I36e85c9a19cf79197c9dfd2e80d818904a166b36 Signed-off-by: Filip Varga --- src/plugins/srv6-ad/node.c | 13 +-- src/plugins/srv6-end/CMakeLists.txt | 21 +++++ src/plugins/srv6-end/node.c | 120 ++++++++++++++++++++++++++++ src/plugins/srv6-end/srv6_end.c | 67 ++++++++++++++++ src/plugins/srv6-end/srv6_end.h | 48 +++++++++++ 5 files changed, 264 insertions(+), 5 deletions(-) create mode 100644 src/plugins/srv6-end/CMakeLists.txt create mode 100644 src/plugins/srv6-end/node.c create mode 100644 src/plugins/srv6-end/srv6_end.c create mode 100644 src/plugins/srv6-end/srv6_end.h diff --git a/src/plugins/srv6-ad/node.c b/src/plugins/srv6-ad/node.c index 8f32ae0e49e5..dbd68cf4c987 100644 --- a/src/plugins/srv6-ad/node.c +++ b/src/plugins/srv6-ad/node.c @@ -1,4 +1,6 @@ /* + * node.c + * * Copyright (c) 2015 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -12,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + #include #include #include @@ -705,9 +708,9 @@ VLIB_REGISTER_NODE (srv6_ad6_rewrite_node) = { /* *INDENT-ON* */ /* -* fd.io coding-style-patch-verification: ON -* -* Local Variables: -* eval: (c-set-style "gnu") -* End: + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: */ diff --git a/src/plugins/srv6-end/CMakeLists.txt b/src/plugins/srv6-end/CMakeLists.txt new file mode 100644 index 000000000000..6e7fc2612f50 --- /dev/null +++ b/src/plugins/srv6-end/CMakeLists.txt @@ -0,0 +1,21 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +add_vpp_plugin(srv6end + SOURCES + srv6_end.c + node.c + + INSTALL_HEADERS + srv6_end.h +) diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c new file mode 100644 index 000000000000..8e153fad693c --- /dev/null +++ b/src/plugins/srv6-end/node.c @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include +#include + +#define foreach_srv6_end_error \ + _(SRV6_END_M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") + +typedef enum +{ +#define _(sym,str) SRV6_END_ERROR_##sym, + foreach_srv6_end_error +#undef _ + SRV6_END_N_ERROR, +} srv6_end_error_t; + +static char *srv6_end_error_strings[] = { +#define _(sym,string) string, + foreach_srv6_end_error +#undef _ +}; + +typedef enum +{ + SRV6_END_M_GTP4_E_NEXT_DROP, + SRV6_END_M_GTP4_E_NEXT_LOOKUP, + SRV6_END_M_GTP4_E_N_NEXT, +} srv6_end_m_gtp4_e_next_t; + +VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) +{ + srv6_end_main_t *sm = &srv6_end_main; + u32 n_left_from, next_index, *from, *to_next; + + u32 good_n = 0; + + from = vlib_frame_vector_args (frame); + n_left_from = frame->n_vectors; + next_index = node->cached_next_index; + + + while (n_left_from > 0) + { + u32 n_left_to_next; + + vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next); + + while (n_left_from > 0 && n_left_to_next > 0) + { + + u32 bi0; + vlib_buffer_t *b0; + + ip6_header_t *ip0 = 0; + u32 next0 = SRV6_END_M_GTP4_E_NEXT_LOOKUP; + + bi0 = from[0]; + to_next[0] = bi0; + from += 1; + to_next += 1; + n_left_from -= 1; + n_left_to_next -= 1; + + b0 = vlib_get_buffer (vm, bi0); + ip0 = vlib_buffer_get_current (b0); + + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, + n_left_to_next, bi0, next0); + + good_n++; + + + } + } + + vlib_node_increment_counter (vm, sm->end_m_gtp4_e_node_index, + SRV6_END_M_GTP4_E_PACKETS, + good_n); + + return frame->n_vectors; +} + + +VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { + .name = "srv6-end-m-gtp4-e", + .vector_size = sizeof (u32), + .type = VLIB_NODE_TYPE_INTERNAL, + + .n_errors = ARRAY_LEN (srv6_end_error_strings), + .error_strings = srv6_end_error_strings, + + .n_next_nodes = SRV6_END_M_GTP4_E_N_NEXT, + .next_nodes = { + [SRV6_END_M_GTP4_E_NEXT_DROP] = "error-drop", + [SRV6_END_M_GTP4_E_NEXT_LOOKUP] = "ip6-lookup", + }, +} + +/* +* fd.io coding-style-patch-verification: ON +* +* Local Variables: +* eval: (c-set-style "gnu") +* End: +*/ diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c new file mode 100644 index 000000000000..29ba4614548f --- /dev/null +++ b/src/plugins/srv6-end/srv6_end.c @@ -0,0 +1,67 @@ +/* + * srv6_end.c + * + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +static clib_error_t * +srv6_end_init (vlib_main_t * vm) +{ + srv6_end_main_t *sm = &srv6_end_main; + vlib_node_t *node; + + sm->vlib_main = vm; + sm->vnet_main = vnet_get_main (); + + // dpo_register_new_type ( ) + // sr_localsid_register_function ( ) + + node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp4-e"); + sm->end_m_gtp4_e_index = node->index; + + node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); + sm->error_node_index = node->index; + + return 0; +} + +/* *INDENT-OFF* */ +// TODO: check if name matters ! +VNET_FEATURE_INIT (srv6_end_m_gtp4_e, static) = +{ + .arc_name = "ip6-unicast", + .node_name = "srv6-end-m-gtp4-e", + .runs_before = 0, +}; + +VLIB_INI_FUNCTION (srv6_end_init); + +VLIB_PLUGIN_REGISTER () = { + .version = VPP_BUILD_VER, + .description = "SRV6 Endpoint", +}; +/* *INDENT-ON* */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-end/srv6_end.h new file mode 100644 index 000000000000..601e05b3afb3 --- /dev/null +++ b/src/plugins/srv6-end/srv6_end.h @@ -0,0 +1,48 @@ +/* + * srv6_end.h + * + * Copyright (c) 2016 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __included_srv6_end_h__ +#define __included_srv6_end_h__ + +#include +#include + + +typedef struct srv6_end_main_s +{ + + u32 end_m_gtp4_e_node_index; + u32 error_node_index; + + vlib_main_t *vlib_main; + vnet_main_t *vnet_main; + + +} srv6_end_main_t; + +extern srv6_end_main_t srv6_end_main; +extern vlib_node_registration_t srv6_end_m_gtp4_e; + +#endif /* __included_srv6_end_h__ */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ From 062d224a7370131c4548e464a7891ee1034235e6 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sat, 23 Mar 2019 09:06:30 -0700 Subject: [PATCH 026/154] IETF104: offset computation fix Change-Id: Idb36232d1c94e29431897269434527cb7b645036 Signed-off-by: Filip Varga --- src/plugins/srv6-ad/ad.c | 2 +- src/plugins/srv6-end/node.c | 11 ++++++----- src/plugins/srv6-end/srv6_end.c | 4 ++-- src/plugins/srv6-end/srv6_end.h | 1 - src/vnet/srv6/sr_policy_rewrite.c | 15 ++++++++------- 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/plugins/srv6-ad/ad.c b/src/plugins/srv6-ad/ad.c index 46fdd5845170..9b967a8d6519 100644 --- a/src/plugins/srv6-ad/ad.c +++ b/src/plugins/srv6-ad/ad.c @@ -424,7 +424,7 @@ srv6_ad_init (vlib_main_t * vm) keyword_str, def_str, params_str, - 128, + 128, &sm->srv6_ad_dpo_type, format_srv6_ad_localsid, unformat_srv6_ad_localsid, diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index 8e153fad693c..671e926dc329 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -15,9 +15,10 @@ #include #include #include +#include #define foreach_srv6_end_error \ - _(SRV6_END_M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") + _(M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") typedef enum { @@ -78,18 +79,18 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, b0 = vlib_get_buffer (vm, bi0); ip0 = vlib_buffer_get_current (b0); + // dummy + ip0++; vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); good_n++; - - } } vlib_node_increment_counter (vm, sm->end_m_gtp4_e_node_index, - SRV6_END_M_GTP4_E_PACKETS, + SRV6_END_ERROR_M_GTP4_E_PACKETS, good_n); return frame->n_vectors; @@ -109,7 +110,7 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { [SRV6_END_M_GTP4_E_NEXT_DROP] = "error-drop", [SRV6_END_M_GTP4_E_NEXT_LOOKUP] = "ip6-lookup", }, -} +}; /* * fd.io coding-style-patch-verification: ON diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index 29ba4614548f..958d7819d8ed 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -33,7 +33,7 @@ srv6_end_init (vlib_main_t * vm) // sr_localsid_register_function ( ) node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp4-e"); - sm->end_m_gtp4_e_index = node->index; + sm->end_m_gtp4_e_node_index = node->index; node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; @@ -50,7 +50,7 @@ VNET_FEATURE_INIT (srv6_end_m_gtp4_e, static) = .runs_before = 0, }; -VLIB_INI_FUNCTION (srv6_end_init); +VLIB_INIT_FUNCTION (srv6_end_init); VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-end/srv6_end.h index 601e05b3afb3..d22589099da2 100644 --- a/src/plugins/srv6-end/srv6_end.h +++ b/src/plugins/srv6-end/srv6_end.h @@ -21,7 +21,6 @@ #include #include - typedef struct srv6_end_main_s { diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 1d86f35aaf1e..e8358fdded89 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -185,9 +185,10 @@ compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap, u64 tmap_prefix) iph->protocol = IP_PROTOCOL_IPV6; iph->hop_limit = IPv6_DEFAULT_HOP_LIMIT; + srh = (ip6_sr_header_t *) (iph + 1); + if (vec_len (sl) > 1) { - srh = (ip6_sr_header_t *) (iph + 1); iph->protocol = IP_PROTOCOL_IPV6_ROUTE; srh->protocol = IP_PROTOCOL_IPV6; srh->type = ROUTING_HEADER_TYPE_SR; @@ -204,14 +205,14 @@ compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap, u64 tmap_prefix) sizeof (ip6_address_t)); addrp--; } + } - if (is_tmap) - { - segment = (void *) srh + header_length - - sizeof (ip6_address_t); - segment->as_u64[0] = tmap_prefix; - } + if (is_tmap) + { + segment = srh->segments + vec_len (sl); + segment->as_u64[0] = tmap_prefix; } + iph->dst_address.as_u64[0] = sl->as_u64[0]; iph->dst_address.as_u64[1] = sl->as_u64[1]; return rs; From a505bbef624d03b923a08a7c8632511864342a00 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sat, 23 Mar 2019 09:23:21 -0700 Subject: [PATCH 027/154] IETF104: offset computation 2 fix Change-Id: Id0b5b249e4ccc017c263065aebaaeeb73f5e0da2 Signed-off-by: Filip Varga --- src/vnet/srv6/sr_policy_rewrite.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index e8358fdded89..f05374fd6f27 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1596,13 +1596,14 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, /* Single loop for potentially the last three packets */ while (n_left_from > 0 && n_left_to_next > 0) { - u32 bi0; + u32 bi0, tmp0; vlib_buffer_t *b0; ip6_header_t *ip0 = 0; ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; ip4_gtpu_header_t *hdr0; ip6_address_t *segment; + ip4_address_t addr0; u32 teid0; u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; @@ -1619,30 +1620,35 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, pool_elt_at_index (sm->sid_lists, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); - // GTPU = IPv4 + UDP + GTP + // save for later use hdr0 = vlib_buffer_get_current (b0); + teid0 = hdr0->gtpu.teid; + addr0 = hdr0->ip4.dst_address; + // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); - // srv header - clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), + + // srv header + 1 position (new one) + tmp0 = vlib_buffer_get_current (b0); + clib_memcpy (tmp0 - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); + + // first ipv6 header position vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); ip0 = vlib_buffer_get_current (b0); // ?? encaps_processing_v4 (vm, node, b0, ip0); - sr0 = (void*)(ip0+1); - teid0 = hdr0->gtpu.teid; if (PREDICT_TRUE (sl0->is_tmap)) { - segment = (void *) sr0 + vec_len (sl0->rewrite) - - sizeof (ip6_address_t); - segment->as_u32[2] = hdr0->ip4.dst_address.as_u32; + segment = (void *) tmp0 - sizeof (ip6_address_t); + segment->as_u32[2] = addr0.as_u32; segment->as_u32[3] = teid0; } else { + sr0 = (void*)(ip0+1); sr0->segments->as_u32[3] = teid0; } From 175f00f804723fd3451cc9963e0c951a879c86a8 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 23 Mar 2019 14:05:28 +0100 Subject: [PATCH 028/154] correct GTP protocol version and GTP message type to G-PDU. --- extras/ietf104/runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index db1805ac7f50..ef7b4de0326b 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -16,7 +16,7 @@ from docker.errors import NotFound, APIError from docker import from_env from scapy.all import * -from scapy.contrib.gtp_v2 import * +from scapy.contrib.gtp import * verbose_levels = { @@ -481,7 +481,7 @@ def test_tmap(self): local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/UDP(sport=2152, dport=2152)/GTPHeader(teid=200)/IP(src="172.99.0.1", dst="172.99.0.2")/ICMP()) + IP(src="172.20.0.2", dst="172.20.0.1")/UDP(sport=2152, dport=2152)/GTPHeader(gtp_type="g_pdu", teid=200)/IP(src="172.99.0.1", dst="172.99.0.2")/ICMP()) print("Sending packet on {}:".format(c1.name)) p.show2() From 8337f155ca0ca194d8509eb0e742cf0d4f9be931 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sat, 23 Mar 2019 18:43:58 +0100 Subject: [PATCH 029/154] IETF104: Fix offset error and wrong IP address. Change-Id: Ie7e5df51f7cca9e51cdd3749fe1e593d7d0bbe47 --- src/vnet/srv6/sr_policy_rewrite.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index f05374fd6f27..f04846041426 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1596,14 +1596,15 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, /* Single loop for potentially the last three packets */ while (n_left_from > 0 && n_left_to_next > 0) { - u32 bi0, tmp0; - vlib_buffer_t *b0; + u32 bi0; + vlib_buffer_t *b0, *tmp0; ip6_header_t *ip0 = 0; ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; ip4_gtpu_header_t *hdr0; ip6_address_t *segment; ip4_address_t addr0; + u16 sr_port; u32 teid0; u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; @@ -1623,14 +1624,15 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // save for later use hdr0 = vlib_buffer_get_current (b0); teid0 = hdr0->gtpu.teid; - addr0 = hdr0->ip4.dst_address; + addr0 = hdr0->ip4.src_address; + sr_port = hdr0->udp.src_port; // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); // srv header + 1 position (new one) tmp0 = vlib_buffer_get_current (b0); - clib_memcpy (tmp0 - vec_len (sl0->rewrite), + clib_memcpy ((void *) tmp0 - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); // first ipv6 header position @@ -1644,7 +1646,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { segment = (void *) tmp0 - sizeof (ip6_address_t); segment->as_u32[2] = addr0.as_u32; - segment->as_u32[3] = teid0; + segment->as_u16[7] = sr_port; } else { From d04d7a937da112bd729f8abf4ba5a3e5b77a6eda Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 09:13:39 +0100 Subject: [PATCH 030/154] IETF104: TMAP - add support for 32 prefix length. Change-Id: Id1126d72a41d5e18591a58c0108b1663db242b67 --- src/vnet/srv6/sr.h | 3 ++- src/vnet/srv6/sr_api.c | 2 +- src/vnet/srv6/sr_policy_rewrite.c | 29 ++++++++++++++++++++--------- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index d6b92e0b5287..55d5fd65b553 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -92,6 +92,7 @@ typedef struct dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ + u32 tmap_mask; /**< T.M.Tmap mask type*/ } ip6_sr_sl_t; @@ -285,7 +286,7 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, extern int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix); + u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix, u32 mask_width); extern int sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, u8 operation, ip6_address_t * segments, u32 sl_index, diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index 9aa58300a54c..bf8266d02968 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -113,7 +113,7 @@ vl_api_sr_policy_add_t_handler (vl_api_sr_policy_add_t * mp) rv = sr_policy_add ((ip6_address_t *) & mp->bsid_addr, segments, ntohl (mp->sids.weight), - mp->type, ntohl (mp->fib_table), mp->is_encap, 0, NULL); + mp->type, ntohl (mp->fib_table), mp->is_encap, 0, NULL, 0); vec_free (segments); REPLY_MACRO (VL_API_SR_POLICY_ADD_REPLY); diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index f04846041426..037ba3225861 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -311,7 +311,7 @@ compute_rewrite_bsid (ip6_address_t * sl) */ static inline ip6_sr_sl_t * create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, - u8 is_encap, u8 is_tmap, ip46_address_t *tmap_prefix) + u8 is_encap, u8 is_tmap, ip46_address_t *tmap_prefix, u32 mask) { ip6_sr_main_t *sm = &sr_main; ip6_sr_sl_t *segment_list; @@ -327,6 +327,7 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, segment_list->segments = vec_dup (sl); segment_list->is_tmap = is_tmap; + segment_list->tmap_mask = mask; if (is_encap) { @@ -570,7 +571,7 @@ update_replicate (ip6_sr_policy_t * sr_policy) int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_tmap, ip46_address_t *tmap_prefix) + u8 is_tmap, ip46_address_t *tmap_prefix, u32 mask_width) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -621,7 +622,7 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Create a segment list and add the index to the SR policy */ create_sl (sr_policy, segments, weight, is_encap, is_tmap, - tmap_prefix); + tmap_prefix, mask_width); /* If FIB doesnt exist, create them */ if (sm->fib_table_ip6 == (u32) ~ 0) @@ -775,7 +776,7 @@ sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, { /* Create the new SL */ segment_list = - create_sl (sr_policy, segments, weight, sr_policy->is_encap, 0, NULL); + create_sl (sr_policy, segments, weight, sr_policy->is_encap, 0, NULL, 0); /* Create a new LB DPO */ if (sr_policy->type == SR_POLICY_TYPE_DEFAULT) @@ -919,7 +920,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, - is_encap, is_tmap, &tmap_prefix); + is_encap, is_tmap, &tmap_prefix, gtp4_mask_width); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -1603,7 +1604,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip6_sr_header_t *sr0; ip4_gtpu_header_t *hdr0; ip6_address_t *segment; - ip4_address_t addr0; + ip4_address_t sr_addr0; + ip4_address_t dst_addr0; u16 sr_port; u32 teid0; @@ -1624,7 +1626,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // save for later use hdr0 = vlib_buffer_get_current (b0); teid0 = hdr0->gtpu.teid; - addr0 = hdr0->ip4.src_address; + sr_addr0 = hdr0->ip4.src_address; + dst_addr0 = hdr0->ip4.dst_address; sr_port = hdr0->udp.src_port; // go after GTPU, we are at segment header @@ -1645,8 +1648,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { segment = (void *) tmp0 - sizeof (ip6_address_t); - segment->as_u32[2] = addr0.as_u32; - segment->as_u16[7] = sr_port; + if (sl0->tmap_mask == 64) { + segment->as_u32[2] = sr_addr0.as_u32; + segment->as_u16[6] = sr_port; + } else if (sl0->tmap_mask == 32) { + segment->as_u32[1] = dst_addr0.as_u32; + segment->as_u16[5] = ((u16*) &teid0)[0]; + segment->as_u16[6] = ((u16*) &teid0)[1]; + } else { + //Not support now + } } else { From 03aa6a2d4b1dfb75aa9c4b51af429ff37b8a16ea Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 24 Mar 2019 01:25:25 -0700 Subject: [PATCH 031/154] IETF104: End.M.GTP4.E template code Change-Id: I25d1a464151c9e9f5c8732f3a9e810b5cc74ea87 Signed-off-by: Filip Varga --- src/plugins/srv6-ad/ad.c | 1 - src/plugins/srv6-end/srv6_end.c | 91 +++++++++++++++++++++++++++++-- src/plugins/srv6-end/srv6_end.h | 1 - src/vnet/srv6/sr_policy_rewrite.c | 62 ++++++++++++--------- 4 files changed, 122 insertions(+), 33 deletions(-) diff --git a/src/plugins/srv6-ad/ad.c b/src/plugins/srv6-ad/ad.c index 9b967a8d6519..bc55bc1abe46 100644 --- a/src/plugins/srv6-ad/ad.c +++ b/src/plugins/srv6-ad/ad.c @@ -424,7 +424,6 @@ srv6_ad_init (vlib_main_t * vm) keyword_str, def_str, params_str, - 128, &sm->srv6_ad_dpo_type, format_srv6_ad_localsid, unformat_srv6_ad_localsid, diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index 958d7819d8ed..e98e042ff403 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -20,24 +20,105 @@ #include #include +static void +clb_dpo_lock_srv6_end_m_gtp4_e (dpo_id_t * dpo) +{ +} + +static void +clb_dpo_unlock_srv6_end_m_gtp4_e (dpo_id_t * dpo) +{ +} + +static u8 * +clb_dpo_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) +{ + // TODO: + index_t index = va_arg (*args, index_t); + CLIB_UNUSED (u32 indent) = va_arg (*args, u32); + + return (format (s, "SR: dynamic_proxy_index:[%u]", index)); +} + +const static dpo_vft_t dpo_vft = { + .dv_lock = clb_dpo_lock_srv6_end_m_gtp4_e, + .dv_unlock = clb_dpo_unlock_srv6_end_m_gtp4_e, + .dv_format = clb_dpo_format_srv6_end_m_gtp4_e, +}; + +const static char *const srv6_end_nodes[] = { + "srv6-end-m-gtp4-e", + NULL, +}; + +const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { + [DPO_PROTO_IP6] = srv6_end_nodes, +}; + +static u8 fn_name[] = "SRv6-End.M.GTP4.E-plugin"; +static u8 keyword_str[] = "End.M.GTP4.E"; +static u8 def_str[] = "Endpoint function with encapsulation for IPv4/GTP tunnel"; +static u8 param_str[] = ""; + +static u8 * +clb_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) +{ + // TODO: we may not need this, string s contains the command line + // output to be printed + s = format (s, "SRv6 End format function unsupported."); + return s; +} + +static uword * +clb_unformat_srv6_end_m_gtp4_e (unformat_input_t, va_list * args) +{ + // TODO: we need this! process the parameters of command line +} + +static int +clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) +{ + // TODO: figure out what to do +} + +static int +clb_removal_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) +{ + // TODO: figure out what to do +} + static clib_error_t * srv6_end_init (vlib_main_t * vm) { srv6_end_main_t *sm = &srv6_end_main; vlib_node_t *node; + u32 rc; + + dpo_type_t dpo_type; sm->vlib_main = vm; sm->vnet_main = vnet_get_main (); - - // dpo_register_new_type ( ) - // sr_localsid_register_function ( ) - + node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp4-e"); sm->end_m_gtp4_e_node_index = node->index; node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; + dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); + + rc = sr_localsid_register_function (vm, fn_name, keyword_str, + def_str, param_str, &dpo_type, + clb_format_srv6_end_m_gtp4_e, + clb_unformat_srv6_end_m_gtp4_e, + clb_creation_srv6_end_m_gtp4_e, + clb_removal_srv6_end_m_gtp4_e); + if (rc < 0) + { + clib_error_return (0, "SRv6 Endpoint LocalSID function" + "couldn't be registered"); + } + return 0; } @@ -54,7 +135,7 @@ VLIB_INIT_FUNCTION (srv6_end_init); VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, - .description = "SRV6 Endpoint", + .description = "SRv6 Endpoint", }; /* *INDENT-ON* */ diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-end/srv6_end.h index d22589099da2..87dbef942b16 100644 --- a/src/plugins/srv6-end/srv6_end.h +++ b/src/plugins/srv6-end/srv6_end.h @@ -30,7 +30,6 @@ typedef struct srv6_end_main_s vlib_main_t *vlib_main; vnet_main_t *vnet_main; - } srv6_end_main_t; extern srv6_end_main_t srv6_end_main; diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index f05374fd6f27..991ce90c8cb3 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1394,13 +1394,14 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, while (n_left_from >= 8 && n_left_to_next >= 4) { u32 bi0, bi1, bi2, bi3; - vlib_buffer_t *b0, *b1, *b2, *b3; + vlib_buffer_t *b0, *b1, *b2, *b3, *tmp0, *tmp1, *tmp2, *tmp3; u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; + ip4_address_t addr0, addr1, addr2, addr3; u32 teid0, teid1, teid2, teid3; ip6_address_t *segment; @@ -1462,11 +1463,21 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teid2 = hdr2->gtpu.teid; teid3 = hdr3->gtpu.teid; + addr0 = hdr0->ip4.dst_address; + addr1 = hdr1->ip4.dst_address; + addr2 = hdr2->ip4.dst_address; + addr3 = hdr3->ip4.dst_address; + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); + tmp0 = vlib_buffer_get_current (b0); + tmp1 = vlib_buffer_get_current (b1); + tmp2 = vlib_buffer_get_current (b2); + tmp3 = vlib_buffer_get_current (b3); + clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); clib_memcpy (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), @@ -1491,58 +1502,58 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, encaps_processing_v4 (vm, node, b2, ip2); encaps_processing_v4 (vm, node, b3, ip3); - /* Set the TEID in the last SID args */ - sr0 = (void*)(ip0+1); - sr1 = (void*)(ip1+1); - sr2 = (void*)(ip2+1); - sr3 = (void*)(ip3+1); + if (PREDICT_TRUE (sl0->is_tmap)) { - segment = (void *) sr0 + vec_len (sl0->rewrite) - - sizeof (ip6_address_t); - segment->as_u32[2] = hdr0->ip4.dst_address.as_u32; + segment = (void *) tmp0 - sizeof (ip6_address_t); + segment->as_u32[2] = addr0.as_u32; segment->as_u32[3] = teid0; } else { - sl0->segments->as_u32[3] = teid0; + /* Set the TEID in the last SID args */ + sr0 = (void*)(ip0+1); + sr0->segments->as_u32[3] = teid0; } if (PREDICT_TRUE (sl1->is_tmap)) { - segment = (void *) sr1 + vec_len (sl1->rewrite) - - sizeof (ip6_address_t); - segment->as_u32[2] = hdr1->ip4.dst_address.as_u32; + segment = (void *) tmp1 - sizeof (ip6_address_t); + segment->as_u32[2] = addr1.as_u32; segment->as_u32[3] = teid1; } else { - sl1->segments->as_u32[3] = teid1; + /* Set the TEID in the last SID args */ + sr1 = (void*)(ip1+1); + sr1->segments->as_u32[3] = teid1; } if (PREDICT_TRUE (sl2->is_tmap)) { - segment = (void *) sr2 + vec_len (sl2->rewrite) - - sizeof (ip6_address_t); - segment->as_u32[2] = hdr2->ip4.dst_address.as_u32; + segment = (void *) tmp2 - sizeof (ip6_address_t); + segment->as_u32[2] = addr2.as_u32; segment->as_u32[3] = teid2; } else { - sl2->segments->as_u32[3] = teid2; + /* Set the TEID in the last SID args */ + sr2 = (void*)(ip2+1); + sr2->segments->as_u32[3] = teid2; } if (PREDICT_TRUE (sl3->is_tmap)) { - segment = (void *) sr3 + vec_len (sl3->rewrite) - - sizeof (ip6_address_t); - segment->as_u32[2] = hdr3->ip4.dst_address.as_u32; + segment = (void *) tmp3 - sizeof (ip6_address_t); + segment->as_u32[2] = addr3.as_u32; segment->as_u32[3] = teid3; } else { - sl3->segments->as_u32[3] = teid3; + /* Set the TEID in the last SID args */ + sr3 = (void*)(ip3+1); + sr3->segments->as_u32[3] = teid3; } if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE))) @@ -1596,8 +1607,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, /* Single loop for potentially the last three packets */ while (n_left_from > 0 && n_left_to_next > 0) { - u32 bi0, tmp0; - vlib_buffer_t *b0; + u32 bi0; + vlib_buffer_t *b0, *tmp0; ip6_header_t *ip0 = 0; ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; @@ -1630,14 +1641,13 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // srv header + 1 position (new one) tmp0 = vlib_buffer_get_current (b0); - clib_memcpy (tmp0 - vec_len (sl0->rewrite), + clib_memcpy ((void *) tmp0 - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); // first ipv6 header position vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); ip0 = vlib_buffer_get_current (b0); - // ?? encaps_processing_v4 (vm, node, b0, ip0); if (PREDICT_TRUE (sl0->is_tmap)) From 44e2e0dfe7bbd8b628ad1a795fab487c22f14f5f Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 09:54:23 +0100 Subject: [PATCH 032/154] IETF104 - Add missing support for 32 prefix to all vector. Change-Id: Idde791b6846cc114acca70efe74a3f7c8de16c0e --- src/vnet/srv6/sr_policy_rewrite.c | 71 +++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 168afea65f9f..bc9b94f5e586 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1402,7 +1402,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; - ip4_address_t addr0, addr1, addr2, addr3; + ip4_address_t sr_addr0, sr_addr1, sr_addr2, sr_addr3; + ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; + u16 sr_port0, sr_port1, sr_port2, sr_port3; u32 teid0, teid1, teid2, teid3; ip6_address_t *segment; @@ -1464,10 +1466,20 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teid2 = hdr2->gtpu.teid; teid3 = hdr3->gtpu.teid; - addr0 = hdr0->ip4.dst_address; - addr1 = hdr1->ip4.dst_address; - addr2 = hdr2->ip4.dst_address; - addr3 = hdr3->ip4.dst_address; + sr_addr0 = hdr0->ip4.src_address; + sr_addr1 = hdr1->ip4.src_address; + sr_addr2 = hdr2->ip4.src_address; + sr_addr3 = hdr3->ip4.src_address; + + dst_addr0 = hdr0->ip4.dst_address; + dst_addr1 = hdr1->ip4.dst_address; + dst_addr2 = hdr2->ip4.dst_address; + dst_addr3 = hdr3->ip4.dst_address; + + sr_port0 = hdr0->udp.src_port; + sr_port1 = hdr1->udp.src_port; + sr_port2 = hdr2->udp.src_port; + sr_port3 = hdr3->udp.src_port; vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); @@ -1503,13 +1515,20 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, encaps_processing_v4 (vm, node, b2, ip2); encaps_processing_v4 (vm, node, b3, ip3); - if (PREDICT_TRUE (sl0->is_tmap)) { segment = (void *) tmp0 - sizeof (ip6_address_t); - segment->as_u32[2] = addr0.as_u32; - segment->as_u32[3] = teid0; + if (sl0->tmap_mask == 64) { + segment->as_u32[2] = sr_addr0.as_u32; + segment->as_u16[6] = sr_port0; + } else if (sl0->tmap_mask == 32) { + segment->as_u32[1] = dst_addr0.as_u32; + segment->as_u16[5] = ((u16*) &teid0)[0]; + segment->as_u16[6] = ((u16*) &teid0)[1]; + } else { + //Not support now + } } else { @@ -1521,8 +1540,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl1->is_tmap)) { segment = (void *) tmp1 - sizeof (ip6_address_t); - segment->as_u32[2] = addr1.as_u32; - segment->as_u32[3] = teid1; + if (sl0->tmap_mask == 64) { + segment->as_u32[2] = sr_addr1.as_u32; + segment->as_u16[6] = sr_port1; + } else if (sl0->tmap_mask == 32) { + segment->as_u32[1] = dst_addr1.as_u32; + segment->as_u16[5] = ((u16*) &teid1)[0]; + segment->as_u16[6] = ((u16*) &teid1)[1]; + } else { + //Not support now + } } else { @@ -1534,8 +1561,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl2->is_tmap)) { segment = (void *) tmp2 - sizeof (ip6_address_t); - segment->as_u32[2] = addr2.as_u32; - segment->as_u32[3] = teid2; + if (sl0->tmap_mask == 64) { + segment->as_u32[2] = sr_addr2.as_u32; + segment->as_u16[6] = sr_port2; + } else if (sl0->tmap_mask == 32) { + segment->as_u32[1] = dst_addr2.as_u32; + segment->as_u16[5] = ((u16*) &teid2)[0]; + segment->as_u16[6] = ((u16*) &teid2)[1]; + } else { + //Not support now + } } else { @@ -1547,8 +1582,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl3->is_tmap)) { segment = (void *) tmp3 - sizeof (ip6_address_t); - segment->as_u32[2] = addr3.as_u32; - segment->as_u32[3] = teid3; + if (sl0->tmap_mask == 64) { + segment->as_u32[2] = sr_addr3.as_u32; + segment->as_u16[6] = sr_port3; + } else if (sl0->tmap_mask == 32) { + segment->as_u32[1] = dst_addr3.as_u32; + segment->as_u16[5] = ((u16*) &teid3)[0]; + segment->as_u16[6] = ((u16*) &teid3)[1]; + } else { + //Not support now + } } else { From 792f82049eeb93a2f05eafb122214db67ace9f02 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 10:48:52 +0100 Subject: [PATCH 033/154] IETF104: Fix error, create src address. Change-Id: Ic580e0d1696ddeaa0e0b693fbb1cf84876b0a20c --- src/vnet/srv6/sr.h | 3 +- src/vnet/srv6/sr_api.c | 2 +- src/vnet/srv6/sr_policy_rewrite.c | 98 +++++++++++++------------------ 3 files changed, 43 insertions(+), 60 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 55d5fd65b553..d6b92e0b5287 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -92,7 +92,6 @@ typedef struct dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ - u32 tmap_mask; /**< T.M.Tmap mask type*/ } ip6_sr_sl_t; @@ -286,7 +285,7 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, extern int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix, u32 mask_width); + u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix); extern int sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, u8 operation, ip6_address_t * segments, u32 sl_index, diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index bf8266d02968..9aa58300a54c 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -113,7 +113,7 @@ vl_api_sr_policy_add_t_handler (vl_api_sr_policy_add_t * mp) rv = sr_policy_add ((ip6_address_t *) & mp->bsid_addr, segments, ntohl (mp->sids.weight), - mp->type, ntohl (mp->fib_table), mp->is_encap, 0, NULL, 0); + mp->type, ntohl (mp->fib_table), mp->is_encap, 0, NULL); vec_free (segments); REPLY_MACRO (VL_API_SR_POLICY_ADD_REPLY); diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index bc9b94f5e586..c8baa1e4a1f6 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -311,7 +311,7 @@ compute_rewrite_bsid (ip6_address_t * sl) */ static inline ip6_sr_sl_t * create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, - u8 is_encap, u8 is_tmap, ip46_address_t *tmap_prefix, u32 mask) + u8 is_encap, u8 is_tmap, ip46_address_t *tmap_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_sl_t *segment_list; @@ -327,7 +327,6 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, segment_list->segments = vec_dup (sl); segment_list->is_tmap = is_tmap; - segment_list->tmap_mask = mask; if (is_encap) { @@ -571,7 +570,7 @@ update_replicate (ip6_sr_policy_t * sr_policy) int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_tmap, ip46_address_t *tmap_prefix, u32 mask_width) + u8 is_tmap, ip46_address_t *tmap_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -622,7 +621,7 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Create a segment list and add the index to the SR policy */ create_sl (sr_policy, segments, weight, is_encap, is_tmap, - tmap_prefix, mask_width); + tmap_prefix); /* If FIB doesnt exist, create them */ if (sm->fib_table_ip6 == (u32) ~ 0) @@ -776,7 +775,7 @@ sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, { /* Create the new SL */ segment_list = - create_sl (sr_policy, segments, weight, sr_policy->is_encap, 0, NULL, 0); + create_sl (sr_policy, segments, weight, sr_policy->is_encap, 0, NULL); /* Create a new LB DPO */ if (sr_policy->type == SR_POLICY_TYPE_DEFAULT) @@ -920,7 +919,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, - is_encap, is_tmap, &tmap_prefix, gtp4_mask_width); + is_encap, is_tmap, &tmap_prefix); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -1519,16 +1518,13 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { segment = (void *) tmp0 - sizeof (ip6_address_t); - if (sl0->tmap_mask == 64) { - segment->as_u32[2] = sr_addr0.as_u32; - segment->as_u16[6] = sr_port0; - } else if (sl0->tmap_mask == 32) { - segment->as_u32[1] = dst_addr0.as_u32; - segment->as_u16[5] = ((u16*) &teid0)[0]; - segment->as_u16[6] = ((u16*) &teid0)[1]; - } else { - //Not support now - } + segment->as_u32[1] = dst_addr0.as_u32; + segment->as_u16[5] = ((u16*) &teid0)[0]; + segment->as_u16[6] = ((u16*) &teid0)[1]; + + ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip0->src_address.as_u32[2] = sr_addr0.as_u32; + ip0->src_address.as_u16[6] = sr_port0; } else { @@ -1538,18 +1534,15 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, } if (PREDICT_TRUE (sl1->is_tmap)) - { + { segment = (void *) tmp1 - sizeof (ip6_address_t); - if (sl0->tmap_mask == 64) { - segment->as_u32[2] = sr_addr1.as_u32; - segment->as_u16[6] = sr_port1; - } else if (sl0->tmap_mask == 32) { - segment->as_u32[1] = dst_addr1.as_u32; - segment->as_u16[5] = ((u16*) &teid1)[0]; - segment->as_u16[6] = ((u16*) &teid1)[1]; - } else { - //Not support now - } + segment->as_u32[1] = dst_addr1.as_u32; + segment->as_u16[5] = ((u16*) &teid1)[0]; + segment->as_u16[6] = ((u16*) &teid1)[1]; + + ip1->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip1->src_address.as_u32[2] = sr_addr1.as_u32; + ip1->src_address.as_u16[6] = sr_port1; } else { @@ -1561,16 +1554,13 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl2->is_tmap)) { segment = (void *) tmp2 - sizeof (ip6_address_t); - if (sl0->tmap_mask == 64) { - segment->as_u32[2] = sr_addr2.as_u32; - segment->as_u16[6] = sr_port2; - } else if (sl0->tmap_mask == 32) { - segment->as_u32[1] = dst_addr2.as_u32; - segment->as_u16[5] = ((u16*) &teid2)[0]; - segment->as_u16[6] = ((u16*) &teid2)[1]; - } else { - //Not support now - } + segment->as_u32[1] = dst_addr2.as_u32; + segment->as_u16[5] = ((u16*) &teid2)[0]; + segment->as_u16[6] = ((u16*) &teid2)[1]; + + ip2->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip2->src_address.as_u32[2] = sr_addr2.as_u32; + ip2->src_address.as_u16[6] = sr_port2; } else { @@ -1582,16 +1572,13 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl3->is_tmap)) { segment = (void *) tmp3 - sizeof (ip6_address_t); - if (sl0->tmap_mask == 64) { - segment->as_u32[2] = sr_addr3.as_u32; - segment->as_u16[6] = sr_port3; - } else if (sl0->tmap_mask == 32) { - segment->as_u32[1] = dst_addr3.as_u32; - segment->as_u16[5] = ((u16*) &teid3)[0]; - segment->as_u16[6] = ((u16*) &teid3)[1]; - } else { - //Not support now - } + segment->as_u32[1] = dst_addr3.as_u32; + segment->as_u16[5] = ((u16*) &teid3)[0]; + segment->as_u16[6] = ((u16*) &teid3)[1]; + + ip3->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip3->src_address.as_u32[2] = sr_addr3.as_u32; + ip3->src_address.as_u16[6] = sr_port3; } else { @@ -1701,16 +1688,13 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { segment = (void *) tmp0 - sizeof (ip6_address_t); - if (sl0->tmap_mask == 64) { - segment->as_u32[2] = sr_addr0.as_u32; - segment->as_u16[6] = sr_port; - } else if (sl0->tmap_mask == 32) { - segment->as_u32[1] = dst_addr0.as_u32; - segment->as_u16[5] = ((u16*) &teid0)[0]; - segment->as_u16[6] = ((u16*) &teid0)[1]; - } else { - //Not support now - } + segment->as_u32[1] = dst_addr0.as_u32; + segment->as_u16[5] = ((u16*) &teid0)[0]; + segment->as_u16[6] = ((u16*) &teid0)[1]; + + ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip0->src_address.as_u32[2] = sr_addr0.as_u32; + ip0->src_address.as_u16[6] = sr_port; } else { From daf539c2fee43be54acd2973646f5bff09897d89 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 11:23:20 +0100 Subject: [PATCH 034/154] IETF104: Fix compile error. Change-Id: I1dee02237c41d3ce1eb3ff74e7ab6abc2bc393cc --- src/plugins/srv6-ad/ad.c | 1 + src/plugins/srv6-end/srv6_end.c | 19 +++++++++++++++---- src/plugins/srv6-end/srv6_end.h | 5 +++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/plugins/srv6-ad/ad.c b/src/plugins/srv6-ad/ad.c index bc55bc1abe46..526253151007 100644 --- a/src/plugins/srv6-ad/ad.c +++ b/src/plugins/srv6-ad/ad.c @@ -424,6 +424,7 @@ srv6_ad_init (vlib_main_t * vm) keyword_str, def_str, params_str, + 128, &sm->srv6_ad_dpo_type, format_srv6_ad_localsid, unformat_srv6_ad_localsid, diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index e98e042ff403..75e04d064132 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -16,6 +16,7 @@ */ #include +#include #include #include #include @@ -69,22 +70,27 @@ clb_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) return s; } -static uword * -clb_unformat_srv6_end_m_gtp4_e (unformat_input_t, va_list * args) +static uword +clb_unformat_srv6_end_m_gtp4_e (unformat_input_t * input, va_list * args) { // TODO: we need this! process the parameters of command line + + return 0; } static int clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { // TODO: figure out what to do + + return 0; } static int clb_removal_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { // TODO: figure out what to do + return 0; } static clib_error_t * @@ -107,8 +113,13 @@ srv6_end_init (vlib_main_t * vm) dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); - rc = sr_localsid_register_function (vm, fn_name, keyword_str, - def_str, param_str, &dpo_type, + rc = sr_localsid_register_function (vm, + fn_name, + keyword_str, + def_str, + param_str, + 128, //prefix len + &dpo_type, clb_format_srv6_end_m_gtp4_e, clb_unformat_srv6_end_m_gtp4_e, clb_creation_srv6_end_m_gtp4_e, diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-end/srv6_end.h index 87dbef942b16..377be6cbace6 100644 --- a/src/plugins/srv6-end/srv6_end.h +++ b/src/plugins/srv6-end/srv6_end.h @@ -20,6 +20,11 @@ #include #include +#include +#include + +#include +#include typedef struct srv6_end_main_s { From 97754555e7908daad58af6d8ec275650b1299c81 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 13:07:32 +0100 Subject: [PATCH 035/154] IETF104: end.gtp create function Change-Id: I3b4e0557e9832b69ce38b89f0e13c07548eabb32 --- src/plugins/srv6-end/srv6_end.c | 70 +++++++++++++++++++++++++++------ src/plugins/srv6-end/srv6_end.h | 17 +++++++- 2 files changed, 73 insertions(+), 14 deletions(-) diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index 75e04d064132..792ead3601c8 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -57,7 +57,7 @@ const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { }; static u8 fn_name[] = "SRv6-End.M.GTP4.E-plugin"; -static u8 keyword_str[] = "End.M.GTP4.E"; +static u8 keyword_str[] = "end.m.gtp4.e"; static u8 def_str[] = "Endpoint function with encapsulation for IPv4/GTP tunnel"; static u8 param_str[] = ""; @@ -75,13 +75,46 @@ clb_unformat_srv6_end_m_gtp4_e (unformat_input_t * input, va_list * args) { // TODO: we need this! process the parameters of command line - return 0; + if (!unformat (input, "end.m.gtp4.e")) + return 0; + + return 1; } static int clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { - // TODO: figure out what to do + srv6_end_main_t *sm = &srv6_end_main; + srv6_end_localsid_t *ls_mem = localsid->plugin_mem; + adj_index_t nh_adj_index = ADJ_INDEX_INVALID; + + /* Step 1: Prepare xconnect adjacency for sending packets to the VNF */ + + /* Retrieve the adjacency corresponding to the (OIF, next_hop) */ + nh_adj_index = adj_nbr_add_or_lock (FIB_PROTOCOL_IP6, + VNET_LINK_IP6, &ls_mem->nh_addr, + ls_mem->sw_if_index_out); + if (nh_adj_index == ADJ_INDEX_INVALID) + return -5; + + localsid->nh_adj = nh_adj_index; + + /* Step 2: Prepare inbound policy for packets returning from the VNF */ + + /* Sanitise the SW_IF_INDEX */ + if (pool_is_free_index (sm->vnet_main->interface_main.sw_interfaces, + ls_mem->sw_if_index_in)) + return -3; + + vnet_sw_interface_t *sw = vnet_get_sw_interface (sm->vnet_main, + ls_mem->sw_if_index_in); + if (sw->type != VNET_SW_INTERFACE_TYPE_HARDWARE) + return -3; + + int ret = vnet_feature_enable_disable ("ip4-unicast", "srv6-end-m-gtp4-e", + ls_mem->sw_if_index_in, 1, 0, 0); + if (ret != 0) + return -1; return 0; } @@ -89,8 +122,22 @@ clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) static int clb_removal_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { - // TODO: figure out what to do - return 0; + srv6_end_localsid_t *ls_mem = localsid->plugin_mem; + + /* Remove hardware indirection (from sr_steering.c:137) */ + int ret = vnet_feature_enable_disable ("ip4-unicast", "srv6-end-m-gtp4-e", + ls_mem->sw_if_index_in, 0, 0, 0); + if (ret != 0) + return -1; + + /* Unlock (OIF, NHOP) adjacency (from sr_localsid.c:103) */ + adj_unlock (localsid->nh_adj); + + /* Clean up local SID memory */ + clib_mem_free (localsid->plugin_mem); + + return 0; + return 1; } static clib_error_t * @@ -100,18 +147,16 @@ srv6_end_init (vlib_main_t * vm) vlib_node_t *node; u32 rc; - dpo_type_t dpo_type; - sm->vlib_main = vm; sm->vnet_main = vnet_get_main (); - + node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp4-e"); sm->end_m_gtp4_e_node_index = node->index; node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; - dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); + sm->srv6_end_dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); rc = sr_localsid_register_function (vm, fn_name, @@ -119,7 +164,7 @@ srv6_end_init (vlib_main_t * vm) def_str, param_str, 128, //prefix len - &dpo_type, + &sm->srv6_end_dpo_type, clb_format_srv6_end_m_gtp4_e, clb_unformat_srv6_end_m_gtp4_e, clb_creation_srv6_end_m_gtp4_e, @@ -128,8 +173,9 @@ srv6_end_init (vlib_main_t * vm) { clib_error_return (0, "SRv6 Endpoint LocalSID function" "couldn't be registered"); - } - + } else + sm->srv6_localsid_behavior_id = rc; + return 0; } diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-end/srv6_end.h index 377be6cbace6..6892f9bb5110 100644 --- a/src/plugins/srv6-end/srv6_end.h +++ b/src/plugins/srv6-end/srv6_end.h @@ -26,14 +26,27 @@ #include #include + +typedef struct +{ + ip46_address_t nh_addr; /**< Proxied device address */ + u32 sw_if_index_out; /**< Outgoing iface to proxied device */ + u32 sw_if_index_in; /**< Incoming iface from proxied device */ +} srv6_end_localsid_t; + typedef struct srv6_end_main_s { + u16 msg_id_base; /**< API message ID base */ + + vlib_main_t *vlib_main; + vnet_main_t *vnet_main; + + u32 srv6_localsid_behavior_id; /**< SRv6 LocalSID behavior number */ u32 end_m_gtp4_e_node_index; u32 error_node_index; - vlib_main_t *vlib_main; - vnet_main_t *vnet_main; + dpo_type_t srv6_end_dpo_type; /**< DPO type */ } srv6_end_main_t; From 3e37920b093689c0c431ce2e9e940e47872b0444 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 24 Mar 2019 05:07:35 -0700 Subject: [PATCH 036/154] IETF104: packet rewrite base Change-Id: I107bbf86a5ae614c7ce8e5316d37b97943f51b16 Signed-off-by: Filip Varga --- src/plugins/srv6-end/node.c | 42 +++++++++++++++++++++++++++++---- src/plugins/srv6-end/srv6_end.c | 20 ++++++++++++++++ src/plugins/srv6-end/srv6_end.h | 6 +++++ 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index 671e926dc329..45feb7e9dccf 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -17,6 +17,14 @@ #include #include +/* *INDENT-OFF* */ +typedef CLIB_PACKED(struct +{ + ip6_header_t ip; + ip6_sr_header_t sr; +}) ip6srv_combo_header_t; +/* *INDENT-ON* */ + #define foreach_srv6_end_error \ _(M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") @@ -67,9 +75,14 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, u32 bi0; vlib_buffer_t *b0; - ip6_header_t *ip0 = 0; + ip6srv_combo_header_t *ip6srv0; + ip6_address_t src0, dst0; + + ip4_gtpu_header_t hdr0 = sm->cache_hdr; + u32 next0 = SRV6_END_M_GTP4_E_NEXT_LOOKUP; + // defaults bi0 = from[0]; to_next[0] = bi0; from += 1; @@ -78,9 +91,28 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, n_left_to_next -= 1; b0 = vlib_get_buffer (vm, bi0); - ip0 = vlib_buffer_get_current (b0); - // dummy - ip0++; + // + + ip6srv0 = vlib_buffer_get_current (b0); + src0 = ip6srv0->ip.src_address; + dst0 = ip6srv0->ip.dst_address; + + hdr0.ip4.src_address = src0.as_u32[2]; + hdr0.ip4.dst_address = dst0.as_u32[1]; + hdr0.ip4.checksum = ip4_header_checksum (&hdr0.ip4); + + hdr0.udp.src_port = src0.as_u16[6]; + + hdr0.gtpu.teid = (u32) dst0.as_u8[9]; + + hdr0.udp.length =; + hdr0.gtpu.length =; + + vlib_buffer_advance (b0, (word) ip6srv0->sr.length); + + clib_memcpy (vlib_buffer_get_current (b0) - + sizeof (ip4_gtpu_header_t), &hdr0, + sizeof (ip4_gtpu_header_t)); vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); @@ -108,7 +140,7 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { .n_next_nodes = SRV6_END_M_GTP4_E_N_NEXT, .next_nodes = { [SRV6_END_M_GTP4_E_NEXT_DROP] = "error-drop", - [SRV6_END_M_GTP4_E_NEXT_LOOKUP] = "ip6-lookup", + [SRV6_END_M_GTP4_E_NEXT_LOOKUP] = "ip4-lookup", }, }; diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index e98e042ff403..800ee6800129 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -91,6 +91,9 @@ static clib_error_t * srv6_end_init (vlib_main_t * vm) { srv6_end_main_t *sm = &srv6_end_main; + ip4_header_t *ip4 = &sm->cache_hdr.ip4; + udp_header_t *udp = &sm->cahce_hdr.udp; + gtpu_header_t *gtpu = &sm->cache_hdr.gtpu; vlib_node_t *node; u32 rc; @@ -105,6 +108,23 @@ srv6_end_init (vlib_main_t * vm) node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; + sm->dst_p_len = 32; + sm->src_p_len = 64; + + // clear the pre cached packet + clib_memset_u8 (ip4, 0, sizeof (ip4_gtpu_header_t)); + + // set defaults + ip->ip_version_and_header_length = 0x45; + ip4->protocol = IP_PROTOCOL_UDP; + ip4->ttl = 64; + + udp->dst_port = clib_host_to_net_u16 (UDP_DST_PORT_GTPU); + + gtpu->ver_flags = GTPU_V1_VER | GTPU_PT_GTP; + gtpu->type = GTPU_TYPE_GTPU; + // + dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); rc = sr_localsid_register_function (vm, fn_name, keyword_str, diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-end/srv6_end.h index 87dbef942b16..d76dd98d5b05 100644 --- a/src/plugins/srv6-end/srv6_end.h +++ b/src/plugins/srv6-end/srv6_end.h @@ -30,6 +30,12 @@ typedef struct srv6_end_main_s vlib_main_t *vlib_main; vnet_main_t *vnet_main; + // dst and src prefix len + u32 dst_p_len; + u32 src_p_len; + + ip4_gtpu_header_t cache_hdr; + } srv6_end_main_t; extern srv6_end_main_t srv6_end_main; From a0389b4b95bfd9826f9244873a8cfb7097d559ae Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 14:06:06 +0100 Subject: [PATCH 037/154] IETF104: Clean srv6_end create function. Change-Id: I1b28c85f271543c24fe16325e0c52c4c714f22b2 --- src/plugins/srv6-end/srv6_end.c | 45 --------------------------------- 1 file changed, 45 deletions(-) diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index eaac32b9f590..fcd728ea0cbf 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -86,37 +86,6 @@ clb_unformat_srv6_end_m_gtp4_e (unformat_input_t * input, va_list * args) static int clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { - srv6_end_main_t *sm = &srv6_end_main; - srv6_end_localsid_t *ls_mem = localsid->plugin_mem; - adj_index_t nh_adj_index = ADJ_INDEX_INVALID; - - /* Step 1: Prepare xconnect adjacency for sending packets to the VNF */ - - /* Retrieve the adjacency corresponding to the (OIF, next_hop) */ - nh_adj_index = adj_nbr_add_or_lock (FIB_PROTOCOL_IP6, - VNET_LINK_IP6, &ls_mem->nh_addr, - ls_mem->sw_if_index_out); - if (nh_adj_index == ADJ_INDEX_INVALID) - return -5; - - localsid->nh_adj = nh_adj_index; - - /* Step 2: Prepare inbound policy for packets returning from the VNF */ - - /* Sanitise the SW_IF_INDEX */ - if (pool_is_free_index (sm->vnet_main->interface_main.sw_interfaces, - ls_mem->sw_if_index_in)) - return -3; - - vnet_sw_interface_t *sw = vnet_get_sw_interface (sm->vnet_main, - ls_mem->sw_if_index_in); - if (sw->type != VNET_SW_INTERFACE_TYPE_HARDWARE) - return -3; - - int ret = vnet_feature_enable_disable ("ip4-unicast", "srv6-end-m-gtp4-e", - ls_mem->sw_if_index_in, 1, 0, 0); - if (ret != 0) - return -1; return 0; } @@ -124,22 +93,8 @@ clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) static int clb_removal_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { - srv6_end_localsid_t *ls_mem = localsid->plugin_mem; - - /* Remove hardware indirection (from sr_steering.c:137) */ - int ret = vnet_feature_enable_disable ("ip4-unicast", "srv6-end-m-gtp4-e", - ls_mem->sw_if_index_in, 0, 0, 0); - if (ret != 0) - return -1; - - /* Unlock (OIF, NHOP) adjacency (from sr_localsid.c:103) */ - adj_unlock (localsid->nh_adj); - - /* Clean up local SID memory */ - clib_mem_free (localsid->plugin_mem); return 0; - return 1; } static clib_error_t * From feb8a3dabda0dbc282dd051dad155590bc73d9c2 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 24 Mar 2019 06:54:14 -0700 Subject: [PATCH 038/154] IETF104: finished packet rewrite Change-Id: Iecd30584c66cc637497374f22a3c9f4542dc4ddb Signed-off-by: Filip Varga --- src/plugins/srv6-end/node.c | 59 ++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index 0e2993394892..aeb1dc4dec99 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -26,7 +26,9 @@ typedef CLIB_PACKED(struct /* *INDENT-ON* */ #define foreach_srv6_end_error \ - _(M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") + _(M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") \ + _(M_GTP4_E_BAD_PACKETS, "srv6 End.M.GTP4.E bad packets") + typedef enum { @@ -56,7 +58,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, srv6_end_main_t *sm = &srv6_end_main; u32 n_left_from, next_index, *from, *to_next; - u32 good_n = 0; + u32 good_n = 0, bad_n = 0; from = vlib_frame_vector_args (frame); n_left_from = frame->n_vectors; @@ -78,7 +80,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, ip6srv_combo_header_t *ip6srv0; ip6_address_t src0, dst0; - ip4_gtpu_header_t hdr0 = sm->cache_hdr; + ip4_gtpu_header_t *hdr0; + uword len0; u32 next0 = SRV6_END_M_GTP4_E_NEXT_LOOKUP; @@ -97,30 +100,52 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, src0 = ip6srv0->ip.src_address; dst0 = ip6srv0->ip.dst_address; - hdr0.ip4.src_address.as_u32 = src0.as_u32[2]; - hdr0.ip4.dst_address.as_u32 = dst0.as_u32[1]; - hdr0.ip4.checksum = ip4_header_checksum (&hdr0.ip4); + len0 = vlib_buffer_length_in_chain (vm, b0); + if ((len0 < sizeof (ip6srv_combo_header_t)) || + (len0 < sizeof (ip6srv_combo_header_t) + ip6srv0->sr.length)) + { + next0 = SRV6_END_M_GTP4_E_NEXT_DROP; - hdr0.udp.src_port = src0.as_u16[6]; + bad_n++; + } + else + { + vlib_buffer_advance (b0, (word) ip6srv0->sr.length); - hdr0.gtpu.teid = (u32) dst0.as_u8[9]; + len0 = vlib_buffer_length_in_chain (vm, b0); + + clib_memcpy (vlib_buffer_get_current (b0) - + sizeof (ip4_gtpu_header_t), &sm->cache_hdr, + sizeof (ip4_gtpu_header_t)); - //hdr0.udp.length =; - //hdr0.gtpu.length =; + vlib_buffer_advance (b0, -(word) vlib_buffer_get_current (b0) - + sizeof (ip4_gtpu_header_t)); - vlib_buffer_advance (b0, (word) ip6srv0->sr.length); - - clib_memcpy (vlib_buffer_get_current (b0) - - sizeof (ip4_gtpu_header_t), &hdr0, - sizeof (ip4_gtpu_header_t)); + hdr0 = vlib_buffer_get_current (b0); + + hdr0->gtpu.teid = (u32) dst0.as_u8[9]; + hdr0->gtpu.length = len0; + + hdr0->udp.src_port = src0.as_u16[6]; + hdr0->udp.length = len0 + sizeof (udp_header_t); + + hdr0->ip4.src_address.as_u32 = src0.as_u32[2]; + hdr0->ip4.dst_address.as_u32 = dst0.as_u32[1]; + hdr0->ip4.length = len0 + sizeof (udp_header_t) + sizeof (ip4_header_t); + hdr0->ip4.checksum = ip4_header_checksum (&hdr0->ip4); + + good_n++; + } vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); - - good_n++; } } + vlib_node_increment_counter (vm, sm->end_m_gtp4_e_node_index, + SRV6_END_ERROR_M_GTP4_E_BAD_PACKETS, + bad_n); + vlib_node_increment_counter (vm, sm->end_m_gtp4_e_node_index, SRV6_END_ERROR_M_GTP4_E_PACKETS, good_n); From 3844fca74074e00d2c226013027fd905d1954184 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 15:04:35 +0100 Subject: [PATCH 039/154] IETF104: Fix error in policy rewrite. Change-Id: I50e71bfc477ef1d83e63028f7cb8df762d07a844 --- src/vnet/srv6/sr_policy_rewrite.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index c8baa1e4a1f6..c32a399a7c2a 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1519,8 +1519,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { segment = (void *) tmp0 - sizeof (ip6_address_t); segment->as_u32[1] = dst_addr0.as_u32; - segment->as_u16[5] = ((u16*) &teid0)[0]; - segment->as_u16[6] = ((u16*) &teid0)[1]; + segment->as_u8[9] = ((u8*) &teid0)[0]; + segment->as_u8[10] = ((u8*) &teid0)[1]; + segment->as_u8[11] = ((u8*) &teid0)[2]; + segment->as_u8[12] = ((u8*) &teid0)[3]; ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; @@ -1537,8 +1539,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { segment = (void *) tmp1 - sizeof (ip6_address_t); segment->as_u32[1] = dst_addr1.as_u32; - segment->as_u16[5] = ((u16*) &teid1)[0]; - segment->as_u16[6] = ((u16*) &teid1)[1]; + segment->as_u8[9] = ((u8*) &teid1)[0]; + segment->as_u8[10] = ((u8*) &teid1)[1]; + segment->as_u8[11] = ((u8*) &teid1)[2]; + segment->as_u8[12] = ((u8*) &teid1)[3]; ip1->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip1->src_address.as_u32[2] = sr_addr1.as_u32; @@ -1555,8 +1559,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { segment = (void *) tmp2 - sizeof (ip6_address_t); segment->as_u32[1] = dst_addr2.as_u32; - segment->as_u16[5] = ((u16*) &teid2)[0]; - segment->as_u16[6] = ((u16*) &teid2)[1]; + segment->as_u8[9] = ((u8*) &teid2)[0]; + segment->as_u8[10] = ((u8*) &teid2)[1]; + segment->as_u8[11] = ((u8*) &teid2)[2]; + segment->as_u8[12] = ((u8*) &teid2)[3]; ip2->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip2->src_address.as_u32[2] = sr_addr2.as_u32; @@ -1573,8 +1579,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { segment = (void *) tmp3 - sizeof (ip6_address_t); segment->as_u32[1] = dst_addr3.as_u32; - segment->as_u16[5] = ((u16*) &teid3)[0]; - segment->as_u16[6] = ((u16*) &teid3)[1]; + segment->as_u8[9] = ((u8*) &teid3)[0]; + segment->as_u8[10] = ((u8*) &teid3)[1]; + segment->as_u8[11] = ((u8*) &teid3)[2]; + segment->as_u8[12] = ((u8*) &teid3)[3]; ip3->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip3->src_address.as_u32[2] = sr_addr3.as_u32; @@ -1689,8 +1697,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { segment = (void *) tmp0 - sizeof (ip6_address_t); segment->as_u32[1] = dst_addr0.as_u32; - segment->as_u16[5] = ((u16*) &teid0)[0]; - segment->as_u16[6] = ((u16*) &teid0)[1]; + segment->as_u8[9] = ((u8*) &teid0)[0]; + segment->as_u8[10] = ((u8*) &teid0)[1]; + segment->as_u8[11] = ((u8*) &teid0)[2]; + segment->as_u8[12] = ((u8*) &teid0)[3]; ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; From c4327de978ab374d9043ccfc9618e23e49d6b5a2 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 15:12:19 +0100 Subject: [PATCH 040/154] IETF104: Add trace to srv6-end plugin. Change-Id: Ib6f97207499b9ecd972acac83e593359e30f4dcd --- src/plugins/srv6-end/node.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index aeb1dc4dec99..b07bea370df1 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -17,6 +17,22 @@ #include #include +typedef struct { + ip6_address_t src, dst; +} srv6_end_rewrite_trace_t; + +static u8 * +format_srv6_end_rewrite_trace (u8 * s, va_list * args) +{ + CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *); + CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); + srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); + + return format (s, "SRv6-END-rewrite: src %U dst %U", + format_ip4_address, &t->src, format_ip4_address, &t->dst); +} + + /* *INDENT-OFF* */ typedef CLIB_PACKED(struct { @@ -137,6 +153,17 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, good_n++; } + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, hdr0->ip4.src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, hdr0->ip4.dst_address.as_u8, + sizeof (tr->dst.as_u8)); + } + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); } @@ -157,6 +184,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { .name = "srv6-end-m-gtp4-e", .vector_size = sizeof (u32), + .format_trace = format_srv6_end_rewrite_trace, .type = VLIB_NODE_TYPE_INTERNAL, .n_errors = ARRAY_LEN (srv6_end_error_strings), From 45d23b1f3e2466a320abd1e7f91af589e85f2aa0 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 24 Mar 2019 07:36:22 -0700 Subject: [PATCH 041/154] IETF104: missing call fix Change-Id: I38c80a629e80e8838440ee22fe8f73f5e72b8e6b Signed-off-by: Filip Varga --- src/plugins/srv6-end/node.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index b07bea370df1..820469cace3c 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -156,7 +156,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) { - srv6_end_rewrite_trace_t *tr = + srv6_end_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); clib_memcpy (tr->src.as_u8, hdr0->ip4.src_address.as_u8, sizeof (tr->src.as_u8)); @@ -167,6 +167,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); } + + vlib_put_next_frame (vm, node, next_index, n_left_to_next); } vlib_node_increment_counter (vm, sm->end_m_gtp4_e_node_index, From 5049352e733c1e47175d98ce91df3d8e53ec2d26 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 24 Mar 2019 08:04:03 -0700 Subject: [PATCH 042/154] IETF104: examples for testing Change-Id: I7fce8dcdac45b2e3a79069fb578776f2bec61df2 Signed-off-by: Filip Varga --- extras/ietf104/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/extras/ietf104/README.md b/extras/ietf104/README.md index fc98b5bf02f7..0b40d459c06e 100644 --- a/extras/ietf104/README.md +++ b/extras/ietf104/README.md @@ -48,3 +48,13 @@ set interface ip address host-tmp1 a30::1/120 set interface state host-tmp1 up sr localsid address C4:: behavior end.dx6 host-tmp1 a30::2 + +## Packet generator and testing + + Example how to build custom SRv6 packet in scapy and ipaddress pkgs + + s = '\x11' * 4 + IPv4Address(u"192.168.192.10").packed + '\x11' * 8 + ip6 = IPv6Address(s) + IPv6(dst=ip6, src=ip6) + + From 2c47904a41fd2a01264edd19d233c0337bf17ef3 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 24 Mar 2019 16:26:52 +0100 Subject: [PATCH 043/154] IETF104: Extend trace message for srv6-end. Change-Id: I37572e0cdea789dd36be5550078f52f67b0282cd --- src/plugins/srv6-end/node.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index 820469cace3c..744a584efc27 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -19,6 +19,7 @@ typedef struct { ip6_address_t src, dst; + u32 teid; } srv6_end_rewrite_trace_t; static u8 * @@ -28,8 +29,8 @@ format_srv6_end_rewrite_trace (u8 * s, va_list * args) CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); - return format (s, "SRv6-END-rewrite: src %U dst %U", - format_ip4_address, &t->src, format_ip4_address, &t->dst); + return format (s, "SRv6-END-rewrite: src %U dst %U\n TEID: 0x%x", + format_ip4_address, &t->src, format_ip4_address, &t->dst, t->teid); } @@ -162,6 +163,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, sizeof (tr->src.as_u8)); clib_memcpy (tr->dst.as_u8, hdr0->ip4.dst_address.as_u8, sizeof (tr->dst.as_u8)); + tr->teid = hdr0->gtpu.teid; } vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, @@ -182,7 +184,6 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, return frame->n_vectors; } - VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { .name = "srv6-end-m-gtp4-e", .vector_size = sizeof (u32), From 82b2374f74b38b5f4d8af34dd829b1ee020bf189 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Wed, 27 Mar 2019 23:29:34 +0100 Subject: [PATCH 044/154] SRv6 MOBILE: prep template tests for End.M.GTP4.E, T.M.Tmap, End.M.GTP6.E and E.M.GTP6.D functions Signed-off-by: Filip Varga --- test/test_srv6_end.py | 97 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 test/test_srv6_end.py diff --git a/test/test_srv6_end.py b/test/test_srv6_end.py new file mode 100644 index 000000000000..68188ca0502d --- /dev/null +++ b/test/test_srv6_end.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python + +from framework import VppTestCase +from scapy.contrib.gtp import * +from scapy.all import * + + +class TestSRv6EndMGTP4E(VppTestCase): + """ SRv6 End.M.GTP4.E (SRv6 -> GTP-U) """ + + @classmethod + def setUpClass(cls): + super(TestSRv6EndMGTP4E, cls).setUpClass() + try: + cls.create_pg_interfaces(range(2)) + cls.pg_if_i = cls.pg_interfaces[0] + cls.pg_if_o = cls.pg_interfaces[1] + + cls.pg_if_i.config_ip4() + cls.pg_if_o.config_ip6() + + for pg_if in cls.pg_interfaces: + pg_if.admin_up() + pg_if.resolve_arp() + + except Exception: + super(TestSRv6EndMGTP4E, cls).tearDownClass() + raise + + +class TestSRv6TMTmap(VppTestCase): + """ SRv6 T.M.Tmap (GTP-U -> SRv6) """ + + @classmethod + def setUpClass(cls): + super(TestSRv6TMTmap, cls).setUpClass() + try: + cls.create_pg_interfaces(range(2)) + cls.pg_if_i = cls.pg_interfaces[0] + cls.pg_if_o = cls.pg_interfaces[1] + + cls.pg_if_i.config_ip4() + cls.pg_if_o.config_ip6() + + for pg_if in cls.pg_interfaces: + pg_if.admin_up() + pg_if.resolve_arp() + + except Exception: + super(TestSRv6TMTmap, cls).tearDownClass() + raise + + +class TestSRv6EndMGTP6E(VppTestCase): + """ SRv6 End.M.GTP6.E """ + + @classmethod + def setUpClass(cls): + super(TestSRv6EndMGTP6E, cls).setUpClass() + try: + cls.create_pg_interfaces(range(2)) + cls.pg_if_i = cls.pg_interfaces[0] + cls.pg_if_o = cls.pg_interfaces[1] + + cls.pg_if_i.config_ip4() + cls.pg_if_o.config_ip6() + + for pg_if in cls.pg_interfaces: + pg_if.admin_up() + pg_if.resolve_arp() + + except Exception: + super(TestSRv6EndMGTP6E, cls).tearDownClass() + raise + + +class TestSRv6EndMGTP6D(VppTestCase): + """ SRv6 End.M.GTP6.D """ + + @classmethod + def setUpClass(cls): + super(TestSRv6EndMGTP6D, cls).setUpClass() + try: + cls.create_pg_interfaces(range(2)) + cls.pg_if_i = cls.pg_interfaces[0] + cls.pg_if_o = cls.pg_interfaces[1] + + cls.pg_if_i.config_ip4() + cls.pg_if_o.config_ip6() + + for pg_if in cls.pg_interfaces: + pg_if.admin_up() + pg_if.resolve_arp() + + except Exception: + super(TestSRv6EndMGTP6D, cls).tearDownClass() + raise From 388b9b4cdcf2dc2b76de1e57cc07fffb09f7d92d Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Thu, 28 Mar 2019 00:15:59 +0100 Subject: [PATCH 045/154] SRv6 MOBILE: clean up Signed-off-by: Filip Varga --- extras/ietf104/runner.py | 21 ++++++++++++--------- src/plugins/srv6-end/srv6_end.c | 30 +++++++++--------------------- src/plugins/srv6-end/srv6_end.h | 19 +++---------------- 3 files changed, 24 insertions(+), 46 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index ef7b4de0326b..1782d6d7264e 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -1,22 +1,21 @@ #!/usr/bin/env python3 -from os.path import dirname, realpath, split, join, \ - isdir, exists +from os.path import dirname, realpath, split,\ + join, isdir, exists from os import remove, system, mkdir -from logging import getLogger, basicConfig, DEBUG, \ - INFO, ERROR +from logging import getLogger, basicConfig,\ + DEBUG, INFO, ERROR from argparse import ArgumentParser -from subprocess import Popen, run from atexit import register from shutil import rmtree -from time import sleep -import sys from jinja2 import Environment, FileSystemLoader + from docker.errors import NotFound, APIError from docker import from_env -from scapy.all import * + from scapy.contrib.gtp import * +from scapy.all import * verbose_levels = { @@ -481,7 +480,11 @@ def test_tmap(self): local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/UDP(sport=2152, dport=2152)/GTPHeader(gtp_type="g_pdu", teid=200)/IP(src="172.99.0.1", dst="172.99.0.2")/ICMP()) + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTPHeader(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) print("Sending packet on {}:".format(c1.name)) p.show2() diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index fcd728ea0cbf..c9f7e5921394 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -36,7 +36,6 @@ clb_dpo_unlock_srv6_end_m_gtp4_e (dpo_id_t * dpo) static u8 * clb_dpo_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) { - // TODO: index_t index = va_arg (*args, index_t); CLIB_UNUSED (u32 indent) = va_arg (*args, u32); @@ -66,8 +65,6 @@ static u8 param_str[] = ""; static u8 * clb_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) { - // TODO: we may not need this, string s contains the command line - // output to be printed s = format (s, "SRv6 End format function unsupported."); return s; } @@ -75,25 +72,20 @@ clb_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) static uword clb_unformat_srv6_end_m_gtp4_e (unformat_input_t * input, va_list * args) { - // TODO: we need this! process the parameters of command line - - if (!unformat (input, "end.m.gtp4.e")) - return 0; - - return 1; + if (!unformat (input, "end.m.gtp4.e")) + return 0; + return 1; } static int clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { - - return 0; + return 0; } static int clb_removal_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { - return 0; } @@ -128,10 +120,10 @@ srv6_end_init (vlib_main_t * vm) ip4->protocol = IP_PROTOCOL_UDP; ip4->ttl = 64; - udp->dst_port = clib_host_to_net_u16 (GTP6_UDP_DST_PORT); + udp->dst_port = clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT); - gtpu->ver_flags = GTP6_V1_VER | GTP6_PT_GTP; - gtpu->type = GTP6_TYPE_GTPU; + gtpu->ver_flags = GTPU_V1_VER | GTPU_PT_GTP; + gtpu->type = GTPU_TYPE_GTPU; // dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); @@ -148,16 +140,12 @@ srv6_end_init (vlib_main_t * vm) clb_creation_srv6_end_m_gtp4_e, clb_removal_srv6_end_m_gtp4_e); if (rc < 0) - { - clib_error_return (0, "SRv6 Endpoint LocalSID function" - "couldn't be registered"); - } - + clib_error_return (0, "SRv6 Endpoint LocalSID function" + "couldn't be registered"); return 0; } /* *INDENT-OFF* */ -// TODO: check if name matters ! VNET_FEATURE_INIT (srv6_end_m_gtp4_e, static) = { .arc_name = "ip6-unicast", diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-end/srv6_end.h index da371f61abd8..d2d70df54f12 100644 --- a/src/plugins/srv6-end/srv6_end.h +++ b/src/plugins/srv6-end/srv6_end.h @@ -26,23 +26,11 @@ #include #include -#define GTP6_V1_VER (1<<5) +#define SRV6_GTP_UDP_DST_PORT 2152 -#define GTP6_PT_GTP (1<<4) -#define GTP6_TYPE_GTPU 255 - -#define GTP6_UDP_DST_PORT 2152 - -typedef struct -{ - ip46_address_t nh_addr; /**< Proxied device address */ - u32 sw_if_index_out; /**< Outgoing iface to proxied device */ - u32 sw_if_index_in; /**< Incoming iface from proxied device */ -} srv6_end_localsid_t; typedef struct srv6_end_main_s { - u16 msg_id_base; /**< API message ID base */ vlib_main_t *vlib_main; vnet_main_t *vnet_main; @@ -50,9 +38,8 @@ typedef struct srv6_end_main_s u32 end_m_gtp4_e_node_index; u32 error_node_index; - // dst and src prefix len - u32 dst_p_len; - u32 src_p_len; + u32 dst_p_len; // dst prefix len + u32 src_p_len; // src prefix len ip4_gtpu_header_t cache_hdr; From c98bf3c54db0b779a1422b14b93f6e9f94b81230 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Thu, 28 Mar 2019 23:12:59 +0100 Subject: [PATCH 046/154] SRv6 MOBILE: SRv6 End.M.GTP4.E notes and test prep Signed-off-by: Filip Varga --- extras/ietf104/README.md | 15 +++++++++++++++ src/plugins/srv6-end/node.c | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/extras/ietf104/README.md b/extras/ietf104/README.md index 0b40d459c06e..6fc1a4e9fd23 100644 --- a/extras/ietf104/README.md +++ b/extras/ietf104/README.md @@ -58,3 +58,18 @@ IPv6(dst=ip6, src=ip6) +## end.m.gtp4.e + + First set behavior so our localsid node is called with the packet + matching C1::1 in fib table + sr localsid address C1::1 behavior end.m.gtp4.ess + + show sr localsids behaviors + show sr localsid + + We should send a well formated packet to C::1 destination address + that contains the correct spec as for end.m.gtp4.e with encapsulated + ipv4 src and dst address and teid with port for the conversion to + GTPU IPv4 packet + + diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index 744a584efc27..20c2ed03bb8d 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -90,7 +90,6 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, while (n_left_from > 0 && n_left_to_next > 0) { - u32 bi0; vlib_buffer_t *b0; @@ -148,7 +147,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->ip4.src_address.as_u32 = src0.as_u32[2]; hdr0->ip4.dst_address.as_u32 = dst0.as_u32[1]; - hdr0->ip4.length = len0 + sizeof (udp_header_t) + sizeof (ip4_header_t); + hdr0->ip4.length = len0 + sizeof (udp_header_t) + + sizeof (ip4_header_t); hdr0->ip4.checksum = ip4_header_checksum (&hdr0->ip4); good_n++; @@ -163,7 +163,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, sizeof (tr->src.as_u8)); clib_memcpy (tr->dst.as_u8, hdr0->ip4.dst_address.as_u8, sizeof (tr->dst.as_u8)); - tr->teid = hdr0->gtpu.teid; + tr->teid = hdr0->gtpu.teid; } vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, From 7bc518391c9885cd41b68dbe7e4088bd696a8ef2 Mon Sep 17 00:00:00 2001 From: Filip Varga Date: Sun, 31 Mar 2019 18:41:51 +0200 Subject: [PATCH 047/154] SRv6 MOBILE: fixing buffer offset & adding tests Signed-off-by: Filip Varga --- extras/ietf104/README.md | 41 ++++++++++++++++++++++ src/plugins/srv6-end/node.c | 38 ++++++++++++--------- test/test_srv6_end.py | 68 +++++++++++++++++++++++++++++++++++-- 3 files changed, 129 insertions(+), 18 deletions(-) diff --git a/extras/ietf104/README.md b/extras/ietf104/README.md index 6fc1a4e9fd23..bd8ea317c3f7 100644 --- a/extras/ietf104/README.md +++ b/extras/ietf104/README.md @@ -73,3 +73,44 @@ GTPU IPv4 packet +## additional commands + + gdb - breakpoint + + break sr_policy_rewrite.c:1620 + + break src/plugins/srv6-end/node.c:84 + + TMAP + Linux: + + ip link add tmp1 type veth peer name tmp2 + ip link set dev tmp1 up + ip link set dev tmp2 up + ip addr add 172.20.0.2/24 dev tmp2 + + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 172.20.0.1/24 + set interface state host-tmp1 up + + VPP + set sr encaps source addr C1:: + sr policy add bsid D1::999:2 next D2:: next D3:: gtp4_removal sr-prefix fc34:5678::/64 local-prefix C1::/64 + sr steer l3 172.21.0.0/24 via bsid d1::999:2 + + END + Linux + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 A1::1/64 + set interface state host-tmp1 up + + VPP + sr localsid address 1111:1111:c0a8:c00a:1122:1111:1111:1111 behavior end.m.gtp4.e + + trace add af-packet-input 10 + + sr localsid address C3:: behavior end.m.gtp4.e + sr localsid address 2001:200:0:1ce1:3000:757f:0:2 behavior end.m.gtp4.e + diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index 20c2ed03bb8d..cefe1a292378 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -117,8 +117,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, dst0 = ip6srv0->ip.dst_address; len0 = vlib_buffer_length_in_chain (vm, b0); - if ((len0 < sizeof (ip6srv_combo_header_t)) || - (len0 < sizeof (ip6srv_combo_header_t) + ip6srv0->sr.length)) + if (len0 < sizeof (ip6srv_combo_header_t) + ip6srv0->sr.length) { next0 = SRV6_END_M_GTP4_E_NEXT_DROP; @@ -126,32 +125,39 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, } else { - vlib_buffer_advance (b0, (word) ip6srv0->sr.length); - + // we need to be sure there is enough space before + // ip6srv0 header, there is some extra space + // in the pre_data area for this kind of + // logic + + // jump over variable length data + // not sure about the length + vlib_buffer_advance (b0, (word) sizeof (ip6srv_combo_header_t) + + ip6srv0->sr.length * 8); + // get length of encapsulated IPv6 packet (the remaining part) len0 = vlib_buffer_length_in_chain (vm, b0); - - clib_memcpy (vlib_buffer_get_current (b0) - - sizeof (ip4_gtpu_header_t), &sm->cache_hdr, - sizeof (ip4_gtpu_header_t)); - - vlib_buffer_advance (b0, -(word) vlib_buffer_get_current (b0) - - sizeof (ip4_gtpu_header_t)); + // jump back to data[0] or pre_data if required + vlib_buffer_advance (b0, -(word) sizeof (ip4_gtpu_header_t)); hdr0 = vlib_buffer_get_current (b0); + clib_memcpy (hdr0, &sm->cache_hdr, sizeof (ip4_gtpu_header_t)); + hdr0->gtpu.teid = (u32) dst0.as_u8[9]; - hdr0->gtpu.length = len0; + hdr0->gtpu.length = clib_host_to_net_u16 (len0); hdr0->udp.src_port = src0.as_u16[6]; - hdr0->udp.length = len0 + sizeof (udp_header_t); + hdr0->udp.length = clib_host_to_net_u16 (len0 + + sizeof (udp_header_t) + sizeof (gtpu_header_t)); hdr0->ip4.src_address.as_u32 = src0.as_u32[2]; hdr0->ip4.dst_address.as_u32 = dst0.as_u32[1]; - hdr0->ip4.length = len0 + sizeof (udp_header_t) + - sizeof (ip4_header_t); + hdr0->ip4.length = clib_host_to_net_u16 (len0 + + sizeof (ip4_gtpu_header_t)); + hdr0->ip4.checksum = ip4_header_checksum (&hdr0->ip4); - good_n++; + good_n++; } if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && diff --git a/test/test_srv6_end.py b/test/test_srv6_end.py index 68188ca0502d..c90afbb893b5 100644 --- a/test/test_srv6_end.py +++ b/test/test_srv6_end.py @@ -1,6 +1,8 @@ #!/usr/bin/env python from framework import VppTestCase +from ipaddress import IPv4Address +from ipaddress import IPv6Address from scapy.contrib.gtp import * from scapy.all import * @@ -16,8 +18,12 @@ def setUpClass(cls): cls.pg_if_i = cls.pg_interfaces[0] cls.pg_if_o = cls.pg_interfaces[1] - cls.pg_if_i.config_ip4() - cls.pg_if_o.config_ip6() + cls.pg_if_i.config_ip6() + cls.pg_if_o.config_ip4() + + cls.ip4_dst = cls.pg_if_o.remote_ip4 + #cls.ip4_src = cls.pg_if_o.local_ip4 + cls.ip4_src = "192.168.192.10" for pg_if in cls.pg_interfaces: pg_if.admin_up() @@ -27,6 +33,64 @@ def setUpClass(cls): super(TestSRv6EndMGTP4E, cls).tearDownClass() raise + def create_packets(self, inner): + + ip4_dst = IPv4Address(unicode(self.ip4_dst)) + # 32bit prefix + 32bit IPv4 DA + 8bit + 32bit TEID + 24bit + dst = '\xaa' * 4 + ip4_dst.packed + '\x11' + '\xbb' * 4 + '\x11' * 3 + ip6_dst = IPv6Address(dst) + + ip4_src = IPv4Address(unicode(self.ip4_src)) + # 64bit prefix + 32bit IPv4 SA + 16 bit port + 16bit + src = '\xcc' * 8 + ip4_src.packed + '\xdd' * 2 + '\x11' * 2 + ip6_src = IPv6Address(src) + + print("ip4 dst: {}".format(ip4_dst)) + print("ip4 src: {}".format(ip4_src)) + print("ip6 dst (remote srgw): {}".format(ip6_dst)) + print("ip6 src (local srgw): {}".format(ip6_src)) + + pkts = list() + for d, s in inner: + pkt = (Ether()/ + IPv6(dst=str(ip6_dst), src=str(ip6_src))/ + IPv6ExtHdrSegmentRouting()/ + #Raw('\xaa')/ + #Raw('\xff' * 100)) + IPv6(dst=d, src=s)/ + UDP(sport=1000, dport=23))#/ + #Raw('\x11' * 10)) + + print(pkt.show2()) + pkts.append(pkt) + + return pkts + + def test_srv6_end(self): + """ test_srv6_end """ + pkts = self.create_packets([ + ("A::1", "B::1"), + ("C::1", "D::1"), + ]) + + self.vapi.cli("sr localsid address {} behavior end.m.gtp4.e".format( + pkts[0]['IPv6'].dst)) + print(self.vapi.cli("show sr localsids")) + + self.vapi.cli("clear errors") + + self.pg0.add_stream(pkts) + self.pg_enable_capture(self.pg_interfaces) + self.pg_start() + + print(self.vapi.cli("show errors")) + print(self.vapi.cli("show int address")) + + capture = self.pg1.get_capture(len(pkts)) + + for pkt in capture: + print(pkt.show2()) + class TestSRv6TMTmap(VppTestCase): """ SRv6 T.M.Tmap (GTP-U -> SRv6) """ From d200eaf35df7b5d8ee832779e68d972cebb05285 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Tue, 2 Apr 2019 16:52:50 +0900 Subject: [PATCH 048/154] modify test_tmap. --- extras/ietf104/runner.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 1782d6d7264e..793a6c9cfcda 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -474,11 +474,28 @@ def test_tmap(self): self.start_containers() c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) c4 = self.containers.get(self.get_name(self.instance_names[-1])) c1.pg_create_interface(local_ip="172.20.0.1", remote_ip="172.20.0.2", local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c1.vppctl_exec("set sr encaps source addr C1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32 local-prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid address D4:: behavior end.m.gtp4.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/128") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ IP(src="172.20.0.2", dst="172.20.0.1")/ UDP(sport=2152, dport=2152)/ From 9d1adf02ae69956d0560f505d2445eab38377545 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Fri, 5 Apr 2019 23:29:55 +0900 Subject: [PATCH 049/154] correct tmap prefix position to the last SID in SRH. --- extras/ietf104/runner.py | 17 ++-- src/vnet/srv6/sr_policy_rewrite.c | 124 ++++++++++-------------------- 2 files changed, 52 insertions(+), 89 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 793a6c9cfcda..6ffdd2247810 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -419,6 +419,9 @@ def test_srv6(self): self.start_containers() + print("Sleeping") + time.sleep(30) + c1 = self.containers.get(self.get_name(self.instance_names[0])) c2 = self.containers.get(self.get_name(self.instance_names[1])) c3 = self.containers.get(self.get_name(self.instance_names[2])) @@ -473,16 +476,20 @@ def test_tmap(self): self.start_containers() + print("Sleeping") + time.sleep(30) + c1 = self.containers.get(self.get_name(self.instance_names[0])) c2 = self.containers.get(self.get_name(self.instance_names[1])) c3 = self.containers.get(self.get_name(self.instance_names[2])) c4 = self.containers.get(self.get_name(self.instance_names[-1])) - c1.pg_create_interface(local_ip="172.20.0.1", remote_ip="172.20.0.2", + c1.pg_create_interface(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c1.vppctl_exec("set sr encaps source addr C1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32 local-prefix C1::/64") + c1.vppctl_exec("set sr encaps source addr A1::1") +# c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32 local-prefix C1::/64") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") @@ -493,13 +500,13 @@ def test_tmap(self): c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/128") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") c3.set_ipv6_route("eth1", "A2::1", "C::/120") p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ IP(src="172.20.0.2", dst="172.20.0.1")/ UDP(sport=2152, dport=2152)/ - GTPHeader(gtp_type="g_pdu", teid=200)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ IP(src="172.99.0.1", dst="172.99.0.2")/ ICMP()) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index c32a399a7c2a..f001890f3a5d 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -154,7 +154,7 @@ compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap, u64 tmap_prefix) { ip6_header_t *iph; ip6_sr_header_t *srh; - ip6_address_t *addrp, *this_address, *segment; + ip6_address_t *addrp, *this_address; u32 header_length = 0; u8 *rs = NULL; @@ -163,15 +163,7 @@ compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap, u64 tmap_prefix) if (vec_len (sl) > 1) { header_length += sizeof (ip6_sr_header_t); - - if (is_tmap) - { - header_length += (vec_len (sl) + 1) * sizeof (ip6_address_t); - } - else - { - header_length += vec_len (sl) * sizeof (ip6_address_t); - } + header_length += vec_len (sl) * sizeof (ip6_address_t); } vec_validate (rs, header_length - 1); @@ -207,12 +199,6 @@ compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap, u64 tmap_prefix) } } - if (is_tmap) - { - segment = srh->segments + vec_len (sl); - segment->as_u64[0] = tmap_prefix; - } - iph->dst_address.as_u64[0] = sl->as_u64[0]; iph->dst_address.as_u64[1] = sl->as_u64[1]; return rs; @@ -898,6 +884,12 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, ip6_address_t mask; ip6_address_mask_from_width(&mask, gtp4_mask_width); ip6_address_mask(&tmap_prefix.ip6, &mask); + + /* add tmap prefix as the last SID */ + + vec_add2 (segments, this_seg, 1); + clib_memcpy (this_seg->as_u8, tmap_prefix.as_u8, sizeof (*this_seg)); + is_tmap = 1; } else if (unformat (input, "spray")) @@ -1394,7 +1386,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, while (n_left_from >= 8 && n_left_to_next >= 4) { u32 bi0, bi1, bi2, bi3; - vlib_buffer_t *b0, *b1, *b2, *b3, *tmp0, *tmp1, *tmp2, *tmp3; + vlib_buffer_t *b0, *b1, *b2, *b3; u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; @@ -1405,7 +1397,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; u16 sr_port0, sr_port1, sr_port2, sr_port3; u32 teid0, teid1, teid2, teid3; - ip6_address_t *segment; /* Prefetch next iteration. */ { @@ -1485,11 +1476,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); - tmp0 = vlib_buffer_get_current (b0); - tmp1 = vlib_buffer_get_current (b1); - tmp2 = vlib_buffer_get_current (b2); - tmp3 = vlib_buffer_get_current (b3); - clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); clib_memcpy (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), @@ -1517,83 +1503,59 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { - segment = (void *) tmp0 - sizeof (ip6_address_t); - segment->as_u32[1] = dst_addr0.as_u32; - segment->as_u8[9] = ((u8*) &teid0)[0]; - segment->as_u8[10] = ((u8*) &teid0)[1]; - segment->as_u8[11] = ((u8*) &teid0)[2]; - segment->as_u8[12] = ((u8*) &teid0)[3]; + sr0 = (void*)(ip0+1); + sr0->segments->as_u32[1] = dst_addr0.as_u32; + sr0->segments->as_u8[9] = ((u8*) &teid0)[0]; + sr0->segments->as_u8[10] = ((u8*) &teid0)[1]; + sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; + sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; ip0->src_address.as_u16[6] = sr_port0; } - else - { - /* Set the TEID in the last SID args */ - sr0 = (void*)(ip0+1); - sr0->segments->as_u32[3] = teid0; - } if (PREDICT_TRUE (sl1->is_tmap)) { - segment = (void *) tmp1 - sizeof (ip6_address_t); - segment->as_u32[1] = dst_addr1.as_u32; - segment->as_u8[9] = ((u8*) &teid1)[0]; - segment->as_u8[10] = ((u8*) &teid1)[1]; - segment->as_u8[11] = ((u8*) &teid1)[2]; - segment->as_u8[12] = ((u8*) &teid1)[3]; + sr1 = (void*)(ip0+1); + sr1->segments->as_u32[1] = dst_addr1.as_u32; + sr1->segments->as_u8[9] = ((u8*) &teid1)[0]; + sr1->segments->as_u8[10] = ((u8*) &teid1)[1]; + sr1->segments->as_u8[11] = ((u8*) &teid1)[2]; + sr1->segments->as_u8[12] = ((u8*) &teid1)[3]; ip1->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip1->src_address.as_u32[2] = sr_addr1.as_u32; ip1->src_address.as_u16[6] = sr_port1; } - else - { - /* Set the TEID in the last SID args */ - sr1 = (void*)(ip1+1); - sr1->segments->as_u32[3] = teid1; - } if (PREDICT_TRUE (sl2->is_tmap)) { - segment = (void *) tmp2 - sizeof (ip6_address_t); - segment->as_u32[1] = dst_addr2.as_u32; - segment->as_u8[9] = ((u8*) &teid2)[0]; - segment->as_u8[10] = ((u8*) &teid2)[1]; - segment->as_u8[11] = ((u8*) &teid2)[2]; - segment->as_u8[12] = ((u8*) &teid2)[3]; + sr2 = (void*)(ip0+1); + sr2->segments->as_u32[1] = dst_addr2.as_u32; + sr2->segments->as_u8[9] = ((u8*) &teid2)[0]; + sr2->segments->as_u8[10] = ((u8*) &teid2)[1]; + sr2->segments->as_u8[11] = ((u8*) &teid2)[2]; + sr2->segments->as_u8[12] = ((u8*) &teid2)[3]; ip2->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip2->src_address.as_u32[2] = sr_addr2.as_u32; ip2->src_address.as_u16[6] = sr_port2; } - else - { - /* Set the TEID in the last SID args */ - sr2 = (void*)(ip2+1); - sr2->segments->as_u32[3] = teid2; - } if (PREDICT_TRUE (sl3->is_tmap)) { - segment = (void *) tmp3 - sizeof (ip6_address_t); - segment->as_u32[1] = dst_addr3.as_u32; - segment->as_u8[9] = ((u8*) &teid3)[0]; - segment->as_u8[10] = ((u8*) &teid3)[1]; - segment->as_u8[11] = ((u8*) &teid3)[2]; - segment->as_u8[12] = ((u8*) &teid3)[3]; + sr3 = (void*)(ip0+1); + sr3->segments->as_u32[1] = dst_addr3.as_u32; + sr3->segments->as_u8[9] = ((u8*) &teid3)[0]; + sr3->segments->as_u8[10] = ((u8*) &teid3)[1]; + sr3->segments->as_u8[11] = ((u8*) &teid3)[2]; + sr3->segments->as_u8[12] = ((u8*) &teid3)[3]; ip3->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip3->src_address.as_u32[2] = sr_addr3.as_u32; ip3->src_address.as_u16[6] = sr_port3; } - else - { - /* Set the TEID in the last SID args */ - sr3 = (void*)(ip3+1); - sr3->segments->as_u32[3] = teid3; - } if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE))) { @@ -1652,7 +1614,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; ip4_gtpu_header_t *hdr0; - ip6_address_t *segment; ip4_address_t sr_addr0; ip4_address_t dst_addr0; u16 sr_port; @@ -1695,23 +1656,18 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { - segment = (void *) tmp0 - sizeof (ip6_address_t); - segment->as_u32[1] = dst_addr0.as_u32; - segment->as_u8[9] = ((u8*) &teid0)[0]; - segment->as_u8[10] = ((u8*) &teid0)[1]; - segment->as_u8[11] = ((u8*) &teid0)[2]; - segment->as_u8[12] = ((u8*) &teid0)[3]; + sr0 = (void*)(ip0+1); + sr0->segments->as_u32[1] = dst_addr0.as_u32; + sr0->segments->as_u8[9] = ((u8*) &teid0)[0]; + sr0->segments->as_u8[10] = ((u8*) &teid0)[1]; + sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; + sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; ip0->src_address.as_u16[6] = sr_port; } - else - { - sr0 = (void*)(ip0+1); - sr0->segments->as_u32[3] = teid0; - } - + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) { From 98531aa4711d607c22961d4f858ea96020ea6240 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sun, 7 Apr 2019 08:51:44 +0900 Subject: [PATCH 050/154] add pgroute and pg_create_interface4 for tmap test. --- extras/ietf104/runner.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 6ffdd2247810..2e7f0cb21c24 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -134,6 +134,16 @@ def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): self.vppctl_exec("set ip6 neighbor pg0 {} {}".format(remote_ip, remote_mac)) self.vppctl_exec("set int state pg0 up") + def pg_create_interface4(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip arp pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") def pg_enable(self): # start packet generator @@ -157,6 +167,10 @@ def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): self.vppctl_exec("ip route add {} via host-{} {}".format( subnet, out_if_name, next_hop_ip)) + def set_ip_pgroute(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via {} {}".format( + subnet, out_if_name, next_hop_ip)) + def set_ipv6_default_route(self, out_if_name, next_hop_ip): self.vppctl_exec("ip route add ::/0 via host-{} {}".format( out_if_name, next_hop_ip)) @@ -338,9 +352,6 @@ def start_containers(self): #c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", #local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - # setup network between instances n1.connect(c1) n1.connect(c2) @@ -390,6 +401,8 @@ def test_ping(self): c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) @@ -429,6 +442,8 @@ def test_srv6(self): c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr D1::") c1.vppctl_exec("sr policy add bsid D1::999:1 next D2:: next D3:: next D4::") @@ -476,16 +491,16 @@ def test_tmap(self): self.start_containers() - print("Sleeping") - time.sleep(30) c1 = self.containers.get(self.get_name(self.instance_names[0])) c2 = self.containers.get(self.get_name(self.instance_names[1])) c3 = self.containers.get(self.get_name(self.instance_names[2])) c4 = self.containers.get(self.get_name(self.instance_names[-1])) - c1.pg_create_interface(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") # c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32 local-prefix C1::/64") @@ -502,6 +517,7 @@ def test_tmap(self): c2.set_ipv6_route("eth1", "A1::1", "C::/120") c3.set_ipv6_route("eth2", "A3::2", "D4::/32") c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ IP(src="172.20.0.2", dst="172.20.0.1")/ @@ -522,6 +538,8 @@ def test_tmap(self): c1.pg_enable() # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) print("Receiving packet on {}:".format(c4.name)) for p in c4.pg_read_packets(): From a193fdd92bcfe4f71f94ede555db137dcdb51e30 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Mon, 8 Apr 2019 21:37:42 +0200 Subject: [PATCH 051/154] T.M.Tmap - add localsid prefix to CLI. --- src/vnet/srv6/sr.h | 3 +- src/vnet/srv6/sr_policy_rewrite.c | 46 ++++++++++++++++++++----------- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index d6b92e0b5287..4e4754ddab1f 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -92,6 +92,7 @@ typedef struct dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ + ip46_address_t localsid_prefix; /**< T.M.Tmap localsid prefix */ } ip6_sr_sl_t; @@ -285,7 +286,7 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, extern int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_gtp4_removal, ip46_address_t *gtp4_sr_prefix); + u8 is_gtp4_removal, ip46_address_t *gtp4_localsid_prefix); extern int sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, u8 operation, ip6_address_t * segments, u32 sl_index, diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index f001890f3a5d..83b1d27c9e21 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -150,7 +150,7 @@ VLIB_CLI_COMMAND (set_sr_src_command, static) = { * @return precomputed rewrite string for encapsulation */ static inline u8 * -compute_rewrite_encaps (ip6_address_t * sl, u8 is_tmap, u64 tmap_prefix) +compute_rewrite_encaps (ip6_address_t * sl) { ip6_header_t *iph; ip6_sr_header_t *srh; @@ -292,12 +292,14 @@ compute_rewrite_bsid (ip6_address_t * sl) * @param sl is a vector of IPv6 addresses composing the Segment List * @param weight is the weight of the SegmentList (for load-balancing purposes) * @param is_encap represents the mode (SRH insertion vs Encapsulation) + * @param is_tmap (bool) whether SR policy should behave as T.M.Tmap gtp4 + * @param localsid_prefix is T.M.Tmap localsid prefix * * @return pointer to the just created segment list */ static inline ip6_sr_sl_t * create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, - u8 is_encap, u8 is_tmap, ip46_address_t *tmap_prefix) + u8 is_encap, u8 is_tmap, ip46_address_t *localsid_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_sl_t *segment_list; @@ -313,11 +315,11 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, segment_list->segments = vec_dup (sl); segment_list->is_tmap = is_tmap; + segment_list->localsid_prefix = *localsid_prefix; if (is_encap) { - segment_list->rewrite = compute_rewrite_encaps (sl, is_tmap, - tmap_prefix->as_u64[0]); + segment_list->rewrite = compute_rewrite_encaps (sl); segment_list->rewrite_bsid = segment_list->rewrite; } else @@ -550,13 +552,15 @@ update_replicate (ip6_sr_policy_t * sr_policy) * @param behavior is the behavior of the SR policy. (default//spray) * @param fib_table is the VRF where to install the FIB entry for the BSID * @param is_encap (bool) whether SR policy should behave as Encap/SRH Insertion + * @param is_tmap (bool) whether SR policy should behave as T.M.Tmap gtp4 + * @param localsid_prefix is T.M.Tmap localsid prefix * * @return 0 if correct, else error */ int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_tmap, ip46_address_t *tmap_prefix) + u8 is_tmap, ip46_address_t *localsid_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -607,7 +611,7 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Create a segment list and add the index to the SR policy */ create_sl (sr_policy, segments, weight, is_encap, is_tmap, - tmap_prefix); + localsid_prefix); /* If FIB doesnt exist, create them */ if (sm->fib_table_ip6 == (u32) ~ 0) @@ -841,8 +845,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, char is_encap = 1; char is_spray = 0; char is_tmap = 0; - ip46_address_t tmap_prefix; - u32 gtp4_mask_width = 0; + ip46_address_t tmap_prefix, tmap_localsid; + u32 gtp4_mask_width = 0, localsid_mask_width=0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -878,13 +882,23 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, is_encap = 1; else if (unformat (input, "insert")) is_encap = 0; - else if (unformat (input, "gtp4_removal sr-prefix %U/%d", - unformat_ip6_address, &tmap_prefix.ip6, >p4_mask_width)) + else if (unformat (input, "gtp4_removal sr-prefix %U/%d local-sid %U/%d", + unformat_ip6_address, &tmap_prefix.ip6, >p4_mask_width, + &tmap_localsid, &localsid_mask_width)) { ip6_address_t mask; + + if (64 < localsid_mask_width) { + return clib_error_return (0, + "Incorrect local sid prefix width, max 64"); + } + ip6_address_mask_from_width(&mask, gtp4_mask_width); ip6_address_mask(&tmap_prefix.ip6, &mask); + ip6_address_mask_from_width(&mask, localsid_mask_width); + ip6_address_mask(&tmap_localsid.ip6, &mask); + /* add tmap prefix as the last SID */ vec_add2 (segments, this_seg, 1); @@ -911,7 +925,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, - is_encap, is_tmap, &tmap_prefix); + is_encap, is_tmap, &tmap_localsid); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -1510,7 +1524,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; - ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip0->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; ip0->src_address.as_u16[6] = sr_port0; } @@ -1524,7 +1538,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr1->segments->as_u8[11] = ((u8*) &teid1)[2]; sr1->segments->as_u8[12] = ((u8*) &teid1)[3]; - ip1->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip1->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; ip1->src_address.as_u32[2] = sr_addr1.as_u32; ip1->src_address.as_u16[6] = sr_port1; } @@ -1538,7 +1552,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr2->segments->as_u8[11] = ((u8*) &teid2)[2]; sr2->segments->as_u8[12] = ((u8*) &teid2)[3]; - ip2->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip2->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; ip2->src_address.as_u32[2] = sr_addr2.as_u32; ip2->src_address.as_u16[6] = sr_port2; } @@ -1552,7 +1566,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr3->segments->as_u8[11] = ((u8*) &teid3)[2]; sr3->segments->as_u8[12] = ((u8*) &teid3)[3]; - ip3->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip3->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; ip3->src_address.as_u32[2] = sr_addr3.as_u32; ip3->src_address.as_u16[6] = sr_port3; } @@ -1663,7 +1677,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; - ip0->src_address.as_u64[0] = sr_pr_encaps_src.as_u64[0]; + ip0->src_address.as_u64[0] = sl0->localsid_prefix.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; ip0->src_address.as_u16[6] = sr_port; } From ca7ecf466928e93f30cb0506da2db0fddfa4edf4 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Mon, 15 Apr 2019 19:16:58 +0900 Subject: [PATCH 052/154] fix TEID copy and the counter of the SID. --- src/plugins/srv6-end/node.c | 20 +++++++++++++++++++- src/plugins/srv6-end/srv6_end.c | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index cefe1a292378..277e92a360da 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -73,7 +73,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, vlib_frame_t * frame) { srv6_end_main_t *sm = &srv6_end_main; + ip6_sr_main_t *sm2 = &sr_main; u32 n_left_from, next_index, *from, *to_next; + u32 thread_index = vm->thread_index; u32 good_n = 0, bad_n = 0; @@ -92,6 +94,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, { u32 bi0; vlib_buffer_t *b0; + ip6_sr_localsid_t *ls0; ip6srv_combo_header_t *ip6srv0; ip6_address_t src0, dst0; @@ -110,6 +113,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, n_left_to_next -= 1; b0 = vlib_get_buffer (vm, bi0); + ls0 = + pool_elt_at_index (sm2->localsids, + vnet_buffer (b0)->ip.adj_index[VLIB_TX]); // ip6srv0 = vlib_buffer_get_current (b0); @@ -143,7 +149,13 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, clib_memcpy (hdr0, &sm->cache_hdr, sizeof (ip4_gtpu_header_t)); - hdr0->gtpu.teid = (u32) dst0.as_u8[9]; + u32 teid; + u8 *teid8p = (u8 *)&teid; + teid8p[0] = dst0.as_u8[9]; + teid8p[1] = dst0.as_u8[10]; + teid8p[2] = dst0.as_u8[11]; + teid8p[3] = dst0.as_u8[12]; + hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); hdr0->udp.src_port = src0.as_u16[6]; @@ -172,6 +184,12 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, tr->teid = hdr0->gtpu.teid; } + vlib_increment_combined_counter + (((next0 == + SRV6_END_M_GTP4_E_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : + &(sm2->sr_ls_valid_counters)), thread_index, ls0 - sm2->localsids, + 1, vlib_buffer_length_in_chain (vm, b0)); + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); } diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-end/srv6_end.c index c9f7e5921394..95c5dad4bc20 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-end/srv6_end.c @@ -133,7 +133,7 @@ srv6_end_init (vlib_main_t * vm) keyword_str, def_str, param_str, - 128, //prefix len + 32, //prefix len &dpo_type, clb_format_srv6_end_m_gtp4_e, clb_unformat_srv6_end_m_gtp4_e, From 0d4ae9c560ed7edb3719dc8e181f3ea21e5c139b Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Wed, 24 Apr 2019 20:01:27 +0200 Subject: [PATCH 053/154] Edit show command and trace, fix CLI command. --- src/vnet/srv6/sr.h | 5 +- src/vnet/srv6/sr_policy_rewrite.c | 89 +++++++++++++++++++++++++++---- 2 files changed, 81 insertions(+), 13 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 4e4754ddab1f..8dbcf43b52ce 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -92,7 +92,7 @@ typedef struct dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ - ip46_address_t localsid_prefix; /**< T.M.Tmap localsid prefix */ + ip6_address_t localsid_prefix; /**< T.M.Tmap localsid prefix */ } ip6_sr_sl_t; @@ -119,6 +119,7 @@ typedef struct u32 fib_table; /**< FIB table */ u8 is_encap; /**< Mode (0 is SRH insert, 1 Encaps) */ + u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ } ip6_sr_policy_t; /** @@ -286,7 +287,7 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, extern int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_gtp4_removal, ip46_address_t *gtp4_localsid_prefix); + u8 is_gtp4_removal, ip6_address_t *gtp4_localsid_prefix); extern int sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, u8 operation, ip6_address_t * segments, u32 sl_index, diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 83b1d27c9e21..b6fe95a187e5 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -57,6 +57,8 @@ typedef struct { ip6_address_t src, dst; + bool is_tmap; + ip46_address_t localsid_prefix, node; } sr_policy_rewrite_trace_t; /* Graph arcs */ @@ -299,7 +301,7 @@ compute_rewrite_bsid (ip6_address_t * sl) */ static inline ip6_sr_sl_t * create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, - u8 is_encap, u8 is_tmap, ip46_address_t *localsid_prefix) + u8 is_encap, u8 is_tmap, ip6_address_t *localsid_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_sl_t *segment_list; @@ -560,7 +562,7 @@ update_replicate (ip6_sr_policy_t * sr_policy) int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_tmap, ip46_address_t *localsid_prefix) + u8 is_tmap, ip6_address_t *localsid_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -604,6 +606,7 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, sr_policy->type = behavior; sr_policy->fib_table = (fib_table != (u32) ~ 0 ? fib_table : 0); //Is default FIB 0 ? sr_policy->is_encap = is_encap; + sr_policy->is_tmap = is_tmap; /* Copy the key */ mhash_set (&sm->sr_policies_index_hash, bsid, sr_policy - sm->sr_policies, @@ -845,7 +848,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, char is_encap = 1; char is_spray = 0; char is_tmap = 0; - ip46_address_t tmap_prefix, tmap_localsid; + ip6_address_t tmap_prefix, tmap_localsid; u32 gtp4_mask_width = 0, localsid_mask_width=0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -882,9 +885,9 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, is_encap = 1; else if (unformat (input, "insert")) is_encap = 0; - else if (unformat (input, "gtp4_removal sr-prefix %U/%d local-sid %U/%d", - unformat_ip6_address, &tmap_prefix.ip6, >p4_mask_width, - &tmap_localsid, &localsid_mask_width)) + else if (unformat (input, "gtp4_removal sr-prefix %U/%d local-prefix %U/%d", + unformat_ip6_address, &tmap_prefix, >p4_mask_width, + unformat_ip6_address, &tmap_localsid, &localsid_mask_width)) { ip6_address_t mask; @@ -894,10 +897,10 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, } ip6_address_mask_from_width(&mask, gtp4_mask_width); - ip6_address_mask(&tmap_prefix.ip6, &mask); + ip6_address_mask(&tmap_prefix, &mask); ip6_address_mask_from_width(&mask, localsid_mask_width); - ip6_address_mask(&tmap_localsid.ip6, &mask); + ip6_address_mask(&tmap_localsid, &mask); /* add tmap prefix as the last SID */ @@ -979,7 +982,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, VLIB_CLI_COMMAND (sr_policy_command, static) = { .path = "sr policy", .short_help = "sr policy [add||del||mod] [bsid 2001::1||index 5] " - "next A:: next B:: next C:: (weight 1) (fib-table 2) (encap|insert|gtp4_removal sr-prefix /)", + "next A:: next B:: next C:: (weight 1) (fib-table 2) (encap|insert|gtp4_removal sr-prefix / local-prefix /)", .long_help = "Manipulation of SR policies.\n" "A Segment Routing policy may contain several SID lists. Each SID list has\n" @@ -1027,7 +1030,8 @@ show_sr_policies_command_fn (vlib_main_t * vm, unformat_input_t * input, (u32) (sr_policy - sm->sr_policies), format_ip6_address, &sr_policy->bsid); vlib_cli_output (vm, "\tBehavior: %s", - (sr_policy->is_encap ? "Encapsulation" : + (sr_policy->is_tmap ? "T.M.Tmap" : + sr_policy->is_encap ? "Encapsulation" : "SRH insertion")); vlib_cli_output (vm, "\tType: %s", (sr_policy->type == @@ -1049,6 +1053,12 @@ show_sr_policies_command_fn (vlib_main_t * vm, unformat_input_t * input, s = format (s, "\b\b > "); s = format (s, "weight: %u", segment_list->weight); vlib_cli_output (vm, " %s", s); + if (sr_policy->is_tmap) { + s = NULL; + s = format (s, "\tLocal SID Prefix: %U", + format_ip6_address, &segment_list->localsid_prefix); + vlib_cli_output (vm, " %s", s); + } } vlib_cli_output (vm, "-----------"); } @@ -1075,9 +1085,16 @@ format_sr_policy_rewrite_trace (u8 * s, va_list * args) CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); sr_policy_rewrite_trace_t *t = va_arg (*args, sr_policy_rewrite_trace_t *); + if (true == t->is_tmap) { + s = format + (s, "SR-policy-rewrite: src %U dst %U\n\tLocal SID Prefix: %U Node: %U", + format_ip6_address, &t->src, format_ip6_address, &t->dst, + format_ip6_address, t->localsid_prefix, format_ip6_address, t->node); + } else { s = format (s, "SR-policy-rewrite: src %U dst %U", format_ip6_address, &t->src, format_ip6_address, &t->dst); + } return s; } @@ -1581,7 +1598,17 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sizeof (tr->src.as_u8)); clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); - } + if (PREDICT_TRUE (sl0->is_tmap)) + { + tr->is_tmap = true; + clib_memcpy (tr->localsid_prefix.as_u8, + ip0->src_address.as_u8, + sizeof(tr->localsid_prefix.as_u8)); + clib_memcpy (tr->node.as_u8, + sl0->segments->as_u8, + sizeof(tr->node.as_u8)); + } + } if (PREDICT_FALSE (b1->flags & VLIB_BUFFER_IS_TRACED)) { @@ -1591,6 +1618,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sizeof (tr->src.as_u8)); clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, sizeof (tr->dst.as_u8)); + if (PREDICT_TRUE (sl1->is_tmap)) + { + tr->is_tmap = true; + clib_memcpy (tr->localsid_prefix.as_u8, + ip1->src_address.as_u8, + sizeof(tr->localsid_prefix.as_u8)); + clib_memcpy (tr->node.as_u8, + sl1->segments->as_u8, + sizeof(tr->node.as_u8)); + } } if (PREDICT_FALSE (b2->flags & VLIB_BUFFER_IS_TRACED)) @@ -1601,6 +1638,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sizeof (tr->src.as_u8)); clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, sizeof (tr->dst.as_u8)); + if (PREDICT_TRUE (sl2->is_tmap)) + { + tr->is_tmap = true; + clib_memcpy (tr->localsid_prefix.as_u8, + ip2->src_address.as_u8, + sizeof(tr->localsid_prefix.as_u8)); + clib_memcpy (tr->node.as_u8, + sl2->segments->as_u8, + sizeof(tr->node.as_u8)); + } } if (PREDICT_FALSE (b3->flags & VLIB_BUFFER_IS_TRACED)) @@ -1611,6 +1658,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sizeof (tr->src.as_u8)); clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, sizeof (tr->dst.as_u8)); + if (PREDICT_TRUE (sl3->is_tmap)) + { + tr->is_tmap = true; + clib_memcpy (tr->localsid_prefix.as_u8, + ip3->src_address.as_u8, + sizeof(tr->localsid_prefix.as_u8)); + clib_memcpy (tr->node.as_u8, + sl3->segments->as_u8, + sizeof(tr->node.as_u8)); + } } } @@ -1691,6 +1748,16 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sizeof (tr->src.as_u8)); clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); + if (PREDICT_TRUE (sl0->is_tmap)) + { + tr->is_tmap = true; + clib_memcpy (tr->localsid_prefix.as_u8, + ip0->src_address.as_u8, + sizeof(tr->localsid_prefix.as_u8)); + clib_memcpy (tr->node.as_u8, + sl0->segments->as_u8, + sizeof(tr->node.as_u8)); + } } vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, From 99f746e67f5b093095f16ea6fb37bdb6a117a2c4 Mon Sep 17 00:00:00 2001 From: Andrej Kozemcak Date: Sun, 28 Apr 2019 21:17:18 +0200 Subject: [PATCH 054/154] Rename values: localsid_prefix -> local_prefix --- src/vnet/srv6/sr.h | 3 ++- src/vnet/srv6/sr_policy_rewrite.c | 42 +++++++++++++++---------------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 8dbcf43b52ce..aeafa416f8f0 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -92,7 +92,7 @@ typedef struct dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ - ip6_address_t localsid_prefix; /**< T.M.Tmap localsid prefix */ + ip6_address_t local_prefix; /**< T.M.Tmap localsid prefix */ } ip6_sr_sl_t; @@ -356,3 +356,4 @@ ip6_sr_compute_rewrite_string_insert (ip6_address_t * sl) * eval: (c-set-style "gnu") * End: */ + diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index b6fe95a187e5..d992054cbf8f 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -58,7 +58,7 @@ typedef struct { ip6_address_t src, dst; bool is_tmap; - ip46_address_t localsid_prefix, node; + ip46_address_t local_prefix, node; } sr_policy_rewrite_trace_t; /* Graph arcs */ @@ -317,7 +317,7 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, segment_list->segments = vec_dup (sl); segment_list->is_tmap = is_tmap; - segment_list->localsid_prefix = *localsid_prefix; + segment_list->local_prefix = *localsid_prefix; if (is_encap) { @@ -885,7 +885,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, is_encap = 1; else if (unformat (input, "insert")) is_encap = 0; - else if (unformat (input, "gtp4_removal sr-prefix %U/%d local-prefix %U/%d", + else if (unformat (input, "gtp4_removal sr_prefix %U/%d local_prefix %U/%d", unformat_ip6_address, &tmap_prefix, >p4_mask_width, unformat_ip6_address, &tmap_localsid, &localsid_mask_width)) { @@ -982,7 +982,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, VLIB_CLI_COMMAND (sr_policy_command, static) = { .path = "sr policy", .short_help = "sr policy [add||del||mod] [bsid 2001::1||index 5] " - "next A:: next B:: next C:: (weight 1) (fib-table 2) (encap|insert|gtp4_removal sr-prefix / local-prefix /)", + "next A:: next B:: next C:: (weight 1) (fib-table 2) (encap|insert|gtp4_removal sr_prefix / local_prefix /)", .long_help = "Manipulation of SR policies.\n" "A Segment Routing policy may contain several SID lists. Each SID list has\n" @@ -1056,7 +1056,7 @@ show_sr_policies_command_fn (vlib_main_t * vm, unformat_input_t * input, if (sr_policy->is_tmap) { s = NULL; s = format (s, "\tLocal SID Prefix: %U", - format_ip6_address, &segment_list->localsid_prefix); + format_ip6_address, &segment_list->local_prefix); vlib_cli_output (vm, " %s", s); } } @@ -1089,7 +1089,7 @@ format_sr_policy_rewrite_trace (u8 * s, va_list * args) s = format (s, "SR-policy-rewrite: src %U dst %U\n\tLocal SID Prefix: %U Node: %U", format_ip6_address, &t->src, format_ip6_address, &t->dst, - format_ip6_address, t->localsid_prefix, format_ip6_address, t->node); + format_ip6_address, t->local_prefix, format_ip6_address, t->node); } else { s = format (s, "SR-policy-rewrite: src %U dst %U", @@ -1541,7 +1541,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; - ip0->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; + ip0->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; ip0->src_address.as_u16[6] = sr_port0; } @@ -1555,7 +1555,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr1->segments->as_u8[11] = ((u8*) &teid1)[2]; sr1->segments->as_u8[12] = ((u8*) &teid1)[3]; - ip1->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; + ip1->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; ip1->src_address.as_u32[2] = sr_addr1.as_u32; ip1->src_address.as_u16[6] = sr_port1; } @@ -1569,7 +1569,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr2->segments->as_u8[11] = ((u8*) &teid2)[2]; sr2->segments->as_u8[12] = ((u8*) &teid2)[3]; - ip2->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; + ip2->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; ip2->src_address.as_u32[2] = sr_addr2.as_u32; ip2->src_address.as_u16[6] = sr_port2; } @@ -1583,7 +1583,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr3->segments->as_u8[11] = ((u8*) &teid3)[2]; sr3->segments->as_u8[12] = ((u8*) &teid3)[3]; - ip3->src_address.as_u64[0] = sl3->localsid_prefix.as_u64[0]; + ip3->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; ip3->src_address.as_u32[2] = sr_addr3.as_u32; ip3->src_address.as_u16[6] = sr_port3; } @@ -1601,9 +1601,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->localsid_prefix.as_u8, + clib_memcpy (tr->local_prefix.as_u8, ip0->src_address.as_u8, - sizeof(tr->localsid_prefix.as_u8)); + sizeof(tr->local_prefix.as_u8)); clib_memcpy (tr->node.as_u8, sl0->segments->as_u8, sizeof(tr->node.as_u8)); @@ -1621,9 +1621,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl1->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->localsid_prefix.as_u8, + clib_memcpy (tr->local_prefix.as_u8, ip1->src_address.as_u8, - sizeof(tr->localsid_prefix.as_u8)); + sizeof(tr->local_prefix.as_u8)); clib_memcpy (tr->node.as_u8, sl1->segments->as_u8, sizeof(tr->node.as_u8)); @@ -1641,9 +1641,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl2->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->localsid_prefix.as_u8, + clib_memcpy (tr->local_prefix.as_u8, ip2->src_address.as_u8, - sizeof(tr->localsid_prefix.as_u8)); + sizeof(tr->local_prefix.as_u8)); clib_memcpy (tr->node.as_u8, sl2->segments->as_u8, sizeof(tr->node.as_u8)); @@ -1661,9 +1661,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl3->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->localsid_prefix.as_u8, + clib_memcpy (tr->local_prefix.as_u8, ip3->src_address.as_u8, - sizeof(tr->localsid_prefix.as_u8)); + sizeof(tr->local_prefix.as_u8)); clib_memcpy (tr->node.as_u8, sl3->segments->as_u8, sizeof(tr->node.as_u8)); @@ -1734,7 +1734,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; - ip0->src_address.as_u64[0] = sl0->localsid_prefix.as_u64[0]; + ip0->src_address.as_u64[0] = sl0->local_prefix.as_u64[0]; ip0->src_address.as_u32[2] = sr_addr0.as_u32; ip0->src_address.as_u16[6] = sr_port; } @@ -1751,9 +1751,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->localsid_prefix.as_u8, + clib_memcpy (tr->local_prefix.as_u8, ip0->src_address.as_u8, - sizeof(tr->localsid_prefix.as_u8)); + sizeof(tr->local_prefix.as_u8)); clib_memcpy (tr->node.as_u8, sl0->segments->as_u8, sizeof(tr->node.as_u8)); From e8abc9535ebc50b2c59b294b9c1c6641406c2737 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 13 Jun 2019 20:26:53 -0700 Subject: [PATCH 055/154] Fix the issue on tmap --- extras/ietf104/runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/ietf104/runner.py b/extras/ietf104/runner.py index 2e7f0cb21c24..c2394ea2e5b0 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf104/runner.py @@ -504,7 +504,7 @@ def test_tmap(self): c1.vppctl_exec("set sr encaps source addr A1::1") # c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32 local-prefix C1::/64") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") From 613a79b464bdc5b0a7642ae44c21396909010003 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Sun, 16 Jun 2019 19:41:42 -0700 Subject: [PATCH 056/154] fix the issue upon merging the master --- extras/ietf104/Dockerfile.j2 | 7 ++----- src/plugins/srv6-end/node.c | 2 +- src/vppinfra/linux/syscall.h | 2 ++ 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/extras/ietf104/Dockerfile.j2 b/extras/ietf104/Dockerfile.j2 index f31541e436c3..33ea27fd508a 100644 --- a/extras/ietf104/Dockerfile.j2 +++ b/extras/ietf104/Dockerfile.j2 @@ -12,6 +12,7 @@ RUN set -eux; \ net-tools \ iproute2 \ tcpdump \ + python3-cffi \ netcat; \ rm -rf /var/lib/apt/lists/*; \ mv /usr/sbin/tcpdump /usr/bin/tcpdump @@ -36,7 +37,7 @@ RUN set -eux; \ make build; \ make pkg-deb; \ rm -rf .ccache; \ - find . -type f -name '*.o' -exec rm -rf '{}' \; + find . -type f -name '*.o' -delete WORKDIR {{vpp_path}}/build-root @@ -48,10 +49,6 @@ RUN set -euex; \ cp {{vpp_path}}/startup.conf /etc/startup.conf; \ rm -rf {{vpp_path}} -WORKDIR /usr/share/vpp/plugins/perfmon - -RUN tar Jxf PerfmonTables.tar.xz - WORKDIR / CMD vpp -c /etc/startup.conf diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-end/node.c index 277e92a360da..159395690ab1 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-end/node.c @@ -99,7 +99,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, ip6srv_combo_header_t *ip6srv0; ip6_address_t src0, dst0; - ip4_gtpu_header_t *hdr0; + ip4_gtpu_header_t *hdr0 = NULL; uword len0; u32 next0 = SRV6_END_M_GTP4_E_NEXT_LOOKUP; diff --git a/src/vppinfra/linux/syscall.h b/src/vppinfra/linux/syscall.h index c07cad631bda..17e4ea17734a 100644 --- a/src/vppinfra/linux/syscall.h +++ b/src/vppinfra/linux/syscall.h @@ -48,12 +48,14 @@ move_pages (int pid, unsigned long count, void **pages, const int *nodes, } #ifndef HAVE_MEMFD_CREATE +#ifndef _LINUX_MEMFD_H // tentative static inline int memfd_create (const char *name, unsigned int flags) { return syscall (__NR_memfd_create, name, flags); } #endif +#endif #endif /* included_linux_syscall_h */ From 0beca5538c7e0c4d14c1a7e02867b3a1ef732bb4 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 17 Jun 2019 11:21:34 -0700 Subject: [PATCH 057/154] use clib_memcpy_fast --- src/vnet/srv6/sr_policy_rewrite.c | 234 +++++++++++++++--------------- 1 file changed, 117 insertions(+), 117 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index d992054cbf8f..e4b83dc734fd 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -117,7 +117,7 @@ static ip6_address_t sr_pr_encaps_src; void sr_set_source (ip6_address_t * address) { - clib_memcpy (&sr_pr_encaps_src, address, sizeof (sr_pr_encaps_src)); + clib_memcpy_fast (&sr_pr_encaps_src, address, sizeof (sr_pr_encaps_src)); } static clib_error_t * @@ -195,7 +195,7 @@ compute_rewrite_encaps (ip6_address_t * sl) addrp = srh->segments + vec_len (sl) - 1; vec_foreach (this_address, sl) { - clib_memcpy (addrp->as_u8, this_address->as_u8, + clib_memcpy_fast (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); addrp--; } @@ -238,7 +238,7 @@ compute_rewrite_insert (ip6_address_t * sl) addrp = srh->segments + vec_len (sl); vec_foreach (this_address, sl) { - clib_memcpy (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); + clib_memcpy_fast (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); addrp--; } return rs; @@ -276,7 +276,7 @@ compute_rewrite_bsid (ip6_address_t * sl) addrp = srh->segments + vec_len (sl) - 1; vec_foreach (this_address, sl) { - clib_memcpy (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); + clib_memcpy_fast (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); addrp--; } return rs; @@ -602,7 +602,7 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Add an SR policy object */ pool_get (sm->sr_policies, sr_policy); memset (sr_policy, 0, sizeof (*sr_policy)); - clib_memcpy (&sr_policy->bsid, bsid, sizeof (ip6_address_t)); + clib_memcpy_fast (&sr_policy->bsid, bsid, sizeof (ip6_address_t)); sr_policy->type = behavior; sr_policy->fib_table = (fib_table != (u32) ~ 0 ? fib_table : 0); //Is default FIB 0 ? sr_policy->is_encap = is_encap; @@ -870,7 +870,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, if (unformat (input, "next %U", unformat_ip6_address, &next_address)) { vec_add2 (segments, this_seg, 1); - clib_memcpy (this_seg->as_u8, next_address.as_u8, + clib_memcpy_fast (this_seg->as_u8, next_address.as_u8, sizeof (*this_seg)); } else if (unformat (input, "add sl")) @@ -905,7 +905,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, /* add tmap prefix as the last SID */ vec_add2 (segments, this_seg, 1); - clib_memcpy (this_seg->as_u8, tmap_prefix.as_u8, sizeof (*this_seg)); + clib_memcpy_fast (this_seg->as_u8, tmap_prefix.as_u8, sizeof (*this_seg)); is_tmap = 1; } @@ -1214,13 +1214,13 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, ip2_encap = vlib_buffer_get_current (b2); ip3_encap = vlib_buffer_get_current (b3); - clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy (((u8 *) ip1_encap) - vec_len (sl1->rewrite), + clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy (((u8 *) ip2_encap) - vec_len (sl2->rewrite), + clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy (((u8 *) ip3_encap) - vec_len (sl3->rewrite), + clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -1244,9 +1244,9 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -1254,9 +1254,9 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -1264,9 +1264,9 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -1274,9 +1274,9 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, sizeof (tr->dst.as_u8)); } } @@ -1312,7 +1312,7 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, ip0_encap = vlib_buffer_get_current (b0); - clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -1325,9 +1325,9 @@ sr_policy_rewrite_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -1507,13 +1507,13 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); - clib_memcpy (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), + clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), + clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), + clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), + clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -1594,17 +1594,17 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); if (PREDICT_TRUE (sl0->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->local_prefix.as_u8, + clib_memcpy_fast (tr->local_prefix.as_u8, ip0->src_address.as_u8, sizeof(tr->local_prefix.as_u8)); - clib_memcpy (tr->node.as_u8, + clib_memcpy_fast (tr->node.as_u8, sl0->segments->as_u8, sizeof(tr->node.as_u8)); } @@ -1614,17 +1614,17 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, sizeof (tr->dst.as_u8)); if (PREDICT_TRUE (sl1->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->local_prefix.as_u8, + clib_memcpy_fast (tr->local_prefix.as_u8, ip1->src_address.as_u8, sizeof(tr->local_prefix.as_u8)); - clib_memcpy (tr->node.as_u8, + clib_memcpy_fast (tr->node.as_u8, sl1->segments->as_u8, sizeof(tr->node.as_u8)); } @@ -1634,17 +1634,17 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, sizeof (tr->dst.as_u8)); if (PREDICT_TRUE (sl2->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->local_prefix.as_u8, + clib_memcpy_fast (tr->local_prefix.as_u8, ip2->src_address.as_u8, sizeof(tr->local_prefix.as_u8)); - clib_memcpy (tr->node.as_u8, + clib_memcpy_fast (tr->node.as_u8, sl2->segments->as_u8, sizeof(tr->node.as_u8)); } @@ -1654,17 +1654,17 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, sizeof (tr->dst.as_u8)); if (PREDICT_TRUE (sl3->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->local_prefix.as_u8, + clib_memcpy_fast (tr->local_prefix.as_u8, ip3->src_address.as_u8, sizeof(tr->local_prefix.as_u8)); - clib_memcpy (tr->node.as_u8, + clib_memcpy_fast (tr->node.as_u8, sl3->segments->as_u8, sizeof(tr->node.as_u8)); } @@ -1716,7 +1716,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // srv header + 1 position (new one) tmp0 = vlib_buffer_get_current (b0); - clib_memcpy ((void *) tmp0 - vec_len (sl0->rewrite), + clib_memcpy_fast ((void *) tmp0 - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); // first ipv6 header position @@ -1744,17 +1744,17 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); if (PREDICT_TRUE (sl0->is_tmap)) { tr->is_tmap = true; - clib_memcpy (tr->local_prefix.as_u8, + clib_memcpy_fast (tr->local_prefix.as_u8, ip0->src_address.as_u8, sizeof(tr->local_prefix.as_u8)); - clib_memcpy (tr->node.as_u8, + clib_memcpy_fast (tr->node.as_u8, sl0->segments->as_u8, sizeof(tr->node.as_u8)); } @@ -1990,13 +1990,13 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, en2 = vlib_buffer_get_current (b2); en3 = vlib_buffer_get_current (b3); - clib_memcpy (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, + clib_memcpy_fast (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy (((u8 *) en1) - vec_len (sl1->rewrite), sl1->rewrite, + clib_memcpy_fast (((u8 *) en1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy (((u8 *) en2) - vec_len (sl2->rewrite), sl2->rewrite, + clib_memcpy_fast (((u8 *) en2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy (((u8 *) en3) - vec_len (sl3->rewrite), sl3->rewrite, + clib_memcpy_fast (((u8 *) en3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -2059,9 +2059,9 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2069,9 +2069,9 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2079,9 +2079,9 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2089,9 +2089,9 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, sizeof (tr->dst.as_u8)); } } @@ -2146,7 +2146,7 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, en0 = vlib_buffer_get_current (b0); - clib_memcpy (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, + clib_memcpy_fast (((u8 *) en0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -2169,9 +2169,9 @@ sr_policy_rewrite_encaps_l2 (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2336,22 +2336,22 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr3 = (ip6_sr_header_t *) (ip3 + 1); - clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, + clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy ((u8 *) ip1 - vec_len (sl1->rewrite), (u8 *) ip1, + clib_memcpy_fast ((u8 *) ip1 - vec_len (sl1->rewrite), (u8 *) ip1, (void *) sr1 - (void *) ip1); - clib_memcpy ((u8 *) ip2 - vec_len (sl2->rewrite), (u8 *) ip2, + clib_memcpy_fast ((u8 *) ip2 - vec_len (sl2->rewrite), (u8 *) ip2, (void *) sr2 - (void *) ip2); - clib_memcpy ((u8 *) ip3 - vec_len (sl3->rewrite), (u8 *) ip3, + clib_memcpy_fast ((u8 *) ip3 - vec_len (sl3->rewrite), (u8 *) ip3, (void *) sr3 - (void *) ip3); - clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, + clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy (((u8 *) sr1 - vec_len (sl1->rewrite)), sl1->rewrite, + clib_memcpy_fast (((u8 *) sr1 - vec_len (sl1->rewrite)), sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy (((u8 *) sr2 - vec_len (sl2->rewrite)), sl2->rewrite, + clib_memcpy_fast (((u8 *) sr2 - vec_len (sl2->rewrite)), sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy (((u8 *) sr3 - vec_len (sl3->rewrite)), sl3->rewrite, + clib_memcpy_fast (((u8 *) sr3 - vec_len (sl3->rewrite)), sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -2475,9 +2475,9 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2485,9 +2485,9 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2495,9 +2495,9 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2505,9 +2505,9 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, sizeof (tr->dst.as_u8)); } } @@ -2551,9 +2551,9 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr0 = (ip6_sr_header_t *) (ip0 + 1); - clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, + clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite), (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, + clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite)), sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -2592,9 +2592,9 @@ sr_policy_rewrite_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2759,22 +2759,22 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr3 = (ip6_sr_header_t *) (ip3 + 1); - clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, + clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy ((u8 *) ip1 - vec_len (sl1->rewrite_bsid), (u8 *) ip1, + clib_memcpy_fast ((u8 *) ip1 - vec_len (sl1->rewrite_bsid), (u8 *) ip1, (void *) sr1 - (void *) ip1); - clib_memcpy ((u8 *) ip2 - vec_len (sl2->rewrite_bsid), (u8 *) ip2, + clib_memcpy_fast ((u8 *) ip2 - vec_len (sl2->rewrite_bsid), (u8 *) ip2, (void *) sr2 - (void *) ip2); - clib_memcpy ((u8 *) ip3 - vec_len (sl3->rewrite_bsid), (u8 *) ip3, + clib_memcpy_fast ((u8 *) ip3 - vec_len (sl3->rewrite_bsid), (u8 *) ip3, (void *) sr3 - (void *) ip3); - clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), + clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); - clib_memcpy (((u8 *) sr1 - vec_len (sl1->rewrite_bsid)), + clib_memcpy_fast (((u8 *) sr1 - vec_len (sl1->rewrite_bsid)), sl1->rewrite_bsid, vec_len (sl1->rewrite_bsid)); - clib_memcpy (((u8 *) sr2 - vec_len (sl2->rewrite_bsid)), + clib_memcpy_fast (((u8 *) sr2 - vec_len (sl2->rewrite_bsid)), sl2->rewrite_bsid, vec_len (sl2->rewrite_bsid)); - clib_memcpy (((u8 *) sr3 - vec_len (sl3->rewrite_bsid)), + clib_memcpy_fast (((u8 *) sr3 - vec_len (sl3->rewrite_bsid)), sl3->rewrite_bsid, vec_len (sl3->rewrite_bsid)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite_bsid)); @@ -2889,9 +2889,9 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2899,9 +2899,9 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2909,9 +2909,9 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -2919,9 +2919,9 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, sizeof (tr->dst.as_u8)); } } @@ -2965,9 +2965,9 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, else sr0 = (ip6_sr_header_t *) (ip0 + 1); - clib_memcpy ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, + clib_memcpy_fast ((u8 *) ip0 - vec_len (sl0->rewrite_bsid), (u8 *) ip0, (void *) sr0 - (void *) ip0); - clib_memcpy (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), + clib_memcpy_fast (((u8 *) sr0 - vec_len (sl0->rewrite_bsid)), sl0->rewrite_bsid, vec_len (sl0->rewrite_bsid)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite_bsid)); @@ -3003,9 +3003,9 @@ sr_policy_rewrite_b_insert (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -3189,13 +3189,13 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, end_bsid_encaps_srh_processing (node, b2, ip2_encap, sr2, &next2); end_bsid_encaps_srh_processing (node, b3, ip3_encap, sr3, &next3); - clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy (((u8 *) ip1_encap) - vec_len (sl1->rewrite), + clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy (((u8 *) ip2_encap) - vec_len (sl2->rewrite), + clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy (((u8 *) ip3_encap) - vec_len (sl3->rewrite), + clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -3219,9 +3219,9 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -3229,9 +3229,9 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b1, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip1->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip1->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip1->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip1->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -3239,9 +3239,9 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b2, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip2->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip2->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip2->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip2->dst_address.as_u8, sizeof (tr->dst.as_u8)); } @@ -3249,9 +3249,9 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b3, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip3->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip3->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip3->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip3->dst_address.as_u8, sizeof (tr->dst.as_u8)); } } @@ -3292,7 +3292,7 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, IP_PROTOCOL_IPV6_ROUTE); end_bsid_encaps_srh_processing (node, b0, ip0_encap, sr0, &next0); - clib_memcpy (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); @@ -3305,9 +3305,9 @@ sr_policy_rewrite_b_encaps (vlib_main_t * vm, vlib_node_runtime_t * node, { sr_policy_rewrite_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, ip0->src_address.as_u8, + clib_memcpy_fast (tr->src.as_u8, ip0->src_address.as_u8, sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, ip0->dst_address.as_u8, + clib_memcpy_fast (tr->dst.as_u8, ip0->dst_address.as_u8, sizeof (tr->dst.as_u8)); } From 8dea8188a9be87f939f3f07aa133e1cf89ee51ab Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 17 Jun 2019 15:25:40 -0700 Subject: [PATCH 058/154] cosmetic change --- src/vnet/srv6/sr_policy_rewrite.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index e4b83dc734fd..e59618d2ab6c 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -179,10 +179,9 @@ compute_rewrite_encaps (ip6_address_t * sl) iph->protocol = IP_PROTOCOL_IPV6; iph->hop_limit = IPv6_DEFAULT_HOP_LIMIT; - srh = (ip6_sr_header_t *) (iph + 1); - if (vec_len (sl) > 1) { + srh = (ip6_sr_header_t *) (iph + 1); iph->protocol = IP_PROTOCOL_IPV6_ROUTE; srh->protocol = IP_PROTOCOL_IPV6; srh->type = ROUTING_HEADER_TYPE_SR; @@ -196,7 +195,7 @@ compute_rewrite_encaps (ip6_address_t * sl) vec_foreach (this_address, sl) { clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + sizeof (ip6_address_t)); addrp--; } } From 067e5862da676c44324a3096df53bb5f44c49a93 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 17 Jun 2019 15:42:37 -0700 Subject: [PATCH 059/154] cosmetic change --- src/vnet/srv6/sr_policy_rewrite.c | 55 ++++++++++++++++--------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index e59618d2ab6c..4a510b1e596b 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -195,7 +195,7 @@ compute_rewrite_encaps (ip6_address_t * sl) vec_foreach (this_address, sl) { clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); + sizeof (ip6_address_t)); addrp--; } } @@ -265,7 +265,7 @@ compute_rewrite_bsid (ip6_address_t * sl) vec_validate (rs, header_length - 1); srh = (ip6_sr_header_t *) rs; - srh->type = ROUTING_HEADER_TYPE_SR; + srh->type = R OUTING_HEADER_TYPE_SR; srh->segments_left = vec_len (sl) - 1; srh->first_segment = vec_len (sl) - 1; srh->length = ((sizeof (ip6_sr_header_t) + @@ -306,7 +306,7 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, ip6_sr_sl_t *segment_list; pool_get (sm->sid_lists, segment_list); - memset (segment_list, 0, sizeof (*segment_list)); + clib_memset (segment_list, 0, sizeof (*segment_list)); vec_add1 (sr_policy->segments_lists, segment_list - sm->sid_lists); @@ -561,7 +561,7 @@ update_replicate (ip6_sr_policy_t * sr_policy) int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_tmap, ip6_address_t *localsid_prefix) + u8 is_tmap, ip6_address_t *localsid_prefix) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -600,7 +600,7 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, /* Add an SR policy object */ pool_get (sm->sr_policies, sr_policy); - memset (sr_policy, 0, sizeof (*sr_policy)); + clib_memset (sr_policy, 0, sizeof (*sr_policy)); clib_memcpy_fast (&sr_policy->bsid, bsid, sizeof (ip6_address_t)); sr_policy->type = behavior; sr_policy->fib_table = (fib_table != (u32) ~ 0 ? fib_table : 0); //Is default FIB 0 ? @@ -870,7 +870,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, { vec_add2 (segments, this_seg, 1); clib_memcpy_fast (this_seg->as_u8, next_address.as_u8, - sizeof (*this_seg)); + sizeof (*this_seg)); } else if (unformat (input, "add sl")) operation = 1; @@ -884,30 +884,29 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, is_encap = 1; else if (unformat (input, "insert")) is_encap = 0; - else if (unformat (input, "gtp4_removal sr_prefix %U/%d local_prefix %U/%d", + else if (unformat (input, "gtp4_removal sr_prefix %U/%d local_prefix %U/%d", unformat_ip6_address, &tmap_prefix, >p4_mask_width, unformat_ip6_address, &tmap_localsid, &localsid_mask_width)) - { - ip6_address_t mask; + { + ip6_address_t mask; - if (64 < localsid_mask_width) { - return clib_error_return (0, - "Incorrect local sid prefix width, max 64"); - } + if (64 < localsid_mask_width) { + return clib_error_return (0, "Incorrect local sid prefix width, max 64"); + } - ip6_address_mask_from_width(&mask, gtp4_mask_width); - ip6_address_mask(&tmap_prefix, &mask); + ip6_address_mask_from_width(&mask, gtp4_mask_width); + ip6_address_mask(&tmap_prefix, &mask); - ip6_address_mask_from_width(&mask, localsid_mask_width); - ip6_address_mask(&tmap_localsid, &mask); + ip6_address_mask_from_width(&mask, localsid_mask_width); + ip6_address_mask(&tmap_localsid, &mask); - /* add tmap prefix as the last SID */ + /* add tmap prefix as the last SID */ - vec_add2 (segments, this_seg, 1); - clib_memcpy_fast (this_seg->as_u8, tmap_prefix.as_u8, sizeof (*this_seg)); + vec_add2 (segments, this_seg, 1); + clib_memcpy_fast (this_seg->as_u8, tmap_prefix.as_u8, sizeof (*this_seg)); - is_tmap = 1; - } + is_tmap = 1; + } else if (unformat (input, "spray")) is_spray = 1; else @@ -928,6 +927,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, is_encap, is_tmap, &tmap_localsid); + vector_free (segments); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -945,6 +945,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_mod ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), sr_policy_index, fib_table, operation, segments, sl_index, weight); + vector_free (segments); } switch (rv) @@ -1381,12 +1382,12 @@ encaps_processing_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, /* Outer IPv6: Update length, FL, proto */ new_l0 = vlib_buffer_length_in_chain(vm, b0) - sizeof (ip6_header_t); ip0->payload_length = clib_host_to_net_u16 (new_l0); - ip0->ip_version_traffic_class_and_flow_label =clib_host_to_net_u32 (0 | ((6 & 0xF) << 28)) ; + ip0->ip_version_traffic_class_and_flow_label = clib_host_to_net_u32 (0 | ((6 & 0xF) << 28)) ; if (ip0->protocol == IP_PROTOCOL_IPV6_ROUTE) - { - sr0 = (void *) (ip0 + 1); - sr0->protocol = IP_PROTOCOL_IP_IN_IP; - } + { + sr0 = (void *) (ip0 + 1); + sr0->protocol = IP_PROTOCOL_IP_IN_IP; + } else ip0->protocol = IP_PROTOCOL_IP_IN_IP; } From 6e4ebf757f60667caf585936008cfa935fdb8f89 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 18 Jun 2019 07:54:56 -0700 Subject: [PATCH 060/154] Receover the original function in sr_policy_rewrite.c --- src/vnet/srv6/sr.h | 1 + src/vnet/srv6/sr_policy_rewrite.c | 274 ++++++++++++++++++++++-------- 2 files changed, 204 insertions(+), 71 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index aeafa416f8f0..44bc8da4b260 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -70,6 +70,7 @@ typedef struct gtpu_header_t gtpu; /* 8 bytes */ } __attribute__ ((packed)) ip4_gtpu_header_t; /* *INDENT-ON* */ + #define GTPU_V1_VER (1<<5) #define GTPU_PT_GTP (1<<4) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 4a510b1e596b..85ca1294701d 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -265,7 +265,7 @@ compute_rewrite_bsid (ip6_address_t * sl) vec_validate (rs, header_length - 1); srh = (ip6_sr_header_t *) rs; - srh->type = R OUTING_HEADER_TYPE_SR; + srh->type = ROUTING_HEADER_TYPE_SR; srh->segments_left = vec_len (sl) - 1; srh->first_segment = vec_len (sl) - 1; srh->length = ((sizeof (ip6_sr_header_t) + @@ -927,7 +927,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, is_encap, is_tmap, &tmap_localsid); - vector_free (segments); + vec_free (segments); } else if (is_del) rv = sr_policy_del ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), @@ -945,7 +945,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_mod ((sr_policy_index != (u32) ~ 0 ? NULL : &bsid), sr_policy_index, fib_table, operation, segments, sl_index, weight); - vector_free (segments); + vec_free (segments); } switch (rv) @@ -1369,12 +1369,46 @@ VLIB_REGISTER_NODE (sr_policy_rewrite_encaps_node) = { /* *INDENT-ON* */ /** - * @brief IPv4 encapsulation processing as per RFC2473 + * * @brief IPv4 encapsulation processing as per RFC2473 + * */ +static_always_inline void +encaps_processing_v4 (vlib_node_runtime_t * node, + vlib_buffer_t * b0, + ip6_header_t * ip0, ip4_header_t * ip0_encap) +{ + u32 new_l0; + ip6_sr_header_t *sr0; + + u32 checksum0; + + /* Inner IPv4: Decrement TTL & update checksum */ + ip0_encap->ttl -= 1; + checksum0 = ip0_encap->checksum + clib_host_to_net_u16 (0x0100); + checksum0 += checksum0 >= 0xffff; + ip0_encap->checksum = checksum0; + + /* Outer IPv6: Update length, FL, proto */ + new_l0 = ip0->payload_length + clib_net_to_host_u16 (ip0_encap->length); + ip0->payload_length = clib_host_to_net_u16 (new_l0); + ip0->ip_version_traffic_class_and_flow_label = + clib_host_to_net_u32 (0 | ((6 & 0xF) << 28) | + ((ip0_encap->tos & 0xFF) << 20)); + if (ip0->protocol == IP_PROTOCOL_IPV6_ROUTE) + { + sr0 = (void *) (ip0 + 1); + sr0->protocol = IP_PROTOCOL_IP_IN_IP; + } + else + ip0->protocol = IP_PROTOCOL_IP_IN_IP; +} + +/** + * @brief IPv4 encapsulation processing for TMAP */ static_always_inline void -encaps_processing_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, - vlib_buffer_t * b0, - ip6_header_t * ip0) +encaps_processing_v4_tmap (vlib_main_t * vm, vlib_node_runtime_t * node, + vlib_buffer_t * b0, + ip6_header_t * ip0) { u32 new_l0; ip6_sr_header_t *sr0; @@ -1407,6 +1441,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, next_index = node->cached_next_index; + int encap_pkts = 0, bsid_pkts = 0; + while (n_left_from > 0) { u32 n_left_to_next; @@ -1421,13 +1457,24 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; + ip4_header_t *ip0_encap, *ip1_encap, *ip2_encap, *ip3_encap; ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; ip4_address_t sr_addr0, sr_addr1, sr_addr2, sr_addr3; ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; - u16 sr_port0, sr_port1, sr_port2, sr_port3; - u32 teid0, teid1, teid2, teid3; + u16 sr_port0 = 0, sr_port1 = 0, sr_port2 = 0, sr_port3 = 0; + u32 teid0 = 0, teid1 = 0, teid2 = 0, teid3 = 0; + + clib_memset(&sr_addr0, 0, sizeof(ip4_address_t)); + clib_memset(&sr_addr1, 0, sizeof(ip4_address_t)); + clib_memset(&sr_addr2, 0, sizeof(ip4_address_t)); + clib_memset(&sr_addr3, 0, sizeof(ip4_address_t)); + + clib_memset(&dst_addr0, 0, sizeof(ip4_address_t)); + clib_memset(&dst_addr1, 0, sizeof(ip4_address_t)); + clib_memset(&dst_addr2, 0, sizeof(ip4_address_t)); + clib_memset(&dst_addr3, 0, sizeof(ip4_address_t)); /* Prefetch next iteration. */ { @@ -1476,46 +1523,89 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sl3 = pool_elt_at_index (sm->sid_lists, vnet_buffer (b3)->ip.adj_index[VLIB_TX]); + ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= + vec_len (sl0->rewrite)); + ASSERT (b1->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= + vec_len (sl1->rewrite)); + ASSERT (b2->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= + vec_len (sl2->rewrite)); + ASSERT (b3->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= + vec_len (sl3->rewrite)); + + ip0_encap = vlib_buffer_get_current (b0); + ip1_encap = vlib_buffer_get_current (b1); + ip2_encap = vlib_buffer_get_current (b2); + ip3_encap = vlib_buffer_get_current (b3); + + if (sl0->is_tmap) + { + hdr0 = vlib_buffer_get_current (b0); + teid0 = hdr0->gtpu.teid; + sr_addr0 = hdr0->ip4.src_address; + dst_addr0 = hdr0->ip4.dst_address; + sr_port0 = hdr0->udp.src_port; + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + } + else + { + clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + } + + + if (sl1->is_tmap) + { + hdr1 = vlib_buffer_get_current (b1); + teid1 = hdr1->gtpu.teid; + sr_addr1 = hdr1->ip4.src_address; + dst_addr1 = hdr1->ip4.dst_address; + sr_port1 = hdr1->udp.src_port; + vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); + clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), + sl1->rewrite, vec_len (sl1->rewrite)); + } + else + { + clib_memcpy_fast (((u8 *) ip1_encap) - vec_len (sl1->rewrite), + sl1->rewrite, vec_len (sl1->rewrite)); + } + + if (sl2->is_tmap) + { + hdr2 = vlib_buffer_get_current (b2); + teid2 = hdr2->gtpu.teid; + sr_addr2 = hdr2->ip4.src_address; + dst_addr2 = hdr2->ip4.dst_address; + sr_port2 = hdr2->udp.src_port; + vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); + clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), + sl2->rewrite, vec_len (sl2->rewrite)); + } + else + { + clib_memcpy_fast (((u8 *) ip2_encap) - vec_len (sl2->rewrite), + sl2->rewrite, vec_len (sl2->rewrite)); + } + + if (sl3->is_tmap) + { + hdr3 = vlib_buffer_get_current (b3); + teid3 = hdr3->gtpu.teid; + sr_addr3 = hdr3->ip4.src_address; + dst_addr3 = hdr3->ip4.dst_address; + sr_port3 = hdr3->udp.src_port; + vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); + clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), + sl3->rewrite, vec_len (sl3->rewrite)); + } + else + { + clib_memcpy_fast (((u8 *) ip3_encap) - vec_len (sl3->rewrite), + sl3->rewrite, vec_len (sl3->rewrite)); + } - hdr0 = vlib_buffer_get_current (b0); - hdr1 = vlib_buffer_get_current (b1); - hdr2 = vlib_buffer_get_current (b2); - hdr3 = vlib_buffer_get_current (b3); - - teid0 = hdr0->gtpu.teid; - teid1 = hdr1->gtpu.teid; - teid2 = hdr2->gtpu.teid; - teid3 = hdr3->gtpu.teid; - - sr_addr0 = hdr0->ip4.src_address; - sr_addr1 = hdr1->ip4.src_address; - sr_addr2 = hdr2->ip4.src_address; - sr_addr3 = hdr3->ip4.src_address; - - dst_addr0 = hdr0->ip4.dst_address; - dst_addr1 = hdr1->ip4.dst_address; - dst_addr2 = hdr2->ip4.dst_address; - dst_addr3 = hdr3->ip4.dst_address; - - sr_port0 = hdr0->udp.src_port; - sr_port1 = hdr1->udp.src_port; - sr_port2 = hdr2->udp.src_port; - sr_port3 = hdr3->udp.src_port; - - vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); - vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); - vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); - vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); - - clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); - clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), - sl1->rewrite, vec_len (sl1->rewrite)); - clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), - sl2->rewrite, vec_len (sl2->rewrite)); - clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), - sl3->rewrite, vec_len (sl3->rewrite)); - vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); vlib_buffer_advance (b1, -(word) vec_len (sl1->rewrite)); vlib_buffer_advance (b2, -(word) vec_len (sl2->rewrite)); @@ -1526,11 +1616,25 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip2 = vlib_buffer_get_current (b2); ip3 = vlib_buffer_get_current (b3); - encaps_processing_v4 (vm, node, b0, ip0); - encaps_processing_v4 (vm, node, b1, ip1); - encaps_processing_v4 (vm, node, b2, ip2); - encaps_processing_v4 (vm, node, b3, ip3); + if (sl0->is_tmap) + encaps_processing_v4_tmap (vm, node, b0, ip0); + else + encaps_processing_v4 (node, b0, ip0, ip0_encap); + if (sl1->is_tmap) + encaps_processing_v4_tmap (vm, node, b1, ip1); + else + encaps_processing_v4 (node, b1, ip1, ip1_encap); + + if (sl2->is_tmap) + encaps_processing_v4_tmap (vm, node, b2, ip2); + else + encaps_processing_v4 (node, b2, ip2, ip2_encap); + + if (sl3->is_tmap) + encaps_processing_v4_tmap (vm, node, b3, ip3); + else + encaps_processing_v4 (node, b3, ip3, ip3_encap); if (PREDICT_TRUE (sl0->is_tmap)) { @@ -1671,6 +1775,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, } } + encap_pkts += 4; vlib_validate_buffer_enqueue_x4 (vm, node, next_index, to_next, n_left_to_next, bi0, bi1, bi2, bi3, next0, next1, next2, next3); @@ -1680,18 +1785,22 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, while (n_left_from > 0 && n_left_to_next > 0) { u32 bi0; - vlib_buffer_t *b0, *tmp0; + vlib_buffer_t *b0; ip6_header_t *ip0 = 0; + ip4_header_t *ip0_encap = 0; ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; ip4_gtpu_header_t *hdr0; ip4_address_t sr_addr0; ip4_address_t dst_addr0; - u16 sr_port; - u32 teid0; + u16 sr_port = 0; + u32 teid0 = 0; u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; + clib_memset(&sr_addr0, 0, sizeof(ip4_address_t)); + clib_memset(&dst_addr0, 0, sizeof(ip4_address_t)); + bi0 = from[0]; to_next[0] = bi0; from += 1; @@ -1703,27 +1812,41 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sl0 = pool_elt_at_index (sm->sid_lists, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= + vec_len (sl0->rewrite)); + + ip0_encap = vlib_buffer_get_current (b0); - // save for later use - hdr0 = vlib_buffer_get_current (b0); - teid0 = hdr0->gtpu.teid; - sr_addr0 = hdr0->ip4.src_address; - dst_addr0 = hdr0->ip4.dst_address; - sr_port = hdr0->udp.src_port; - - // go after GTPU, we are at segment header - vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); - - // srv header + 1 position (new one) - tmp0 = vlib_buffer_get_current (b0); - clib_memcpy_fast ((void *) tmp0 - vec_len (sl0->rewrite), - sl0->rewrite, vec_len (sl0->rewrite)); + if (sl0->is_tmap) + { + // save for later use + hdr0 = vlib_buffer_get_current (b0); + teid0 = hdr0->gtpu.teid; + sr_addr0 = hdr0->ip4.src_address; + dst_addr0 = hdr0->ip4.dst_address; + sr_port = hdr0->udp.src_port; + + // go after GTPU, we are at segment header + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + + // srv header + 1 position (new one) + clib_memcpy_fast ((void *) vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + } + else + { + clib_memcpy_fast (((u8 *) ip0_encap) - vec_len (sl0->rewrite), + sl0->rewrite, vec_len (sl0->rewrite)); + } - // first ipv6 header position vlib_buffer_advance (b0, -(word) vec_len (sl0->rewrite)); + ip0 = vlib_buffer_get_current (b0); - encaps_processing_v4 (vm, node, b0, ip0); + if (sl0->is_tmap) + encaps_processing_v4_tmap (vm, node, b0, ip0); + else + encaps_processing_v4 (node, b0, ip0, ip0_encap); if (PREDICT_TRUE (sl0->is_tmap)) { @@ -1760,6 +1883,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, } } + encap_pkts++; vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, bi0, next0); } @@ -1767,6 +1891,14 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_put_next_frame (vm, node, next_index, n_left_to_next); } + /* Update counters */ + vlib_node_increment_counter (vm, sr_policy_rewrite_encaps_node.index, + SR_POLICY_REWRITE_ERROR_COUNTER_TOTAL, + encap_pkts); + vlib_node_increment_counter (vm, sr_policy_rewrite_encaps_node.index, + SR_POLICY_REWRITE_ERROR_COUNTER_BSID, + bsid_pkts); + return from_frame->n_vectors; } From 85b25716d4da034b90d499fdda54fef9afd302ac Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Wed, 19 Jun 2019 10:30:30 +0900 Subject: [PATCH 061/154] previous function retired with lots of thanks. --- src/plugins/srv6-gtp/node.c | 208 ------------------------------ src/plugins/srv6-gtp/srv6_gtp.c | 221 -------------------------------- src/plugins/srv6-gtp/srv6_gtp.h | 64 --------- src/plugins/srv6_gtp.am | 22 ---- 4 files changed, 515 deletions(-) delete mode 100644 src/plugins/srv6-gtp/node.c delete mode 100755 src/plugins/srv6-gtp/srv6_gtp.c delete mode 100644 src/plugins/srv6-gtp/srv6_gtp.h delete mode 100644 src/plugins/srv6_gtp.am diff --git a/src/plugins/srv6-gtp/node.c b/src/plugins/srv6-gtp/node.c deleted file mode 100644 index a7808dacef99..000000000000 --- a/src/plugins/srv6-gtp/node.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (c) 2015 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include -#include -#include -#include - -typedef struct { - u32 localsid_index; -} srv6_gtp_trace_t; - -/* packet trace format function */ -static u8 * format_srv6_gtp_trace (u8 * s, va_list * args) -{ - CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *); - CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); - srv6_gtp_trace_t * t = va_arg (*args, srv6_gtp_trace_t *); - s = format (s, "SRv6-gtp: localsid_index %d\n", - t->localsid_index); - return s; -} - -vlib_node_registration_t srv6_gtp_node; - -#define foreach_srv6_localsid_counter \ -_(PROCESSED, "srv6-gtp processed packets") \ -_(NO_SRH, "(Error) No SRH.") - -typedef enum { -#define _(sym,str) SRV6_LOCALSID_COUNTER_##sym, - foreach_srv6_localsid_counter -#undef _ - SRV6_LOCALSID_N_COUNTERS, -} srv6_gtp_counters; - -static char * srv6_localsid_counter_strings[] = { -#define _(sym,string) string, - foreach_srv6_localsid_counter -#undef _ -}; - -typedef enum { - SRV6_GTP_NEXT_ERROR, - SRV6_GTP_NEXT_IP4LOOKUP, - SRV6_GTP_N_NEXT, -} srv6_gtp_next_t; - -/* - * @brief Function doing SRH processing for D* variants - */ -static_always_inline void -end_decaps_srh_processing (vlib_node_runtime_t * node, - vlib_buffer_t * b0, - ip6_header_t * ip0, - ip6_sr_header_t * sr0, - ip6_sr_localsid_t * ls0, u32 * next0) -{ - /* Compute the size of the IPv6 header with all Ext. headers */ - u8 next_proto; - ip6_ext_header_t *next_ext_header; - u16 total_size = 0; - - next_proto = ip0->protocol; - next_ext_header = (void *) (ip0 + 1); - total_size = sizeof (ip6_header_t); - while (ip6_ext_hdr (next_proto)) - { - total_size += ip6_ext_header_len (next_ext_header); - next_proto = next_ext_header->next_hdr; - next_ext_header = ip6_ext_next_header (next_ext_header); - } - vlib_buffer_advance (b0, total_size); - return; -} - -/* - * @brief SRv6 Sample Localsid graph node - * WARNING: YOU MUST DO THE DUAL LOOP - */ -static uword -srv6_gtp_fn (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) -{ - u32 n_left_from, * from, * to_next; - u32 next_index; - - ip6_sr_main_t * sm = &sr_main; - - from = vlib_frame_vector_args (frame); - n_left_from = frame->n_vectors; - next_index = node->cached_next_index; - u32 thread_index = vlib_get_thread_index (); - - while (n_left_from > 0) - { - u32 n_left_to_next; - - vlib_get_next_frame (vm, node, next_index, - to_next, n_left_to_next); - - while (n_left_from > 0 && n_left_to_next > 0) - { - u32 bi0; - vlib_buffer_t * b0; - ip6_header_t * ip0 = 0; - ip4_header_t *ip4 = 0; - ip6_sr_header_t * sr0; - ip6_ext_header_t *prev0; - u32 next0 = SRV6_GTP_NEXT_IP4LOOKUP; - ip6_sr_localsid_t *ls0; - srv6_gtp_per_sid_memory_t *ls0_mem; - u32 teid = 0; - u32 sum0 = 0; - u32 new_l0 = 0; - - bi0 = from[0]; - to_next[0] = bi0; - from += 1; - to_next += 1; - n_left_from -= 1; - n_left_to_next -= 1; - - b0 = vlib_get_buffer (vm, bi0); - ip0 = vlib_buffer_get_current (b0); - sr0 = (ip6_sr_header_t *)(ip0+1); - teid = ip0->dst_address.as_u32[3]; - - /* Lookup the SR End behavior based on IP DA (adj) */ - ls0 = pool_elt_at_index (sm->localsids, vnet_buffer(b0)->ip.adj_index[VLIB_TX]); - ls0_mem = ls0->plugin_mem; - - /* SRH processing */ - ip6_ext_header_find_t (ip0, prev0, sr0, IP_PROTOCOL_IPV6_ROUTE); - end_decaps_srh_processing (node, b0, ip0, sr0, ls0, &next0); - ip0 = vlib_buffer_get_current (b0); - - /* Push GTP header */ - ASSERT (b0->current_data + VLIB_BUFFER_PRE_DATA_SIZE >= vec_len (ls0_mem->rewrite)); - clib_memcpy (((u8 *) ip0) - vec_len (ls0_mem->rewrite), ls0_mem->rewrite, vec_len (ls0_mem->rewrite)); - vlib_buffer_advance (b0, -(word) vec_len (ls0_mem->rewrite)); - - ip4_gtpu_header_t *hdr = vlib_buffer_get_current (b0); - ip4 = &hdr->ip4; - udp_header_t *udp = &hdr->udp; - gtpu_header_t *gtpu = &hdr->gtpu; - gtpu->teid = teid; - - u16 old_l0 = 0; - sum0 = ip4->checksum; - new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain (vm, b0)); - sum0 = ip_csum_update (sum0, old_l0, new_l0, ip4_header_t, length); - ip4->checksum = ip_csum_fold (sum0); - ip4->length = new_l0; - - new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain(vm, b0) - sizeof (*ip4)); - udp->length = new_l0; - new_l0 = clib_host_to_net_u16 (vlib_buffer_length_in_chain(vm, b0) - sizeof (*ip4) - sizeof(*udp)); - gtpu->length = new_l0; - - /* Set Next frame to IP4 lookup */ - next0 = SRV6_GTP_NEXT_IP4LOOKUP; - - if (PREDICT_FALSE(b0->flags & VLIB_BUFFER_IS_TRACED)) - { - srv6_gtp_trace_t *tr = vlib_add_trace (vm, node, b0, sizeof (*tr)); - tr->localsid_index = ls0 - sm->localsids; - } - - /* This increments the SRv6 per LocalSID counters.*/ - vlib_increment_combined_counter - (((next0 == SRV6_GTP_NEXT_ERROR) ? &(sm->sr_ls_invalid_counters) : &(sm->sr_ls_valid_counters)), - thread_index, - ls0 - sm->localsids, - 1, vlib_buffer_length_in_chain (vm, b0)); - - vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, - n_left_to_next, bi0, next0); - } - vlib_put_next_frame (vm, node, next_index, n_left_to_next); - } - return frame->n_vectors; -} - -VLIB_REGISTER_NODE (srv6_gtp_node) = { - .function = srv6_gtp_fn, - .name = "srv6-gtp", - .vector_size = sizeof (u32), - .format_trace = format_srv6_gtp_trace, - .type = VLIB_NODE_TYPE_INTERNAL, - .n_errors = SRV6_LOCALSID_N_COUNTERS, - .error_strings = srv6_localsid_counter_strings, - .n_next_nodes = 2, - .next_nodes = { - [SRV6_GTP_NEXT_IP4LOOKUP] = "ip4-lookup", - [SRV6_GTP_NEXT_ERROR] = "error-drop", - }, -}; diff --git a/src/plugins/srv6-gtp/srv6_gtp.c b/src/plugins/srv6-gtp/srv6_gtp.c deleted file mode 100755 index e4a992f68fab..000000000000 --- a/src/plugins/srv6-gtp/srv6_gtp.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 2015 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* - *------------------------------------------------------------------ - * srv6_gtp.c - SRv6 LocalSID doing SRv6->GTP translation - *------------------------------------------------------------------ - */ - -#include -#include -#include -#include -#include -#include - -unsigned char srv6_localsid_name[32] = "SRv6 to GTP"; -unsigned char keyword_str[32] = "end.gtp"; -unsigned char def_str[64] = "This SRv6 localSID maps SRv6 traffic into a GTP tunnel"; -unsigned char params_str[32] = "sa da "; -u8 prefix_length = 96; //4B will be Arguments. Size used in FIB entry - -/*****************************************/ -/* SRv6 LocalSID instantiation and removal functions */ -static int -srv6_localsid_creation_fn (ip6_sr_localsid_t *localsid) -{ - /* - * Do you want to do anything fancy upon localsid instantiation? - * You can do it here - * (If return != 0 the localsid creation will be cancelled.) - */ - /* As an example Im going to do a +1 to the fib table inserted by the user */ - srv6_gtp_per_sid_memory_t *ls_mem = (void*)localsid->plugin_mem; - //Prepare rewrite string - - vec_validate_aligned (ls_mem->rewrite, sizeof(ip4_gtpu_header_t)-1, CLIB_CACHE_LINE_BYTES); - - ip4_gtpu_header_t *hdr = (void *)ls_mem->rewrite; - ip4_header_t *ip = &hdr->ip4; - udp_header_t *udp = &hdr->udp; - gtpu_header_t *gtpu = &hdr->gtpu; - - ip->ip_version_and_header_length = 0x45; - ip->ttl = 64; - ip->protocol = IP_PROTOCOL_UDP; - ip->src_address = ls_mem->src_addr; - ip->dst_address = ls_mem->dst_addr; - ip->checksum = ip4_header_checksum (ip); - - udp->src_port = clib_host_to_net_u16 (2152); - udp->dst_port = clib_host_to_net_u16 (UDP_DST_PORT_GTPU); - - gtpu->ver_flags = GTPU_V1_VER | GTPU_PT_GTP; - gtpu->type = GTPU_TYPE_GTPU; - return 0; -} - -static int -srv6_localsid_removal_fn (ip6_sr_localsid_t *localsid) -{ - /* Do you want to do anything fancy upon localsid removal? - * You can do it here - * (If return != 0 the localsid removal will be cancelled.) - */ - /* - * BTW if you stored something in localsid->plugin_mem you should clean it now - */ - clib_mem_free(((srv6_gtp_per_sid_memory_t *)localsid->plugin_mem)->rewrite); - //In this example we are only cleaning the memory allocated per localsid - clib_mem_free(localsid->plugin_mem); - return 0; -} - -/**********************************/ -/* SRv6 LocalSID format functions */ -/* - * Prints nicely the parameters of a localsid - * Example: print "Table 5" - */ -u8 * -format_srv6_gtp (u8 * s, va_list * args) -{ - srv6_gtp_per_sid_memory_t *ls_mem = va_arg (*args, void *); - s = format (s, "IPv4 SA: %U\n", format_ip4_address, &ls_mem->src_addr); - s = format (s, "IPv4 DA: %U", format_ip4_address, &ls_mem->dst_addr); - return s; -} - -/* - * Process the parameters of a localsid - * Example: process from: - * sr localsid address cafe::1 behavior new_srv6_localsid 5 - * everything from behavior on... so in this case 'new_srv6_localsid 5' - * Notice that it MUST match the keyword_str and params_str defined above. - */ -//"sa da teid "; -uword -unformat_srv6_gtp (unformat_input_t * input, va_list * args) -{ - void **plugin_mem = va_arg (*args, void **); - srv6_gtp_per_sid_memory_t *ls_mem; - ip4_address_t sa, da; - char sa_set, da_set; - sa_set = da_set = 0; - - if (!unformat (input, "end.gtp")) - return 0; - - while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) - { - if (!sa_set && unformat (input, "src %U", unformat_ip4_address, &sa)) - sa_set = 1; - - if (!da_set && unformat (input, "dst %U", unformat_ip4_address, &da)) - da_set = 1; - else - break; - } - - if(sa_set && da_set) - { - /* Allocate a portion of memory */ - ls_mem = clib_mem_alloc_aligned_at_offset (sizeof(srv6_gtp_per_sid_memory_t), 0, 0, 1); - - /* Set to zero the memory */ - memset (ls_mem, 0, sizeof(srv6_gtp_per_sid_memory_t)); - - /* Our brand-new car is ready */ - ls_mem->src_addr = sa; - ls_mem->dst_addr = da; - - /* Dont forget to add it to the localsid */ - *plugin_mem = ls_mem; - return 1; - } - return 0; -} - -/*************************/ -/* SRv6 LocalSID FIB DPO */ -static u8 * -format_srv6_gtp_dpo (u8 * s, va_list * args) -{ - index_t index = va_arg (*args, index_t); - CLIB_UNUSED (u32 indent) = va_arg (*args, u32); - - return (format (s, "SR: srv6-to-gtp:[%u]", index)); -} - -void -srv6_gtp_dpo_lock (dpo_id_t * dpo) -{ -} - -void -srv6_gtp_dpo_unlock (dpo_id_t * dpo) -{ -} - -const static dpo_vft_t srv6_gtp_vft = { - .dv_lock = srv6_gtp_dpo_lock, - .dv_unlock = srv6_gtp_dpo_unlock, - .dv_format = format_srv6_gtp_dpo, -}; - -const static char *const srv6_gtp_ip6_nodes[] = { - "srv6-gtp", - NULL, -}; - -const static char *const *const srv6_gtp_nodes[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = srv6_gtp_ip6_nodes, -}; - -/**********************/ -static clib_error_t * srv6_gtp_init (vlib_main_t * vm) -{ - srv6_gtp_main_t * sm = &srv6_gtp_main; - int rv = 0; - /* Create DPO */ - sm->srv6_gtp_dpo_type = dpo_register_new_type ( - &srv6_gtp_vft, srv6_gtp_nodes); - - /* Register SRv6 LocalSID */ - rv = sr_localsid_register_function (vm, - srv6_localsid_name, - keyword_str, - def_str, - params_str, - prefix_length, - &sm->srv6_gtp_dpo_type, - format_srv6_gtp, - unformat_srv6_gtp, - srv6_localsid_creation_fn, - srv6_localsid_removal_fn); - if (rv < 0) - clib_error_return (0, "SRv6 LocalSID function could not be registered."); - else - sm->srv6_localsid_behavior_id = rv; - - return 0; -} - -VLIB_INIT_FUNCTION (srv6_gtp_init); - -VLIB_PLUGIN_REGISTER () = { - .version = VPP_BUILD_VER, - .description = "SRv6-to-GTP", -}; diff --git a/src/plugins/srv6-gtp/srv6_gtp.h b/src/plugins/srv6-gtp/srv6_gtp.h deleted file mode 100644 index ce183b46a336..000000000000 --- a/src/plugins/srv6-gtp/srv6_gtp.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2015 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef __included_srv6_gtp_h__ -#define __included_srv6_gtp_h__ - -#include -#include -#include -#include -#include - -#include -#include -#include - - -typedef struct { - /* API message ID base */ - u16 msg_id_base; - - /* convenience */ - vlib_main_t * vlib_main; - vnet_main_t * vnet_main; - - /* DPO type */ - dpo_type_t srv6_gtp_dpo_type; - - /* SRv6 LocalSID behavior number */ - u32 srv6_localsid_behavior_id; -} srv6_gtp_main_t; - -/* - * This is the memory that will be stored per each localsid - * the user instantiates - */ -typedef struct { - ip4_address_t src_addr; - ip4_address_t dst_addr; - u8 *rewrite; -} srv6_gtp_per_sid_memory_t ; - -srv6_gtp_main_t srv6_gtp_main; - -format_function_t format_srv6_gtp; -unformat_function_t unformat_srv6_gtp; - -void srv6_gtp_dpo_lock (dpo_id_t * dpo); -void srv6_gtp_dpo_unlock (dpo_id_t * dpo); - -extern vlib_node_registration_t srv6_gtp_node; - -#endif /* __included_srv6_gtp_h__ */ diff --git a/src/plugins/srv6_gtp.am b/src/plugins/srv6_gtp.am deleted file mode 100644 index 89aef14b2ba8..000000000000 --- a/src/plugins/srv6_gtp.am +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -vppplugins_LTLIBRARIES += srv6gtp_plugin.la - -srv6gtp_plugin_la_SOURCES = \ - srv6-gtp/srv6_gtp.c \ - srv6-gtp/node.c - -noinst_HEADERS += srv6-gtp/srv6_gtp.h - -# vi:syntax=automake From 207a57407f6076172e9e61e938a529bbf1f82ad3 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Wed, 19 Jun 2019 10:36:44 +0900 Subject: [PATCH 062/154] to be ready for IETF105 hackathon. --- extras/{ietf104 => ietf105}/Dockerfile.j2 | 0 extras/{ietf104 => ietf105}/README.md | 0 extras/{ietf104 => ietf105}/requirements.txt | 0 extras/{ietf104 => ietf105}/runner.py | 2 +- extras/{ietf104 => ietf105}/startup.conf.j2 | 0 5 files changed, 1 insertion(+), 1 deletion(-) rename extras/{ietf104 => ietf105}/Dockerfile.j2 (100%) rename extras/{ietf104 => ietf105}/README.md (100%) rename extras/{ietf104 => ietf105}/requirements.txt (100%) rename extras/{ietf104 => ietf105}/runner.py (99%) rename extras/{ietf104 => ietf105}/startup.conf.j2 (100%) diff --git a/extras/ietf104/Dockerfile.j2 b/extras/ietf105/Dockerfile.j2 similarity index 100% rename from extras/ietf104/Dockerfile.j2 rename to extras/ietf105/Dockerfile.j2 diff --git a/extras/ietf104/README.md b/extras/ietf105/README.md similarity index 100% rename from extras/ietf104/README.md rename to extras/ietf105/README.md diff --git a/extras/ietf104/requirements.txt b/extras/ietf105/requirements.txt similarity index 100% rename from extras/ietf104/requirements.txt rename to extras/ietf105/requirements.txt diff --git a/extras/ietf104/runner.py b/extras/ietf105/runner.py similarity index 99% rename from extras/ietf104/runner.py rename to extras/ietf105/runner.py index c2394ea2e5b0..dbcf97523f01 100755 --- a/extras/ietf104/runner.py +++ b/extras/ietf105/runner.py @@ -274,7 +274,7 @@ def get(self, name): class Program(object): - image = "ietf104-image" + image = "ietf105-image" name_prefix = "hck" diff --git a/extras/ietf104/startup.conf.j2 b/extras/ietf105/startup.conf.j2 similarity index 100% rename from extras/ietf104/startup.conf.j2 rename to extras/ietf105/startup.conf.j2 From 9869332cc69ce2b4b76082b456c11c7f67fc5c26 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Wed, 19 Jun 2019 10:49:25 +0900 Subject: [PATCH 063/154] rename the plugin name to srv6-mobile. --- src/plugins/{srv6-end => srv6-mobile}/CMakeLists.txt | 0 src/plugins/{srv6-end => srv6-mobile}/node.c | 2 +- src/plugins/{srv6-end => srv6-mobile}/srv6_end.c | 2 +- src/plugins/{srv6-end => srv6-mobile}/srv6_end.h | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename src/plugins/{srv6-end => srv6-mobile}/CMakeLists.txt (100%) rename src/plugins/{srv6-end => srv6-mobile}/node.c (99%) rename src/plugins/{srv6-end => srv6-mobile}/srv6_end.c (99%) rename src/plugins/{srv6-end => srv6-mobile}/srv6_end.h (100%) diff --git a/src/plugins/srv6-end/CMakeLists.txt b/src/plugins/srv6-mobile/CMakeLists.txt similarity index 100% rename from src/plugins/srv6-end/CMakeLists.txt rename to src/plugins/srv6-mobile/CMakeLists.txt diff --git a/src/plugins/srv6-end/node.c b/src/plugins/srv6-mobile/node.c similarity index 99% rename from src/plugins/srv6-end/node.c rename to src/plugins/srv6-mobile/node.c index 159395690ab1..6112075bc757 100644 --- a/src/plugins/srv6-end/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include typedef struct { ip6_address_t src, dst; diff --git a/src/plugins/srv6-end/srv6_end.c b/src/plugins/srv6-mobile/srv6_end.c similarity index 99% rename from src/plugins/srv6-end/srv6_end.c rename to src/plugins/srv6-mobile/srv6_end.c index 95c5dad4bc20..16e3067e9907 100644 --- a/src/plugins/srv6-end/srv6_end.c +++ b/src/plugins/srv6-mobile/srv6_end.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include srv6_end_main_t srv6_end_main; diff --git a/src/plugins/srv6-end/srv6_end.h b/src/plugins/srv6-mobile/srv6_end.h similarity index 100% rename from src/plugins/srv6-end/srv6_end.h rename to src/plugins/srv6-mobile/srv6_end.h From 1a4f99298808a071486304123ef16ea2b6de596b Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 18 Jun 2019 23:16:58 -0700 Subject: [PATCH 064/154] add gtp6.e/d and fix the issue on gtp4.e --- extras/ietf105/runner.py | 83 +++++- src/plugins/srv6-mobile/CMakeLists.txt | 8 +- .../srv6-mobile/{srv6_end.c => gtp4_e.c} | 16 +- src/plugins/srv6-mobile/gtp6_d.c | 145 +++++++++ src/plugins/srv6-mobile/gtp6_e.c | 164 +++++++++++ .../srv6-mobile/{srv6_end.h => mobile.h} | 36 ++- src/plugins/srv6-mobile/node.c | 277 +++++++++++++++++- src/vnet/srv6/sr.h | 9 + 8 files changed, 708 insertions(+), 30 deletions(-) rename src/plugins/srv6-mobile/{srv6_end.c => gtp4_e.c} (92%) create mode 100644 src/plugins/srv6-mobile/gtp6_d.c create mode 100644 src/plugins/srv6-mobile/gtp6_e.c rename src/plugins/srv6-mobile/{srv6_end.h => mobile.h} (64%) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index dbcf97523f01..b5c66aa6c27d 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -134,6 +134,7 @@ def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): self.vppctl_exec("set ip6 neighbor pg0 {} {}".format(remote_ip, remote_mac)) self.vppctl_exec("set int state pg0 up") + def pg_create_interface4(self, local_ip, remote_ip, local_mac, remote_mac): # remote_ip can't have subnet mask @@ -145,6 +146,17 @@ def pg_create_interface4(self, local_ip, remote_ip, local_mac, remote_mac): remote_mac)) self.vppctl_exec("set int state pg0 up") + def pg_create_interface6(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip6 addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip6 arp pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") + def pg_enable(self): # start packet generator self.vppctl_exec("packet-generator enable") @@ -171,6 +183,10 @@ def set_ip_pgroute(self, out_if_name, next_hop_ip, subnet): self.vppctl_exec("ip route add {} via {} {}".format( subnet, out_if_name, next_hop_ip)) + def set_ipv6_pgroute(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via {} {}".format( + subnet, out_if_name, next_hop_ip)) + def set_ipv6_default_route(self, out_if_name, next_hop_ip): self.vppctl_exec("ip route add ::/0 via host-{} {}".format( out_if_name, next_hop_ip)) @@ -503,7 +519,6 @@ def test_tmap(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") -# c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr-prefix D4::/32 local-prefix C1::/64") c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") @@ -545,6 +560,68 @@ def test_tmap(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface6(local_ip="2001::1/64", remote_ip="2001::2/64", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface6(local_ip="3001::2/64", remote_ip="3001::1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: sr_prefix D4::/32 local_prefix C1::/64") + c1.vppctl_exec("sr steer l3 4001::1/128 via bsid D1::") + c1.vppctl_exec("sr localsid address D1:: behavior end.m.gtp6.d") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid address D4:: behavior end.m.gtp4.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ipv6_pgroute("pg0", "3001::1", "4001::1/128") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="4001::2", dst="4001::1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def status_containers(self): print("Instances:") @@ -615,7 +692,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap"]) + "ping", "srv6", "tmap", "gtp6"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -651,6 +728,8 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.test_srv6() elif op == 'tmap': program.test_tmap() + elif op == 'gtp6': + program.test_gtp6() except Exception: program.logger.exception("") diff --git a/src/plugins/srv6-mobile/CMakeLists.txt b/src/plugins/srv6-mobile/CMakeLists.txt index 6e7fc2612f50..224f21a9db50 100644 --- a/src/plugins/srv6-mobile/CMakeLists.txt +++ b/src/plugins/srv6-mobile/CMakeLists.txt @@ -11,11 +11,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -add_vpp_plugin(srv6end +add_vpp_plugin(srv6mobile SOURCES - srv6_end.c + gtp4_e.c + gtp6_e.c + gtp6_d.c node.c INSTALL_HEADERS - srv6_end.h + mobile.h ) diff --git a/src/plugins/srv6-mobile/srv6_end.c b/src/plugins/srv6-mobile/gtp4_e.c similarity index 92% rename from src/plugins/srv6-mobile/srv6_end.c rename to src/plugins/srv6-mobile/gtp4_e.c index 16e3067e9907..78c91abf51af 100644 --- a/src/plugins/srv6-mobile/srv6_end.c +++ b/src/plugins/srv6-mobile/gtp4_e.c @@ -1,5 +1,5 @@ /* - * srv6_end.c + * srv6_end_m_gtp4_e.c * * Copyright (c) 2019 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,9 +19,9 @@ #include #include #include -#include +#include -srv6_end_main_t srv6_end_main; +srv6_end_main_v4_t srv6_end_main_v4; static void clb_dpo_lock_srv6_end_m_gtp4_e (dpo_id_t * dpo) @@ -90,9 +90,9 @@ clb_removal_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) } static clib_error_t * -srv6_end_init (vlib_main_t * vm) +srv6_end_m_gtp4_e_init (vlib_main_t * vm) { - srv6_end_main_t *sm = &srv6_end_main; + srv6_end_main_v4_t *sm = &srv6_end_main_v4; ip4_header_t *ip4 = &sm->cache_hdr.ip4; udp_header_t *udp = &sm->cache_hdr.udp; gtpu_header_t *gtpu = &sm->cache_hdr.gtpu; @@ -140,7 +140,7 @@ srv6_end_init (vlib_main_t * vm) clb_creation_srv6_end_m_gtp4_e, clb_removal_srv6_end_m_gtp4_e); if (rc < 0) - clib_error_return (0, "SRv6 Endpoint LocalSID function" + clib_error_return (0, "SRv6 Endpoint GTP4.E LocalSID function" "couldn't be registered"); return 0; } @@ -153,11 +153,11 @@ VNET_FEATURE_INIT (srv6_end_m_gtp4_e, static) = .runs_before = 0, }; -VLIB_INIT_FUNCTION (srv6_end_init); +VLIB_INIT_FUNCTION (srv6_end_m_gtp4_e_init); VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, - .description = "SRv6 Endpoint", + .description = "SRv6 GTP Endpoint Functions", }; /* *INDENT-ON* */ diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c new file mode 100644 index 000000000000..0fb6aa3b5164 --- /dev/null +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -0,0 +1,145 @@ +/* + * srv6_end_m_gtp6_d.c + * + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +srv6_end_main_v6_decap_t srv6_end_main_v6_decap; + +static void +clb_dpo_lock_srv6_end_m_gtp6_d (dpo_id_t * dpo) +{ +} + +static void +clb_dpo_unlock_srv6_end_m_gtp6_d (dpo_id_t * dpo) +{ +} + +static u8 * +clb_dpo_format_srv6_end_m_gtp6_d (u8 * s, va_list * args) +{ + index_t index = va_arg (*args, index_t); + CLIB_UNUSED (u32 indent) = va_arg (*args, u32); + + return (format (s, "SR: dynamic_proxy_index:[%u]", index)); +} + +const static dpo_vft_t dpo_vft = { + .dv_lock = clb_dpo_lock_srv6_end_m_gtp6_d, + .dv_unlock = clb_dpo_unlock_srv6_end_m_gtp6_d, + .dv_format = clb_dpo_format_srv6_end_m_gtp6_d, +}; + +const static char *const srv6_end_nodes[] = { + "srv6-end-m-gtp6-d", + NULL, +}; + +const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { + [DPO_PROTO_IP6] = srv6_end_nodes, +}; + +static u8 fn_name[] = "SRv6-End.M.GTP6.D-plugin"; +static u8 keyword_str[] = "end.m.gtp6.d"; +static u8 def_str[] = "Endpoint function with dencapsulation for IPv6/GTP tunnel"; +static u8 param_str[] = ""; + +static u8 * +clb_format_srv6_end_m_gtp6_d (u8 * s, va_list * args) +{ + s = format (s, "SRv6 End format function unsupported."); + return s; +} + +static uword +clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) +{ + if (!unformat (input, "end.m.gtp6.d")) + return 0; + return 1; +} + +static int +clb_creation_srv6_end_m_gtp6_d (ip6_sr_localsid_t * localsid) +{ + return 0; +} + +static int +clb_removal_srv6_end_m_gtp6_d (ip6_sr_localsid_t * localsid) +{ + return 0; +} + +static clib_error_t * +srv6_end_m_gtp6_d_init (vlib_main_t * vm) +{ + srv6_end_main_v6_decap_t *sm = &srv6_end_main_v6_decap; + dpo_type_t dpo_type; + vlib_node_t *node; + u32 rc; + + sm->vlib_main = vm; + sm->vnet_main = vnet_get_main (); + + node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp6-d"); + sm->end_m_gtp6_d_node_index = node->index; + + node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); + sm->error_node_index = node->index; + + dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); + + rc = sr_localsid_register_function (vm, + fn_name, + keyword_str, + def_str, + param_str, + 32, //prefix len + &dpo_type, + clb_format_srv6_end_m_gtp6_d, + clb_unformat_srv6_end_m_gtp6_d, + clb_creation_srv6_end_m_gtp6_d, + clb_removal_srv6_end_m_gtp6_d); + if (rc < 0) + clib_error_return (0, "SRv6 Endpoint GTP6.D LocalSID function" + "couldn't be registered"); + return 0; +} + +/* *INDENT-OFF* */ +VNET_FEATURE_INIT (srv6_end_m_gtp6_d, static) = +{ + .arc_name = "ip6-unicast", + .node_name = "srv6-end-m-gtp6-d", + .runs_before = 0, +}; + +VLIB_INIT_FUNCTION (srv6_end_m_gtp6_d_init); +/* *INDENT-ON* */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ diff --git a/src/plugins/srv6-mobile/gtp6_e.c b/src/plugins/srv6-mobile/gtp6_e.c new file mode 100644 index 000000000000..12ea34eefb01 --- /dev/null +++ b/src/plugins/srv6-mobile/gtp6_e.c @@ -0,0 +1,164 @@ +/* + * srv6_end_m_gtp6_e.c + * + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +srv6_end_main_v6_t srv6_end_main_v6; + +static void +clb_dpo_lock_srv6_end_m_gtp6_e (dpo_id_t * dpo) +{ +} + +static void +clb_dpo_unlock_srv6_end_m_gtp6_e (dpo_id_t * dpo) +{ +} + +static u8 * +clb_dpo_format_srv6_end_m_gtp6_e (u8 * s, va_list * args) +{ + index_t index = va_arg (*args, index_t); + CLIB_UNUSED (u32 indent) = va_arg (*args, u32); + + return (format (s, "SR: dynamic_proxy_index:[%u]", index)); +} + +const static dpo_vft_t dpo_vft = { + .dv_lock = clb_dpo_lock_srv6_end_m_gtp6_e, + .dv_unlock = clb_dpo_unlock_srv6_end_m_gtp6_e, + .dv_format = clb_dpo_format_srv6_end_m_gtp6_e, +}; + +const static char *const srv6_end_nodes[] = { + "srv6-end-m-gtp6-e", + NULL, +}; + +const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { + [DPO_PROTO_IP6] = srv6_end_nodes, +}; + +static u8 fn_name[] = "SRv6-End.M.GTP6.E-plugin"; +static u8 keyword_str[] = "end.m.gtp6.e"; +static u8 def_str[] = "Endpoint function with encapsulation for IPv6/GTP tunnel"; +static u8 param_str[] = ""; + +static u8 * +clb_format_srv6_end_m_gtp6_e (u8 * s, va_list * args) +{ + s = format (s, "SRv6 End format function unsupported."); + return s; +} + +static uword +clb_unformat_srv6_end_m_gtp6_e (unformat_input_t * input, va_list * args) +{ + if (!unformat (input, "end.m.gtp6.e")) + return 0; + return 1; +} + +static int +clb_creation_srv6_end_m_gtp6_e (ip6_sr_localsid_t * localsid) +{ + return 0; +} + +static int +clb_removal_srv6_end_m_gtp6_e (ip6_sr_localsid_t * localsid) +{ + return 0; +} + +static clib_error_t * +srv6_end_m_gtp6_e_init (vlib_main_t * vm) +{ + srv6_end_main_v6_t *sm = &srv6_end_main_v6; + ip6_header_t *ip6 = &sm->cache_hdr.ip6; + udp_header_t *udp = &sm->cache_hdr.udp; + gtpu_header_t *gtpu = &sm->cache_hdr.gtpu; + dpo_type_t dpo_type; + vlib_node_t *node; + u32 rc; + + sm->vlib_main = vm; + sm->vnet_main = vnet_get_main (); + + node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp6-e"); + sm->end_m_gtp6_e_node_index = node->index; + + node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); + sm->error_node_index = node->index; + + sm->dst_p_len = 32; + sm->src_p_len = 64; + + // clear the pre cached packet + clib_memset_u8 (ip6, 0, sizeof (ip4_gtpu_header_t)); + + // set defaults + ip6->ip_version_traffic_class_and_flow_label = 0x60; + ip6->protocol = IP_PROTOCOL_UDP; + ip6->hop_limit = 64; + + udp->dst_port = clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT); + + gtpu->ver_flags = GTPU_V1_VER | GTPU_PT_GTP; + gtpu->type = GTPU_TYPE_GTPU; + + dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); + + rc = sr_localsid_register_function (vm, + fn_name, + keyword_str, + def_str, + param_str, + 32, //prefix len + &dpo_type, + clb_format_srv6_end_m_gtp6_e, + clb_unformat_srv6_end_m_gtp6_e, + clb_creation_srv6_end_m_gtp6_e, + clb_removal_srv6_end_m_gtp6_e); + if (rc < 0) + clib_error_return (0, "SRv6 Endpoint GTP6.E LocalSID function" + "couldn't be registered"); + return 0; +} + +/* *INDENT-OFF* */ +VNET_FEATURE_INIT (srv6_end_m_gtp6_e, static) = +{ + .arc_name = "ip6-unicast", + .node_name = "srv6-end-m-gtp6-e", + .runs_before = 0, +}; + +VLIB_INIT_FUNCTION (srv6_end_m_gtp6_e_init); +/* *INDENT-ON* */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ diff --git a/src/plugins/srv6-mobile/srv6_end.h b/src/plugins/srv6-mobile/mobile.h similarity index 64% rename from src/plugins/srv6-mobile/srv6_end.h rename to src/plugins/srv6-mobile/mobile.h index d2d70df54f12..980f9fa74f0f 100644 --- a/src/plugins/srv6-mobile/srv6_end.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -29,7 +29,7 @@ #define SRV6_GTP_UDP_DST_PORT 2152 -typedef struct srv6_end_main_s +typedef struct srv6_end_main_v4_s { vlib_main_t *vlib_main; @@ -43,11 +43,41 @@ typedef struct srv6_end_main_s ip4_gtpu_header_t cache_hdr; -} srv6_end_main_t; +} srv6_end_main_v4_t; -extern srv6_end_main_t srv6_end_main; +extern srv6_end_main_v4_t srv6_end_main_v4; extern vlib_node_registration_t srv6_end_m_gtp4_e; +typedef struct srv6_end_main_v6_s +{ + vlib_main_t *vlib_main; + vnet_main_t *vnet_main; + + u32 end_m_gtp6_e_node_index; + u32 error_node_index; + + u32 dst_p_len; + u32 src_p_len; + + ip6_gtpu_header_t cache_hdr; +} srv6_end_main_v6_t; + +extern srv6_end_main_v6_t srv6_end_main_v6; +extern vlib_node_registration_t srv6_end_m_gtp6_e; + +typedef struct srv6_end_main_v6_decap_s +{ + vlib_main_t *vlib_main; + vnet_main_t *vnet_main; + + u32 end_m_gtp6_d_node_index; + u32 error_node_index; + +} srv6_end_main_v6_decap_t; + +extern srv6_end_main_v6_decap_t srv6_end_main_v6_decap; +extern vlib_node_registration_t srv6_end_m_gtp6_d; + #endif /* __included_srv6_end_h__ */ /* diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 6112075bc757..bf091d4975a4 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -15,7 +15,7 @@ #include #include #include -#include +#include typedef struct { ip6_address_t src, dst; @@ -42,22 +42,57 @@ typedef CLIB_PACKED(struct }) ip6srv_combo_header_t; /* *INDENT-ON* */ -#define foreach_srv6_end_error \ +#define foreach_srv6_end_v4_error \ _(M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") \ _(M_GTP4_E_BAD_PACKETS, "srv6 End.M.GTP4.E bad packets") +#define foreach_srv6_end_v6_e_error \ + _(M_GTP6_E_PACKETS, "srv6 End.M.GTP6.E packets") \ + _(M_GTP6_E_BAD_PACKETS, "srv6 End.M.GTP6.E bad packets") + +#define foreach_srv6_end_v6_d_error \ + _(M_GTP6_D_PACKETS, "srv6 End.M.GTP6.D packets") \ + _(M_GTP6_D_BAD_PACKETS, "srv6 End.M.GTP6.D bad packets") + +typedef enum +{ +#define _(sym,str) SRV6_END_ERROR_##sym, + foreach_srv6_end_v4_error +#undef _ + SRV6_END_N_V4_ERROR, +} srv6_end_error_v4_t; + +typedef enum +{ +#define _(sym,str) SRV6_END_ERROR_##sym, + foreach_srv6_end_v6_e_error +#undef _ + SRV6_END_N_V6_E_ERROR, +} srv6_end_error_v6_e_t; typedef enum { #define _(sym,str) SRV6_END_ERROR_##sym, - foreach_srv6_end_error + foreach_srv6_end_v6_d_error #undef _ - SRV6_END_N_ERROR, -} srv6_end_error_t; + SRV6_END_N_V6_D_ERROR, +} srv6_end_error_v6_d_t; -static char *srv6_end_error_strings[] = { +static char *srv6_end_error_v4_strings[] = { #define _(sym,string) string, - foreach_srv6_end_error + foreach_srv6_end_v4_error +#undef _ +}; + +static char *srv6_end_error_v6_e_strings[] = { +#define _(sym,string) string, + foreach_srv6_end_v6_e_error +#undef _ +}; + +static char *srv6_end_error_v6_d_strings[] = { +#define _(sym,string) string, + foreach_srv6_end_v6_d_error #undef _ }; @@ -68,11 +103,26 @@ typedef enum SRV6_END_M_GTP4_E_N_NEXT, } srv6_end_m_gtp4_e_next_t; +typedef enum +{ + SRV6_END_M_GTP6_E_NEXT_DROP, + SRV6_END_M_GTP6_E_NEXT_LOOKUP, + SRV6_END_M_GTP6_E_N_NEXT, +} srv6_end_m_gtp6_e_next_t; + +typedef enum +{ + SRV6_END_M_GTP6_D_NEXT_DROP, + SRV6_END_M_GTP6_D_NEXT_LOOKUP, + SRV6_END_M_GTP6_D_N_NEXT, +} srv6_end_m_gtp6_d_next_t; + +// Function for SRv6 GTP4.E function. VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) { - srv6_end_main_t *sm = &srv6_end_main; + srv6_end_main_v4_t *sm = &srv6_end_main_v4; ip6_sr_main_t *sm2 = &sr_main; u32 n_left_from, next_index, *from, *to_next; u32 thread_index = vm->thread_index; @@ -116,14 +166,16 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, ls0 = pool_elt_at_index (sm2->localsids, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); - // ip6srv0 = vlib_buffer_get_current (b0); src0 = ip6srv0->ip.src_address; dst0 = ip6srv0->ip.dst_address; len0 = vlib_buffer_length_in_chain (vm, b0); - if (len0 < sizeof (ip6srv_combo_header_t) + ip6srv0->sr.length) + + if ((ip6srv0->ip.protocol == IPPROTO_IPV6_ROUTE + && ip6srv0->sr.segments_left != 1) + || (len0 < sizeof (ip6_header_t))) { next0 = SRV6_END_M_GTP4_E_NEXT_DROP; @@ -138,10 +190,19 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, // jump over variable length data // not sure about the length - vlib_buffer_advance (b0, (word) sizeof (ip6srv_combo_header_t) + - ip6srv0->sr.length * 8); + if (ip6srv0->ip.protocol == IPPROTO_IPV6_ROUTE) + { + vlib_buffer_advance (b0, (word) sizeof (ip6srv_combo_header_t) + + ip6srv0->sr.length * 8); + } + else + { + vlib_buffer_advance (b0, (word) sizeof (ip6_header_t)); + } + // get length of encapsulated IPv6 packet (the remaining part) len0 = vlib_buffer_length_in_chain (vm, b0); + // jump back to data[0] or pre_data if required vlib_buffer_advance (b0, -(word) sizeof (ip4_gtpu_header_t)); @@ -214,8 +275,8 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { .format_trace = format_srv6_end_rewrite_trace, .type = VLIB_NODE_TYPE_INTERNAL, - .n_errors = ARRAY_LEN (srv6_end_error_strings), - .error_strings = srv6_end_error_strings, + .n_errors = ARRAY_LEN (srv6_end_error_v4_strings), + .error_strings = srv6_end_error_v4_strings, .n_next_nodes = SRV6_END_M_GTP4_E_N_NEXT, .next_nodes = { @@ -224,6 +285,194 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { }, }; +// Function for SRv6 GTP6.E function +VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) +{ + srv6_end_main_v6_t *sm = &srv6_end_main_v6; + ip6_sr_main_t *sm2 = &sr_main; + u32 n_left_from, next_index, *from, *to_next; + u32 thread_index = vm->thread_index; + + u32 good_n = 0, bad_n = 0; + + from = vlib_frame_vector_args (frame); + n_left_from = frame->n_vectors; + next_index = node->cached_next_index; + + while (n_left_from > 0) + { + u32 n_left_to_next; + + vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next); + + while (n_left_from > 0 && n_left_to_next > 0) + { + u32 bi0; + vlib_buffer_t *b0; + ip6_sr_localsid_t *ls0; + + ip6srv_combo_header_t *ip6srv0; + ip6_address_t src0, dst0; + + ip6_gtpu_header_t *hdr0 = NULL; + uword len0; + + u32 next0 = SRV6_END_M_GTP6_E_NEXT_LOOKUP; + + // defaults + bi0 = from[0]; + to_next[0] = bi0; + from += 1; + to_next += 1; + n_left_from -= 1; + n_left_to_next -= 1; + + b0 = vlib_get_buffer (vm, bi0); + ls0 = + pool_elt_at_index (sm2->localsids, + vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + + ip6srv0 = vlib_buffer_get_current (b0); + src0 = ip6srv0->ip.src_address; + dst0 = ip6srv0->ip.dst_address; + + len0 = vlib_buffer_length_in_chain (vm, b0); + if ((ip6srv0->ip.protocol != IPPROTO_IPV6_ROUTE) + || (ip6srv0->sr.segments_left != 1) + || (len0 < sizeof (ip6srv_combo_header_t) + 8 * ip6srv0->sr.length)) + { + next0 = SRV6_END_M_GTP6_E_NEXT_DROP; + + bad_n++; + } + else + { + // we need to be sure there is enough space before + // ip6srv0 header, there is some extra space + // in the pre_data area for this kind of + // logic + + // jump over variable length data + // not sure about the length + vlib_buffer_advance (b0, (word) sizeof (ip6srv_combo_header_t) + + ip6srv0->sr.length * 8); + + // get length of encapsulated IPv6 packet (the remaining part) + len0 = vlib_buffer_length_in_chain (vm, b0); + + // jump back to data[0] or pre_data if required + vlib_buffer_advance (b0, -(word) sizeof (ip6_gtpu_header_t)); + + hdr0 = vlib_buffer_get_current (b0); + + clib_memcpy (hdr0, &sm->cache_hdr, sizeof (ip6_gtpu_header_t)); + + u32 teid; + u8 *teid8p = (u8 *)&teid; + teid8p[0] = dst0.as_u8[12]; + teid8p[1] = dst0.as_u8[13]; + teid8p[2] = dst0.as_u8[14]; + teid8p[3] = dst0.as_u8[15]; + hdr0->gtpu.teid = teid; + hdr0->gtpu.length = clib_host_to_net_u16 (len0); + + hdr0->udp.src_port = src0.as_u16[6]; + hdr0->udp.length = clib_host_to_net_u16 (len0 + + sizeof (udp_header_t) + sizeof (gtpu_header_t)); + + clib_memcpy (hdr0->ip6.src_address.as_u8, dst0.as_u8, + sizeof(ip6_address_t)); + clib_memcpy (hdr0->ip6.dst_address.as_u8, &ip6srv0->sr.segments[0], + sizeof(ip6_address_t)); + + hdr0->ip6.payload_length = clib_host_to_net_u16 (len0 + + sizeof (udp_header_t) + sizeof(gtpu_header_t)); + + // UDP source port (XXX) + + good_n++; + } + + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, hdr0->ip6.src_address.as_u8, + sizeof (ip6_address_t)); + clib_memcpy (tr->dst.as_u8, hdr0->ip6.dst_address.as_u8, + sizeof (ip6_address_t)); + tr->teid = hdr0->gtpu.teid; + } + + vlib_increment_combined_counter + (((next0 == + SRV6_END_M_GTP6_E_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : + &(sm2->sr_ls_valid_counters)), thread_index, ls0 - sm2->localsids, + 1, vlib_buffer_length_in_chain (vm, b0)); + + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, + n_left_to_next, bi0, next0); + } + + vlib_put_next_frame (vm, node, next_index, n_left_to_next); + } + + vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + SRV6_END_ERROR_M_GTP6_E_BAD_PACKETS, + bad_n); + + vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + SRV6_END_ERROR_M_GTP6_E_PACKETS, + good_n); + + return frame->n_vectors; +} + +// Function for SRv6 GTP6.D function +VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) +{ + // XXX + + return frame->n_vectors; +} + +VLIB_REGISTER_NODE (srv6_end_m_gtp6_e) = { + .name = "srv6-end-m-gtp6-e", + .vector_size = sizeof (u32), + .format_trace = format_srv6_end_rewrite_trace, + .type = VLIB_NODE_TYPE_INTERNAL, + + .n_errors = ARRAY_LEN (srv6_end_error_v6_e_strings), + .error_strings = srv6_end_error_v6_e_strings, + + .n_next_nodes = SRV6_END_M_GTP6_E_N_NEXT, + .next_nodes = { + [SRV6_END_M_GTP6_E_NEXT_DROP] = "error-drop", + [SRV6_END_M_GTP6_E_NEXT_LOOKUP] = "ip6-lookup", + }, +}; + +VLIB_REGISTER_NODE (srv6_end_m_gtp6_d) = { + .name = "srv6-end-m-gtp6-d", + .vector_size = sizeof (u32), + .format_trace = format_srv6_end_rewrite_trace, + .type = VLIB_NODE_TYPE_INTERNAL, + + .n_errors = ARRAY_LEN (srv6_end_error_v6_d_strings), + .error_strings = srv6_end_error_v6_d_strings, + + .n_next_nodes = SRV6_END_M_GTP6_D_N_NEXT, + .next_nodes = { + [SRV6_END_M_GTP6_D_NEXT_DROP] = "error-drop", + [SRV6_END_M_GTP6_D_NEXT_LOOKUP] = "ip6-lookup", + }, +}; + /* * fd.io coding-style-patch-verification: ON * diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 44bc8da4b260..fc2a263e6fc6 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -71,6 +71,15 @@ typedef struct } __attribute__ ((packed)) ip4_gtpu_header_t; /* *INDENT-ON* */ +/* *INDENT-OFF* */ +typedef struct +{ + ip6_header_t ip6; /* 40 bytes */ + udp_header_t udp; /* 8 bytes */ + gtpu_header_t gtpu; /* 8 bytes */ +} __attribute__ ((packed)) ip6_gtpu_header_t; +/* *INDENT-ON* */ + #define GTPU_V1_VER (1<<5) #define GTPU_PT_GTP (1<<4) From 04af781b17015a50f6a755e6bb9b84955e6f38b4 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 19 Jun 2019 08:07:29 -0700 Subject: [PATCH 065/154] fix length check --- src/plugins/srv6-mobile/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index bf091d4975a4..335859a6d008 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -174,7 +174,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, len0 = vlib_buffer_length_in_chain (vm, b0); if ((ip6srv0->ip.protocol == IPPROTO_IPV6_ROUTE - && ip6srv0->sr.segments_left != 1) + && (ip6srv0->sr.segments_left != 1 || len0 < sizeof(ip6srv_combo_header_t) + ip6srv0->sr.length *8)) || (len0 < sizeof (ip6_header_t))) { next0 = SRV6_END_M_GTP4_E_NEXT_DROP; From cfc9f097a6a571989152086aa5f1869f65b1b55d Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 19 Jun 2019 15:36:04 -0700 Subject: [PATCH 066/154] add gtp6.e/d function and fix the issue on gtp4.e --- src/plugins/srv6-mobile/gtp4_e.c | 4 +-- src/plugins/srv6-mobile/gtp6_d.c | 4 +-- src/plugins/srv6-mobile/gtp6_e.c | 4 +-- src/plugins/srv6-mobile/node.c | 48 ++++++++++++++++---------------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp4_e.c b/src/plugins/srv6-mobile/gtp4_e.c index 78c91abf51af..58c430d4c32d 100644 --- a/src/plugins/srv6-mobile/gtp4_e.c +++ b/src/plugins/srv6-mobile/gtp4_e.c @@ -48,13 +48,13 @@ const static dpo_vft_t dpo_vft = { .dv_format = clb_dpo_format_srv6_end_m_gtp4_e, }; -const static char *const srv6_end_nodes[] = { +const static char *const srv6_end_m_gtp4_e_nodes[] = { "srv6-end-m-gtp4-e", NULL, }; const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = srv6_end_nodes, + [DPO_PROTO_IP6] = srv6_end_m_gtp4_e_nodes, }; static u8 fn_name[] = "SRv6-End.M.GTP4.E-plugin"; diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 0fb6aa3b5164..eef7bd286b25 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -48,13 +48,13 @@ const static dpo_vft_t dpo_vft = { .dv_format = clb_dpo_format_srv6_end_m_gtp6_d, }; -const static char *const srv6_end_nodes[] = { +const static char *const srv6_end_m_gtp6_d_nodes[] = { "srv6-end-m-gtp6-d", NULL, }; const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = srv6_end_nodes, + [DPO_PROTO_IP6] = srv6_end_m_gtp6_d_nodes, }; static u8 fn_name[] = "SRv6-End.M.GTP6.D-plugin"; diff --git a/src/plugins/srv6-mobile/gtp6_e.c b/src/plugins/srv6-mobile/gtp6_e.c index 12ea34eefb01..078bab80fdda 100644 --- a/src/plugins/srv6-mobile/gtp6_e.c +++ b/src/plugins/srv6-mobile/gtp6_e.c @@ -48,13 +48,13 @@ const static dpo_vft_t dpo_vft = { .dv_format = clb_dpo_format_srv6_end_m_gtp6_e, }; -const static char *const srv6_end_nodes[] = { +const static char *const srv6_end_m_gtp6_e_nodes[] = { "srv6-end-m-gtp6-e", NULL, }; const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = srv6_end_nodes, + [DPO_PROTO_IP6] = srv6_end_m_gtp6_e_nodes, }; static u8 fn_name[] = "SRv6-End.M.GTP6.E-plugin"; diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 335859a6d008..07c7db8b9443 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -174,7 +174,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, len0 = vlib_buffer_length_in_chain (vm, b0); if ((ip6srv0->ip.protocol == IPPROTO_IPV6_ROUTE - && (ip6srv0->sr.segments_left != 1 || len0 < sizeof(ip6srv_combo_header_t) + ip6srv0->sr.length *8)) + && len0 < sizeof(ip6srv_combo_header_t) + ip6srv0->sr.length * 8) || (len0 < sizeof (ip6_header_t))) { next0 = SRV6_END_M_GTP4_E_NEXT_DROP; @@ -231,18 +231,18 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->ip4.checksum = ip4_header_checksum (&hdr0->ip4); good_n++; - } - if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && - PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) - { - srv6_end_rewrite_trace_t *tr = - vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, hdr0->ip4.src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, hdr0->ip4.dst_address.as_u8, - sizeof (tr->dst.as_u8)); - tr->teid = hdr0->gtpu.teid; + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, hdr0->ip4.src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, hdr0->ip4.dst_address.as_u8, + sizeof (tr->dst.as_u8)); + tr->teid = hdr0->gtpu.teid; + } } vlib_increment_combined_counter @@ -339,8 +339,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, dst0 = ip6srv0->ip.dst_address; len0 = vlib_buffer_length_in_chain (vm, b0); + if ((ip6srv0->ip.protocol != IPPROTO_IPV6_ROUTE) - || (ip6srv0->sr.segments_left != 1) || (len0 < sizeof (ip6srv_combo_header_t) + 8 * ip6srv0->sr.length)) { next0 = SRV6_END_M_GTP6_E_NEXT_DROP; @@ -393,18 +393,18 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, // UDP source port (XXX) good_n++; - } - if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && - PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) - { - srv6_end_rewrite_trace_t *tr = - vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, hdr0->ip6.src_address.as_u8, - sizeof (ip6_address_t)); - clib_memcpy (tr->dst.as_u8, hdr0->ip6.dst_address.as_u8, - sizeof (ip6_address_t)); - tr->teid = hdr0->gtpu.teid; + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, hdr0->ip6.src_address.as_u8, + sizeof (ip6_address_t)); + clib_memcpy (tr->dst.as_u8, hdr0->ip6.dst_address.as_u8, + sizeof (ip6_address_t)); + tr->teid = hdr0->gtpu.teid; + } } vlib_increment_combined_counter From cccc96203a355c4374935d17ae79ce3a7d3436fb Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 19 Jun 2019 15:36:04 -0700 Subject: [PATCH 067/154] add gtp6.e/d function and fix the issue on gtp4.e --- src/plugins/srv6-mobile/gtp4_e.c | 4 +-- src/plugins/srv6-mobile/gtp6_d.c | 4 +-- src/plugins/srv6-mobile/gtp6_e.c | 4 +-- src/plugins/srv6-mobile/node.c | 48 ++++++++++++++++---------------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp4_e.c b/src/plugins/srv6-mobile/gtp4_e.c index 78c91abf51af..58c430d4c32d 100644 --- a/src/plugins/srv6-mobile/gtp4_e.c +++ b/src/plugins/srv6-mobile/gtp4_e.c @@ -48,13 +48,13 @@ const static dpo_vft_t dpo_vft = { .dv_format = clb_dpo_format_srv6_end_m_gtp4_e, }; -const static char *const srv6_end_nodes[] = { +const static char *const srv6_end_m_gtp4_e_nodes[] = { "srv6-end-m-gtp4-e", NULL, }; const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = srv6_end_nodes, + [DPO_PROTO_IP6] = srv6_end_m_gtp4_e_nodes, }; static u8 fn_name[] = "SRv6-End.M.GTP4.E-plugin"; diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 0fb6aa3b5164..eef7bd286b25 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -48,13 +48,13 @@ const static dpo_vft_t dpo_vft = { .dv_format = clb_dpo_format_srv6_end_m_gtp6_d, }; -const static char *const srv6_end_nodes[] = { +const static char *const srv6_end_m_gtp6_d_nodes[] = { "srv6-end-m-gtp6-d", NULL, }; const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = srv6_end_nodes, + [DPO_PROTO_IP6] = srv6_end_m_gtp6_d_nodes, }; static u8 fn_name[] = "SRv6-End.M.GTP6.D-plugin"; diff --git a/src/plugins/srv6-mobile/gtp6_e.c b/src/plugins/srv6-mobile/gtp6_e.c index 12ea34eefb01..078bab80fdda 100644 --- a/src/plugins/srv6-mobile/gtp6_e.c +++ b/src/plugins/srv6-mobile/gtp6_e.c @@ -48,13 +48,13 @@ const static dpo_vft_t dpo_vft = { .dv_format = clb_dpo_format_srv6_end_m_gtp6_e, }; -const static char *const srv6_end_nodes[] = { +const static char *const srv6_end_m_gtp6_e_nodes[] = { "srv6-end-m-gtp6-e", NULL, }; const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { - [DPO_PROTO_IP6] = srv6_end_nodes, + [DPO_PROTO_IP6] = srv6_end_m_gtp6_e_nodes, }; static u8 fn_name[] = "SRv6-End.M.GTP6.E-plugin"; diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 335859a6d008..07c7db8b9443 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -174,7 +174,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, len0 = vlib_buffer_length_in_chain (vm, b0); if ((ip6srv0->ip.protocol == IPPROTO_IPV6_ROUTE - && (ip6srv0->sr.segments_left != 1 || len0 < sizeof(ip6srv_combo_header_t) + ip6srv0->sr.length *8)) + && len0 < sizeof(ip6srv_combo_header_t) + ip6srv0->sr.length * 8) || (len0 < sizeof (ip6_header_t))) { next0 = SRV6_END_M_GTP4_E_NEXT_DROP; @@ -231,18 +231,18 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->ip4.checksum = ip4_header_checksum (&hdr0->ip4); good_n++; - } - if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && - PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) - { - srv6_end_rewrite_trace_t *tr = - vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, hdr0->ip4.src_address.as_u8, - sizeof (tr->src.as_u8)); - clib_memcpy (tr->dst.as_u8, hdr0->ip4.dst_address.as_u8, - sizeof (tr->dst.as_u8)); - tr->teid = hdr0->gtpu.teid; + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, hdr0->ip4.src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, hdr0->ip4.dst_address.as_u8, + sizeof (tr->dst.as_u8)); + tr->teid = hdr0->gtpu.teid; + } } vlib_increment_combined_counter @@ -339,8 +339,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, dst0 = ip6srv0->ip.dst_address; len0 = vlib_buffer_length_in_chain (vm, b0); + if ((ip6srv0->ip.protocol != IPPROTO_IPV6_ROUTE) - || (ip6srv0->sr.segments_left != 1) || (len0 < sizeof (ip6srv_combo_header_t) + 8 * ip6srv0->sr.length)) { next0 = SRV6_END_M_GTP6_E_NEXT_DROP; @@ -393,18 +393,18 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, // UDP source port (XXX) good_n++; - } - if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && - PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) - { - srv6_end_rewrite_trace_t *tr = - vlib_add_trace (vm, node, b0, sizeof (*tr)); - clib_memcpy (tr->src.as_u8, hdr0->ip6.src_address.as_u8, - sizeof (ip6_address_t)); - clib_memcpy (tr->dst.as_u8, hdr0->ip6.dst_address.as_u8, - sizeof (ip6_address_t)); - tr->teid = hdr0->gtpu.teid; + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, hdr0->ip6.src_address.as_u8, + sizeof (ip6_address_t)); + clib_memcpy (tr->dst.as_u8, hdr0->ip6.dst_address.as_u8, + sizeof (ip6_address_t)); + tr->teid = hdr0->gtpu.teid; + } } vlib_increment_combined_counter From 597f6e86590745f54ad07e8bdc24dd4c5b066274 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Mon, 24 Jun 2019 11:41:09 +0900 Subject: [PATCH 068/154] correct TEID bite-order for gtp4e trace. --- src/plugins/srv6-mobile/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 6112075bc757..e2b99aa206e4 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -30,7 +30,7 @@ format_srv6_end_rewrite_trace (u8 * s, va_list * args) srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); return format (s, "SRv6-END-rewrite: src %U dst %U\n TEID: 0x%x", - format_ip4_address, &t->src, format_ip4_address, &t->dst, t->teid); + format_ip4_address, &t->src, format_ip4_address, &t->dst, clib_net_to_host_u32(t->teid)); } From df1a2fa291a323f8cbb60daeaa16d0903dc30fb9 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 24 Jun 2019 09:14:26 -0700 Subject: [PATCH 069/154] gtp6.e/d --- extras/ietf105/runner.py | 8 +- src/plugins/srv6-mobile/CMakeLists.txt | 1 + src/plugins/srv6-mobile/gtp6_d.c | 15 ++- src/plugins/srv6-mobile/gtp6_d_di.c | 158 +++++++++++++++++++++++++ src/plugins/srv6-mobile/gtp6_e.c | 2 +- src/plugins/srv6-mobile/mobile.h | 15 +++ src/plugins/srv6-mobile/node.c | 128 +++++++++++++++++--- src/vnet/srv6/sr.h | 18 +++ src/vnet/srv6/sr_localsid.c | 74 +++++++----- 9 files changed, 367 insertions(+), 52 deletions(-) create mode 100644 src/plugins/srv6-mobile/gtp6_d_di.c diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index b5c66aa6c27d..ba8187aababa 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -580,15 +580,15 @@ def test_gtp6(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: sr_prefix D4::/32 local_prefix C1::/64") - c1.vppctl_exec("sr steer l3 4001::1/128 via bsid D1::") - c1.vppctl_exec("sr localsid address D1:: behavior end.m.gtp6.d") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix 4001::/64 behavior end.m.gtp6.d.di D4::/64 bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid address D4:: behavior end.m.gtp4.e") + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") diff --git a/src/plugins/srv6-mobile/CMakeLists.txt b/src/plugins/srv6-mobile/CMakeLists.txt index 224f21a9db50..714b0e18a4cf 100644 --- a/src/plugins/srv6-mobile/CMakeLists.txt +++ b/src/plugins/srv6-mobile/CMakeLists.txt @@ -16,6 +16,7 @@ add_vpp_plugin(srv6mobile gtp4_e.c gtp6_e.c gtp6_d.c + gtp6_d_di.c node.c INSTALL_HEADERS diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index eef7bd286b25..bed744ffc377 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -93,6 +93,7 @@ static clib_error_t * srv6_end_m_gtp6_d_init (vlib_main_t * vm) { srv6_end_main_v6_decap_t *sm = &srv6_end_main_v6_decap; + ip6srv_combo_header_t *ip6; dpo_type_t dpo_type; vlib_node_t *node; u32 rc; @@ -106,6 +107,18 @@ srv6_end_m_gtp6_d_init (vlib_main_t * vm) node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; + ip6 = &sm->cache_header; + + clib_memset_u8 (ip6, 0, sizeof(ip6_srv_combo_header_t)); + + // IPv6 header (default) + ip6->ip.ip_version_traffic_class_and_flow_label = 0x60; + ip6->ip.hoplimit = 64; + ip6->ip.protocol = IPPROTO_IPV6_ROUTE; + + // SR header (default) + ip6->sr.type = 4; + dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); rc = sr_localsid_register_function (vm, @@ -113,7 +126,7 @@ srv6_end_m_gtp6_d_init (vlib_main_t * vm) keyword_str, def_str, param_str, - 32, //prefix len + 64, //prefix len &dpo_type, clb_format_srv6_end_m_gtp6_d, clb_unformat_srv6_end_m_gtp6_d, diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c new file mode 100644 index 000000000000..6ec48517f810 --- /dev/null +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -0,0 +1,158 @@ +/* + * srv6_end_m_gtp6_d_di_di.c + * + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +srv6_end_main_v6_decap_di_t srv6_end_main_v6_decap_di; + +static void +clb_dpo_lock_srv6_end_m_gtp6_d_di (dpo_id_t * dpo) +{ +} + +static void +clb_dpo_unlock_srv6_end_m_gtp6_d_di (dpo_id_t * dpo) +{ +} + +static u8 * +clb_dpo_format_srv6_end_m_gtp6_d_di (u8 * s, va_list * args) +{ + index_t index = va_arg (*args, index_t); + CLIB_UNUSED (u32 indent) = va_arg (*args, u32); + + return (format (s, "SR: dynamic_proxy_index:[%u]", index)); +} + +const static dpo_vft_t dpo_vft = { + .dv_lock = clb_dpo_lock_srv6_end_m_gtp6_d_di, + .dv_unlock = clb_dpo_unlock_srv6_end_m_gtp6_d_di, + .dv_format = clb_dpo_format_srv6_end_m_gtp6_d_di, +}; + +const static char *const srv6_end_m_gtp6_d_di_nodes[] = { + "srv6-end-m-gtp6-d-di", + NULL, +}; + +const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { + [DPO_PROTO_IP6] = srv6_end_m_gtp6_d_di_nodes, +}; + +static u8 fn_name[] = "SRv6-End.M.GTP6.D.DI-plugin"; +static u8 keyword_str[] = "end.m.gtp6.d.di"; +static u8 def_str[] = "Endpoint function with drop-in dencapsulation for IPv6/GTP tunnel"; +static u8 param_str[] = ""; + +static u8 * +clb_format_srv6_end_m_gtp6_d_di (u8 * s, va_list * args) +{ + s = format (s, "SRv6 End format function unsupported."); + return s; +} + +static uword +clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) +{ + if (!unformat (input, "end.m.gtp6.d.di")) + return 0; + return 1; +} + +static int +clb_creation_srv6_end_m_gtp6_d_di (ip6_sr_localsid_t * localsid) +{ + return 0; +} + +static int +clb_removal_srv6_end_m_gtp6_d_di (ip6_sr_localsid_t * localsid) +{ + return 0; +} + +static clib_error_t * +srv6_end_m_gtp6_d_di_init (vlib_main_t * vm) +{ + srv6_end_main_v6_decap_di_t *sm = &srv6_end_main_v6_decap_di; + ip6srv_combo_header_t *ip6; + dpo_type_t dpo_type; + vlib_node_t *node; + u32 rc; + + sm->vlib_main = vm; + sm->vnet_main = vnet_get_main (); + + node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp6-d-di"); + sm->end_m_gtp6_d_di_node_index = node->index; + + node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); + sm->error_node_index = node->index; + + ip6 = &sm->cache_header; + + clib_memset_u8 (ip6, 0, sizeof(ip6srv_combo_header_t)); + + // IPv6 header (default) + ip6->ip.ip_version_traffic_class_and_flow_label = 0x60; + ip6->ip.hoplimit = 64; + ip6->protocol = IPPROTO_IPV6_ROUTE; + + // SR header (default) + ip6->sr.type = 4; + + dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); + + rc = sr_localsid_register_function (vm, + fn_name, + keyword_str, + def_str, + param_str, + 64, //prefix len + &dpo_type, + clb_format_srv6_end_m_gtp6_d_di, + clb_unformat_srv6_end_m_gtp6_d_di, + clb_creation_srv6_end_m_gtp6_d_di, + clb_removal_srv6_end_m_gtp6_d_di); + if (rc < 0) + clib_error_return (0, "SRv6 Endpoint GTP6.D.DI LocalSID function" + "couldn't be registered"); + return 0; +} + +/* *INDENT-OFF* */ +VNET_FEATURE_INIT (srv6_end_m_gtp6_d_di, static) = +{ + .arc_name = "ip6-unicast", + .node_name = "srv6-end-m-gtp6-d-di", + .runs_before = 0, +}; + +VLIB_INIT_FUNCTION (srv6_end_m_gtp6_d_di_init); +/* *INDENT-ON* */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ diff --git a/src/plugins/srv6-mobile/gtp6_e.c b/src/plugins/srv6-mobile/gtp6_e.c index 078bab80fdda..735e065db88a 100644 --- a/src/plugins/srv6-mobile/gtp6_e.c +++ b/src/plugins/srv6-mobile/gtp6_e.c @@ -132,7 +132,7 @@ srv6_end_m_gtp6_e_init (vlib_main_t * vm) keyword_str, def_str, param_str, - 32, //prefix len + 64, //prefix len &dpo_type, clb_format_srv6_end_m_gtp6_e, clb_unformat_srv6_end_m_gtp6_e, diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index 980f9fa74f0f..b8a09e73a0fd 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -73,11 +73,26 @@ typedef struct srv6_end_main_v6_decap_s u32 end_m_gtp6_d_node_index; u32 error_node_index; + ip6srv_combo_header_t cache_hdr; } srv6_end_main_v6_decap_t; extern srv6_end_main_v6_decap_t srv6_end_main_v6_decap; extern vlib_node_registration_t srv6_end_m_gtp6_d; +typedef struct srv6_end_main_v6_decap_di_s +{ + vlib_main_t *vlib_main; + vnet_main_t *vnet_main; + + u32 end_m_gtp6_d_node_index; + u32 error_node_index; + + ip6srv_combo_header_t cache_hdr; +} srv6_end_main_v6_decap_di_t; + +extern srv6_end_main_v6_decap_di_t srv6_end_main_v6_decap_di; +extern vlib_node_registration_t srv6_end_m_gtp6_d_di; + #endif /* __included_srv6_end_h__ */ /* diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 07c7db8b9443..9a5728978b7b 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -15,6 +15,7 @@ #include #include #include +#include #include typedef struct { @@ -33,14 +34,16 @@ format_srv6_end_rewrite_trace (u8 * s, va_list * args) format_ip4_address, &t->src, format_ip4_address, &t->dst, t->teid); } - -/* *INDENT-OFF* */ -typedef CLIB_PACKED(struct +static u8 * +format_srv6_end_rewrite_trace6 (u8 * s, va_list * args) { - ip6_header_t ip; - ip6_sr_header_t sr; -}) ip6srv_combo_header_t; -/* *INDENT-ON* */ + CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *); + CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); + srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); + + return format (s, "SRv6-END-rewrite: src %U dst %U\n TEID: 0x%x", + format_ip6_address, &t->src, format_ip6_address, &t->dst, t->teid); +} #define foreach_srv6_end_v4_error \ _(M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") \ @@ -54,6 +57,10 @@ typedef CLIB_PACKED(struct _(M_GTP6_D_PACKETS, "srv6 End.M.GTP6.D packets") \ _(M_GTP6_D_BAD_PACKETS, "srv6 End.M.GTP6.D bad packets") +#define foreach_srv6_end_v6_d_di_error \ + _(M_GTP6_D_PACKETS, "srv6 End.M.GTP6.D.DI packets") \ + _(M_GTP6_D_BAD_PACKETS, "srv6 End.M.GTP6.D.DI bad packets") + typedef enum { #define _(sym,str) SRV6_END_ERROR_##sym, @@ -78,6 +85,14 @@ typedef enum SRV6_END_N_V6_D_ERROR, } srv6_end_error_v6_d_t; +typedef enum +{ +#define _(sym,str) SRV6_END_ERROR_##sym, + foreach_srv6_end_v6_d_di_error +#undef _ + SRV6_END_N_V6_D_DI_ERROR, +} srv6_end_error_v6_d_di_t; + static char *srv6_end_error_v4_strings[] = { #define _(sym,string) string, foreach_srv6_end_v4_error @@ -96,6 +111,12 @@ static char *srv6_end_error_v6_d_strings[] = { #undef _ }; +static char *srv6_end_error_v6_d_di_strings[] = { +#define _(sym,string) string, + foreach_srv6_end_v6_d_di_error +#undef _ +}; + typedef enum { SRV6_END_M_GTP4_E_NEXT_DROP, @@ -117,6 +138,13 @@ typedef enum SRV6_END_M_GTP6_D_N_NEXT, } srv6_end_m_gtp6_d_next_t; +typedef enum +{ + SRV6_END_M_GTP6_D_DI_NEXT_DROP, + SRV6_END_M_GTP6_D_DI_NEXT_LOOKUP, + SRV6_END_M_GTP6_D_DI_N_NEXT, +} srv6_end_m_gtp6_d_di_next_t; + // Function for SRv6 GTP4.E function. VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, vlib_node_runtime_t * node, @@ -285,6 +313,18 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { }, }; +static inline u16 +hash_uword_to_u16 (uword *key) +{ + u16 *val; + val = key; +#if uword bits == 64 + return val[0] ^ val[1] ^ val[3] ^ val[4]; +#else + return val[0] ^ val[1]; +#endif +} + // Function for SRv6 GTP6.E function VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, vlib_node_runtime_t * node, @@ -314,10 +354,13 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, ip6_sr_localsid_t *ls0; ip6srv_combo_header_t *ip6srv0; - ip6_address_t src0, dst0; + ip6_address_t src0, dst0, seg0; ip6_gtpu_header_t *hdr0 = NULL; uword len0; + uword key; + u16 port; + void *p; u32 next0 = SRV6_END_M_GTP6_E_NEXT_LOOKUP; @@ -337,6 +380,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, ip6srv0 = vlib_buffer_get_current (b0); src0 = ip6srv0->ip.src_address; dst0 = ip6srv0->ip.dst_address; + seg0 = ip6srv0->sr.segments[0]; len0 = vlib_buffer_length_in_chain (vm, b0); @@ -362,6 +406,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, // get length of encapsulated IPv6 packet (the remaining part) len0 = vlib_buffer_length_in_chain (vm, b0); + p = vlib_buffer_get_current (b0); + // jump back to data[0] or pre_data if required vlib_buffer_advance (b0, -(word) sizeof (ip6_gtpu_header_t)); @@ -371,27 +417,47 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, u32 teid; u8 *teid8p = (u8 *)&teid; - teid8p[0] = dst0.as_u8[12]; - teid8p[1] = dst0.as_u8[13]; - teid8p[2] = dst0.as_u8[14]; - teid8p[3] = dst0.as_u8[15]; + u16 index; + u16 offset, shift; + + index = sl0->localsid_len; + index += 8; + offset = index / 8; + shift = index % 8; + + if (PREDICT_TRUE (shift == 0)) { + teid8p[0] = dst0.as_u8[offset]; + teid8p[1] = dst0.as_u8[offset+1]; + teid8p[2] = dst0.as_u8[offset+2]; + teid8p[3] = dst0.as_u8[offset+3]; + } else { + for (index = offset; index < offset + 4; index++) + { + *teid8p = dst0.as_u8[index] << shift; + *teid8p |= dst0.as_u8[index+1] >> (8 - shift); + teid8p++; + } + } + hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); - hdr0->udp.src_port = src0.as_u16[6]; hdr0->udp.length = clib_host_to_net_u16 (len0 + sizeof (udp_header_t) + sizeof (gtpu_header_t)); clib_memcpy (hdr0->ip6.src_address.as_u8, dst0.as_u8, sizeof(ip6_address_t)); - clib_memcpy (hdr0->ip6.dst_address.as_u8, &ip6srv0->sr.segments[0], + clib_memcpy (hdr0->ip6.dst_address.as_u8, &seg0.as_u8, sizeof(ip6_address_t)); hdr0->ip6.payload_length = clib_host_to_net_u16 (len0 + sizeof (udp_header_t) + sizeof(gtpu_header_t)); - // UDP source port (XXX) - + // UDP source port. + key = hash_memory(p, len0, 0); + port = hash_uword_to_u16(&key); + hdr0->udp.src_port = port; + good_n++; if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && @@ -441,10 +507,20 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, return frame->n_vectors; } +// Function for SRv6 GTP6.D.DI function +VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) +{ + // XXX + + return frame->n_vectors; +} + VLIB_REGISTER_NODE (srv6_end_m_gtp6_e) = { .name = "srv6-end-m-gtp6-e", .vector_size = sizeof (u32), - .format_trace = format_srv6_end_rewrite_trace, + .format_trace = format_srv6_end_rewrite_trace6, .type = VLIB_NODE_TYPE_INTERNAL, .n_errors = ARRAY_LEN (srv6_end_error_v6_e_strings), @@ -460,7 +536,7 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp6_e) = { VLIB_REGISTER_NODE (srv6_end_m_gtp6_d) = { .name = "srv6-end-m-gtp6-d", .vector_size = sizeof (u32), - .format_trace = format_srv6_end_rewrite_trace, + .format_trace = format_srv6_end_rewrite_trace6, .type = VLIB_NODE_TYPE_INTERNAL, .n_errors = ARRAY_LEN (srv6_end_error_v6_d_strings), @@ -473,6 +549,22 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp6_d) = { }, }; +VLIB_REGISTER_NODE (srv6_end_m_gtp6_d_di) = { + .name = "srv6-end-m-gtp6-d-di", + .vector_size = sizeof (u32), + .format_trace = format_srv6_end_rewrite_trace6, + .type = VLIB_NODE_TYPE_INTERNAL, + + .n_errors = ARRAY_LEN (srv6_end_error_v6_d_di_strings), + .error_strings = srv6_end_error_v6_d_di_strings, + + .n_next_nodes = SRV6_END_M_GTP6_D_DI_N_NEXT, + .next_nodes = { + [SRV6_END_M_GTP6_D_DI_NEXT_DROP] = "error-drop", + [SRV6_END_M_GTP6_D_DI_NEXT_LOOKUP] = "ip6-lookup", + }, +}; + /* * fd.io coding-style-patch-verification: ON * diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index fc2a263e6fc6..cfd5a7aa7c2a 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -54,6 +54,15 @@ #define SR_SEGMENT_LIST_WEIGHT_DEFAULT 1 +/* *INDENT-OFF* */ +typedef struct +{ + ip6_header_t ip; + ip6_sr_header_t sr; +} __attribute__ ((packed)) ip6srv_combo_header_t; +/* *INDENT-ON* */ + +/* *INDENT-OFF* */ typedef struct { u8 ver_flags; @@ -61,6 +70,7 @@ typedef struct u16 length; /* length in octets of the payload */ u32 teid; } __attribute__ ((packed)) gtpu_header_t; +/* *INDENT-ON* */ /* *INDENT-OFF* */ typedef struct @@ -139,6 +149,8 @@ typedef struct { ip6_address_t localsid; /**< LocalSID IPv6 address */ + u16 localsid_len; + char end_psp; /**< Combined with End.PSP? */ u16 behavior; /**< Behavior associated to this localsid */ @@ -157,6 +169,12 @@ typedef struct u32 nh_adj; /**< Next_adj for xconnect usage only */ + // GTP6.D + ip6_address_t sr_prefix; + u16 sr_prefix_len; + + ip6_address_t bsid; + void *plugin_mem; /**< Memory to be used by the plugin callback functions */ } ip6_sr_localsid_t; diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index b26bf18510b2..99bab04e27cb 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -63,7 +63,7 @@ static dpo_type_t sr_localsid_d_dpo_type; * @return 0 on success, error otherwise. */ int -sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, +sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, void *ls_plugin_mem) { @@ -83,47 +83,54 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, if (p) { if (is_del) - { - /* Retrieve localsid */ - ls = pool_elt_at_index (sm->localsids, p[0]); - if (ls->behavior >= SR_BEHAVIOR_LAST) - { - plugin = pool_elt_at_index (sm->plugin_functions, ls->behavior - SR_BEHAVIOR_LAST); - pref_length = plugin->prefix_length; - } - /* Delete FIB entry */ - fib_prefix_t pfx = { + { + /* Retrieve localsid */ + ls = pool_elt_at_index (sm->localsids, p[0]); + if (ls->behavior >= SR_BEHAVIOR_LAST) + { + plugin = pool_elt_at_index (sm->plugin_functions, + ls->behavior - SR_BEHAVIOR_LAST); + pref_length = plugin->prefix_length; + } + + if (prefixlen != 0) + { + pref_length = prefixlen; + } + + /* Delete FIB entry */ + fib_prefix_t pfx = { .fp_proto = FIB_PROTOCOL_IP6, .fp_len = pref_length, .fp_addr = { .ip6 = *localsid_addr, } - }; + }; - fib_table_entry_delete (fib_table_find (FIB_PROTOCOL_IP6, + fib_table_entry_delete (fib_table_find (FIB_PROTOCOL_IP6, fib_table), &pfx, FIB_SOURCE_SR); - /* In case it is a Xconnect iface remove the (OIF, NHOP) adj */ - if (ls->behavior == SR_BEHAVIOR_X || ls->behavior == SR_BEHAVIOR_DX6 - || ls->behavior == SR_BEHAVIOR_DX4) - adj_unlock (ls->nh_adj); + /* In case it is a Xconnect iface remove the (OIF, NHOP) adj */ + if (ls->behavior == SR_BEHAVIOR_X || ls->behavior == SR_BEHAVIOR_DX6 + || ls->behavior == SR_BEHAVIOR_DX4) + adj_unlock (ls->nh_adj); - if (ls->behavior >= SR_BEHAVIOR_LAST) - /* Callback plugin removal function */ - rv = plugin->removal (ls); + if (ls->behavior >= SR_BEHAVIOR_LAST) + /* Callback plugin removal function */ + rv = plugin->removal (ls); - /* Delete localsid registry */ - pool_put (sm->localsids, ls); - mhash_unset (&sm->sr_localsids_index_hash, localsid_addr, NULL); - return 0; - } + /* Delete localsid registry */ + pool_put (sm->localsids, ls); + mhash_unset (&sm->sr_localsids_index_hash, localsid_addr, NULL); + return 0; + } else /* create with function already existing; complain */ return -1; } else /* delete; localsid does not exist; complain */ - if (is_del) - return -2; + if (is_del) + return -2; if (behavior >= SR_BEHAVIOR_LAST) { @@ -137,6 +144,11 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, .fp_len = pref_length, }; + if (prefixlen != 0) + { + pfx.fp_len = prefixlen; + } + pfx.fp_addr.as_u64[0] = localsid_addr->as_u64[0]; pfx.fp_addr.as_u64[1] = localsid_addr->as_u64[1]; @@ -159,6 +171,7 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, ls->behavior = behavior; ls->nh_adj = (u32) ~ 0; ls->fib_table = fib_table; + ls->localsid_len = pfx.fp_len; switch (behavior) { case SR_BEHAVIOR_END: @@ -272,6 +285,7 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, vnet_main_t *vnm = vnet_get_main (); ip6_sr_main_t *sm = &sr_main; u32 sw_if_index = (u32) ~ 0, vlan_index = (u32) ~ 0, fib_index = 0; + u32 prefix_len = (u32) ~ 0; int is_del = 0; int end_psp = 0; ip6_address_t resulting_address; @@ -293,6 +307,10 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, && unformat (input, "address %U", unformat_ip6_address, &resulting_address)) address_set = 1; + else if (!address_set + && unformat (input, "prefix %U/%d", unformat_ip6_address, + &resulting_address, &prefixlen)) + address_set = 1; else if (!address_set && unformat (input, "addr %U", unformat_ip6_address, &resulting_address)) @@ -378,7 +396,7 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, return clib_error_return (0, "Error: SRv6 PSP only compatible with End and End.X"); - rv = sr_cli_localsid (is_del, &resulting_address, end_psp, behavior, + rv = sr_cli_localsid (is_del, &resulting_address, prefix_len, end_psp, behavior, sw_if_index, vlan_index, fib_index, &next_hop, ls_plugin_mem); From 375a5975d71234c5b569511bc232c0b45f827825 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 24 Jun 2019 12:10:15 -0700 Subject: [PATCH 070/154] gtp6.d/d.di --- src/plugins/srv6-mobile/gtp6_d.c | 2 +- src/plugins/srv6-mobile/gtp6_d_di.c | 2 +- src/plugins/srv6-mobile/gtp6_e.c | 2 +- src/plugins/srv6-mobile/node.c | 379 +++++++++++++++++++++++++++- src/vnet/srv6/sr.h | 2 +- src/vnet/srv6/sr_localsid.c | 37 ++- 6 files changed, 408 insertions(+), 16 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index bed744ffc377..598688282a79 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -126,7 +126,7 @@ srv6_end_m_gtp6_d_init (vlib_main_t * vm) keyword_str, def_str, param_str, - 64, //prefix len + 128, //prefix len &dpo_type, clb_format_srv6_end_m_gtp6_d, clb_unformat_srv6_end_m_gtp6_d, diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index 6ec48517f810..916724b8e65c 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -126,7 +126,7 @@ srv6_end_m_gtp6_d_di_init (vlib_main_t * vm) keyword_str, def_str, param_str, - 64, //prefix len + 128, //prefix len &dpo_type, clb_format_srv6_end_m_gtp6_d_di, clb_unformat_srv6_end_m_gtp6_d_di, diff --git a/src/plugins/srv6-mobile/gtp6_e.c b/src/plugins/srv6-mobile/gtp6_e.c index 735e065db88a..d8babb3fb30c 100644 --- a/src/plugins/srv6-mobile/gtp6_e.c +++ b/src/plugins/srv6-mobile/gtp6_e.c @@ -132,7 +132,7 @@ srv6_end_m_gtp6_e_init (vlib_main_t * vm) keyword_str, def_str, param_str, - 64, //prefix len + 128, //prefix len &dpo_type, clb_format_srv6_end_m_gtp6_e, clb_unformat_srv6_end_m_gtp6_e, diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 9a5728978b7b..6bdb696efbe5 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -502,8 +502,192 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) { - // XXX - + srv6_end_main_v6_decap_t *sm = &srv6_end_main_v6_decap; + ip6_sr_main_t *sm2 = &sr_main; + u32 n_left_from, next_index, *from, *to_next; + u32 thread_index = vm->thread_index; + + u32 good_n = 0, bad_n = 0; + + from = vlib_frame_vector_args (frame); + n_left_from = frame->n_vectors; + next_index = node->cached_next_index; + + while (n_left_from > 0) + { + u32 n_left_to_next; + + vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next); + + while (n_left_from > 0 && n_left_to_next > 0) + { + u32 bi0; + vlib_buffer_t *b0; + ip6_sr_localsid_t *ls0; + + ip6_gtpu_header_t *hdr0 = NULL; + uword len0 + + ip6_address_t seg0; + u32 teid = 0; + u8 *teidp; + u32 offset, shift; + ip6_header_t *encap; + + u32 next0 = SRV6_END_M_GTP6_D_DI__NEXT_LOOKUP; + + // defaults + bi0 = from[0]; + to_next[0] = bi0; + from += 1; + to_next += 1; + n_left_from -= 1; + n_left_to_next -= 1; + + b0 = vlib_get_buffer (vm, bi0); + ls0 = + pool_elt_at_index (sm2->localsids, + vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + + hdr0 = vlib_buffer_get_current (b0); + + len0 = vlib_buffer_length_in_chain (vm, b0); + + if ((hdr0->ip.protocol != IPPROTO_UDP) + || (hdr0->udp->dst_port != clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT)) + || (len0 < sizeof (ipv6_gtpu_header_t))) + { + next0 = SRV6_END_M_GTP6_D_DI__NEXT_DROP; + + bad_n++; + } + else + { + seg0 = ls0->sr_prefix; + teid = hdr0->gtpu.teid; + teidp = (u8 *) &teid; + + if (ls0->sr_prefixlen != 0) + { + offset = ls0->sr_prefixlen / 8; + shift = ls0->sr_prefixlen % 8; + + offset += 1; + if (PREDICT_TRUE (shitft == 0)) + { + clib_memcpy (&seg0->as_u8[offset], teidp, 4); + } + else + { + int idx; + + for (idx = 0; idx < 4; idx++) + { + seg0->as_u8[offset + idx] |= teidp[idx] >> shift; + seg0->as_u8[offset + idx + 1] |= teidp[idx] << shift; + } + } + } + + // jump over variable length data + vlib_buffer_advance (b0, (word) sizeof (ip6_gtpu_header_t)); + + // get length of encapsulated IPv6 packet (the remaining part) + len0 = vlib_buffer_length_in_chain (vm, b0); + + encap = vlib_buffer_get_current (b0); + + uword *p; + ip6srv_combo_header_t *ip6srv; + struct ip6_sr_policy_t *sr_policy; + struct ip6_sr_sl_t *sl; + u32 *sl_index; + u32 hdr_len; + + p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); + if (p) + { + sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); + } + else + { + continue; + } + + vec_foreach (sl_index, sr_policy->segments_lists) + { + sl = pool_elt_at_index (sm2->sid_lists, *sl_index); + if (sl != NULL) + break; + } + + hdr_len = sizeof (ip6srv_combo_heaer_t) + vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len += sizeof (ip6_address_t); + + // jump back to data[0] or pre_data if required + vlib_buffer_advance (b0, -(word) hdr_len); + + ip6srv = vlib_buffer_get_current (b0); + + clib_memcpy_fast (&ip6srv, sl0->rewrite, sizeof(ip6_sr_header_t)); + + clib_memcpy_fast (&ip6srv, &sm->cache_header, sizeof(ip6_header_t)); + + ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); + + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + } + else + { + ip6srv->sr.protocol = IP_PROTOCOL_IP; + } + + ip6srv->sr.segments_left += 1; + ip6srv->sr.first_segment += 1; + + ip6srv->sr.segments[0] = seg0; + + clib_memcpy_fast (&ip6srv->sr.segments[1], (u8 *)(sl0->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + vec_len (sl->segments)); + + good_n++; + + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, ip6srv->ip.src_address.as_u8, + sizeof (ip6_address_t)); + clib_memcpy (tr->dst.as_u8, ip6srv->ip.dst_address.as_u8, + sizeof (ip6_address_t)); + tr->teid = teid; + } + } + + vlib_increment_combined_counter + (((next0 == + SRV6_END_M_GTP6_D_DI_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : + &(sm2->sr_ls_valid_counters)), thread_index, ls0 - sm2->localsids, + 1, vlib_buffer_length_in_chain (vm, b0)); + + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, + n_left_to_next, bi0, next0); + } + + vlib_put_next_frame (vm, node, next_index, n_left_to_next); + } + + vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + SRV6_END_ERROR_M_GTP6_D_DI_BAD_PACKETS, + bad_n); + + vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + SRV6_END_ERROR_M_GTP6_D_DI_PACKETS, + good_n); + return frame->n_vectors; } @@ -512,8 +696,195 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) { - // XXX - + srv6_end_main_v6_decap_di_t *sm = &srv6_end_main_v6_decap_di; + ip6_sr_main_t *sm2 = &sr_main; + u32 n_left_from, next_index, *from, *to_next; + u32 thread_index = vm->thread_index; + + u32 good_n = 0, bad_n = 0; + + from = vlib_frame_vector_args (frame); + n_left_from = frame->n_vectors; + next_index = node->cached_next_index; + + while (n_left_from > 0) + { + u32 n_left_to_next; + + vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next); + + while (n_left_from > 0 && n_left_to_next > 0) + { + u32 bi0; + vlib_buffer_t *b0; + ip6_sr_localsid_t *ls0; + + ip6_gtpu_header_t *hdr0 = NULL; + uword len0 + + ip6_address_t dst0; + ip6_address_t seg0; + u32 teid = 0; + u8 *teidp; + u32 offset, shift; + ip6_header_t *encap; + + u32 next0 = SRV6_END_M_GTP6_D_DI__NEXT_LOOKUP; + + // defaults + bi0 = from[0]; + to_next[0] = bi0; + from += 1; + to_next += 1; + n_left_from -= 1; + n_left_to_next -= 1; + + b0 = vlib_get_buffer (vm, bi0); + ls0 = + pool_elt_at_index (sm2->localsids, + vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + + hdr0 = vlib_buffer_get_current (b0); + + len0 = vlib_buffer_length_in_chain (vm, b0); + + if ((hdr0->ip.protocol != IPPROTO_UDP) + || (hdr0->udp->dst_port != clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT)) + || (len0 < sizeof (ipv6_gtpu_header_t))) + { + next0 = SRV6_END_M_GTP6_D_DI__NEXT_DROP; + + bad_n++; + } + else + { + dst0 = hdr0->ip.dst_address; + seg0 = ls0->sr_prefix; + teid = hdr0->gtpu.teid; + teidp = (u8 *) &teid; + + if (ls0->sr_prefixlen != 0) + { + offset = ls0->sr_prefixlen / 8; + shift = ls0->sr_prefixlen % 8; + + offset += 1; + if (PREDICT_TRUE (shitft == 0)) + { + clib_memcpy (&seg0->as_u8[offset], teidp, 4); + } + else + { + int idx; + + for (idx = 0; idx < 4; idx++) + { + seg0->as_u8[offset + idx] |= teidp[idx] >> shift; + seg0->as_u8[offset + idx + 1] |= teidp[idx] << shift; + } + } + } + + // jump over variable length data + vlib_buffer_advance (b0, (word) sizeof (ip6_gtpu_header_t)); + + // get length of encapsulated IPv6 packet (the remaining part) + len0 = vlib_buffer_length_in_chain (vm, b0); + + encap = vlib_buffer_get_current (b0); + + uword *p; + ip6srv_combo_header_t *ip6srv; + struct ip6_sr_policy_t *sr_policy; + struct ip6_sr_sl_t *sl; + u32 *sl_index; + u32 hdr_len; + + p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); + if (p) + { + sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); + } + else + { + continue; + } + + vec_foreach (sl_index, sr_policy->segments_lists) + { + sl = pool_elt_at_index (sm2->sid_lists, *sl_index); + if (sl != NULL) + break; + } + + hdr_len = sizeof (ip6srv_combo_heaer_t) + vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len += sizeof (ip6_address_t) * 2; + + // jump back to data[0] or pre_data if required + vlib_buffer_advance (b0, -(word) hdr_len); + + ip6srv = vlib_buffer_get_current (b0); + + clib_memcpy_fast (&ip6srv, sl0->rewrite, sizeof(ip6_sr_header_t)); + + clib_memcpy_fast (&ip6srv, &sm->cache_header, sizeof(ip6_header_t)); + + ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); + + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + } + else + { + ip6srv->sr.protocol = IP_PROTOCOL_IP; + } + + ip6srv->sr.segments_left += 2; + ip6srv->sr.first_segment += 2; + + ip6srv->sr.segments[0] = dst0; + ip6srv->sr.segments[1] = seg0; + + clib_memcpy_fast (&ip6srv->sr.segments[2], (u8 *)(sl0->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + vec_len (sl->segments)); + + good_n++; + + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, ip6srv->ip.src_address.as_u8, + sizeof (ip6_address_t)); + clib_memcpy (tr->dst.as_u8, ip6srv->ip.dst_address.as_u8, + sizeof (ip6_address_t)); + tr->teid = teid; + } + } + + vlib_increment_combined_counter + (((next0 == + SRV6_END_M_GTP6_D_DI_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : + &(sm2->sr_ls_valid_counters)), thread_index, ls0 - sm2->localsids, + 1, vlib_buffer_length_in_chain (vm, b0)); + + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, + n_left_to_next, bi0, next0); + } + + vlib_put_next_frame (vm, node, next_index, n_left_to_next); + } + + vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + SRV6_END_ERROR_M_GTP6_D_DI_BAD_PACKETS, + bad_n); + + vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + SRV6_END_ERROR_M_GTP6_D_DI_PACKETS, + good_n); + return frame->n_vectors; } diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index cfd5a7aa7c2a..4a79afc4fc45 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -171,7 +171,7 @@ typedef struct // GTP6.D ip6_address_t sr_prefix; - u16 sr_prefix_len; + u16 sr_prefixlen; ip6_address_t bsid; diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index 99bab04e27cb..db1de631b1a9 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -65,7 +65,9 @@ static dpo_type_t sr_localsid_d_dpo_type; int sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, - u32 fib_table, ip46_address_t * nh_addr, void *ls_plugin_mem) + u32 fib_table, ip46_address_t * nh_addr, + ip6_address_t *sr_prefix, u32 sr_prefixlen, ip6_address_t *bsid, + void *ls_plugin_mem) { ip6_sr_main_t *sm = &sr_main; uword *p; @@ -172,6 +174,9 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, ls->nh_adj = (u32) ~ 0; ls->fib_table = fib_table; ls->localsid_len = pfx.fp_len; + clib_memcpy (&ls->sr_prefix, sr_prefix, sizeof (ip6_address_t)); + ls->sr_prefixlen = sr_prefixlen; + clib_memcpy (&ls->bsid, bsid, sizeof (ip6_address_t)); switch (behavior) { case SR_BEHAVIOR_END: @@ -293,10 +298,15 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, char address_set = 0; char behavior = 0; void *ls_plugin_mem = 0; + ip6_address_t sr_prefix; + u32 sr_prefixlen = (u32) ~ 0; + ip6_address_t bsid; int rv; clib_memset (&resulting_address, 0, sizeof (ip6_address_t)); + clib_memset (&sr_prefix, 0, sizeof (ip6_address_t)); + clib_memset (&bsid, 0, sizeof (ip6_address_t)); ip46_address_reset (&next_hop); while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -343,17 +353,28 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, behavior = SR_BEHAVIOR_DT4; else { + if (unformat (input, "end.m.gtp6.d %U/%d", unformat_ipv6_address, + &sr_prefix, &sr_prefixlen) + || unformat (input, "end.m.gtp6.d.di %U/%d", unformat_ipv6_address, + &sr_prefix, &sr_prefixlen)) + { + if (unformat (input, "bsid %U", unformat_ipv6_address, + &bsid)) + { + } + } + /* Loop over all the plugin behavior format functions */ sr_localsid_fn_registration_t *plugin = 0, **vec_plugins = 0; sr_localsid_fn_registration_t **plugin_it = 0; /* Create a vector out of the plugin pool as recommended */ - /* *INDENT-OFF* */ - pool_foreach (plugin, sm->plugin_functions, - { - vec_add1 (vec_plugins, plugin); - }); - /* *INDENT-ON* */ + /* *INDENT-OFF* */ + pool_foreach (plugin, sm->plugin_functions, + { + vec_add1 (vec_plugins, plugin); + }); + /* *INDENT-ON* */ vec_foreach (plugin_it, vec_plugins) { @@ -397,7 +418,7 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, "Error: SRv6 PSP only compatible with End and End.X"); rv = sr_cli_localsid (is_del, &resulting_address, prefix_len, end_psp, behavior, - sw_if_index, vlan_index, fib_index, &next_hop, + sw_if_index, vlan_index, fib_index, &next_hop, &sr_prefix, sr_prefixlen, &bsid, ls_plugin_mem); switch (rv) From c8d65682f8f4ff77e36f46f934d61df9b62f30ec Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 24 Jun 2019 15:16:00 -0700 Subject: [PATCH 071/154] gtp6.d --- extras/ietf105/runner.py | 8 +-- src/plugins/srv6-mobile/gtp6_d.c | 6 +- src/plugins/srv6-mobile/gtp6_d_di.c | 6 +- src/plugins/srv6-mobile/mobile.h | 2 +- src/plugins/srv6-mobile/node.c | 97 ++++++++++++++--------------- src/vnet/srv6/sr.h | 3 +- src/vnet/srv6/sr_api.c | 8 ++- src/vnet/srv6/sr_localsid.c | 8 +-- 8 files changed, 71 insertions(+), 67 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index ba8187aababa..c52401056407 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -560,7 +560,7 @@ def test_tmap(self): for p in c4.pg_read_packets(): p.show2() - def test_gtp6(self): + def test_gtp6_drop_in(self): # TESTS: # trace add af-packet-input 10 # pg interface on c1 172.20.0.1 @@ -692,7 +692,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "gtp6"]) + "ping", "srv6", "tmap", "gtp6_drop_in"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -728,8 +728,8 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.test_srv6() elif op == 'tmap': program.test_tmap() - elif op == 'gtp6': - program.test_gtp6() + elif op == 'gtp6_drop_in': + program.test_gtp6_drop_in() except Exception: program.logger.exception("") diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 598688282a79..bd0d7b282337 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -107,13 +107,13 @@ srv6_end_m_gtp6_d_init (vlib_main_t * vm) node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; - ip6 = &sm->cache_header; + ip6 = &sm->cache_hdr; - clib_memset_u8 (ip6, 0, sizeof(ip6_srv_combo_header_t)); + clib_memset_u8 (ip6, 0, sizeof(ip6srv_combo_header_t)); // IPv6 header (default) ip6->ip.ip_version_traffic_class_and_flow_label = 0x60; - ip6->ip.hoplimit = 64; + ip6->ip.hop_limit = 64; ip6->ip.protocol = IPPROTO_IPV6_ROUTE; // SR header (default) diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index 916724b8e65c..a728a7102bec 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -107,14 +107,14 @@ srv6_end_m_gtp6_d_di_init (vlib_main_t * vm) node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; - ip6 = &sm->cache_header; + ip6 = &sm->cache_hdr; clib_memset_u8 (ip6, 0, sizeof(ip6srv_combo_header_t)); // IPv6 header (default) ip6->ip.ip_version_traffic_class_and_flow_label = 0x60; - ip6->ip.hoplimit = 64; - ip6->protocol = IPPROTO_IPV6_ROUTE; + ip6->ip.hop_limit = 64; + ip6->ip.protocol = IPPROTO_IPV6_ROUTE; // SR header (default) ip6->sr.type = 4; diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index b8a09e73a0fd..2c97082d1214 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -84,7 +84,7 @@ typedef struct srv6_end_main_v6_decap_di_s vlib_main_t *vlib_main; vnet_main_t *vnet_main; - u32 end_m_gtp6_d_node_index; + u32 end_m_gtp6_d_di_node_index; u32 error_node_index; ip6srv_combo_header_t cache_hdr; diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 6bdb696efbe5..24174eeb4692 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -58,8 +58,8 @@ format_srv6_end_rewrite_trace6 (u8 * s, va_list * args) _(M_GTP6_D_BAD_PACKETS, "srv6 End.M.GTP6.D bad packets") #define foreach_srv6_end_v6_d_di_error \ - _(M_GTP6_D_PACKETS, "srv6 End.M.GTP6.D.DI packets") \ - _(M_GTP6_D_BAD_PACKETS, "srv6 End.M.GTP6.D.DI bad packets") + _(M_GTP6_D_DI_PACKETS, "srv6 End.M.GTP6.D.DI packets") \ + _(M_GTP6_D_DI_BAD_PACKETS, "srv6 End.M.GTP6.D.DI bad packets") typedef enum { @@ -317,8 +317,8 @@ static inline u16 hash_uword_to_u16 (uword *key) { u16 *val; - val = key; -#if uword bits == 64 + val = (u16 *)key; +#if uword_bits == 64 return val[0] ^ val[1] ^ val[3] ^ val[4]; #else return val[0] ^ val[1]; @@ -354,7 +354,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, ip6_sr_localsid_t *ls0; ip6srv_combo_header_t *ip6srv0; - ip6_address_t src0, dst0, seg0; + ip6_address_t dst0, seg0; ip6_gtpu_header_t *hdr0 = NULL; uword len0; @@ -378,7 +378,6 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); ip6srv0 = vlib_buffer_get_current (b0); - src0 = ip6srv0->ip.src_address; dst0 = ip6srv0->ip.dst_address; seg0 = ip6srv0->sr.segments[0]; @@ -420,7 +419,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, u16 index; u16 offset, shift; - index = sl0->localsid_len; + index = ls0->localsid_len; index += 8; offset = index / 8; shift = index % 8; @@ -526,7 +525,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6_sr_localsid_t *ls0; ip6_gtpu_header_t *hdr0 = NULL; - uword len0 + uword len0; ip6_address_t seg0; u32 teid = 0; @@ -534,7 +533,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, u32 offset, shift; ip6_header_t *encap; - u32 next0 = SRV6_END_M_GTP6_D_DI__NEXT_LOOKUP; + u32 next0 = SRV6_END_M_GTP6_D_NEXT_LOOKUP; // defaults bi0 = from[0]; @@ -553,11 +552,11 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, len0 = vlib_buffer_length_in_chain (vm, b0); - if ((hdr0->ip.protocol != IPPROTO_UDP) - || (hdr0->udp->dst_port != clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT)) - || (len0 < sizeof (ipv6_gtpu_header_t))) + if ((hdr0->ip6.protocol != IP_PROTOCOL_UDP) + || (hdr0->udp.dst_port != clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT)) + || (len0 < sizeof (ip6_gtpu_header_t))) { - next0 = SRV6_END_M_GTP6_D_DI__NEXT_DROP; + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; bad_n++; } @@ -573,9 +572,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, shift = ls0->sr_prefixlen % 8; offset += 1; - if (PREDICT_TRUE (shitft == 0)) + if (PREDICT_TRUE (shift == 0)) { - clib_memcpy (&seg0->as_u8[offset], teidp, 4); + clib_memcpy (&seg0.as_u8[offset], teidp, 4); } else { @@ -583,8 +582,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, for (idx = 0; idx < 4; idx++) { - seg0->as_u8[offset + idx] |= teidp[idx] >> shift; - seg0->as_u8[offset + idx + 1] |= teidp[idx] << shift; + seg0.as_u8[offset + idx] |= teidp[idx] >> shift; + seg0.as_u8[offset + idx + 1] |= teidp[idx] << shift; } } } @@ -599,8 +598,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, uword *p; ip6srv_combo_header_t *ip6srv; - struct ip6_sr_policy_t *sr_policy; - struct ip6_sr_sl_t *sl; + ip6_sr_policy_t *sr_policy; + ip6_sr_sl_t *sl = NULL; u32 *sl_index; u32 hdr_len; @@ -621,7 +620,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, break; } - hdr_len = sizeof (ip6srv_combo_heaer_t) + vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len = sizeof (ip6srv_combo_header_t) + vec_len (sl->segments) * sizeof(ip6_address_t); hdr_len += sizeof (ip6_address_t); // jump back to data[0] or pre_data if required @@ -629,9 +628,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv = vlib_buffer_get_current (b0); - clib_memcpy_fast (&ip6srv, sl0->rewrite, sizeof(ip6_sr_header_t)); + clib_memcpy_fast (&ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); - clib_memcpy_fast (&ip6srv, &sm->cache_header, sizeof(ip6_header_t)); + clib_memcpy_fast (&ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); @@ -641,7 +640,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, } else { - ip6srv->sr.protocol = IP_PROTOCOL_IP; + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; } ip6srv->sr.segments_left += 1; @@ -649,7 +648,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->sr.segments[0] = seg0; - clib_memcpy_fast (&ip6srv->sr.segments[1], (u8 *)(sl0->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + clib_memcpy_fast (&ip6srv->sr.segments[1], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), vec_len (sl->segments)); good_n++; @@ -669,7 +668,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, vlib_increment_combined_counter (((next0 == - SRV6_END_M_GTP6_D_DI_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : + SRV6_END_M_GTP6_D_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : &(sm2->sr_ls_valid_counters)), thread_index, ls0 - sm2->localsids, 1, vlib_buffer_length_in_chain (vm, b0)); @@ -680,12 +679,12 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, vlib_put_next_frame (vm, node, next_index, n_left_to_next); } - vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, - SRV6_END_ERROR_M_GTP6_D_DI_BAD_PACKETS, + vlib_node_increment_counter (vm, sm->end_m_gtp6_d_node_index, + SRV6_END_ERROR_M_GTP6_D_BAD_PACKETS, bad_n); - vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, - SRV6_END_ERROR_M_GTP6_D_DI_PACKETS, + vlib_node_increment_counter (vm, sm->end_m_gtp6_d_node_index, + SRV6_END_ERROR_M_GTP6_D_PACKETS, good_n); return frame->n_vectors; @@ -720,7 +719,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6_sr_localsid_t *ls0; ip6_gtpu_header_t *hdr0 = NULL; - uword len0 + uword len0; ip6_address_t dst0; ip6_address_t seg0; @@ -729,7 +728,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, u32 offset, shift; ip6_header_t *encap; - u32 next0 = SRV6_END_M_GTP6_D_DI__NEXT_LOOKUP; + u32 next0 = SRV6_END_M_GTP6_D_DI_NEXT_LOOKUP; // defaults bi0 = from[0]; @@ -748,17 +747,17 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, len0 = vlib_buffer_length_in_chain (vm, b0); - if ((hdr0->ip.protocol != IPPROTO_UDP) - || (hdr0->udp->dst_port != clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT)) - || (len0 < sizeof (ipv6_gtpu_header_t))) + if ((hdr0->ip6.protocol != IP_PROTOCOL_UDP) + || (hdr0->udp.dst_port != clib_host_to_net_u16 (SRV6_GTP_UDP_DST_PORT)) + || (len0 < sizeof (ip6_gtpu_header_t))) { - next0 = SRV6_END_M_GTP6_D_DI__NEXT_DROP; + next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; bad_n++; } else { - dst0 = hdr0->ip.dst_address; + dst0 = hdr0->ip6.dst_address; seg0 = ls0->sr_prefix; teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; @@ -769,9 +768,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, shift = ls0->sr_prefixlen % 8; offset += 1; - if (PREDICT_TRUE (shitft == 0)) + if (PREDICT_TRUE (shift == 0)) { - clib_memcpy (&seg0->as_u8[offset], teidp, 4); + clib_memcpy (&seg0.as_u8[offset], teidp, 4); } else { @@ -779,8 +778,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, for (idx = 0; idx < 4; idx++) { - seg0->as_u8[offset + idx] |= teidp[idx] >> shift; - seg0->as_u8[offset + idx + 1] |= teidp[idx] << shift; + seg0.as_u8[offset + idx] |= teidp[idx] >> shift; + seg0.as_u8[offset + idx + 1] |= teidp[idx] << shift; } } } @@ -795,8 +794,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, uword *p; ip6srv_combo_header_t *ip6srv; - struct ip6_sr_policy_t *sr_policy; - struct ip6_sr_sl_t *sl; + ip6_sr_policy_t *sr_policy; + ip6_sr_sl_t *sl = NULL; u32 *sl_index; u32 hdr_len; @@ -817,7 +816,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, break; } - hdr_len = sizeof (ip6srv_combo_heaer_t) + vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len = sizeof (ip6srv_combo_header_t) + vec_len (sl->segments) * sizeof(ip6_address_t); hdr_len += sizeof (ip6_address_t) * 2; // jump back to data[0] or pre_data if required @@ -825,9 +824,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv = vlib_buffer_get_current (b0); - clib_memcpy_fast (&ip6srv, sl0->rewrite, sizeof(ip6_sr_header_t)); + clib_memcpy_fast (&ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); - clib_memcpy_fast (&ip6srv, &sm->cache_header, sizeof(ip6_header_t)); + clib_memcpy_fast (&ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); @@ -837,7 +836,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, } else { - ip6srv->sr.protocol = IP_PROTOCOL_IP; + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; } ip6srv->sr.segments_left += 2; @@ -846,7 +845,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->sr.segments[0] = dst0; ip6srv->sr.segments[1] = seg0; - clib_memcpy_fast (&ip6srv->sr.segments[2], (u8 *)(sl0->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + clib_memcpy_fast (&ip6srv->sr.segments[2], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), vec_len (sl->segments)); good_n++; @@ -877,11 +876,11 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, vlib_put_next_frame (vm, node, next_index, n_left_to_next); } - vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + vlib_node_increment_counter (vm, sm->end_m_gtp6_d_di_node_index, SRV6_END_ERROR_M_GTP6_D_DI_BAD_PACKETS, bad_n); - vlib_node_increment_counter (vm, sm->end_m_gtp6_e_node_index, + vlib_node_increment_counter (vm, sm->end_m_gtp6_d_di_node_index, SRV6_END_ERROR_M_GTP6_D_DI_PACKETS, good_n); diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 4a79afc4fc45..048fcc7b4c97 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -323,9 +323,10 @@ sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, extern int sr_policy_del (ip6_address_t * bsid, u32 index); extern int -sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, +sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, + ip6_address_t *sr_prefix, u32 sr_prefixlen, ip6_address_t *bsid, void *ls_plugin_mem); extern int diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index 008243f81eb9..6a1e755e9b13 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -58,6 +58,7 @@ static void vl_api_sr_localsid_add_del_t_handler (vl_api_sr_localsid_add_del_t * mp) { vl_api_sr_localsid_add_del_reply_t *rmp; + ip6_address_t sr_prefix, bsid; int rv = 0; /* * int sr_cli_localsid (char is_del, ip6_address_t *localsid_addr, @@ -72,6 +73,8 @@ static void vl_api_sr_localsid_add_del_t_handler ip46_address_t prefix; clib_memset (&prefix, 0, sizeof (ip46_address_t)); + clib_memset (&sr_prefix, 0, sizeof (ip6_address_t)); + clib_memset (&bsid, 0, sizeof (ip6_address_t)); if ((mp->nh_addr4[0] | mp->nh_addr4[1] | mp-> nh_addr4[2] | mp->nh_addr4[3]) != 0) memcpy (&prefix.ip4, mp->nh_addr4, sizeof (prefix.ip4)); @@ -79,12 +82,13 @@ static void vl_api_sr_localsid_add_del_t_handler memcpy (&prefix.ip6, mp->nh_addr6, sizeof (prefix.ip6)); rv = sr_cli_localsid (mp->is_del, - (ip6_address_t *) & mp->localsid, + (ip6_address_t *) & mp->localsid, 0, mp->end_psp, mp->behavior, ntohl (mp->sw_if_index), ntohl (mp->vlan_index), - ntohl (mp->fib_table), &prefix, NULL); + ntohl (mp->fib_table), &prefix, + &sr_prefix, 0, &bsid, NULL); BAD_SW_IF_INDEX_LABEL; REPLY_MACRO (VL_API_SR_LOCALSID_ADD_DEL_REPLY); diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index db1de631b1a9..5c6c66f1fbab 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -319,7 +319,7 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, address_set = 1; else if (!address_set && unformat (input, "prefix %U/%d", unformat_ip6_address, - &resulting_address, &prefixlen)) + &resulting_address, &prefix_len)) address_set = 1; else if (!address_set && unformat (input, "addr %U", unformat_ip6_address, @@ -353,12 +353,12 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, behavior = SR_BEHAVIOR_DT4; else { - if (unformat (input, "end.m.gtp6.d %U/%d", unformat_ipv6_address, + if (unformat (input, "end.m.gtp6.d %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen) - || unformat (input, "end.m.gtp6.d.di %U/%d", unformat_ipv6_address, + || unformat (input, "end.m.gtp6.d.di %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { - if (unformat (input, "bsid %U", unformat_ipv6_address, + if (unformat (input, "bsid %U", unformat_ip6_address, &bsid)) { } From 193cbfd62677e4ef76cf20ef8fa75e0c0648bbaf Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 24 Jun 2019 15:24:05 -0700 Subject: [PATCH 072/154] add sleep --- extras/ietf105/runner.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index c52401056407..69dc5ce7ebdf 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -596,6 +596,9 @@ def test_gtp6_drop_in(self): c3.set_ipv6_route("eth1", "A2::1", "C::/120") c4.set_ipv6_pgroute("pg0", "3001::1", "4001::1/128") + print("Waiting...") + time.sleep(60) + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ IPv6(src="4001::2", dst="4001::1")/ UDP(sport=2152, dport=2152)/ From 9f8a638091c7902765c38eee7d9232ccac747415 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 25 Jun 2019 09:57:02 -0700 Subject: [PATCH 073/154] gtp6.d --- src/plugins/srv6-mobile/node.c | 138 ++++++++++++++++++++---------- src/vnet/srv6/sr_policy_rewrite.c | 2 +- 2 files changed, 96 insertions(+), 44 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 24174eeb4692..3b39c3998d0f 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -18,6 +18,8 @@ #include #include +extern ip6_address_t sr_pr_encaps_src; + typedef struct { ip6_address_t src, dst; u32 teid; @@ -527,7 +529,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6_gtpu_header_t *hdr0 = NULL; uword len0; - ip6_address_t seg0; + ip6_address_t seg0, dst0; u32 teid = 0; u8 *teidp; u32 offset, shift; @@ -563,6 +565,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, else { seg0 = ls0->sr_prefix; + dst0 = hdr0->ip6.dst_address; teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; @@ -603,24 +606,31 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, u32 *sl_index; u32 hdr_len; - p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); - if (p) - { - sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); - } - else + if (ls0->bsid.as_u64 != 0 || ls0->bsid.as_u64 != 0) { - continue; - } + p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); + if (p) + { + sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); + } + else + { + continue; + } - vec_foreach (sl_index, sr_policy->segments_lists) - { - sl = pool_elt_at_index (sm2->sid_lists, *sl_index); - if (sl != NULL) - break; + vec_foreach (sl_index, sr_policy->segments_lists) + { + sl = pool_elt_at_index (sm2->sid_lists, *sl_index); + if (sl != NULL) + break; + } } - hdr_len = sizeof (ip6srv_combo_header_t) + vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len = sizeof (ip6srv_combo_header_t); + + if (sl) + hdr_len += vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len += sizeof (ip6_address_t); // jump back to data[0] or pre_data if required @@ -628,11 +638,17 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv = vlib_buffer_get_current (b0); - clib_memcpy_fast (&ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); - - clib_memcpy_fast (&ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); + if (sl) + clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); + else + { + clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); + ip6srv->ip.src_address = dst0; + ip6srv->ip.dst_address = seg0; + } ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); + ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) { @@ -643,13 +659,25 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; } - ip6srv->sr.segments_left += 1; - ip6srv->sr.first_segment += 1; + if (sl) + { + ip6srv->sr.segments_left += 1; + ip6srv->sr.first_segment += 1; + } + else + { + ip6srv->sr.segments_left = 0; + ip6srv->sr.first_segment = 0; + } + + ip6srv->sr.length += sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg0; - clib_memcpy_fast (&ip6srv->sr.segments[1], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), - vec_len (sl->segments)); + if (sl) + clib_memcpy_fast (&ip6srv->sr.segments[1], + (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + vec_len (sl->segments)); good_n++; @@ -799,24 +827,31 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, u32 *sl_index; u32 hdr_len; - p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); - if (p) + if (ls0->bsid.as_u64[0] != 0 || ls0->bsid.as_u64[1] != 0) { - sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); - } - else - { - continue; - } + p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); + if (p) + { + sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); + } + else + { + continue; + } - vec_foreach (sl_index, sr_policy->segments_lists) - { - sl = pool_elt_at_index (sm2->sid_lists, *sl_index); - if (sl != NULL) - break; + vec_foreach (sl_index, sr_policy->segments_lists) + { + sl = pool_elt_at_index (sm2->sid_lists, *sl_index); + if (sl != NULL) + break; + } } - hdr_len = sizeof (ip6srv_combo_header_t) + vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len = sizeof (ip6srv_combo_header_t); + + if (sl) + hdr_len += vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len += sizeof (ip6_address_t) * 2; // jump back to data[0] or pre_data if required @@ -824,11 +859,17 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv = vlib_buffer_get_current (b0); - clib_memcpy_fast (&ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); - - clib_memcpy_fast (&ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); + if (sl) + clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); + else + { + clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); + ip6srv->ip.src_address = sr_pr_encaps_src; + ip6srv->ip.dst_address = seg0; + } ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); + ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) { @@ -839,14 +880,25 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; } - ip6srv->sr.segments_left += 2; - ip6srv->sr.first_segment += 2; + if (sl) + { + ip6srv->sr.segments_left += 2; + ip6srv->sr.first_segment += 2; + } + else + { + ip6srv->sr.segments_left += 1; + ip6srv->sr.first_segment += 1; + } + ip6srv->sr.length += (sizeof(ip6_address_t) * 2) /8; ip6srv->sr.segments[0] = dst0; ip6srv->sr.segments[1] = seg0; - clib_memcpy_fast (&ip6srv->sr.segments[2], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), - vec_len (sl->segments)); + if (sl) + clib_memcpy_fast (&ip6srv->sr.segments[2], + (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + vec_len (sl->segments)); good_n++; diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 85ca1294701d..37a905a55fd0 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -108,7 +108,7 @@ static dpo_type_t sr_pr_bsid_insert_dpo_type; /** * @brief IPv6 SA for encapsulated packets */ -static ip6_address_t sr_pr_encaps_src; +ip6_address_t sr_pr_encaps_src; /******************* SR rewrite set encaps IPv6 source addr *******************/ /* Note: This is temporal. We don't know whether to follow this path or From 9b0e2aa80a3240b761d9941cc28c804ac19a6f4b Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 25 Jun 2019 15:40:34 -0700 Subject: [PATCH 074/154] remove srh for non drop-in case --- src/plugins/srv6-mobile/gtp6_d.c | 5 +- src/plugins/srv6-mobile/mobile.h | 2 +- src/plugins/srv6-mobile/node.c | 85 +++++++++++++++----------------- 3 files changed, 42 insertions(+), 50 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index bd0d7b282337..b6badd66526c 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -114,10 +114,7 @@ srv6_end_m_gtp6_d_init (vlib_main_t * vm) // IPv6 header (default) ip6->ip.ip_version_traffic_class_and_flow_label = 0x60; ip6->ip.hop_limit = 64; - ip6->ip.protocol = IPPROTO_IPV6_ROUTE; - - // SR header (default) - ip6->sr.type = 4; + ip6->ip.protocol = IP_PROTOCOL_IPV6; dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index 2c97082d1214..3b2c9eade042 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -73,7 +73,7 @@ typedef struct srv6_end_main_v6_decap_s u32 end_m_gtp6_d_node_index; u32 error_node_index; - ip6srv_combo_header_t cache_hdr; + ip6_header_t cache_hdr; } srv6_end_main_v6_decap_t; extern srv6_end_main_v6_decap_t srv6_end_main_v6_decap; diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 3b39c3998d0f..835647dc0c91 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -626,12 +626,16 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, } } - hdr_len = sizeof (ip6srv_combo_header_t); - if (sl) - hdr_len += vec_len (sl->segments) * sizeof(ip6_address_t); - - hdr_len += sizeof (ip6_address_t); + { + hdr_len = sizeof (ip6srv_combo_header_t); + hdr_len += vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len += sizeof (ip6_address_t); + } + else + { + hdr_len = sizeof (ip6_header_t); + } // jump back to data[0] or pre_data if required vlib_buffer_advance (b0, -(word) hdr_len); @@ -639,45 +643,38 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv = vlib_buffer_get_current (b0); if (sl) - clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); - else { - clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); - ip6srv->ip.src_address = dst0; - ip6srv->ip.dst_address = seg0; - } + clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); - ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); - ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; + ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - { - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - } - else - { - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; - } - - if (sl) - { ip6srv->sr.segments_left += 1; ip6srv->sr.first_segment += 1; + + ip6srv->sr.length += sizeof(ip6_address_t) / 8; + ip6srv->sr.segments[0] = seg0; + + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + + clib_memcpy_fast (&ip6srv->sr.segments[1], + (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + vec_len (sl->segments)); } else { - ip6srv->sr.segments_left = 0; - ip6srv->sr.first_segment = 0; - } + clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); - ip6srv->sr.length += sizeof(ip6_address_t) / 8; + ip6srv->ip.src_address = dst0; + ip6srv->ip.dst_address = seg0; - ip6srv->sr.segments[0] = seg0; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x40) + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + } - if (sl) - clib_memcpy_fast (&ip6srv->sr.segments[1], - (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), - vec_len (sl->segments)); + ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); good_n++; @@ -860,12 +857,21 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv = vlib_buffer_get_current (b0); if (sl) - clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); + { + clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); + + ip6srv->sr.segments_left += 2; + ip6srv->sr.first_segment += 2; + } else { clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); + ip6srv->ip.src_address = sr_pr_encaps_src; ip6srv->ip.dst_address = seg0; + + ip6srv->sr.segments_left += 1; + ip6srv->sr.first_segment += 1; } ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); @@ -880,17 +886,6 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; } - if (sl) - { - ip6srv->sr.segments_left += 2; - ip6srv->sr.first_segment += 2; - } - else - { - ip6srv->sr.segments_left += 1; - ip6srv->sr.first_segment += 1; - } - ip6srv->sr.length += (sizeof(ip6_address_t) * 2) /8; ip6srv->sr.segments[0] = dst0; ip6srv->sr.segments[1] = seg0; From ce7d712751784f8e61497cf11deb433e280917a0 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 25 Jun 2019 15:48:21 -0700 Subject: [PATCH 075/154] cosmetic change --- src/plugins/srv6-mobile/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 835647dc0c91..5b881bf764cc 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -670,7 +670,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->ip.src_address = dst0; ip6srv->ip.dst_address = seg0; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x40) + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; } From 96a0d55c354569adf9fe2f8077f2f5b666a3c920 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 25 Jun 2019 23:50:51 -0700 Subject: [PATCH 076/154] remove bsid option for gtp6.d --- src/plugins/srv6-mobile/gtp6_d.c | 8 ++++---- src/plugins/srv6-mobile/node.c | 34 ++++++++++++-------------------- src/vnet/srv6/sr.h | 2 +- src/vnet/srv6/sr_api.c | 5 ++--- src/vnet/srv6/sr_localsid.c | 12 +++-------- 5 files changed, 23 insertions(+), 38 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index b6badd66526c..5f0dce889683 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -93,7 +93,7 @@ static clib_error_t * srv6_end_m_gtp6_d_init (vlib_main_t * vm) { srv6_end_main_v6_decap_t *sm = &srv6_end_main_v6_decap; - ip6srv_combo_header_t *ip6; + ip6_header_t *ip6; dpo_type_t dpo_type; vlib_node_t *node; u32 rc; @@ -112,9 +112,9 @@ srv6_end_m_gtp6_d_init (vlib_main_t * vm) clib_memset_u8 (ip6, 0, sizeof(ip6srv_combo_header_t)); // IPv6 header (default) - ip6->ip.ip_version_traffic_class_and_flow_label = 0x60; - ip6->ip.hop_limit = 64; - ip6->ip.protocol = IP_PROTOCOL_IPV6; + ip6->ip_version_traffic_class_and_flow_label = 0x60; + ip6->hop_limit = 64; + ip6->protocol = IP_PROTOCOL_IPV6; dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 5b881bf764cc..4784dd69cef2 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -606,18 +606,14 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, u32 *sl_index; u32 hdr_len; - if (ls0->bsid.as_u64 != 0 || ls0->bsid.as_u64 != 0) + p = mhash_get (&sm2->sr_policies_index_hash, &ls0->sr_prefix); + if (p) { - p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); - if (p) - { - sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); - } - else - { - continue; - } + sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); + } + if (sr_policy) + { vec_foreach (sl_index, sr_policy->segments_lists) { sl = pool_elt_at_index (sm2->sid_lists, *sl_index); @@ -824,18 +820,14 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, u32 *sl_index; u32 hdr_len; - if (ls0->bsid.as_u64[0] != 0 || ls0->bsid.as_u64[1] != 0) - { - p = mhash_get (&sm2->sr_policies_index_hash, &ls0->bsid); - if (p) - { - sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); - } - else - { - continue; - } + p = mhash_get (&sm2->sr_policies_index_hash, &ls0->sr_prefix); + if (p) + { + sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); + } + if (sr_policy) + { vec_foreach (sl_index, sr_policy->segments_lists) { sl = pool_elt_at_index (sm2->sid_lists, *sl_index); diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 048fcc7b4c97..8fa3f21ba257 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -326,7 +326,7 @@ extern int sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, - ip6_address_t *sr_prefix, u32 sr_prefixlen, ip6_address_t *bsid, + ip6_address_t *sr_prefix, u32 sr_prefixlen, void *ls_plugin_mem); extern int diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index 6a1e755e9b13..f50783f2a932 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -58,7 +58,7 @@ static void vl_api_sr_localsid_add_del_t_handler (vl_api_sr_localsid_add_del_t * mp) { vl_api_sr_localsid_add_del_reply_t *rmp; - ip6_address_t sr_prefix, bsid; + ip6_address_t sr_prefix; int rv = 0; /* * int sr_cli_localsid (char is_del, ip6_address_t *localsid_addr, @@ -74,7 +74,6 @@ static void vl_api_sr_localsid_add_del_t_handler clib_memset (&prefix, 0, sizeof (ip46_address_t)); clib_memset (&sr_prefix, 0, sizeof (ip6_address_t)); - clib_memset (&bsid, 0, sizeof (ip6_address_t)); if ((mp->nh_addr4[0] | mp->nh_addr4[1] | mp-> nh_addr4[2] | mp->nh_addr4[3]) != 0) memcpy (&prefix.ip4, mp->nh_addr4, sizeof (prefix.ip4)); @@ -88,7 +87,7 @@ static void vl_api_sr_localsid_add_del_t_handler ntohl (mp->sw_if_index), ntohl (mp->vlan_index), ntohl (mp->fib_table), &prefix, - &sr_prefix, 0, &bsid, NULL); + &sr_prefix, 0, NULL); BAD_SW_IF_INDEX_LABEL; REPLY_MACRO (VL_API_SR_LOCALSID_ADD_DEL_REPLY); diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index 5c6c66f1fbab..fb4365391e64 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -66,7 +66,7 @@ int sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, - ip6_address_t *sr_prefix, u32 sr_prefixlen, ip6_address_t *bsid, + ip6_address_t *sr_prefix, u32 sr_prefixlen, void *ls_plugin_mem) { ip6_sr_main_t *sm = &sr_main; @@ -176,7 +176,6 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, ls->localsid_len = pfx.fp_len; clib_memcpy (&ls->sr_prefix, sr_prefix, sizeof (ip6_address_t)); ls->sr_prefixlen = sr_prefixlen; - clib_memcpy (&ls->bsid, bsid, sizeof (ip6_address_t)); switch (behavior) { case SR_BEHAVIOR_END: @@ -300,13 +299,11 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, void *ls_plugin_mem = 0; ip6_address_t sr_prefix; u32 sr_prefixlen = (u32) ~ 0; - ip6_address_t bsid; int rv; clib_memset (&resulting_address, 0, sizeof (ip6_address_t)); clib_memset (&sr_prefix, 0, sizeof (ip6_address_t)); - clib_memset (&bsid, 0, sizeof (ip6_address_t)); ip46_address_reset (&next_hop); while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -358,10 +355,6 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, || unformat (input, "end.m.gtp6.d.di %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { - if (unformat (input, "bsid %U", unformat_ip6_address, - &bsid)) - { - } } /* Loop over all the plugin behavior format functions */ @@ -418,7 +411,8 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, "Error: SRv6 PSP only compatible with End and End.X"); rv = sr_cli_localsid (is_del, &resulting_address, prefix_len, end_psp, behavior, - sw_if_index, vlan_index, fib_index, &next_hop, &sr_prefix, sr_prefixlen, &bsid, + sw_if_index, vlan_index, fib_index, &next_hop, + &sr_prefix, sr_prefixlen, ls_plugin_mem); switch (rv) From 4f6913f65cf5263496b6d146e2e92648e4d1f33a Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 26 Jun 2019 00:10:28 -0700 Subject: [PATCH 077/154] remove bsid option for gtp6 --- src/plugins/srv6-mobile/node.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 4784dd69cef2..a1e16b4f77d9 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -601,7 +601,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, uword *p; ip6srv_combo_header_t *ip6srv; - ip6_sr_policy_t *sr_policy; + ip6_sr_policy_t *sr_policy = NULL; ip6_sr_sl_t *sl = NULL; u32 *sl_index; u32 hdr_len; @@ -815,7 +815,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, uword *p; ip6srv_combo_header_t *ip6srv; - ip6_sr_policy_t *sr_policy; + ip6_sr_policy_t *sr_policy = NULL; ip6_sr_sl_t *sl = NULL; u32 *sl_index; u32 hdr_len; From 0d613f852066ddee4fec8df0a362e4902f84fc04 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 2 Jul 2019 14:26:54 -0700 Subject: [PATCH 078/154] modify test function --- extras/ietf105/runner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 69dc5ce7ebdf..ad0b9a3b39a2 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -580,9 +580,9 @@ def test_gtp6_drop_in(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3::") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix 4001::/64 behavior end.m.gtp6.d.di D4::/64 bsid D1::") + c1.vppctl_exec("sr localsid prefix 4001::/64 behavior end.m.gtp6.d.di D4::/64") c2.vppctl_exec("sr localsid address D2:: behavior end") From 187666931e83dfe3e0c3fc79617af213a2f99ae1 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 2 Jul 2019 17:03:10 -0700 Subject: [PATCH 079/154] fix the crash issue --- src/plugins/srv6-mobile/gtp6_d.c | 2 +- src/plugins/srv6-mobile/gtp6_e.c | 5 +---- src/plugins/srv6-mobile/mobile.h | 3 --- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 5f0dce889683..d55a38bc8a1d 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -109,7 +109,7 @@ srv6_end_m_gtp6_d_init (vlib_main_t * vm) ip6 = &sm->cache_hdr; - clib_memset_u8 (ip6, 0, sizeof(ip6srv_combo_header_t)); + clib_memset_u8 (ip6, 0, sizeof(ip6_header_t)); // IPv6 header (default) ip6->ip_version_traffic_class_and_flow_label = 0x60; diff --git a/src/plugins/srv6-mobile/gtp6_e.c b/src/plugins/srv6-mobile/gtp6_e.c index d8babb3fb30c..b56422d6b2b9 100644 --- a/src/plugins/srv6-mobile/gtp6_e.c +++ b/src/plugins/srv6-mobile/gtp6_e.c @@ -109,11 +109,8 @@ srv6_end_m_gtp6_e_init (vlib_main_t * vm) node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); sm->error_node_index = node->index; - sm->dst_p_len = 32; - sm->src_p_len = 64; - // clear the pre cached packet - clib_memset_u8 (ip6, 0, sizeof (ip4_gtpu_header_t)); + clib_memset_u8 (ip6, 0, sizeof (ip6_gtpu_header_t)); // set defaults ip6->ip_version_traffic_class_and_flow_label = 0x60; diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index 3b2c9eade042..7dd9962d465a 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -56,9 +56,6 @@ typedef struct srv6_end_main_v6_s u32 end_m_gtp6_e_node_index; u32 error_node_index; - u32 dst_p_len; - u32 src_p_len; - ip6_gtpu_header_t cache_hdr; } srv6_end_main_v6_t; From 77d185c70babb0ea23cf1dd77ef859cd97ab5378 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 2 Jul 2019 20:39:37 -0700 Subject: [PATCH 080/154] fix the build issue --- src/vnet/srv6/sr.h | 6 ++---- src/vnet/srv6/sr_localsid.c | 13 ++++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 8fa3f21ba257..c59f12fa2cd4 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -173,8 +173,6 @@ typedef struct ip6_address_t sr_prefix; u16 sr_prefixlen; - ip6_address_t bsid; - void *plugin_mem; /**< Memory to be used by the plugin callback functions */ } ip6_sr_localsid_t; @@ -323,10 +321,10 @@ sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, extern int sr_policy_del (ip6_address_t * bsid, u32 index); extern int -sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, +sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, - ip6_address_t *sr_prefix, u32 sr_prefixlen, + ip6_address_t *sr_prefix, u16 sr_prefixlen, void *ls_plugin_mem); extern int diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index fb4365391e64..235aff4631c2 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -63,10 +63,10 @@ static dpo_type_t sr_localsid_d_dpo_type; * @return 0 on success, error otherwise. */ int -sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, +sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, - ip6_address_t *sr_prefix, u32 sr_prefixlen, + ip6_address_t * sr_prefix, u16 sr_prefixlen, void *ls_plugin_mem) { ip6_sr_main_t *sm = &sr_main; @@ -174,7 +174,10 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u32 prefixlen, ls->nh_adj = (u32) ~ 0; ls->fib_table = fib_table; ls->localsid_len = pfx.fp_len; - clib_memcpy (&ls->sr_prefix, sr_prefix, sizeof (ip6_address_t)); + if (sr_prefix) + clib_memcpy (&ls->sr_prefix, sr_prefix, sizeof (ip6_address_t)); + else + clib_memset (&ls->sr_prefix, 0, sizeof (ip6_header_t)); ls->sr_prefixlen = sr_prefixlen; switch (behavior) { @@ -289,7 +292,7 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, vnet_main_t *vnm = vnet_get_main (); ip6_sr_main_t *sm = &sr_main; u32 sw_if_index = (u32) ~ 0, vlan_index = (u32) ~ 0, fib_index = 0; - u32 prefix_len = (u32) ~ 0; + u16 prefix_len = 0; int is_del = 0; int end_psp = 0; ip6_address_t resulting_address; @@ -298,7 +301,7 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, char behavior = 0; void *ls_plugin_mem = 0; ip6_address_t sr_prefix; - u32 sr_prefixlen = (u32) ~ 0; + u16 sr_prefixlen = 0; int rv; From fdebd3138da2809f3767d1d16fa0a98e4812e3fc Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 2 Jul 2019 22:01:46 -0700 Subject: [PATCH 081/154] Move sr_prefix param to plugin memory --- src/plugins/srv6-mobile/gtp6_d.c | 28 +++++++++++++++++++++++++++- src/plugins/srv6-mobile/gtp6_d_di.c | 28 +++++++++++++++++++++++++++- src/plugins/srv6-mobile/mobile.h | 5 +++++ src/plugins/srv6-mobile/node.c | 26 ++++++++++++++++---------- src/vnet/srv6/sr.h | 1 - src/vnet/srv6/sr_api.c | 4 +--- src/vnet/srv6/sr_localsid.c | 16 ---------------- 7 files changed, 76 insertions(+), 32 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index d55a38bc8a1d..2a61909e4f62 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -60,7 +60,7 @@ const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { static u8 fn_name[] = "SRv6-End.M.GTP6.D-plugin"; static u8 keyword_str[] = "end.m.gtp6.d"; static u8 def_str[] = "Endpoint function with dencapsulation for IPv6/GTP tunnel"; -static u8 param_str[] = ""; +static u8 param_str[] = "/"; static u8 * clb_format_srv6_end_m_gtp6_d (u8 * s, va_list * args) @@ -72,8 +72,34 @@ clb_format_srv6_end_m_gtp6_d (u8 * s, va_list * args) static uword clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) { + void **plugin_mem_p = va_arg (*args, void **); + srv6_end_gtp6_d_param *ls_mem; + ip6_address_t sr_prefix; + u16 sr_prefixlen; + int sr_prefix_set = 0; + if (!unformat (input, "end.m.gtp6.d")) return 0; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (unformat "%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen) + { + sr_prefix_set = 1; + break; + } + } + + if (sr_prefix_set == 0) + return 0; + + ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); + clib_memset (ls_mem, 0, sizoef *ls_mem); + *plugin_mem_p = ls_mem; + + ls_mem->sr_prefix = sr_prefix; + ls_mem->sr_prefixlen = sr_prefixlen; + return 1; } diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index a728a7102bec..34b4d8804e5e 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -60,7 +60,7 @@ const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { static u8 fn_name[] = "SRv6-End.M.GTP6.D.DI-plugin"; static u8 keyword_str[] = "end.m.gtp6.d.di"; static u8 def_str[] = "Endpoint function with drop-in dencapsulation for IPv6/GTP tunnel"; -static u8 param_str[] = ""; +static u8 param_str[] = "/"; static u8 * clb_format_srv6_end_m_gtp6_d_di (u8 * s, va_list * args) @@ -72,8 +72,34 @@ clb_format_srv6_end_m_gtp6_d_di (u8 * s, va_list * args) static uword clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) { + void **plugin_mem_p = va_arg (*args, void **); + srv6_end_gtp6_d_param *ls_mem; + ip6_address_t sr_prefix; + u16 sr_prefixlen; + int sr_prefix_set = 0; + if (!unformat (input, "end.m.gtp6.d.di")) return 0; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (unformat "%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen) + { + sr_prefix_set = 1; + break; + } + } + + if (sr_prefix_set == 0) + return 0; + + ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); + clib_memset (ls_mem, 0, sizoef *ls_mem); + *plugin_mem_p = ls_mem; + + ls_mem->sr_prefix = sr_prefix; + ls_mem->sr_prefixlen = sr_prefixlen; + return 1; } diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index 7dd9962d465a..185c2a1e5df7 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -28,6 +28,11 @@ #define SRV6_GTP_UDP_DST_PORT 2152 +typedef struct srv6_end_gtp6_param_s +{ + ip6_address_t sr_prefix; + u16 sr_prefixlen; +} srv6_end_gtp6_param_t; typedef struct srv6_end_main_v4_s { diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index a1e16b4f77d9..1729e4919eed 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -525,6 +525,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, u32 bi0; vlib_buffer_t *b0; ip6_sr_localsid_t *ls0; + srv6_end_gtp6_param_t *ls_param; ip6_gtpu_header_t *hdr0 = NULL; uword len0; @@ -550,6 +551,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, pool_elt_at_index (sm2->localsids, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + ls_param = (srv6_end_gtp6_param_t *)ls0->plugin_mem; + hdr0 = vlib_buffer_get_current (b0); len0 = vlib_buffer_length_in_chain (vm, b0); @@ -564,15 +567,15 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, } else { - seg0 = ls0->sr_prefix; + seg0 = ls_param->sr_prefix; dst0 = hdr0->ip6.dst_address; teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; - if (ls0->sr_prefixlen != 0) + if (ls_param->sr_prefixlen != 0) { - offset = ls0->sr_prefixlen / 8; - shift = ls0->sr_prefixlen % 8; + offset = ls_param->sr_prefixlen / 8; + shift = ls_param->sr_prefixlen % 8; offset += 1; if (PREDICT_TRUE (shift == 0)) @@ -606,7 +609,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, u32 *sl_index; u32 hdr_len; - p = mhash_get (&sm2->sr_policies_index_hash, &ls0->sr_prefix); + p = mhash_get (&sm2->sr_policies_index_hash, &ls_param->sr_prefix); if (p) { sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); @@ -720,6 +723,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6_sr_main_t *sm2 = &sr_main; u32 n_left_from, next_index, *from, *to_next; u32 thread_index = vm->thread_index; + srv6_end_gtp6_param_t *ls_param; u32 good_n = 0, bad_n = 0; @@ -764,6 +768,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, pool_elt_at_index (sm2->localsids, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + ls_param = (srv6_end_gtp6_param_t *)ls0->plugin_mem; + hdr0 = vlib_buffer_get_current (b0); len0 = vlib_buffer_length_in_chain (vm, b0); @@ -779,14 +785,14 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, else { dst0 = hdr0->ip6.dst_address; - seg0 = ls0->sr_prefix; + seg0 = ls_param->sr_prefix; teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; - if (ls0->sr_prefixlen != 0) + if (ls_param->sr_prefixlen != 0) { - offset = ls0->sr_prefixlen / 8; - shift = ls0->sr_prefixlen % 8; + offset = ls_param->sr_prefixlen / 8; + shift = ls_param->sr_prefixlen % 8; offset += 1; if (PREDICT_TRUE (shift == 0)) @@ -820,7 +826,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, u32 *sl_index; u32 hdr_len; - p = mhash_get (&sm2->sr_policies_index_hash, &ls0->sr_prefix); + p = mhash_get (&sm2->sr_policies_index_hash, &ls_param->sr_prefix); if (p) { sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index c59f12fa2cd4..af8d57cae662 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -324,7 +324,6 @@ extern int sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, - ip6_address_t *sr_prefix, u16 sr_prefixlen, void *ls_plugin_mem); extern int diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index f50783f2a932..2ee9836e4da7 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -58,7 +58,6 @@ static void vl_api_sr_localsid_add_del_t_handler (vl_api_sr_localsid_add_del_t * mp) { vl_api_sr_localsid_add_del_reply_t *rmp; - ip6_address_t sr_prefix; int rv = 0; /* * int sr_cli_localsid (char is_del, ip6_address_t *localsid_addr, @@ -73,7 +72,6 @@ static void vl_api_sr_localsid_add_del_t_handler ip46_address_t prefix; clib_memset (&prefix, 0, sizeof (ip46_address_t)); - clib_memset (&sr_prefix, 0, sizeof (ip6_address_t)); if ((mp->nh_addr4[0] | mp->nh_addr4[1] | mp-> nh_addr4[2] | mp->nh_addr4[3]) != 0) memcpy (&prefix.ip4, mp->nh_addr4, sizeof (prefix.ip4)); @@ -87,7 +85,7 @@ static void vl_api_sr_localsid_add_del_t_handler ntohl (mp->sw_if_index), ntohl (mp->vlan_index), ntohl (mp->fib_table), &prefix, - &sr_prefix, 0, NULL); + NULL); BAD_SW_IF_INDEX_LABEL; REPLY_MACRO (VL_API_SR_LOCALSID_ADD_DEL_REPLY); diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index 235aff4631c2..9857b1aa447e 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -66,7 +66,6 @@ int sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, char end_psp, u8 behavior, u32 sw_if_index, u32 vlan_index, u32 fib_table, ip46_address_t * nh_addr, - ip6_address_t * sr_prefix, u16 sr_prefixlen, void *ls_plugin_mem) { ip6_sr_main_t *sm = &sr_main; @@ -174,11 +173,6 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, ls->nh_adj = (u32) ~ 0; ls->fib_table = fib_table; ls->localsid_len = pfx.fp_len; - if (sr_prefix) - clib_memcpy (&ls->sr_prefix, sr_prefix, sizeof (ip6_address_t)); - else - clib_memset (&ls->sr_prefix, 0, sizeof (ip6_header_t)); - ls->sr_prefixlen = sr_prefixlen; switch (behavior) { case SR_BEHAVIOR_END: @@ -300,8 +294,6 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, char address_set = 0; char behavior = 0; void *ls_plugin_mem = 0; - ip6_address_t sr_prefix; - u16 sr_prefixlen = 0; int rv; @@ -353,13 +345,6 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, behavior = SR_BEHAVIOR_DT4; else { - if (unformat (input, "end.m.gtp6.d %U/%d", unformat_ip6_address, - &sr_prefix, &sr_prefixlen) - || unformat (input, "end.m.gtp6.d.di %U/%d", unformat_ip6_address, - &sr_prefix, &sr_prefixlen)) - { - } - /* Loop over all the plugin behavior format functions */ sr_localsid_fn_registration_t *plugin = 0, **vec_plugins = 0; sr_localsid_fn_registration_t **plugin_it = 0; @@ -415,7 +400,6 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_cli_localsid (is_del, &resulting_address, prefix_len, end_psp, behavior, sw_if_index, vlan_index, fib_index, &next_hop, - &sr_prefix, sr_prefixlen, ls_plugin_mem); switch (rv) From 39edd8ccb30f105195b511933d3dbc41c4d47836 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 2 Jul 2019 22:26:58 -0700 Subject: [PATCH 082/154] move sr prefix info to plugin mem --- src/plugins/srv6-mobile/gtp6_d.c | 6 +++--- src/plugins/srv6-mobile/gtp6_d_di.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 2a61909e4f62..32cace62e502 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -73,7 +73,7 @@ static uword clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) { void **plugin_mem_p = va_arg (*args, void **); - srv6_end_gtp6_d_param *ls_mem; + srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; u16 sr_prefixlen; int sr_prefix_set = 0; @@ -83,7 +83,7 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { - if (unformat "%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen) + if (unformat (input,"%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { sr_prefix_set = 1; break; @@ -94,7 +94,7 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) return 0; ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); - clib_memset (ls_mem, 0, sizoef *ls_mem); + clib_memset (ls_mem, 0, sizeof *ls_mem); *plugin_mem_p = ls_mem; ls_mem->sr_prefix = sr_prefix; diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index 34b4d8804e5e..0f72ac32f40a 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -73,7 +73,7 @@ static uword clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) { void **plugin_mem_p = va_arg (*args, void **); - srv6_end_gtp6_d_param *ls_mem; + srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; u16 sr_prefixlen; int sr_prefix_set = 0; @@ -83,7 +83,7 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { - if (unformat "%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen) + if (unformat (input, "%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { sr_prefix_set = 1; break; @@ -94,7 +94,7 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) return 0; ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); - clib_memset (ls_mem, 0, sizoef *ls_mem); + clib_memset (ls_mem, 0, sizeof *ls_mem); *plugin_mem_p = ls_mem; ls_mem->sr_prefix = sr_prefix; From 157ce705b0789276a53c620b8324542f8316c4c4 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 2 Jul 2019 22:27:30 -0700 Subject: [PATCH 083/154] move sr prefix info to plugin mem --- src/vnet/srv6/sr_localsid.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index 9857b1aa447e..3127132fa529 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -298,7 +298,6 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, int rv; clib_memset (&resulting_address, 0, sizeof (ip6_address_t)); - clib_memset (&sr_prefix, 0, sizeof (ip6_address_t)); ip46_address_reset (&next_hop); while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) From 895b965d0caf4446bf5bae5162e127189d4633e0 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 3 Jul 2019 11:59:33 -0700 Subject: [PATCH 084/154] fix the issue on plugin-memory --- src/plugins/srv6-mobile/gtp6_d.c | 22 ++++++++-------------- src/plugins/srv6-mobile/gtp6_d_di.c | 22 ++++++++-------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 32cace62e502..e5285442a681 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -65,7 +65,12 @@ static u8 param_str[] = "/"; static u8 * clb_format_srv6_end_m_gtp6_d (u8 * s, va_list * args) { - s = format (s, "SRv6 End format function unsupported."); + srv6_end_gtp6_param_t *ls_mem = va_arg (*args, void *); + + s = format (s, "SRv6 End gtp6.d\n\t"); + + s = format (s, "SR Prefix: %U/%d\n", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); + return s; } @@ -76,23 +81,12 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; u16 sr_prefixlen; - int sr_prefix_set = 0; - if (!unformat (input, "end.m.gtp6.d")) - return 0; - - while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + if (!unformat (input, "end.m.gtp6.d %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { - if (unformat (input,"%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) - { - sr_prefix_set = 1; - break; - } + return 0; } - if (sr_prefix_set == 0) - return 0; - ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); clib_memset (ls_mem, 0, sizeof *ls_mem); *plugin_mem_p = ls_mem; diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index 0f72ac32f40a..df6c5b74d312 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -65,7 +65,12 @@ static u8 param_str[] = "/"; static u8 * clb_format_srv6_end_m_gtp6_d_di (u8 * s, va_list * args) { - s = format (s, "SRv6 End format function unsupported."); + srv6_end_gtp6_param_t *ls_mem = va_arg (*args, void *); + + s = format (s, "SRv6 End gtp6.d Drop-in\n\t"); + + s = format (s, "SR Prefix: %U/%d\n", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); + return s; } @@ -76,23 +81,12 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; u16 sr_prefixlen; - int sr_prefix_set = 0; - if (!unformat (input, "end.m.gtp6.d.di")) - return 0; - - while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + if (!unformat (input, "end.m.gtp6.d.di %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { - if (unformat (input, "%U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) - { - sr_prefix_set = 1; - break; - } + return 0; } - if (sr_prefix_set == 0) - return 0; - ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); clib_memset (ls_mem, 0, sizeof *ls_mem); *plugin_mem_p = ls_mem; From 0cdad4bb29f4abc9384794de1f1216ac5fd0e11c Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 3 Jul 2019 13:08:18 -0700 Subject: [PATCH 085/154] update the runner script --- extras/ietf105/runner.py | 14 ++++++++------ src/plugins/srv6-mobile/node.c | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index ad0b9a3b39a2..9b2a433f074f 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -568,21 +568,24 @@ def test_gtp6_drop_in(self): self.start_containers() + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") c1 = self.containers.get(self.get_name(self.instance_names[0])) c2 = self.containers.get(self.get_name(self.instance_names[1])) c3 = self.containers.get(self.get_name(self.instance_names[2])) c4 = self.containers.get(self.get_name(self.instance_names[-1])) - c1.pg_create_interface6(local_ip="2001::1/64", remote_ip="2001::2/64", + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface6(local_ip="3001::2/64", remote_ip="3001::1", + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix 4001::/64 behavior end.m.gtp6.d.di D4::/64") + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") c2.vppctl_exec("sr localsid address D2:: behavior end") @@ -594,13 +597,12 @@ def test_gtp6_drop_in(self): c2.set_ipv6_route("eth1", "A1::1", "C::/120") c3.set_ipv6_route("eth2", "A3::2", "D4::/32") c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ipv6_pgroute("pg0", "3001::1", "4001::1/128") print("Waiting...") - time.sleep(60) + time.sleep(30) p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="4001::2", dst="4001::1")/ + IPv6(src="C::2", dst="D::2")/ UDP(sport=2152, dport=2152)/ GTP_U_Header(gtp_type="g_pdu", teid=200)/ IP(src="172.99.0.1", dst="172.99.0.2")/ diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 1729e4919eed..3fc83454665d 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -870,6 +870,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->sr.segments_left += 1; ip6srv->sr.first_segment += 1; + ip6srv->sr.type = ROUTING_HEADER_TYPE_SR; } ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); From fde56888f97e38df8e8feb578c6879b7a5021de4 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 3 Jul 2019 14:08:03 -0700 Subject: [PATCH 086/154] add trace --- src/plugins/srv6-mobile/node.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 3fc83454665d..bba30fb52534 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -22,6 +22,8 @@ extern ip6_address_t sr_pr_encaps_src; typedef struct { ip6_address_t src, dst; + ip6_address_t sr_prefix; + u16 sr_prefixlen; u32 teid; } srv6_end_rewrite_trace_t; @@ -43,8 +45,9 @@ format_srv6_end_rewrite_trace6 (u8 * s, va_list * args) CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); - return format (s, "SRv6-END-rewrite: src %U dst %U\n TEID: 0x%x", - format_ip6_address, &t->src, format_ip6_address, &t->dst, t->teid); + return format (s, "SRv6-END-rewrite: src %U dst %U\n TEID: 0x%x\n sr_prefix: %U/%d", + format_ip6_address, &t->src, format_ip6_address, &t->dst, t->teid, + format_ip6_address, &t->sr_prefix, t->sr_prefixlen); } #define foreach_srv6_end_v4_error \ @@ -687,6 +690,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, clib_memcpy (tr->dst.as_u8, ip6srv->ip.dst_address.as_u8, sizeof (ip6_address_t)); tr->teid = teid; + clib_memcpy (tr->sr_prefix.as_u8, ls_param->sr_prefix.as_u8, sizeof (ip6_address_t)); + tr->sr_prefixlen = ls_param->sr_prefixlen; } } @@ -906,6 +911,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, clib_memcpy (tr->dst.as_u8, ip6srv->ip.dst_address.as_u8, sizeof (ip6_address_t)); tr->teid = teid; + clib_memcpy (tr->sr_prefix.as_u8, ls_param->sr_prefix.as_u8, sizeof (ip6_address_t)); + tr->sr_prefixlen = ls_param->sr_prefixlen; } } From 70fdc97e790fd2353843fc3853cff54f0da1c44d Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 3 Jul 2019 22:29:50 -0700 Subject: [PATCH 087/154] gtp6.d/e --- extras/ietf105/runner.py | 1 + src/plugins/srv6-mobile/gtp6_d.c | 11 ++++++-- src/plugins/srv6-mobile/gtp6_d_di.c | 11 ++++++-- src/plugins/srv6-mobile/mobile.h | 2 +- src/plugins/srv6-mobile/node.c | 39 ++++++++++++++++++++++------- 5 files changed, 50 insertions(+), 14 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 9b2a433f074f..3218138d855e 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -597,6 +597,7 @@ def test_gtp6_drop_in(self): c2.set_ipv6_route("eth1", "A1::1", "C::/120") c3.set_ipv6_route("eth2", "A3::2", "D4::/32") c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") print("Waiting...") time.sleep(30) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index e5285442a681..330aa78900d2 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -80,9 +80,10 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) void **plugin_mem_p = va_arg (*args, void **); srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; - u16 sr_prefixlen; + u32 sr_prefixlen; - if (!unformat (input, "end.m.gtp6.d %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + if (!unformat (input, "end.m.gtp6.d %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { return 0; } @@ -106,6 +107,12 @@ clb_creation_srv6_end_m_gtp6_d (ip6_sr_localsid_t * localsid) static int clb_removal_srv6_end_m_gtp6_d (ip6_sr_localsid_t * localsid) { + srv6_end_gtp6_param_t *ls_mem; + + ls_mem = localsid->plugin_mem; + + clib_mem_free (ls_mem); + return 0; } diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index df6c5b74d312..aeaeb3a2d58e 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -80,9 +80,10 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) void **plugin_mem_p = va_arg (*args, void **); srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; - u16 sr_prefixlen; + u32 sr_prefixlen = 0; - if (!unformat (input, "end.m.gtp6.d.di %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + if (!unformat (input, "end.m.gtp6.d.di %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { return 0; } @@ -106,6 +107,12 @@ clb_creation_srv6_end_m_gtp6_d_di (ip6_sr_localsid_t * localsid) static int clb_removal_srv6_end_m_gtp6_d_di (ip6_sr_localsid_t * localsid) { + srv6_end_gtp6_param_t *ls_mem; + + ls_mem = localsid->plugin_mem; + + clib_mem_free (ls_mem); + return 0; } diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index 185c2a1e5df7..4bc38e17dac0 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -31,7 +31,7 @@ typedef struct srv6_end_gtp6_param_s { ip6_address_t sr_prefix; - u16 sr_prefixlen; + u32 sr_prefixlen; } srv6_end_gtp6_param_t; typedef struct srv6_end_main_v4_s diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index bba30fb52534..e90abc4a53d6 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -583,7 +583,10 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, offset += 1; if (PREDICT_TRUE (shift == 0)) { - clib_memcpy (&seg0.as_u8[offset], teidp, 4); + seg0.as_u8[offset] = teidp[0]; + seg0.as_u8[offset+1] = teidp[1]; + seg0.as_u8[offset+2] = teidp[2]; + seg0.as_u8[offset+3] = teidp[3]; } else { @@ -646,7 +649,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if (sl) { - clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); + clib_memcpy_fast (ip6srv, sl->rewrite, vec_len (sl->rewrite)); ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; @@ -663,7 +666,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, clib_memcpy_fast (&ip6srv->sr.segments[1], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), - vec_len (sl->segments)); + vec_len (sl->segments) * sizeof(ip6_address_t)); } else { @@ -802,7 +805,10 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, offset += 1; if (PREDICT_TRUE (shift == 0)) { - clib_memcpy (&seg0.as_u8[offset], teidp, 4); + seg0.as_u8[offset] = teidp[0]; + seg0.as_u8[offset+1] = teidp[1]; + seg0.as_u8[offset+2] = teidp[2]; + seg0.as_u8[offset+3] = teidp[3]; } else { @@ -861,7 +867,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if (sl) { - clib_memcpy_fast (ip6srv, sl->rewrite, sizeof(ip6_sr_header_t)); + clib_memcpy_fast (ip6srv, sl->rewrite, vec_len (sl->rewrite)); ip6srv->sr.segments_left += 2; ip6srv->sr.first_segment += 2; @@ -890,14 +896,29 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; } - ip6srv->sr.length += (sizeof(ip6_address_t) * 2) /8; + ip6srv->sr.length += ((sizeof(ip6_address_t) * 2) / 8); ip6srv->sr.segments[0] = dst0; ip6srv->sr.segments[1] = seg0; if (sl) - clib_memcpy_fast (&ip6srv->sr.segments[2], - (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), - vec_len (sl->segments)); + { +#if 0 + ip6_address_t *this_address; + ip6_address_t *addrp; + + addrp = ip6srv->sr.segments + vec_len (sl->segments) + 1; + vec_foreach (this_address, sl->segments) + { + clib_memcpy_fast (addrp->as_u8, this_address->as_u8, + sizeof (ip6_address_t)); + addrp--; + } +#else + clib_memcpy_fast (&ip6srv->sr.segments[2], + (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + vec_len (sl->segments) * sizeof(ip6_address_t)); +#endif + } good_n++; From e916425a88131d708a7f36ba65ab8cf96470fad6 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 4 Jul 2019 10:23:55 -0700 Subject: [PATCH 088/154] cosmetic change for trace --- src/plugins/srv6-mobile/node.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 66c873e8ed04..e424c3873917 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -34,7 +34,7 @@ format_srv6_end_rewrite_trace (u8 * s, va_list * args) CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); - return format (s, "SRv6-END-rewrite: src %U dst %U\n TEID: 0x%x", + return format (s, "SRv6-END-rewrite: src %U dst %U\n\tTEID: 0x%x", format_ip4_address, &t->src, format_ip4_address, &t->dst, clib_net_to_host_u32(t->teid)); } @@ -45,7 +45,7 @@ format_srv6_end_rewrite_trace6 (u8 * s, va_list * args) CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); - return format (s, "SRv6-END-rewrite: src %U dst %U\n TEID: 0x%x\n sr_prefix: %U/%d", + return format (s, "SRv6-END-rewrite: src %U dst %U\n\tTEID: 0x%x\n\tsr_prefix: %U/%d", format_ip6_address, &t->src, format_ip6_address, &t->dst, t->teid, format_ip6_address, &t->sr_prefix, t->sr_prefixlen); } From f79897c4a2bbbd95635ee17e0cf83eb71d316940 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 4 Jul 2019 18:27:26 -0700 Subject: [PATCH 089/154] add gtp6 test case for non-drop-in scenario --- extras/ietf105/runner.py | 75 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 3218138d855e..ca05dcc036dd 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -628,6 +628,77 @@ def test_gtp6_drop_in(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.100.0.1", dst="172.200.0.1")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def status_containers(self): print("Instances:") @@ -698,7 +769,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "gtp6_drop_in"]) + "ping", "srv6", "tmap", "gtp6_drop_in", "gtp6"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -736,6 +807,8 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.test_tmap() elif op == 'gtp6_drop_in': program.test_gtp6_drop_in() + elif op == 'gtp6': + program.test_gtp6() except Exception: program.logger.exception("") From 1a9a391522547125fe9635c81a64a8ea77dbfe98 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Sat, 6 Jul 2019 19:20:15 -0700 Subject: [PATCH 090/154] add test cases with inner IPv6 packet for GTP6 non-drop-in and GTP6 drop-in --- extras/ietf105/runner.py | 140 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 139 insertions(+), 1 deletion(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index ca05dcc036dd..09f43b22da19 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -628,6 +628,73 @@ def test_gtp6_drop_in(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6_drop_in_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6(self): # TESTS: # trace add af-packet-input 10 @@ -699,6 +766,73 @@ def test_gtp6(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def status_containers(self): print("Instances:") @@ -769,7 +903,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "gtp6_drop_in", "gtp6"]) + "ping", "srv6", "tmap", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -807,8 +941,12 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.test_tmap() elif op == 'gtp6_drop_in': program.test_gtp6_drop_in() + elif op == 'gtp6_drop_in_ipv6': + program.test_gtp6_drop_in_ipv6() elif op == 'gtp6': program.test_gtp6() + elif op == 'gtp6_ipv6': + program.test_gtp6_ipv6() except Exception: program.logger.exception("") From f9ad02d36b6ded18b2b68a94fbbd0eb630182f92 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 10 Jul 2019 01:10:59 -0700 Subject: [PATCH 091/154] support the first nible check for gtp4.d --- src/vnet/srv6/sr_policy_rewrite.c | 33 +++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 37a905a55fd0..5949186d436c 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1408,7 +1408,7 @@ encaps_processing_v4 (vlib_node_runtime_t * node, static_always_inline void encaps_processing_v4_tmap (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t * b0, - ip6_header_t * ip0) + ip6_header_t * ip0, ip6_header_t * encap0) { u32 new_l0; ip6_sr_header_t *sr0; @@ -1420,10 +1420,19 @@ encaps_processing_v4_tmap (vlib_main_t * vm, vlib_node_runtime_t * node, if (ip0->protocol == IP_PROTOCOL_IPV6_ROUTE) { sr0 = (void *) (ip0 + 1); - sr0->protocol = IP_PROTOCOL_IP_IN_IP; + + if ((encap0->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + sr0->protocol = IP_PROTOCOL_IPV6; + else + sr0->protocol = IP_PROTOCOL_IP_IN_IP; } else - ip0->protocol = IP_PROTOCOL_IP_IN_IP; + { + if ((encap0->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip0->protocol = IP_PROTOCOL_IPV6; + else + ip0->protocol = IP_PROTOCOL_IP_IN_IP; + } } /** @@ -1457,6 +1466,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; + ip6_header_t *encap0, *encap1, *encap2, *encap3; ip4_header_t *ip0_encap, *ip1_encap, *ip2_encap, *ip3_encap; ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; @@ -1545,6 +1555,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr0 = hdr0->ip4.dst_address; sr_port0 = hdr0->udp.src_port; vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + encap0 = vlib_buffer_current (b0); clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); } @@ -1563,6 +1574,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr1 = hdr1->ip4.dst_address; sr_port1 = hdr1->udp.src_port; vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); + encap1 = vlib_buffer_current (b1); clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); } @@ -1580,6 +1592,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr2 = hdr2->ip4.dst_address; sr_port2 = hdr2->udp.src_port; vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); + encap2 = vlib_buffer_current (b2); clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); } @@ -1597,6 +1610,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr3 = hdr3->ip4.dst_address; sr_port3 = hdr3->udp.src_port; vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); + encap3 = vlib_buffer_current (b3); clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); } @@ -1617,22 +1631,22 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip3 = vlib_buffer_get_current (b3); if (sl0->is_tmap) - encaps_processing_v4_tmap (vm, node, b0, ip0); + encaps_processing_v4_tmap (vm, node, b0, ip0, encap0); else encaps_processing_v4 (node, b0, ip0, ip0_encap); if (sl1->is_tmap) - encaps_processing_v4_tmap (vm, node, b1, ip1); + encaps_processing_v4_tmap (vm, node, b1, ip1, encap1); else encaps_processing_v4 (node, b1, ip1, ip1_encap); if (sl2->is_tmap) - encaps_processing_v4_tmap (vm, node, b2, ip2); + encaps_processing_v4_tmap (vm, node, b2, ip2, encap2); else encaps_processing_v4 (node, b2, ip2, ip2_encap); if (sl3->is_tmap) - encaps_processing_v4_tmap (vm, node, b3, ip3); + encaps_processing_v4_tmap (vm, node, b3, ip3, encap3); else encaps_processing_v4 (node, b3, ip3, ip3_encap); @@ -1787,6 +1801,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 bi0; vlib_buffer_t *b0; ip6_header_t *ip0 = 0; + ip6_header_t *encap0; ip4_header_t *ip0_encap = 0; ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; @@ -1829,6 +1844,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + encap0 = vlib_buffer_current (b0); + // srv header + 1 position (new one) clib_memcpy_fast ((void *) vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); @@ -1844,7 +1861,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip0 = vlib_buffer_get_current (b0); if (sl0->is_tmap) - encaps_processing_v4_tmap (vm, node, b0, ip0); + encaps_processing_v4_tmap (vm, node, b0, ip0, encap0); else encaps_processing_v4 (node, b0, ip0, ip0_encap); From 14a177b9cc41308d00a37f02604106187d8dd1e6 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 10 Jul 2019 01:11:24 -0700 Subject: [PATCH 092/154] add test case for gtp4.d with inner ipv6 packet --- extras/ietf105/runner.py | 65 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 09f43b22da19..386da8f336ad 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -560,6 +560,67 @@ def test_tmap(self): for p in c4.pg_read_packets(): p.show2() + def test_tmap_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid address D4:: behavior end.m.gtp4.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6_drop_in(self): # TESTS: # trace add af-packet-input 10 @@ -903,7 +964,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) + "ping", "srv6", "tmap", "tmap_ipv6", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -939,6 +1000,8 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non program.test_srv6() elif op == 'tmap': program.test_tmap() + elif op == 'tmap_ipv6': + program.test_tmap_ipv6() elif op == 'gtp6_drop_in': program.test_gtp6_drop_in() elif op == 'gtp6_drop_in_ipv6': From 3c5afffa7f07446032b984a5361269bc91f47bd9 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 10 Jul 2019 07:19:08 -0700 Subject: [PATCH 093/154] Support the prefix length for SID (#15) --- extras/ietf105/runner.py | 8 +- src/plugins/srv6-mobile/node.c | 26 ++- src/vnet/srv6/sr.h | 7 +- src/vnet/srv6/sr_api.c | 2 +- src/vnet/srv6/sr_policy_rewrite.c | 281 +++++++++++++++++++++++------- 5 files changed, 253 insertions(+), 71 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 386da8f336ad..e4ac49bb84e0 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -519,14 +519,14 @@ def test_tmap(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/64 local_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid address D4:: behavior end.m.gtp4.e") + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp4.e") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") @@ -580,14 +580,14 @@ def test_tmap_ipv6(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/64 local_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid address D4:: behavior end.m.gtp4.e") + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp4.e") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index e424c3873917..becf6d57b7a6 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -245,10 +245,28 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, u32 teid; u8 *teid8p = (u8 *)&teid; - teid8p[0] = dst0.as_u8[9]; - teid8p[1] = dst0.as_u8[10]; - teid8p[2] = dst0.as_u8[11]; - teid8p[3] = dst0.as_u8[12]; + u16 index; + u16 offset, shift; + + index = ls0->localsid_len; + index += 8; + + offset = index / 8; + shift = index % 8; + + if (PREDICT_TRUE(shift == 0)) { + teid8p[0] = dst0.as_u8[offset]; + teid8p[1] = dst0.as_u8[offset + 1]; + teid8p[2] = dst0.as_u8[offset + 2]; + teid8p[3] = dst0.as_u8[offset + 3]; + } else { + for (index = offset; index < offset + 4; index ++) { + *teid8p = dst0.as_u8[index] << shift; + *teid8p |= dst0.as_u8[index + 1] >> (8 - shift); + teid8p++; + } + } + hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index af8d57cae662..7089728d0d9e 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -112,7 +112,9 @@ typedef struct dpo_id_t ip4_dpo; /**< DPO for Encaps IPv6 */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ + u16 sr_prefixlen; ip6_address_t local_prefix; /**< T.M.Tmap localsid prefix */ + u16 localsid_len; } ip6_sr_sl_t; @@ -140,6 +142,9 @@ typedef struct u8 is_encap; /**< Mode (0 is SRH insert, 1 Encaps) */ u8 is_tmap; /**< T.M.Tmap dynamically compute node ID */ + + u16 sr_prefixlen; + u16 localsid_len; } ip6_sr_policy_t; /** @@ -313,7 +318,7 @@ sr_localsid_register_function (vlib_main_t * vm, u8 * fn_name, extern int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_gtp4_removal, ip6_address_t *gtp4_localsid_prefix); + u8 is_gtp4_removal, u16 sr_prefixlen, ip6_address_t *gtp4_localsid_prefix, u16 localsid_len); extern int sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, u8 operation, ip6_address_t * segments, u32 sl_index, diff --git a/src/vnet/srv6/sr_api.c b/src/vnet/srv6/sr_api.c index 2ee9836e4da7..05faece30b44 100644 --- a/src/vnet/srv6/sr_api.c +++ b/src/vnet/srv6/sr_api.c @@ -114,7 +114,7 @@ vl_api_sr_policy_add_t_handler (vl_api_sr_policy_add_t * mp) rv = sr_policy_add ((ip6_address_t *) & mp->bsid_addr, segments, ntohl (mp->sids.weight), - mp->type, ntohl (mp->fib_table), mp->is_encap, 0, NULL); + mp->type, ntohl (mp->fib_table), mp->is_encap, 0, 0, NULL, 0); vec_free (segments); REPLY_MACRO (VL_API_SR_POLICY_ADD_REPLY); diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 5949186d436c..16ee51829d96 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -300,7 +300,7 @@ compute_rewrite_bsid (ip6_address_t * sl) */ static inline ip6_sr_sl_t * create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, - u8 is_encap, u8 is_tmap, ip6_address_t *localsid_prefix) + u8 is_encap, u8 is_tmap, u16 sr_prefixlen, ip6_address_t *localsid_prefix, u16 localsid_len) { ip6_sr_main_t *sm = &sr_main; ip6_sr_sl_t *segment_list; @@ -317,6 +317,8 @@ create_sl (ip6_sr_policy_t * sr_policy, ip6_address_t * sl, u32 weight, segment_list->is_tmap = is_tmap; segment_list->local_prefix = *localsid_prefix; + segment_list->sr_prefixlen = sr_prefixlen; + segment_list->localsid_len = localsid_len; if (is_encap) { @@ -561,7 +563,7 @@ update_replicate (ip6_sr_policy_t * sr_policy) int sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, u32 weight, u8 behavior, u32 fib_table, u8 is_encap, - u8 is_tmap, ip6_address_t *localsid_prefix) + u8 is_tmap, u16 sr_prefixlen, ip6_address_t *localsid_prefix, u16 localsid_len) { ip6_sr_main_t *sm = &sr_main; ip6_sr_policy_t *sr_policy = 0; @@ -606,14 +608,16 @@ sr_policy_add (ip6_address_t * bsid, ip6_address_t * segments, sr_policy->fib_table = (fib_table != (u32) ~ 0 ? fib_table : 0); //Is default FIB 0 ? sr_policy->is_encap = is_encap; sr_policy->is_tmap = is_tmap; + sr_policy->sr_prefixlen = sr_prefixlen; + sr_policy->localsid_len = localsid_len; /* Copy the key */ mhash_set (&sm->sr_policies_index_hash, bsid, sr_policy - sm->sr_policies, NULL); /* Create a segment list and add the index to the SR policy */ - create_sl (sr_policy, segments, weight, is_encap, is_tmap, - localsid_prefix); + create_sl (sr_policy, segments, weight, is_encap, is_tmap, sr_prefixlen, + localsid_prefix, localsid_len); /* If FIB doesnt exist, create them */ if (sm->fib_table_ip6 == (u32) ~ 0) @@ -767,7 +771,7 @@ sr_policy_mod (ip6_address_t * bsid, u32 index, u32 fib_table, { /* Create the new SL */ segment_list = - create_sl (sr_policy, segments, weight, sr_policy->is_encap, 0, NULL); + create_sl (sr_policy, segments, weight, sr_policy->is_encap, 0, 0, NULL, 0); /* Create a new LB DPO */ if (sr_policy->type == SR_POLICY_TYPE_DEFAULT) @@ -848,6 +852,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, char is_spray = 0; char is_tmap = 0; ip6_address_t tmap_prefix, tmap_localsid; + u16 sr_prefixlen; + u16 localsid_len; u32 gtp4_mask_width = 0, localsid_mask_width=0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -905,6 +911,8 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, vec_add2 (segments, this_seg, 1); clib_memcpy_fast (this_seg->as_u8, tmap_prefix.as_u8, sizeof (*this_seg)); + sr_prefixlen = (u16)gtp4_mask_width; + localsid_len = (u16) localsid_mask_width; is_tmap = 1; } else if (unformat (input, "spray")) @@ -926,7 +934,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, rv = sr_policy_add (&bsid, segments, weight, (is_spray ? SR_POLICY_TYPE_SPRAY : SR_POLICY_TYPE_DEFAULT), fib_table, - is_encap, is_tmap, &tmap_localsid); + is_encap, is_tmap, sr_prefixlen, &tmap_localsid, localsid_len); vec_free (segments); } else if (is_del) @@ -1475,6 +1483,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; u16 sr_port0 = 0, sr_port1 = 0, sr_port2 = 0, sr_port3 = 0; u32 teid0 = 0, teid1 = 0, teid2 = 0, teid3 = 0; + u32 offset, shift; clib_memset(&sr_addr0, 0, sizeof(ip4_address_t)); clib_memset(&sr_addr1, 0, sizeof(ip4_address_t)); @@ -1555,7 +1564,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr0 = hdr0->ip4.dst_address; sr_port0 = hdr0->udp.src_port; vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); - encap0 = vlib_buffer_current (b0); + encap0 = vlib_buffer_get_current (b0); clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); } @@ -1574,7 +1583,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr1 = hdr1->ip4.dst_address; sr_port1 = hdr1->udp.src_port; vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); - encap1 = vlib_buffer_current (b1); + encap1 = vlib_buffer_get_current (b1); clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); } @@ -1592,7 +1601,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr2 = hdr2->ip4.dst_address; sr_port2 = hdr2->udp.src_port; vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); - encap2 = vlib_buffer_current (b2); + encap2 = vlib_buffer_get_current (b2); clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); } @@ -1610,7 +1619,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, dst_addr3 = hdr3->ip4.dst_address; sr_port3 = hdr3->udp.src_port; vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); - encap3 = vlib_buffer_current (b3); + encap3 = vlib_buffer_get_current (b3); clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); } @@ -1653,57 +1662,177 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { sr0 = (void*)(ip0+1); - sr0->segments->as_u32[1] = dst_addr0.as_u32; - sr0->segments->as_u8[9] = ((u8*) &teid0)[0]; - sr0->segments->as_u8[10] = ((u8*) &teid0)[1]; - sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; - sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; - - ip0->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; - ip0->src_address.as_u32[2] = sr_addr0.as_u32; - ip0->src_address.as_u16[6] = sr_port0; + + offset = sl0->sr_prefixlen / 8; + shift = sl0->sr_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&sr0->segments->as_u8[offset], &dst_addr0.as_u32, 4); + clib_memcpy_fast(&sr0->segments->as_u8[offset+5], &teid0, 4); + } else { + u32 index; + + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset + index] |= dst_addr0.as_u8[index] >> shift; + sr0->segments->as_u8[offset + index + 1] |= dst_addr0.as_u8[index] << (8 - shift); + } + + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid0)[index] >> shift; + sr0->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid0)[index] << (8 - shift); + } + } + + offset = sl0->localsid_len / 8; + shift = sl0->localsid_len % 8; + + clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); + ip0->src_address.as_u8[offset + 4] = sr_port0; + } else { + u32 index; + + for (index = 0; index < 4; index++) { + ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; + ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); + } + + ip0->src_address.as_u8[offset + 4] |= (sr_port0 >> shift); + ip0->src_address.as_u8[offset + 5] |= (sr_port0 << (8 - shift)); + } } if (PREDICT_TRUE (sl1->is_tmap)) { - sr1 = (void*)(ip0+1); - sr1->segments->as_u32[1] = dst_addr1.as_u32; - sr1->segments->as_u8[9] = ((u8*) &teid1)[0]; - sr1->segments->as_u8[10] = ((u8*) &teid1)[1]; - sr1->segments->as_u8[11] = ((u8*) &teid1)[2]; - sr1->segments->as_u8[12] = ((u8*) &teid1)[3]; - - ip1->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; - ip1->src_address.as_u32[2] = sr_addr1.as_u32; - ip1->src_address.as_u16[6] = sr_port1; + sr1 = (void*)(ip1+1); + + offset = sl1->sr_prefixlen / 8; + shift = sl1->sr_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&sr1->segments->as_u8[offset], &dst_addr1.as_u32, 4); + clib_memcpy_fast(&sr1->segments->as_u8[offset+5], &teid1, 4); + } else { + u32 index; + + for (index = 0; index < 4; index++) { + sr1->segments->as_u8[offset + index] |= dst_addr1.as_u8[index] >> shift; + sr1->segments->as_u8[offset + index + 1] |= dst_addr1.as_u8[index] << (8 - shift); + } + + for (index = 0; index < 4; index++) { + sr1->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid1)[index] >> shift; + sr1->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid1)[index] << (8 - shift); + } + } + + offset = sl1->localsid_len / 8; + shift = sl1->localsid_len % 8; + + clib_memcpy_fast(&ip1->src_address.as_u8[0], &sl1->local_prefix.as_u8[0], 16); + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&ip1->src_address.as_u8[offset], &sr_addr1.as_u32, 4); + ip1->src_address.as_u8[offset + 4] = sr_port1; + } else { + u32 index; + + for (index = 0; index < 4; index++) { + ip1->src_address.as_u8[offset] |= sr_addr1.as_u8[index] >> shift; + ip1->src_address.as_u8[offset + 1] |= sr_addr1.as_u8[index] << (8 - shift); + } + + ip1->src_address.as_u8[offset + 4] |= (sr_port1 >> shift); + ip1->src_address.as_u8[offset + 5] |= (sr_port1 << (8 - shift)); + } } if (PREDICT_TRUE (sl2->is_tmap)) { - sr2 = (void*)(ip0+1); - sr2->segments->as_u32[1] = dst_addr2.as_u32; - sr2->segments->as_u8[9] = ((u8*) &teid2)[0]; - sr2->segments->as_u8[10] = ((u8*) &teid2)[1]; - sr2->segments->as_u8[11] = ((u8*) &teid2)[2]; - sr2->segments->as_u8[12] = ((u8*) &teid2)[3]; - - ip2->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; - ip2->src_address.as_u32[2] = sr_addr2.as_u32; - ip2->src_address.as_u16[6] = sr_port2; + sr2 = (void*)(ip2+1); + + offset = sl2->sr_prefixlen / 8; + shift = sl2->sr_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&sr2->segments->as_u8[offset], &dst_addr2.as_u32, 4); + clib_memcpy_fast(&sr2->segments->as_u8[offset+5], &teid2, 4); + } else { + u32 index; + + for (index = 0; index < 4; index++) { + sr2->segments->as_u8[offset + index] |= dst_addr2.as_u8[index] >> shift; + sr2->segments->as_u8[offset + index + 1] |= dst_addr2.as_u8[index] << (8 - shift); + } + + for (index = 0; index < 4; index++) { + sr2->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid2)[index] >> shift; + sr2->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid2)[index] << (8 - shift); + } + } + + offset = sl2->localsid_len / 8; + shift = sl2->localsid_len % 8; + + clib_memcpy_fast(&ip2->src_address.as_u8[0], &sl2->local_prefix.as_u8[0], 16); + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&ip2->src_address.as_u8[offset], &sr_addr2.as_u32, 4); + ip2->src_address.as_u8[offset + 4] = sr_port2; + } else { + u32 index; + + for (index = 0; index < 4; index++) { + ip2->src_address.as_u8[offset] |= sr_addr2.as_u8[index] >> shift; + ip2->src_address.as_u8[offset + 1] |= sr_addr2.as_u8[index] << (8 - shift); + } + + ip2->src_address.as_u8[offset + 4] |= (sr_port2 >> shift); + ip2->src_address.as_u8[offset + 5] |= (sr_port2 << (8 - shift)); + } } if (PREDICT_TRUE (sl3->is_tmap)) { - sr3 = (void*)(ip0+1); - sr3->segments->as_u32[1] = dst_addr3.as_u32; - sr3->segments->as_u8[9] = ((u8*) &teid3)[0]; - sr3->segments->as_u8[10] = ((u8*) &teid3)[1]; - sr3->segments->as_u8[11] = ((u8*) &teid3)[2]; - sr3->segments->as_u8[12] = ((u8*) &teid3)[3]; - - ip3->src_address.as_u64[0] = sl3->local_prefix.as_u64[0]; - ip3->src_address.as_u32[2] = sr_addr3.as_u32; - ip3->src_address.as_u16[6] = sr_port3; + sr3 = (void*)(ip3+1); + + offset = sl3->sr_prefixlen / 8; + shift = sl3->sr_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&sr3->segments->as_u8[offset], &dst_addr3.as_u32, 4); + clib_memcpy_fast(&sr3->segments->as_u8[offset+5], &teid3, 4); + } else { + u32 index; + + for (index = 0; index < 4; index++) { + sr3->segments->as_u8[offset + index] |= dst_addr3.as_u8[index] >> shift; + sr3->segments->as_u8[offset + index + 1] |= dst_addr3.as_u8[index] << (8 - shift); + } + + for (index = 0; index < 4; index++) { + sr3->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid3)[index] >> shift; + sr3->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid3)[index] << (8 - shift); + } + } + + offset = sl3->localsid_len / 8; + shift = sl3->localsid_len % 8; + + clib_memcpy_fast(&ip3->src_address.as_u8[0], &sl3->local_prefix.as_u8[0], 16); + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&ip3->src_address.as_u8[offset], &sr_addr3.as_u32, 4); + ip3->src_address.as_u8[offset + 4] = sr_port3; + } else { + u32 index; + + for (index = 0; index < 4; index++) { + ip3->src_address.as_u8[offset] |= sr_addr3.as_u8[index] >> shift; + ip3->src_address.as_u8[offset + 1] |= sr_addr3.as_u8[index] << (8 - shift); + } + + ip3->src_address.as_u8[offset + 4] |= (sr_port3 >> shift); + ip3->src_address.as_u8[offset + 5] |= (sr_port3 << (8 - shift)); + } } if (PREDICT_FALSE ((node->flags & VLIB_NODE_FLAG_TRACE))) @@ -1810,6 +1939,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_address_t dst_addr0; u16 sr_port = 0; u32 teid0 = 0; + u32 offset, shift; u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; @@ -1844,7 +1974,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); - encap0 = vlib_buffer_current (b0); + encap0 = vlib_buffer_get_current (b0); // srv header + 1 position (new one) clib_memcpy_fast ((void *) vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), @@ -1868,15 +1998,45 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_TRUE (sl0->is_tmap)) { sr0 = (void*)(ip0+1); - sr0->segments->as_u32[1] = dst_addr0.as_u32; - sr0->segments->as_u8[9] = ((u8*) &teid0)[0]; - sr0->segments->as_u8[10] = ((u8*) &teid0)[1]; - sr0->segments->as_u8[11] = ((u8*) &teid0)[2]; - sr0->segments->as_u8[12] = ((u8*) &teid0)[3]; - - ip0->src_address.as_u64[0] = sl0->local_prefix.as_u64[0]; - ip0->src_address.as_u32[2] = sr_addr0.as_u32; - ip0->src_address.as_u16[6] = sr_port; + + offset = sl0->sr_prefixlen / 8; + shift = sl0->sr_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&sr0->segments->as_u8[offset], &dst_addr0.as_u32, 4); + clib_memcpy_fast(&sr0->segments->as_u8[offset+5], &teid0, 4); + } else { + u32 index; + + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset + index] |= dst_addr0.as_u8[index] >> shift; + sr0->segments->as_u8[offset + index + 1] |= dst_addr0.as_u8[index] << (8 - shift); + } + + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid0)[index] >> shift; + sr0->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid0)[index] << (8 - shift); + } + } + + offset = sl0->localsid_len / 8; + shift = sl0->localsid_len % 8; + + clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); + if (PREDICT_TRUE(shift == 0)) { + clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); + ip0->src_address.as_u8[offset + 4] = sr_port; + } else { + u32 index; + + for (index = 0; index < 4; index++) { + ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; + ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); + } + + ip0->src_address.as_u8[offset + 4] |= (sr_port >> shift); + ip0->src_address.as_u8[offset + 5] |= (sr_port << (8 - shift)); + } } if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && @@ -1890,8 +2050,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sizeof (tr->dst.as_u8)); if (PREDICT_TRUE (sl0->is_tmap)) { - tr->is_tmap = true; - clib_memcpy_fast (tr->local_prefix.as_u8, + tr->is_tmap = true; clib_memcpy_fast (tr->local_prefix.as_u8, ip0->src_address.as_u8, sizeof(tr->local_prefix.as_u8)); clib_memcpy_fast (tr->node.as_u8, From 120cf4691a007e0f97c0177d1ce34a1e515727ae Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 10 Jul 2019 17:06:47 -0700 Subject: [PATCH 094/154] fix the build issue --- src/vnet/srv6/sr_policy_rewrite.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 16ee51829d96..a13c3ec76e3a 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -852,9 +852,9 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, char is_spray = 0; char is_tmap = 0; ip6_address_t tmap_prefix, tmap_localsid; - u16 sr_prefixlen; - u16 localsid_len; - u32 gtp4_mask_width = 0, localsid_mask_width=0; + u16 sr_prefixlen = 0; + u16 localsid_len = 0; + u32 gtp4_mask_width = 0, localsid_mask_width = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { @@ -1474,7 +1474,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; - ip6_header_t *encap0, *encap1, *encap2, *encap3; + ip6_header_t *encap0 = NULL, *encap1 = NULL, *encap2 = NULL, *encap3 = NULL; ip4_header_t *ip0_encap, *ip1_encap, *ip2_encap, *ip3_encap; ip6_sr_header_t *sr0, *sr1, *sr2, *sr3; ip6_sr_sl_t *sl0, *sl1, *sl2, *sl3; @@ -1930,7 +1930,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, u32 bi0; vlib_buffer_t *b0; ip6_header_t *ip0 = 0; - ip6_header_t *encap0; + ip6_header_t *encap0 = NULL; ip4_header_t *ip0_encap = 0; ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; From c7ea5be6c4929d5462590b869eafeaec71eb69fa Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 10 Jul 2019 17:46:52 -0700 Subject: [PATCH 095/154] fix the issue on tmap test --- extras/ietf105/runner.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index e4ac49bb84e0..01494a34168c 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -519,14 +519,14 @@ def test_tmap(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/64 local_prefix C1::/64") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp4.e") + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") @@ -580,14 +580,14 @@ def test_tmap_ipv6(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/64 local_prefix C1::/64") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp4.e") + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") From 73a7c248cef625da27a11d4d3c25d678514247e2 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 11 Jul 2019 14:28:04 -0700 Subject: [PATCH 096/154] fix the issue to embed TEID into IPv6 address --- extras/ietf105/runner.py | 4 +- src/plugins/srv6-mobile/gtp4_e.c | 29 ++++++- src/plugins/srv6-mobile/mobile.h | 6 ++ src/plugins/srv6-mobile/node.c | 70 +++++++++++---- src/vnet/srv6/sr_policy_rewrite.c | 138 +++++++++++++++++++----------- 5 files changed, 174 insertions(+), 73 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 01494a34168c..f564e86ecf7f 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -526,7 +526,7 @@ def test_tmap(self): c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e") + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e C1::/64") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") @@ -587,7 +587,7 @@ def test_tmap_ipv6(self): c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e") + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e C1::/64") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") diff --git a/src/plugins/srv6-mobile/gtp4_e.c b/src/plugins/srv6-mobile/gtp4_e.c index 58c430d4c32d..7aceda13ebc2 100644 --- a/src/plugins/srv6-mobile/gtp4_e.c +++ b/src/plugins/srv6-mobile/gtp4_e.c @@ -65,15 +65,34 @@ static u8 param_str[] = ""; static u8 * clb_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) { - s = format (s, "SRv6 End format function unsupported."); + srv6_end_gtp4_param_t *ls_mem = va_arg (*args, void *); + + s = format (s, "SRv6 End gtp4.e\n\t"); + + s = format (s, "Local Prefix: %U/%d\n", format_ip6_address, &ls_mem->local_prefix, ls_mem->local_prefixlen); + return s; } static uword clb_unformat_srv6_end_m_gtp4_e (unformat_input_t * input, va_list * args) { - if (!unformat (input, "end.m.gtp4.e")) + void **plugin_mem_p = va_arg (*args, void **); + srv6_end_gtp4_param_t *ls_mem; + ip6_address_t local_prefix; + u32 local_prefixlen; + + if (!unformat (input, "end.m.gtp4.e %U/%d", + unformat_ip6_address, &local_prefix, &local_prefixlen)) return 0; + + ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); + clib_memset (ls_mem, 0, sizeof *ls_mem); + *plugin_mem_p = ls_mem; + + ls_mem->local_prefix = local_prefix; + ls_mem->local_prefixlen = local_prefixlen; + return 1; } @@ -86,6 +105,12 @@ clb_creation_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) static int clb_removal_srv6_end_m_gtp4_e (ip6_sr_localsid_t * localsid) { + srv6_end_gtp4_param_t *ls_mem; + + ls_mem = localsid->plugin_mem; + + clib_mem_free(ls_mem); + return 0; } diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index 4bc38e17dac0..b829a4c79a50 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -34,6 +34,12 @@ typedef struct srv6_end_gtp6_param_s u32 sr_prefixlen; } srv6_end_gtp6_param_t; +typedef struct srv6_end_gtp4_param_s +{ + ip6_address_t local_prefix; + u32 local_prefixlen; +} srv6_end_gtp4_param_t; + typedef struct srv6_end_main_v4_s { diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index becf6d57b7a6..0f5622e84393 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -178,6 +178,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, u32 bi0; vlib_buffer_t *b0; ip6_sr_localsid_t *ls0; + srv6_end_gtp4_param_t *ls_param; ip6srv_combo_header_t *ip6srv0; ip6_address_t src0, dst0; @@ -200,6 +201,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, pool_elt_at_index (sm2->localsids, vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + ls_param = (srv6_end_gtp4_param_t *)ls0->plugin_mem; + ip6srv0 = vlib_buffer_get_current (b0); src0 = ip6srv0->ip.src_address; dst0 = ip6srv0->ip.dst_address; @@ -245,24 +248,30 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, u32 teid; u8 *teid8p = (u8 *)&teid; - u16 index; - u16 offset, shift; + u32 index; + u32 offset, shift; - index = ls0->localsid_len; - index += 8; - - offset = index / 8; - shift = index % 8; + offset = ls0->localsid_len / 8; + shift = ls0->localsid_len % 8; if (PREDICT_TRUE(shift == 0)) { - teid8p[0] = dst0.as_u8[offset]; - teid8p[1] = dst0.as_u8[offset + 1]; - teid8p[2] = dst0.as_u8[offset + 2]; - teid8p[3] = dst0.as_u8[offset + 3]; + for (index = 0; index < 4; index++) { + hdr0->ip4.dst_address.as_u8[index] = dst0.as_u8[offset + index]; + } + + teid8p[0] = dst0.as_u8[offset + 5]; + teid8p[1] = dst0.as_u8[offset + 6]; + teid8p[2] = dst0.as_u8[offset + 7]; + teid8p[3] = dst0.as_u8[offset + 8]; } else { - for (index = offset; index < offset + 4; index ++) { - *teid8p = dst0.as_u8[index] << shift; - *teid8p |= dst0.as_u8[index + 1] >> (8 - shift); + for (index = 0; index < 4; index ++) { + hdr0->ip4.dst_address.as_u8[index] = dst0.as_u8[offset + index] << shift; + hdr0->ip4.dst_address.as_u8[index] |= dst0.as_u8[offset + index + 1] >> (8 - shift); + } + + for (index = 0; index < 4; index ++) { + *teid8p = dst0.as_u8[offset + 5 + index] << shift; + *teid8p |= dst0.as_u8[offset + 6 + index] >> (8 - shift); teid8p++; } } @@ -270,12 +279,39 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); - hdr0->udp.src_port = src0.as_u16[6]; + offset = ls_param->local_prefixlen / 8; + shift = ls_param->local_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) { + u8 *pp; + + pp = (u8 *) &hdr0->udp.src_port; + + for (index = 0; index < 4; index ++) { + hdr0->ip4.src_address.as_u8[index] = src0.as_u8[offset + index]; + } + + for (index = 0; index < 2; index++) { + pp[index] = src0.as_u8[offset + 4 + index]; + } + } else { + u8 *pp; + + pp = (u8 *) &hdr0->udp.src_port; + for (index = 0; index < 4; index ++) { + hdr0->ip4.src_address.as_u8[index] = src0.as_u8[offset + index] << shift; + hdr0->ip4.src_address.as_u8[index] |= src0.as_u8[offset + index + 1] >> (8 - shift); + } + + for (index = 0; index < 2; index++) { + pp[index] = src0.as_u8[offset + index + 4] << shift; + pp[index] |= src0.as_u8[offset + index + 5] >> (8 - shift); + } + } + hdr0->udp.length = clib_host_to_net_u16 (len0 + sizeof (udp_header_t) + sizeof (gtpu_header_t)); - hdr0->ip4.src_address.as_u32 = src0.as_u32[2]; - hdr0->ip4.dst_address.as_u32 = dst0.as_u32[1]; hdr0->ip4.length = clib_host_to_net_u16 (len0 + sizeof (ip4_gtpu_header_t)); diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index a13c3ec76e3a..511a49ae63a7 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1483,7 +1483,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; u16 sr_port0 = 0, sr_port1 = 0, sr_port2 = 0, sr_port3 = 0; u32 teid0 = 0, teid1 = 0, teid2 = 0, teid3 = 0; + u8 *teidp0 = NULL, *teidp1 = NULL, *teidp2 = NULL, *teidp3 = NULL; u32 offset, shift; + u32 index; clib_memset(&sr_addr0, 0, sizeof(ip4_address_t)); clib_memset(&sr_addr1, 0, sizeof(ip4_address_t)); @@ -1560,6 +1562,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { hdr0 = vlib_buffer_get_current (b0); teid0 = hdr0->gtpu.teid; + teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; sr_port0 = hdr0->udp.src_port; @@ -1579,6 +1582,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { hdr1 = vlib_buffer_get_current (b1); teid1 = hdr1->gtpu.teid; + teidp1 = (u8 *)&teid1; sr_addr1 = hdr1->ip4.src_address; dst_addr1 = hdr1->ip4.dst_address; sr_port1 = hdr1->udp.src_port; @@ -1597,6 +1601,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { hdr2 = vlib_buffer_get_current (b2); teid2 = hdr2->gtpu.teid; + teidp2 = (u8 *)&teid2; sr_addr2 = hdr2->ip4.src_address; dst_addr2 = hdr2->ip4.dst_address; sr_port2 = hdr2->udp.src_port; @@ -1615,6 +1620,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { hdr3 = vlib_buffer_get_current (b3); teid3 = hdr3->gtpu.teid; + teidp3 = (u8 *)&teid3; sr_addr3 = hdr3->ip4.src_address; dst_addr3 = hdr3->ip4.dst_address; sr_port3 = hdr3->udp.src_port; @@ -1667,19 +1673,22 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, shift = sl0->sr_prefixlen % 8; if (PREDICT_TRUE(shift == 0)) { - clib_memcpy_fast(&sr0->segments->as_u8[offset], &dst_addr0.as_u32, 4); - clib_memcpy_fast(&sr0->segments->as_u8[offset+5], &teid0, 4); - } else { - u32 index; + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset + index] = dst_addr0.as_u8[index]; + } + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset+5+index] = teidp0[index]; + } + } else { for (index = 0; index < 4; index++) { sr0->segments->as_u8[offset + index] |= dst_addr0.as_u8[index] >> shift; sr0->segments->as_u8[offset + index + 1] |= dst_addr0.as_u8[index] << (8 - shift); } for (index = 0; index < 4; index++) { - sr0->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid0)[index] >> shift; - sr0->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid0)[index] << (8 - shift); + sr0->segments->as_u8[offset + 5 + index] |= teidp0[index] >> shift; + sr0->segments->as_u8[offset + 6 + index] |= teidp0[index] << (8 - shift); } } @@ -1689,17 +1698,19 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); - ip0->src_address.as_u8[offset + 4] = sr_port0; + clib_memcpy_fast(&ip0->src_address.as_u8[offset+4], &sr_port0, 2); } else { - u32 index; + u8 *pp = (u8 *)&sr_port0; for (index = 0; index < 4; index++) { ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); } - ip0->src_address.as_u8[offset + 4] |= (sr_port0 >> shift); - ip0->src_address.as_u8[offset + 5] |= (sr_port0 << (8 - shift)); + for (index = 0; index < 2; index++) { + ip0->src_address.as_u8[offset + 4] |= (pp[index] >> shift); + ip0->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); + } } } @@ -1711,19 +1722,22 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, shift = sl1->sr_prefixlen % 8; if (PREDICT_TRUE(shift == 0)) { - clib_memcpy_fast(&sr1->segments->as_u8[offset], &dst_addr1.as_u32, 4); - clib_memcpy_fast(&sr1->segments->as_u8[offset+5], &teid1, 4); - } else { - u32 index; + for (index = 0; index < 4; index++) { + sr1->segments->as_u8[offset + index] = dst_addr1.as_u8[index]; + } + for (index = 0; index < 4; index++) { + sr1->segments->as_u8[offset+5+index] = teidp1[index]; + } + } else { for (index = 0; index < 4; index++) { sr1->segments->as_u8[offset + index] |= dst_addr1.as_u8[index] >> shift; sr1->segments->as_u8[offset + index + 1] |= dst_addr1.as_u8[index] << (8 - shift); } for (index = 0; index < 4; index++) { - sr1->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid1)[index] >> shift; - sr1->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid1)[index] << (8 - shift); + sr1->segments->as_u8[offset + 5 + index] |= teidp1[index] >> shift; + sr1->segments->as_u8[offset + 6 + index] |= teidp1[index] << (8 - shift); } } @@ -1733,17 +1747,19 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip1->src_address.as_u8[0], &sl1->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip1->src_address.as_u8[offset], &sr_addr1.as_u32, 4); - ip1->src_address.as_u8[offset + 4] = sr_port1; + clib_memcpy_fast(&ip1->src_address.as_u8[offset+4], &sr_port1, 2); } else { - u32 index; + u8 *pp = (u8 *)&sr_port1; for (index = 0; index < 4; index++) { ip1->src_address.as_u8[offset] |= sr_addr1.as_u8[index] >> shift; ip1->src_address.as_u8[offset + 1] |= sr_addr1.as_u8[index] << (8 - shift); } - ip1->src_address.as_u8[offset + 4] |= (sr_port1 >> shift); - ip1->src_address.as_u8[offset + 5] |= (sr_port1 << (8 - shift)); + for (index = 0; index < 2; index++) { + ip1->src_address.as_u8[offset + 4] |= (pp[index] >> shift); + ip1->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); + } } } @@ -1755,19 +1771,22 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, shift = sl2->sr_prefixlen % 8; if (PREDICT_TRUE(shift == 0)) { - clib_memcpy_fast(&sr2->segments->as_u8[offset], &dst_addr2.as_u32, 4); - clib_memcpy_fast(&sr2->segments->as_u8[offset+5], &teid2, 4); - } else { - u32 index; + for (index = 0; index < 4; index++) { + sr2->segments->as_u8[offset + index] = dst_addr2.as_u8[index]; + } + for (index = 0; index < 4; index++) { + sr2->segments->as_u8[offset+5+index] = teidp2[index]; + } + } else { for (index = 0; index < 4; index++) { sr2->segments->as_u8[offset + index] |= dst_addr2.as_u8[index] >> shift; sr2->segments->as_u8[offset + index + 1] |= dst_addr2.as_u8[index] << (8 - shift); } for (index = 0; index < 4; index++) { - sr2->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid2)[index] >> shift; - sr2->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid2)[index] << (8 - shift); + sr2->segments->as_u8[offset + 5 + index] |= teidp2[index] >> shift; + sr2->segments->as_u8[offset + 6 + index] |= teidp2[index] << (8 - shift); } } @@ -1777,17 +1796,19 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip2->src_address.as_u8[0], &sl2->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip2->src_address.as_u8[offset], &sr_addr2.as_u32, 4); - ip2->src_address.as_u8[offset + 4] = sr_port2; + clib_memcpy_fast(&ip2->src_address.as_u8[offset+4], &sr_port2, 2); } else { - u32 index; + u8 *pp = (u8 *)&sr_port2; for (index = 0; index < 4; index++) { ip2->src_address.as_u8[offset] |= sr_addr2.as_u8[index] >> shift; ip2->src_address.as_u8[offset + 1] |= sr_addr2.as_u8[index] << (8 - shift); } - ip2->src_address.as_u8[offset + 4] |= (sr_port2 >> shift); - ip2->src_address.as_u8[offset + 5] |= (sr_port2 << (8 - shift)); + for (index = 0; index < 2; index++) { + ip2->src_address.as_u8[offset + 4] |= (pp[index] >> shift); + ip2->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); + } } } @@ -1799,19 +1820,22 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, shift = sl3->sr_prefixlen % 8; if (PREDICT_TRUE(shift == 0)) { - clib_memcpy_fast(&sr3->segments->as_u8[offset], &dst_addr3.as_u32, 4); - clib_memcpy_fast(&sr3->segments->as_u8[offset+5], &teid3, 4); - } else { - u32 index; + for (index = 0; index < 4; index++) { + sr3->segments->as_u8[offset + index] = dst_addr3.as_u8[index]; + } + for (index = 0; index < 4; index++) { + sr3->segments->as_u8[offset+5+index] = teidp3[index]; + } + } else { for (index = 0; index < 4; index++) { sr3->segments->as_u8[offset + index] |= dst_addr3.as_u8[index] >> shift; sr3->segments->as_u8[offset + index + 1] |= dst_addr3.as_u8[index] << (8 - shift); } for (index = 0; index < 4; index++) { - sr3->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid3)[index] >> shift; - sr3->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid3)[index] << (8 - shift); + sr3->segments->as_u8[offset + 5 + index] |= teidp3[index] >> shift; + sr3->segments->as_u8[offset + 6 + index] |= teidp3[index] << (8 - shift); } } @@ -1821,17 +1845,19 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip3->src_address.as_u8[0], &sl3->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip3->src_address.as_u8[offset], &sr_addr3.as_u32, 4); - ip3->src_address.as_u8[offset + 4] = sr_port3; + clib_memcpy_fast(&ip3->src_address.as_u8[offset+4], &sr_port3, 2); } else { - u32 index; + u8 *pp = (u8 *)&sr_port3; for (index = 0; index < 4; index++) { ip3->src_address.as_u8[offset] |= sr_addr3.as_u8[index] >> shift; ip3->src_address.as_u8[offset + 1] |= sr_addr3.as_u8[index] << (8 - shift); } - ip3->src_address.as_u8[offset + 4] |= (sr_port3 >> shift); - ip3->src_address.as_u8[offset + 5] |= (sr_port3 << (8 - shift)); + for (index = 0; index < 2; index++) { + ip3->src_address.as_u8[offset + 4] |= (pp[index] >> shift); + ip3->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); + } } } @@ -1937,9 +1963,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_gtpu_header_t *hdr0; ip4_address_t sr_addr0; ip4_address_t dst_addr0; - u16 sr_port = 0; + u16 sr_port0 = 0; u32 teid0 = 0; + u8 *teidp0 = NULL; u32 offset, shift; + u32 index; u32 next0 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; @@ -1967,9 +1995,10 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, // save for later use hdr0 = vlib_buffer_get_current (b0); teid0 = hdr0->gtpu.teid; + teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; - sr_port = hdr0->udp.src_port; + sr_port0 = hdr0->udp.src_port; // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); @@ -2003,19 +2032,22 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, shift = sl0->sr_prefixlen % 8; if (PREDICT_TRUE(shift == 0)) { - clib_memcpy_fast(&sr0->segments->as_u8[offset], &dst_addr0.as_u32, 4); - clib_memcpy_fast(&sr0->segments->as_u8[offset+5], &teid0, 4); - } else { - u32 index; + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset + index] = dst_addr0.as_u8[index]; + } + for (index = 0; index < 4; index++) { + sr0->segments->as_u8[offset+5+index] = teidp0[index]; + } + } else { for (index = 0; index < 4; index++) { sr0->segments->as_u8[offset + index] |= dst_addr0.as_u8[index] >> shift; sr0->segments->as_u8[offset + index + 1] |= dst_addr0.as_u8[index] << (8 - shift); } for (index = 0; index < 4; index++) { - sr0->segments->as_u8[offset + 5 + index] |= ((u8 *) &teid0)[index] >> shift; - sr0->segments->as_u8[offset + 6 + index] |= ((u8 *) &teid0)[index] << (8 - shift); + sr0->segments->as_u8[offset + 5 + index] |= teidp0[index] >> shift; + sr0->segments->as_u8[offset + 6 + index] |= teidp0[index] << (8 - shift); } } @@ -2025,17 +2057,19 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); - ip0->src_address.as_u8[offset + 4] = sr_port; + clib_memcpy_fast(&ip0->src_address.as_u8[offset+4], &sr_port0, 2); } else { - u32 index; + u8 *pp = (u8 *)&sr_port0; for (index = 0; index < 4; index++) { ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); } - ip0->src_address.as_u8[offset + 4] |= (sr_port >> shift); - ip0->src_address.as_u8[offset + 5] |= (sr_port << (8 - shift)); + for (index = 0; index < 2; index++) { + ip0->src_address.as_u8[offset + 4] |= (pp[index] >> shift); + ip0->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); + } } } From c1619048786d3b94183ee3edc28d29bcfdffbac6 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 11 Jul 2019 20:46:46 -0700 Subject: [PATCH 097/154] reduce the size of the docker image, change the config term for gtp4.d/e, support udp source port based on hash --- extras/ietf105/Dockerfile.j2 | 20 +++-------- extras/ietf105/Dockerfile.j2.release | 42 ++++++++++++++++++++++ extras/ietf105/runner.py | 28 ++++++++++++--- src/plugins/srv6-mobile/gtp4_e.c | 8 ++--- src/plugins/srv6-mobile/mobile.h | 1 - src/plugins/srv6-mobile/node.c | 54 ++++++++++++++++++---------- src/vnet/srv6/sr_policy_rewrite.c | 46 +++++++++++++++++++++++- 7 files changed, 153 insertions(+), 46 deletions(-) create mode 100644 extras/ietf105/Dockerfile.j2.release diff --git a/extras/ietf105/Dockerfile.j2 b/extras/ietf105/Dockerfile.j2 index 33ea27fd508a..1707fe639fc7 100644 --- a/extras/ietf105/Dockerfile.j2 +++ b/extras/ietf105/Dockerfile.j2 @@ -25,27 +25,17 @@ COPY . / {{vpp_path}}/ WORKDIR {{vpp_path}} RUN set -eux; \ - make wipe - -RUN set -eux; \ + make wipe; \ export UNATTENDED=y; \ make install-dep; \ - rm -rf /var/lib/apt/lists/* - -RUN set -eux; \ - export UNATTENDED=y; \ + rm -rf /var/lib/apt/lists/* ; \ make build; \ make pkg-deb; \ rm -rf .ccache; \ - find . -type f -name '*.o' -delete - -WORKDIR {{vpp_path}}/build-root - -RUN set -eux; \ + find . -type f -name '*.o' -delete ; \ + cd {{vpp_path}}/build-root; \ rm vpp-api-python_*.deb; \ - dpkg -i *.deb - -RUN set -euex; \ + dpkg -i *.deb ; \ cp {{vpp_path}}/startup.conf /etc/startup.conf; \ rm -rf {{vpp_path}} diff --git a/extras/ietf105/Dockerfile.j2.release b/extras/ietf105/Dockerfile.j2.release new file mode 100644 index 000000000000..034b46fe1c3d --- /dev/null +++ b/extras/ietf105/Dockerfile.j2.release @@ -0,0 +1,42 @@ + +FROM ubuntu:18.04 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + inetutils-traceroute \ + ca-certificates \ + build-essential \ + git gdb sudo \ + iputils-ping \ + net-tools \ + iproute2 \ + tcpdump \ + python3-cffi \ + netcat; \ + rm -rf /var/lib/apt/lists/*; \ + mv /usr/sbin/tcpdump /usr/bin/tcpdump + +WORKDIR /tmp + +RUN set -eux; \ + git clone -b ietf105-hackathon https://github.com/filvarga/srv6-mobile.git; \ + cd /tmp/srv6-mobile; \ + make wipe; \ + export UNATTENDED=y; \ + make install-dep; \ + rm -rf /var/lib/apt/lists/* ; \ + make build; \ + make pkg-deb; \ + rm -rf .ccache; \ + find . -type f -name '*.o' -delete ; \ + cd /tmp/srv6-mobile/build-root; \ + rm vpp-api-python_*.deb; \ + dpkg -i *.deb ; \ + cp /tmp/srv6-mobile/extras/ietf105/startup.conf.j2 /etc/startup.conf; \ + rm -rf /tmp/srv6-mobile + +WORKDIR / + +CMD vpp -c /etc/startup.conf + diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index f564e86ecf7f..54727b11aacf 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -225,6 +225,19 @@ def build(self, path, vpp_path): tag=self.image, rm=True) return ref + def release(self, path, vpp_path): + env = Environment( + loader=FileSystemLoader(path), + trim_blocks=True) + + self.tmp_render(join(vpp_path, "Dockerfile"), + env.get_template("Dockerfile.j2.release"), + {'vpp_path': vpp_path}) + + ref, _ = self.client.images.build(path=vpp_path, + tag=self.image, rm=True) + return ref + def new(self, name): return Container.new(self.client, self.image, name) @@ -519,14 +532,14 @@ def test_tmap(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e C1::/64") + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") @@ -580,14 +593,14 @@ def test_tmap_ipv6(self): local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 local_prefix C1::/64") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") c2.vppctl_exec("sr localsid address D2:: behavior end") c3.vppctl_exec("sr localsid address D3:: behavior end") - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e C1::/64") + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") @@ -914,6 +927,9 @@ def build_image(self): # TODO: optimize build process for speed and image size self.containers.build(self.path, self.vpp_path) + def release_image(self): + self.containers.release(self.path, self.vpp_path) + def vppctl(self, index, command=None): if index >= len(self.instance_names): return @@ -943,7 +959,7 @@ def get_args(): help="Infrastructure related commands.") p1.add_argument("op", choices=[ - 'stop', 'start', 'status', 'restart', 'build']) + 'stop', 'start', 'status', 'restart', 'build', 'release']) p1.add_argument("--prefix") p1.add_argument("--image") @@ -984,6 +1000,8 @@ def main(op=None, image=None, prefix=None, verbose=None, index=None, command=Non try: if op == 'build': program.build_image() + elif op == 'release': + program.release_image() elif op == 'stop': program.stop_containers() elif op == 'start': diff --git a/src/plugins/srv6-mobile/gtp4_e.c b/src/plugins/srv6-mobile/gtp4_e.c index 7aceda13ebc2..1193004e3bfc 100644 --- a/src/plugins/srv6-mobile/gtp4_e.c +++ b/src/plugins/srv6-mobile/gtp4_e.c @@ -69,7 +69,7 @@ clb_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) s = format (s, "SRv6 End gtp4.e\n\t"); - s = format (s, "Local Prefix: %U/%d\n", format_ip6_address, &ls_mem->local_prefix, ls_mem->local_prefixlen); + s = format (s, "IPv4 address position: %d\n", ls_mem->local_prefixlen); return s; } @@ -79,18 +79,16 @@ clb_unformat_srv6_end_m_gtp4_e (unformat_input_t * input, va_list * args) { void **plugin_mem_p = va_arg (*args, void **); srv6_end_gtp4_param_t *ls_mem; - ip6_address_t local_prefix; u32 local_prefixlen; - if (!unformat (input, "end.m.gtp4.e %U/%d", - unformat_ip6_address, &local_prefix, &local_prefixlen)) + if (!unformat (input, "end.m.gtp4.e v4src_position %d", + &local_prefixlen)) return 0; ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); clib_memset (ls_mem, 0, sizeof *ls_mem); *plugin_mem_p = ls_mem; - ls_mem->local_prefix = local_prefix; ls_mem->local_prefixlen = local_prefixlen; return 1; diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index b829a4c79a50..c7fb190a8ee4 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -36,7 +36,6 @@ typedef struct srv6_end_gtp6_param_s typedef struct srv6_end_gtp4_param_s { - ip6_address_t local_prefix; u32 local_prefixlen; } srv6_end_gtp4_param_t; diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 0f5622e84393..34b4103ab500 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -150,6 +150,18 @@ typedef enum SRV6_END_M_GTP6_D_DI_N_NEXT, } srv6_end_m_gtp6_d_di_next_t; +static inline u16 +hash_uword_to_u16 (uword *key) +{ + u16 *val; + val = (u16 *)key; +#if uword_bits == 64 + return val[0] ^ val[1] ^ val[3] ^ val[4]; +#else + return val[0] ^ val[1]; +#endif +} + // Function for SRv6 GTP4.E function. VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, vlib_node_runtime_t * node, @@ -219,6 +231,14 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, } else { + u32 teid; + u8 *teid8p = (u8 *)&teid; + u32 index; + u32 offset, shift; + uword key; + u16 port; + void *p; + // we need to be sure there is enough space before // ip6srv0 header, there is some extra space // in the pre_data area for this kind of @@ -237,6 +257,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, } // get length of encapsulated IPv6 packet (the remaining part) + p = vlib_buffer_get_current (b0); + len0 = vlib_buffer_length_in_chain (vm, b0); // jump back to data[0] or pre_data if required @@ -246,11 +268,6 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, clib_memcpy (hdr0, &sm->cache_hdr, sizeof (ip4_gtpu_header_t)); - u32 teid; - u8 *teid8p = (u8 *)&teid; - u32 index; - u32 offset, shift; - offset = ls0->localsid_len / 8; shift = ls0->localsid_len % 8; @@ -283,32 +300,43 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, shift = ls_param->local_prefixlen % 8; if (PREDICT_TRUE(shift == 0)) { +#if 0 u8 *pp; - pp = (u8 *) &hdr0->udp.src_port; +#endif for (index = 0; index < 4; index ++) { hdr0->ip4.src_address.as_u8[index] = src0.as_u8[offset + index]; } +#if 0 for (index = 0; index < 2; index++) { pp[index] = src0.as_u8[offset + 4 + index]; } +#endif } else { +#if 0 u8 *pp; - pp = (u8 *) &hdr0->udp.src_port; +#endif + for (index = 0; index < 4; index ++) { hdr0->ip4.src_address.as_u8[index] = src0.as_u8[offset + index] << shift; hdr0->ip4.src_address.as_u8[index] |= src0.as_u8[offset + index + 1] >> (8 - shift); } +#if 0 for (index = 0; index < 2; index++) { pp[index] = src0.as_u8[offset + index + 4] << shift; pp[index] |= src0.as_u8[offset + index + 5] >> (8 - shift); } +#endif } + key = hash_memory(p, len0, 0); + port = hash_uword_to_u16(&key); + hdr0->udp.src_port = port; + hdr0->udp.length = clib_host_to_net_u16 (len0 + sizeof (udp_header_t) + sizeof (gtpu_header_t)); @@ -372,18 +400,6 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { }, }; -static inline u16 -hash_uword_to_u16 (uword *key) -{ - u16 *val; - val = (u16 *)key; -#if uword_bits == 64 - return val[0] ^ val[1] ^ val[3] ^ val[4]; -#else - return val[0] ^ val[1]; -#endif -} - // Function for SRv6 GTP6.E function VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, vlib_node_runtime_t * node, diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 511a49ae63a7..517364288acd 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -890,7 +890,7 @@ sr_policy_command_fn (vlib_main_t * vm, unformat_input_t * input, is_encap = 1; else if (unformat (input, "insert")) is_encap = 0; - else if (unformat (input, "gtp4_removal sr_prefix %U/%d local_prefix %U/%d", + else if (unformat (input, "gtp4_removal sr_prefix %U/%d v6src_prefix %U/%d", unformat_ip6_address, &tmap_prefix, >p4_mask_width, unformat_ip6_address, &tmap_localsid, &localsid_mask_width)) { @@ -1481,7 +1481,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; ip4_address_t sr_addr0, sr_addr1, sr_addr2, sr_addr3; ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; +#if 0 u16 sr_port0 = 0, sr_port1 = 0, sr_port2 = 0, sr_port3 = 0; +#endif u32 teid0 = 0, teid1 = 0, teid2 = 0, teid3 = 0; u8 *teidp0 = NULL, *teidp1 = NULL, *teidp2 = NULL, *teidp3 = NULL; u32 offset, shift; @@ -1565,7 +1567,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; +#if 0 sr_port0 = hdr0->udp.src_port; +#endif vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); encap0 = vlib_buffer_get_current (b0); clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), @@ -1585,7 +1589,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp1 = (u8 *)&teid1; sr_addr1 = hdr1->ip4.src_address; dst_addr1 = hdr1->ip4.dst_address; +#if 0 sr_port1 = hdr1->udp.src_port; +#endif vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); encap1 = vlib_buffer_get_current (b1); clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), @@ -1604,7 +1610,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp2 = (u8 *)&teid2; sr_addr2 = hdr2->ip4.src_address; dst_addr2 = hdr2->ip4.dst_address; +#if 0 sr_port2 = hdr2->udp.src_port; +#endif vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); encap2 = vlib_buffer_get_current (b2); clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), @@ -1623,7 +1631,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp3 = (u8 *)&teid3; sr_addr3 = hdr3->ip4.src_address; dst_addr3 = hdr3->ip4.dst_address; +#if 0 sr_port3 = hdr3->udp.src_port; +#endif vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); encap3 = vlib_buffer_get_current (b3); clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), @@ -1698,19 +1708,25 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); +#if 0 clib_memcpy_fast(&ip0->src_address.as_u8[offset+4], &sr_port0, 2); +#endif } else { +#if 0 u8 *pp = (u8 *)&sr_port0; +#endif for (index = 0; index < 4; index++) { ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); } +#if 0 for (index = 0; index < 2; index++) { ip0->src_address.as_u8[offset + 4] |= (pp[index] >> shift); ip0->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); } +#endif } } @@ -1747,19 +1763,25 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip1->src_address.as_u8[0], &sl1->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip1->src_address.as_u8[offset], &sr_addr1.as_u32, 4); +#if 0 clib_memcpy_fast(&ip1->src_address.as_u8[offset+4], &sr_port1, 2); +#endif } else { +#if 0 u8 *pp = (u8 *)&sr_port1; +#endif for (index = 0; index < 4; index++) { ip1->src_address.as_u8[offset] |= sr_addr1.as_u8[index] >> shift; ip1->src_address.as_u8[offset + 1] |= sr_addr1.as_u8[index] << (8 - shift); } +#if 0 for (index = 0; index < 2; index++) { ip1->src_address.as_u8[offset + 4] |= (pp[index] >> shift); ip1->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); } +#endif } } @@ -1796,19 +1818,25 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip2->src_address.as_u8[0], &sl2->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip2->src_address.as_u8[offset], &sr_addr2.as_u32, 4); +#if 0 clib_memcpy_fast(&ip2->src_address.as_u8[offset+4], &sr_port2, 2); +#endif } else { +#if 0 u8 *pp = (u8 *)&sr_port2; +#endif for (index = 0; index < 4; index++) { ip2->src_address.as_u8[offset] |= sr_addr2.as_u8[index] >> shift; ip2->src_address.as_u8[offset + 1] |= sr_addr2.as_u8[index] << (8 - shift); } +#if 0 for (index = 0; index < 2; index++) { ip2->src_address.as_u8[offset + 4] |= (pp[index] >> shift); ip2->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); } +#endif } } @@ -1845,19 +1873,25 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip3->src_address.as_u8[0], &sl3->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip3->src_address.as_u8[offset], &sr_addr3.as_u32, 4); +#if 0 clib_memcpy_fast(&ip3->src_address.as_u8[offset+4], &sr_port3, 2); +#endif } else { +#if 0 u8 *pp = (u8 *)&sr_port3; +#endif for (index = 0; index < 4; index++) { ip3->src_address.as_u8[offset] |= sr_addr3.as_u8[index] >> shift; ip3->src_address.as_u8[offset + 1] |= sr_addr3.as_u8[index] << (8 - shift); } +#if 0 for (index = 0; index < 2; index++) { ip3->src_address.as_u8[offset + 4] |= (pp[index] >> shift); ip3->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); } +#endif } } @@ -1963,7 +1997,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_gtpu_header_t *hdr0; ip4_address_t sr_addr0; ip4_address_t dst_addr0; +#if 0 u16 sr_port0 = 0; +#endif u32 teid0 = 0; u8 *teidp0 = NULL; u32 offset, shift; @@ -1998,7 +2034,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; +#if 0 sr_port0 = hdr0->udp.src_port; +#endif // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); @@ -2057,19 +2095,25 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); +#if 0 clib_memcpy_fast(&ip0->src_address.as_u8[offset+4], &sr_port0, 2); +#endif } else { +#if 0 u8 *pp = (u8 *)&sr_port0; +#endif for (index = 0; index < 4; index++) { ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); } +#if 0 for (index = 0; index < 2; index++) { ip0->src_address.as_u8[offset + 4] |= (pp[index] >> shift); ip0->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); } +#endif } } From 0a4bf3e3e08bc1b192ef5fc40d6c20f8e5c0f8d8 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Fri, 12 Jul 2019 19:25:02 -0700 Subject: [PATCH 098/154] reduce the docker image size --- extras/ietf105/Dockerfile.j2 | 3 +-- extras/ietf105/Dockerfile.j2.release | 26 ++++++++------------- extras/ietf105/runner.py | 35 ++++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/extras/ietf105/Dockerfile.j2 b/extras/ietf105/Dockerfile.j2 index 1707fe639fc7..5e0a5a1f5129 100644 --- a/extras/ietf105/Dockerfile.j2 +++ b/extras/ietf105/Dockerfile.j2 @@ -36,8 +36,7 @@ RUN set -eux; \ cd {{vpp_path}}/build-root; \ rm vpp-api-python_*.deb; \ dpkg -i *.deb ; \ - cp {{vpp_path}}/startup.conf /etc/startup.conf; \ - rm -rf {{vpp_path}} + cp {{vpp_path}}/startup.conf /etc/startup.conf WORKDIR / diff --git a/extras/ietf105/Dockerfile.j2.release b/extras/ietf105/Dockerfile.j2.release index 034b46fe1c3d..444005181409 100644 --- a/extras/ietf105/Dockerfile.j2.release +++ b/extras/ietf105/Dockerfile.j2.release @@ -6,8 +6,11 @@ RUN set -eux; \ apt-get install -y --no-install-recommends \ inetutils-traceroute \ ca-certificates \ - build-essential \ - git gdb sudo \ + libmbedcrypto1 \ + libmbedtls10 \ + libmbedx509-0 \ + libnuma1 \ + sudo \ iputils-ping \ net-tools \ iproute2 \ @@ -19,22 +22,13 @@ RUN set -eux; \ WORKDIR /tmp +COPY startup.conf /etc/startup.conf + +COPY deb/ /tmp + RUN set -eux; \ - git clone -b ietf105-hackathon https://github.com/filvarga/srv6-mobile.git; \ - cd /tmp/srv6-mobile; \ - make wipe; \ - export UNATTENDED=y; \ - make install-dep; \ - rm -rf /var/lib/apt/lists/* ; \ - make build; \ - make pkg-deb; \ - rm -rf .ccache; \ - find . -type f -name '*.o' -delete ; \ - cd /tmp/srv6-mobile/build-root; \ - rm vpp-api-python_*.deb; \ dpkg -i *.deb ; \ - cp /tmp/srv6-mobile/extras/ietf105/startup.conf.j2 /etc/startup.conf; \ - rm -rf /tmp/srv6-mobile + rm -rf *.deb WORKDIR / diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 54727b11aacf..0eb9b6db06b6 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -234,8 +234,12 @@ def release(self, path, vpp_path): env.get_template("Dockerfile.j2.release"), {'vpp_path': vpp_path}) + self.tmp_render(join(vpp_path, "startup.conf"), + env.get_template("startup.conf.j2"), + {'vpp_path': vpp_path}) + ref, _ = self.client.images.build(path=vpp_path, - tag=self.image, rm=True) + tag="ietf105-release-image", rm=True) return ref def new(self, name): @@ -928,8 +932,25 @@ def build_image(self): self.containers.build(self.path, self.vpp_path) def release_image(self): + instance = self.containers.new("release-build") + + system("mkdir {}/deb".format(self.vpp_path)) + + system("docker cp release-build:{}/build-root/libvppinfra_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/build-root/libvppinfra-dev_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/build-root/python3-vpp-api_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/build-root/vpp_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/build-root/vpp-dbg_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/build-root/vpp-dev_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/build-root/vpp-plugin-core_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/build-root/vpp-plugin-dpdk_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + + instance.rem() + self.containers.release(self.path, self.vpp_path) + system("rm -rf {}/deb".format(self.vpp_path)) + def vppctl(self, index, command=None): if index >= len(self.instance_names): return @@ -953,6 +974,9 @@ def get_args(): parser.add_argument("--verbose", choices=[ 'error', 'debug', 'info']) + parser.add_argument('--image', choices=[ + 'debug', 'release']) + subparsers = parser.add_subparsers() p1 = subparsers.add_parser("infra", @@ -990,11 +1014,18 @@ def get_args(): return vars(args) -def main(op=None, image=None, prefix=None, verbose=None, index=None, command=None): +def main(op=None, prefix=None, verbose=None, image=None, index=None, command=None): if verbose: basicConfig(level=verbose_levels[verbose]) + if image == 'release': + image="ietf105-release-image" + elif image == 'debug': + image="ietf105-image" + + print("Verified image: {}".format(image)) + program = Program(image, prefix) try: From 749627e361bdb7a841cbc8c850ad6f08785bb176 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Fri, 12 Jul 2019 23:52:42 -0700 Subject: [PATCH 099/154] fix the build issue for the release image --- extras/ietf105/Dockerfile.j2 | 2 ++ extras/ietf105/Dockerfile.j2.release | 3 ++- extras/ietf105/runner.py | 13 ++----------- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/extras/ietf105/Dockerfile.j2 b/extras/ietf105/Dockerfile.j2 index 5e0a5a1f5129..b157e43dc28f 100644 --- a/extras/ietf105/Dockerfile.j2 +++ b/extras/ietf105/Dockerfile.j2 @@ -35,6 +35,8 @@ RUN set -eux; \ find . -type f -name '*.o' -delete ; \ cd {{vpp_path}}/build-root; \ rm vpp-api-python_*.deb; \ + tar czf vpp-package.tgz *.deb; \ + mv vpp-package.tgz {{vpp_path}}/; \ dpkg -i *.deb ; \ cp {{vpp_path}}/startup.conf /etc/startup.conf diff --git a/extras/ietf105/Dockerfile.j2.release b/extras/ietf105/Dockerfile.j2.release index 444005181409..851aef66197b 100644 --- a/extras/ietf105/Dockerfile.j2.release +++ b/extras/ietf105/Dockerfile.j2.release @@ -24,9 +24,10 @@ WORKDIR /tmp COPY startup.conf /etc/startup.conf -COPY deb/ /tmp +COPY vpp-package.tgz /tmp RUN set -eux; \ + tar xzf vpp-package.tgz; \ dpkg -i *.deb ; \ rm -rf *.deb diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 0eb9b6db06b6..57a88383a7d1 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -934,22 +934,13 @@ def build_image(self): def release_image(self): instance = self.containers.new("release-build") - system("mkdir {}/deb".format(self.vpp_path)) - - system("docker cp release-build:{}/build-root/libvppinfra_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) - system("docker cp release-build:{}/build-root/libvppinfra-dev_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) - system("docker cp release-build:{}/build-root/python3-vpp-api_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) - system("docker cp release-build:{}/build-root/vpp_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) - system("docker cp release-build:{}/build-root/vpp-dbg_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) - system("docker cp release-build:{}/build-root/vpp-dev_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) - system("docker cp release-build:{}/build-root/vpp-plugin-core_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) - system("docker cp release-build:{}/build-root/vpp-plugin-dpdk_19.04-rc0~1230-gc2089eb98_amd64.deb {}/deb/".format(self.vpp_path, self.vpp_path)) + system("docker cp release-build:{}/vpp-package.tgz {}/".format(self.vpp_path, self.vpp_path)) instance.rem() self.containers.release(self.path, self.vpp_path) - system("rm -rf {}/deb".format(self.vpp_path)) + system("rm -rf {}/vpp-package.tgz".format(self.vpp_path)) def vppctl(self, index, command=None): if index >= len(self.instance_names): From 30a11e2b6cab8805ea3936b9bce3f2f5e1724907 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 15 Jul 2019 10:18:16 -0700 Subject: [PATCH 100/154] clean up the code --- src/plugins/srv6-mobile/node.c | 42 +------------- src/vnet/srv6/sr_policy_rewrite.c | 91 ------------------------------- 2 files changed, 3 insertions(+), 130 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 34b4103ab500..bd1f6a2297ee 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -300,37 +300,14 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, shift = ls_param->local_prefixlen % 8; if (PREDICT_TRUE(shift == 0)) { -#if 0 - u8 *pp; - pp = (u8 *) &hdr0->udp.src_port; -#endif - for (index = 0; index < 4; index ++) { hdr0->ip4.src_address.as_u8[index] = src0.as_u8[offset + index]; } - -#if 0 - for (index = 0; index < 2; index++) { - pp[index] = src0.as_u8[offset + 4 + index]; - } -#endif } else { -#if 0 - u8 *pp; - pp = (u8 *) &hdr0->udp.src_port; -#endif - for (index = 0; index < 4; index ++) { hdr0->ip4.src_address.as_u8[index] = src0.as_u8[offset + index] << shift; hdr0->ip4.src_address.as_u8[index] |= src0.as_u8[offset + index + 1] >> (8 - shift); } - -#if 0 - for (index = 0; index < 2; index++) { - pp[index] = src0.as_u8[offset + index + 4] << shift; - pp[index] |= src0.as_u8[offset + index + 5] >> (8 - shift); - } -#endif } key = hash_memory(p, len0, 0); @@ -487,7 +464,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, hdr0 = vlib_buffer_get_current (b0); - clib_memcpy (hdr0, &sm->cache_hdr, sizeof (ip6_gtpu_header_t)); + clib_memcpy_fast (hdr0, &sm->cache_hdr, sizeof (ip6_gtpu_header_t)); u32 teid; u8 *teid8p = (u8 *)&teid; @@ -519,9 +496,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, hdr0->udp.length = clib_host_to_net_u16 (len0 + sizeof (udp_header_t) + sizeof (gtpu_header_t)); - clib_memcpy (hdr0->ip6.src_address.as_u8, dst0.as_u8, + clib_memcpy_fast (hdr0->ip6.src_address.as_u8, dst0.as_u8, sizeof(ip6_address_t)); - clib_memcpy (hdr0->ip6.dst_address.as_u8, &seg0.as_u8, + clib_memcpy_fast (hdr0->ip6.dst_address.as_u8, &seg0.as_u8, sizeof(ip6_address_t)); hdr0->ip6.payload_length = clib_host_to_net_u16 (len0 + @@ -972,22 +949,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if (sl) { -#if 0 - ip6_address_t *this_address; - ip6_address_t *addrp; - - addrp = ip6srv->sr.segments + vec_len (sl->segments) + 1; - vec_foreach (this_address, sl->segments) - { - clib_memcpy_fast (addrp->as_u8, this_address->as_u8, - sizeof (ip6_address_t)); - addrp--; - } -#else clib_memcpy_fast (&ip6srv->sr.segments[2], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), vec_len (sl->segments) * sizeof(ip6_address_t)); -#endif } good_n++; diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 517364288acd..90406e6579ec 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1481,9 +1481,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_gtpu_header_t *hdr0, *hdr1, *hdr2, *hdr3; ip4_address_t sr_addr0, sr_addr1, sr_addr2, sr_addr3; ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; -#if 0 - u16 sr_port0 = 0, sr_port1 = 0, sr_port2 = 0, sr_port3 = 0; -#endif u32 teid0 = 0, teid1 = 0, teid2 = 0, teid3 = 0; u8 *teidp0 = NULL, *teidp1 = NULL, *teidp2 = NULL, *teidp3 = NULL; u32 offset, shift; @@ -1567,9 +1564,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; -#if 0 - sr_port0 = hdr0->udp.src_port; -#endif vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); encap0 = vlib_buffer_get_current (b0); clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), @@ -1589,9 +1583,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp1 = (u8 *)&teid1; sr_addr1 = hdr1->ip4.src_address; dst_addr1 = hdr1->ip4.dst_address; -#if 0 - sr_port1 = hdr1->udp.src_port; -#endif vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); encap1 = vlib_buffer_get_current (b1); clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), @@ -1610,9 +1601,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp2 = (u8 *)&teid2; sr_addr2 = hdr2->ip4.src_address; dst_addr2 = hdr2->ip4.dst_address; -#if 0 - sr_port2 = hdr2->udp.src_port; -#endif vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); encap2 = vlib_buffer_get_current (b2); clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), @@ -1631,9 +1619,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp3 = (u8 *)&teid3; sr_addr3 = hdr3->ip4.src_address; dst_addr3 = hdr3->ip4.dst_address; -#if 0 - sr_port3 = hdr3->udp.src_port; -#endif vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); encap3 = vlib_buffer_get_current (b3); clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), @@ -1708,25 +1693,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); -#if 0 - clib_memcpy_fast(&ip0->src_address.as_u8[offset+4], &sr_port0, 2); -#endif } else { -#if 0 - u8 *pp = (u8 *)&sr_port0; -#endif - for (index = 0; index < 4; index++) { ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); } - -#if 0 - for (index = 0; index < 2; index++) { - ip0->src_address.as_u8[offset + 4] |= (pp[index] >> shift); - ip0->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); - } -#endif } } @@ -1763,25 +1734,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip1->src_address.as_u8[0], &sl1->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip1->src_address.as_u8[offset], &sr_addr1.as_u32, 4); -#if 0 - clib_memcpy_fast(&ip1->src_address.as_u8[offset+4], &sr_port1, 2); -#endif } else { -#if 0 - u8 *pp = (u8 *)&sr_port1; -#endif - for (index = 0; index < 4; index++) { ip1->src_address.as_u8[offset] |= sr_addr1.as_u8[index] >> shift; ip1->src_address.as_u8[offset + 1] |= sr_addr1.as_u8[index] << (8 - shift); } - -#if 0 - for (index = 0; index < 2; index++) { - ip1->src_address.as_u8[offset + 4] |= (pp[index] >> shift); - ip1->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); - } -#endif } } @@ -1818,25 +1775,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip2->src_address.as_u8[0], &sl2->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip2->src_address.as_u8[offset], &sr_addr2.as_u32, 4); -#if 0 - clib_memcpy_fast(&ip2->src_address.as_u8[offset+4], &sr_port2, 2); -#endif } else { -#if 0 - u8 *pp = (u8 *)&sr_port2; -#endif - for (index = 0; index < 4; index++) { ip2->src_address.as_u8[offset] |= sr_addr2.as_u8[index] >> shift; ip2->src_address.as_u8[offset + 1] |= sr_addr2.as_u8[index] << (8 - shift); } - -#if 0 - for (index = 0; index < 2; index++) { - ip2->src_address.as_u8[offset + 4] |= (pp[index] >> shift); - ip2->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); - } -#endif } } @@ -1873,25 +1816,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip3->src_address.as_u8[0], &sl3->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip3->src_address.as_u8[offset], &sr_addr3.as_u32, 4); -#if 0 - clib_memcpy_fast(&ip3->src_address.as_u8[offset+4], &sr_port3, 2); -#endif } else { -#if 0 - u8 *pp = (u8 *)&sr_port3; -#endif - for (index = 0; index < 4; index++) { ip3->src_address.as_u8[offset] |= sr_addr3.as_u8[index] >> shift; ip3->src_address.as_u8[offset + 1] |= sr_addr3.as_u8[index] << (8 - shift); } - -#if 0 - for (index = 0; index < 2; index++) { - ip3->src_address.as_u8[offset + 4] |= (pp[index] >> shift); - ip3->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); - } -#endif } } @@ -1997,9 +1926,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_gtpu_header_t *hdr0; ip4_address_t sr_addr0; ip4_address_t dst_addr0; -#if 0 - u16 sr_port0 = 0; -#endif u32 teid0 = 0; u8 *teidp0 = NULL; u32 offset, shift; @@ -2034,9 +1960,6 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; -#if 0 - sr_port0 = hdr0->udp.src_port; -#endif // go after GTPU, we are at segment header vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); @@ -2095,25 +2018,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, clib_memcpy_fast(&ip0->src_address.as_u8[0], &sl0->local_prefix.as_u8[0], 16); if (PREDICT_TRUE(shift == 0)) { clib_memcpy_fast(&ip0->src_address.as_u8[offset], &sr_addr0.as_u32, 4); -#if 0 - clib_memcpy_fast(&ip0->src_address.as_u8[offset+4], &sr_port0, 2); -#endif } else { -#if 0 - u8 *pp = (u8 *)&sr_port0; -#endif - for (index = 0; index < 4; index++) { ip0->src_address.as_u8[offset] |= sr_addr0.as_u8[index] >> shift; ip0->src_address.as_u8[offset + 1] |= sr_addr0.as_u8[index] << (8 - shift); } - -#if 0 - for (index = 0; index < 2; index++) { - ip0->src_address.as_u8[offset + 4] |= (pp[index] >> shift); - ip0->src_address.as_u8[offset + 5] |= (pp[index] << (8 - shift)); - } -#endif } } From d8a6e0dbed0b79fcd9886e23c518ab39b5a97c7c Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 17 Jul 2019 14:02:02 -0700 Subject: [PATCH 101/154] Support the plug-in for gtp4.d --- extras/ietf105/runner.py | 128 ++++++++- src/plugins/srv6-mobile/CMakeLists.txt | 1 + src/plugins/srv6-mobile/gtp4_d.c | 190 +++++++++++++ src/plugins/srv6-mobile/gtp4_e.c | 8 +- src/plugins/srv6-mobile/mobile.h | 21 +- src/plugins/srv6-mobile/node.c | 352 ++++++++++++++++++++++--- src/vnet/srv6/sr_localsid.c | 47 +++- 7 files changed, 690 insertions(+), 57 deletions(-) create mode 100644 src/plugins/srv6-mobile/gtp4_d.c diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 57a88383a7d1..5cca0dd79ea3 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -638,6 +638,128 @@ def test_tmap_ipv6(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp4(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + #c1.set_ipv6_route("eth1", "A1::2", "D2::/128") + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp4_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6_drop_in(self): # TESTS: # trace add af-packet-input 10 @@ -995,7 +1117,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "tmap_ipv6", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) + "ping", "srv6", "tmap", "tmap_ipv6", "gtp4", "gtp4_ipv6", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -1042,6 +1164,10 @@ def main(op=None, prefix=None, verbose=None, image=None, index=None, command=Non program.test_tmap() elif op == 'tmap_ipv6': program.test_tmap_ipv6() + elif op == 'gtp4': + program.test_gtp4() + elif op == 'gtp4_ipv6': + program.test_gtp4_ipv6() elif op == 'gtp6_drop_in': program.test_gtp6_drop_in() elif op == 'gtp6_drop_in_ipv6': diff --git a/src/plugins/srv6-mobile/CMakeLists.txt b/src/plugins/srv6-mobile/CMakeLists.txt index 714b0e18a4cf..8d1f2a728b02 100644 --- a/src/plugins/srv6-mobile/CMakeLists.txt +++ b/src/plugins/srv6-mobile/CMakeLists.txt @@ -14,6 +14,7 @@ add_vpp_plugin(srv6mobile SOURCES gtp4_e.c + gtp4_d.c gtp6_e.c gtp6_d.c gtp6_d_di.c diff --git a/src/plugins/srv6-mobile/gtp4_d.c b/src/plugins/srv6-mobile/gtp4_d.c new file mode 100644 index 000000000000..a71adc678f81 --- /dev/null +++ b/src/plugins/srv6-mobile/gtp4_d.c @@ -0,0 +1,190 @@ +/* + * srv6_end_m_gtp4_d.c + * + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +srv6_end_main_v4_decap_t srv6_end_main_v4_decap; + +static void +clb_dpo_lock_srv6_end_m_gtp4_d (dpo_id_t * dpo) +{ +} + +static void +clb_dpo_unlock_srv6_end_m_gtp4_d (dpo_id_t * dpo) +{ +} + +static u8 * +clb_dpo_format_srv6_end_m_gtp4_d (u8 * s, va_list * args) +{ + index_t index = va_arg (*args, index_t); + CLIB_UNUSED (u32 indent) = va_arg (*args, u32); + + return (format (s, "SR: dynamic_proxy_index:[%u]", index)); +} + +const static dpo_vft_t dpo_vft = { + .dv_lock = clb_dpo_lock_srv6_end_m_gtp4_d, + .dv_unlock = clb_dpo_unlock_srv6_end_m_gtp4_d, + .dv_format = clb_dpo_format_srv6_end_m_gtp4_d, +}; + +const static char *const srv6_end_m_gtp4_d_nodes[] = { + "srv6-end-m-gtp4-d", + NULL, +}; + +const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { + [DPO_PROTO_IP4] = srv6_end_m_gtp4_d_nodes, +}; + +static u8 fn_name[] = "SRv6-End.M.GTP4.D-plugin"; +static u8 keyword_str[] = "end.m.gtp4.d"; +static u8 def_str[] = "Endpoint function with dencapsulation for IPv6/GTP tunnel"; +static u8 param_str[] = "/ v6src_prefix /"; + +static u8 * +clb_format_srv6_end_m_gtp4_d (u8 * s, va_list * args) +{ + srv6_end_gtp4_param_t *ls_mem = va_arg (*args, void *); + + s = format (s, "SRv6 End gtp4.d\n\t"); + + s = format (s, "SR Prefix: %U/%d, ", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); + + s = format (s, "v6src Prefix: %U/%d\n", format_ip6_address, &ls_mem->v6src_prefix, ls_mem->v6src_prefixlen); + + return s; +} + +static uword +clb_unformat_srv6_end_m_gtp4_d (unformat_input_t * input, va_list * args) +{ + void **plugin_mem_p = va_arg (*args, void **); + srv6_end_gtp4_param_t *ls_mem; + ip6_address_t sr_prefix; + u32 sr_prefixlen; + ip6_address_t v6src_prefix; + u32 v6src_prefixlen; + + if (!unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen, + unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) + { + return 0; + } + + ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); + clib_memset (ls_mem, 0, sizeof *ls_mem); + *plugin_mem_p = ls_mem; + + ls_mem->sr_prefix = sr_prefix; + ls_mem->sr_prefixlen = sr_prefixlen; + + ls_mem->v6src_prefix = v6src_prefix; + ls_mem->v6src_prefixlen = v6src_prefixlen; + + return 1; +} + +static int +clb_creation_srv6_end_m_gtp4_d (ip6_sr_localsid_t * localsid) +{ + return 0; +} + +static int +clb_removal_srv6_end_m_gtp4_d (ip6_sr_localsid_t * localsid) +{ + srv6_end_gtp4_param_t *ls_mem; + + ls_mem = localsid->plugin_mem; + + clib_mem_free (ls_mem); + + return 0; +} + +static clib_error_t * +srv6_end_m_gtp4_d_init (vlib_main_t * vm) +{ + srv6_end_main_v4_decap_t *sm = &srv6_end_main_v4_decap; + ip6_header_t *ip6; + dpo_type_t dpo_type; + vlib_node_t *node; + u32 rc; + + sm->vlib_main = vm; + sm->vnet_main = vnet_get_main (); + + node = vlib_get_node_by_name (vm, (u8 *) "srv6-end-m-gtp4-d"); + sm->end_m_gtp4_d_node_index = node->index; + + node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); + sm->error_node_index = node->index; + + ip6 = &sm->cache_hdr; + + clib_memset_u8 (ip6, 0, sizeof(ip6_header_t)); + + // IPv6 header (default) + ip6->ip_version_traffic_class_and_flow_label = 0x60; + ip6->hop_limit = 64; + ip6->protocol = IP_PROTOCOL_IPV6; + + dpo_type = dpo_register_new_type (&dpo_vft, dpo_nodes); + + rc = sr_localsid_register_function (vm, + fn_name, + keyword_str, + def_str, + param_str, + 128, //prefix len + &dpo_type, + clb_format_srv6_end_m_gtp4_d, + clb_unformat_srv6_end_m_gtp4_d, + clb_creation_srv6_end_m_gtp4_d, + clb_removal_srv6_end_m_gtp4_d); + if (rc < 0) + clib_error_return (0, "SRv6 Endpoint GTP4.D LocalSID function" + "couldn't be registered"); + return 0; +} + +/* *INDENT-OFF* */ +VNET_FEATURE_INIT (srv6_end_m_gtp4_d, static) = +{ + .arc_name = "ip4-unicast", + .node_name = "srv6-end-m-gtp4-d", + .runs_before = 0, +}; + +VLIB_INIT_FUNCTION (srv6_end_m_gtp4_d_init); +/* *INDENT-ON* */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ diff --git a/src/plugins/srv6-mobile/gtp4_e.c b/src/plugins/srv6-mobile/gtp4_e.c index 1193004e3bfc..ca8eb1b39789 100644 --- a/src/plugins/srv6-mobile/gtp4_e.c +++ b/src/plugins/srv6-mobile/gtp4_e.c @@ -69,7 +69,7 @@ clb_format_srv6_end_m_gtp4_e (u8 * s, va_list * args) s = format (s, "SRv6 End gtp4.e\n\t"); - s = format (s, "IPv4 address position: %d\n", ls_mem->local_prefixlen); + s = format (s, "IPv4 address position: %d\n", ls_mem->v4src_position); return s; } @@ -79,17 +79,17 @@ clb_unformat_srv6_end_m_gtp4_e (unformat_input_t * input, va_list * args) { void **plugin_mem_p = va_arg (*args, void **); srv6_end_gtp4_param_t *ls_mem; - u32 local_prefixlen; + u32 v4src_position; if (!unformat (input, "end.m.gtp4.e v4src_position %d", - &local_prefixlen)) + &v4src_position)) return 0; ls_mem = clib_mem_alloc_aligned_at_offset (sizeof *ls_mem, 0, 0, 1); clib_memset (ls_mem, 0, sizeof *ls_mem); *plugin_mem_p = ls_mem; - ls_mem->local_prefixlen = local_prefixlen; + ls_mem->v4src_position = v4src_position; return 1; } diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index c7fb190a8ee4..7b80b8c64d1b 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -36,12 +36,17 @@ typedef struct srv6_end_gtp6_param_s typedef struct srv6_end_gtp4_param_s { - u32 local_prefixlen; + ip6_address_t sr_prefix; + u32 sr_prefixlen; + + ip6_address_t v6src_prefix; + u32 v6src_prefixlen; + + u32 v4src_position; } srv6_end_gtp4_param_t; typedef struct srv6_end_main_v4_s { - vlib_main_t *vlib_main; vnet_main_t *vnet_main; @@ -55,7 +60,19 @@ typedef struct srv6_end_main_v4_s } srv6_end_main_v4_t; +typedef struct srv6_end_main_v4_decap_s +{ + vlib_main_t *vlib_main; + vnet_main_t *vnet_main; + + u32 end_m_gtp4_d_node_index; + u32 error_node_index; + + ip6_header_t cache_hdr; +} srv6_end_main_v4_decap_t; + extern srv6_end_main_v4_t srv6_end_main_v4; +extern srv6_end_main_v4_decap_t srv6_end_main_v4_decap; extern vlib_node_registration_t srv6_end_m_gtp4_e; typedef struct srv6_end_main_v6_s diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index bd1f6a2297ee..7365f07a237f 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -54,6 +54,10 @@ format_srv6_end_rewrite_trace6 (u8 * s, va_list * args) _(M_GTP4_E_PACKETS, "srv6 End.M.GTP4.E packets") \ _(M_GTP4_E_BAD_PACKETS, "srv6 End.M.GTP4.E bad packets") +#define foreach_srv6_end_v4_d_error \ + _(M_GTP4_D_PACKETS, "srv6 End.M.GTP4.D packets") \ + _(M_GTP4_D_BAD_PACKETS, "srv6 End.M.GTP4.D bad packets") + #define foreach_srv6_end_v6_e_error \ _(M_GTP6_E_PACKETS, "srv6 End.M.GTP6.E packets") \ _(M_GTP6_E_BAD_PACKETS, "srv6 End.M.GTP6.E bad packets") @@ -74,6 +78,14 @@ typedef enum SRV6_END_N_V4_ERROR, } srv6_end_error_v4_t; +typedef enum +{ +#define _(sym,str) SRV6_END_ERROR_##sym, + foreach_srv6_end_v4_d_error +#undef _ + SRV6_END_N_V4_D_ERROR, +} srv6_end_error_v4_d_t; + typedef enum { #define _(sym,str) SRV6_END_ERROR_##sym, @@ -104,6 +116,12 @@ static char *srv6_end_error_v4_strings[] = { #undef _ }; +static char *srv6_end_error_v4_d_strings[] = { +#define _(sym,string) string, + foreach_srv6_end_v4_d_error +#undef _ +}; + static char *srv6_end_error_v6_e_strings[] = { #define _(sym,string) string, foreach_srv6_end_v6_e_error @@ -129,6 +147,13 @@ typedef enum SRV6_END_M_GTP4_E_N_NEXT, } srv6_end_m_gtp4_e_next_t; +typedef enum +{ + SRV6_END_M_GTP4_D_NEXT_DROP, + SRV6_END_M_GTP4_D_NEXT_LOOKUP, + SRV6_END_M_GTP4_D_N_NEXT, +} srv6_end_m_gtp4_d_next_t; + typedef enum { SRV6_END_M_GTP6_E_NEXT_DROP, @@ -296,8 +321,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); - offset = ls_param->local_prefixlen / 8; - shift = ls_param->local_prefixlen % 8; + offset = ls_param->v4src_position / 8; + shift = ls_param->v4src_position % 8; if (PREDICT_TRUE(shift == 0)) { for (index = 0; index < 4; index ++) { @@ -361,6 +386,245 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, return frame->n_vectors; } +// Function for SRv6 GTP4.D function. +VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) +{ + srv6_end_main_v4_decap_t *sm = &srv6_end_main_v4_decap; + ip6_sr_main_t *sm2 = &sr_main; + u32 n_left_from, next_index, *from, *to_next; + u32 thread_index = vm->thread_index; + + u32 good_n = 0, bad_n = 0; + + from = vlib_frame_vector_args (frame); + n_left_from = frame->n_vectors; + next_index = node->cached_next_index; + + while (n_left_from > 0) + { + u32 n_left_to_next; + + vlib_get_next_frame (vm, node, next_index, to_next, n_left_to_next); + + while (n_left_from > 0 && n_left_to_next > 0) + { + u32 bi0; + vlib_buffer_t *b0; + ip6_sr_localsid_t *ls0; + srv6_end_gtp4_param_t *ls_param; + ip4_header_t *ip4; + + uword len0; + + u32 next0 = SRV6_END_M_GTP4_D_NEXT_LOOKUP; + + // defaults + bi0 = from[0]; + to_next[0] = bi0; + from += 1; + to_next += 1; + n_left_from -= 1; + n_left_to_next -= 1; + + b0 = vlib_get_buffer (vm, bi0); + + ls0 = + pool_elt_at_index (sm2->localsids, + vnet_buffer (b0)->ip.adj_index[VLIB_TX]); + + ls_param = (srv6_end_gtp4_param_t *)ls0->plugin_mem; + + len0 = vlib_buffer_length_in_chain (vm, b0); + + ip4 = vlib_buffer_get_current (b0); + + if (ip4->protocol != IP_PROTOCOL_UDP + || len0 < sizeof(ip4_gtpu_header_t)) + { + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + + bad_n++; + } + else + { + uword *p; + ip6_sr_policy_t *sr_policy = NULL; + ip6_sr_sl_t *sl = NULL; + u32 *sl_index; + u32 hdr_len; + + ip4_gtpu_header_t *hdr; + ip4_address_t src, dst; + u8 *srcp, *dstp; + ip6_header_t *encap; + ip6_address_t seg; + ip6_address_t src6; + u32 teid; + u8 *teidp; + u32 offset, shift, index; + ip6srv_combo_header_t *ip6srv; + + hdr = (ip4_gtpu_header_t *)ip4; + + teid = hdr->gtpu.teid; + teidp = (u8 *) &teid; + + src = hdr->ip4.src_address; + srcp = (u8 *) &src; + + dst = hdr->ip4.dst_address; + dstp = (u8 *) &dst; + + seg = ls_param->sr_prefix; + + offset = ls_param->sr_prefixlen / 8; + shift = ls_param->sr_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) + { + clib_memcpy_fast (&seg.as_u8[offset], dstp, 4); + + clib_memcpy_fast (&seg.as_u8[offset + 5], teidp, 4); + } + else + { + for (index = 0; index < 4; index++) + { + seg.as_u8[offset + index] |= dstp[index] >> shift; + seg.as_u8[offset + index + 1] |= dstp[index] << (8 - shift); + + seg.as_u8[offset + index + 5] |= teidp[index] >> shift; + seg.as_u8[offset + index + 6] |= teidp[index] << (8 - shift); + } + } + + src6 = ls_param->v6src_prefix; + + offset = ls_param->v6src_prefixlen / 8; + shift = ls_param->v6src_prefixlen % 8; + + if (PREDICT_TRUE(shift == 0)) + { + clib_memcpy_fast (&src6.as_u8[offset], srcp, 4); + } + else + { + for (index = 0; index < 4; index++) + { + src6.as_u8[offset + index] |= srcp[offset] >> shift; + src6.as_u8[offset + index + 1] |= srcp[offset] << (8 - shift); + } + } + + vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + encap = vlib_buffer_get_current (b0); + len0 = vlib_buffer_length_in_chain (vm, b0); + + p = mhash_get (&sm2->sr_policies_index_hash, &ls_param->sr_prefix); + if (p) + { + sr_policy = pool_elt_at_index (sm2->sr_policies, p[0]); + } + + if (sr_policy) + { + vec_foreach (sl_index, sr_policy->segments_lists) + { + sl = pool_elt_at_index (sm2->sid_lists, *sl_index); + if (sl != NULL) + break; + } + } + + if (sl) + { + hdr_len = sizeof (ip6srv_combo_header_t); + hdr_len += vec_len (sl->segments) * sizeof(ip6_address_t); + hdr_len += sizeof (ip6_address_t); + } + else + { + hdr_len = sizeof(ip6_header_t); + } + + vlib_buffer_advance (b0, - (word) hdr_len); + ip6srv = vlib_buffer_get_current (b0); + + if (sl) + { + clib_memcpy_fast (ip6srv, sl->rewrite, vec_len(sl->rewrite)); + + ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; + + ip6srv->sr.segments_left += 1; + ip6srv->sr.first_segment += 1; + + ip6srv->sr.length += sizeof(ip6_address_t) / 8; + ip6srv->sr.segments[0] = seg; + + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + + clib_memcpy_fast (&ip6srv->sr.segments[1], + (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), + vec_len(sl->segments) * sizeof(ip6_address_t)); + } + else + { + clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); + + ip6srv->ip.dst_address = seg; + + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + } + + ip6srv->ip.src_address = src6; + + ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); + + good_n++; + + if (PREDICT_FALSE (node->flags & VLIB_NODE_FLAG_TRACE) && + PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) + { + srv6_end_rewrite_trace_t *tr = + vlib_add_trace (vm, node, b0, sizeof (*tr)); + clib_memcpy (tr->src.as_u8, ip6srv->ip.src_address.as_u8, + sizeof (tr->src.as_u8)); + clib_memcpy (tr->dst.as_u8, ip6srv->ip.dst_address.as_u8, + sizeof (tr->dst.as_u8)); + } + } + + vlib_increment_combined_counter + (((next0 == + SRV6_END_M_GTP4_D_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : + &(sm2->sr_ls_valid_counters)), thread_index, ls0 - sm2->localsids, + 1, vlib_buffer_length_in_chain (vm, b0)); + + vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, + n_left_to_next, bi0, next0); + } + + vlib_put_next_frame (vm, node, next_index, n_left_to_next); + } + + vlib_node_increment_counter (vm, sm->end_m_gtp4_d_node_index, + SRV6_END_ERROR_M_GTP4_D_BAD_PACKETS, + bad_n); + + vlib_node_increment_counter (vm, sm->end_m_gtp4_d_node_index, + SRV6_END_ERROR_M_GTP4_D_PACKETS, + good_n); + + return frame->n_vectors; +} + VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { .name = "srv6-end-m-gtp4-e", .vector_size = sizeof (u32), @@ -377,6 +641,22 @@ VLIB_REGISTER_NODE (srv6_end_m_gtp4_e) = { }, }; +VLIB_REGISTER_NODE (srv6_end_m_gtp4_d) = { + .name = "srv6-end-m-gtp4-d", + .vector_size = sizeof (u32), + .format_trace = format_srv6_end_rewrite_trace, + .type = VLIB_NODE_TYPE_INTERNAL, + + .n_errors = ARRAY_LEN (srv6_end_error_v4_d_strings), + .error_strings = srv6_end_error_v4_d_strings, + + .n_next_nodes = SRV6_END_M_GTP4_D_N_NEXT, + .next_nodes = { + [SRV6_END_M_GTP4_D_NEXT_DROP] = "error-drop", + [SRV6_END_M_GTP4_D_NEXT_LOOKUP] = "ip6-lookup", + }, +}; + // Function for SRv6 GTP6.E function VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, vlib_node_runtime_t * node, @@ -622,28 +902,22 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; - if (ls_param->sr_prefixlen != 0) - { - offset = ls_param->sr_prefixlen / 8; - shift = ls_param->sr_prefixlen % 8; + offset = ls_param->sr_prefixlen / 8; + shift = ls_param->sr_prefixlen % 8; - offset += 1; - if (PREDICT_TRUE (shift == 0)) - { - seg0.as_u8[offset] = teidp[0]; - seg0.as_u8[offset+1] = teidp[1]; - seg0.as_u8[offset+2] = teidp[2]; - seg0.as_u8[offset+3] = teidp[3]; - } - else - { - int idx; + offset += 1; + if (PREDICT_TRUE (shift == 0)) + { + clib_memcpy_fast (&seg0.as_u8[offset], teidp, 4); + } + else + { + int idx; - for (idx = 0; idx < 4; idx++) - { - seg0.as_u8[offset + idx] |= teidp[idx] >> shift; - seg0.as_u8[offset + idx + 1] |= teidp[idx] << shift; - } + for (idx = 0; idx < 4; idx++) + { + seg0.as_u8[offset + idx] |= teidp[idx] >> shift; + seg0.as_u8[offset + idx + 1] |= teidp[idx] << (8 - shift); } } @@ -844,28 +1118,22 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; - if (ls_param->sr_prefixlen != 0) - { - offset = ls_param->sr_prefixlen / 8; - shift = ls_param->sr_prefixlen % 8; + offset = ls_param->sr_prefixlen / 8; + shift = ls_param->sr_prefixlen % 8; - offset += 1; - if (PREDICT_TRUE (shift == 0)) - { - seg0.as_u8[offset] = teidp[0]; - seg0.as_u8[offset+1] = teidp[1]; - seg0.as_u8[offset+2] = teidp[2]; - seg0.as_u8[offset+3] = teidp[3]; - } - else - { - int idx; + offset += 1; + if (PREDICT_TRUE (shift == 0)) + { + clib_memcpy_fast (&seg0.as_u8[offset], teidp, 4); + } + else + { + int idx; - for (idx = 0; idx < 4; idx++) - { - seg0.as_u8[offset + idx] |= teidp[idx] >> shift; - seg0.as_u8[offset + idx + 1] |= teidp[idx] << shift; - } + for (idx = 0; idx < 4; idx++) + { + seg0.as_u8[offset + idx] |= teidp[idx] >> shift; + seg0.as_u8[offset + idx + 1] |= teidp[idx] << (8 - shift); } } diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index 3127132fa529..e6da2414b2d9 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -72,12 +72,26 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, uword *p; int rv; u8 pref_length = 128; + u8 is_ipv4 = 0; + ip4_address_t localsid_addr4;; + u16 prefixlen4; sr_localsid_fn_registration_t *plugin = 0; ip6_sr_localsid_t *ls = 0; dpo_id_t dpo = DPO_INVALID; + if (localsid_addr->as_u32[0] == 0 && localsid_addr->as_u32[1] == 0 + && localsid_addr->as_u16[4] == 0 && localsid_addr->as_u16[5] == 0xffff) + { + is_ipv4 = 1; + localsid_addr4.as_u32 = localsid_addr->as_u32[3]; + if (prefixlen != 0) + prefixlen4 = prefixlen - 96; + else + prefixlen4 = 32; + } + /* Search for the item */ p = mhash_get (&sm->sr_localsids_index_hash, localsid_addr); @@ -108,7 +122,14 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, } }; - fib_table_entry_delete (fib_table_find (FIB_PROTOCOL_IP6, + if (is_ipv4) + { + pfx.fp_proto = FIB_PROTOCOL_IP4; + pfx.fp_len = prefixlen4; + pfx.fp_addr.ip4 = localsid_addr4; + } + + fib_table_entry_delete (fib_table_find ((is_ipv4 ? FIB_PROTOCOL_IP4 : FIB_PROTOCOL_IP6), fib_table), &pfx, FIB_SOURCE_SR); /* In case it is a Xconnect iface remove the (OIF, NHOP) adj */ @@ -145,16 +166,25 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, .fp_len = pref_length, }; - if (prefixlen != 0) + if (is_ipv4) { - pfx.fp_len = prefixlen; + pfx.fp_proto = FIB_PROTOCOL_IP4; + pfx.fp_len = prefixlen4; + pfx.fp_addr.ip4 = localsid_addr4; } + else + { + pfx.fp_addr.as_u64[0] = localsid_addr->as_u64[0]; + pfx.fp_addr.as_u64[1] = localsid_addr->as_u64[1]; - pfx.fp_addr.as_u64[0] = localsid_addr->as_u64[0]; - pfx.fp_addr.as_u64[1] = localsid_addr->as_u64[1]; + if (prefixlen != 0) + { + pfx.fp_len = prefixlen; + } + } /* Lookup the FIB index associated to the table id provided */ - u32 fib_index = fib_table_find (FIB_PROTOCOL_IP6, fib_table); + u32 fib_index = fib_table_find ((is_ipv4 ? FIB_PROTOCOL_IP4 : FIB_PROTOCOL_IP6), fib_table); if (fib_index == ~0) return -3; @@ -172,7 +202,7 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, ls->behavior = behavior; ls->nh_adj = (u32) ~ 0; ls->fib_table = fib_table; - ls->localsid_len = pfx.fp_len; + ls->localsid_len = is_ipv4 ? pfx.fp_len + 96 : pfx.fp_len; switch (behavior) { case SR_BEHAVIOR_END: @@ -249,7 +279,8 @@ sr_cli_localsid (char is_del, ip6_address_t * localsid_addr, u16 prefixlen, pool_put (sm->localsids, ls); return -6; } - dpo_set (&dpo, plugin->dpo, DPO_PROTO_IP6, ls - sm->localsids); + dpo_set (&dpo, plugin->dpo, (is_ipv4 ? DPO_PROTO_IP4 : DPO_PROTO_IP6), ls - sm->localsids); + //dpo_set (&dpo, plugin->dpo, DPO_PROTO_IP6, ls - sm->localsids); } /* Set hash key for searching localsid by address */ From 9f1f360b36c8f5b7ecb3291b1a9f602f85146a4c Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 17 Jul 2019 15:21:13 -0700 Subject: [PATCH 102/154] Support NH type config(#14) --- src/plugins/srv6-mobile/gtp4_d.c | 43 +++++++- src/plugins/srv6-mobile/gtp6_d.c | 40 +++++++- src/plugins/srv6-mobile/gtp6_d_di.c | 39 ++++++- src/plugins/srv6-mobile/mobile.h | 13 +++ src/plugins/srv6-mobile/node.c | 151 ++++++++++++++++++++++++---- 5 files changed, 261 insertions(+), 25 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp4_d.c b/src/plugins/srv6-mobile/gtp4_d.c index a71adc678f81..f998ac67f96d 100644 --- a/src/plugins/srv6-mobile/gtp4_d.c +++ b/src/plugins/srv6-mobile/gtp4_d.c @@ -71,7 +71,21 @@ clb_format_srv6_end_m_gtp4_d (u8 * s, va_list * args) s = format (s, "SR Prefix: %U/%d, ", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); - s = format (s, "v6src Prefix: %U/%d\n", format_ip6_address, &ls_mem->v6src_prefix, ls_mem->v6src_prefixlen); + s = format (s, "v6src Prefix: %U/%d", format_ip6_address, &ls_mem->v6src_prefix, ls_mem->v6src_prefixlen); + + if (ls_mem->nhtype != SRV6_NHTYPE_NONE) + { + if (ls_mem->nhtype == SRV6_NHTYPE_IPV4) + s = format (s, ", NHType IPv4\n"); + else if (ls_mem->nhtype == SRV6_NHTYPE_IPV6) + s = format (s, ", NHType IPv6\n"); + else if (ls_mem->nhtype == SRV6_NHTYPE_NON_IP) + s = format (s, ", NHType Non-IP\n"); + else + s = format (s, ", NHType Unknow(%d)\n", ls_mem->nhtype); + } + else + s = format(s, "\n"); return s; } @@ -85,10 +99,33 @@ clb_unformat_srv6_end_m_gtp4_d (unformat_input_t * input, va_list * args) u32 sr_prefixlen; ip6_address_t v6src_prefix; u32 v6src_prefixlen; + u8 nhtype; - if (!unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d", + if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen, + unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) + { + nhtype = SRV6_NHTYPE_NONE; + } + else if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d nhtype ipv4", + unformat_ip6_address, &sr_prefix, &sr_prefixlen, + unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) + { + nhtype = SRV6_NHTYPE_IPV4; + } + else if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d nhtype ipv6", unformat_ip6_address, &sr_prefix, &sr_prefixlen, unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) + { + nhtype = SRV6_NHTYPE_IPV6; + } + else if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d nhtype non-ip", + unformat_ip6_address, &sr_prefix, &sr_prefixlen, + unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) + { + nhtype = SRV6_NHTYPE_NON_IP; + } + else { return 0; } @@ -103,6 +140,8 @@ clb_unformat_srv6_end_m_gtp4_d (unformat_input_t * input, va_list * args) ls_mem->v6src_prefix = v6src_prefix; ls_mem->v6src_prefixlen = v6src_prefixlen; + ls_mem->nhtype = nhtype; + return 1; } diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 330aa78900d2..e0f8c639e8cd 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -69,7 +69,21 @@ clb_format_srv6_end_m_gtp6_d (u8 * s, va_list * args) s = format (s, "SRv6 End gtp6.d\n\t"); - s = format (s, "SR Prefix: %U/%d\n", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); + s = format (s, "SR Prefix: %U/%d", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); + + if (ls_mem->nhtype != SRV6_NHTYPE_NONE) + { + if (ls_mem->nhtype == SRV6_NHTYPE_IPV4) + s = format (s, ", NHType IPv4\n"); + else if (ls_mem->nhtype == SRV6_NHTYPE_IPV6) + s = format (s, ", NHType IPv6\n"); + else if (ls_mem->nhtype == SRV6_NHTYPE_NON_IP) + s = format (s, ", NHType Non-IP\n"); + else + s = format (s, ", NHType Unknow(%d)\n", ls_mem->nhtype); + } + else + s = format(s, "\n"); return s; } @@ -81,9 +95,29 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; u32 sr_prefixlen; + u8 nhtype; - if (!unformat (input, "end.m.gtp6.d %U/%d", + if (unformat (input, "end.m.gtp6.d %U/%d", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + { + nhtype = SRV6_NHTYPE_NONE; + } + else if (unformat (input, "end.m.gtp6.d %U/%d nh-type ipv4", + unformat_ip6_address, &sr_prefix, &sr_prefixklen)) + { + nhtype = SRV6_NHTYPE_IPV4; + } + else if (unformat (input, "end.m.gtp6.d %U/%d nh-type ipv6", + unformat_ip6_address, &sr_prefix, &sr_prefixklen)) + { + nhtype = SRV6_NHTYPE_IPV6; + } + else if (unformat (input, "end.m.gtp6.d %U/%d nh-type none", + unformat_ip6_address, &sr_prefix, &sr_prefixklen)) + { + nhtype = SRV6_NHTYPE_NON_IP; + } + else { return 0; } @@ -95,6 +129,8 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) ls_mem->sr_prefix = sr_prefix; ls_mem->sr_prefixlen = sr_prefixlen; + ls_mem->nhtype = nhtype; + return 1; } diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index aeaeb3a2d58e..8df2e0616f85 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -69,7 +69,21 @@ clb_format_srv6_end_m_gtp6_d_di (u8 * s, va_list * args) s = format (s, "SRv6 End gtp6.d Drop-in\n\t"); - s = format (s, "SR Prefix: %U/%d\n", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); + s = format (s, "SR Prefix: %U/%d", format_ip6_address, &ls_mem->sr_prefix, ls_mem->sr_prefixlen); + + if (ls_mem->nhtype != SRV6_NHTYPE_NONE) + { + if (ls_mem->nhtype == SRV6_NHTYPE_IPV4) + s = format (s, ", NHType IPv4\n"); + else if (ls_mem->nhtype == SRV6_NHTYPE_IPV6) + s = format (s, ", NHType IPv6\n"); + else if (ls_mem->nhtype == SRV6_NHTYPE_NON_IP) + s = format (s, ", NHType Non-IP\n"); + else + s = format (s, ", NHType Unknow(%d)\n", ls_mem->nhtype); + } + else + s = format(s, "\n"); return s; } @@ -81,9 +95,29 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) srv6_end_gtp6_param_t *ls_mem; ip6_address_t sr_prefix; u32 sr_prefixlen = 0; + u8 nhtype; - if (!unformat (input, "end.m.gtp6.d.di %U/%d", + if (unformat (input, "end.m.gtp6.d.di %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + { + nhtype = SRV6_NHTYPE_NONE; + } + else if (unformat (input, "end.m.gtp6.d.di %U/%d nhtype ipv4", + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + { + nhtype = SRV6_NHTYPE_IPV4; + } + else if (unformat (input, "end.m.gtp6.d.di %U/%d nhtype ipv6", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + { + nhtype = SRV6_NHTYPE_IPV6; + } + else if (unformat (input, "end.m.gtp6.d.di %U/%d nhtype non-ip", + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + { + nhtype = SRV6_NHTYPE_NON_IP; + } + else { return 0; } @@ -94,6 +128,7 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) ls_mem->sr_prefix = sr_prefix; ls_mem->sr_prefixlen = sr_prefixlen; + ls_mem->nhtype = nhtype; return 1; } diff --git a/src/plugins/srv6-mobile/mobile.h b/src/plugins/srv6-mobile/mobile.h index 7b80b8c64d1b..c7ef6105d467 100644 --- a/src/plugins/srv6-mobile/mobile.h +++ b/src/plugins/srv6-mobile/mobile.h @@ -28,14 +28,27 @@ #define SRV6_GTP_UDP_DST_PORT 2152 +#define SRV6_NHTYPE_NONE 0 +#define SRV6_NHTYPE_IPV4 1 +#define SRV6_NHTYPE_IPV6 2 +#define SRV6_NHTYPE_NON_IP 3 + +#ifndef IP_PROTOCOL_NONE +#define IP_PROTOCOL_NONE 59 +#endif + typedef struct srv6_end_gtp6_param_s { + u8 nhtype; + ip6_address_t sr_prefix; u32 sr_prefixlen; } srv6_end_gtp6_param_t; typedef struct srv6_end_gtp4_param_s { + u8 nhtype; + ip6_address_t sr_prefix; u32 sr_prefixlen; diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 7365f07a237f..4c969b02542d 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -564,10 +564,33 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip6srv->sr.length += sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - else - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + } clib_memcpy_fast (&ip6srv->sr.segments[1], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), @@ -579,8 +602,33 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip6srv->ip.dst_address = seg; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->ip.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->ip.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->ip.protocol = IP_PROTOCOL_NONE; + } } ip6srv->ip.src_address = src6; @@ -980,10 +1028,33 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->sr.length += sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg0; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - else - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + } clib_memcpy_fast (&ip6srv->sr.segments[1], (u8 *)(sl->rewrite + sizeof(ip6_header_t) + sizeof(ip6_sr_header_t)), @@ -996,8 +1067,31 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->ip.src_address = dst0; ip6srv->ip.dst_address = seg0; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) - ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->ip.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->ip.protocol = IP_PROTOCOL_NONE; + } } ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); @@ -1202,15 +1296,34 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - { - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - } - else + if (ls_param->nhtype == SRV6_NHTYPE_NONE) { - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + } } - + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + } + ip6srv->sr.length += ((sizeof(ip6_address_t) * 2) / 8); ip6srv->sr.segments[0] = dst0; ip6srv->sr.segments[1] = seg0; From 370804c2c160e4581f4bd1e747cb91fd822b3607 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 17 Jul 2019 15:47:45 -0700 Subject: [PATCH 103/154] Support NH type config(#14) --- src/plugins/srv6-mobile/gtp6_d.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index e0f8c639e8cd..8af79ec52cec 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -103,17 +103,17 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) nhtype = SRV6_NHTYPE_NONE; } else if (unformat (input, "end.m.gtp6.d %U/%d nh-type ipv4", - unformat_ip6_address, &sr_prefix, &sr_prefixklen)) + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { nhtype = SRV6_NHTYPE_IPV4; } else if (unformat (input, "end.m.gtp6.d %U/%d nh-type ipv6", - unformat_ip6_address, &sr_prefix, &sr_prefixklen)) + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { nhtype = SRV6_NHTYPE_IPV6; } else if (unformat (input, "end.m.gtp6.d %U/%d nh-type none", - unformat_ip6_address, &sr_prefix, &sr_prefixklen)) + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { nhtype = SRV6_NHTYPE_NON_IP; } From 9d9f527f381e525788060754ad8e9cb010758fb9 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 17 Jul 2019 16:13:13 -0700 Subject: [PATCH 104/154] clean up runner.py --- extras/ietf105/runner.py | 1 - 1 file changed, 1 deletion(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 5cca0dd79ea3..37bfc7a58bde 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -666,7 +666,6 @@ def test_gtp4(self): c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - #c1.set_ipv6_route("eth1", "A1::2", "D2::/128") c2.set_ipv6_route("eth2", "A2::2", "D3::/128") c2.set_ipv6_route("eth1", "A1::1", "C::/120") c3.set_ipv6_route("eth2", "A3::2", "D4::/32") From 5052c36af245188c2d3faa26b208cfb0fc376761 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 17 Jul 2019 21:33:45 -0700 Subject: [PATCH 105/154] Support nhtype for gtp4.d, gtp6.d --- extras/ietf105/runner.py | 2 +- src/plugins/srv6-mobile/gtp4_d.c | 16 ++++++++-------- src/plugins/srv6-mobile/gtp6_d.c | 14 +++++++------- src/plugins/srv6-mobile/gtp6_d_di.c | 14 +++++++------- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py index 37bfc7a58bde..f26d04f8ece8 100755 --- a/extras/ietf105/runner.py +++ b/extras/ietf105/runner.py @@ -658,7 +658,7 @@ def test_gtp4(self): c1.vppctl_exec("set sr encaps source addr A1::1") c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") c2.vppctl_exec("sr localsid address D2:: behavior end") diff --git a/src/plugins/srv6-mobile/gtp4_d.c b/src/plugins/srv6-mobile/gtp4_d.c index f998ac67f96d..35fca17b4e72 100644 --- a/src/plugins/srv6-mobile/gtp4_d.c +++ b/src/plugins/srv6-mobile/gtp4_d.c @@ -60,7 +60,7 @@ const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { static u8 fn_name[] = "SRv6-End.M.GTP4.D-plugin"; static u8 keyword_str[] = "end.m.gtp4.d"; static u8 def_str[] = "Endpoint function with dencapsulation for IPv6/GTP tunnel"; -static u8 param_str[] = "/ v6src_prefix /"; +static u8 param_str[] = "/ v6src_prefix / [nhtype ]"; static u8 * clb_format_srv6_end_m_gtp4_d (u8 * s, va_list * args) @@ -101,13 +101,7 @@ clb_unformat_srv6_end_m_gtp4_d (unformat_input_t * input, va_list * args) u32 v6src_prefixlen; u8 nhtype; - if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d", - unformat_ip6_address, &sr_prefix, &sr_prefixlen, - unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) - { - nhtype = SRV6_NHTYPE_NONE; - } - else if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d nhtype ipv4", + if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d nhtype ipv4", unformat_ip6_address, &sr_prefix, &sr_prefixlen, unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) { @@ -125,6 +119,12 @@ clb_unformat_srv6_end_m_gtp4_d (unformat_input_t * input, va_list * args) { nhtype = SRV6_NHTYPE_NON_IP; } + else if (unformat (input, "end.m.gtp4.d %U/%d v6src_prefix %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen, + unformat_ip6_address, &v6src_prefix, &v6src_prefixlen)) + { + nhtype = SRV6_NHTYPE_NONE; + } else { return 0; diff --git a/src/plugins/srv6-mobile/gtp6_d.c b/src/plugins/srv6-mobile/gtp6_d.c index 8af79ec52cec..ed37eece61fe 100644 --- a/src/plugins/srv6-mobile/gtp6_d.c +++ b/src/plugins/srv6-mobile/gtp6_d.c @@ -60,7 +60,7 @@ const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { static u8 fn_name[] = "SRv6-End.M.GTP6.D-plugin"; static u8 keyword_str[] = "end.m.gtp6.d"; static u8 def_str[] = "Endpoint function with dencapsulation for IPv6/GTP tunnel"; -static u8 param_str[] = "/"; +static u8 param_str[] = "/ [nhtype ]"; static u8 * clb_format_srv6_end_m_gtp6_d (u8 * s, va_list * args) @@ -97,12 +97,7 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) u32 sr_prefixlen; u8 nhtype; - if (unformat (input, "end.m.gtp6.d %U/%d", - unformat_ip6_address, &sr_prefix, &sr_prefixlen)) - { - nhtype = SRV6_NHTYPE_NONE; - } - else if (unformat (input, "end.m.gtp6.d %U/%d nh-type ipv4", + if (unformat (input, "end.m.gtp6.d %U/%d nh-type ipv4", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { nhtype = SRV6_NHTYPE_IPV4; @@ -117,6 +112,11 @@ clb_unformat_srv6_end_m_gtp6_d (unformat_input_t * input, va_list * args) { nhtype = SRV6_NHTYPE_NON_IP; } + else if (unformat (input, "end.m.gtp6.d %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + { + nhtype = SRV6_NHTYPE_NONE; + } else { return 0; diff --git a/src/plugins/srv6-mobile/gtp6_d_di.c b/src/plugins/srv6-mobile/gtp6_d_di.c index 8df2e0616f85..b0fd1b9d5984 100644 --- a/src/plugins/srv6-mobile/gtp6_d_di.c +++ b/src/plugins/srv6-mobile/gtp6_d_di.c @@ -60,7 +60,7 @@ const static char *const *const dpo_nodes[DPO_PROTO_NUM] = { static u8 fn_name[] = "SRv6-End.M.GTP6.D.DI-plugin"; static u8 keyword_str[] = "end.m.gtp6.d.di"; static u8 def_str[] = "Endpoint function with drop-in dencapsulation for IPv6/GTP tunnel"; -static u8 param_str[] = "/"; +static u8 param_str[] = "/ [nhtype ]"; static u8 * clb_format_srv6_end_m_gtp6_d_di (u8 * s, va_list * args) @@ -97,12 +97,7 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) u32 sr_prefixlen = 0; u8 nhtype; - if (unformat (input, "end.m.gtp6.d.di %U/%d", - unformat_ip6_address, &sr_prefix, &sr_prefixlen)) - { - nhtype = SRV6_NHTYPE_NONE; - } - else if (unformat (input, "end.m.gtp6.d.di %U/%d nhtype ipv4", + if (unformat (input, "end.m.gtp6.d.di %U/%d nhtype ipv4", unformat_ip6_address, &sr_prefix, &sr_prefixlen)) { nhtype = SRV6_NHTYPE_IPV4; @@ -117,6 +112,11 @@ clb_unformat_srv6_end_m_gtp6_d_di (unformat_input_t * input, va_list * args) { nhtype = SRV6_NHTYPE_NON_IP; } + else if (unformat (input, "end.m.gtp6.d.di %U/%d", + unformat_ip6_address, &sr_prefix, &sr_prefixlen)) + { + nhtype = SRV6_NHTYPE_NONE; + } else { return 0; From 11a00cdc1941d0e7178cb4eaaaf57be23e4eef3a Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 15:28:10 +0000 Subject: [PATCH 106/154] fist text to describe how to play with SRv6 mobile user plane on VPP. --- README.md | 129 +++++++++++++++++++++--------------------------------- 1 file changed, 49 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index 4cc283b5e530..69c1cb013436 100644 --- a/README.md +++ b/README.md @@ -1,106 +1,75 @@ -Vector Packet Processing +SRv6 Mobile User Plane Plugin for VPP ======================== ## Introduction -The VPP platform is an extensible framework that provides out-of-the-box -production quality switch/router functionality. It is the open source version -of Cisco's Vector Packet Processing (VPP) technology: a high performance, -packet-processing stack that can run on commodity CPUs. - -The benefits of this implementation of VPP are its high performance, proven -technology, its modularity and flexibility, and rich feature set. - -For more information on VPP and its features please visit the -[FD.io website](http://fd.io/) and -[What is VPP?](https://wiki.fd.io/view/VPP/What_is_VPP%3F) pages. - - -## Changes - -Details of the changes leading up to this version of VPP can be found under -@ref release_notes. - - -## Directory layout - -| Directory name | Description | -| ---------------------- | ------------------------------------------- | -| build-data | Build metadata | -| build-root | Build output directory | -| doxygen | Documentation generator configuration | -| dpdk | DPDK patches and build infrastructure | -| @ref extras/libmemif | Client library for memif | -| @ref src/examples | VPP example code | -| @ref src/plugins | VPP bundled plugins directory | -| @ref src/svm | Shared virtual memory allocation library | -| src/tests | Standalone tests (not part of test harness) | -| src/vat | VPP API test program | -| @ref src/vlib | VPP application library | -| @ref src/vlibapi | VPP API library | -| @ref src/vlibmemory | VPP Memory management | -| @ref src/vnet | VPP networking | -| @ref src/vpp | VPP application | -| @ref src/vpp-api | VPP application API bindings | -| @ref src/vppinfra | VPP core library | -| @ref src/vpp/api | Not-yet-relocated API bindings | -| test | Unit tests and Python test harness | +[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane-05). -## Getting started -In general anyone interested in building, developing or running VPP should -consult the [VPP wiki](https://wiki.fd.io/view/VPP) for more complete -documentation. +## Getting started +To play with SRv6 Mobile User Plane on VPP, you need to install following packages: -In particular, readers are recommended to take a look at [Pulling, Building, -Running, Hacking, Pushing](https://wiki.fd.io/view/VPP/Pulling,_Building,_Run -ning,_Hacking_and_Pushing_VPP_Code) which provides extensive step-by-step -coverage of the topic. + docker + python3 -For the impatient, some salient information is distilled below. + Python packages (use pip): + docker + scapy + jinja2 ### Quick-start: On an existing Linux host -To install system dependencies, build VPP and then install it, simply run the -build script. This should be performed a non-privileged user with `sudo` -access from the project base directory: +``` +git clone https://github.com/filvarga/srv6-mobile.git +cd ./srv6-mobile/extras/ietf105 +./runner.py infra build - ./extras/vagrant/build.sh +``` -If you want a more fine-grained approach because you intend to do some -development work, the `Makefile` in the root directory of the source tree -provides several convenience shortcuts as `make` targets that may be of -interest. To see the available targets run: +### Test Scenarios +#### SRv6 Drop-in for GTP-U/UDP/IPv4 - make +IPv4 payload over GTP-U: +``` +./runner.py test tmap +``` -### Quick-start: Vagrant +IPv6 payload over GTP-U: +``` +./runner.py test tmap_ipv6 +``` -The directory `extras/vagrant` contains a `VagrantFile` and supporting -scripts to bootstrap a working VPP inside a Vagrant-managed Virtual Machine. -This VM can then be used to test concepts with VPP or as a development -platform to extend VPP. Some obvious caveats apply when using a VM for VPP -since its performance will never match that of bare metal; if your work is -timing or performance sensitive, consider using bare metal in addition or -instead of the VM. +#### SRv6 Drop-in for GTP-U/UDP/IPv6 -For this to work you will need a working installation of Vagrant. Instructions -for this can be found [on the Setting up Vagrant wiki page] -(https://wiki.fd.io/view/DEV/Setting_Up_Vagrant). +IPv4 payload over GTP-U: +``` +./runner.py test gtp6_drop_in +``` -## More information +IPv6 payload over GTP-U: +``` +./runner.py test gtp6_drop_in_ipv6 +``` -Several modules provide documentation, see @subpage user_doc for more -end-user-oriented information. Also see @subpage dev_doc for developer notes. -Visit the [VPP wiki](https://wiki.fd.io/view/VPP) for details on more -advanced building strategies and other development notes. +#### SRv6 from GTP-U/UDP/IPv6 +IPv4 payload over GTP-U: -## Test Framework +``` +./runner.py test gtp6 +``` -There is PyDoc generated documentation available for the VPP test framework. -See @ref test_framework_doc for details. +IPv6 payload over GTP-U: +``` +./runner.py test gtp6_ipv6 +``` + +## More information +TBD + +## Test Framework +TBD From 85f208037872c06f49ed3c74d7d5ce603d866698 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 18:13:54 +0000 Subject: [PATCH 107/154] add text to introduction. --- README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 69c1cb013436..22c9e1ce26c6 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,18 @@ SRv6 Mobile User Plane Plugin for VPP ## Introduction -[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane-05). +This fork of VPP implements stateless mobile user plane protocols translation between GTP-U and SRv6. +The functions of the translation take advantage of SRv6 network programmability. +[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane-05) defines the user plane protocol using SRv6 +including following stateless translations: +- T.M.GTP4.D: GTP-U over UDP/IPv4 -> SRv6 +- End.M.GTP4.E: SRv6 -> GTP-U over UDP/IPv4 +- End.M.GTP6.D: GTP-U over UDP/IPv6 -> SRv6 +- End.M.GTP6.E: SRv6 -> GTP-U over UDP/IPv6 + +These functions benefit both user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits +data plane to be able to handle user plane in routing paradigm. ## Getting started To play with SRv6 Mobile User Plane on VPP, you need to install following packages: @@ -18,12 +28,12 @@ To play with SRv6 Mobile User Plane on VPP, you need to install following packag jinja2 -### Quick-start: On an existing Linux host +### Quick-start ``` -git clone https://github.com/filvarga/srv6-mobile.git -cd ./srv6-mobile/extras/ietf105 -./runner.py infra build +$ git clone https://github.com/filvarga/srv6-mobile.git +$ cd ./srv6-mobile/extras/ietf105 +$ ./runner.py infra build ``` From c8dc17fca15c46bef7ea0b256d478c015993b1ee Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 18:20:06 +0000 Subject: [PATCH 108/154] add text to introduction. --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 22c9e1ce26c6..d6bee9415817 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,15 @@ The functions of the translation take advantage of SRv6 network programmability. [SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane-05) defines the user plane protocol using SRv6 including following stateless translations: -- T.M.GTP4.D: GTP-U over UDP/IPv4 -> SRv6 -- End.M.GTP4.E: SRv6 -> GTP-U over UDP/IPv4 -- End.M.GTP6.D: GTP-U over UDP/IPv6 -> SRv6 -- End.M.GTP6.E: SRv6 -> GTP-U over UDP/IPv6 +- T.M.GTP4.D: + - GTP-U over UDP/IPv4 -> SRv6 + +- End.M.GTP4.E: + - SRv6 -> GTP-U over UDP/IPv4 +- End.M.GTP6.D: + - GTP-U over UDP/IPv6 -> SRv6 +- End.M.GTP6.E: + - SRv6 -> GTP-U over UDP/IPv6 These functions benefit both user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits data plane to be able to handle user plane in routing paradigm. @@ -30,6 +35,8 @@ To play with SRv6 Mobile User Plane on VPP, you need to install following packag ### Quick-start +1. Build up the docker container image as following: + ``` $ git clone https://github.com/filvarga/srv6-mobile.git $ cd ./srv6-mobile/extras/ietf105 From c95fa6e7c4a54ae744256da550369c468877e09c Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 18:25:01 +0000 Subject: [PATCH 109/154] add text to introduction. --- README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index d6bee9415817..64dd3fbad0cf 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,13 @@ The functions of the translation take advantage of SRv6 network programmability. including following stateless translations: - T.M.GTP4.D: - - GTP-U over UDP/IPv4 -> SRv6 - + - GTP-U over UDP/IPv4 -> SRv6 - End.M.GTP4.E: - - SRv6 -> GTP-U over UDP/IPv4 + - SRv6 -> GTP-U over UDP/IPv4 - End.M.GTP6.D: - - GTP-U over UDP/IPv6 -> SRv6 + - GTP-U over UDP/IPv6 -> SRv6 - End.M.GTP6.E: - - SRv6 -> GTP-U over UDP/IPv6 + - SRv6 -> GTP-U over UDP/IPv6 These functions benefit both user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits data plane to be able to handle user plane in routing paradigm. @@ -50,12 +49,12 @@ $ ./runner.py infra build IPv4 payload over GTP-U: ``` -./runner.py test tmap +$ ./runner.py test tmap ``` IPv6 payload over GTP-U: ``` -./runner.py test tmap_ipv6 +$ ./runner.py test tmap_ipv6 ``` #### SRv6 Drop-in for GTP-U/UDP/IPv6 @@ -63,12 +62,12 @@ IPv6 payload over GTP-U: IPv4 payload over GTP-U: ``` -./runner.py test gtp6_drop_in +$ ./runner.py test gtp6_drop_in ``` IPv6 payload over GTP-U: ``` -./runner.py test gtp6_drop_in_ipv6 +$ ./runner.py test gtp6_drop_in_ipv6 ``` @@ -77,12 +76,12 @@ IPv6 payload over GTP-U: IPv4 payload over GTP-U: ``` -./runner.py test gtp6 +$ ./runner.py test gtp6 ``` IPv6 payload over GTP-U: ``` -./runner.py test gtp6_ipv6 +$ ./runner.py test gtp6_ipv6 ``` ## More information From f5c9cf4efb2fc202ffd38f2bbde3e089da001d37 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 18:26:36 +0000 Subject: [PATCH 110/154] add text to introduction. --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 64dd3fbad0cf..3547ac586b76 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,13 @@ The functions of the translation take advantage of SRv6 network programmability. including following stateless translations: - T.M.GTP4.D: - - GTP-U over UDP/IPv4 -> SRv6 + - GTP-U over UDP/IPv4 -> SRv6 - End.M.GTP4.E: - - SRv6 -> GTP-U over UDP/IPv4 + - SRv6 -> GTP-U over UDP/IPv4 - End.M.GTP6.D: - - GTP-U over UDP/IPv6 -> SRv6 + - GTP-U over UDP/IPv6 -> SRv6 - End.M.GTP6.E: - - SRv6 -> GTP-U over UDP/IPv6 + - SRv6 -> GTP-U over UDP/IPv6 These functions benefit both user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits data plane to be able to handle user plane in routing paradigm. From c3035429fbb02b5adca36f49b240c34f6016cd0b Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 18:34:19 +0000 Subject: [PATCH 111/154] add text to introduction. --- README.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3547ac586b76..45d46c9c55ad 100644 --- a/README.md +++ b/README.md @@ -8,16 +8,16 @@ The functions of the translation take advantage of SRv6 network programmability. [SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane-05) defines the user plane protocol using SRv6 including following stateless translations: -- T.M.GTP4.D: - - GTP-U over UDP/IPv4 -> SRv6 -- End.M.GTP4.E: - - SRv6 -> GTP-U over UDP/IPv4 -- End.M.GTP6.D: - - GTP-U over UDP/IPv6 -> SRv6 -- End.M.GTP6.E: - - SRv6 -> GTP-U over UDP/IPv6 - -These functions benefit both user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits +- T.M.GTP4.D: + GTP-U over UDP/IPv4 -> SRv6 +- End.M.GTP4.E: + SRv6 -> GTP-U over UDP/IPv4 +- End.M.GTP6.D: + GTP-U over UDP/IPv6 -> SRv6 +- End.M.GTP6.E: + SRv6 -> GTP-U over UDP/IPv6 + +These functions benefit user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits data plane to be able to handle user plane in routing paradigm. ## Getting started @@ -25,6 +25,7 @@ To play with SRv6 Mobile User Plane on VPP, you need to install following packag docker python3 + pip3 Python packages (use pip): docker @@ -53,6 +54,7 @@ $ ./runner.py test tmap ``` IPv6 payload over GTP-U: + ``` $ ./runner.py test tmap_ipv6 ``` @@ -66,6 +68,7 @@ $ ./runner.py test gtp6_drop_in ``` IPv6 payload over GTP-U: + ``` $ ./runner.py test gtp6_drop_in_ipv6 ``` From d78d2bf23440fc97aa4073bd00eac492735356e9 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 19:18:25 +0000 Subject: [PATCH 112/154] add text to introduction. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 45d46c9c55ad..876b9ce391ed 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ The functions of the translation take advantage of SRv6 network programmability. [SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane-05) defines the user plane protocol using SRv6 including following stateless translations: -- T.M.GTP4.D: +- **T.M.GTP4.D:** GTP-U over UDP/IPv4 -> SRv6 - End.M.GTP4.E: SRv6 -> GTP-U over UDP/IPv4 From bdcedd1125890fc440661bf3043a8db58fa5388e Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 16:50:15 -0400 Subject: [PATCH 113/154] add text and figure to get-started. --- README.md | 58 +++++++++++++++++++++++++++++++---- extras/ietf105/topo-init.png | Bin 0 -> 121503 bytes 2 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 extras/ietf105/topo-init.png diff --git a/README.md b/README.md index 876b9ce391ed..e4af54f1c203 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,17 @@ SRv6 Mobile User Plane Plugin for VPP ## Introduction This fork of VPP implements stateless mobile user plane protocols translation between GTP-U and SRv6. -The functions of the translation take advantage of SRv6 network programmability. -[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane-05) defines the user plane protocol using SRv6 -including following stateless translations: +The functions of the translation take advantage of SRv6 network programmability. +[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane) defines the user plane protocol using SRv6 +including following stateless translation functions: - **T.M.GTP4.D:** GTP-U over UDP/IPv4 -> SRv6 -- End.M.GTP4.E: +- **End.M.GTP4.E:** SRv6 -> GTP-U over UDP/IPv4 -- End.M.GTP6.D: +- **End.M.GTP6.D:** GTP-U over UDP/IPv6 -> SRv6 -- End.M.GTP6.E: +- **End.M.GTP6.E:** SRv6 -> GTP-U over UDP/IPv6 These functions benefit user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits @@ -42,6 +42,52 @@ $ git clone https://github.com/filvarga/srv6-mobile.git $ cd ./srv6-mobile/extras/ietf105 $ ./runner.py infra build +$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +ietf105-image latest 577e786b7ec6 2 days ago 5.57GB +ubuntu 18.04 4c108a37151f 4 weeks ago 64.2MB + +``` + +The runner script [runner.py](https://github.com/filvarga/srv6-mobile/blob/ietf105-hackathon/extras/ietf105/runner.py) has features to automate configurations and procedures for the test. + +2. Instantiate test Scenario + +Let's try following command to instantiate a topology: + +``` +$ ./runner.py infra start +``` + +This test method instantiates 4 VPP containers with following topology: + +![Topology Diagram](extras/ietf105/topo-init.png) + +The packet-generator C1::2 generate an ICMP IPv6 packet and send it out to B1::2. VPP1 + +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +44cb98994500 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-4 +6d65fff8aee9 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-3 +ad123b516b24 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-2 +5efed405b96a ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-1 + +``` + +You can login to and configure each instantiated container. + +``` +$ ./runner.py cmd vppctl 0 + +Verified image: None +connecting to: hck-vpp-1 + _______ _ _ _____ ___ + __/ __/ _ \ (_)__ | | / / _ \/ _ \ + _/ _// // / / / _ \ | |/ / ___/ ___/ + /_/ /____(_)_/\___/ |___/_/ /_/ + +vpp# ``` ### Test Scenarios diff --git a/extras/ietf105/topo-init.png b/extras/ietf105/topo-init.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9603ba2907f13aebc368119fff9c07f1b0473f GIT binary patch literal 121503 zcmeFZXCT|%`#;{TrL?FjHCj??l*ZoL+MA-N*=X$*5qq?^8nJ8dC>m7Bt!B(pd&R5~ zn~1HkB4Yfa_vicI|K$7mKL6hjgtvrq-dC=3uIn{UV7l5W)RfGW7cN|&R#R1cdEo*@ z?u84NgsxvB|K`opD?8+G7a=cIUR)^cXIUj*+;CGhfn2!2NO%5q(H1^L{*z}H)D)i^ zcwgL@woiO#=yQ0cfZn|_-KW_T^&o*G-0lMSnMi+n2=KY}uZTur$49Q;7T;uCi ze?{;K3NaZ)#VcyD=+WN3sCO;Rwl>2hC&MK)yWs0q=-KY{Xq^mHg7B-M0AV^h+fdkO zSg@5QS1o~_AWiteIU^n;8xAI2+j_A6u6oZdUcICHzdu+3E(z0=`1{nKHYv=Ka^GK~ ze4O*YKRmPkU>`l^q4Zz>HF;o%E1HU9IW?;PeI7Ze_pp^^&(fm*eem;Vbvdm#YOl2^ z{nwekztneCQ&GGcqV?bB`hoc({h;V$ftUY#xXz!o6CjU|%5voWFM%S@b>w<#c{GvZ@HOv3+@gFcF zj}MU^Gx+bJDx`f%YaYD7@qdW_GI{(A3<~jo2vsyWRhaKE^8EMsi!eT=ou29!W%w_v zfP5$ars}_``fsZKyQ}`YtNzyt@b9krZv*ge1MqLJ`fsoLU;FB3|Msf?!m58^)xQkD z{{hzi%K-e#0Q^f<{YzH;OIH0?1o|(p`u}%c^=Y0>+W#=%RuMPqkJgIY8Usi}CVg4b z)e;NgoQQEIU#Wlk^Qf%%V2=%_>F@s(;pyx32a}F%rzfPy%M>(sh7nqPHt1~UldAjA zW{dx%-VX^fZ_Z}x=2h^|r8m_cfxvjSr*mddzthcUKi0wK=LDXHjxm(m^f7NMfP?-S zNK@*Ad7UT2*@5fXE2rsNQC1SZgWb~qbQccyz|CLe`$Jeiow%y{Y!-r+ZQHD#wb+=h z6Mys>ElZeMNOvqv+bCGZ|L0}z$l8U@MC>nm{XaZ=&SM%j8Dp8FmAtkF!c2y5wDpT% zDb70n|3Hudi}(Fzu`)ZV;Mo8Ib^D;K-$8|C*X(~ZiXW-hznNB-djD>whzw&7lo+*V zqHge59Rg0I+&BD(#{V!#`I(zi%uie%B-%}+imVuIK)-Pgr7h|La8a%%T5@nqtSDV4_m@69_ z8~2E1eM*sc86p`41@7`257=Qg!ror&sD0OyTyc`=kJ}DLl7IZ795Hw-%>#$ep2t4n z`Fk4mR=vjXJQ-79hhC%W>u}nrJ6tY8yVu5iN=Z%`j>jz_RFRJ~l0_QZ#brxBeM{Mv zyys&mkYeF$PwYsZr4NQ_NY2oPJ+(WsySXr_A=r>8SI44a+n<@{gzL*lSy(wH?n=kt zM=#s%iNo2!zO#)1Jf(EP#G4bRJJ_CKTgmvQgf+Pn6S5X0F?BUOZN#$Xntovc_=)^Z zC#Qat%bLQ*e0n1U*WX;rIOefdK7tyj;Dlwg=Oa2q~W#Gm3=04pp8PY~M zMG)IohFJ%W?fNaY>JLf@Ew;)p{YeL#JT5!Jzyv?G#@|>RB4oD@gWFw_dtZYVL&0;X zKf<5<^WN>%KC>+uXb8N^20vdwKi+Wu?MK*Jke(%KJB&Z!&PCQNL@Z=N`kD0J$#TA& zxBe=~oGtD;Ba<3_IuIsjkV#I9yzjB~$TI&n+-d<_oBFnoyg{gB*nE81H&P3g;2p%L#5-`-CHuhpG9bhXqF2Qcw7T_GxYPk z#KY9`i26FRNtv)d0KYp+AIxrnr9(MNnz)oerR?m*j0;cc&5pMg1!tg>b{})+!Up|4 zTZdd0Jj8Kpe&i0|!%wyM>-=b`z@08`eU9{+UT9W~{I)+%I?}NC6}0a;#pAX2t#9e7 z0JTN;X~n~d9{e1%eT=LnvwH~fFEt`&Cx5SBW(sDI;9g6txS<;!pu!&Dp`vY!laeb- zJQ7elD@Ha-wc)g-9d?<(mhXWCc|Zg#W5l@_W+$iOuOq!#QA*eDZ^6Qs*EB(qbz@u( z_hXgybx`KW zq2`L?{*?U`*Svat4sBNZ8<0+MOJ&Lx?lJELJ*2qrVw(@P1w2d}*-m}Y;b4EL+c;f1#vDPYLHeEbg)$S+>n{W@H9NmoDOH zdcHwsd~gi5SMVE)+a^V%d!#>%sLiDF*a2+G5%DJwPO{G3aO*j%bS9DSL(f zMC0ne>;!+i=Y~O+ZlnKM_faWiofRMNDgWn^^KK5EC%I1Dw3k8OZ`f`mMZ^Z~<=G!$ z>%V0fF6h752r(RETj^y-*TyG z6F10hB291K^_l{A%o#wQ%%tDd$0LBtVe-dszIp_0LEw%UV>tchm}St(dOW*Gvi`V@ z%gB7vZXIzsW0(|lMhI%!JQ%)qtU}%*Q(s*2`1P>g@IC@{N^dE@U!+5gNzIU45oxVz zBs6SOr*R0MHEt!P?j*pE0nt0eJo%%%Y&IsX-XD?L_Naj$eiQFfu9Snn><`oiOF zTZ~9c!h^FVZuvCj+{($uoeku80A9nai49ru52XsxgvbQGc-v5 z&`b!i9DBTSsNCVSR^{<{V_!QE3)%5ISLQ$bRQaK}H@|D*hdAHg^BHpn>yGLd{aab8cmO_~YS;_-#LgU>m=9$$(Ns!PKTxHD1;`;Y zdl5Um;SS32gQ+@7>D|H&lWNcOQ3Y-rA|63!q**~Z(geE7zw|DqAl`!QL&u%J_cqYz zhkbCtB;Uqym8yqo{Rd2+ZO%7qMC}D?w1}s0M8WGrR!&d5xp%+9wJBj5Y>{#B;ZD&k zT6C{db0?s5*DP2KK^M6rn(bUpGd3rG{8OIAGdV^(<{kfxfU09r@#kQLY;7b3q4_Y}RYMn}NtBcXHvd3Aqf*U%JCHogyFdEK_w*YIdDL`9 zYP!?Jq-I%tQt|xkADfWXUu3V2&h7fTKmFi}_WKByF17fW63T`TX|KKs48E?WVG!r7 z&{XLvoR(pI#309PrPiO!7YD_xjK0gnWO>aT62arfw%H;2aU183K zJo4(i7Djw1PB({gn)oil8_Bk=siB^Coxz^@x$1ji>|>;ly#HO1#$Bh1aX-ZQ zm_q)rISwF#StJe_nL`cNoU`v=K8#`-Y~LMoZ~16#&6G!c9qr;bt!;kZRBM7hOubJ> z215&8@NbCFYWV{!mXu$Xt`~zS_2?=^Qt4FGUJTc0y+~A^bJxTkX>@QOj73r-S|1`b z`a=AuK$5$_YAf_v5DS5P z0cPVYgfJ0G=l-4?>5B`T`-x^0C8b*a4}lZ*98w)OOR*}fP=i`IdTU6p70Ik_f@|MW zN*C<eH*EZbqr+FJa4V2Jhr_ny2 z@6+{c_)i}NJKUPDGUl69jf;^MAYW$GxPx~ZVQC|dCb2Z{Mq9q|YO-c8IyE+d433kG zEF>i^-ykrIBox&_T$2{%SO<(xW4!7)r-Kcv|EC;i=99|-Y{YB!PdQ+v(uG+cb($5X zelqCOhm>V@GcsuKemD-SX{nWI`c#w-d6=e#w8<_}bx)jWPbkqO-0d8S6LL$K&08j-{&#~575o-8UW7*X1LAXfgcq@Vo|v=|Hg;YGi)dxH z!#-Z6UWdZ$nDr#KrtbX^v%g+LMt%BpQrp4Gm*{3UQk2uqj*w@}W?`X>bidE{?l2bp znWl5p^231c!7@-^S-_0j{`wQk*))#CPcox#9W4ruyZvhV=^<&9@%I$s6CIsV0~h)s zv}aq}r!K0tLLi1Q?_aBxiXzdq0QVjXRJlHJ>M;9SfU@b}Q_U_kX1RXFs%?W6d&S>Z zKkRI-hfysc{%0#+qaY)Qy-}nJ!h-z-ZB?hECeJ#M(8(El(<% zW2QJ74Y<)SIaHG^9Sx3E{GPo8jj8jIwfs;0aHAF&dk2G?X+U;_EPoPF=}sjWA#hr1 zZ!goB8APkr6GAP>80fY7B?V!u#9G5bQD`)Xg4GN;UcGE1@DsooQ@&;FBe-uQ1;f5@ zLRhGC+pZmYv@FQwXS`?->Ub*^{HcQb)KETSF;-r#ZTfs)&;d$tM@+D*IY_M<(hs&8 z#=v3-sNWNV6YJLOr17|b-(D@YohLt1nvSu1;)&>x)ZUwRqkbXvTK`P>PU>T_k&XV* zcHo~osHMvpQVS7cr28VHaL9g!XQ#OD?Q=`^%j`i_HFeQ9Ec7eVpbCO?U~Vq@I}7^D zq=+`zVhPa5ZOxG$3Sw^W>AK3>1Mpa9CZ&1ap<Z!fN4wRJ6t-9|6DkqDR_h?yW&A8%%7sLF5VF{ot!*4#(z4)fx=@{i%UK3Rq= z8uy1W7UV8-Rc8154j)`Rh*2aL*O5Aq+Hc3dl{Cp}=_4J8Jm)2J^J_Hf`?A6c^US^H zLyAh<`59Z4OGl&PokxMyYn{9CXNR$85~J8PDRvxz9=Y;NIjbx)+$IQR?H=fgtf%uz z-4C|TkMqF!qnZluZtPf#x;<(f#HZPp6~W#6kLAWVi`T1<(tL$j>%5c2fZ45{#V<6M z1{nZ(ur}1wmvzSwi~bX3pDUtpTGk)lTaaQB-`c^*MA}Q)S=%{9+e`8Do2S=y0t5ab z7_92a^(8i?g7l}{*zrGWiKCQY08=ukGdI}Ze%D>%{!?lglHlfK_=b;Nacfjl=~KiE zh1~BCB0`Z7mf47J$ES!{T*SkUzA?8DN->5-?ODrdwhryf%BVO47el5;Y8sqkHe@!y zC%rvET`J_-0U~74mUl~=vg5~Y!wRtvr`4RZWirZ-gY=iyr-a^TzVek5e`qcc<$?3I z^GCyOeM@7$%l@ByP?Z>xNGtFIoDQn0vAkpM-08GbuBTH8(@=y&%Wu^zN^w}5iuk4= z@!vW{18YL9O2_eZel~vxr9%PIg-j|FL~-@Np&|XR$O7 zAOa;0%3@gzFMxtGvHtzomf1^i+d6cXa!~w2)Oa`P!KY?fX1Tk6TC@HusU^9`_102t z@k{w~%9{Pq2U1$YgX#CwZ?cqnFsHywJpSe=#Y!>YYo?wTjW(u_81Bl2>t(g#cN!%H zq)c!$OUE&_y!b*FQweaOM-8W*7AxGuR0_|xUA^VEARSx3lK(pmf9k%FMv62Wd*T{Q zhIc^5U!0|M7!1SO-%}m$EWf30WyL^ZB3!s}+kXIFyD7O}^p32P|1-tXtA+J=rxr6i z0M^IIfXiNj%n2~z)oxjUu^=>4aw6){!EvTuc{Hnv4xLE}4nBE2w<&HE|2?Yv!~1UrL}6k6psxchZmf@_)z<{!m5FY8OuA7+XR~W zlyR}Cz-|(tY5*Utt&VcrkQilPj*t{UpaG%OUfX)r(Sydy8(jVPiDku09WQ0Qw&3%)=vCq0CAA{#^9q(w|9mzFN4Q>#dhRY z=6;}m1|ekg#;H=- z+V_|XK6})(3NbvN=@_$PWcFQM?T2LSsJhVQjI~vy$nc>`b$yOAnuryBpShV$WNqRP{?DLc+YsF|Sc>Pu}J~0mtdRm_1$=r$83B-eT_b z;R1`o(#BkO)T4Uz&2jsvcBA`mcelOIO7K&QXD72~teU<6X6128!|s$45OM+VJYEa zuhE%1*`$OUYH#5bMd13UjnlQK+UGr;)wB2OB2Y|bIM=IB;au&5Y2h*Dn(TehbVo7r z7CqZ=vgyh$`eKX9Tjm-D9U@^OJ__%ovUn3f?N<`Bl zp&`a?)>Vh;oh|rynT{unbi<>@JpmM~gFV}e+c~2FDl>PHnS5$KllR?^aTdj9MgmQ< z+kc8Kxdwlj$5CVzazdK^G;5R}FEH>je}pWGGC=8IK5KT&ibXXkd>)zwYJzhxev$5% zD72bgOi1=3_S5v}BIfTm3e85PA9uP*b@p@b*hg0tXYny!2415O`Qh6?h0EQqreDqn znUDQ=ui_Fu7Z9bG$L&pYeUF8PXy4qMLO&9}y#)WW?IY4JjJ;B(!^X&&@!4-I^I6(5 zQJV^kcCaS~jV<|=R<^d1G25nFH16ISB|ZV#4UE%PBu@dmPv$crCftk*kAY>G9(_%Y z`|8$SP~YCJr;gXOS^S7*OnOTG{EV61h~t>{qcu|ZdSX)nZ39aNus_HYOCUC!6P3>z zo@F;jt^-3HpTZ2K#0Eb}=}2ddA%^+O_?zSfU3a?0!rNrNt{^g8n5V9krS`wsjEA?5 z)z&&_7v6H&7!Yq|{BF(SyQiw;pG!JOMuOLNfL@I0OUBP-b@3op}u={Q=BD z^ibCCJ?q%*RT=`;Cb8{Tm%`#~KP+nT1Nvo{m@PJ^ZK_s{b&;`+etZVwD<$sV%bZgdNOml!~Qk}h4I6dRlm9F9+>(rz7eU#%$1fTjl4XI6;CBtJT_Am80Ri}$t8 zk`~}B0n0F^`PbPc5&d$lSa%`M!-kQj;Cvie?#RyOGt<7EaKW|}3cVY>^UAn-t1-tg z)A=R4z;^8Rs#O~*!Hf*ZD588D+-CI~Vjm9bI0-PG-tA_s{q01MOdP}dNtq0r$TQLp znzR`GiLV9Sp;rFdm%N?-C=u5$(iQJruyy!umMZjZ@gH*-Jbg2lE&bL+maTDFuvGlKR>7+ zN#ZhhYkz*_$|Y{}ByEqC=)Qi|l6O=cuYyULS*|`u7>T!YE_#r;XNByGTHkoQRyZuq zyD|mD{BrGavE_-wi1NsQci-c6_cy+7%A%F(iu4MSRqpnT^sxJxrj;JUJkf)ut+^~J z6Y~16Qf!9`U78pJZI*^>q3fYCmhm;6Q4f2W^#w9bMQQtN^%~9|BlSlXiR6ms4nPHZB zsBzCtkx^@$>t_}f*ev#F%?;P(*#mtOKN%Cwrrq~XRf($pF_3=Zy*+*M&moNg<@cdO z6l~sBZf}7M{D}DllW6RVcQKU5=3djH#;c&(GVfQWxJH*(0Fe!^M1ciP=Rc2Q9fDYnhwSk?8q}IE4WU4|5CGAg?SlE@c(TL-WUa3 zY2wz4OSp1uHukt>r?zEQw=$RvU8Q(Zc*sETwpHQ=nPreZthX*rX&rQ+cm(?8gUd=m zto7owG*5m|$m#mA_HVB)CAE*UpB;86AeP_Ck{g7NHc-=6orT98$p!ITY_C)fm-p>h zY(L&vcbh@Qy>(66=-=)_Mu{z&B%GouS@-Ok&j%G*165BS1&-jc?xcN0`jsuYPSOkb(T$o z-E>lir=yl9hHERP#L+l*SVrsQIf?J=Rb$)*{xxc7+P1^BKmU;8p1f`~xy@Pq(VmC$ zZ8#=Vl4@P2?paABSglID0sWxAKr2?8>J&?JDJFc&pr7zh-7h%jdPh7h|I`cf8w0wp zv%3?z!9I74e5^%8^d->^LE_GniOjQP0c))4b6tJ(;Bj{M1AW&Mayt2(i%kZSZ{H4e zC-IqXh3=AuCw?X4p1toE^fglo z(zrgEGBTq&>1Fkr0;YbOGnTZJVtLxEH6ygJOvI*Y9EwhB4^k8OFyX$Y&Stm z5c2}-WPDvgwlA-9Vrnvb^D{F?qe2Co6u6F{7nU2?&Bq#{%2Lf&vi7wEq?&N#=5t1- z*3F)0$-$}0qWkTj7TA5RBR{E2apB8gc9dIhlmt!=@mf{Us9ojr3i(h<1dSbM}g<{DorKIQh)>P5oaNBfw0y1~{XZ7D0- z?IK4A(rs8voPo^lZ(1FHlMm)-OLAHJs8_1bP ze*`TF>+6z*nyldUxTUuux=_lYm|LL48RIbx)HI?lKpq3S!bnYznuC(HuO)WBog`e| zwEu43D)AlayXH^%uG`8r)x7?{u*x2%$~#9Tzjy=%kv)Xb&7|3N!g)b@%U}f%=^D*6 z{!)H7@9nzsqFam^mDvK*PYP=N1``eE6e^VQoG(zm2krRA|wxP@Za?gbK%z&gqiQ zHFjG?b6Cuqs1fYMppG2zZFT5xIxtBPSlDLI()_Ai6-YMISTxbK11R^svq9q&eR>St~dYduaBz4 z?FX@cZ7-P>GmxA{yJ{P8zZq6yjccpn-hMgbba+pr*$*I<*4cm)q>@?mtkTrx{iwP! znFZIg55cs-6w0&o`nF2`SqlEqdMv>}ujLAmP3w##Z7^eBmIZ$*D>!9b+Ep3o^{QTQ zptxbgIU5)!FD_ znz!_Czh7BQmmk@pSqc~F6mW{iSy|T3$C+!5dIjcmU{8|~*Ob1DSNz%He80*$+m?HO*f4@8mvdVQ*N+)n~^nMa^v(2zwD_W!_j5nh=K= zW`bEDnh?LGL8pYKvy(liHP4QuSN9f!RFff@EQ}#byg0LHOKbmotgdWEYzfaP%KT@4 zc25zW4jW19NP&hw^D)W^F1Qzj^uHy_y@x(st0aBXMz;~7n|_=IBN9xkoKtgyp zN;vY-V3q&U@oL-9)$$0F_9^^X&UD@-*$3p)N)&QeZax3tdC8zv+<9A2Y;z@YtPy1G zf3^^#`mBTc#ni1k6lrYRqp7dO9A@y&iG^=})1B2b&)(v{e`sDG{peV1`YDUvUWeoH zZA;)AHxa;KYGR;fwED5j>tkWryUJlxAbciM+fImZL|#g-K#a*9H2v$RyEo2@jXd?yroetQrq>r2oLi5*oqS9 zXVB#>_xZZxG^~O2pvl2!;(~DKNQ<4~S0%i1yJ_eOmi=t>=k)Ly6a;6*sT8PFY;=%9 ze^4J5%A9@CLGQvv-Z8=L4V|*&RMJAs=|V_2%HxoOjUHluOM}|iUq@A|Y+pB1cJFdo zie-cEi#atrEi8ALrI3HQN*?j#waz{xsnm}))?~lbP;Kfb^l5yS|6 z!IC`w%H4Wpq-vMED6#!e``p^*Og~tUH0Oxd)@X&1T`;1ua>05-cMdx617&2{KhW#7 znBJN0w%}~Sz^9memuk-9j>SWwCXv4hAMJY6XX*~?>e<|_(+7QPzqWP@xpF7i_A%O2 z&KI#wd~&m%q;-$FMpuU$8?o<+pb=Mbm6K#otQIXqyp4cVlodZREAY-(aEU-&28*?s zuQh&2jidyo%+hke>X446F*WLYnwEI3^hkSQZE#BJeb{Oet#z!4&~1njf7Fr72$Tu% zPLHhN@>y~Ct_4bGd5opF5Im zV6XyETG`#?jveo_w#e*REG5GYMc!?ZJJq}*FO&Qp?8+${3J=+1yOVgjh8?E6YFRja zBZnVnQBmU>q@IXJKRu_whVjeUGa?bfbVvH|BZG76)SGd1(NS-Y16Epkq+!UK1!?B) z4mjIbpMUhXpsyz~;GJcez`|yF%E4W9!;sNNw1q`c9%EVZ`2Dj)X-`qwZlL(+`0%yR zSd_trWdz_bosn}!IV-c<&x2oZx!ny(pWG*)4NI+CE0k>OQt5}$jCMFqE?*tG8Rv|++gyVgs4FqM7*ZF3;f`{yS}Bz?^HPxW`v zA*?qH3es#Ittny0^{YR-2c*u@_pIt3oNNAA12h!FBiJ+MtZdpuMzC64E608y4&l$5 zZ#mMhh`^@JjF!fI$#*3OC)<#64+&)B%EK;esckasg{}gbN~DBCotn&e=?jE z+eE*G%1p1*Zzv+lam;3~Y*fmvRjpTVXl?eO+X;Rk0K~;;hTYlL;~+NxW&hd4_rasS z2SxQshc>CH8WorY040~+{V<}rn(WTam*8()jlEa3mDJFdAb7KN zYJYGd(!QGMMuR+a0F5Hwp%ts|UrL4J?D@~LzIhip@zLB7+*}i6i_v~V_Hc~kaVv$K zBql*3g=5l;zD20l4QD0&p!w;l_LxqA32Q3A?@FhFY8>k9F6YIFBHRPsA*iyc%-NdT zJQ8|6n>AUp%ock(WY}gCt~@|xEYd}Hbg+7vrKfwy9L)B~rSdGFQ$9ydJ;D*cSzPG` zHQS`jSO8mw+hK?GhnYS4!BtWM$~wXea*PK?(-x;$$S~xEG7m^p{p(%2{VB2)Y^*c@ z-x*PeYah<#*rJ=yy;!I6mjLzd%?1IT&^l+=%%A-yZNX?I?u`|HS;4g$ZY7+c)L&U( z506F*F>$u)H>`x;Cw$w-y|5;-PAh0>6zfcvFmYE+UCP;#YzxR@SL~BUE$gdr(W>7p zaMQ$U*NGNK6FK4suxU~?XA;;%{ZN2o$MFNH@r$oK63gpQtRNc%eojLAmPi(orB-)(`{&us(x5%PhPRAIvl)rT(~Ht z-?bsq?YkC~oBjEczCKxZ8aXzTEoQqr&S+xx*ZNxDCzeP(v}VY6=`G5Yk}7EzI=kE3 zNg2V~OuJf&K_a{xu-Zdf@Z}25#uY<3*Mk`EyPbQ9adMK%8t^KR%bo{h=~Y2h*dj@l zS4gO6iY#+9WJM+RSwvmRTTuS|yi~u?*+?d^iVB_NhL2 zB%a;SfWwFlVx{p66c%7GhL(I!`a8O<-XIu0@?(} zw!%B?26V|E^CL<(T%gixemi#bZ^7|9q@Qfd9xG1eKD*1!5}g=(CpoeUHq1;K;~WYQ z%gf+t)uY2OntSN=D0*z|wRsGRWPhg#X&-PbMRAEHdr4J#y#}+KeZE+I{P;EkE4NuO z>?;r>v;YH~k!i_T4JSX-}!M`@sxvYc>nN9jx16z#qQo@MuMB(=<8c7CA|>DX|ot(lV|nxKxg zR5A~^D<{PU2d{Pe@JKei-HJL48fe{nbKLZ-M;}*f&RVHHT{T>zD#KNUqtQ2uTs;&W zQWU|zwE^2-21nAxB1GrtWzd~BZKuuv5}>B`S4!}S3XMv= z&)OW=5UAWb&eR6huw}4S>Xj9?;W3f%veDdj<|HN_T`rVlQdawPv!A-l43`?XOSY95 z_tmX4;{9#2Y16F1GhAwu4hm1Bb7Xq(RTviyPUvnRs+0`3wgpScPV*SVeyMzXnYp?q z$7(h_wrfUpNa(7aAcGVx;AGuWFdT{!X6*37w=ovj8!|Odui8PRtbhC1dIMVKnRS1Fojd^fgON_wq&1nhJ0Wf&F{dNeYA4fx%E zbNQ2ARH}J}ot_GJXCBmYM+9g)KAr2$~q?(6}t$J z2cA6u+0;JwK15};ao#7~G0nA|j7bgkGuqS6aB672pLrT*xYAoId-~?iB(2IGBf7(2 zi6GxpY|NZj(Jy5a2=2#Iy>y>ktqc2`HCbMFKHnBdJ%f7MlCmn}6Y5qFqGu`-#>buO zwLO!StyWJq3YJz4ub#ech^2hU;HP{!K?G6exjOWvWF|X#*Gz!i1$P>vrsKO~Z%R0_~9;<}+_9aJq_=7tZgv!r%tBb>t)(a?8SE(3EQauP?&!p}Ai*+;KTO9bY-^}Ae zcgQE8nPVL+ua~0*Ds5?PzXX^W@b2#{GP5)0esi+OekKt;)fHW4R^YR>R5!C<8gqYg zSF8uQ0S~~LybRC#DY^xE21*<6^n>M%F8Rz*P}cx*cTX@s9Sy*%uKS>8>6v#+tVsC7tBsgJYMncl+~;zT!mu1 zOt!CYgx@3SMo|XNO|arS!!PS?PqPD4aI!j$6AkHKU(VWI8%*)SLvzOe-V9%HYed#q zYqd^=&_Z;~j5GbFjzO!(XL%JhINlcs%*sa)LUu|C%{?IClaCvBT1g@C$hrXUiOkQR|`Fcyn7u5 z0931^7_HCW)#*|Ib}szy02^K0@F_zDe{s^c#*~xz_l+k97=2J$yASg~+KX~Sq4$L2 z^CJYqj(TPJEn3)w(1_Y@@f)7~e2j=!d2dj|_A@)a*8A!TSJ4W29dgvSiRE+tD-->Y zZ|nWV35#z=?qd3qg5m|dW&^ywdXtG!6_0s!1*+&nte)$!a~W&T62pV##(To9^|#TV z%}zkA)Ay1p?fruAFZtKA3S@OM1%X~x6&_JDlVC-MnjG9Q1Z?R(6>l2jGJ#5hwc~xv)2qw0&~n&&g7rPI?xnWvu-b z+@!jYAK-?1>Gb*GAJ(3l(BVSuMc(MGsFe~vmTfKZ=|n^t*EKLrin*sr#2L0GZVY=! z_VEy`mGayK@AQ8lU8if$G!-L2Fe|R$Ein z`@+VzGYZAAG@WKCC@!)&q%7SRfNZ^f@SJ;Nr&7ihPPlCZTL+Z)grp9A)rX);)pHXU zb4$A$*FdzS)hfAO{NHf1LJVETdOv5AZM}sg`y@~5#bvTPmaTq_12Ke3BT=uBv?vMM znU30u);~_V&_SoWcT$S8?$%I{U0vL#-x+}ug9BP}A7;#K9eagdP^^p6I;OpgZ(Yw$ zo##8fbBpBuK>58s61)Dzd+8BtSb2yZ*98ny8zx$8AeGRFXeYx%3-fycJW2^a7sTpHs;SvO6JpYm?f0n z`a+uZ9bTM)u3-J|mOY60*<2sW5S`-uJIzf1rMvphq_RMq29Vkla%~Gv7C=`aow%Rd zYJj;Pwk<|=Ek1)qIZ~V4FsFFxD0jq8pX3zT9AIB3Qksze|5EEz^e2C=WjThVU2350a{J1aU$)lXJ+~5Cj}N@7unOqySf0LvI~pLxJ^NM3 zA)t_uMXWgsYjb8*-Iv+7M5XK((v}eW`Y+GZa0*`f-icR%jTc4NC zinP0z;9h5F#6PBR#&$}GuGMK`oXL6dHSaUbdPIMnuDZmaX6B{qXYJm~)E3bUM%fu9Ycz%p!Okd_LXG(0VP}LOUw0qAJg|)sZ`P;Wv-Jap< z=P8{pdBmaNH?|8F**LMQ#(fQ!LKgEIdvGndF8puVCT`k(*?Y4%$UI@{r$NFmd+SqS z`zv-ylNBZMAmH|0sn}HH*6$JvbS!>k=$jlVb-vOoT z(`H|Pc%L67b_El}u~)8pJLalLT-;u@yKQ@AZ^oNzZy@nkqV%So{6mC@UtG8ElpRog zy`tug#Nvui8@^{bfAF<7Ms{sUw)#0;rol%w=H(Y((z@>?Rk~0{m!6+A9KJq2<*n5Q zl&28l{!2}L$S!ENPyE)ZT5n_Fg%lN=@~G9uiF3Od<+_U8&Zm*5x-LtIc%924NR(TQ z%rMGu{)EN0RC7me#!~wV4hjj8bcMGHM2{1vc1Th_k3RQ7I>v1(<1z)f3-ND#*Qc(> z&+1%mW^6iadkAO9`@DKnSB`x~Cpdrz>BkiMwWVLn5DZw=P>8<+P%Eun`?^4yJq!H0 zS1tg%&Fp9QwBYjPj*pVKlmcm7fKSFZORd6PKaFk5I6DNl1Te+Bj!XG@f?4$Q*U17` z+@@I6KBjmcFvhx!>t}xFK-9@QXoGEJG<*%~`#o*q1w{OCC9Raq$vtI}p^ghLs-tVn zxS0kuIYh*-507^p*e8BzPULxE-`Wor(-?5;Hh}v>U)nu=6zFCy$k-pOyuEWEsj{GM z{_xkpbxoEhjG$*e6}qRa9okNvn1YAw#kBx0i-N7BB3-q>u{MV-$M5XxI~E|`Qj}F6 z>fCS6M5jQMRlB-HO?Gwgw1usACRL*wZs7LF$G6@*jrp##0Eq28B$Jn-cJJFtfV}C~ ze3&bUb@SdR!u&4!l~ck}yYvh`hBn$4-Lc~6O8Ip3U^2WC?J|*)-K9$B>!*3kVb$zC zK#sEm=G+lNa*OLg?m9v$d)^s;(L(v+@`Jo5RbTzsS#Q-)1#^(=H9O>$ZP z*=u2_{muPWIdA*|RBfyF1pAKV7Vwk|6D^#Nkukd5T=eiBsLuh6&k_*CGnEkcxOB$$ zHV(zztzUp!wA=5tecoGO{d|U-^gvRJ8z>b*>k8(&c7CL7wfu8A3p6mQa61`8eMp)E zKTd_NkFH6W%QapCq>C%I5WBqdhv+lB3TViB&5@Q08ZVpPg{nTZqL((J?lp)A|FycYIvlZzhm5dOw$rkMSNwbfX&nkwlyKqRuGxE1YprdLU>Z$F z^$sa!{4k+jc~9=1>q;c@1gx#;^Wu@O3}y7JG|(Oxfijz$SXw@q1{ zmD`8clW_v3JmV8+f>r_pO)H6$&%^xj7~(S7`@tG1Hmy++^3=NSqsvuYE=sCh zQzPBw{n$uBE-1SmRQN|{)JLXHYnrQ!`!fB$T=9n9hozM%#KZ$vmtdloaV>+dK{-yhJLWa#k8Mpa8`3LHqW{$2+@iW@@pm7TV2h%~%boJplJOQvb;F5cb<@Qfx<=mEc zQdg0xTxYtJ9C|=hKbGl(syM9ijsw7-14o17{&TsSZ z0@d3onfu>$@pgS@Bymyw4Iv|_5gN$DE8os^{8&Z6wf*~j&U+G^V~0>ZRYofXYz+j@ z{bBAH{DnUmTw}{8Lff3Z)IGl6w|6wdMWQX=OYT3~KgURMpD>*1Hwd}mkW3YqFlXKE z{#EJTRf+N?RT!sVySg8}5B=LRK2UFS$Q8EA>u!3S*tCn~Q9MaV3-T;w_6lgcz8hu) zX58&w(&?G%UNcXfNULQRc=Yv|PRZ2b&@$y|Fl7q$hu(PlLY;~K|2^AR+J6)0`OuM!vW6|R(LC6|{jdb!krdeW zBJ{gtO75~ITlY9fyN}lhCYY1rK4T$?SqtpeZEt9K*pWQMpB-k+GhoU-ZV(>2n6mHV zR;aHN^iHpAsgURKyCXwAS2wh|m_VJd>*i06CbaFU*x{n*{CF|QJsKuU);Z-h5!bHH ziSPXT+l2tZSFZqJlJvS)m(BZFMToZGP66$(Eb6zN@|slhx>dxLHz$$0!D#pSj?Y55 zb7*(Om(5&}#}OqO4va%il*AvC?z{I5#CBOe7^Z0k}T@h!_2s=qZ+_6>k>2h~arjAve!TFz%k*D-QRI#_A9eDFwzEu}x?VW2T0 zcByDD_XjYQBBpMWd1b{N^1X8aAkIkDmNIS|`C1aWt|6^$cwp!;XZO@I?LuRl zdxJ2NYW(+HGAkXo@BuoaVz1nZOa|(h4f0w9(g0q72!4$k4x)VD%0#Sp;t4# zDFxJZfOu5iz|vp(J4Hqu34|T$YfGG%Eg*(m@mVw5Q9EDFEFktgYK+4xU|>C~4)rrO zajUA;k@&5;DQ(`M&BNrawkgY0>Pmjs-LT(a5C8Ml%kwre!j^kOcJD<1+PL&p_x)gl zQ9-VbzWY-0Rxl7XmIqNSXZK=krS#8ltD`DryV|x}uOEz=1aJ2cG@=I)wS5Xx}QnA$pJ<`nV3C*0dET#spbPpiwZpUbK!BxA+p zma-kWxNh@018WZy>67ISgmvzhFIfO^aXevyOs=>PufLMi55CL6XYf9oDcgwcq=^V| z`&Q1IIAnac&GkoFzTC?y{^^Kb@%8WcgXt#b$qXyLd%*XoPJrz_M!6Z`yz?-{8T+@F zz2WAPcsEBr8x>~|iaWpC;EH;A0rviTSN;+cZ>e6$|JhCHBV^akD?nRjv?h*Z+@ogI zP!KO}Q{8pAXyDZz$P@h5Q4u&519D{85|lg2%>z1%vaEwt`1?Z>pXb;qlNZ2d zC$2AZDqn#w)ZVF*=vE9yA-5QL8J`197mZ*yl&iwJd|T_;->c>;Jvanu!3)`k=f|rk_(J zBO%KTA4zhMleVR<*d+6ni~i=W3`TDI^V}%^evDP?#iKLHZm8(veV%UuAu)z7*B_^o zMM+A2HJ6lF%X#QHmR9n-DR`-PdkxN&+<>=7$V!yxu2K*9iqKhU`SRL!Q_h9e8S*Ga zWiyp6B_@U?plW^#o)L0Ua;NFc$-9<_5*OXWYKW4;Qer$#krtJse&84jEFcK&9djNR z`Wz#GKtOBwmkZs)Xk|w0q$o*{V8&y3u?r|IpK|ce;%1=x-(Q14JtaeJ{SF34rD(p9>SO`9;|qmD&Hv}zw?Ps+@6<6l?6 z=;Agz=S@2UOm*cln=O2`Ur;RcR$!G~D1=|9cSTx&t6#o%!(v<%{CnAtF?!j;wK3;m zIZ0rRk28nzUx{%_0GS4!)~&E}!CABU^KFf*U1nAq33hgBUtg`IMiR#~6kmFuomk%} z%Itfx_zd72wT@A&)x>JI3vQj)YlGw+RLhi#H#@GmTGx#~US&}5y=+Z(LHf8AjhO^# z=0K!FA%LxiByq-!K4(jUr58kRxYdrX$b$tl_}Gtt{8tzIPh_b*^Kjv4R#?5}yF5tLX@c zW!q~Qzemd>Qo0pd0Z)HzV~KZ37_{npTz4KOuAGBzD86{S99;i2Jn)Ko&Ih6L=776C z4M$xst@m)&Aet^g(geE}9*pU3!{!E0deaMQ+!}VECm+9qq||4K0zoROnz4xa@qqdg zaX=CPRx`*@=|eShI5FG1!I$)g@r$q@bN%4Mx0K4aKOyjG;QGgQod5vM1C;FT(K1~I z5g@YMZq6`Ky*m1v$~iA`ESrIn;RmUKe-3vt>wQe9RG zFzXh$FYJNTN;d#FFU{dv3TVG&%;jhy0G?EXGTK+?92E`uhE6sIbn6=-zWg~)*_(NO z`mXcAeJ&R>(ervM)1@XY*GKEz_85@vpN(bp_tRspSn_Q1Q}}su>T6NGh(7C=$vluT zL$ti)YwmD7lwQoD?i_c3U{p%az8ry(e)|yY9(+79%tp}v`DYkYe-QZ^$zqCNj?5cI_Ayu<-OVdPZ&Cq&=) zZ8wp05nQ7jWOVjSmE`zA!7IooYA*9OxMp6ceavavrTD-lX;pimKY_TRw(T|YJwBGZ zDKoomada&c`{b{+8qJzR?7+>F*3+!$k5^|U5p<6k!qq|_b(D*?llj3xc%VJcJtcSx zH0bJD`)c7SsHOl>L#RJX2oQ&P>LOb?eGB|=RwCQ4i-Cd|wh?91B<_?# zcOS|)^oV6_k`W;Phn`(DK;P!ejP;K3==ls2Bkm+aO;o1OW>m};0Dov@rqNArn^AQC z2W!CN7<_S&%?nMuq1$hbN^vbO^S=)yX+CPkzVLYP6Ly3=B3;!jez#4WV?)-&&{Iw{ zdl-(mgVM!n=~Il8yzUOpx*aSD;YLT!Db;L059X41Jx#aQOi#z!=YH9M8UePHSmm}O z*14G65F}#a{D?1STC&i=DX#0Ji`)!o>IXOd4+7OOpZ+L;Rt)Y(^F8&=1sRf|l}z|_-B)UvqI9%b5f~hxCAJ z@g9BEOY*57#C zFHo8*oF&Zb`^8y?Y4L?61|~%#aGyi(Ed$iBt371lnHfQac?Fz4y6`RPg8RLo)+5P30- zmPOuZUL3#f_5dPM%9d6X!E6WycJgqv#WrH%EkmqLJV@!x>N-f6fqfo3qbmgxfJWV> zDH$t>Tvx(|w%pnP$i==)gh?4z>HhrYesuIgVuYQE0_iMt0!!|bDhgJKVRO$C{>ZJ` zaei!w8js((PL6D~8e*c9=kT+f2Peet3#J(7jfXvdn2e}poYKxd(_4_N@}t9eOz8Yk z{)ZqTZiR55ZrFGn5LJp9 z=s2AAJ5=ZQgS@-q2qPJ6SAP|E z^PjOR)N}P*ddbWT<=^~c2DW^dff>lmA(?`6*8La<*<(E&+i&=ag)WQ+4ZrI(+?aOC zzkCD<$`osg3E>y5GuHB3kEa0e6hx}veKN0pYd(L4bcu)7)lz1+*4q8xHn2oX0eroI z$N~IZp<)6Bl0D@RI!OgDTrTI4efnKhoSg;7Tnss5x9wGo8Iafp@84$|cT(4`(wkAd zxUUn9oo<>mN3CUSs$IlI@hD`#nc2% zu~}#q%v`Iq{Kz-+n9T~36S?a<+nW5nTzq|dmYQhE_E*}JC81fDn8QbyFt27E$9|Nw z^`gSmhU#YfZU};gis>LSPb}c-{0>f`bGnu4+r?Kc)3#KDLF6P(Vw=qmLHpni^8EhG z1+^k_-`_=?r^C|C0{Dxx{v4){#lYwz@qJS4;t~&>X2G^q<}F8+;=xR1V`0`}Udcq!UL|W7X%3Z{PoZBOmPk!0lq<%wiau3>R|K%SC>5 z^UYHZ=#O&qJ?(`fgkp=R3e%ABD*=l=V zM;6xJi8&`{ajiNQbO0!D@^^+Y)9dab&7s(vnbIEAmc*_d8P;Z0VV!Rk9gY`{8TE&8 z?HGj?9ILj35L=9@$Mkq3sWJZDk9Q>ok%HX_E0tE6m8o3!{WAX3E>J!M_9eq`dbW94 z3+0RSFxN=Xgv=fm7Q3F!na$qE3)KXuLh+IQI+2J@lg#2j#?M)sWT{>A^ULUW+|w0} zoQ?PYeAq7;)*6supQUmB*ZwDTW_J8|T!eoyPr^HCyE#i1Je~~}QfAfzEYNO{P3ixx zb&v^85*d}{s{g~b@T>vn8`iV6O#kpvrrJY{vPTjIEZhly?&QdXQGtloCmXb;`y9Q+ z?2ScGqCr9-S_}o2zdC2Zu^1k0+kxReepR+h@D^1Qp8~6{uJks%q!`%LLY$1nPxVY63IK8{FZ_CeYYoD zg0U8-a?^F;_WS0x2T#8jClIKD7bHnA&1JiwJ*jVEV&d;n>n$D)1=z@44&u8vDCv55 zaWB91Df^|oIT4CNZcH>XAlQ!JnzejY)B`HDA&8{kU(O9xe%wB_xte{V;?tO+lnU}< z#M(7;>d3DY%bqb(k6rBhr7(QwH&}-OTAI!hmhMypWJ)1UlQU6M51KN3H5-Pky`|#g z`|Hw@FSR;fLk9zbe8AHP%-LtHrCoE2jI^s6SR<+!_>f9s8`m}Dq3;IpXn%pR{0)d7 zsRLh6;K!R0G-w$tH)#WCS3u%RfM2Gt)0w@CvySXsxJ zeMIelQWu|}MP_D=o;$egMFE)+h|?UWusb2VzTf5ef5_aJC-p3Ee{dz_j-0Ad5)DiH#<(0TLdvYbHoLyLztBwvHHPtbQ~i5d;vn1$IpQSIxb z2)3m0S29s*JMa`@N59@qjDQe{N6usILeE8qg-)v7WKcqO2cc<-=$<~&z)z;RDQ=GKZ21{?vp|@6+qW0>h7}mM#&VTuJ95k_wJA#CS)7B+ z5NXLGc4in(ih|lBu`e;7Dtp_8F(Yib2ZZc}@fN!NX=j%NZK_EEl;H%$d%R;R$(K0L zZ;!%apeRG$PR&zNId8lqP!-^;11+f*dVgLfhYtp`04%v#mYzX7o;nG;b?bak!%%2K zuvZv;I|x3r)si6$Lsob4Hw==ZkV89ydZ4a|+1U^9h`J9fPNJM94N?F$6Rj&mM?=1r z*2#b}m`A2{)~{l1Q`-~XAGiU=250mL2$U)qO1*gO^P4MgbhG1;VQs=OZn zaTXuA$zG_Zp)4F5DFP~`o6LDV%fYabhGPtK0V2NGeh`AnP>VaEg|2A&pXMdrOTblO7wR(GN&HCr5&gEX(za`rB$UIjvz(Aykd zC4uo?NSdyV25L`g5Hr8qXc+N^OleE+mz>vwX1Nq|lExQtMJ%jZptKj337?^l`d33c z`u+q;E~G4zwu@XrpytJ+U`WTzRISpyRk4}e`zb+up94XY>*N#LQi}prjZz$^A9O$% zl(3uTsZ0VHQpY}iWul5L@l$(5v#NeB#RlJ&!UesBtL|)mIQXMh<(Si|yj%Mope)|_ zoOy_iOa#rKCDOLQ(%n8!(O=A=^>Y@pm5uMS;d(aHSPEBdZf&@vz`<<7+F5>=xxfy;R*eIwy(p%T&Bt8@88!(i=|WX~ zPngmKf9ISDIr!D>h;wnBT>+-tbUn1+L6esfVCgnTrtVAQmr2oUZsgEkyCp zrGvx{H-w{x1)XrUPhG;S_p3EEMWNed9xzpr)qHI~L3WuLlq^Z0rNggH*!1{6^3 zYG70-O6*sCzbg=X8{eTHNVXLR@M}7j@@L!3Goy0Mn20%T#ijT$ZdV^H|7{N$oS8+m zHdX9LIzgXR{RxrmW07}KQ0u>$DwXYW{@|USYgdQshzKMo>WnB|XoNy1gWq+W*gh?V~L>m2VZJSj1pv-g{B)!SU*b_=?N+f!168PK%XriHtUoK``9@Qd)qq!CD|$Q->>F?`(@|c z>?Zn#ZBzd1Gy5E0hN2NGS)aR?3mw*W5J8f~hkvoMDm*i>>eSsr>kL{#(g|Xt(N`qCR4Cu71kzqfmd7Ma8ames^=FvM4%s%V~8lzyT2?RCwJXjS2-Jg@q6D`4M&Xf zG?hz3Q~Yg>RQ}&+alrz^Y2M}bRimqAj?%CH-ZB@)4D8V8i>fkB5B!sP{JhkTHX>ofrP-Ao}OQReBg4uwV~%WLLbAk zoRu_0Hqa?^e1;I?HWiRU+I7?ow>Jwi7f*ms>1N&B0j|{0eUe^0eS?)SZY+@q|5YFc zoU~@f{_i$mL9dhb@HJI=iTZn&81f@z9nHMDS4519IgQ5{+v%qP=z9^fRVGTFdE0#8 zNwJAt&WaJEtLw97>9#om^76CUxK)19}eFfM$Hpn0zI+Og8>w6V8{Y zBr#Q_;>Py;2z@GdN>W_hc=`+8l5!FH2?(P6pG*)UDzzTj;oKxSxptc5KdaEz$`@eW zfs%MGoXo;%0w#&5Sc1v}cV0WKRD@-M<5x0?sVgs@Xa@P?=FUD=PU8VZEmP78y-~&0 z+oS*U?&v@dbTZ}xz)tX+P;90jM<)1h3^u*VRsU*My@gKfKsbD)V(Xe0H_cDwVo?Ke zOZ^JF&%$Rly*`oF`(~)K z9P-2DJS=bZbZ*%Y_yie6oTEbU-XlBU(`Y{tj^}6%=2gp>>Zv!CD3TIyo^n&ibsacE zBz;Ez(EqbdIO-$XKrZ1oF~u{e3JY9jm@korjS2qFE4;K3G_$2WYSm3(Jglj+bq~*9 zs(U=k5oW#S?DVD5xP&$hCXJI5MnxGC}{kDPIi!gccY#MyKA z3*qY@eovp~;K?fD_z!2oT4jF@2=Gz}ss=xb-V=OHnlbd^){TN3$>adn(k-MjLrt3M zN>&>DOlZLWDBQ|#XtxQ(QY|^=0}FkW zRtdW&*a{OrYnCZ`{G-gpBVnwk;woLN1Wk`Y#)-}N8_N5cPVtbdpJ!HVg~JPzE6SjU zuv=cRX!04~dHH*$p(^8CUp3-E`687u2Lgk`gd;C22p$*phCn_NB^+0;WLI+XrT7f) z%MACdi0itp-O6wnr(Hx}Pxb#Kiucq^&}JMeJVV!O;>zw#;ze(?noBWa zTs6(-VL8={t2Ki+ad7Z6D``Q0gfC;r!XuQ^n%Ifx`_Rv^jX%Rr|L6Rc;i4MPi9~Hn zEVQF-Ov9`mwqN^hrbuK`q^``Ei>a}97{D=5_br-TR=hH}J)7B+3wf}`g#fo&qkcBf zdN42>6wh?xoHjBc^zt7Np@X?Yyy*1Cx<1X>*R?bcjTeVIGh;MmW;hd+5L3JV<9~>a>SbC%6{t``GGy&R{G4f63=^A!Mv}NHaXSjWm-x9G7Wf`P`_yKI+u{Nz z5ML9djsZY{Xrx{t3;MLp8)Y9GGxm<;{>{}AEDHybP@R^*k13IfP$P1mGVJXBWQlkq z0zA(UaZ^zZC@JtLN}etK{?8xJ$VJh%{yEpHjM@~ss+q~c+h~4{^mVjqv(qC95$xmN zZ;N<4NiC}nmBm#3#XM|eu!vqUzTvb1x-KC&g*&z8v+mL=3I7gULOp4$_|L<+;jBab z|9#2Pha?3PI?>g%TPKF62C2DHGOn$!>?^Au8#|N$g{FesD2-p8qW6=(7(aB~wBh>= zyPC^a0>Zg896nbN6#G35G`c_>=)wxFg5%}HGNZ$&Jfe82Mage zp7zW~q;AlNd)4=NV9cqaBw4D6l(T?+t+3bS0=+YwAT+WB3l3FVHddP!{=kWIgqlt@ z$a!92qVRNNN}8@?gV~17lwS`YZY7*M1lw6=OhZ&ZjCkEz)4GMbN28y}j4TcMv4EvK zZrjW8%7JZlJ`xxv57Ls81Qi4G|F;Xk`lp|Kuy(*Zw4&I+fbNoFRlgnmn#|pNjmU9* zy|-dL-il=08rhR?RoN9`Kq2e_-!dHc5jA=I0o}wmMe_G4$m18zP$L0~c?`;6!I|@_ zs8S3I4%|F?r*{4gMXM6SXF`6HP~kcAT^lmg5&_lNTzOV|=|&vns6szYB`%NYoaK6b zPAbU=X@3{IRQCHS$q)e{0wS-#j*Q}T7eQ8X6v6ModN%YzSTUjn8P~NokAK1_v&9aQyTHB}MYD;{epP7%IJ-ap zm($Cn3d_u-*IHL-sDHlB@|for%tqh!uI>F~rmx4HT%dPq(k$M&(VmKE@O4nP<}i@? zBF}bL>6Cv)nBwE`qZ5@Zx$T>o_N=pC2WV>|V)&ciJNSkVhN91wBYfKRz}01fEf!e) z6jr|2wZ+T$+ssgv4kp(+T{G((5l$492$sN&pxEqE2Wel#V^#&#G~cp~y`qE~^_peh z={+<)e1y1UKvwo#sadQRb27pr>29u`L{u~@-oZk3N>*fQRh4ln9B zI56rJY_hiaC0Bdk6Xg% zQ7ocGArM}1j2;36izEt>o>x3rnq_4Sx^HW^+?w}tb1?8J)|ZkPmeVEWIE!4Jq%EMy zMI&qpk~q+R6OjTCpQcR6i!&;35>`?O2#THkV2ZwTSvAtT=qf@mDh?xz>yIwgW!moU zd4}8og?;@k?3mY??|R7=R{m8MvGY*nVO-HI4yK&o4;5`{rolUkV~HrOn@&my;hJni z&NbBA3~G9i@;$mo9O8)8l)bFz8%2SJn^KM*Bah!mnu}cUem79l>bma^lVx+ST&Z6p zE8|=$Oec{sa4MhmB3FO4!Yi;G1ErffB#_%Jm=&rkNrv94{)}hZN-Altf#m5)biDrd zt82YHm$v%l(KL&@bnF-#s!yZyQpj88$MtkF(I4FxLP?Cs5Vdd2aBlx#?934asrA7E zQ5Q_rweB}EB}Wu#+4I1-zr+_EAcbU46~#0J`x*ttKMNj+9l}{Y#s4JgW}6ZYs;H`F z`wUKics8JrJS6(k`p1Y9>d;Ht887sm*$NvM2&brnLLBDzp})x|*wdeo7&{IFW4=&w zJ-L~a*XN3NhHlT!wpWK;XZ-qE*m~^J3WvW+!IK!8|0IkoI&Uh)JAN-;rFr)2bW)Jd z7B6qYAbGv6n!ooez$OeC>pdz?Bb2Y^$BN=sh$(5@{GweHD8bEPQbU3^7^RF16^@iX z=%AVoHZ4-QM1wQk2>TVsjpTGB6KC4uU1AzxxE(u7p<(T9$Hslc&+=lXeqit(Xn4>I zDN-Kk*E?q&c1PJYBIhn`;fcC<&xH-~Z0#pIXGp8f&Hz6;hPH#N74GP`R}I)$2o>8S zkGun22`Dk(cfCLC>BkXdKJQlwys$aPB*N3>plD z!pF{Om)hx{*FCyvQM$rgALt)O{is;m>Lq=$Hd`6M3Emf z(0nPbs%(Sy;g)L;CFR0lE+o@d_ha zzxps`-M}ubsY}I7TAHyHqmngW7n79`TqKH0VC`FtqmPH^RGbf?{C3+1}tN_XP6pL@*4DfhC_o? z$MLHxfjE7bi^5MB&~7oe)NQ)WQ-H!|0(!N{)l)Y;a>GmlOG$HQ%(DD1!U5{w1t{8= z)xsg2u$Pq0NH{i){zOpeC)vxnG@;qu@R0u8)e7#a_c}E&0kC2D4O=}?K16J=yi)m} zLPS1uA$%z?d!~WmEefiDxd2$eRlrBwD<5Wd#ET_T?F7T|cO_@x`|f{Lk9Gy3@}^fu z$C%3rPytDvn)VveaU!nX<#YQriD3mVbCW;Va+ibV_BgzX4li}$w|9us3qL&V+tr>} zvx^}MckHb{HiT)oB%hAs#M82UuI9um(d5QH3*hdb$v)pfv>*kB*^8xZ>wek4vaYHw zVlJ+)L=CDWZ5y$FI80-MI1cIS^|Zp8o4BeA_9G#09XeM`C2crTUjgE0!4zf(pFss&IGy z_d5_I)LP;Oodx+6Zabv0CgLusM1+GUV<#Y4k4>bp zMWrlOs5Ea?v0{kp7;rj%3X2N7)BTTCm;#WUUO7%R|C%U+{(Aj0iY-r>0wq-mYj}(! za$J=_8gm}U0ly4iFZ{;zl@d*~J?=53k?TVrr+Tg-s+)on`4n@BqfBpL)9xDua z5OlpDy}E9aUNv$|AfR6o7F)!P_?H2acizc^@@mD@x>S`A1a(1^QuM^lCFvPliOIA( zGsceUrejg~{NP*9B8{17b!dz2)!TrFHHoE>G+HoJk~pe_noX*B5Q0eu5NM zurj~fpB-067U`>0oWP3F7W_BDy(4$ zuwY3JcHR3HnhG2I_hNw-ZisE)@Y`{UnY56`hYuK-o5C52q5|oIzj&Ick=J_}Vi1B# zwOy;Fky7&Cd~mkQD*HFkiJlMHa3UVLG21NMp!5XIK<77%a5wgk*f>x2L1b)jB(c}O zJ6&3vrg*=lHRD7~Jlf`@hye(`fezrWs{Cdq;9^5yzhjzvxr8dqI8fZU6~eq$kJ(3- zahD$gE0^ck@6Up^ES!`-eE3i`HKVe#!09@9(P-ak_-;f}=p%N*w(uPYZ|ty(5&Kzv zVa{{0Mmj3dskGqgU(nXhC;XXlU{4)7Cdp38{CvN7B-Bpk_8*S%enIs3pEv-Z8-T$R9h+zfaJ=rv?AGVier} zDy!^<5aKtdE)D&UoCuY$7q6@ckqHFHN#P9?zJ>RlqP)@kewH%j;3`XaWtk<*c~Iux zB47|bOTkIoNN?@0AJ4gb_{&HKVTl+dmE##VSDS0$^Wl6Xd;Aw)!gNucm$kJt0|Ud( z$=?Q5RaJ^+$8{WnB1%e1YEI7igo47g?05Ks19SRnc6H3btUB{$k9^W!1^)?yqP~ea zAqb$0z147AwP!2f`Xn3sG2Q%SH8eTGmJhS;O74C&<#W}lD^V6%nFZwM8h@pnj_Vu} zA+=2nKQrM?Z|fptWI#^RCakC2`N=FJO^tQ%M8Uk-jF?E{F6mOS@>!kqzKRAC&+Pro z3ezMB7});OAx9y7`Jc-G4PD0RdF`9C((^Wu8WdW`G?sXE&U#lOS4F7U^cI-0)^84H z9c!3`!QinRQG&^jnc_xhYdqRecBY~Oi_oX+Mv{y2?d{43f@V+e6aEA^Bm#gL-+Xp> zuRdoqXVMQGq7a2oJT|+RjHa*9mF8R(Y;IiUC4Qpj7DV@2B+*tsrvYd&&CT~i@I;{e z$AX4SPIh(*dwYAxj{AaNkhLm$t*(d3sTmn^IyzZwpZSG_4I$i&Vj7kVEApL<^fK;D36SbxMc_}PKXWr105N=l2LG{0JUCt2YpxJD=!2UzOc+@QWjQKhGl2BF=)#jceR#ie{9@n zF`It3SC_^Szg2;3n96j2f4|G^k;WtB(JTQk$Xj!z?d?7_8*}cEz}1rgC{(S-P&7Kv zaK&4vz9u>yO-LWs9FUREB={N^q(=oW4wIp67GgG#m#a+_LKH)k^8an6mFONFZ#1rD zLvb_lHxrwDsyZe`olOV=10@2(lXFASAMZXX51A%T^V(BrL>};i%Mlb8DQO0O#{S2$ zAQM1?#0r?sK}Vgy;^&QaP8iVeVl%a@dk5q%i|SE@Wu8Og6eblV_dsS)+G9~dn%mgV zr!L9hwXKbF=;M~oGHe28E?RSiMKI4qVAC9GB8ODd$7K=!<(Dh}o5(He{73Sow86dGlBdUo}rR?}a zSUqZl{wJA`nbl4@RryDM)@a(2A)ne`Gx=kC-P-?&Y{tUmqTAOw`+7{ngmYdQ5HPJ* zKt|Y5ygyfMZM263bIe}6bI5h6$-uxLn)QqAz;TUt&Ths#Cv}lMI#7hHaDL_O0_*jK zB-3hBLNX(l?i|K14Bz6T&_G5A|6@dg6=HD_gmbV$Wa?!ghxcNve6%^l$KHzqCe?`H z1py~NCikyKpRiXhccH{-NF|V@y-$g2Dq6pl!NI}x9Qz@;B>DdIo&5DHv7P)t{D%B_H}APcy!-?Gp>xdKQ`BFxgBMev!xJ2Md=MQF<44(VP}zb*)hre z{?b)Vw-z46i+*zXAO07jl;}-DxB}ySJ#R!MSjE`?gCem`q@72m?widZ7{{>q**{E_ zoUV;9$+4r-M?xOv^zcH-Zw#HN=i}yvD6RPao`M8j*7Y#aYT3HROIEVa4Jh+jsT0&S zTum(k*B}|kG|J=LkiQmsIUalt4BGr-+GTx|ez;KxKBFM!jX7z8#r^wwbjl(M_kbbd z-mV9!Ss;U}uc~kzzq_8LzcDbzq0fEpb<+HkMQRq85g_y%PFAo1vFBcHi5Y%68Vmg8 zJgd;}?nLMDcdfsLr2JA%Ikfj`o112;s~YB0)yxdH^^F=Jvl($3(Qki}*bDMJ0%YMK zqo$&VRUYc6Pw9TocO!SF%hVzw0SmD+{n8>%nCcd>k-#+34)N{?J|6h_!fy?nlJ=MB z+ju4l)Z#Nf8m&@EX?ahSToktw<~2ZxM-Acw8qA7|{AoB$BdK~QQiA|yXfl(2l|Z4w*r zqM<*<2!l)l9T#bMkucru7|6O?kY}CReu2(&t4V1w+U!vhNWnSV-8<8M%>WZS9gT`s zA4_L30Sj{DKyPic*KX<;NFIU^|AR5OyL%HkpCL_r9v-c?m#KgHpNM$LG&D43|NP-~ zn4XQaHWGrb)&g9hK&v|b+rsVsad7)6B9JuFqcUMGTv1W+!=(?hMlvPEOj1gK;kept zK>(GW%^#j%XU(KRTBGT8SU{DT)zIVW&HMY5?o^*dAfel2tIAjCzK#l-zRa)>b|=W2 zFWAG61a9L9n=AU7nl!XZ`KiZ?wPUO89@G$>O&#~)D@eik4QS9PuzF^3NK{~0vjMt z&&q2D3N}$JjEd{1I+j63rtngg99>5tdIzd$DSZYpG4&SKq>2hUFUZ@&7Uyf7-!}4Z zc5Wgl*t!8f@V~_q@ol+F2?z*;HLi|~jNl*#FJreji%CK%bP0mkvV4>6@9ukp+UE+t z)dOWp%94g3zD#NRvzMkYCduBKR`qRfGl))NUj3kiiIx3 z6AMt$(14<&qpA1_W)>sk)!+G`u&|z<9`mxWiwmdCf9@tGU(@FD0CVQN4+q5wp^wG( zD2N?$AnoK)0cvVVRW&s~mu+#Uhc?|g#&X8?xa0ljD_gx}YTh0MR^e?!>)xFnjkRVKOCabO&14oeOvFKfcX2Y@O|7>q#YYQH6GIll7m4+lb98{R` zK_6U2-tx2Tsn%9D8sU%oc`b+H@hiV``Es;6myHOFPaNvsr1}QYkX-qTS@slwb~@I_wo_|f zVH7>UL&}ums~g%U<6*`&b0wAB9hz`O=0YhfXb~|{51{`Q+3O|ur!-e-+x3d1cbdku z4~F?0I|Ho-R!|m24`TI8iIbOuUofOytRszfF8d^PHlmlYw4>x+syphewYw?=X)#;j zSHZxz+O@~zrE9_MA;WNI8}cU;33@8uov*WUg0BC0L$++ClgCWb z-wW8Z9UmW;*4NKkg&)j@`?sP*n|tJTL!?k`R3HY0zrOfp$UjME3itQ4pQcDP2`5^K ziiy6rMw!&}dANgZE(7W+D`nPvuNB7l%w4hO{litTk#8TZyWc_EGvW>EYQ{g&oiT_= z!0&?|8p81+_&Ax0k!3&@LU)na#J$CfqIZ-UE$32j6@ILik|_M%8l$%{Gzsw9clrLZ zyEg8X^2w}iUjpar)s>5lgG1Aw0SpWb^V6lD7ytlp)x!Io^NvW zGcDT1hK5w{*2D=`AM z8-0!H`v*=p8@QfR5@D{cuAZHqW-|=M>QS$H{JgYzC5FLM_Re&pq$B<7A0-6 zA>$LhCu)+iS0Mc`9ayyvo<+4hf33^^@a!;U;g03-=xor^L%palS3yn&^4gg;QbB+2 z5Rn{_+Db)2ALUA#Q&sx>?I^ovEbVwQ2i!jd$O95;joE2Id{7s+Cf) zZA^YG9{Yv0Otz|B-VFh2__B2cN{Sm0z>c*yH}~YV9u-v7LvmkSItGR$rk+~lMdRmi zdr0nMShGtUf87#svw15yaHI7+ewX65l=6YaDVPUxh6+9J7mPh#?=$0&6Mk0)fx^?4 zzT6)D7Pir1d~XAW1@$~0Ikch@H^?L+ozwC0OXusx-8W|7OFuXiVWQu^tUUY3+1;{; zb*_ki_YH%BY*LQPymsWKCK7Ye%a9rqy4eh|Jq0POI~-7#t}a3XX;2G=)bL0RP*OQXVUY#9osW7J&<)_i?s+Gu0i=UXeg1ueYc*VF zWoDag!B9Q%^X(MZECG@68&PH$Y?kh02MvacTGJh5HQ8el6qYZ;IjhMQb73FG#l>v{ z82$YG`lQhuk@r{h;$U510W%-q&=&-AU}Vp%7HPcgCy5CN($V5`(-Y7F$YGUfmWo_q zemsxL%O!Qc%xO_G^NrX~ZES7==)3h8MgHBAmY@!4<(RV5(J6mSw-^a{8WS11_H4nb zsdh|9`&5uzfAs~w{oMDp*9te-3J(K=D(ccXIX|Du>+hkeevAI+U|IoOUT;mi{W&wM zoxM{A{2=l_SwHd$dqk0tQJa=z6r(e+#~Nan>wfDkPBUf5jqQ9Hv9GMMPZZnmAx+Iq z?}G{ZqX>mU*c;S~K}bxUvw%I?pd>_tml@94vx|Q zK}xzqx;uyN?vnn-=Uv|)U=6d*oY?oZ_kK%fMC1&*^i%lhNieGqeztLZ^*IU*E|xna}*O!#WAFsx=%AMyOd3cZ`GPDQF6IT8g_3(ySLyzDodC4F_mQ`3Dr6x zYEK8CpWW&VZ4_`oJ#{9i$0j0*=92s|HxAjtb(m(KKn1X}epa_n(zLx=gS2|?z~F4$ zvsq4Ijyo|o?5)0g|M7ha)3N%{^#p&&9ag(lk^^^5*nWSOMYGB(!nLO|Qh(STD&@QjL{T}!#HD)PWCYbppQx_#H}XvK;K(MMih<~M{+E1u^4-_z274y5Z> zB6~l^#*wmuGQ3h+iGluVRAl6&rZlOcVX63H(shb5b!IZ5{YVyKAvrQn7W5~z(dL!y z7OYBCOLWa>HhhG6C{WY2j&ZSO*S{V&^_0#5UrEuui^y*;iQBRh_P$L~nd8zJ zhJ^dr2e3aKgnzs`ihN?~Iq3yecDQ|oc|P1X-|atbRnAj?dPFpA!~a3?xY_@fjUF=? zuZ(9{f`B%QAx9<4XnyoX&4dg0_RqHj8k*kWyRqY)E^Oe>cMf*Froe#-o%oIbVULY& z2%tLK|0`ivV1+ApMc~$BSN=?cGSY6Z_BlyPq`JL~{o79zQ34>h#BS)dm$l`2oR!#S zPP2n9c%@bq?6HN3zYELOlR4E$r0f1~gVD0yQNj zWFoSBh}Ln&|93UsjEZCSyXNuB53vA_-V{@Ae1v~|dfIKjUrRI|h|zqD<>chUdY$-w zAa(_<3mFRjh_{ou{#?YU-7sqWr8xgiE;c^nlF>-u^$&_evYCEy^`=h*QwRh zlABTX3xHfM?CiqABMg@0f)9PB_%Vr$`E{DM`pJ(NXr_fc^g&AV*oB4lvL(btKeEtZ zB^AM`qM?f2e=3nMttMLlIT=4S{YrGuH3-SGJ_cUCMn{GxL|dy5Mfsmc=iB*O-VH47&&Me6d31=~3A9LeJPgCU=XS6Feb2r$1YCCdv(0g{QYTL~H)%w4 z@u5GAE{E(;E_ODsxOH@}o%yGJxbk~?xnEC}O=Z@M5|&HO{U1gk09zdA)=2n}tJ{9; zPD0nbK*e(Ny5(MVcx{1EpH=yrC7YJBDaHt_p&7@}>SmkaK78;rrJTC+AuHO;3yGQ_ z^$=N2cZHVoD-vRew5(V0^I5y%?r7h1D5!SId&C1nVG2e#4T)+4Ih$tU#82!BRGS4T zz3ssqNp#Jl>S5|(T^<^e3*=}>U+X0;e{(CvX?W+QqHA@!gC;d8&q=Z&njipb~i$KfpjNyrM_M*;qbFr~J@Ga{|AO zNvM78i!}$;7v2>YldO>s_5a4Tj9Ty~`MegrW+tgT!JxC!D^juC7B#UN-6E337(O@K z6gSZ6R9a@l7&%qQNpSxR2VT{X?8KSNGRErr$3u|1ogAA8Xq)Wg7gv*6^?S$HVfjr& zPk`vD`+CQUP>sFO5&*IAQ?_)S#n!R-PA4Ho&y12*pY)Zd1fodMf0x|mcX||*PXu4mjmB^3vzO{c88ohOGu|ACu?HPvUEPz+zOo>0ra!> zTbn-iclI;_Dh@Ofxn1!ba){1c#7#Us*)wviRCf8lIpyns*BWPRMLDYl9q)#5s5s9# z5D`~tpO?O)uF|%CEJ`?|yS{c#>ne}LP{+i|aJ#|G{4Cf8+K{yF+G0f~Kab48EUK5*TAKEj}Zt#q-{wlLvs((qyDKokFGC{r=Z za`T}eAL+p}H|GlVxwkvcwR97I{YdC7kv=9{Z?eeFW+w4jJ=h{q33*H7V-l@f@M)XJiV@du4vP~wGs{PYYY6g_VKdcUp^p80R zemZ%s+5b}C?o{l90hX<_kCo^iZNgZJUYWenf%3`T0be<(U*W8`cg>7DQKDK%)9SND zoe(6BnMRC0WAO?9kGgcggR$Ex<;{_zk+M36DjjZR84ccil!n8Yn5*ymniz7C*k;gJ z6~CZPui;3%t6&*Vbrbx%VpzYssKVV?C##^AQT@jrV|b%=&SiRPj;l~%FKjJL{zj~4 zw`;N_9n(|B79IUU^Y)K}*OOf|wBqY8&%?-h2mLa4Mf!IL(dndto%MdG-*e5$N{jDz zU@?a7+~h3EZi8m;YC+^>AmUo(nczc@IgQEb5pK$l^^T}2UyzMsly2F1B3hIzJxURF zjBbo!%&tg5|3z{fy&qJgsj-@)XUJn06eOM6LKnEDsrmHxmk(4O`vy-+Z%cq+$ssZW z6NEwubUle{&T7ogkv8>?!`aMUrQkD zb*iyi^Cq~IePE=wT5kTcIizybuw9hnUCFtn#=|)bZ9w#+SoeDISh_win{-j+CXFH= zxTMYQH>1T~et3I5M17bM@-&nI-l8&n*VFu{hH{;?j@{Zr0bu22?1V|SP%w+I(b7KQ z+_Kqn0ekPW+iB~e95f@vq1mFyInO9IjFxGw^HJ`f-3;b47ztQHwyiCLe7B={%4sc@ z0qN(k;}e`R3$wEt=Pb|1}@X=$A z;zCQ?3QksDkW1w#942fhv^+c&W8NW4T2>&XTPF8D0m{gdJhDZj=# z(J#|{z&+8_)Wk;jxXA{cC1?0rp6~B@dm?-$$_sFySqlu0PfTtjb=ew;goA_qf+w+8 z;69KP8^zDuuFJ;MSLh>Df>GI|z0Z1;hN(%k@M%eRix95$Bk^lNs0+xtxb5YS673L) z_=!hj_M7{CE#0ZJ%PlN};EuYMSCa#M^RX9fD*$$tl z9cXlChj^w?e1*RRJz?oG1k$$77D%{^=^;~?HDN!roD)InI;% zy`58bM9-eh5FukZu z4^q&z9D0wI-X3PkbA`WN-gG?QWdxxs@^|=5P&y=4B|M)PzV+ahd98K56blGg#O(SXr`OLI&boHOwjOD<{;AD zWjxDHpE;?Uipg;GrRSM-p37<{=FB|p9>n3;NIHBFAfY%laP#av6{Kne<3hsq5%F8Gv@FTrQ*s54>4cuW!h^+ zIB2sF5fa9wHqG3D<^`X=+InMq1wPtwP#IGvCCB3Q{W0Bs)#msh$_O6fKW@TZp02|7yAq2ue0lT{E8*Jbgw%1(t zCB4%Q=b`UWvgI6VjET>?dgeP3)hQoz{J%ED5 zmhX|hWXSLay|2z9`3kscot1%KqAW}HWGtFC$!6wGAoa4`b}JU`=#*4cg?V{K!%qg4 zkEN&du&)vCvV{fTo$q{hli<=srJM9%iN1OPLEGpbD2`+d~+CMZNtr)r3ncq z8PgfoG~5Ja?Jb+_r0;pn$6t_+>$Wi?jMNmCkS{33(+wC^Ppn@L znw61^JNoE1%s|$5XQ$doK(9-(g;=5OmsHCOilxwqt4iZF_hYIPTO=A%u-m$E51c7< zgu@prU?-Y-d~0C45SKK6uWiXTh+LM3{1*K^|=dqPMRXs{rA4m zfS2NPKb~ib)SGn0j_Mj6AHTD*tB~aqn4bPfm2(^gmqPjM*!G6Cp|j0EF?LzWbeu() zSG8JMhf*so9YfVbeP?arj52(y7OCaD<>+h9dDAi%-0z(K-jVHU7EJPqiI-<53MU`Q zlL3V|C#Q`Ts!M_JVI;IppduePw;0gM9A`>WzM^8LL3Fp%2WZ$eEddu!;jJRZckbnk8v{55EnD*b6Usla!lq2)oRCB3-HlP-IOTxYd&Vmbwwc5LXNv@imiBg^58Gk2 zfHsddY|g0tuOkA8#^7*%7^KA}hjlU0WypTk)1S>5G}I|vDO)AwbsGZlbU|al=E`E& z4MDQ%Em~xSRyw-4Q(b&OoUKyz3*_TdMGNnKjG_KqG_nR^iyu--O!(Ab1L7gC%g&8B z-*3OvcqmdEV7g?veL5Lnlhm(K*VC41|NNS7xxCb3dD}#hfp}*S)%ew2X^L0g^eN@G zEQqr#e(;HynAn2N6~$;xxAoUIU-*dgPqYst(xRYD@fi}b{e$xRST=f3C@Mum-N{T9;+0YU0uZk6Xl!}Oq{KCXE_R_!Fw57bWNCIuWOOJF@ zl_*%q&$V6s!Z27osCzPqF($C&!b@?x%>j!xSy|9rA$s5~-p}eKEi2s(=3322JegQ} z+smM5pfa82AAD#)S322eUVqoRfXM(0c?FE8HlEK)J*;XOi*n|7+g<~z8tZ$qrtLfK zOSfHF_3YHuWNl7vLM+aLV~t-~#FPGd<3SRzH*YR@rz1NY8Xojsf6PPGC%=~>BfWp_&;(~mz;q9qR_(Wt@ zePR;6bv<+|dGA?MbNNW)TWwE+dt-mop(s(XfweR_c+*POv%><(#M%{)lDq=5fZ!zXWy015Hi=sdg^zHo- z4rV;C=pj2lFOM;htEzgeR3&T1f-h4<+?^xKG^4dxf`#u0X$Bi7kQ8SoS@8=EhpG{# za;HzqORGz(40O^nl4?q&-o?Mh>3q!C_Q(@0EY=wF!wIHrg!YRHsWqZ# z=jx-w;#$ryQa|min{<-(3OZQc=>16Jkq8D_g`TF04hiZ4brK!q9BsY?Zh2onCZ`wz zshBk9dzPXPC2X!MDr$4nQWt_khUZbsb|#ByY(r^$61G~&Y`%DtMnS-+xq4rC1Xb)P zr<>RNNK-+MsEd-2uN*lCqWisvXFxtaO>SF=Nj1e}xY9r6-3$+A&u6bSHpdxplPr3Y zQv$Sx+UFJHr3HxW?du!5+=dq8l|QT%h-%MpV4i42Jm|26Otdbx%i@0x)LHh1P4b9iozd zwICLsvd*ay-F3~>i>6dj6*K3J?zA)RZ`j~NjtRAh0V{k6{R1>V45FF430Yt)+0yie zlV^>_cL~|C#&>G#7#-%mKviG&Aph7#9@1NR7CkZKq}e-xs8MzYtcftxYW^R2qN-C( zVIhNA>-6)GglPH4qAc3{4(EXGC$%2`xCq7nnc&rt9XN)(wHGRNGjZDcL{Rg{WaC0+*X~)t$_~ZKC=Zx7av9J(tsv#GtMoDXg?Koz4e2E07*FqQt>m8i-)* zSjvhhLzu=Es~V&~9w0aq4}Ay^LyY!9T~|W#t%*st2`PkFWcB}3K{k^cfq{;H7={YqRJh{kl-f0 z9QkI45Trp?^`uXBe2=Zae)t>{<0HU@Z_j?Nti12{ctxM_FO;yb|5@rn3wuV@)plY+ z?G7a|E1pkSI{xPIKOW?(9iadsCN-mM^q?3^Y9JE2Rt~myuIS?Faw84t)sb6~2>ESw znKN921c8l+fWF4X&h3xWHXcDLsvc8uy$0n0<}-U1y>`=Coc-m^%~C|UX{UXYB55tF zJSBk{+~E+8IawrEpecqiCpXDJtKrvsG4^Vt>;@8Ew7YvM-Q+}9d{m#iZmwo;+aq^+ zz4%B@GVxCg;WR!sclDo^&E&#ZKdg)4*SR6wVb$3EqJ@3+_dj2&d-ac5>nSJi3hu66 zRtA~!TJhsNxPBCt6}GZF!G=Nsn&SQ*e54E!iD4KVS~$%3fXDu*gFW+Gi8?mu%qPta znU&>+Cdb=IDP;*IV&#D2$QUYfC?sc`ts(EP)Vg^Vcy-l_WUZau%&)=}{$agz>~YW0wd7f#!;2lMqxgp0hK~1B%`*%_hvh0x`Q1vmYF5Y+7E3^QUdEFx@?+Xj zed?+Baco+*J93ea$L|#T=3{D`i;?batV3gTp<}?Xy9kigY|diN(+qyP=mri(FxwGo z8+F6sk(Zix7*0_T5j62y^&lO%Dlr~a37NZw@-@FNFbtA7K>VFI)3RzYu7o)x?X~WV zq$hH%Zs%ZU@KZ7r(9Bu=+jZf?r)0N>OdPyX1m!|%6RsRze&Hs36s@MpHGDX_t#NDt zNt(LbylYP8TTgHt(Mz+V#PeI>@f5vss$o=PH9sLXA>Yp#;{o|@ll5o)1}z0PVO?lQHpN|Rep2m2cQ?%F0>&<6rZTE^*!T7z`^!m;fq3PDFf%(QB8eDQLvV%JBnXgqUqs>QqSTQ;V&)w6 z!HWJOe`EJdu1y$b#8t|2?^kwuhCW;ooBQw6!=%^ovt{i8zB^t-zE8UE2RH|~2b%tu zb}%+Jw%tr;Yth@^Pl=Qd5-qC8Y7`_uSY3gm-`1jtn=v8Y&=D6~ED&|d8Rt6qqFs(~+p{fS?lVb?=^2+)>WMW494-Op zfx9hB77=0Q@>e$j0cNHOlIf843jriFqY+STlx6ejvfEAOHTgYQE`3ufP2>kCx7f&< z=3?YV>F)M29bgqYPzjwGksyKSuT83S4_9wPeLDFcURdb?8cx__H^XwL(<{KJ{WIw@ z&k9ObAqH>(?@}@Z#e(|xTKrhEQVl;r=B~JZ^xD?57&(4O6ivkT z?*rG>PRw!~nIpu4c?XJ<773lzneX3R@eu)7E#?nAw;moISF_5Bn*A2` zYu9~8f)ss;Wj~e1n>Q(BcjJHH+k7=QpD#3`B5|IIdUg3+0MqJxnj#8d*M0y@hUsSp3uAxq~+anylG){th|khaZyoB}DeG`OHUW*Fx{@ z8Dku49A`W=$GQW(xb5LXL&*N4>~UA|n03-j!Wy!&udbPfCznKui{PeY!$Mq>_rWiQ zIGp$RwYaEb-05%4??BA?o~OYI`dlvZYGA1+P{aB?D@#tRlh1J0$aTTtuiM@^+-#|_3W{=3eqBX8^h%%{O@il% z!>(+x9W0!Zochm^AKJCC@iU9xK!qE6Qct`k*P9*=Q zavKWO>P3mQo0extaX@eZug@LjfV&eIQ;Y-X=c&r>6aO$F#7vPE1I^np78b zzM#Y^z}9U*IV8ZsGDErXQar^8EiSfTeFO!2IPbmBkAr%PwH67fA{l3UU&sSf)o$ zoV9i6@dqzMV8NE_EL!xvk56Ft@xwxJ2m7zKqDswi9opoamm`u=nAK(~!-D(QRqf9x zGB?d}y@TXKvdGC6-{xAd==&zr?uO(3cuuS8{`VYvCJLbV#=Csi+@^fSVr0~oNIgW_ z{JQDov{{)hYDItd31Mgx>#S#G^6q71NCx+nFM*<5y=lUQ^ZYmeKHhlaXrv8`W$F78 z9#p#2ERK*x{p}++{WpJS3Z7aj>Y8`FV*>$ysMvgeDXpru-|gF;vbr_3PX@43GTO)h z;Y53!c6vQZoiR|`J#?#g;rAkc8_~jqwxrw++U4Sa!u;DL0B#-W7F9Vtg zn}udRIjtnKn$JTiWu;V@^wf8!JR(En3xJ=W5>?(d zY|W~^b2MUbtA93gdUctmu<=ZT^yKdL`w&#MQ(5~)TbnJrUd5{u#+PbbUGJv?c`7Py+=cE<`x?-{^Y8Rx6ofC~6mUIB5sy#cA9nXDy3j}jTJs)+5O~fvjWEXelko(R!2Y=_xp zO^sDMPD;vIgf7$>==r?WCf?0yD!8!lw-ZG%f^V&5`UC+OKS~bd4SXuteuq07km*D_ zv26xmaYv403%0maxMEVVw%V_XqtvZEs=${p^1C%kp4_!6f83IK$1QPOLp2+>k3k~9 zi-*kLLMb8Gv1Vs7x!Ilf$%Da|-RyNZ`#>CU=}R!x-nK+!3-3QmomgdKz zqbD$Vtc}Q@mNPwVb7GiKSn&z*DBG#3EaymY-h>tI$jhe_-l{AtQr4r&s})qe1aB^~ z+OIc3UVkrlhOY^R26Cw$CxFb8(NZIsOXGMh%r zU;Jf7v~y8?t#Dk3^ms->lm*Ti!zPYQwSEf9ym+q+?qPO_0+pNhf8pb=Li+cgbYhlN zRAl#ZcDEKzd)=R{3M%;mMQahQ-?YAgTCp>t5W{Fx3P8nQ*bBAN~TZS9M0!<#lMcfL_Nxgjs=?jj%fd^Lui zrIs3aU@eKWt-$gdXlNbESEXBzZDyWiu8Jzp)%B?TGn#TD7gy_$sW{*%BH~c>j|iUi`>q_0-Q4aMqeXpxutuQm0vo8OT$W z9Yo;g&_UwZ_2HBMAcRZ&0gL3+gOhXrj}ot(BkA+0SLo(nF4jUa{;t<+`ywOjV%#W- znMQ1mVBK;*gKvV5H+6kST-82DEMRZ%Rvg?N1xK7r4Ld;}^SD*C6UX(=d1flaLm3ve zTNwp!T9m1eJ(Getzvnwf$>7cGaMOkEe+p>+M2^yk5aEE}c<$|e4x(U>)OLaTj?XX+ z3RHzEaa;*JThV{ z&R8{5Q1E%F);#vs=Q+st-`z=5(!alNxzT<^(f0})pMb#UW|EbdfPk*5{Vv01t&IS) zWNlsNTaJ5u!@5NxHYqXrC~g{J#$+>w#Maqb^HeTH#tQ}05_C}&Pa4g0PhzaH7mk#( z@CfMERA0KO<0nJKFsf6M`1x8wu^Yg0lW*B~L4GH~*~}Q8gDB$V2E$}WP$DEClC*sj z2=Lk=rYtG4rlF;stZ-eVi1~9Iw)1-OSJTqU)@@O8?*&rtlFg{k4Ki-&i7Em;Gdwo%B`3Nu@4~c6@ zJ3&D;cysy^Rjvy+AL`yyCscWqIrLzgsW!qjYJC@CF|Ybj>kvwPD5Fe8oe8)dhV<;! z%zXdCLj(6jdVhCzPqu<2JBqxwVmJHr4yWM0u&hk7a^SDGjMO@2BI5;mR@V z&x1(TLT-=UHHN}435ob253W*nJbVg3_UiFShsVdeI~Cq{P4`(e^SSH)eyKv3Ket`H zyjpddolKt*550Rh2^iEXiG}tmSVX0s+zaO&j}V`@rNXmtNazDNl*X6T_x9|+Tg>3w z+J~8OWu=Z&K;JZ?ocr36bt|Re;R%`9XPkW@wP%i`&_(d%MB4j`am}KsV5d4iXz%-0 zUFYg-G{HL;kR4;TbXb~@o^eusL^p8w?!}?Q6lkJ+SPgl2$));^PQxsD>d>B&ole>J z(7b&c@3CVipYQE{bMu#NIrVRv1yr?CjBF&>wYh!TO5`vXQ3)&m0siY0eO&ET(V_lt zCN1O4nzrdZMOC4Uc_9F0%kBjFAwS^Yd2>_)xC>E}6sT*cslMm+@ZXnkTgs07%X&N+ zj*TByBg`xA%=6m;&$^+>;?X{CnSXr)UGK?zoVVYXOYI+OV_8~SR==K%^bHJ*^hXm_ z1b4phLHRXW*xJB%sQ%8M9xh}3_{F8ivnE?zPp`r;Gu+ezOUn1wFjHeV7)KsbuFrJd zm-08-YEiviou6w-C_njrqY(7Zg51zIzUSFPjUKz$0B5jM;5h3ME#N{TT5dH}muaE6 z_S-7ECpraX8B(1^k3tETEiMwd-%iVxw};b&>oP@Z4)j-m)qzBMNqt(5Q1}aY`YrqG z(WJ6D%gE(SA{CBJwh5=3mC+CH{abUJ(7isI0TXGT99dCL)DOhR#MdJjONIZ~!bmt6 zfEoKL!i=6nN8z`4=@iV$fWr$eZIL@f!rV|)4XHF5hk>glbMo}CzDKU$pP`5XJXb_B z@A#DnGqej)A}k4UsrS6h&~~OXO|c_m{MK76&FWU*SocUJ)&{J3Mk>q~=Vn-guViq0?%>@H2kM3LKKmQ&nZoqwTxv zmriJq|L%0M_SNbFx(p$$cHpJ~cWQUZfhvKaM99I}AFuCg?BwE>9H0j9$kTrgsjmP0 zgf|CDhX)7v_F)p;w#y9^2#Id%p!|DMDTFm~0nr&?Sq&BEhV5W@+&3}tiC~kWLMbze z57W%6-On5z9V8N9i|&G;BYIT-BQtjI^_m=yX?o=J}=I>Oq>6 zbm5mZpkpmw26F(5ncJSk((0va3tQDp{IV%f`hAM9FUPdlQh~j}S2Q1QShVHD?B|1x zi*A_TYrPND_e~W(`rgw7Mk6&+BjH;kf8mSAZqQa!e>Dih9|n(G*@22lrm-WsP%zRm zdCpM)zf%9=!Kz^CRk9V!Yo>pq9#x0BS4L^z8_08zsF38drU+Z`aW^x-6H_m2#W74) z(^DRa#wxvIYB*uiesxilzZWq!-W=rRqn}ULUzzgk00Z_p@mf_KkH1cq8z+iy97~`4G?g7TD&e@i4ZMTj8uEYHBC3P=5 ziHeMcjnQ;r=RRj(%l`|NHtZw*bBxZP)u0V|orv-r<7*e&Vl%5a7S~8 zmG^heDq>o=MQKEq<5Y8mF2Mg08H*VBf4tht%jKXJK_j3^`$s++q3fu765XK?=TeA^ z7#$EB5$@*bhPI$L?RAxZ&5^|~m+F?iAYrhp&6|=~jy%E2&gA>$!5* zyVX?{24(7O%&(z^0Ab7{&aeIFCU}jP5et`qKK2~)8Tggt%*w8|-teieUew%L{WK^T zaR{tSWQsJ8#Z9ueG5NdxO~`dGuR`WH@kL5eIw=+XEZf;T_xY=TbNNVAcN6Eww$?db z@^(?>`-_jezV$f~&}bzWl+pLFqw9`^{amZqz{Z3+I;B5@*a9@Va}u~P#mHho@CKMf zFh`0Dfwk4vVt;u&4iD;%q-knuYT~ZHXm$7WnBNQ_$BBKr3+l$t|F`#m0^cot@V&_= zleV@#ETK_tDVVc2hn|5!Z}H#cf1TdCmC<o7)`fCMUQtyCVI$OJv`W`qh^QAA8ohu+VjL#$GR#iN#5sP>$Oo+*i;_2`#!frVJZD~ z7pgPQ< zyv$%H$Bx+b_HJnX?L`493@T5i*8T3UdX!ufa zgnvjH^DIrH|C2m7=J#Z-TYUHMZ9$%$xD@TsBUs-Z-_={Dk-Qxd)vC#6Bfz1!!U!U5 z0Yq35+VZqUNk>B?`TBbP=G$^~n+4rBMvdVubbO(<^1^11U%7P+4Qjr3wK)X0U}rON zaq$|rbG`hl1`+wevgI%#bxa0MC#Mc3g*U4i^D<**K{rF}$13|a9))T^HM)A`YKr;Y zdBV-?XKPU{BvEG{q?9h~?94q{n?bi8(PvzD<5pwhhO+TP zMNco~fH7Bm%ezNe#pXFQs!=Gwg3WOBi)3~sCWz>7#ZRH9yRx-d6^Ge1xfn+qaMe)& z&EIy*=+S@2H1QKC`PiHKzIfr^GujK9j-{)mMKAPns7OQCR(eo`34og8wYGD-D$U+{OZ^iBdv%`Q@5Q5xL8d@ zvuPtex^{uftIPA)^F?ybwMP+NJa$0D&D?T)_jaZ}kbKF38^pstqPpH;Mf2{oydE+n zrwE>3lsEm`vV}XJ-;@-R!U%GE=fYRju^U_{RJBjR)UwYd_A2lTacf z*>Y3jL2X%BRDXtzmH|WDb|cdkJ^ED*Du)Y+_@fx0qM}}n1J5<&3>viaF+HE|PHTK$ zJeMh|e7>WrFZ0ooz~wU^e-`d*8AX1dZoFS*!z)##r%6uM#kU9sXU0h3u_=0=XHIBe zGaWWf=+f68w4B<kn7%D@qa*$)%~V>b5_}56!DH%qCNj~V&0lYDZL<66 z2tM7}H&tL4;mDSd_sQ33R}w5`szg%TG1VM37Y$2mNR3w_v>`dRJY1QuPBGXrGT|c` zZf{TdeI8r8Ua-HXb)jO4m&Tf%?CIWyG&SjxEt-&w!ESzYHFN)Mf*y8;>gRm>;pJ4V z;8z12?8E2~nEVX5-+U|z(HIh7=s@opGeGq)UL%T0xFEOo%eZ>Go$&ZDutL<1D6jLE zaOc0&M-egqh^wO`t5DrecSrX2q#hA$H1<5t{qbx&He!eI_I)e$K<*SHY%$TBtIzB1 ze2Pt|`Bemi$xVz5@@JHa9Bf&%W2Yox{&orcwAR`XKml5k5gZ!#PtHm^Ep`6O?^QnN zV$26g1-x_`V5Ta8w;-GyQ?H7%aNO!__({_$F|^<5b)tonKr-UMfXygpXFi2Uk-}~# zv80#Xd%f%h(p}7`D^Ert=f&hVB$jxw|gn+tUlu(k?n zS`+}SBr`wHg0MCHDf$Y4_wopi#5iZ8vJVyN=;RPyx2&3(Y)`pi2*l&G@1@4ov}52j zC?sgG-$guy{cUjQ`byvTSt#3e+f}^2{>%{PR!7`DSoA(26`!8Mp^nHkE^)Twdf^!9 zvk>13d&XkU%=&-wFNVQmX-_EnNHT+ZzkLSC$Lj??W64@n+fHvq|xsF;JR5Cj)h~h-8ZpKbvT+u3X_4V zCwxyId}@AKG$(r+840!DuFj8hD4rzQ5~%}i%ncj{A;;L6;oUA9V^>xWLa#YF3jF-9 z*-Eo*^YO$I8NaLzJl}u#5U2C4u=Djw8HX) z3dp{q1knY;zxNQrFRlGLWT+l=>&XF0>P~X_<`4hN?X)iJXsB6?oYSHdM>N2hRB5U* zX-ocFmU;u)@VqIgwkusWtIqbHPmmZUbKv4_V$I8c$WeFy2U6N0>uMqh{0GGe4L%+j z)}RQPEsPqMQJ~OVo8f5)vcI~2?qzMQ{yKk`@ucarX1I{c2mk(M;zq9&k%Vw3f%b5V1mbLDM4gwz~t`i{&?c)gs zrHbV7UB&U?6-U)nnlNVcwM+5%6eL;p;BV=5*77gaPLrdm&})0+ME#*3w;FUDtHr^H zBNHR@ZAZVCSPTt)?Cd__?wBPmlaPIp{06jH&F*Vv-b7XH=Bp}N9+$1^lw@hUv(xxe z7b)sfrQaU(x^WykkY&uM=AGY;2Eqo_c{zw&yT>>S?0M_XyjyK%r1{QP2*U7&9xhlY zl5vsTas8UYGjnse?ouDIR~8oVpujE;5wx^tn|NhO*mO6PoE%v!_8oW#Dl$z&DQsa; zQ67ZJjadDMVReg{B6;Bn{TrrUUvVOa+}x;!Je;%Rh%4tiQibxb{J(R`)ESFJUCc{v zWlGHBKY=qJ&Qi4JC;#Nrz_DaLqJclcRcpKtQRh-Etn<0nx|5^4@@!MlNRurbb&J$6 zh^3{uBzITJ9rrq4EU({o^e8FeWjQ;=e~NIXxIbAL?LNQ0fdI+y6%}7XVDnNO<&r1~ zIoM|g5UsM%w#6drSN7bm$xrnX72mtEXLT!fAjAIXI-&A+xsoLF5wq`j*i+fw7=j{k zH(s6hUO~=|9KvxdIack>XkoL6?v)dWhsBcvC*{uE3R=W@Vg1e0XcO({8*K8JFMkFk z9cY7oOTu?XC$m`HQ}cwnu6t#w@kAw5T`$AZ@5QZ$U13(uN!zJW3tV-LADDeVdL;R@iH=B0v1eCwRn_bFn~tF=0F zk^Rg5#CMqeYG+u(7;YDRbRM$O&a`WD-q=sj>Tr5bsP)nk>Vvsi0ZoWoIUTJ`vnn)_&D|Q3*De`lV+j`|LkzmtVr=S z0^DloMq>Pov|=!8%XWDAN*E;-VL|&6Ps16X^ha;%WBU3p+B}xu-@L<2`AIiz!`n=! z8_45W;Q;`^!EUO4(fyj2J$(c&PBwIAd=qW&9f+G*O@yG0YUMAAt#`zF@5!b25p0bY zXnmn|v7*k$-x&YXebw)0jNsFxzzxiPC^yxKW4oS9x_>oVP`=(bT>yhOhQy{611^K% zs@t5*BBAxJH_2aH{mzUSBf>GUHXQ427h*6JcZ&9LKrarUYdzXaqM%fdK`zg#BY~wv zs9t4CUnUWGjR~p5^qtbSII-(`XPB@1=>zC#eDI(s@ST%|uKqjt&1XX~X_yj-gXBi`BJ*6+g47-A`Db4V{ z6xm1mh*Ge!5qXs(IcjW_C51>VsgURx@!52g-Evd^$!}r~@{L=uJwwraDw~aRY8EyX zlExgt32(HCF|bwJPF==$+~rq-_DXh9%B8+jG%4{P{u~(ZSpNBt4g%2y4ft60%Z$6B zRZeYLq<+tizo0{f>Hu;^Hy@gj)CUq1are}KeQE$>3b zJT#|V0tG!;Im>QQ8?K_}!Kl6pNeQi_ksHs4W%ZI)7>;6n$JmB?Kc*Xz;Zpn_$EK6y@W0|dhs24DnoJ#^RFU% z-xsz|IJiI=;RwEn=8R4G+}HR)Qsc#vZGyB)N=VOx0HzkkrcN{>=CA9K^Lx-=zVY1m z(t&aRj+f|nYo^e=!3?aH(o(vEcJwbd(9XIgAZ>NON_2VH8FAfRh{7(aowx$wwT@S~ zaTiFvHgrC>rIvG=v^>nr`&WK`XR1E)I z3~SFquO(8Zww*Y*7qX1O4xS_aV)Ke3`9f$47Y@zsn(FHMip&p9#zX^3X^tG%n+XNSBx-J7v152=3rgN9pnc;s~_T!%*8TG#8&yGwSuIEi}-4NFZOZw6CsrZKeoG|C5dS?b1f40CiRrs-50l6Gn= z@CF`Q5(;Ll0a>#U83L)gklw(bY}M2yuOcJna?n(t19^O9as@v>a^fjkXRIuV@w*W_ zPqgIO&d4*L^XiddVDUeBDP{K>G`R~oNaLL^ zWtWApE?Qc6C*S3VE3_N?bWnrV6wD$>xlKSj-Q*GwO~3Trcd#tX%s}pqLZ4ozvtL!< zNw!OLI(+!(HETpmyjX+r=BeuQ*0j)1q%$RCA~0yLkvJ;<4dW=g?0U}35+3ISUm6*0 z&A5;ieOtewru*9#b;V7IKTcpG)@A9*pWjAAu*-@gvyXkNpj}hVU2czqlscAS`^%Km zSe%^3n6XLY%16AEW6{y)He64qxG;>rhf9mTp=*-eR;#_TGCIrqR`c-a2$4%*aKq|i z5`O6LZp~MKTt&d`vBr3qiiby=k;WGmQixa@#>3O|0N9S1zttb}0oM-`3rm(d2i@D8 zLdwx;la-eSCd;yssc)fGA9mdPB-5Kj#P34)&psJGR~xhgCnaLR(=_MM0z&i5gmjyC z7qup-;l#}1*g=WMSF*?i%w2ST>Q=@|8rmGTGHi)bi`lUXDph4s`3eqGhQpWgC`~+R z1{hKFOr1NPjl5prjW3>or3$kC$vuT(b72T-N)#6$;?P;!v71RyC}fl<=h_rc9~5g4 zUAT(U7?3^vh?)3c&a+C+z^Vx7Y2(s-Zte4N(p)24dBc0gT{aJ;sSuPB=Qth{|({fB06T^NssR~;iovHB0Iy4rQEIlI9oZ&bT9 z{5W(D-6XsWS^jS4I@``k%VV{^RRv-~f)Wrw53O$V_d|l~NeQBZUb?sLPcY&nY;0`y zQ7TYIGqdgXV@s}ltmgUA1~DymY1Gi9{{%7}LF2lrnz_^&o*p8w?IvD0T**Lff+y32 zz}?zZol$qUx`a|rf3tc=wme}~f-TXw&i>?!mX5N}!$VU->P8VdiskC^tlZftpJd1D zImRo&YR{+eA7Y3!1IbBlBEhV#2=r8vd3;5IJ?rT!cXM<$_Rx^^S$j4VyPn0J1}3#Hx0Z!IMk{JPgzFt|H~j}% znC7&4YgdqbH_z#;oR}8ncKB7Agr4UNqkas*cWy50O`W#Pp)tNY8p)p%G;Cdvqbwb= zzOz8p0YQEq56B2hkGCTgV_m|x(r+N-Xfd@J!Y7hw6uvvE(qa;uS?e}pk{MXFz9xJpL+^#1T{%j+hIQ?@b& zl71$2M9f{ThPkd>=D2gz*t4DEf} z@NHLT$!gG&L5Y!7&|dpguv2jHNP4Q9T3Y?*j|K}lGvX+pDpfZQ?^{?ngc0WZbB7T^ zehMI_>3V&6GPkp{D-8ga8(PK%qVWyzAvQ(yb1qWcHutoSHIj1r`R$F_?Lw51MxW53kN0uZ9q=uvm0hNBB_#_4INd8`{cwT4@3AqG0cA`-Culvk7&U! zgROJn&&L-(&s^h@VGCUftif4NzU}AOlYg8CrpvzyRD36Sw9?pILS_u2#V5)R`{SPZ zJ*Hq#itP;2+v_GONA2;kN%Xl_XLN@vqKU_h#IKvh?zaf$64NnaDqh@%TkV8Ngn51MbwdPB)mwfme%4GO?ys5soC&fEsJO)kk6ANczETmIvQ$L==C33vT0KyS^-K=g(5+ zP||ir)y%S=HAOR11^485jTNfyHnJPJ7%LvGk^B#r;Ai{k!&n_UzzjQ zIsV47Y@<{6O*>G5K;Ni!20&9yTVGkCcvid}!lv#ghFbwym)ekUf;m1fPhYZbJa4ewvw zobOC{ZS*y#HA{fL5WUCOlok*%Yon&hM{vJHV&`};;JaoTnBFW0aneMD zEe$v?%%?eL+T`D)k1t_t$u%|24TV2-7(CCG$WVmkv`7_3shLr9PswUDlt>AX_YGUM0+;Kp`Me#D$urv~I(b>0 zOyTm1jgR5m5@DN9sW|ol%`FHmKg=%|qjgsr5ivEiZ~PE^0yfRz&-L36^64+j^t#R0 zs{Mve!0)4m0oV1%vKa<)Fn4k2Kn>&Wh%Lq}*d38X9V7G<<0A|V5GyFq_xH0Eltp`b zW_H8P)>V24o6C|Jzi;iU;eA3vW*aT{fA(QqX|bgBG;PWaz~*8Y&!{r(Io|L)+BLsP z#KwjJr?0AiGT-}M^C@JU1B>vAQ=mGXX5p7da}YSQv0Qh|or2|HeNx%#ub%uKgKpug zzd~!IwQ;TDQ&Lo!S%2Y;ikjY6*rtUBW#PQ>v=1GdUe>3$jgd$ue}#PBzfLV$acL>3 zn;0tUhxU#wiPPWD|LOA*Se~U%xRBMmoHZ=NV$dm#-i4zml^D4qj z;Nl>0-zxk0eIFEgm&=iYVysDnM^i?2C3SiI*pGNO-^j8L(*zRBtRfu^2zl(YJf1$- zX+?=^4vxo7H~(=OPDHWzUiJIcUkHzoAjdcYyV`-9C!a9roL9+}qSBcH1IYPV9W zuhY+-VLh4Ru3%lecppGe6?{hTd@4w$|4wGBU)gwcH)6V#J5Q$lx8rV?4I67`I`D3F zOm9*hz-f7jW_ldz^|IvbmLTPZ*tVK)ifR0Id+eiS=HFoy6)4=UlDi+E`Bb!Z<>t%# zA|}R4jS*9$y0u?CcodxS)-KFGU|-&?`2U^>*{S#)Y0P%FU=#E_L34#YE{H0C*zI`Y z@}WQ=pmSNsARsCaj#IxaoMYchO?2<+gfV1rofRjYqkMB>+C1%>b3jya6+VZ(C?lZ= z0=`n9ZH0at>mj~7K7J(D?v5FHcONAM=U1+?9~xnq$-{(w!xp)fjLWbxIBL_jC+#9j zzDD|kKYnxGDARamKbZf!T(nCTa|S!pYpYZQGwXMUEJU?Zp02+Diw7X^gY5s@PAcN< zJ!}{o^9?;}{(umJ3R;g?7_c1dreV*Dkc%Ty{ZORInf8F7IZm}T@-xc3fhPIgUUktm zYE6)Ne&vU5hebDZ_;h3&S5i;v6(;sC`h53NiZ3ZqQHZrUOYrS9gv9sddtKL^84OW2 zT35&GX)8Q&RG!boZ-wT?Jz&bs@k)XgaCnn*39&Hsfm!Gz$NyCDQ-Du)DPCMzJ-?=% z^-P7wXnBnM&C#AmZ&kjhm>yk4RZ%$R#N=y>ryCK7?DohqicYTVx7T2RsFPF)psa)n zN*IVS^?lmigOKy3Ze;*sK!%@RIa;P&@~$8e3GFF?+Hm^L?)e<74@ZY22FLkk0B`pP zwNdeaDa_Tc)lT9dEY-tk)*tn2CPphmgla+KU`nEK%@N%ZL(oGH z`Zgz;+D7VtsZheZ@CAap5I3;9E^TNqy+w~BrnvrnVIK`W`?fAK%yrD#Ehh2ka!$xv^a!Kdd8F0Lz~^Bxs7hkkhwMAfMUwrJiNny~&B zU&?T=dBx^3O6!8fyd5&pan;j@(2~Z+?5JIF^8{si*)KkXeM4t=iXnwzw_Fr;GyyY) z9fuoFMpzz%drzF+(uQ!ml5{L0mFPfpZy~ETn-`W z7GA5V{j$Fye=>91v_y9 z2}p3==RNb)5-qfXH-uqzSjvplI~Nt z`svw8v8uM0oY^rW)K!AIrann-uD>Im8CP0Y0sP*tA(Tr_5@uCLDO8s$t!4kNWSPP+`_RF}GS{l6>Ablw-Ig zvj1!RtX#tEG0O@ibBw!&MWBwEMs_QA|RO_i|Vot;~m%3)KQ#yhXh|4JK*ESdG#ewa19B_K4o|J$Nxq>aW-_D$M~)XT_vwqsIH zEkyrGBiTh99u;5SV71{o7;gq&VuG1d2+<9adrio3nG^1T9x%jPaflk$b6u<^3blZ&*|$_<%Iame;hP1yk%oC(Kojel^b}A7NukGLE|~nGRiEjVn7+VoSn<<3}rQqU%k`}7Zep>>XwV<)5ip1%=xVz!S`>gU8;UJ`NHa1N{ zgRAXr{dY0uq;nC2nR{$hB1xo)p$|&vPAPlVmlx!-g958mlpF}U0f~N!;)0669?QE> z)zjN*vD?*{m?^vlUWq?)SeN#o!~*aX{>fJd9x{$ap--os;52{dgOgvrN9t=TQ+e68 z9e2zxn+1(|NYI2DEiCOg)xGzc*k8nyM2*PLSG!q$hvg1mY$9RiCj%%d)(mFxL!V91 zb@+1pGAm9&1g!P<*zIy_^v>m8@F}=j&uBB%KwoqzT8x_l_-J^qH}gnb#Ag7DH0VK`IFJKVovy0IRJ0eD#)&@CxI)Be z{@o)g&GUm^Gu=YSaqOWQxU%3eZAmmcD5x4lhi=_8Xzw6(Y&vHZs(3zWjPlUgW=)lW zjiv{q!Z2~kc$Pgpo1lMnw^?{Q&!bWF)~viAEyOYgn{uU_2>va{Hfg3hosH2SBPZns zqY;2{b87b(rVk=+W@eVV!Vf0c*Mq%-9aRaqT+}qtqgqu>PIUe(izee~ku}u5bzTsQ zu?jo*dfne=s0$lyem{R!g%|6K8&1fEPuvq90SiG!2fj~0=T~B;ASXlwL&<81fo(|?;dekDX0nQ67mg7u(IwTB+>QYJrcpEq zpfsnNbIj^FkgWPhV+;dH0GXeyG#NqsxsOUh7z;=-0e;5;84g9@Rr#RWQ^h)s;hS30 zakwpdM(X^b%a7bTu3E#>=<}bq2b*W+rRg(#aYKDEIy zNyPiDe_TI$ek=#WG+2N;2SZufI7)~yZzLT6p}cCy}%C2!0D1grL?5<&;*$ZO9DO)QlA`Xn`&&y z5M`K;*QD*WZhAhSaWKlSH75S)b$oH(5UcF)$IsE6C@g@NuiiOz#FWy?6!S*r;_6Kj z5tJ$)_ILFZ6<7H(<CYyvyCL)vchJ4d3&N4Uc1 z-b-Ue*#cu8XmI<|yd2F>u2o_;ZAN`1kr)9toR{P(UpZy*qrHq*j)*H$>ivfWOW~JP zJ8p_8-}k8K4dW5IK&E9V|FcVNQ%_NJ{1y2p_ErGIF2im$!bU3E|4<3EPwNBv(uBY^ zr6DCR(@{}@0y!aKY?$gs)yzh3GK@`h0>lA_C?J1QkwN$%wwDQWSv?znc&L%qFNh@m zMHXA}iP|Lyc9?9-LLAp)hbD|7#*e%|qY~my^Dciv(c{!#=+Jc})9VQ?XyO{SmGx`5 zuTC!D%ls3X+dmmW#R$ZkhiPERJ~I`vK>@^lDglmk7n>!)x0AaLQB+?GO5^;Z;1gSg zJd}sHt}FG={ag-`W&9Yx-Zdv>;PkD6Iw26Du&yVzU5jEVRg(hQo1Lc;snFgdjv5Is z2H-O9{2m4>FC#A|kU;a}Eoi`+5pXqle={IS(uNX00j%Pkg%$pf7a`^MRR8eOEa*@Y zM}vThr7as-y7*xUb_ee4ps7ZHViyt|4eq4KOtb+aQjiHDp88T;J{eAcY>1X(pJ8n> zeXjc2Lu~9GXY9J6*XGFQ(JPLK#Ey-9X;Ti}*5$8cc{xq#Wn9-l#Xz(_V%dgc$MKJ4 zO^SFff@rxBXFf-e*9r^eC=!VK<5(-~|C2f`EUh@k^gaICJm} zQ$Q)P0S?Sx*ggi=Z_#(qHRmK^5p3C(S>YSw<-{S+y@}Jbq5zP+evE0j5_FbET}C?7y(^|20S34 zb_XeX?+}qtva?$qis+GwZFJ;3h<~Qv7`8qeVZ8gikbwfT4lZd>v(m`g4$Cx4i7Hwc z5fB(k6>U_rf85{5SpdiC|6Rx+C`#scLnEnM(zhz&|2cR1OI4bAA#U^gDRtnpRO3Re zH?FtPY`ZQ=w3komQ%~DxWgat?J37l#(mR0G{`!KJt-E_f=^WuS{ zBiGZ?V;##AGuTtKZem274r!;$K9&PqFP(}gYkb`7m2Vl35#SlDg5HGqOfF}uX8rYg zJ|<3442)evi&i~UESyx@e|hHGwjaXXSR4up`w9qZn@@a3dal%ayFb*>Y+ru*h)UnG zrgV@^yefXtI)JsKw!EVJqIXJ%xuoMGS7-A88I{q%7#e4ow5yj&nBDW zS-H8fw;{{tAPdfa)ZTy#xmD10M@gD4eozt!cxM5ZK%}4t)8y)cD|r|xe6SH zn3bz7PwWWy-Rf9QqA7ksaX3`aXeb$UO-!%}cRXz=!|xZczSmX)I-Oy30MIDLn`_L? ziTU3gc}SFrmQ@CokN}`;|5On_eRWCd_wz;Yr`kOsmgsugG9Bl#aGTP6H~bcmn-ztA zR*U5Dz~&FX!`5IOcj4~XzZf1RmLce|y1-I@x_|l-5PF(48$$|GK`)`&RWbQ#Ige>Y5ge5#8B0W7M8zpF~rKPPJPcW)DJ*WnVy^cJ4xjq;5t|dFt zMdtM8dK`&zJ@{I-MP)^EHJLOhrdj0)L&ElKac(uF=0qWRh+yKkkW|% zbCmxLR-BNKtrdUohv8kNA3ufpjVuYWZnpqIj1wMmU=Q%*B9dR+wmE_AG~s4NE35gZ zRc@k`Hz(OEU1c=6%2regBO{VUs>7BGOMm!a>fqI&&ffB)8-hc2o07F_^02q>=?GGv*(-zIf;&UQ)xLi2}g^@0vx|*Tfpc2;8e3!8Q z=Ay=3q1T?G=V_`xfVLj>ywTskkLr7e*EOwK1g{1nD&etCBWe!kD=(vwzRp#A;q!V% z^1h0B`^h)It1N#8af6Di<&pk0HD$KdZ0xjDSU+SoD0rCFc36cZGe(BJEb7nPFPR-q8xj_QfY3dTU?lC=@`1{HhK?9=%F z+65q~+ve@Gc@3)t%*!3>5YRe!K7N?zrcPi}F@MN0QWnkgA0AaNT>SmGDJ`4R%eHg< zAaQC`m9w9FAu)||7+p_L#ysE-STz8B-lO{e-yfzVXqjq5nnv-fi%5_~+SlKWAI*Cf zjSUr7-UcszIev)F+N@sQ66!xE6X1yGallb@Q8O86awGC{aNBCex=vkjRk9fysSgE5 zVHE_ktje`sr2cpm9z`+9#VUEvz%c&z#KdRi_v=*kg0rw|J=(;O{Jd0@;|(L_+K(DlkRd7Kd?`{dWC)w zjj>6^G$gXIvB^ZCGws2Hx(|Wf_3j)hKfkd4)5(W==<@)6yK~Oa9h6bjHjf42Qj@bo zKdMy@+8)1f6ln*%MDuktG_ z@DBhI?RLy`o68?B<;6J=GSzA%b`?Pjql5w~Sd?i>>KZTx1$m`mgxPgPf|ExZ=gWzo zRTPyZleL9KjL5#bzU*L^(lHhy-bBqzt%}9RtBWvcwtZt(?Morz&i~TmkJKT5^|k%1 z(i%`(=@WrEjkL7%a$=7M&pFzf^AdfzAH%xKZhsp=&pG(QF<`HX&$OCsJzfr=1f6tb zOkGeHWmdew1K2=Rnf?zR!u}7?>4XQZTeA&%!UBCz8#Yoz&M?>RWp7Cxz!v~w4D5T1 z+2h`^krHr*VX{>Pk%Hs4iitlP9|r(Mpc4nmT{i)Pf-S@0vkAd}InYG-sH&?WNzx;6 ztW}{lnjHZQ9pKWi5S;4|+2DeyO{mBF33xyY1s!}B(qpGDX4qm{&?MPYLEWx4y=`-~ zp-{J=X;Rir=y%4(*;Z6kWO!&bPZ&bjP*JBT0D{yyA+51#{r$&eGHe;CxbyK+luYdu9e! z0V!-^`2dU~#f%Ay&8TC6QrI^@DN_icOniN;MN|z3*yMk#Q+Pf5mQ_)A8mLMlbySMG zSFPJih13;8Bz6A~TkmUCJqTLM6kdC{h8ntvC{~1J{7>4QB(r-RVtQFwielyEH+R3F z8cuHOcBHre33V$BaitbatS*-svaDZ#4E*$83`k9aJ`C9sS~@6&(B`h^{&E}yvepzo zNoE%;i+P)`PeJ`Bg~*mkQ&)^<%oUbz{@fn-?U~nuamuXBxZJZl5tg9v?SsgQNJnM? zuQi6t8YP`tpKrmAG_*l%2T5FP!YdnYfm7> z6lT09ObtMKHjb?o@yiy^{ry7<&oo9!K3~`YC|yzie}M|b*;}os{Ur^1ld(OO=5cvi#FO7(71t4n3Z{!{8P5bZou+-m9pxAs(0Ge;WzTnq5~AKtCx zO`&r5^UHrc0fuzld31V80hW;EDf<1@0XO;&`7Zn&Aem8{;pAEXV5uuKKRRSD^{*gVAHA$qUUWcJTM+Smws%zESswF_Rdl8E(26x9!7@kKMyZz1yNdljM;iA`2QGb z0Q$LQfZ!4GBa;M;P>KQo<9~n*PQRg)p=H7UH(Z%O`Lo`RbT6)kS4(v2z2l3IP?ICt z0-mDslzb`ic5&~rf#A3QAv`|m!^x_B#Ku2S-%)Qm!N78Em|Q#j<~n*=TN44V;6XDV zT4(!mf763Xv26luI09h-jq|7|ZezcgrCJJY?xdcwOlS$m_0QnMgx=MOS<>*-{rVX$ zZP4}Av+70IEaqhR_+P6V-NkpqYYG%>R;Pzq_(hewHzq6J9rypDD7@f@2xI@GAii#h z+h*XS2fiyF9$cg`0L2OvXVk?4(q0S6f61$Y=#pl8`4>3qcrTD(W%(CdptvTM7r8B> zC~hSIBT8!2-}2?dQ_!enh`M#o1Pf>7WxMPr>B+*+myQU1get^GaSK8(|xn-ctjli<#}bvWBOJz!ZAmJqk9?i3j4{4DWMW`!=Ddr z8T*%5ehd*#5tL)8WdDeb*m;klASi6m_ksedVDaOzru;l z`H{p-z!yd;8P#S)OlkxF5Cu*d0Z2S9Lzxb40&zWLOGWG}&2Bjcu5oVSAu;TgnsST{ ztwm0z2v?594b5MN56Ydoz_c(s&$PCu1#`Y_jNiZK8Et`wyg0WxQ8KvJ1V^n2wy)qq zS*l9t3f`_4Rsdqh)W#6^p(T{UT*m$qwy?Z~~|2UM%(=P3fjO*0>yF(EhFv4`&b^$t{qaT5o z3IY(AJHgXcvt5ar)q!m%yA!;=K2&s2}u z{^&4hHPwaadCAJ6>niKYEu`W~r86GTP$qGE=43JG+C(EbxhZZLk;`$(sdKkjm4uz{ zJ(T?6ucxeBMdOR$7fef%_Wihe!WG{mJHQd$Gq~CGY=$kBb|n z?R`;RoJl`NfyFw>a2uxPO|iKkP$C1o-%n`&0HizQt)c;*6b3m;;s=^79!dkjU`e8$ zo;=ns+|rTvXOsMCAiQ zLiz$!FGy}f$nwaJqtbB~Vc@9}O3)Gd-h3=SfS9lN(M}QRcP{i%;F{ zpOm&F94F^tu4xV0xWQ#-&-uUWM8UWggw)>PSvNm=8DI@S}{m3SHvBg_71P@KJj^M^+<@1h@ z>1e*UA6>Z@VNsXgNK>-0HYg~|e5iMJ0q&F>a5iSW(#eOpDk@Nfqs^UeC8VJn$SXiB zE6L~7e5!3-Qn6CG*=-4nJ{bBOeM_aiuV5UN zNgZ*#N?qHnUS2HN=i^t+=}rFeL#ou2(5oaTm3x61(bKM#a?*5Q$S~-{lu$=i?W?64 zLqoBw96ov{9y-Ym+Z*qeRFAFbg34&J%^wvX1SlXI))B+|^F81NTk!G_JgZPmrjc$qD3se0Z=-p$L)h3>?m zXK%c_Jy(P2ed&&kp;IZqZf6r^RWWK+byK2Ja4GT}wSv#r3o=gU z^VHnFzke)pH+Q@AWbfvrl{%;?#Y~j;)~k#JT+C3-elVn!>&8f_eb>a}K;wQ%GSS)p zCk}wz-s@Q;w0xEf5INs6%*R~k6KRl_4dcgniK-v-?;?4;AAt8b$wcK`R6T#4)Y$Vn z*QrW(#POhxa<}EbTCVvCRZ7E{vzhBfGcs-{VoiiN`p;hQZ`|&z3%A2F62PdV<(SS+ z4h}jtPE3v=&AmFx|HJ|V@OcIQpx(p;f@aXy3s5A+QYU7AsHywUJ@RFc;YGTlDCp`E zu(7jG{rwA5P*gMxT>D+}>z9F+IHn^6Hf{iMtQ}0<#4=&hdz-O@TgSwBNLef+&%r;| z!Kd^d=c0pPbzfQCmAE{+ZiwO0OGQT791_aWU9*fPt_2lcP2t1>v4sA$D~DQ6r7%W@ zyUO&$@h24UG=Efu`aGId5QXi)!*3La-;i21E^rmP^`e-Q%*4?T;qLfSA%PZMmeV?3 zXUdtZwMG!445`Y1FySG$BIk+PHw<+O)U5LEQ*~k8^1HbuShCG=ypd%c#3#~75-N#`dQ3tt z+oGrwFRp2^=}45TC0?5!+jVPzE@!XYY#m!MgoQ1=@5Jy>bjGDGrc!SEK08!@9X$!- za)ceEAiQ8+(rOTkMuV*|X#Spt&>>s(FTHGTKM_PzVM^SzWfgsC+* z%Iu2bdLq#`V6*mC@bZj^Q@pa#@`xLb;$g>65%%Tn{sA<%F!0`Y*EbbXgkHHky@ z${}P=m0TF+=kBV#1Whimv}u2bW3>p5{WUzXT7rR=;n!$m`3!GjGDGQX(6$;$o#zwW z{t7DUR0Lgut(lS~QNVLZp<45^7yeGQ!gJOV$23`sYmFZ-?d&P#iu0qFDy|#Ku!mPx z6WKSfgM#GZrY3ib{eS=d9skSbBh#DIP)9*Uou-nQ#>K}sDj3VB;IMD1l)yaqXwzz$ z{SDdkm&@T`IA5kCh^$z^$Vw9v)?u>`FbUUa2D+(3p_#4YyJ_uS`IIa{?54MXtb)e@r#yA^=V z^PeCo%UP~il-R2FnNc)xe;Cv)j(CRbe7?B&8a|`eI_|&5UhgbdrnNlWmqdF#B6DW9 zuOMLE;*7lF+OJkhMLTsnW|AmE-S{?P|JYCTvit@1=faH{2BEQSYfJVsxbiy3)3rLe z;T)EwJhK1#!GhQ3wuRO6G-#*qp2-#pz9Xt1YP|o_JBSb7)6=sgFE5Zmw^{V$a83JY{itbiBdl|_w>|Eh4@-${hZDGjsE zK{2ysk>jvAMNg6&hW z5*U?qYON+^nHo=f2}kSb6<=(Bn`K!(Jo-k#Y>CX>BDL-2O zJze)*5o@oKZX2xk8y*JgNT%@2`xqJc-!706xF-fkQ%?&bRne-2JK>K;c*mkV`7VXO zS4Oa^R2#PiKS9NEm`VySBK@IkoC@w{P#Df!fWr!C^f@+6qc_sgM~ z$wSTUJ>~B$s(Y&2%C~FVj$h*f4vhGI);|_m@S1+b*pD3o)y%&uRFqR~at)4AR-E>M zx?*4t?xM_YiT}`QfN)K%IJoI=pz9{(nYeqE7zH`L%G%}~*!{_WLJ@(0v#i!ph95n# zA1%t|+C^VkTa$mgWPJOwgMPA=VQV>Co)a0Fs$NcPi^Hx!48lTd9zp4b4V5)KI0cLT z%4id;^1K$`Em{f02tr*oqTp5!C1r^r`!O=dKEJsC&|wMIg%KXGzg6oo;RTaq%#UYz zM=2>QA7o{w7ZWpbz~F#-Btl2A;5)%_f)l6YjRo~YmCXFFL+M0-s9Gk9P5?=^MLqJ5 z0i`z-i0Xfc65aL6zB#-@bE`-{jM-F;CC}6|4PZJ2S(gmY7R2UQ)4bTemqT@Rpx5^t z-ClaJYzd~f`002YqCOT#bS41k#tXwViC5A#8?h@UaZP>Vf$j{mkLDSHi#rZi&RXB- zZ1!j*@Njp%As1P;+UGzUy?3o|Kd5rCil*+P9!iy31C06X_^a^^vq837?d|;5HYDSY zz)Y}k3)h(CD2|?+|Ek9kJw3Ql)wJ3Nz#Tb7**yMC$;qGfvoX<8Add_W35Z-e?TA(GF(#onfPN#Z6MpIxLP(KpJyxKljg({h#3bQu8# zU=*%}bb^If2$(KUBAn!Xfp6kP6E~}jyJ%v6jlOeJ6rdZF&*T;}9m|+>FgM(Ccsgmc z+!$72XSz6zpP>ZJ!~4^yi54-PeMZz>Ax5-{)3*$Q{bO!L#ey@?Yfh0gqxQ8RC}rJC zEimISH@U5fVU|N#+w%iS>n)YGOK4tEmS<-0GGVjpoQd!d64@wp1BWC=r=zB*#Nfbr z?Im|8MIQxcka^4Q0W9LB-OQ4JAOSc8ovU%emc$Z6Mtg{Iq@rF$rF-z#3e?f&c zWm5J(d=a_Mr+qPE?eq+d*$=jIyVAZpuX3_2t{P+}N z7PMx$ajNZT$;0>3eWWsA&Wt^$c4#O2B5SzCgtmD3)S8fi>sOMt1)f%0nnGh{Ue|kY zTU|T{y*T>$j6N3;X_MQLE-Ezg2r$Un49I#%7>&Mo1tUc}1mpA52W zMeE)1&RyT9JqvamDB{t+n5^f|iC9<@X^9q-LXRIp_W!x^e~;OByvTr4N`{0iN7jBi zALGbidPwbg{J8%WC?Zml5VOomxejl52isc-g{WgVplX6pF2>sastG1?>CtCb_JlI5 z$V0&})S*(lU-Vco2lf3yPmT`@I$pYzuP@@_(|X@#;Cqs1X){^71H=_Y@%`YhFdXaS1=RjFN_fH{ zJZRc|6oN;Np$wAx>lHk81YAn(JcagN6Q_of(>CS58e!3z*YUQF6f(?&kCD!svxy!r z2$uY6{K`Z~atL?$X=_0L+)Y!N`6@1OV)ZM=Ez-KT2``Q{N3G(l@_4)42bAo5IqcXE zn{y%OBl)=agm$8vET%LPiC_+NnXe;Rc zc=UINg;ihA=xLK@g{4XU9sN~azUby?P8rzzm-GSeN#j#D@%Jyc&F5PG`u$p`IN`P| z69A0o1j8h8?f%VFbBr9HwyWn2r{g}j&*&oZFeuDp{kK{Tm_wqwQx9hnPU2n{>&H0? z^!R8$4?>z{sIrtI|4F-Ni+PsmC(e$iF3M*vNy>4ZZ>Z*u#;lmb0a{q@K9YduQ6O7QE#@)m z(%UpEL&*@=dT)Jh-3(DHnsUQX1g4HwRqFrkTxY(Wxb8P4ujOPvZ>o-JFOGyF=Kw;- zry3<}8`GMiTDkLBJss^{J@$&axE>3E#{*qpNs|K^(Cs!!G)Q?l7eJN;;(r+?Q@8-a{_zm+xs{bh;n#`I(Jo`6FB;>#-ROQ#WoOe+7UZ+2_ViikV2*Sg@wnrap%$_6%V)!A8wTPoQI)QmPr}~hd`rD1~ zgSCh4nvj}ghY$`Uhvgammh-t9zx^&L0l!N)d$}&ZGk0QMFz?@0{d#~m+Wh-CB-t?- zQ-rW`zqwoEy5>W>mr!Zi>k@HMcdM-&aDA(6pVJig6Zb9hukDTaIf_`Zy()i&zUf?t z9U-T$u||pKKe{dZ1zE(3nXA8;mrpNgxybI>jW#RNcgv13CQc?g)AYK{DqC*?kCQQV ze9f!cpNxrs)x?;S+{Bma@oW1v;MNGIJZhdH2NXhH$@lwc3nR0}Dz2)(RQ_zs9j`u~ z5ASreEg9Qpt9WQ1JoG5a82<)c@!@PmNSnR9FuUWLqV08zAIg^PppR?q$VtT=f9~zr(GkZBIcZ!1_Ku>lCbPHQda)1ZVaIyYdS?7GCE8Ex&QHis zYFj*tRlI7z%h}F#6luXFHiz7pWUV=qA*WA$R+2=kh6Qx^hF)vQEV)1P78MP|vH-nH z;^3>s23+qr8p7m&TJO1Zo9)iMTBE_VQX16$_B{TU!Og?NHc(qrvmf)iA7i%B9o+B- zwi?{OdstGGHC5hYJxP5aszm0899#Kkl0(Wxd7h5ua&n^&a&=y;T{Vp~jqmFPfBMqW zRXXQ-7GLv|TxkhS-r4I7Di?1?Q`~Y35n;Y8z8WlbZcf7Mv52c>b~;;{@72@Pe$owX z9n;E2`PAN(iFUS#Nj-7@E*Ca->(d4$UD$D+`!SUokU<-5b;q-eb_(a%fvLDE0ZzdR z>r5+T0Xa>&KcSaiD{00-u{LpwEJuOw_cAwJ>Gbx86JzwVtc!L(eU6RnfFAFCBsgPq z)9)!h`uhVz>t4yN7zqgpZ5HD5=g%rSI$wc3g$dc&j2m4>uv(Qsy_)-qXYBz68ClnN zPFV8Q)c4jjt(tcdZR4T4)(@?Hpi4_#9Y;ACE$vUc<%||OpM8{EJ)9?2@64}22B`6c z-^PK339qjL0#c@otPW>^YmT2#U{*3!LI@Y8*ZtXh(_mHdgzmp@zvd4El`;%Dd-^9>0G~TWv)Z)dSd3xI^!$`|=qrTcZ@lpa z{pwf0;xKzR1tQp-V^KX50(v`)Tl!#c1Q0eCd99$t!Cb7YtfUnyR@kc3i;L1Y1erD0 z?H`#S@ZDbap3delPsv2bq=-+h|L76j%-fskHK{t5z-5HPMY14GkBx^6bkA>9i?-A;F%S)Sw3JXEau zJi&t9%iY7wb0;{oVr+cHstvoIUsO{`x2{`BSK7M?Aw-Qd$hoD@UTDxFl^_>%EY!y7 zE|4G7j8aoLry_fdrLmyfNU;Cu?&+g%{~!OamUA=k{0pzYPyf%Kev{L6goZI4=KP$` z|LPrj{*`xVc=V=`6xjZo?;YUleqW2M5?G(zzhjOf1x9nv&3#v-KEv4nQ32vX;F)+| zfG>epUA}x-i&Ox^D15+^z)$hljBq_XhVel?fqO@k$9Y89G7>yTv7WagC}Z^c5#a#} zVXUvp%gZ^0e0IdX>2;(3>(;H)e@6U^u-%InFV^~oc0m{e477y=0UZG&kF}dDXV0EJ z^!)SB2R)C|mE}ObydYm~o!`hjw|j7cirAAhPOmB*dfWa*1g~4z02yg94jefV(oc9G zBMQmD;4r0g+6yzfSl`IeOb%0bZ(q>q46b|0!YVcp+d$8-=XI>4?^!RiGCEMv{VIEM zKm4hkY&3oc73AGCLW5!)A;SOLcfZekI+)MD@Y-+aZ~pK9N(&cMIBu^3{Rq~C4PBwU z$qZZ7^`_aia!e3NBm&l}tVH%s+MaU=q%y~cH)tw{P#K>Hwx%*0EJCbQ<)x9A!x;++ z0(M0Jq2^&-X+;PvlkQEWlB`g{ht;*od>(?z_uhMtkf$$@AS^&`EQC*#5Z!^u$oJVo zVE_L8^xSjLX~HP92_eyf1q%pabnQamq3#>Gv#j1ySNg{3V#f%rt4uCMH15@-yLWN! ztD|J5h@Rx=EcJ~|tcWg*S&-b_b2GP}+1yA^Ph$&x^JRHo{~(74KNX^cMm@-Ni9BFm zc=Z0DY7ZSdP2KFB1wmyXL8yCy1q$^X7IoF~MS-Ur^Br>(bJdC<4#(WbGmuCEf6`N4 zzylOvIKz29%~n6*HS@Ed{Y>MnDs4iT`O9DaQj13N?Qefu3#Tl~Xcgq7j1v&RGy2Xu z@6d}cz8KV9tTVT5+eU{D9a3IrBE3a^I*h32O@(I;sx;sS?4C}x4r-~W0uCp|*E_b~ zLLVJGZmNiex%vnjU7fqwKxJfL1O_=`|M{wOS^XMil~f+q69{$@4ovkojZ4q(3Y+| zfpQrs2Uf3MO<(xJ7bq<)c%B3`7{w3t4N7+?q!G15Cl#f+URM4J0*OLEm*v0{I*>50 zckI}q@mLsi822oJWy5`kBD#t_L-7uR@k}Jby9_)xH{C@Zj?|efRG6PjpT2jysUjK} zASCw5GZ#43l({ke&tH6tTG~27;99+WA>F%cGryarCpXadtonOYZwN~A^OqXwNZlE_ zYsV)2FsHH_)Aq$iB{T|PUkrX*T~Qh~ddXBpHv7WErQ^+mN<0^a*5w?MKG$z9JFwZ% zq&tE@5CSr5gW!-Kvw=VwdxS12^if@Ns0FmK{ko<>+OZ^u7172s@>>wF4+2LN!rr2{ z1?g_8W2 zjz>GjI^e}|@!~}~bLNaD{6e0&EnBu|3NB;WRNkP2=YG=AZ)q^o(mSSwHd|L2K3t`- z{<-oS9$M>GE~5R1PG}xD#&KP`+`?h4t7B3`V`B|PGTvooX4ZU7whz0EUIF(?eh`DM-F#f{a$1{*9f`aQ$|MX97mGT1b5AaPG zctuN43P4%+&_fStxh$i-Udjssc0>S%7BCjk3CbN9mSLS)R8%w-`9wb->93nZJ{M$g z-aZy|TjjBb5$n;$pX8bq3)u^6kXqP#*+^sK6Pj0aw2EjLZoTlz9@_iy5$1E| zp1hh+{+`>6O=`cfhU@AH<*9n%E;cGNv_O-)m20QBSfU)*Oi zk7%r|p%@ECPy!=r0{UoX1dV%*Ju5svFI>1l-}=_K;>Igcx1QDj{euz@hHXNEfZY)= zljYRZ)X-PI`c=(<8|!2|Te0q;(>P}xUt>QQzH&aA^a^xf(tUJxTIyik*er`71%F)C&u(x%4=S|}n)5BH93m z{G53N+-!ZeqRg+Ph(6smL<7SUldLRd6djzh>$R#v9mH*B;aT)Jp&uZ4=`X-nyC%%c=saoB9s6Il)TsaO7dHR5Mg|8_kX7kKm1U+BCLu3?(hDNe&=_7hiA9HmkWjT;9FXbHdDvD_E+@Y~a%J5F#aAr1e zk5?Nm-uqQml!jGABRsZ|5GCxX=U*r6fsM3r?Q+5=()-eQO}O6?_pBT(%*}GZK*Ihu z;=UOC)`4QeQQqSoy&QTU0>`d@M=A`zXPQh`uT1_50<(;OD57T>aA}S>^yGY6UaA(h z6yY#WaQKuA&J&$%iv^i0&OqQed-jiwvsa`-cMI7=BHoHOA9X)uZLoV z&={KoD5$Ecs%XucHFW2lcZP%mMObTuNkYgZYp!$BLbg)s6bzj##(6=poA|3;4Lob2#k=&77{(C-U> zKj8UmB$PKhj&hji@emvs+nkNxn46fRD#l-!^Q!C3+334n+CW%vU4aZC_T6{it?^i- z6aXK_2k%AjXM`8UIskbnb-_E%K^Td3gce4%43}wsMv+U13aOO>p!e7@4x?ks;sQE9FV@w#CjHaWc9q$ zs1xhVB}gLj#o){bEbkip@P!%;ZC3dLu*e8s3M+;!pFN%Zj{_J+Q|X)s2^ zDA$esTT#aRBh32ASk~+}-VIpee*E#rQ>XE~LJ{}igAWqCC-JVqT6pi?y_&Kb&pHTy zk>9<#x|&K#O0;7zl0o_=Tm!`!*7-=MqZ5>3c;*8M&;0i7+k^JKf#>mE=Y#l;{V3Ym zuwes!YKEd{Lsu4~ER@Fw4<4K$s~}#%dsaHaxMbkukh;Mw{M>|w*&dB zzE*=AXZiBwbl-jVg~)L*a`4!n{`9BXa{yz1%oUx&$#SsQedLixEM+-(pThVM&!th0 zgD~;6wY8cY2Wx;xN@-n|1D=jK8*f<-!gDVz@zJl2hDO)WvC#jH@H_2H>kx-DcClPK zbpNE6n`?hl_Kj@^(pFWKm(cn(ODR7uK87%n_pG7(6Z|yV zeR0@<+vEh+Fef=I_b{&sRR}U=KRfFQ2?9<;KorqVylW2cGpuDxvprOt>7mxX$lgWR zMjomkpk>8=QA9iZzR%U}e|)juG9L}bp1})+(kz7PW5HCM=;+a-nr9^PXkh~%xH(1> z*qCEO0|ndZ)2FrEj$ixQ*ECOLy$k2hpP%xeHVSU=J8(0jUxQF*_(W1fqc7N8egFI4 z*Fp$mV`S_fHb?N_hT!mXpZlB^ZW{svBk6(&Y?>0CSJT)x`R!~3Fvp=_`IA5Sld1WM zdG=R-^;fnT7@iXd*r9;Nvw~;I_^euWwwUwMBR740*GRxdicnpf@m*0G!PM@!znqS6ywQ6ZCA;*?6-(+AppU+E+YR&UmqTH(GwSmR8 z?a0~Klt{|Z2Sk>2=;5~u-M_*@REr)d`6eVB$ z;ukfgFEGHm59>@l>~-L^IFH|E;ccrAXgAwY+hGYl(? za~=JF038OA5T?gtoteeq5=&SSoyIxphdFXmBpPR<>w_GMF&P!nxmlT%?l(71zshrC zc+gxC-Q3z4HVn2I)^6s7w{KZTcXKYwm5Xa5=Cg#be)-aBvudE(yUe)FZ5Uecapw1MYv-MV#zeJhk! z;78y~FrGr>4j7m~`G$Qi-Xk!Sfl)U0kuX4kVHK2Q)vTPx9vSZlT@j6XV0?mif|2kp zzedyOdcV*|j1|T+Le4}$ zm*arnVLfG(lVDUZ)`A@8`sKXgS-8s++2)Wwk;A`u`u!r{5sRb{XuI(Za% zc&8R{IPGvWXi!8W&Bb%C?xDWHn@%dY7W{PM+GVt1^-`sGWw`bNk4M_G78T^uf~wNM z;@bW;(!Ln{Hf6rE?k)10V=ZWSgoDPd|H$;FQhAP-yh#|nPRBt0IvW9VX`8dhB)xY4 z0$41ptqfH-nRWdnTdX0+7QdT?1OZziFv!;8b!@qYd>&R*lIOfe9L;+GULWYzaGbp9|-XxS^eW$^a-KJ&YnH1 zZNiP47nDK0u(XABJA?@zeDDDdn-VtM@emH0RxSsV76Hsb2#N4~U_*@$ye8~IM~)n! zfBUz8qkrd6fDkm82^m!SiuVq9u18_RGQjV(vmAxWGL`qI3dOLGZ*^>e$athj)Doa@WapX$mI`r79| zO}DHG^@ypds?g3YsjZ}}3_tn294fXjmu}y>o*uaKHYzPDG;Pby2QeoxH!(-82y-2C zemXoC&l?n7;GOVTK}cdVUS`#onL3a66$F#$9|VS~eFHy*Ckyh*!|=vTF{k$#WfATa zLj6EOd%D+G;BomrcMvdJXX3qPM*2DvMpN*h$Fl;${J}aC*M+-QKNt8H@7hS-Rj3>5 z%qO0B!g8Gn1$AR%qqfe3Ks_AAbDarRQo_ck_*fD45C`k~wUiiEW#`;^02PLC#^o`` z5BD@08XKRay&oN;|L=#-&~v|f$282SULO=DOKKO;H^2HQRhAY}Ivaw4f0mXM(B~hy zm$u%r##E7we3|#(v4uYS&|Oqgn5Xe+T)VKQoWA&5_tUzS%k(B}{}*$zYj9li)K}^3 z`pWcac^2YXMmTPSBnIJGgfjUnU-^orc*gqx$3VD0*n=W67nH#IdjfL;o}n;0(FtY2 z-|*4P>E}?NelGB@-i}_*>@T7}eE##F*P=k+{ieUKz$c-I-n@D9)Ma=#Mtbi|6^!r& z`;zzHe_!MCdNFvIB7Fe<3ONsfmtTH)N{)k6DUsH1IEVF~F2{kFeIV(PX`3i07oT^ISv*zV+${;o%d*JTd zm?u{UUE*ScA?%BP_lplxIj8u*z8HMEth7+u`)*pdn&+CcR9)EPVlAjbiwe^yGtF6w zc9n5SndCvh+*KlZ#xEmH5CZU2SzVq%uhn%~_5k?+PqW~0L4l95o>}FW1KMO%8!F!g5212!Vi38#iv8@@&zMAv_vFWJe-wL|~<^Q(<8tA%88b z+M#%cmkshxg0R6tzhKD@FKgsP5)uTG9RXOsKlj{oTByH31vI=t5T*@YW`Uvft?&ZR zedkmU=f#R#68lXEAkT6L?z-zP&9f7N#zO9_36S=^jT=`BA~A`;Yp4fJJ3LreAP-sE1rJvW=nc%Ak^@}z0Oj8L*|H231jUy2cg9cbpdaP-H zHdJLsDmv%RVIF`#MN4TcbdHYLyPDseKi+r8Huj?4 zaD(6SJC=_@;RAuU8DZWos;OebvJ#C~Ul-nA=hJCyOy(q^_!V{lICq5&G!;XH!m|+g z#7f|m$B!SM;xFK}crPGYM>s+m7*in%gT59Qda8jAU5AZ4ce zXxD8UY59_xz{Au2uJ2iIUB8Oghu70<;2ChcQ(3`m&Ofm)e&C+l>5khs-r&<5NrU$( zSRZ&`MYK(C%v|pl_A0dnX_U`liaQ1@ zq~Z+55e`$ar6x-h(Q|!bIBb0Ho$gTz%k6ikP+abutMr!@~^_r)ru1v>R;607JlcI=LMOMnqWdvZH0Rf$4Q^8?Dei{{Vo_bh-TSal`<N^oerZUg6qzU%f)Ve?}e%kzGm1>g{ZdyS{U{`Rs05udq2n3I^B zRs?}K<~rtlGz3BTi!Z*Y34QV0;W^UNKlv|ydgqnn-O>&wN97i;-h^>rqUEwIkqwQHA_uNCXe zM<0Du8#v}Z@}=r?7xQTM?%g5J5aw1ia~JDO7;>OKtTRzRj5Cp&8f~Jl7#9Te@MfG1 zMRb0;i$f=RI1DV|6Z+rU&sE-XDjNV&;*JJ$=Rh1xXq(Ax6~{-zV&FHp!q5fO=ud1URTxDGu1)mL8)TJOU!3}L}xz$WA@ z1a$t2btJxnVAus7200E48T7e@bP)&vZDd?Gq^_R+5Po{+_FHMuf{Lhlqh4>MztQel z!5%bE=rG1%k=nA`xe3-pe|Q0gpVmFg@XputC_a`i3kd>FMLmgcxQ zZw-5(#bN5gDi*?TU5E!yC2S60)e6B{;HDiL40uQ1amO86erSXS!$tv{bZlafml+!o z2<|}m8+bjwYu5ia&TECD{10uwJ4=nboJ zc-TW(3jvTGrp)Tv**FhR4JepEuyTjjq6*>J1mQV`K?$Ct>gsCEGqJwDKImChsSgpV z)>QbZf!|$LVYi1kJk*7D#&&i!Q1Ng7_HVWKT)6&0I0ywg z1cOgL`6PYg8{g18OU>$w<`}|2;yoMKZ+M;R!qRB!lCt(k0Logkbtb~#28Myf8WH>n ze9df~2~RF4ppEOyKmbub=qLCl)|m(yiunt|T0#FFsor>; zgFy^(_?5C(^hFD=XedvQH4bpZhcU|aJIj-2I#@x_JrG6_J#XH84*eON5iIY5Tfg(U z&>~5EWSG74>pO;--g|ziXPZ8SpeH&~(D@y?gg+p@{WkW`D814t$=$m$AnM zuL|7Hnq3>~F}z!>c%Qy^)*~{YE%Y^7MKp}Vv0umgSm(cZ=fTJZDKlnjjIm-P*I6T= z%W?F1i}{48A-COjTZkM7yi=FsAU(__UfW?F;96adgBAmMETZHD&I^41|Ji%bD7mid zTyO*E9IA6h2cVHNKtzHhKvE1MX-cF>B}=AlNhABMk!_9Fc-Hfpwd8-Z-oIJ%!+v`5 zlWaXJm=r}(6vYIBNCZF-M9!%j4Rp>qH|P6K^MbdlE8OY|U14vsP}NoEo_p?h&prF> zY|Tgiqnq7=dYruoUZ4@$PSoSjm`=TorMsaX$DRSm-ab;F(^62Dr!rd(UH5KqwZ?LV znpM)FCz)hxs%q~MiGck1k?~6o%banMnwUA6Vj(RF+@*d z({;IdSXP&z#w9$=l@x*bM&RT6en-*J9A`Pxa-%+UD2OS@C}dbf#URrcx*MUb-zk7l zc%TQjRilc^Y6=hGBns&is+d~MlY)`IQ;?=WW(hDOpDLwmC+1V`dp5UhG?erqxZXAsqfw=GZ8Sti|1o|MwJC?U|)w++wWfLh9TPh zY%~7`%axwtaYV!nCX^w%t*y&zL^KuROoQ!<1_y`bwYLt)v5(JtO@Ee`n=RjZ@hPdP zESoVeef6uqiJ6O>lboCWhz^UK>rRPjFKJY^8==X!$Y1H?#r4GEn~dgUL^6pyi@fyk z;luLWbI;v79V0H8(SQbPt_4&eTA2;lhz2ruhZHKPxn6lADj&JlS;}ZeLh(E_2y@&# zhn1d`V`Xh?DzEu_uu)U?=o)K$jMU+JrWAh&@P2#RXL{pT<|#j=bf( z%5iyK$N5`c&g{|)Tp#nf$Eq%u<+YWl2mOJxb$E7o9~~W+vzKp3I~>r83cRO)o-b_X z>%7f9V{)fwRK~qH(z%aoYt8KY;NHg9-!wW~sjIDa+|P3lZDshfzIT7;b8JO^@;4sG z{`kGWW8M1-<=>PU$RD}hSi~^}Lfl)>ndi)zGxwb1xaO6Wl^OZLi7XPx`Lu0h5U}(( z)?SYLOh(xI)8o)sO+⩔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

&fi?_v}*m#>xS5M{chWBlX4 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 GJp3;jwqDKv literal 0 HcmV?d00001 From fa5dbf9c46acb69d0b82c3aecb0bf0ca67d9da7c Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 20 Jul 2019 18:02:01 -0400 Subject: [PATCH 114/154] add text and figure to get-started. --- README.md | 12 +++++++----- extras/ietf105/topo-test_gtp4.png | Bin 0 -> 116297 bytes extras/ietf105/topo-test_gtp6.png | Bin 0 -> 128914 bytes 3 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 extras/ietf105/topo-test_gtp4.png create mode 100644 extras/ietf105/topo-test_gtp6.png diff --git a/README.md b/README.md index e4af54f1c203..e9d9cce70071 100644 --- a/README.md +++ b/README.md @@ -59,11 +59,12 @@ Let's try following command to instantiate a topology: $ ./runner.py infra start ``` -This test method instantiates 4 VPP containers with following topology: +This command instantiates 4 VPP containers with following topology: ![Topology Diagram](extras/ietf105/topo-init.png) -The packet-generator C1::2 generate an ICMP IPv6 packet and send it out to B1::2. VPP1 +You can check the instantiated docker instances with "docker ps". + ``` $ docker ps @@ -93,6 +94,8 @@ vpp# ### Test Scenarios #### SRv6 Drop-in for GTP-U/UDP/IPv4 +![Topology Diagram](extras/ietf105/topo-test_gtp4.png) + IPv4 payload over GTP-U: ``` @@ -107,6 +110,8 @@ $ ./runner.py test tmap_ipv6 #### SRv6 Drop-in for GTP-U/UDP/IPv6 +![Topology Diagram](extras/ietf105/topo-test_gtp6.png) + IPv4 payload over GTP-U: ``` @@ -135,6 +140,3 @@ $ ./runner.py test gtp6_ipv6 ## More information TBD - -## Test Framework -TBD diff --git a/extras/ietf105/topo-test_gtp4.png b/extras/ietf105/topo-test_gtp4.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7124f34f071a6ec5c5da8afaf9f4bdca5cfc4c GIT binary patch literal 116297 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

EsJ16Ie*Sn?)(Nv=R_96}2g@eu={fOi zse7%YI@C?ioH=D_+4<v{xq_BAElfjP}wk5yMYy=OW)OgwH{6_Tp|c| zcFhSws5d6X1Z>h*ei~AJhWHMDO1hU7-;MTyp6_!!4BP`H6#(JBjCsI;gK0u_@Wb9I zj5}Drw6ZVkMc!isbG8dP+arRBvJm>>M~%e8j@oG`^}S@!)7`2_&&_9~5v{Gpl9&Pa z)p_IHeEBbm@1obeRHyjYegYo;eOSIG^`u697dbY!kVrhDN8F!X$a*^AJ8| z|1xChi|!ug&93zg9`1R>CetdDrrw!*SeJ061jMMIAH59eB?j$=k`ja@MtxdGa`)1fioIU`1 zayX3-7AEd$Nymk-RKS(^D3)^qt z_fw(@iN6$ecD#nMhgk;exB!>x=74C-srnstk{l(if(s0l>g=Snbvll~M8+`UNV|;2 zLj>w_f8{2RrI9^gkoP1=OA)h{0+|oxzi^f4_b0zh3N*5g{gRJ=GciWx3FEkrIR41% z=VIjP8HG7Tc<=_UoZ_3FoqhQ(-iNMrK)~~Z-$oYBQtjj2We2=W`hdyS9 zTFMvP4|sPzUQ{o?vAMb&r}Y%ouhe&mm%e5^7@go>OH_B@=A1s?F9cqVaf1~GSz+Jo zzedX@?$NU2vyReQ_72UE#!n-@zVqB|J@=O~bBrH4^Q{cpYWq{{eaR^#5Iv?vz)0j6 ziV>FfEAY2B`d;(h)!vb%>@^LVi+xTH`CypLR*|iT45d`?)8-Hqr@%`2hnMwYCw1ba zX>#OP;yKa-#VU5=*Oj6Vly0j_zUA}I-5dWN_M z(YC=EDJVitna?TwMUg-KFn5-P!Jx*}BJ-oPT7V#f#b+ZRu(qLD*qmzC+8y=N`1aWq zpuHaL9e)8?WfVkXYCwfDn~rr5OEK0OeV#Z>66bv`0>sZo=!e-5N=<+WwX} zcm1N8D_k0C=x-Q7bC^;2ZC>`F6Gbyoa+$FO6QXs+s*gLr;;Y#pufuUE|TCx8>vY$!7|^ zvp(ivhUOK3w|+SaYjO>clNivm>eI73r^b;4r6s4+)d4(@p;xo5z<0#?Y~BZAg!4`t ztHT7LSfYbA?Oh?^i94jUo<7}Z=-K4eCUkRLol7S}_^`pTw(I18W~&khz4^3+c~?Te zhpYy-Rpw7l``p(^K^-4_m&LqS*68}jN~gx(RJSu9+1~m_{)x=dleJ0`y;)LB6E6yZ zYnhVt)6vP1_G?Fd8dFxA0`jF;kl8&Jx|6LL4FEZJu9C>aGTdlK+*~M}9@@;^qLcmE zQV6U7P%ds>W$|wA2yuxbeRQxEK|lB4<0WJ)a1_`X*BuIsFB(E1O7f^I4VuL;T!gro z6++jB*X%cHQVE(6{PMY(Hd}3ad@y2y4eg5hi)nx3w3VtwDP>a z#}@~YQqc8|?K0s3F*~GW1d6;|(j7s!Mn@tZ+OPS0(0FOT^0DD3kf4LV|-|imiB-~dS*K!bYK){=L4p6#i?yHcg z^>{umFtPiigry}00~ykx!hs6gpS!&9t&Re*6M4DNIqxw(NtJT zgNTk3UB81LAmxLBLj?IKzMnd{jYkA? z@234~Wv^}3P$a{m#KCGK&rOFzKoAx0J+J47bi^%j5Ruyvcndx4Ju@QoU45e=UazEh z$%f@I;ZcE&H)1|Uk1WNjwyN^L2^9Mf4jn$W8$s7v#J*CRC z;M>Qi64sbES@C$i3}GyEv;}y3Q!Y`j(|KKuHfW~>7CQ%J&mf^L@L^V$I@+~uWHgnz75S1?4JnK;iH2>KSZY ze-%1+^|a$`x%)?yRLsqmfPQ&9uE(RQ1hyJ{`&~(T3`la~^8IuoyCdte17}b^-j05< zuoSG@|F<4+4Z{PVoj_HcI#dB-!jGM)KZ{7CskudXc`$}E1l2$>RGiOkkfZlvH~_@% z@xrB-VVe(kSFIbr&q16~#YS0ttIGtV+)0!JGRspc@{+pr646#~;81qwj%s0a>TiK2 z(Zp|us75eRgCh$40>|e*{avy336rA@*OWpB@E)tJ`OL$X0?tONP+^FL z2N{1n%{iY5WKB}Jkjr0&SgUByto>SCNsOpQBq^4XMxx)$Ut^(Y2#%O74zlBT=S8J6 zWby@~)vWjOZ`W7ySNGTUyQ4#+3DdowN@=$`;aO3BEg%gOo-)X99-qv>!xoHlt)O~y zXm5Q$cU-x+bW*lw`j2L)>;zhH-B_5Un$+4(NsiaWQ^5Jzb527SZXnVx95uS`%Q|5z zoSj2s_A5^u<`%euFFQbRW~~-C{kcTE?3o#O*T z!M6(!ZX-!=054rX6|85j_QjC1zOhzw0;BO3qiL}JqjQlG*YL29Bs7juK}-w0$hLw4c6{U0IZyg3KwnDo6`&^VrjLn)RAj4vM!a1b1LfGFwca z%E#vqid_HuTh{GikMP(`0z1~Q%xu7+yy663MFY9o3+CP>l{@yKV)qj}? z%?0eT_L&qkFkUhH$=*YtT*8pMU^)aL`jclCE*L~S$gM!!c@5UzElrvp5Q*I>ug83; znm)l2Z;CJ0DSu<7s%l-p73~$Pq4t*F^IWDcaI2^ZHcH<3L0@w-V#H zjm{Jw^E}EqpywrO6a^4`qVMF;>XnV?d3%_m{?;o#6rui)PVgt<1u{}YC9bxHTdeuw z*Kwilx}JQx&-gef!mo#;i@%&2%=^_V(mVcb0WfxuWr@+`nH;M4*K`V_gg`8K8JI8f zztH_=^N@QF*4lFrt<=T*4)u^rISVmcp`bOA8&YpucA$lkkbjarC~D z>81Ywea-)}5ckb~?NWoE#ZuwD zvf{=pF7Jp-Ws&~`YUmfWy?uN75xt*(IdNvTp$wI3^YX-GPPQsq%MMxQn$zLN1by!b z{ah#lQVJUQ0vY@)T3=niLre%^&hC+bj)$uXe(CG7F1~ zU+>fu$l^6x`xQExdgn?l+K=-1WFy8Htwy)&XZh#<)uI46Z+_oQktfw155-Seflc}J zWbgwlk3xFfq_l9gvXO;LK#4cIzoz2rG%OA8u{s?`dpwFqN~pd3HoT|LivECN;XI;! zZvaOHC)#>^fqR!?Dpk}DT^Lb`{o{$Y>4-oGvcw+e0XUNeL2l%WX3r`e9t#33Fg)l{ z&8;>*_v7m9yjmgMBfaRC?U=LYKSjTTN?&b=-iD$v4T{22%*G5X4No4k3U9-Ph=*+x ziAlX7WYylbgW2!$343`|st@7bCjFwSS)O5=jVpE@rKdw-o=gKf+H7rI@ZYyMchR=z zXy{X2)zFwxzYxkul=#%f zPn{25ki(We^V!F!8MuO{z=A7Xrs;3y>eNI$sFFp){G{_>`Cmi78%I69wv!JB4h6Gw zQIX?ivn)^?0mp<6;z%79R{36W-KoZ=TZncqU4vKX{!<&788~Y~SX9hrkjKDqJorRc%@k3P~|7ujiQx@LcYl?i@ z{{k#7pTb8gpT*r-iHL9ezTm5e%^_G)Ce3-DRqACTQ{2OD>VJpgyT7AnB!k!#fd)?E zFy&W^VyLZ)ske@N{7_?9j%b#VDi~cEGqb}|i|G+qjvpH`z`!|UVPfEesBrEl0;YR+)a(EFkd+;5T55ZX5#>1$w`wMX|@#o2V*6sJ$#Y?DDIDd`G23YX9b5)tI z%s7>YG5HVjFE1Gja4mfwXMeFvn;=sL5t7i#Ui?5ITwtI=)TB@l3bJGrWQ&u=X**_w zM*sNngGn)Fch|l|^!<+1fy8c!pSe3#+Sd4!_0jXR&}WOqvEWB{px1sXV&mdL!(2r#wU9+^r}^TCIt+&__EI>2<{_9&z(T_FuP1>4{EmRYU;! z;OU~P3%L4Gz;gH^xjk?<#nb*X#Br3rvSQIqJ64e9rcpJEEn%*~>)pe9(JR(;adEw* zqS^uKqnPg8r@q#`r{K#K6y@l>mMhU0Og73gXlQ1!e0ZdipYa%E;_y`_@{t*pk{QwG zXU{qsF6JHlA7+CZ^=22`Vt?62DDbkzn@8iKAf^Opc;iCer$-LH>dIa{sLI~m-A&6L z=bH-kKgMeLT}l3^%6r+DZm7t>t+XGC-@Tk5+%tv~O+CU2{p`TiJkcnfR4 zEXJu8yQR86O`+CKb1rBld|=dr1;J9L-b|t!oxnd0eKJJ-7xm)kywPcK6H%Y=so))K zBd&9T-}aX&!ij2!oX)d^=;_kSa__M_^$YGNhrDkWx%TZJ_enKVC3MS^B!0WA7w+pg zJBkh~(68eHyP6J{hqsqjF}5@8 z?&Ks&a47$#eC>3v>ji}&fKx7eNrN>Cn$rH~D*lKGGQl?;I~6bcv5@vN^HE3OaU75J zr!TzVrZeR&Vd`wVcmWmHHNno!Wtdn`X<)A1;jbMgV^!aG4KKrfz}e+JT{U97S#x;| z0)pWy>SrlB*l5*8;9MJ6MTWP=`=4Pp!O}O3_oKj+cnWnN@BWfZuqyLAA3yIq6G-lZ zC+3Tf3CBaz)0POJv(4rSk9HLp_Yk`pSCZxNo^_BcX~gPybDDf?6{h781gTR@_t-bd zuPzkU=LIT(HPKhp^C1xZ#!t)kQg&x;@nqv{0`1=2hlZ#e$ZwH;O19zFK+k+=9rhY9 zFfCA3vxKdrx_Mv8)wtdrG~viccbSP=E;itWNoM)Iq!e1*B>$2MyU9G!k0%Z9UBn3G zp$*f@%wpsF$+u}+6t?aC>f?@R@^PywV1U#8G~nCP3Q|7F(_HX_9syd0JICeT?rx+Y z_u`oN-7m+Lwt1tze*sg)DqutrUFZB%hw+CTDZBd_?7|5;Mq%aV7M%EaED(I$jqcAm z?s3(i(f;KU^lCo3c4FT(Ek1`RhY`taM95xI?lle+ZW<`(bs%Din#|&f+g0rFc;;(0RiHy4Y+`JPphjK9 zpRl;yhNQrTCkMekL1}6J-(KUaf!^za6O$}U=NuE(V-CwBW^3Udp-TeXrZ=#zH-gJf z^G-h{Me(}2w)-U>Yc;NqD@_{glb)*|lt~7VZ>!qe-6;3qvPcO7yS?AnN3RzhOS(WVmZ2~nG^diC$-Qn)#DxPN}F)6jV-XYh&-(+pN~9|IF%$3xh# z6cP-vlVNtZeHq_Up#Uy!K`m?6>K~v0L4#?B$zvrQ(Wb^ma;i?NyKpAW@B+*)t7AEQ z^uN-lY{rJTb5=RRqqF&6(-eCaOz*8I%)O^R@iDD4j|*d3VIbYHGn>QNR8{qhuOjBP z>L27PP$&tyh6NehAcl2+v5ldNJGMK9%1ce|CzQ^gahgDWBApnDD>0y`~k7&?Z)TJB)qO&zH`I zA-;?24jvSK$`pY3TU2zl)$~r!SDiJz%_0`Rn=}NgVWoG)_+2wLjA!aETg;W4JRUEz zm-E~BujW~RZrrW^@{q)De&`2loN z9hwvB1%X)3WI?_kqN3zIdB&mc?;a8D5?1&ax@Iaa?fR(55$4h7_s zazs-$>O7yW2kG3ry!R#nC$d1-e_w0)O%Mz-JYoGK=;OM5HI)(S|0C+H!F&|pDBay%(#;5|kt5%EKfmXB{~S9Gj&0vhoYxuG#o*@T z-de1gvn?awh&xwNjNuzT)I*YIKklh*AC*cd$)Cp=W1o)NYzE zqT7SuUZLJT^vxHC3Ia3uNstiZ=IhHHcbEMSYbeZTlK8KM=exzo&_yLat+IHIYXiuK z86vGDivhDra0gGy^G8ikO^ZXGAoPhSZ-*}5N;sL&m?70%9Bt?%kd@U4JNtF-jFPRhSjatYggdfZ$>n;4x` zm-(8btW7zhP`nK|Q$AP{QErKdnorA%G$v+U-W7f_i;rqb=q`%@;e>>e7zYRE##@J( z5b3NSasq46TSMYH#$0{Ja(pt&;`C<-SS8S` zJ2JtyGxA_cjoQUk*{L=7;sZ6h33HA9f(-w0hYU#!Ww>{@^+3XV$VeM+aFp3o=nvu# zfi!tP%JAM}it&f@VCE}j3U1JK{o-iT-ivFyi!U+cF+A3f-TFus;&aw6n_^4n-87wi z^-dO$2v!_U`X~Y{Yudb!_amj*FQO-Xw_IN}Mv3VUe<3LDq$G#3F$TQ?k6DU5E(0YG zzTbT{Qs>J*M?8<%eB#jEWV|mj^8Dr@?J5_ItC4PTDWAeJ#5QwT%{_WH~ z$6{3&2SLFJ%^~O{)##o>Fg&Fmcn=vsJZJyO;2{L{TIMkS7IC=~tX(iY6xq>fSRlJ? zUlSEUN51NQnu@`FI`EFHOOfkZW{5FH|myfzO6H`CJCx z)M(R!%$(>Op#3CmKfhJsM?3JI-=*#{-Qaj$&Jki+m$Ryw7l+?@u*r_(ghXP{s$Gemi5FN30Vu!T+pJjPA}5yfdWc z?+wc)bWY6j7V?_3u(TXo>bz~}Ic~HcqMT-gXZs^syEHrdt(t0xtd~+GKdY_Mh#)5Z z+;{0nYQi?giZM&&kR>Cb%5eD70R1CQO!7?z__40UNb9{!x$5_VLSfhI-v@USiO*yt zOKc|#<&~uNf*&q9^aYh&91)@cy*?x@VMAkw6$}y@r5E42ej+F!v1Ye9bbQgW{&OGk zCD3ed!9bcgkLJd;obsrAF+|Kd=wPtjwC}5K2}t2ru{4Icf?}}VOApmlnvb~OTGv>) z=j;8T8)W*Kh+Eq9?&n?g#o^`oe|!5SN*wwfP&O^1E*A!5`V z#VxZg{7ztZ;5)><5|QUJS^J(0i~Z4L$N(#FrqU9jT*#C13aLG&Bbd@Hkl`x|$L?bk z*s45o)zOez#P^zjyHE{Sc5dAgN-XTT7mUQ|tJ9Z_9hA0&{vsw3`96cOLkDWd^l=az z1WP!193>$+H$lc42wD6_3!Q|taLT3ScNQW7-Afp9BT=sQ8lz9l*KfwSf@HJ--%5Hv zpz%Gm8ToeOE3=35M3c@IZnnd`DI@==e*^`*sJ9ykin+`M zaakustg*Y>***2?@zP^F9h6;+acE|x?)B4}wavxu6`Ey(4Pb4fo@u$(m4B+z<+SP0 zBQDJO80wZmza4}m4&sds>Q$!_X|u)? z%+a`MhwveGxqn;@H8RxPRoZuimJfHypR_bf_M20f7Xd3xqIHnx#l32WHygfz2; z!FKd29WP@Sakv!;{upc^-*YA=b)e%*C>qh8OU`2!5D|`Vd)>1>V(HfTk4`^S4w_OaM0*+T?TN84qY7YOsKx2iW8G%w z5kc(wb=jUk6{n|QIJ9L$Vg@4ncc>SgU)W=KJ-ux*KJJ0#;u#!O8pjt@GR)^pF;3GG zv(4Mr*}svC@c(@74brbNEywCDzTJY}A0Jdf4ij0eg~!|rR1SQCAz}IhIjRF*N{d^* znQTdE6*K(qd&)DAKAY0!I=s9r?zt-w!|Gat(O3dFe;^%oN* zdSvCDDi{&!Z$u5~JW`nG=D2VT%5b)1+qe`SU<0xf?aBUX56E`Q6Po*fQ3ZLc4mtp$ z!5(=K-j9kfL2KIu|MNsPx8j_d0*d6DBWtsC0)p~!`f1;j0&_cun5enapt_bp>_oP~ zbb=Z2J3`4W>E$jBmygN|g8i@8>qCV+_(kyM>Xw#a?KRdy4qw}tSVmnum!2ZhAsg(P zARmMY{@rG&RvS&K-)r})LSA2++HeB{rMF=EK}h@S%VY6QP!OCKtVlIqYX(J|=ik6j zxrlrN@>P5muiwq03_ZjtOqX$^*Vs;#sA|4S;TAh|L3Q<L@&sqx$ylD@ghwpQ9L>@Dq3lV_yW?L-Xw?5+K{mIYQg6y7G5;z$;Gy9dqyKI>91!w3N!sG|R4?p&a6e$IJkLnYsB0 zYy>4jC78~U1b77YQW7^GIO_a)^Y$cIi%afRah9zEhPcMq(eR=!;<~EZZb$ks95|p; zBt2xvI!W6D3>tqUE>a}el}RskkIj`ndkS)2_V2N3i6Ol<y>5-=aEz9pRg(?7c)pVV=Bd61{lu!_`Rz9P zenOtFpwwf99DeHY_B3&b)Mp&uL52HIo~Y&cn!rKEq`Q+-9sA<=*x1!|@7Y)QZ_>Gq zjandIh%BG$VVu_n+wlFr7$=P5i0w$gmrtm3}3>-W11!nqAc?|XP z-26kbyCKm*R$$PN45M~kb$w#4^9&n#g;r!#KQ^V~2v6;~g*S({ZWa6JnhYl0Nhv8G zc2dzX&dNw9chS0RmIb+yTgUc7rR(5XLml~#c)yhm86b4l+078^!sIK#yJG>u;?Dt` zCMQ!BwANvSlY_9?D1b_$`){E{Qn|5WSp6QqKj~4S2j`r5c&x?qcjuhvQ~#rj0%8+d zV;%Xf6qDlVs2}APqDj=2*0z0G>WR{;Pk7WQ`!m_zWYo;?-j?a5x&c0nJ0Efz2Mqy4Y_>1jfCIt7uV!D>az z_uLK8YnYKuDwn^nr!KhzGGy#1#F`=m=vfB3V;laY@d(SiMD6&(Lf(Tq)rEy!3{cQ& zBlUl5*gs&k6&9cgdd&M4s|zoM3Fp`eEf%~Q=OiSp842cVg#{PQcL$>>dcXj}a*|Q* z0MRg(du5HXT*KsdhGOv?s#nb`(?1Q(KKSRn_cGC{|9C|9(>Y1cp;zy3vlLbBs0%NH z`{P&XH#Pmcn#?idY^dmy(PN6qzG#<1_*~U=o1TbysA4+dh_0G$*{TT|i}UF$pAEmb zaLv>7PU!%sCqGSi@R@(x6e_Vo+_vcSR=h0&k+h*(h3{MLw}*~N3?s4QLcRlcD{`>f z*$@-AVxXgpk-yZ78q4~ONj8KxlBzg5*w*is0j#SHV7jGYA=&wNVOhI>1?Ukk(3RAc z8Nb(>VI4BU(XqLou24I+Uxs=$d4kv$J&(&ud@J@^^k6hYrS7jmLI2K>R=)65CmG&t z25Aw`9OUZ`^jtQw7(|3wOjc6z{h97oFsC_Ew19faaC>C@*eF$(~*cH+OM)c6D z%kmEO(b41feTqWl5^r^-!$7JCP(sDrx8i!c$6QjbM|BW){a8ra89{Jc{ zwpjqpTrgpX!W0H+v`@eJg2i$!dOXQ)Lshs?;cp~op@VbCZk}ge9 za)L$7i|E@N27wQg7W~S>k29G5-^+?j1}fvUoE$!yEAguk{evzd8mI)__%KS|)Z5!a z`hG?u+uzIvIlYHmO@c|o5fXK+(TC@C2iSetyK*emrXYdEE*??uILvkbZvTFQpL6gw}$zV^*?*0nF= zv=2kX?&IMZ`^x_hdtsOR56%LDzpBf({|-WHD=RkKK^V&<<%IqT79ouLH_VzF1;8qy zFn!*7!lK*Z?KVugp*IMV5xm9Toxmf#80i;rgfV&jMO{-seTCGC_xAW|?0Qm$}?f=wuF7!2{v z0Al$2;lJ1ZtPJnbSpbyl-M9|3{O}TyzovUtdwTPVKKuxZ14Oyaov z^AF3@MLkFEqest1w%Lmh=HL9zluo?Yrov%~UlY6IT>2>jaaCX^lfh@{jm7Dy%)9aNJccmN$2M#6s^D>#= zm+Cq8gh(OD=-QnxmGs4BPQ~s$V=U2iXS#kYE49<7)FeXQ8isy1nl4jYsrVCl3U^eU zC{XVy5$K5WC@i+}{PT|~ZXl2%Kq2wGPTWD<9wcH0M(^P?-OrrlzFmTGf-+3-4~_K- zmFz1UU*W4|;Q@0>_X@%fzFSZMn2l0{Nk=p}IXT_8;&zt|hsGx#5gs6Lf7W)6%*U{f zqGg$BIqik+MKcoeGc3-fGwirXk~y8##=*90Izoyl^?W$9Sct_ zu>z}6Zu(AvzOa>A22v3U({ryrnP8Q|N*pXc^q_?>bTWc(TCB9UExxMV^U~J;7W#&T z&kw(a(X{3q3G1{%aiH`)x=;ICrwodFInGAN1J9;B+w`spJdw;XRgt%wgb2u;pwI{Rt4U9ATDvs1b0XrxA3E(h zp}6Cn^(qN>zy)%c5rUMZ? z6d)qp?Xz}n&ERJMHPcLxN3+4#+<6z{ceKZ{Ia{MqM~9< zIj6JVf`Z@1M-I5~jTa6WmPRN0(s<;Ku+rtW}}ezRhLdN zjg5kfKHA(2$0BbsNJM{YDjwCq>cDcaQzf!UsAN3FzD+a0OO#&|NvR73#o7EBjnT}) zdTMbJC%FMKk5VIlS|oLPLno^(e}O3C6s8JN!SnLp^nQH@^Ylij^hS|#e-+Z4zba=l zDzoq$a=Y4otD*2=+F2ul$+k=Y|U7U*&ZMKkIi*t;ser zU_uzGKRkoR);XAYXf?5VJ8WcAAT1bdtb6ovx#O;uz26D`!}Z%QI^Ad@zk8kEwhzwjqFrIu-Z|Dot9>wi4(!7(*K^Gmuu}+GI0rsT`EV4;Gtu+LuecOHn6u)IwDn;eA3hdPy2jMyNP*xO8_+g^0C;y3>?BvR;Q^PN$%s4L?Wix_}rE;5}q$^!)_&UKoS4`s>R zt<4aH3{qvlP*RIhb}U;*Rsvwz=3E)!^YEjc=NSK^V9szb@p6%i;0o)NmEe?Wu3kL= zl?x8v*>1DbU@}L9Y=?UCF4Ho0{tG&5NEa?H?&xSTqqsR@t4O2pzf%1W3nuaBbs;t) z;s!R8i&{0;_?_B1m91*oV1B{)If>$iL7>gpuLsd&;>{9ehglhtF5XMuQqDvr|Vr^6@Zy4 zOrU*3AhZMUwXX9?-q?yo0y2?hh4I#6rq(cm<{I7}IJDtr@v&{s-yhs1MtWvKyFBCF z9U*zDfkxnawPId>bW6k?%}WsM_6(PwaYH%zl0X+s{r|=MU<619@pYJrYYHE z09!Kb{x44|t>;DG_5W`#fB;Yib?*u+q~>$YUqZULi%;aWiCD~|TPB;ZK1GKnbhB{o zE2|n9%9O*%dYG|Z*b2a%Wf|GKq=v=UQM<;(hPGTTwN7FF|}KI|Igd-u!1 zY9h!TZ2nyxZqq&!oRjz)OL9+Ixl2&iv#DED-EKinn=WHv*s1{1`6lP)>TYGY7D?F3JCWtVg0>fj0>E02oP}}kqtZjl zBc0+ydqhUhQF~^V{Hgfo-ywy3+uMABaN>b5iLYrfYa4q(}e{dW?%J%pe zEoV2A&9K1f;{jN*h4R4!621A`JAyqZC>8c$N1m2p2&tn12WM}@{zPje_)@ZCCk()E zsgSux^re4Q%KsK=-7qfw6PUH3>^o;WO$f^{YhUcDP-J(*&o}Y5a92g&;kQzu1hU7; zg7;7L63|tt{nQZCt5(7M8v`jMAWVVSCb?PGtFKj~TehCc(HJ zUs?yv4Sp@0vmcU$Z1ifT1)L34SWh3;RnV^FJGDs-`E{Ouo$A1QN4}v5g{hlUx3~3a zqf5t62^x5YL17jQHRCF#;2s)E&9xSjDsNCz8ehI?mN?)6ZOLekGP?Vi}y=Rih6 zJVQ@w<-{b(rZ9>~n>iT;uR=kh<>P`)jShd;(v7RfTRSVl&CD@F`u=K}&5d30yHh_AsO@h^MANOC7D+W0agV7jjwYAl9V4 zpq~KC*M%@mB6YM_Y{MlcjuV9FmD$G}eI7B7n9b5ZnqbhEC=I_6kh6uycI<3Z$DPQe zCu`fKY2d=3YoI!w89k&03(T7WOy0PuA;Pt==M4y~aSx5KucG;E(s?SG=a@+Cbt*z3WEeh4I-5IB?$ zH7e(z^8!E&sQP^mu{|3qkRH$!a$*2S(RySn@mH*S;Eq(#n)w+R*}r zDWqN3`#-XLerN3?in2t({cV1IHtTm&+%a&?I(>EiXFZC80*L$2<*Q^!Me1e(cF7dM zd;VQokJYIhuXRtk$#ib!{71S!Bdm5}?VHVN$>40Yl8p@3E-2_P-}in%_!s1T{%z45 zAn=#qQzjYb&DQ!$!4PPU?X*E^h7@4rF))ueGfhq=il0~k0s~Q;U5x>}Foebg_ZB|C z1LJ}KqKX~@Zh71=?w->=j@?;Xw-5}@IC}_l7LZK#TeB1aMkxGRfsEy~3pJjaguXc! z-!ect#~*@l$hgdS0C5aWH*X*Mt{z;f+L|n0)}=!d+DID{=i^*_W#e6QO8a~?pKcRx zd^Fy4^#_UJ965Z81;6V&vh6uxv1?+6TY3W*0}*^uR28@Ilb&@u`%+k&SNL+#9+-uP zZe}oZ@pnq6U}1UA$&4b@=z&eL_*Tkmvd?(re-DQVj_OTdUiL!Nn>VMJ|D%VEzhfHv zE&eIST@#*gVv!a~&>bK6p_8^z>NTnwF8*6A6ETK36=7oiP#P_o8M573uu>v=$X~fd zYtuYBOOIV}i(SM^v4%I9P8|tOB{+fl@Kz^oE=?crMeYd(<9WA)MoagcN`Dk*mvp!q zxU#gK9B!e3KOh6{Q)u2QBN3331MF?A<4tMD#1~)&MVse>s4%qA#}jRq6vVTZ3D24^ zWV9KC(N2Yl0z6TQc5Fa%=E}P}+NUTOHrLMta5X}^Fxo|Qtxe|vw8Br26$zjF=nS_0 zf8SmKomb5bx@V*0i8BM99j z)qV~)kU~6Hc4-$lD8&?`K0h5UB2R_)mU7v=MEa^veK|;&>`VN>@cW*a@&Em#)dcW= zD-SYS7Tj|qg1Z+gf;nyyw?56%*%>kaJ0~gH^i*OV4t+fJhU;)ymuW_?_9MYo_^nBC za00p=jd!Kaf*Ejaoq4Lle|%)bsSuOE*@XOl1G8QUC43{TR3G7B|%{(5ucRcp3*7*kq22~WCiEJns397laGIxW67A~KZUD^#6CCoXwiPv~v z4F?bw4s<|Ogd$k^vl%AjT-re8+b%vMy;>}3+)O?_TkV2Gw(~q9 zLx9sHLn5rWA}${AW|aKQg{%IFgOKC)z9C%HHVpaE4`GtMk9C*3=h}LXl+YJ`o<}|U zlZMyX9j2AXS63iG&7sy0k*}-ylDYnX-$xI#Q*~)eh~iX>wkc99aQ6&mMGrMYEmso^ zHL^1|t^et9ApuHk#M1ans%_RV$n)t9+|2mEhuo9KNZi2qh&Pcjm36yjt`@CN55v?2 z{TyVvy?gJquMcRO$9^Z-!jbI+G|?e`Mz}mlVn@8k@bbQRnD%l}G>&amDZSC59r*FF zT>5UA$IXgrFRXywBfEMG&i*j4qUR-d)}{YBaGPT!_op#Q5C6K`;WDPld;3A#>O3-o zT@0ew7D^S%TB}+Tp*+NKw{?@k5Uw_jrTg*E@0LRN`$DxOp5vO7cxe!*)H$Y0U7}sG z4M|GHUwL;qeFFL0zFusNQ}?h38(~MptC#iAxt?41|4^+pxWm|WzDso>7Dweaa>zHOT0N8qadt7QW2kL9U2*I!-hK9ay4K}$=@cur z1#@IZPtKxPP07?8aLH)fQjwE7p8jbb7s9%P z%YeeNI@_g;a@)$aM+QZr86bc;|VA@CEHB!*1z_|Eia=Dv?}Ms}w=qZmn`Izte-W z5wiKA`>W!7lZcsskEWY$ir-m1SyVQz`^v=qTQ&$%IZ0ijyvaAOyxF*_Makeo-o3V+ zxbowda_SJAA}}5-5yX~Z+oIq}#k8lMP*vyo90a$CRQurl1!`AZv(^roqfc^K9WR>Z z@%#>;@-M2KE5Vdf(#%3hu;mP9oKS_uUdG;6aCGV8em)~M&q<1GC6#B5i^`grUDUv< zTz~mzx{U}5c*SE?^>%!;#=_47>?J91^CiF9j(J_F#_}kD#itzq78dz5*M`m2@!}Mj zN%%ib8%vO=t{g9H8;hj5q7l1k;#O{SZ&p0Cm0xsJhRt;@T^|_hJo}MKG{x4t(^e+a zt9_CR@ZNA!eJ>r4PKYSY!+?8V00T3f}9ojNZXK_9yYcsW&!8@~P>g!leR z?!|mbm60YN|Dr=f_g$3GdmK4_zS7OFcu7u{iVgqMYI4PBEj7vBhC;?Z6A?*rS!19g z!O^(d;I(0#h!5>oq!@)#eDkO_hbPW!AVVmOs^fxS9kR?{o4frIQnv-CQoYjGQboNF zw0cU|FN&VVLrK))G$fF$7|Eh3C50zb~8+c^%>Oq)dD;*@y*A%78n%80bdEt;J>Bs-WA9@ zRd3fWR+5Odh1MnLLC@Mb`pnc3p%8umLk_NJ(hSJvG7v> zQ4!@jWGU+n*~e6HLP&K5L^{`XUwqR4MM841(Y1>+<9YZ6Nb%rOj9R;EGjRijDUEks zud$lp+bS)ABLVFR;a>>%$a#nqX|QPq!cQVEGS_$Oyv!&CK+?8^8VYzq|Aa6F)da&Cnr5zsb%}2C8s) zTR=Ou{}(zM$IFX+1Os{_%P7edQ&;Q-L&H1JU(}2hV*=}r0OB_1{hwU6=n$IcHjPcX zk}=ldu9q#ab6r0Fo~)b_#5!>Z1v*j?f2rko&UQ1;%O#t9ApHt+*A2gj59#}LP^J?c zahTe8{()M#p@;2ifq99~f=*Qw2y6~--wRUwVC~f9gG7|8WU@yuI?o~@z zb^p&DjQ;^1Fwtpq1n2c!WuJG8G|}mI_g0t7F{QAir2Jclc;o3Bt?U=p%gMSO0$B{(oueLyl<)8Nw<8w4XmsGs+7gg7(G!Hlut?-#V=Js z9a=pfOftadw(ZvGy$sjl zbTd2cG!1$S(RT23*g-SI75?PQrPD;+k^t#;fB`aclsZ0$jt%7 z#ZJ!-O9!mlb&yEC_%%{RvBISo4B~BWs|jpMj zJf#6Z2bc0?WvH7nE*$1N{qOOBv0?)*ku~?VrNKCxlD_%=&ZcKw^oL0n?vssI0Fqg@u0nS0Jk0+wbDO^@r#Gnn_L1rz;ofvLLR3Bk5~ufQ{azT&>#NhVs5i zC>4PamGl~ULHx#>1(^iHt*Iht*yY7VmeUe>GFxmREn3u|oFS^2O~WHs2IGoFTWEfD zg1dNQ%d0D*hVR@}&7)m%!s{+T=MzE?Y8#J^^kG^>emDD4;B*Jde9^H|31VK4Yh--I z?_buf65M&{@RMoYe^7bIs`PVRt*j=ip*I>w_LP4t?(ch7(0ItStS@v*$BN^t`BiTJ z3hJ_+c8SYfz=(1;JP86bEc? z;7ohEGmL)f)%g(3-|8eZH6@c0l34%2UZ%0@ANO6mYxd*!{a2jm1osNAXq1D#s#*7> zFM(645=-@SgTt-#URXn?Z(%%FcsGbMT5WUXNWk@q6bhPv>z7FQ%-sq@f(q6Xy z7|NdzP-|KTxDM!kaZyy8o5xZ`PKT>!l&2zl8x@i7)Mu9bqY{)&OHX)%E*%s%Ez4`* zgGC+!$}*R}Mij`VcB+r4*4RMvzpqRx_aH&RJxRMZTeDPIVGjPIq+sYL6#Q9=JG})vo zjWdrbFS?p0C^Zy4Scoi-R*n_b@MMWhsbxfvmK3!WlqsrN++HEF!T;GY#!Jc5-C)9I zsvzr{w3xWQ2Qn%@yS#B+-skZ3|KKZ45bbDo{d2nortt?2mxJ1musMmm!dL9ibXQQc z@q<>qT27;j1ip{WTq+?YqI=YVy>#aa!&d5LbDfSjd4%g%IOwz5G~$86wj>*HJ&aV3 znB}uG(qZVqXw-ILls%o9o72=LL>8Y-q+7|bB?}C9Nn@mDSa~PFTn@^ZYN{_S(_Ajg7ft1(p34e+Oqr5u_4BwKP_v zmvKK1>u(W-rAyvYQW<9DvjSREZpVAi1B@?|H@5qedW&ho7FNQyQLdW(wti6*SV&V4 z+y=8dpA9b@3*3@1?L|eI{=8*jJ$MA-Ku89*bABsz{sv|js$T)s&p+>|-n{h%-m~-) zJzJ?6mhYzmyZ@LjeS&*^9GI&=w<|~wX?ttjIA3{%en3|6Ohb0o>n>n|W&Aun?>=xx z`s;;mST1E#mzUjS$Wj1y+{nPcoKCnvHZJ*pow+ZK`M#rqmFnxIQSJ8k=BAmGtbR0U zf0WEhs7JINGU(_DXZF96cVbQM1=>s5$3Tg>MqOOi=y6_%%E$PK%jJ1}hn1a(tpwWH z?kWW!0wk;4`UHRNYCkN+izfEGTVKHQiYDED%ZcYUl1%ag9z9G+ngHJoflj53YLh38 zuSCDgVE-Azd&+|s)Q!C*xU8mhVYGw0W#!ku*g|)$#6JMIZ(o<)x`=hC z68XD=L{_a3#ZA7C;4RHh7$o|0vi>^RFayk9$+{A*a?5r`jvY1+Lkt9$@e859J z+xg)m~_IWx=RV;PCMOrr0 zFXS7=8@J%K$nT6%dY#T=*Z#od33YxIU*5Ie$J6aO*KvGYT7?9M+uEF5pJHtM)-8i+ zUwR7m(D+DE*sT{6dnEY-GNvTvtw&e~AaC9ie*9^5O>VOKKZfuk$&?gKeZU{he{OZ9 zNU+Cje}|3p7IOEYF{h=F%)CescoY^X>D+;1qKvZWpk>?BHiP zp|yiGX9KqP`O^Rc!9Ma$Oo^YQc~urmm$BHD>UUqKPFQ=A!7}MUn^i7X8^6ddj_|Wf zU!8i`6%Gf8ntAK_MFMT&-b0}W;$|5_dv<}i-2O8?DndUt{XTX7#t zHe5T}8E=?Lj%CZR6>M{t@T{JRsKPhh_Hjrt{Uw&uv zl>VBmo$!ruNr|nmhv19PFoF%Crq>xKO%m8EJ@CA2%Gzi6e`Ny`98y?7G6(G%^DmOd z|1j(l4IF@bgfAR(OrB}6!VN3z!nW3GHuzim=T4o;vTwSQfMQ)~*}ywbcdcS3kT$N% z@NLhrhw^EbkP(Id)hXF1fo2qT0;$BMG3{%scp2f>ml;~4gdCBpau=Di)_nw+o%bB& zbjY-z==tY7kMw~~L9FL6*m6Y!@3MP+F+C0N(X8m+eQi56c!3xlzRQ);^Zo|0^Y}um z>q>~EEq^nFQJec+^OfK9`TLt5PBwVLvib7flMEWcA5T)BM}3u_C;wTAY_S5L#y@U) zgtS=N&zV~9b*8XZ&TOohiPo}A{y1+K^tcCl+pBpcSpI8@j0Z!FM z>$;9qU{kxS-K__>{wDzRz9HStFs)tAKf<^tLjULpJR+fb!rre-Jjb__iX|iosqw5) z%JL&A*5JOEJ~qC8|KJ;Su=^iY{6BR8j5%hJy$9e&kp%tE)fuG^kGX-9Cy0T3wMJ#` z=U$iRr;-e|J~mf$fWVYI_Mc=;&WJs`f7*$4>+Cw)GLh;GG}UQuZWITve50Hg!~gP( zZQr8b^v{ZfF_f2QPc%RClyQ{u|KtErpihPUqXo$WMB}{?pjc1!YRT}YKXA+YYVZP0 zCzz`si#}vB=5AGv6sVq%`PvdoYNg0U162cBvcG(v!eX-G zAXj)rb#;=?^_=Ft&EL}5@>CoQf9Vg#GHUGR#t#Wxyp+#}GXWv;A0<+Z9)z85x43_b zIyE9cMjvqbCXD1U+{idALWfk;eSF$r+I=jcz19OEaWsLD6vX+L8KmEd!;p%ssJKwZ z+q?V|J=tl**RQL4y#qGOojzT}{N8eDD2A=`-Z`$Tw-2^ zc_#o7;7Dsh9F#iINdBK}!XTaaX#{L;!n{@*Dy2w5ntDyqUHR*(zP-t`MoLxy?`Oin z8G_ttdzL~vd>66yC+jc3^sGG*4|k)Jbt!A$;jrv--DAK!FHbs`GhOU2jydz?-j;gL z7p8M+qz-@G^qu$nsRxNi1V{)d7xI~l%kQGr8~)okxPifvxp$mDf=S9xoB#KiKXJfS z&J3BCz`qaO{=kHLf_JitC^WPJ8F0~zYmuMK>ac46-LrJLm|kcIbG0h{#d3a7ig6MA z%Kw9Jbp7W&DI)+E=J(Ad-{N+a#5>b|FuRHVa8&MX?e6MYUYlq6K6$Q7RaopJcun*< zp)0jELv{nF1(}C0_+s@RMT9A8>|5g8>gH3F}D>u@BExe{xtofO^NT-j9?Nkc7YQWoEQR z(P0`8Ln@M1&NUj9$bPK{;0sF#4dz%giSk9Wywx-c*&GIWGgCDztKijPpg) zT-VzHJ=!M4YtmXtfFs;t$vFu3`$Vv)+$O8<1L?>pzAk&Zp2l(*WX*H#;SIMT)ck(5 zuVk8>RP4(FETKp#UR3r)7XsjVLnQIpUcEyiS7&K=oSBW=xeJf!edfOt(zetZmZ#wF z^3^D}Ws!{F__&waYN)huXBosWeXi3bmYldbkOq_v;G+b zYX@Zgd2rR~sF$Oxyu&OQBN)e!%_DTLl-k$P`t0wKnE%QOe^h>%u^mX2>!uMzk1cO@ z)XS%qmP1=$dZFcfY}CNjX?V*tSfR1KR3;YlDaVpr+$H{?aMe26MdWXdWB_qhnQQ@7 z)K6IKNQNQFXp&A&n^e$MCpo7=jbre!xqWeygak z+j$j-&jHtn%9IRmLpdU>hvKux{@)M=O}bK#q*%Q8t95G|>%^Rw9Z5~G-(!wK*O$Ta zzqU!6e27pPBL?%+s2?w2Qp8L`jybf5h_lVlo{CMYZ@l=#=S#IAFUIw-j}Kx@c9W+zX-jK%%tX{mhHTr?qK)&9foF{b{0Uo*{5_P ze0NoBz8+6TjW()+2Ae^p^skY&thsqnrD4Zct!jNfa^&lc>akFpr^fX>Npkfi{iiyX zs}F+$nl|6L=AR(2NQ$XGT$igSzTZ9phDux${nYMox(nXE$jb>mv_VSz;qNn%`OFiC zV$b3)RcfpxL*SKAw1Wl~JJ|pN$*%LU$3cD1Aoc^ImwZ?;5W+bbY?NT(_$it<&oSk+ z{eKJUn&>Sf_YrS!Bi#RJu|qVtR2G8-SldXHpqz&XZvS!0b5K_9TkaYgS>e8;~|3}kV_%;20|62tC3F$5Y2@#~F zMwfJnG)Q-Mi?nouz>t=15E$J#I;3;JsEruSZ@xd@-=8oZ+^_pS=UnG`*)WKQ4q;6k zdh2IK=+ z?yIEH&sknRS?o|B^ixg6JBtF&A1s`o(EV?Unqq_TM&MUhDmN z&G=ycVR$9sw^PnBb$Dmq*9h(6{q@ZPB)9Pd^Mh{$cwqo$94dBbn3u=i;|98G82N6C zD8JjGJs$Q`&Oe1F?3#P%_qBd^!Jo+atu573^~v4e;px9uF_NFUru&)-={*H5()^p- zlLX^OcV+Te?SzpUB_I>pFu&8Lkl>A+Bc&tc;3ynQUjHiA*#{O~?VaS$ksf7DTB*M` zH9mwIF_-g&=6yLR;XEsMdJ}&s2U8Zi^=s!zdt{l&5enaSO2(`NmraG{a)!#8C`kN4 z95|Dq+{kkg9DII`0~W~RLzV={1c(%>WGs!{PZssw%D!sZz$)8R&r2$KYNqn%p$RPh zBomn?^v(^XYW2FkgbTBVNi#nwws#KPWFv?FXlN$$Rh!rQN_4!l(`HL?=?|mRdDSOx z$g-yXZ2ad(`5&0)eA9AC;jnbPqGmz($Mca%4G!1K_ z`q1a^bW&kM!EW6ozdW-zi`=?642z`k&JhM~lle9^HI4FcJm^`bsiYArLc+qusaX;^ zH?nnwWcJchM+{>36U$p>MpI8aS}aORqYs4K*dy!EU(?cZjkv*ca?8F19u$bk4S&?l zjkexgL5ajZdLrXJ3pkv}$T$zRg~Xp0pNl}1Rn;=;X_h+z+NcCwrQKH0d-OH6!;85x zMf{ppe4&+fwsU3A^$RYFgPQEY7`5j`8TOvJ+E$ULu zxJB@lRput2Dy!783X`Q5gsCMmA_I23a7uiUxEwZqv`=LC!E}I=7VUK|kn{0K|5};k zUE!qnVar01*1GOBTOy$57b3?mtV-bsXK#_YoIci-oOnGdinRn5O^~rz(A3`ie~&0T z^5E_)L&H&)<=X!XrTUgF;3C;^o^y(U=}uCF5mu~}X-X7bqMDl)f{r^fRUo&E+#rCT z_2N=iqjT85JERk|GiU{QG^iwrNPZxJ-huh#BdS(3K5LoVnA52(th|%s_;`oO--2)( zxTMl^s=;4E=Ewn_?$2eP|FaS>gi@6b;Dp3hI#gSsW+S#5Q5sowa5&=WHzvcFw&gQL zLV*$|MtN+CGuBi{c#R&h(lQY+!V+TS|6q7?3R%M-H!QMU(%eOItzZySZjf{Gj-^$m z-PupJ9By@{IF2M_NI)fKp1cOxm~oWp0eU>(eRX+>;D|?P>3yU1Z$$Dgr1!7V4mF&I zcK!}pawc*1s`J8MlF;W*(kB)bC{U@$qq?J}?O2Fj~>B z9N^y^Kck^;S$un0nWOQ0(>emBn*;XCpxr;u_tP59e9<{+dCH(e`e4va-Pcf5{HSe7 zna1K$Zwbv?rKJ1XV5)sGvVdDcF9jg$XgV7U7LW9n5Rvi|qPc^EnU_N-Q4G1jfeHkO zxL#ZML5KyN=W~sXzE~{U2Yg7*VIC9k!wY+r|rQk`Ys1Cl?`AF(Bmz%&ga~+zBq6r7#-=| zWelh)ZzhEs;cZ3^;W(O}_!z`~v~yqmC_!A>8x{#@aG#>Oxi9$`=24ojP#^&6RHO-j z%Mdz*cs(-YxHwnoYH3;lmQYAz z*`#DF(rwM>ckJFg>&({5{y_fo1tb2ej>ye6K2O!YHmf`P|A^A9e;c8Lxcd6_|92Im z;&)|jrfM7Er|hsy41=2kAAAXmsh@AGwfpUMKHYWl8GB_RgCS)c|7@b^wz}J(2C_|; zY?)MG@pIJjI#}a`URiEh+U&gPG6fm5ll@$-&d4rYOJpqlWu~`zc7DjzD(U0X0^6hG zUqTh)Wx65hmqP6&Hp6_Nbc}rTroENEFbbLP5Kk76; ze?8H(#&``2-*|aYBv1H*&+1fmc=|s1>2aI+Wxrr(#3WX=QzDW<=lMY!S7ft4_Oy)< zs~)*f()t+z#I8!q@qiHNAl;~DqYLfIfpbyr^-fB8IsGq^G-E17Zq@x+X-K&l7# z^lASO6~GnA@VUc&tJ>>1rHHNhE^_1ub)RVv$;275(j2p_w!16fBy5DSoX%X_|AdkZ zA3{mOiG|C3g89q&?+)P6Wid!W06XwK)X4zZth)hxjs zqG4$0093tof#i4%DEp{9AVu9gm>tN}t$*UPqQb&He?l(vfwSaBO3+V1W@uecPZb7- zfs@TXepgMf2O8Re_b*)3fQu9!%qm1N0{4*!dfoNSFR??LOl$P{?s)9> zC)e1<45D5)-76=vDIbkkKTy3#I2bU$^bv&PKHX~C@Q0^Lhf-G399Sudx{2-jH2PLP z-D_75lkJv+m~C!z^pFa(>~=LeQoa#&)q&|<2*=2tmskRiP{doUsUM7PyOue*t);c4 zx2kH|6Uld-ue0eohP;z5~xGN5j6xqxy-`< z+wU0UiH-PjZ+j!5jsNvX&`!_e%^Etks66v}-==Fjx=2cgNA45-X3h-=EontShz zGcWj#e8Hz*YY{ZQL#*J3uI54P7cB?!Oiy2Bq~2gxP?B6jHnGO*oK1_Xr@IV21?;WN z3x}!ss}r^Po%oElLKn=j(+??kE5hFy0i4njs!4xxIhf9Vu(A~~Gw@kc2mbmjxpcw= zXb6IzLv|l>{N@xz61*OUqGsUQ$w6`hdlnHt9`7@?cZrV)fkznn2r2;mOtDH5tp8;m zcSwr_##ZkkV>BW?9q%j-tengi@F6@&Ek+cv;$~^YiIgz(4r1W17~48B2@P9A`DTsZ zZ2OD!*bs@_%VP1x=WMY(-Tqt1-GZ}^ zq-UZ|Y0zTJa&5z>+v!}FK3|6)6lAL%j;Wyg0TMy?i+oOKC?=D(NS`D2ETjjmp0$~lz0kKh=D|B3uzuJMM7kD^ z2bQUvESgQJ!tnn9?vCnz3KcD}sAqb$j!Ks=(9jB?QczHYiZP?N8;=7RUgx^6S#`SB zQuX3Nv^#H8L6`ITt|u#k+rj#JdaRu{S)B)M;oSnbfj;|^h4iUjcRDiB6`8>If(IdO zqR|!=Yup>&=a-|qyW^*$6Cx287h1jNfB*jFt7wBOj=$p9gLpam9^UX5N~Z1@ELY)+ z?oF_!DmSmcS${atq&a_&&@xvjiK?N7s7JwrQVq*8EOIc$hb- zojYO$JZttkpjB<5`!2AZ!S>^NcBlVtBDNPH(c-27OK7B&%Rm3SjL6h6YRJUDeiG<# z*&YaUJ=mNJnG=$>Rs!Jq(ucBQ(BDYae20)p5|fx?C9o;EHR@kEnKzTDasr*Y>fDo=8^bomJiGDwB2UH%#25d+M;MX)uk;Tx?G_;ji> zU{cK{+?TEYc&p_w^c&)CHUzcyiK7(!q_{bD#oreP|)DD#(`=9 zibjqmrtrFw9h-_<1%gW1w;m+O8=67tCx&{zM%+5n-|JOMd1X)bAU|mwK~GLkjAq|~ z@hlx+8}o>dgtoO-r@IA*%4^eGADJdWr|(L?d$na9e&8D-*P_Z3D2W}t#Sy7CiHEVe zra&%nVwq@#Z$7|;ARZO7c)v;}vT3<@1$~YXsd88n75A?Gt*;snX`o-7dYdx{6WmBq z-d^h&NBZCh`f*J#)Zu(ry=E|yLZ*(V{xJgmWJ6Q z6A=M6uxWFek?drv2&;Z&7Bz^{Py*o`JNJNF+zonOyFT9wmHg1ce&Kt5QP1*w~Z*cC_3E($7iG+758oHi*pf3i+R>>8N5MG-l*a?9>%?QFXMAQI{YLejR;!E z_IwvF8QI~TDp|3s6XGz>f)g7XyGM{uqe}rm-B1lW=MOSFgXmu&bL$zlL~+cWK9Qd7 zB&%YAUx&*82+!mL+w`qCbGvlFZA2!4KA&QFiMrz*GK(a zvhY!-(oWs{shjpbSY0VuJ3fpX(=k$pTj4A|=zhDSM~P&Ttp>K1CrUy{C6%#F(%~Gl z;uCa}9%Ms8vr`d@iHT_r-x;RsP7ox!kB7TKCiqO2hvVbaR#km~nLi6hezEx=tOG)u z-;NFuYOy2n0lJ&a#GZFvexAZEc*wS*W6x7jD@bOw-I%j>6l*pB09@A6(vroC-x~A@ z+M1$KCsUg>26<0mJn-=F#PVZcK2wYed-g&eJ46lM4YeHqNz5(qW8ss=ERXd`sFKg| zR|jb_86p{E6h%>4o)i;=IlLy?X?&&522(qIKh6xo@mW5al?G#Jjj+AhESHyeD~}2f zu*HsCZ$JJaW0LOKfDS69Dnd09^KQ*L>+ep&5Kp8a93Y#X+4J+hwDl&N`3jS`DYdpv zpE(qSl739Coybiny75CXi%k1jHweBAT{tmW z;w?TP7_l9OTh5?zev(`2kQzd2EnFGPnM zH#d5aN#%*$iE+~{R{y3S_K_RTQHi^(rPx|jer`mjCZ4$+PI?&h!6*_@tjp8I5`v2R zr_3%YFaPJj>vL*%k9V`gMAmKtRtkC?43u25^Ll5@dq2h&1O|knVEGx3eaxcxKPW=I zxS;hSepeYDsoOp(yj3MY-x1{AJ}K@7w7OGtR?I3y$OhuKeh1W@>BglyS!%GE*_p|G zbk}L%fV7^#Z%v7gKSp|1!?K~rPWN~lKEZN5%^SJ^DOf9dp)x}w1(>d{eUMX>MDI7W z+R95C8dG7XGT^cA0k&K8d}P8Y06|1zkqu%E!tjSW3VDeF5640OT8WzieV<3d@vybu zgLJYJAop!{I}Z`EgD@vdpGRm?E~+=((>V>YwYnQkT^8x(2b!VfLB}!JE9HA^yR4*^ zo!DAP8ul_uq7$@%DvWhA(VP8(_>q4h6BC4C+er0l z!$3wL{~FEz@^O*77*Q~bHZ;dj>iqw1u1NkDY#?2-dOT*p9Bg|q)`C46m1HLyf@BPR zf8OsfCuL>5ciS6#^=fRNR^cq@IwFX3L^6~+?i>1ZMl75NJh*cV_kBKw9Nss)2;T?f z6pRLzVm3viOc(X&?yFt~yPw)`D4W12Q6cs`7FuO#9=pUXqBi<_g5!nym)HD`rqR_4 zwfW?czGi5ivm7O{GaVA=_01FS>vbc=%_N7Tq&fF-;6k6yTcz z8S3AcH`vwW!H}vMW!4p?XaQ0q*XyIAA{(7gmv9@6QyC%&7SM!o#TTb{T4dKjMv^%} z2jd97P?-EGBmn1IV&N%#C3A+?-C6s$(ub~55krRGzc4yoWm5NU;|c^uT*AD-Q`tS4 z-cE;tL`rH&fvV@OXzRZsn(&QIgo=RQfp=qqIz%)Q0Ngdmw{sL3>B5_2u^Yl(+Jy>T z2IHsO1@yAR8s9S}QKU1)XKgc#GrkqaZ*ywH{2 zJBq1!$K7;fR5*PMzZv_Ws# zwk&QiD8f1fP6j^=7`iT0CStB+BX7l@uJg}0b`(H!ZiXN{)oWyXT2njH_^>e0{$%n@ zao{Q#K04a%Qg@2?09GPL;xJBBfbN5$bR%xr0kWvG?B3k2gi~JdRy0S4H9YodiuNIK zQ`eyPHo7tXuH8B2`#$0Qn3G{2MVwW(fBOzg33VJS&KYNri{xfo?9r^3AqRGOfkj&+ zau{;v+dS)qs+I;v2cGyHX)}OPf>PWbv&~YxPNLQuC%8t=u>}@{2irRVUjA~rB|Nn4 z+i}9?H}G9JG8BEm1nPV0G4a^Y^Lco#=BRPpkoy^gDt;n@;-%GNUqxutd}76^3i7ug zxm28qud9oT=0y7wf12!<8QKs5=GP1Yq@*#a$m*7(u=CBBADg*%-URg}ysD*u;$Y`s zWu9&?D=tyvo3X9Qu__R*7$X?*-80v59uJ;4pmH|qer;iL3eO3l-3csSJ^kS)Vup#- z7`w6egHAKsaQ-sd;-5bsN$fFQZS^pD=+b%B>tSwurWTX+(S8x{OL4@>;>`c;tZ_>I zTfoJ4WjN;ikAM|t!>Dl83kmSgDNrzs30Y{91rvdJ!9w8oSazW*_64Bqj}Cf6HGMX5b!>;~ zzw)sMy~C`4pI;$&k(v5~HRo?EBvcPk04b;K2qOu68QN^GzIRqZ5$G>4SX;m={9;=j z>fvI*ut$RLE-6x>7lVE;XdcF$0%tHpS3Ruk8sb{Exh>MetyQNVTcREvMbtUG*hk_8 zARqX%o4Waxi6v!k3LdPaD=EHb;H9rlmBP<|+IiJ~{<2V-z*B>|1yrIkW;6ER2Vw-1 zok9Y&ji{&1t4 zhECgSLUGdIaQ(D>4-b!a+~_s9uYyTn01U6iXFsFClCHc z_!MtOuiX@Ntkp@aS1U)KYxw}lOo_fL6_!u8e*EP%l^37%MeEGHRT3*i_@1a*9&%UY z908LaiO~wlXKjbfQ5gMEBbIfPoT@))qKr){{X%@nGNH|3%u;Wq;z61$yilFSy4y{x z#aCPzc5XSG|FXV!1baU2wfv1myOSFkecr{W;^}IDWnAQ-fE(ZS46=J;@o;-Nkma>d zWeD%V;>fsR!gQKf?u1cxngAvyFMF&=E}VyR#n%}Wf=gM*2;T$vk|@1J#yjY zsng?|lxU#hk>1P~j!wFN#2rSSVkU3zC$@nF`q)|{uo zPR@-u#kN~K@=;(%CS%43_F;ZsxNkpjVBQ|Fenu(0^&J6^IsUuPD(kxwo;9p_)? z{XvH+8J3-Hpwr`?t`LESmF zREpLn0pTl|>}H%cu?vhE0CUAfi(=&#XC#d2nCGiP;f@RvbH>2qV=kjiCsPG<)>z&vzYfmijp znVvptHt4$(Wm@Gsc@Z?+SiW-3<9rwvc&%^<-a`}bJ)XErgBwJ}O?9&f!+uL1&?b#1 z;SyIf7j?B67?*QZuOT(!p@Eeb@Pfb3$;wu*(4f~}^?eLcg^&k!iE*fV(SqPXb+sWdQ%B&&M;Z=H8j+vVbHUVn(n6CP>gi)hjvp1`M0eONC$d+D`hx? zfa-Cp&6bfC>ndbdLgAYJ{5cS6?S4MaPbtAP5agI2|1aSV|Cb}u4$|=IRF?etdedwW zYM1NjT04^h{-UcB-3bpO2$?Vo??S;P>u%nWw&Fm~r#(>O%pFEC)A%rWl9PQm$3IeoAW_YibJ9EV@E``fDPd?@R-u;9K^F z<=OK-uYSx)zj0K?QWrD;JZGS7hQEx#nk&z~Af9OZo0q4ccVP&sKqOmJYy|9hw@``t z>NVM~zhA#Tv?{c}P2t3FG^qc44UHqMGH4RNhN=O7QiYX-Yf%j5xKU`_HtaPc7_N8y z4Xw-(l0Fmls(}WBLm7gFce+fjcnV--;6)HWrb@~V*<+2RsbN1YTJo48-5$aFFBNA{ zqeZU2MQiI%59_$(`1otoyHmJ9*HY)eJiy>&WRoxbUios91JC&vV8lx-lD+_y8O>aR zV*mn`k>%0?oqunfEIYSN>IKoy5z2BXy z)gr0P`#Q^)`gy}T%>M9jiwlPxcpAT71!a*Zd0q49n`9{6gd&3{^BWc z-0%l9cvIJXM-_N;H0m@Ao3T>%>h?Eq=>S{|3rnqfjfA~M1Vw)VXj5C z1_Ta{kuV`Q?7bqETc7Ix=+l2hXk$dzWMFW$2;fSiI&ueqCMsSyYEF zJ5(^etYkL=1Wmu;y`TlU^JgO zOB>V|K=2v?kbH+gZZisxwwqzi5#R>6V;jgt`kA+Pulza@ewHTV_3@lQH~4 z(THr4OJS&7dx74leQ3QYHqMeSW63PKPfA#&zE$yACs`|MjyF(1Vq95)l(uuD%fn7_ zt}L1&a!L8#-}8r%3Yshn)aMx z1AiEy!$z$11^fd1KnpFwVA+g4(-?8Zxt~^yD``Op++hgg|C#>i!4Ttd-DvFNSK)<$ z$Gr}#dTDn;{KGDECJsUtp7F0%v?g*|F?-DL+wvH0-=LB5_gV!fEkLs&kxty0a))v^ za^xwWs32qtKGz%LwrW$x6a^32T1k$3r0f*Hc{|(uRjzwipl=CJ@utf0q4J4z|F7y$ zE$}B*O@@4DuE{zXw;e>s^|#D|jZ`E3^*3^=+3FTI?^<-oKedONT3_sQx$Z2I-^A03 zybF2=3Y4ki#coSC-3*he6et0o?%z){zo^YLhPUqseo{YO(s>mq_Zig+DA$0(VN!@~ z>;^Q9QC%@wHGtv)>X}{t-sY^|?jxLm)ih7zdafk-~y*@MOW~5ApgHS>~+@fBa`26R3iYAprDI(r>?i zRe2G@l4Ob(;+kfmSZBeA9t*hANgLd*eXz7#*FW`c@`R+?9j30IJ35H84Q!uLSqLf= zY$V!S=thkYAVp*Z@AjU3e=Gi$K4CVn6NTn%Ys<6XIq#=u4`Th6{H;#+t8Sfs6QpvG zmfJM5)q!;B+)jJM(#?$D>7VpUv!ij(xFr!eUTr4@yj>#rMr_7-q9tQzPhA~$}o#iMRsnZx8 zd_34=;+noXH|hy^=mb2zP~V#$v-#(Je&T<~g`sj|^$KnGoCZDJoj{GBTFcAIgghMV zd++1Ab7Ht-7_LQPaLGDNFN$kL2CB^8_z}i-TDcOWz29Z*k)YEW*%lAI*PfHd5JSMtdz3POJa< zfZ2WO^1^2y@3*k+B}HWi%gB*8g9vPT$&8Kos~nNdJ;FU`1~=-&8=1`s%FAMVH7hI? zJnU2`=a0-V7uK}fq6VL?@Z>%mS+(;F{c}rGD`Z?~$`Kdv2T=Bl8XZl^itQO~(dZ#< zM)6Fh1f591eFXjs3(~v3v%W$x!_Ig|?Ob%+=Q~=Q&*+5F%Mu?@3W!D)@G50H8D84A ze$mZ7B~hu}cT-f)B27*w;oQ=+3$*QzGLmB~S%!$;5Ac|RJ5bjC;5P;J*d}Q*bIZ3x z(qE{8E8IID5rZHN{uOYSi}P;wfK*!B^+BGLikr9=@yCs6lyk4} z>DLYufmiqUmqs_SA(YFK!75B~$X>)B&DRKjrqc8-E~nuO4W25!sE7>Ej`tUR)~(w# z!j5^T!%FNpd zy=yl#nWK*%KxdL1RyQ%~i7l^j$mM;W#hfnLo1^J}ESME(-%N<*XltcZXN_!yM6lcX zjAVSbKk*cA>c8gJo8AhIW&E^lWT_&VwZ6U?m$7{jnXorBQQ46<^|0j?Pw>}%DSo2P zp1QJX?`w_)`#}b}b2Dv~@YYHDscKc9ZML!3T$m%gZ%0WE#Z^-GFH2l=xhHQ+!SSA& zr$%^~G6P3Tljg{sXFy`q%KHnO6XH5cXWWfX@?R)U2_p zA;AC(rEk3$yMCO$JdPHRH15U%RS~u9D(s~cowdiDK=bzfKm2pPw?_XR{jc8m`??|A zpb2d&h8Og2UeJF<%`hJ%7J81I?2sa=w37MuS4OwDN-PVuw2~y}?1mQDimN?)6d%NeG)05PG}KA=Jld}^v++k1nC6rs)#($NJ}Ujz zrDY`fF@73w>X-B5gGNccznZJ)#iUdq_c(GfM_Uzt`@+K3cnzt=&PhCw{yZJ|vjALx z`bLBale>{e@tLl)`HLTl=B9uw@r(UGow6Qk=jtAz-7exl=4gDK*+iQ&o(;fE%dI@dqtLufVrc7m!rg)qDE^;sRu>_|eifZ)eoxB++E#Vep%(VYA72%(R{aCG@kZDz!A_) zOu>G866=6-()x1MuAbT9R4HJv{s3lW^l{0{mMvh63b(viwbri^a}>mYbar zagGKd)*-ZYuUq;cYV)kEN={;KL7@+_3%i-5*|&?dqeXU9q$-*M&z)BUS`$w6E4@&i z_q(4z7aYu>2{F!Ka2EMG(s+FX4mznfFcBa8`YC85Gl~Z_7DBoZ3}Z%f2~?faiSuw# zYkjy{7KVU_%x@Xbv4G>|vf^k~^_vMTpt3%Z_D40u_+Pr_MY7}A;(_{ zr^VGxn|h7LYI}ST{VZx<<>)zwQ%P;JZn}zB%59<4L8<*$*oR!i>m(Xku1~DG3{o3G z`kVlxiSYu%d15`ULOZAxO6ktM_sm$V*uI%z#If)WB&EoR^UE}Ss3O+ob!N(c`9P8z z60_q5%6r0eLk~0)!G_uXJLPX)w8;EARsFNFRaj5_?@5qN*R=ysBFe}>wZH3bv0 zD~cb6=xgmg>B+Q+LKx^=DRqinuGl&5QrgAXMc|XI6_Mb(ueI^ z1U~(aN8QRCsH?O*Yq=aKUnLcDioU{2)ao^xehM~u z7_N_i8FOaKHNP+hHpU2&-<|u%rZGp2d;;d!^RKRaTXzJ(20lzE9mPW`O} zM70(-MT$Sy2<=aWGh9zd$*qRBE0g3IQ9a1#Mm!7VXOq0DQJziKYb)CAv~H4l5p(ju zi6+DJkPxVB%)q{aoVTtYyd}6A4EXju%3?oD>2JZnd5r58J#QSvP>0u6zs5Ofmz zR>qF$Zj$?f`P+B2-ZvxL)@j&8JRr45dPIT?%Yb@*g<;#gFp&#Rh?%sSsGBsK+{Kq! z?}?_!vIkgv(9s=jK(r{qRY)+wOC-^_wp0l=F<^dC$`RY}Ly^64ZyrUija=OU;bKff6jjQGY-WW($AX#N6uNbBvEUcUT3*>fihoKH1n5qFo9+cp1H#tvl03wH6!_ zu{yG_@aF;j^X@F1+1l~=`K z;0uU*4{f2O)c@H?U`B&r*^Nc!0}fE9#T=q8ukt!2Fd2AM*=w7Ye?( zKwa0DzhMu$PDb$;Z4Pl*X!cl;lhO3^I`uMAawZaH1O;G+R$PtmSTBDf0=TH z(QTr_g-aeO+z6J-^}v0EfxpZw$FwjPy@;{YQg(B*%2j~HO8DQ!1vtWdAcfM1iCYAl zh)aFv30o+DoztqQG`UT7Lu-KwUYCG);df=&V45iSas04uH6-G2<-JptM;p5cw`}7s z1nf0R3O=nH6Mw38^eR|3TsGw{WB4K3DmMK`wVb6vdvD^UNx&`3L$0hPT^&V{U5pe@ zqRl~5BJzi&BC*4G{dV8R^mRyXP{-XxiP$mJ-pcH*r2%J$!EK3i(0enC)PKj$-CmV; zQ?P&K`yHw7kE0(HV82o9o1ce*5$cKCn@eNJL|qD9hYviue;ifa_ZlSNO?1q$TUa!Qkold!+C<9k zPi4Yx3<^n0 zSSa4s7d8WEG5BOweV2-CV6s%Nff99QlD%z{pp~FfJ+jg8^JlYW(M zj?PoMKad}at{TR!x8H}wGkB#{iDb@^RCqf<(rKnO=jN}(FLBm}G5pd6T+f+V(;f2e z>Hbn#sH>UZrXGpKC`jXMvX8;Zek9qR=Y8rD=!e1lSY>P$Kb+3$X4&Bn>Dz0_jkD`F z)^k+@tOpiI*M#Y}eV9}8V8O3$lTY>DR<+B0C>8U*Mf#h32&3D`pYaF^-wHekTm)g~ z%oZuxviwx{{pD=h{>ahyL_;KLS3= z;fIcHdqWTXR2yZ_ppnMnd`lGWPBGwWP7~`8#{2yd>n*k^rBlGSu1Fmx@Bfn@XZjUbN7U6wtMTs$sg zUo(su-TC$IIXL#tQ&S%-s8TGn7)JsN!_8&-OWn`gu0FTr-rt&NJ7KEm%=`(0j0+-j zYkCp$$8ATaRa4(qg2HZIR@n{^$?1(x23|qM{w#cHhgv+F(kh>KaD9TS20;r}d$~IU z&Rn9u_^zIY=w)zpwhRQ^VSUP4K5xGRPaH5yiNkvneWq<^u#C&*HZ5 zU%rLMSp_8}qb)@48>eKFVK__Y<3_l=SpG3G@-~z7YEXC~0UJwttUvbCiZPPVTJxUx z*dpg=dxVRE_s%U5R=5wk`fJzzy|KjO(hrQPW>8=q&OSh6n>(1*8DEL(;@~rtd%LV5 zLc2s75Wn7A-g$=!B@_{K(x|00{^^t%^S9mLbtg;(XR(B>Z7P!&*z1)mcx=DkvLMGx zFO2v?>z=j7<8!m-saU_ZA~-K-LQ^CyX4G&2;P0r*KmTmxdr6JBi^z4|9!P5||6q9X zC4hLqw6#KxWjq3E6GXoPNUUAq;D9q0PSK}&q ziDi9{wB2E-h7;HusW4FW$h$-H(3teV`ZT|N3!C}hE$z6YFh!ZkA5SYLGI+v>qXa{%ApKGtObA+Z5$LJrw z%UUqx^HOSV-8Z2`d3b$(_*1Xh0Yc;SwpvgJ>UpvT`RKHIFrNhiXgFPtsm5{Wl9(Y} zc`P}MCO5I8wx^zIY7O1oqSFmw+ZLu2WU0jbpgN;HkE1*8GK5-C#TWy}tm7v}lT;NQ;v}`$;TkcH|9!;kQe*$>r5EGl{e)XOQ@uSW`|jpyn5q(I05jt zA`ymtbmZIoF}0Y8fj-n;!2|J|7}&enBFxc3-_A+fi;l*Ewc|1ej{;L3`RO^wzw7qE zvslN?*)e(?&11RsT+tWr9r8QCOo#Hm&xz*WTc))Re=)AC#@YR1ja1?hFe$GbKriH& zAary3I;y9=(a#QeqU>ej@ExK<@bGbl*vuIf($Q(WyWU%W8ddSNP3w=0ON1d&e#wQUxg&&_W(2CklJC;i>XYN>QO4xIdDxGdfmwz%KOZ1Qtzyjyajl?U)P4RZ4bTw@|`ghlt#OUvz?mpwDp z4-4^WN@(&Ky>xQcks!gH#UbU-l{;aCPneC|?Zmd_n9$DJddFP@Ie2}==u{JS=RBD) zY0saVyF`e&g59hT>!fTfOyA`#}7m_9elakSn+V~=|+@+yA+@v_AWH9{rb|B1;Tua#NpE3OuhG z`!nT`o$y?Ke7gGRg2GT=J*6%JJ~dhm3hFcDhNif9|C-=IDkCVDu2)8ySD;Rv(Abwo zMt_ypZ83xN$U5CB8Why62!6(-}k8&iAJPe|j0p}Ha9BnIB;rEE<(*s^0ZGFQaTZkFafENW? z1)?JD?0_5CSzkWYZndO6w%P;qHhjtC7JiWWvLmow?2pmoASkS3LZrw0yN_~1j22T? z2>U`B>4f}>+t5(3HCcGV`51T+S64DJEk0e2EHVIh!NK)7BzuPf>FS)u3Gn>#Z#kY#o*Q?IaEa7x8nV2cPyqK5P%4p$n_CzLJ(Rg$aQ8|N#RYx>;= zhfBs4_!GJ#p(HyNUp*dsT288;;As;OQdfs!L7if|adSKt)`sIv>?y9HfnlB)^4`|t zp&n{O3looVljeTxn{Mw30n0XWgq;JMp3WjyxLujZ;m0Lz$V6$K)oCf0yH`4y^?ZKn^b;GjG>T$&#^?yBvSEw1!IPu>cvnn`Y z?<-+MGWq_q_sx=wvKfK?DDFI$m1Rnsy|`OLbU>g=`PSXv`mm%3e=x+vbno|_=te~0 zBxbOzMtwG|3z>>~m{#*%M>f#|U3>aaWnTPPQu?c;xEdHI6Llm!-F`)%DCHO5&TY^J-ds-nodj(G?HY0!)rP-c z2&D+5)MobJt%vc8s{1;YAURSmzrA4U<A=hHmdzTI?*PiTBtR|2!ZPRZ0 zyWW_Cj=A{y^7!KUMYxdHjkq5z9*F_+`X)Dpfhi3~U+=1BHSjs=xk)%OlnSGPL{g8OH!HKgJt7Xl*-bwkMLhXdSO+E>JW*! zi{TU64*wF7CzaUV3~l!z$>daK2|6tH5*0`u*GWDqx+^bRub(Qy6M}YovzakG3OUj< z?TZ#$PY^F)6UI`9Xr-29`}x%??n#>`c9V@8L~(N>na7~xdfU+RU4xb&=T8H4)(6u? zIc$rh-0`GnI(xFxpIz5$X%?ciKT-^yEw4Y$Cw|EWlR1gOqExS2s2ARq(w+ADynU!T z6;inDA_yO&{1ge2{EJxH<>IBDMy1Wbg|^ZOaB?^qN^ zi~ulvh8m-UGP|6SeH_uV?=EPaW}H@!s2q<>7&}N#1;IC0aEFx$@sHTdu_GaqOJ`uv zabD@e0DqkOHy0E~b&VGX|4dmi%jY5aZ*Zvkty}CzRqoS0WGzG49QELbJj0li68&#N z3JqKoR7T#?XnDB^ZmYR6t(@$h&=9X_D$Vz)k=4Jj-_(&ZFizztc?QCwjlIKg@Q;*! ze2O012@N3hSWC{&a~r%0zS&8I#JNB#n{I-`cRst^%S!LsXYG{YIKKFQM15sk)9)Lu zA`*(E(v1v|?k?#Tl$Mh27@Z&pB^-@!f|f?zryj zx*oNvN;e z^+AjEj#j(InIb4`!=0khdzJG$ai?RI1K;L0p2xv$pqj9u-unpGNESZ&FJNaDk&m8u z&jknb{a=ifI$eENf@T#@XL5AVy%X$MwxV_2_s;bkZeG~zIXacx5a1Aall~rChCYM# zfYXgljwr`FIx(H*M}H=zPKv*z)KfhT=!`_tvGbWr_cn`xa06okPnop(D7n!F+bG97 zzMsVplkA*gB`zo?Bxbvs+6J3ho8DgYx<=%E;DDQ^fYTxz0lr!pT*W59z*De)63bMZle$PJzde;BDa1vb@r$NumyRyysxJ&M1@?st4 z)uehKSeVs6h>1mkWZ2I)u*l>AS|YZ!mvE{NX06fN4)ESG_vj}NUEE&?-ak7DmWhi@ z?K}`RJKC9eE~a^-E%t!P@BDf0l$BFAnxz*rd~d))AiA_BJItLb$vOl3B>o^dF`Lrs zDn7}1vAL7U**DxbhYOO;zWu?7UzMq@bM0n8&41Ez{#Te(apj|kIxJ(Uz^uwdu@>f;M4`cdl+(j zCp-Vxy5w;4wVaL$`|yfKIx-O5LyV*A1cy`SxWsp2K*1!47jq0^hU6fT0T-#aT&gm# zjUt#fI_V;=1hY_G$f%eLLxG>&-wQkgKCuMhf@B{Hi1&I1%KtTo8r2d%B0WE(nqIfTU{ zd=Zpz0Mr^}vNq~RMEp^Qr+dBeOHSFR<57H?PZc3-mJf`W6||%zta{nXcqTWT#CX>O zj)>P89>e$}(GgFN=SAvhmMB&19HY_k%Ce*oOI|>kF4DUHZ?}+Ycuvm!ObO$fs$%p2R_U9jTQ!nL*THsJF{R+%s~qPbs<|c->m7MQRx`-52(i!A=Cg7 zWy4fojx?HxOa;vIuhzr`VQ};JbrvI})u<9)y^#|d?5CQ zkpuX5giSk&tLuFiX?+#gtW4jOi3f*Vgj^Ksfuuk&j^tM)%k!;X=Qj=)!@FYVn-z6a zb8+qCHrMfx=842FX?z04sYXs*6vBHoD|=O~{Tkksr`EA8d_*j|s}>^y4FNV7M!>5V zN(3v$>KPQ+#-}Vv$G?EWldYDm4;?H`E47u>?0XejexDUaG>a?_^UHoaXoZZ*ip+UU z^l`3!K=6@nPNkTNQ0(EF2d`!Nr0mIGWIQTb#Ck?{=L6Udf@DB3>74;D+3pQFg~nFogs~f%O=mk*E2Drh zz*m)h&{KD+>;U)hjL*vm7p~(wz@6VC$oa#Azm=j5;c=5@%e4ralaYC@)#(e$uy;8T zNwC}=6>M9oonY753b7+`9dk9UOcH!l%i10Rl_kKgUQWtwxjW=iQT1C$ z5AH}s9fY3`hYRJ1x6EfvsWIqt+4`-$G;%_$1a$HzQi*tuiyrq97({2@$5g1iQ=s$7Rnnf@8EvC;>mz3oMH}MZE!yAeymUf*zT2DlZhz0*x5xbYvvRouxIaPo zAbhQV3)Ed>^f(@N2`zXLw>42lE<3Nq%zXT3R>&i;$Rj6PQZViE!snDfS}O6!{7-YA zrkT~qr)_4gape`n>pv`%-CvGo&9Jt6H@)$>{O0_Yp7n1uk9SM>rq>!+7lt)%NNCtP zthqFwGD%Fw(t}4Lnw)yvQMbVP2U@=YZb@#1alKnuNf@?vy^6mIAA^pb*B<4K)OO|Z zFZkvz%<;xJ#_tJv{IY85GP4LE+de;=QfvG1vp34%kMpS2n~fvektZF-g~S@L|Ng&5gdtTXS;ShjiGa*eJbnCmu$BbSU8OQf|Svb>mPjeTTLb9%UYxYpz2n`wyxT8ufZ+|AAjKfuRA)u67GZTIPs2idkBUd2|d zDq)PBYl}+cs!v#xg-E16I!^gsY+gp|Klu8>XqrZ7gW@NxY1zm43a&Jhljx^H67*yB z8DF=sU)zfG&G(4D(f(}Vtt`qKx^|1qkTq(s0a0O72$rKjH5Yw_-Ua5kI9tmGe$G~6 zSfw15-*gNa=Y`4bme8s1uW)=R@^z8y%Ckxy$88*0m)V|RtbNUWC@{F-O(oJS-P z--m{+2ybAHB1#XMTFGq>*PQ`OO8UYLY1SVBt?YXCE9|ZM&~7QW4qur_62J>PLk@T4 zw3%OxEL5;z@se4b95HX0IsETXa!Jznxz9Df48Ev7>5vW{7~&+<6&!yh_Z7*`fEM4$ zjZEw$I=|f~+8z!sx`Ov?n{T&7pK^w%*4mrgLO7yW%&;U^N^&@H=z6rLb$X6D`mQ58 zFJA_Xt>Q|r6jgI=r3wNq1k6^{wnww}`h2C;0Z})pbDC)^(%IbbD526-X+{~ilDm#LF&Xofr46~Fp$y}_Ep$^G-7F|W{liuXKT^dKFVBx)I^nO z0wQKpVfU-2+y=VxnU{WogUp~qJZET75jxj-(QKexw)b~_euLoyc8x^J(3h(&O(|#b#^w3GuhU_xctWtb#so3 z{)ZYm;LG3fjHyrx+5T6mV4@%i2#E=^i3)-QmVomztT{%*uyJ#g?zeAk1ki~U-{j+^ zDu{s@j3YNcAE>OXXH%rYc94xngh&qo5{1R0e zaX&OWS04)xqP@0eoIdI=X(a0_Moy|r+yT zO{5_Nm(0F@$dr)tEU^go*5J54;-hc=(B`0J&bRjRgX*QSm_|l7!;*573LjIsf+9!0 zlC;#C=yF|S^=+bI7T`zLSI)&z{!#BK7rtS=#m6u={o(wymXlby;6@@Z<{Q55o5T|Z zYwm)*vrX>Wo4L+=H%m+sEO}|)FU=pw1W*e9GLS}YQ_X!9Iwg*9;wlh#8c}c?dnF0XR*i0Sm1&$eaoH8{QWuPOOhezjk-kgzsf14q8{-pPDTgHYtiM1Q7wEAVRt zsx+-==^MU=kw%`wP%}K&nZ2xlwcyuB;c?lz)XhP95m@n15^!B|RI*$rZ~QA5b9sQg zfbs+l-C$Db6!iXLg6cA=6(PXRQ4$@))M7YX?wo7vMb0U|K1LpNIDi#YXBR*QM9<81 zLczu+K5JXu?-sd3^0TV=r%x%cFZ!)q(aQ7`y5$p6%(XO%e{+Sa$FEPv1K93Tfd|(gBq}B4?!p?I(gbtQ zSV3EVy@>RF+TFggovS)W%p*D<{KVPTDCrlod=hVh?5K0Dr%QyglzJM^+5Y49#R{XE ziHv30R&xKx`C&s%#U1}(19_8SKv*xH3eMFrL;2Rk20;|=$O9Hk+C*h4Onwf!zwVK% z+}ik&^$Py8h$5OFTrziH?K)=v!!1WgtRo|kuLFE9=7*Y^E8c$pQyA*XGBHFUjsOB) zw<+C_xKWDI(YnJsZX6Jo>oGU|I9v>h&4b7sj-~f1=LpiE+cw*8Hg}0cZ^1 z)u1nlK2I6&0OxBRVUD4lx-sVSs$kAQ%P&-bn_J4nr@pdRvZe-!&!EV6p?%(xJjlKK zgWKI>iN)A5URAeq+SJ6~Y(VJe0BcvG`+gAOrvguV)c|K_%jC$NkTh_w5chsNKI#9< zC?)-R_I1Pv4hw}%++L*yX*s=w%!fJoRk~Z-`pSnKn|a?U&)zs}i1UBLS1~k`G@`?INRDIcJaTHb~NbOc3dW zbdX$7CBGVUZA6kp5BEbuYQ!pfgyXEr7L$N|%`XzcNGRH=N1*r{d*1=zZSwufwkJNKAEx%lsCOfi;QdQWIemPcaYn& zRDEJ9uqnlnxh@}!NA5+m@rnzBWH2+(OBU=r5?24ahJRSasaOW^MFhuGYl8~SGuzo@ z>Dc~QbSQW;zq5|A4><~pE;PC6*V#efKc z7>`{r>+M$mj@;CL_;ZUAvRZ|tWh=Vv*D`5wJ@nmzT-37G5(S`oq?~MEd2)``aB|;utn)lTFi8|$@ zf<3d@!BrTVAsr21TFW2W1$v+e9Op7hhlde7pX2Utgex%w^fcrjN5=z_g49nIEw`3x zetQ`j`Xka{(bplzAz*q{er? zsl!!)p2Xa(h!gy@@8saajvL=z@{D&D8b|vow;voIP+1 zY3M}y^R+*XxP#PT|GazD*7Wz!_cS7f5P#ZsZri|Cg>60X@WH5e5@kZ9#|L%%- zUa;%d_D-ZY|LG#hssTt65C2Y`1Dp$zB5^LIUeI zH^FBa{qk67{qk@E$V;dah$ZNnI7lS08|OmXYEq?i;bTp?+Wq zRc2spv+f_cJXc&~9*Tu$5sew@ee$oN$XuF~@vV84Kj}%&3pzteFy*hy)K*5a1Qsp3 zyiQ|_OGm?!w5bQ($*|WF-d?+Iq6IMQ=cwG}~Pp4wY>yCBf!M#o$uHNBl z11nRF-Z#R28CL>8o2?BHW<2@fFL&K+XZm%qj{Wx$g>x^)J|2(yrX8K5E>px z_;pdEJKmYNZz)j-Ou3Lv>yd-2R^Dy^`<`6JJY2>Yyyld~$HNTf zjCl3oZlx-<6a z)wBJBAxMh{YZ2=v+aC`T`RXg%jm=lwpJk}>(>@;PuOOl&qKdxXkCe|;bx&sf`II;f z(NB(EVu@hBnk(dO4Um%-oaht?i;a60igzu3_cD~m=J4d#?%VV&-d6f+DAK4-vl{w# z5#3a99UZF@ss@sgx4v1!37BU_j-R4;_%4+f^=9(|v^6!|?uVUYuY!)10a2z5t<~%& zq6r7KBy;q(ijH1bMSCtoSL?7v*ocFgL1>-C+2^>FSA5x5usw9>2Ip0@-mZ;h$dk>l za6j|Ta{ETEkM0J4Mx?(nH|^*oIY%T+tUN=Wrc>1H3~-2En}4@XlY@4`7#pFuyTcHm zP3_@sq$&2i^8b1Pkn%5>(W}ZKzbJ8YOaRvgu;cL5GmwtPrI?{hbaIWGD-a(Z|1IN; zHp>p8$>Mt7jVIPh8A!q2ahc!g!BJZ>c!E1S;JRYs)&9t%{fe=H7MPu**wQU&$@Ewu z_hdi8`|_~ac}qm~`};9NmYgF#7T~q#VSaxHQWMaAjK=N_IAuh=%(91w1|&4{j<1Yx z1nn_sgFM9jopWaP|5oux#Wha+)%p_Fd=qg$XGF1cN)o*!?(+J#MMKe|*6K%sm5Bk`*~TfWS(aMzS3s7qvw5CgvZ`QI6b)2)##RXpO#@UJpkap~gA96Yq9 z{0`8al%9bw``qcgV)I7O_B5Q1g0GK&^adjWpn)HfKGtu6mA4Dpwln=U<5L9v-6_^4 ztZp5Wmy98Xg=f@mVUtfoOCGt59wJd*WZQ|@v}sy*Qc~;@^yxVL6Rrz%k{IZZOiYtr zH~w0jllODD5bppId5`qsx>xs{WcT@-VM2C%_x*f*We@oVr4`Eb_8n+o=;5%;VC(f4 z!tXj#hH$<<3HV%RoBNL>_3=yk5UZ|--tizBtH`47s$7}CCp33Q8!W|Clt%wL&5*`sg-K4*jAO-M<4m*XT`b#yqgW(!-E9kNOU-!!gM z&5M}a<~lnWiws=i^$A0Qh9mnErPEL|h12@fzeRcxm(5!b!!V9M{3A`{1}@{r9)p{D z>%otEjirvF%;Bv_lQmF=XFy_8XU zVcCA8C(q>B^NQbf2r7B;>hJ0O7Juh)+zK&i_%J421@e$DJl<3h9? zsTeGodSBKdHE?xi>o_wzYLu*ao(BiSfhAjdBI8H&sVl4|)4b>t+oiuBEmp1grN(EF z!&oAnw3642`D-E4+jJPr2uikAxc3fh+1(%6-d`EMreEtOkgmDpy!E6{ZM zp?nEgNM9pn7fIq=7Ai2R0n^Cg>iOEbOdgUPg-5*@nw~r6P@x0{u&7Rtdui1nihr-W zs(iUU+wQ{a8V6fV&{DNX6tbE#$?K}v{EhuVTHx`{lzL)w<#vmo!up4TM-&Qrk04XA zwE(-{I@!t*niuG=0#miK@--6n*%3Q0Q@dK}XN6Fhn)GX{IhOKz>8`#yP>{V4JNV38 z^!6**cLuZ-Qzf_&mZ?Qi{(fTSmT!10-3@0J%ZsN_& z&2}-9EjuKPSvM9TFIdj1-`I?N?7;|t5vr#6obxarbq?v&pIXE1T#X~m{74H#-Z>wn zZUN^;se<73mzA0A%v>fUP{qZiBvhJ3E=?&H3RAf6g6rqg) zBTJZ=rTHavZ&7}4JwjB6%cU1gAqjl;=I>ys`67rbrMi?VQETyQRaEI*=0FW@@Uq*2 zG~%GoUEjdIoFD@?PVVhWXQ$@DJ7jP5(lWV-9N`M9z5mM``0A#De9Cra88?v!V&yosT|wWf&PN`%8Z~dJ}~9?Y$no0 z-QQ-<*axJ%F>@YUOhnQ^0jOK)&n75{R9&x%7o?pD9ZQ>>1g>`@ePBMto*$8TVGL^oWbqK@t4TpkZ?YS0E;Cf;3 zPOEt96K3rFfu=139#Vmn@h}WIMkias&wAY~cEz{)Fdc#E5NOV)fsFhD?Wp~Fu5+6S zupKa-e@6-!fdgeXTG(D*oQS=x>lk?vND-TwGLm%21j*6k}CIC9BHAo$vC@tZ)v5Q!cx}C5+va`qZ!b zW{fH=?tI!zFj#oA%%MIkHwRqbN73-<${n+n_jLx{@KwaLlXN|Rb;_RJj|PP{Rue_~ znE_Y%v}T6XL_meu#*`4`P=-7jo2UNf=E|`;U5FZwNmsOtrn#mPJ=z=n`(m+a@_pwG zX72okp5L%Wo}oY;4=2n5(Qp=pTxLE@>X#`ajBfn;=_Y@#T#O)_MXY~F^`cvHz|DPr z2aDG5Ow5It)uAoHSHJBK1g2@&5z`IDJgCn0VlK-%9=n;fz2+f*y!KLMj2ZDH2($UU z>Te1K>mM!}o{1G;bMY*f*4%Le$5}{uXIL|}@E>#o5D60PqA?tqj%C*F1^61psikM5 zuU?iUH)o`LTI9kcD$D81osprQ!}N9f6KrcOV7Cr2L*MZ7B32YvSEVv&xVmc^5t2D z-GNJo1Q`vn`X3Ov;-Ara?ihA;$Q9R<9$zb750}lx4o3vG4gO^eu=4*-*PeqMPjscx zd`J|ZGzc&((szuDKcwK;)Ps_mg?^Xx=*!dk*mdAx)anwEp_QkMx6rC5JQBA@#7=;h z_zTxeSjb_$7dh~ArZVK1%{L^d*jo@HwwFWlqFDodhwhz_dJ}k893LWcW}m`3B;*n! zghs_pDuW+m&B^tm`B(kYbW9pS7w1|EyLMY8FJGgY$wuDjl^sy8c^S0*`@;9*;}PdZ zO|>=hbNIfby|k6RXdHqxp@3}C2T)npV9Bu`@P`(ZIYg63*SgoFFGaV7u88gM?bp?a zs;^+`L(=@bW%AnWcRl%M{$`bjf5kA%=+cE>)@XSc@BOuN6xeRsE;va5j{>tnPtH=1 zsrQb)^t=t1m{Y^x$4lHhqcp0Cjf`Q-&$vQUntBNpq8GKibl`ux zIdoH5@qMPG_nN@k&@g>6Vfp~E$YsR)+|nx!@)b|o?^?$a+mK_$JNGwvR4W$_Subwz z`vevWQ`tzb)qD>;fsd$z5weSy=3xF+_z&A-)BejEC-Iw4E$#sU%Qi*Yn(t6VM@yRm z_)`Osh=dK8Cd~3ve6O^jD&r7h{lU5DN6?Z!M9&blRwcK8vT^0h`cMy&Gcs~;9zHRK zC0I`8G!EVFFfLoRj7b6SAG!(Hgq(`&s9Z73&0TZ)P2v*tToIEEaZ?#_$ZUSS9{Ri& zDPe-tneDY@Pr4Ot_2y4f{BM`jNV4+rU1OM1o zd2#qwyC`h1D%Sg$sBH0&ce_gECPPE^110y!7FOhmoT2JOT^W&ULn#IpOQ6E$6`WaH z%~`zBwPy)C{i!J7^AU_47BW`{WbhGIgS#8GS^N;Tj0X|;wZCg)k?IrO3X=$VU4EHh zCD2q+>hO(ZxYOnQQ|PnG$E&qU{XsW#yN-~TT-1SUB0rZkNX|DotY<vG?`5$0{0%Ih|Oc9XCQ5VWntH zz;k|X7QkO|PJqe7)6`1fiCPveL5PuQF8l4cG3%M`d@^5L5Gvon59f0gLX}c<3HR!b zfy-NPoWpU2!UC+S5g9gCF~Jx9?Kg2G!Hd!Kb0l9-26SvkgWn^I00w6B&s5hVdrPFy z!8X^=X<9Fd~|?Rh*~uAJv}3zNqq{HwD{> z=D)!piZv?|Z`JC4j{xU2=^Qr(-)h7#hOr%;RNsw-4wH>P1XajbxDI_%VL^q3ktkwk0>34lMgGtQd?s9yjlj5RGK+$P&HV`!MPe!tw+u z_;`uifccO5ohP#ztlO8fs$3<*;lV0Mn>)6`Q(gopBTAX_b((O3?ovHrgRVKDWjr}e_em74ZtvCEPVgH4x zTeFIx7U6cAezMlJ9yI7c1a19zweH6FA5Qq$H}V%_qaow`EKbwaA&WUh;!=HzOkM6w->!TdlY1HJ{{5 z4y;0FqYam|4&ec(UzdDpUG;t(3!4sia&6D;5q>I6Dwo>ZcdP%`&CteDpwM+*jX37l z+>6)N3EIp22XaZEqKQAXaa5zyH{KnP70iE^KuVyj0pV?QFH9`A6@zc-OPdRs8%(;p z>-K%jyq`aig-M50QsDeyYe{FObJ;B$R z_G-9C09W5Io!r!r5{k}Yt8YXb6l+^CCVlwhN<^124M)e@6_uu8nGBW}?PW9MJOrqK zliHa~{w5u-j7oGps2%b#0~;pDOg!f5u=ffXFWjWu*?(NIq?`R|xl!5)VNQ!@{>{;C z4Qw##t)s!pqsH-3e&p~dKWeIK8rAx5F<0L{1;lf|ds#8+o~_^1HW1e(YW-#4ZO2Gr zPNArNXVb(ah-g8G&fX=b-qqocdAw@6yUjpnz)q=5Zu+|94<}|Ro>|(_hgq8sgHG8Q zcQTfuXBgCn#hR~M!;`~JqXv}VSA`Il!g;8{l1;-KGHBt+d;U?4C?&(}{O4_MKIyPd z(YB?z>$m#oV+Eh=>x(D>QhgCWY7^Bf%4TN}kB2JfNz-ZJ2?}tM#r5!ugqk`nMvGNb z=Tbo7OnXB?x0!k1z&yDAWc4g(Bn?KFmd~f%)O;x3w1hXY;?B|z9|=#yrZT zw%g@pF(&Ur^b{`)U&1h&eE`VaN7NFfb&)@SoUzGD_bXwwqYta!AQRd0Q%Z&+q{HEk zzsnl8)F}d|v6)J57dL-&fH28MXq3@EIPQKZl0mnz^o7jn_IvaR!GG&}7XEdz5rLVZ zh5sL=l$Z^b!wmd|DLlaXyo+>6Lyb$&2v9_iq*H{l+C$|CLFc^lAumHaGST<3`Kf?7 zV9j;I1@E^-lB}%<;e_qiGq%OorGYz$YZhcFafunr`(GGt2IQTl(#{^i(k5bgVP0DTuw9_?cEL^(%rgi}SEv-oKt^!l}j15I9stX(V>7ip_NHp03ToR&wi2{6gd-j}Q z_?VG>JIfqdNJjTn*ew$5;k1P$Pt!}SMu6WIOjxr1$t2xQZ27-1)Kffp0J3D|BJyMY zH-qfM6wz}442v&{1+1fNb;7v@IR#f*niDmje zHPXh}jHkE1Kn+&NG}zG8b454p?wLBn3MAQ~`K>+Em^ z($F@0(e~N)9KgO(6LuH6T;+UIQMKLA(-oUiZ>^=b;aHWqZxKTUJN|x;JUztms2mt~ zJ6G+|9(w6ZD^JYjgE^zEF}uCI)-4qj;^Cq8`_AC;9ml}@3Tx7RMXV8VXODVT<$q~Nn{V*TpE zNh!%_cs~Qa_)ILh7v>a_1WD*DHc|OgL*jpMc6Vg>P5f5(KGED^i1P%`^({>duS zA9E-|xc^e-I4Z8Tv1M(%V=-@gOqJsd5;hk;MwRYl6`9XZINHJWXR(%kt5q3BYgIx` zzeaw#LcCrVQ*2d^Y;3BQTi$jdkv5xhB1aozAJsxJYb;CYCt3VOy?)CZn{T->%8;cr zmLCeQmd6DVGh(T^tlKh+I1REMJKbyX=cveD%vwE(dpNGR3!>iBPEkjGK|GYR@_E~c zcw$OMnwH)ArHbJf456h=y+`Rqh*)4qvMGEUxp$4qa>SuiLr)Wu0WY`I*cw^nk{r4d z|71GZh&yb9`yeUo?H;|N4QoHgM&lelM>W^yT`TkrGr`Hr$sSvw|IA)!$GM-*h#aQH zB|rMVAr})5<&D+@_(yI3jQ+cmzaj29AtFhVVTWZ0cU2_uoB(bn*2cy99$rNZx=Z)+ zf{Wo0Ap~>e_=+huTEXy(L^j$dGFB}zPksBbEOOe+;)|w-+rz$+x45~c3(7yyZR(#4 z{}_~9nsUK|=DIIET@E!qXPMJO<*R+_74AzM9ktz!&5d&B^|A711UV!~ekM1fYb?Ep zMIk_)dwDyK?2nNAyXtzL!pF1F6ZGT+e!E*_Xb5lWSH$WmgQS4UV^a#*{4KTRMqD-a zlZiHqD1fibHQGin&VKp0!RM+qGrB8!IJvWeo|F(T;&~K%BB|k>oIY~8ooY<6pjbtC7Tme-i;ilVg-^YRZJk@ZZpOO_JbGjU{rq zi%-4+a|EEVkq4WBdJT{5?*y=xgv1Htvw2S`I{(W#nCpJH7GF|(w9-kbnCNDhqUZbY{WTu~o(({N z1xeRFC-D!~k`z7r!hqew1%!ZY99nL6@)gZ_NZGO^w`ou~Q9v<?3T-{sLwbv^C1&$Z*61qYHOm_tF9GaxsdVq8e!I#7N6F+0CbqzCEhE1j z#X2X+xsxWWn$OU)LjSkSG}P-?yK5E5L-+UxEJ+ly3*Hv-3ZV@xUC}djLcG*b>fYVF z@d6|@UFzC=JF!i0JrrK(msB*Q-?ACDRNuL9Q0>T%#;2fG((n^#89yq0U%Oxmjf(8M zUOb|VxPL6eXHmnd{LRiK5!V-J)lg+i4m8wSlsLf=MZ;K!QfEM0l6^mvb; z0VP`5xFk^~UO#UOCCdOLN8Dp7-q~T+vxtInmOoro6;%~~-XhKS-V7~IyOHwPg~Q;A zOiR-6BweJqYiK}e1h>{~alG=dz2&+zC1uY(Q^opaHj(In5;?cCmVsEoG)Q6{233&q z@U0}1L?Q`56yhi<&vHl!qhnLx$5tM=9j`!x8siW@lKTpu6g2PX@WA;vKa8`(!+zBv z_=StgGBcdu>0(GW@lWNpqJDjmhH2Or-nD_(MgKoSJR-G-?6lecMF<*{8NxTG6*8al zH-^oAjhZDT_7X3Zq{jmry}(9ZaAI!kS5dF6RS2!sqFS0*&nb9U5meTvAwRPd(_Jz1 z5BmsXT$)(P4%sT+oyH{!PHVdUpp896{ovGLbx!nP>K3J@1Wjgh0;3=<=vn=X-V)9t+?=I{7)Qp;d*ZGaj=5J(50TjAIq4plLno!8+u@H=!` z?tgW&4M@lHD>grr&|<58=SKg0>y;SlqAU>NyJkj6w?Tipubg=$=s1M8U1h{GYtUp| z5mo)hUJRA330wW&7&{g@jPi{&B&K+5^dH+`n(;4a@w~|)2+53}1O~dXeTh7NQY{Ma z3_+ueSEA*~KoLN>8nV7L6ly2m}P%;v_cf4TCuw*eIF`W&z*DcBrt`VT4KQcDWUB`QhwE zGqjP?itpLA82oNG=$QP7;#hICQ5uJ!!P zZnf;|=(kVjO-sI+_2-3l+Q_T???mqiBb87$qpG(5irNk0r}^VKE55y=HSkzlo4po7 z?=AwsfeazZCk>84Im;Z|2nmh0Q-8qgK)Gl=Sbe*k--~8@-jS-R&1PGUYJc$JSnYyW z@gQpceqYK~+mdow%dbRSbD8wQ(7h@Tynb^O>AY&F#^HVQRxYyF-AR+q>xp#D(3yHU zqF{}*cGpaG-XZ5MWJeC=&=T{x^D*q~L@mxeRSeT>d?QI(|0-+67d@k=9~{oMIScXs znpXj}IgfX_j9)On*TwapLb7!v;P?{7UmcC!MF} zTAfb$F*S(e5htRO+KnnIG@!4D>|F5IU%WS5JeouWsPFyu_Z1u@?@%$+Q#^gXwL0o~ z>e|GY5ScN;nR84Zw-su)KYV#ox=X?lvQ8Zv81R*3K1*us$Rv`dbCGLVg{$N)8+1@| z^BMUY|2Bp=0?A6HiqKZ+LpB7+a>WUPVf-23wrFaLb0u$|QEtIgw)s_UG5GdG8G6d< zjrI(07Z(0Q&{3~O?UWK`3?SJ0#F6THV?lK^YpHP$cgV=pKT~t_E4LNC2n_hHcc5I$ z4WrurRb#|m{mX9yTvIhU*}%Lg@?;LVhEGtPs%TucIDrDRb)7j(iFTAK!!JM-}{F!zl-sj&s!BQZO#8-eaEhrIvBrmk~<9b>D?$I85H!-epq#qfX7SIw)_*KH@Vh4B8GHIxME5_Q<2z@S9X~4z1{ZR6Y~igs$z+DcTQ2U@ zfN8Al!qRQu|3*91xLp$`Ka)B^>%11dL z^ujp2?ingfR}CHy^42@&+`N(Y)`n$!p|q%i1xU&?gJY9dOG-+knWLHbNqhxefY8bLPbYfGm$Omx+=2Nbwy+(4Xa10(8H`-Qhy zC-^O4!*=!B?E|tKMGs42{M77fgQFIa@n*i^1r|AdDGZzRMFC=so|*b~*cvWegEgbo zQ*Qzdk=;CHsUt!)y*ds2miu$S<|YQ2(bf_*f!Dxg9EeiVkPEUOn+D>yCn577)bI6Z zqmT<4kb}hZ51|QT-@{WgJcfIaEzL@7%B6`$$FJUE$M) z=uru0E&A4|qqhQ?C4i^umWF14dr4mOOfMuohlhMmg8P&p?r1j}#8?(iS7)YXNHOxniHHs${sDM5K-Bv_$DrM>N*svZ{RNJ}Ioef6P7vYuXD zdRmQ4Khx4$JQ5Ze+@M1kmB-93Ov@G? z%n*ss8(OW;0bxzon>13^GkUBq$Vt|SjU1qJc4e?71K^Fbqw8qM`ou0IvO5#QO;I~B z1DuHzom6ERt+AE96NQE5-#z}$<4>s~>k<(L_BK_$e{~8qX2r_VzTvWWFYWhq3RxPg zU7krS9E%=Y%Iog(_Fq_A>xw7PUrh9HmvUi2bLD#p+Nnk)S-~ao30@L&C8bbS$J`g6gc~kuY|kQ< z2uNSys>YUfAe8S{@Ro7ZoCVf!W~P?IW@u`{7#~A{(sm+qg1Updc~--}vWw&`vUwm0 zt~U60>aiSA82Pjh?Obi`CjE0eMwo^6gkSAW3p9n_kYu)G9Q2haTYM9n#4fCz#@gbO zWS|$e4oOjFKQ7}5MQBbgJU0DkC=G-Z_1@YAB;V6v@WokGFNFn+#LWKEZd&#@*mPIs zr|d((lI{J*gu^aK;{j%DTxNOlT9C+}r zM5XS-;2>FcJ}Ry5ZoC^;=PvYM6jXO_l+|cUP<5bYIAr8Led-sgT&mNyzZ&YA1R{yQybYVPL&OSyDFa@W}mb-{e6a6Pv_)@mF3GO2fcuj8g&T z(ItsXlkuX1d49C;{%)b0U0%zW`+F*)eV_c(kt+xCq6y06wjxuLC9glf9uvrh%m__N z2#pT;p#+NRz&dQs#@>l=4{|OhlR$2OsWK!{Q|n}#Jdz{F+~p&(!IwZCef<;?f2hgd zhOpIxR`sxEoz#|{H+zhW&~u}!8gilItSfDpcNFRUU?DL-;aZ8|j!OYn?&BO5pt?gU>&V|O)FwljfpPO zySOGKv{OB2S%`thc`Z%ujCd7SYe|ihPx-U+n*k{pO9I zeo5#0>ScqB=I*h{`~%!!DVg0?wCI$2v>M-~4gPxWaZ$SxfA917R0O=jNwy!D>IDxR z?2y{uWBC30_F2q9-M6E&lYQq*ICH{JP*HpCZB6~=93Ops$J-A}ZhquE++SN96gMw* zfA7{6pH4n&vD|s+*z~Ead0n8+Xs4ch?1GP~cR|strmMF0I3SWF8#gdXvY(!Mp%798KT%@&&g&_GPFL1HDc!L0thW8@ zoS^$Tr!IuWnVrnH{&}waUi95Hk6IVI&G=ZoM0>+|iGx3@xBRs|#$yXSZng8^@~QVy<|sAqrv$Dv*~-lM?zdOpIX3m+jpjQ#+o#LN&swZWCc#bbjw1o1byldp1|^ zR^Ht{eY%=^^w~xCULBvh$JqS+k8@4OeeL>eEY;I%PVSilTu3y#zyC|0OUmN~b(YCq zafvmZg`mMN@B%uQgaS}kv>;Agb}FO_;1gC@wES$3?c20B3*~12eeLt!?Nn*q@q#|) zYLBCqht%F4G@chV{Yt@U<76u?e;zmRAgzH6r@+a}X-=EYip)CUlalPwep6H5-|f$W z`7U-Y17Eji&G)k6Tm>9dSDc>Pwsp4}T6H*nkXx;vpvpGJfs_t*U@@M+lRRcR<7W zdGYmg_kx2DQjZcKfiqMwcOk(~45{!OH2VEH)`0;UXGCa9u?d$a?0T3#PgH`A6s{2$ zU?AG#z?^xNop|>Y%>$O6miJj%h;Td1)MLe8VGbnhmBu;hz=$|k&d5kuEzDG4G}IFB zp3!I^B5{mH11$Bz3Rr9jY&18(vLK$!I$9{mCi`aGF|k%@&vK*6B_&SgTe~DWM4f+dM@! literal 0 HcmV?d00001 diff --git a/extras/ietf105/topo-test_gtp6.png b/extras/ietf105/topo-test_gtp6.png new file mode 100644 index 0000000000000000000000000000000000000000..60f984a0393e626a0c20721abac3136625b0b9c6 GIT binary patch literal 128914 zcmeFZc{tSj|2K|AQWS~or$~z>k=lHFcU^a$v%hfN*C{!1A)#~2Hh&Wx9=Uxj zc=2_PyUz>ueOxKmMNK44)K1IAC$ObmPd|VG8xfm6Sgb&{K)%FHZ@Z@y(A3cVl2t)s_F;9Uynp&9$ z@%3d69+_9a|I(Uzxr;2DVQ>5oCUPz^6>n2hZ!`9HQwHWB3yd{B*PQwL-_H8(=ldM8 zXv9;0#FxLF>}3vPU~JaCP=&u=hKD7bH}k!R7QLSQgGJ5+#wvZ+d(hiZ%BAPxpVYUN*9~H^NKQz~^)S z!A8gcV~swH{LOh}oz~i$Z|12Mo~ssW|6n7GfU&7JD`fwEy*x62!&o*xS?2K%Hsard z3v9%{2bWbr{yn(=R^0y-!+$F-&}$z4TXBJ2^Dk5Ydh@?f0jLZAVq6wx`xh$w3l;v$ zE&e5E|B^FSN%$8k{D)`$3l;u_3ja|j{)GzvLWTdzYX3K=3auw>YHG`teTD1hQ;jVg z=;I?6NZL?^g$o?AML3SA>+p5Bp zws!H9yY3FT3n-uPV~eMh=ChEy3xuD>O3go?TQ-glSt%JyO?s$-)vzYin?;p|$KTC^n+uGLMDT%n>Na!(~-G%Qh!7UtUKeGyN^4=}jq4%hu zZSC+{BRS=SmbSxQpBuJnDs-`+1+*S*Ai1!Cw=gO*@YC-VZ*lQRQaE0_#0)|(KMy{J z?YU<3+JX3BDcX-AqOVKLCGGn+J_oJ?olie z4MSxX+f8^~OaAcbeU=C$W2Gown?DNo{Ti(Jd5a)l3uDFGjM_-F-)=ZB++bnq00{Ej z4<~4_7l8Lrf?4U4eQVdI>ou?!@38Agse&^+C}rLd_XTwc&{`yasbbUG*C7=+wP&c; zE2wJUZMwP5emT)5CWGYA47@Tt!k@8Z2Bif=wS6kPZ*2CvBgmKZtWl~l?6Xd~wm5KZ z$IKU+PHXOdliKs4tS3XmDY0hZj-e5K{`pl6XvnI+kHz${;p==PS*4J!`T6!JIX!Au z+T7XFyYZk%K>at9UX5_pEgwH#ElJKsnYe7$33UJy!7K$Gi|C$l2kyuw3DH6+!<@K` zj@YU~MBpE9{;3rHh|?0$5{q^s(YtyjElo-E(#VJz6_RuvcTK`hg z*9dM#E^c>mGj}$^adbZ%zPDLaqYNmFrwomj zh+IC$2e5qWL>t8k0Y6Yd)ShUU&W$?du&gj}XY8$M4# zMntmPQ(k@oZ*bf0!SH&-tts8D2i_Pv^6L?u3kZHqtYoj!?^JgUNsbLr>TGiO{HY?H zp6_yy?M57|ynK(2WYRNuh3y8ZZ}}mvfvffS)jF$?k11%)ah=qVGhw|vD^@v>mP+_; zRs$?#F~?kj0r^5~K;L)Ya5{D-BqHIN-0U1j&w-2iE6=xqw^DR@tJt#n>CHIfcTBP# zlPr{q589O4o#w_^U-6=>A_nccB49*Ym(Z4(!`{I=YT}JU^e`M9yJ?MB@_CW+Y11CDzw8AYN=bWCU-t6+ra|Q@ zW2?RY*Kd6=t6L!%DaolZ8|G~h7e|NiUgnAphN_>T z3oLLrKzm0Fxc)Kzw%VG>A>a3R5kJO+)WMq2-JUB&*{E$KlX2EerYI1Tiw*FV+_?Q$ zwGmIpyW0^TV7~2tolD8|7o}c=n-5|n3K)YM-;EO&GH&D0$F)Z>nL2u-6ZnHQ+W0(w z3-3@&E}z_Y*+hfNG$>GE93YzoQg)E_c!xZWtX5~28jLYWZ>Nnvzx=7NYG$1D0(b}q z6cRJURdur~tw~DkD{7MbA>XfAunzckxJ4q>&Zlj^Ic#v@5r5by!N@H1r_gaFL)zg) ze(26OOa>(?uj=)US4|UBtF@s!-=re`Y+XQT<{7rO#&QyVEx%_iJI34B>KPQr+}n1b zN^IWz4n{yTSN*aYO_-A1 z*cEHjB?(e6D!?W%q!O5MPzjDPg=_w*pChnKSS=2<95k*@-pzVXwJJwz@myYSf#0z( zqh1V5$2Y8flRV+8p`xqTmsY<%Brc;I*UK zlUj2hlpsq1mulIZwOkg1(MVn6a&0HWejhG$Q}&{h6n&I%sUoD8;18!yrl;qluRUBB z6UJ(@TA#|RMYsdahE0dLOD=k|aMPD3_=>kZXCA8(my7_F-+WrYRpx71?&Fq)gC>iV z^dg-nvOeb{px=m5S)rjjr6qmHjf@HtIKnj7vJ{;)h5P?m>i_nHES~S@jiR~{3E~5v zQ=nAVJv$qsliF37g-%IM!K4`YMdC>eEa?`{+WOe~a@>k#%SJ{C>%?O2Pl2=-l|dwz z1jybM{?PuN(Im8=nc{(r_>10wLHij^-&JyocC*eeEo8`>`#Cf(^v>tbBlFi2Tug+Y zgyNdYlH)C82YYQGc7LwM1^k&7p4(t)Dg|^A%eS6Or6Ml9qbH`4Ca?KYYN`U7plP|2 zkF~CK4lQuxNmyL=KbE zSxJw#Z@i63r19F(ejVg`qIVu>i&fpsFE=hIc-M!v?vuO#TbUySUAgn7amCYHTXwW} zf@dFVk5IFrroZb|0;5+hx42EF+H!>0_PhF7dUPMH|FN3{ZkoH9e}k_p!0#$H%PQ!8 z!}(fZRUEtS%pYT<=?(+mMxK1aVe)lgIyAMU0qAY&@W&0h zI?2o}+}^}J^;l>~84WzN65!Gb(YuS9xnWmqZq8S{D?o-9=8jB zT!XrMhnu`bU+_wKw3kZfNU(YAak{Vfo5F=-#O2};%z=KgV@oQf&q`o&(%#9wGc;*r zxAAY_`4jf~H|X$16^#BXY~Yn5o%BXQ1V2N8 zVL$D~OL0pwO|tC^Ws?#iOMPvN%4VaVkNXQ}g`TF=6|g zJ>H9No8)r5?N`%F_xx;A@dXLCxlnqe?cgg-UAS?+)aR9_G5*d;tru}8_8;T%L-MSu z9gXmQRAqQ|q7o)Fubeu+xMU(l79(F;Im40N-egn6D@n$E7QrkpShM-L^F~@g_Upxx zKTI^)VCx#}rGxYv+v!dAnP*>W`x{QlpofNN@-W}(EG@NLze5P0%Q!X^9d^D77f$j< zryR%x`xZIqm4&U+f(Q}*;hzjabWb0oiX#8Q*B`z!h1>IQkA=LsV?uiS{X~5+1o>nh zp;$K^HPj*OpaZcrbzh1jD|?5W2~2ZJh58u>)fa{+I}qFS@0ius{@6OmIuH|BQ$m7d z+c#W3qc$1^TMZ~$Qg24B{IPf+LDrt=6e3DS%(d~Ysu4IM-%O9`;Pr2-t{C1xd*_1S ztA^0r3atdrX6ntg2FDK;Dhk(lcpE&4$t6}oI z-zyDM8#insZeTm^58L~Hpzf1gd$#m+^@CYs>V(~&cJ-?_DJe0js_G6QC&`mNbKkFZ zv4>3gDflDxlMM5_FQS^}`xY%Zoyai04%@vq-8!fXxZDzlmCJ?nTV!^fcV4AeBsDJm!@()FN(6)DLuH?9>NW_)c*1J zXa2JuyXABGSv$SP^Q2jeB?0^?{u+#aiU1x;R)<#6rn&VrrXqt)NX1_8EMiJ&K0fb8 zFL2=B-*O5uNW-sNcl*USgXM!#3gd4Ad`i6{A7D~u6sc~q2hCTu2|47uRNhBMf4Av! z?}eTV*^7XB#{iUVUoC9^AFxXJ>$hlhe-ZKqxV5UCg`u zeSloDBH57NmEraMwII6~V zfmjrw@cqs=$*s?4mGu_oaHoYYf#h7axS?y@b1NM#n4A5ifJ^k*n9%iVLEuoZsV_xD zcd{gbp&}6F)7dk1G&-v%rC)}_C1kRx2nnb?XL2rfvoOYCyK%vb(t^1^4MLvS?A&d_ zCrBav_gFmib#mxmdInyPNyU_DbXIdDSEcs2msUK4l7+dq80&U%e0CReA&q~6Pl-w4qx zVTm^J2yhlE^%!{Im#O~71I3;{^YVo-jn~MFczH}mUMA723%=7X7xa2%vmqoms45}; zep&83^QUSqd2X|I&5NvK_d$xSmlF{$wFj97-#KYB36_yJRv_0VA})dWE9tvz03e z?=71N_s#EO=>>IvzHl3Ih+@D1>Fgf3`&h7!ZHD6L!AwBpKvf(w>2;Vk2eVuHFWCw%_`4 z795Du#`@lDZ`9ZT#JIKerc9>?KU{iCFJ~Tm9~5%aWA% zl`#6Rp%hE#rG@tSJPY=7K(O zfu(U4PLyf;yQsJ(vYpbXyZ-_m4k#wD^35&m$E@@1y)KhnPJ?K=aobuS&;tS{4n=UDsj$}V;Kp{f=% zA}`NQ>DU7ro5_`1Y{DAG`TU=Lm(G4DwtxP?yxonyCwg3p4|TRD{flI(+P7I+D3Q?&^z$`+sL2Ah0PV^?=;0H?;sh+tr+w%&WQZ zVm^HS&HR)3pm|rB611J%2%6Po9gV0bEMFUEC(l+XK2JAG`?6CUd zi=9sK-iC{xBiZpmMg21jEZsozN7p_tUZo0kKN~WdvVGrtdQG=!#39@3J2bBLt;ASa zmmSPgF3^|Yix8XiRFO&DFCW=ern)@HQBdVAGq^u7g$=G`V8^mS%v^99M1vz2 zq%3odpBq0$$3JhLu-eIcazG%Le5n@?+O9ua?``kZ_J>Aayqhi6OJZ{ND=CjRvk+mz zJ`j4~wz2-R+Eo^SDhk{V3=%uqJzh%wi4Xg2HeSPS|87sY_RbIZ_l56o#c%lvA+Fcx zBuxTnbN5v{LOeMy#Wv}A&HK%}Dg3G3slsW3sr;#psWGWLSb0B_!YpmE*tK3a+jTEd zeY^Q|wQj3&@z-t!8x9*&8)YcdKsBYnW|kO-{sE`v337DC?$7Ne;w*2mnpN*gQ2PU8 zXKnvQtGJ0<2i~Ey;02$eRbI->fNy4!)X=_Ri3QYUFY-$B@9SK*mv7&UmA~?abvc{f zFm)N6n;@ROu!=tz-kqYI7OXcGh$U&MF$RF_y`B~Vl<~iT_5aZv@)6~+WvD*LviLpb z`>$?P0Hp6D?s-7Y{1zboHF!FJHCD^BclaN?^7Kc*ijxwuk-GU?f$A^Ht^s4&cBVE} zfkyveFzdMugO1^t-(I=@EV`*2Ft!LY>|ys01}Cwe0=QF2dHeef`|G2zg92_ez}seW35&MyzPgIw~>M611!n6^^@>NTo?gyhLzWWjW>fw7T=v}Nq#^&9|5te2b5D9Zy(8OvbXm8X{4cka8k z@W}Yow*pkTiG~N5O$K9S5zyudEX1Ss7eYmySp(cF@PcpW3768p)I>(EQ{EFPmRDD6 zKMiQH9fWuBiVqm`a(dPv(a7xF>2YoUzADN9=bKl+w% zewX_RV}ybizzQq8{^Emx6H@Bs6D?*Ur=B-|uC|VouL&Tux?U$;mco~e9UlDUifq;a zmD3VH(A$M2cIqy^EJgjG4ok}a%i`5`4;1_*vZwG}Ea0wJ@Heq?KqV(ie4DH#7PNeu zQ{?H}(0;ALScK~x2<@{?pB~_OHBANV)h73vfFq^RX?EqliSEl3kO^uTMDO4&J<NW$;9TOT)Qp#$;H6hZt=Y2cFf$vM$8>8>kan1?O3I8 zUJ*LIPbz!3o2Ovd9}y@%$6=sydb)~Mn%Oq(y7;!Qfawt?-o4Yl1xd4+<1}?(_tg)- zopic3@4$(<8t;&9o5J{`Q)5o;XjtZlvd?_9Rr(2+%GKF-)Og%T)8eIV3N-}MgSw`f zsT@buG26lsm;jphrLerwzpP>k%d!w1IpHa$giEmj1pX2SdW}QwhGjngk8S5*s-niy zsFBFHiEy#x^SOpQ$b2&>P&&g#JA(#U)VIX4X;!F&mliFsLiD=7J?i)??C<0MFw_nmoVv%o+_r`NI#z1%IM{} zEp9dTy|>5*k_jxVBipaj6>7v-J32AYi|&)-(V- z8(C*X@_%*Yip}|vBeqq7ZMD|4IjgmncNETwyO>5hb9qk=xK|+185g!g7*hk@f(3T> z-=a@T{@PysfD1ZV8{L>;)R%A_6)m~>Mq=(mq#p4NiQsMd=kg#LHgf;aF(7=l#(h`p<42466bDR-GgOS(@EJs)&p923dDYVmPE8sID!ek;=`{I*GrSR6V8(4MbnAC#D^rJju9s zocm4R8-KP>lR(PAPUo5WLsthNv4g7*1*WE=X|>JVkz&r3BZBeUIp}a_(fPr#eqYfD zEpM&ce5F!=rECKG3FG?1lNagfMkTmQ4~7Rghj+G>o0g?r$y)%wf4=ug)q4!+o;lC5 zKRR6S3R!smj=3ha_svm!s>?$%caOwmATg2gb&ep%jZf$J?sc5g$KA;De^z5H{yxt0 zFAkZy;#fJKzOQ`BYh7_`=~O-KXJj=JGEC&V-l4w_3P?%?7A)=yR=w1`mvjD4&_+tK z3FN{`lp~0+{Jxmg3e)f@rUDbT$UWF)4mpR*a3d)B7NGrA`zZfndHJe_@0j&ADG589 zMS8j&6~KX)>v7tgkSXak6QJEY6dns6=O;QIA&o#8BNf#*56QHY?c+sd*kc@+EQj5W zSZ3!7R#mo6cyf{C@Ar9?IqR?+Kcq_vK}&EyuGuHgP)&7N$A(+Q4RB#6AKl7RYh9!O zT_CT8gXUHdI#go8l3j{KWFq#up;RSHR=@^q=T_PMrb(FxV$4wUy{U7QyF;dOZ3ajh z4B|0xkkI-(E3Q?z_mSfFb+{S$`SWF2T4KV=$7R)wRjp!Bx~sk=I4TTR|8tWpEF*V= zE|c?UvVV8yLcc+c31nCsNA1(jzxPBZ>Vxv(Iqlkb>PN(A=_;*{r8*eP_o!cn%K5Z% zwnqy$|I&|9@)F>^QK=^;C{p=dWG2P*C-~6vV*@87t=}=DZbJ;YE>VVU(CM>{jo%gj#z(plS9rJfWJrI@ApCW&Sb7=p;En~7->KxZ|H3x z2juM9(~q_xUKhdz0r88$lzZR` zI^VB^m3w)S_%}O&6=75J>dT$9cwR2G4zB22Ce49K{3Q5ARj?qc$8#6Sns=bdf@~cY+{JvKOXtqm3o{R4n*kd?cX%qyUdq?gq;az}c{4Su>9N)s zN%#rRCBt{xX9NW8tjRqtAb(LS7&`uKnhi_#JfD~BVUON1B|MrkU?)F4G_df9K zFe_c=c4TQA%G|bO$%5e5Q#@f)ZwedE02Z}wVF@RmSCB~&>rjLQEB80N%y7h~#9jHO z$H3^pXef}JVp3g^gA$0~PtY^o(qIoD2cy5p;Ou7JDt`OfWEEF7e!=q%3Q1LGI-|i{ z8h06CdXb!bh0oGtW&2j>1r>5?+SD*m#AoX;Wd_ToE~*33o;vouB+b4ZJ&pZU@mH2| zwreeyteejqb{P~FrnhSvdGIhoj_S$Y@2q{ylL%@@c@v^Bb==C41bX4C(z2W z=+58kB06S0r?4o%H;5IA&9QPDd~Vpzq~`4O==ue?!cgr*3Gcq- ztd(^a=#~p6yKnTg)9z$b$9=gBt+AVVL8&cEe2$L_oBJg{7Sw)?z2AAivjbj$EtHU3 zzBuZ^>B=59e`RyX|x1m9(x` zQRSv};&ZP1{TJ$1w#2xuiT7tGzmqI)x|of$kuWJyUen~}7Zri|ySVb0nu?4rW!i$| z*w0`1SkX|D6%$w$j!?^yJEp3|^;!Pg7uC4F*^4W6iIk?6+UPd18^g&dF;o#-sXyC( zo^V_A4k0*6?nx3al7#6*Cuq7y!=*TRR{PX?1=*GD zXXv;^ZI0jjz|T@5M?S-q$<1F5;mmMS5~s<7fA|MB$TTEnZ{s_*dvoA~H+?N~0vd#3 zEP=Efh~7HkvPm>q#lO#`ZqT$NIZd0M)&68JhJ<2$!9tXMKoY`k!bbVpvd`62&XkfP z_{y%`_9FB9gJ#Q^8&-Pjh7;;>B2TC6)*adIgca;L!j`u0f{nbn0WtKDpiPJM$|3&s z`^z=*p07BwsyguG;e73SquotS$i>Pb_WIBZL06;e2-0gTLU|0l9ZJMkw&=>eYV8ub z&{}AwnzV1zy5odz*Zm}IArxofx`&<=Lk)GDRy`XxpS&aO^((h|dcRUOtya629E>bS zmN}fujHPf@c7{I4tWz&P6ChCAKnRPk2y+wbY=|9jd{X+HiBq_w8O~LGiWms#xMP6YSiOBw z$;q~zM7epvDvMh8J$(EFvcreytXZCp0mU{tR;dxc2Krr_yacOMs2rm^?lgTY*sc~L zO!Gy}Rs@+Mr;O?sWwC$drdBV`#_grKX;ydxL>Wl;Ip#ymakoqYz<)q==@onL>VDmP z2vKl4l!S2jyov~w>~OKW{n(@}xB!$tDg(++rosr0wifVVtxpvZMNMsIhS9O`&f|G+ zKEO^m@rEtYwVeBz!g>@YB}~`3yfCYUw}i5+Nq`L>gH)3>=uYUTR5%2BPC z14&Xn-5O*n9aC<=_gGSByrp}X!|KhJ*4pgk68=*wNuDZx8ZF3i zrbVg~rj`tmA5qS%JV$hv95$QM(U5q~ z@YC3A0s{=M(Tb;C>mx_=>{bv4^*F5*v~o~u3Ccd^RJ z>v$yHdvDRZaC%l=6{Au0ofvel!}MuP(2dXggd#mZS?NXhM3qRNe|5kw$jiw8@FXh% za#q@N^%n;QfEG;1Yiw(5WYE65T*wQl}) z*S21tG;F-t`-KyIG+pBI$BL7N)MX?c%=Dsd@4%;*E? zP^OtcUNE>gi}bOt(hV?OeJ<>8KT0nSeghK{>o~dcI_PF&qxsR?JQ;E=Wk_~B`DkwY zG47*94I!Bd#+&V)04>#>i1z0J; z$|Yj*E&5zbT$R9(V*%yPNb_;eRJ3O8QFYmpcEj#~yD4ez6m12|+3xj}AlGAR*zNqi zDh7mdLhNHRzG+G1Qv3&Gr~& zszyI)relQwb{UNF~*4voadl3#LU_44&F zXd03<=a%EAvw$+ z^t0zoq5sADM#ZzVN3&^ju{%CNM{wRH18@a zVTj!gA_>WAH}X`Ir2nWOxqGzk?%G6rRV6!8$2H+9<-70Yblo=8ZoCyaRjIHWQ5P(4 zT2k;tvf5D>;tNV#PwqT<4D3;vydMdnI+NQ(uU74Y&(d@@1##(4n6)*^+u3w;<~eR zwY-FTWcTHokTX%QfV@N0^Y(_$5d{!mFW+gClGQvDrMkLzU#p(*dMsA(#a(|laX+U> zdRB!%ux8u3P}WJ|-<#&=!L+?f;*!f-YKxKc z8F|lBZMd!@d=Kp?>ZX089!KzG-EpLXzsE>(&$podUo?>GOL39Dcv6C!>Qhl)m?&{u z4!R+S*$xG*{KRRQY-vZoN(lG9QMo5-MbG6c)B0tyH0^a7jd!vB5 zh9G@%Y-x$lwX95D*v`AmQDl1Ac92WN@R(HljrF_QZ*^Y7?osz#0(U4)0ivKfy z;cQ-?ofQ2k_aY>K64t4buiOE7F@AZ%g)H(EgxdoW(Iw^2e6xLLo?WkpOzosZWCy=h z($H&xReYNBjvl9_lOtZc9Xb;q*!eBNC3d2-Ac4oTvqBj?Cz0FnSXj`icC-{!fON~r zlrt^Hgxj{?|20dt@6_)>TcxcZ^c>w)*$X-vqpaW*Hm>JnHU2GRrXumSIJC~s57ctX zz68F`i#j%}kF$kCCarxyNY;F!|B&u{spp9O)hNoXYT>?oJ7Gv&P;9eivCCh1w6f7E z)K%A%G%pTO6Gp@eldWpAYNm|Cr@B?iPfoZC zU@g_>Bny5q-CdFjUBmW90LF^}n}v0uXrYpt;uBW%1sBW7!%tccSGzdbh$6vx_|d-g zq>$|4Z7XeeonG+NdY<6PV-vds&&%2Vtdibt#> z(A;Kkj<(y?#!7?%7IWo`AEv>j9n!C=Ty%Q8RgabP9jTLzJ?t@h0=E7xTK-uNSP@=z z>gjEnODlPNhT{Di!2|4wDzOW-(OP1?d|GDTsihL(wmBc#jxQf-$VRZqw7T_kYG9b_ zQq1*14gP(UBbRj!-8Me-vFM7};nX*(ec}T5hB~UXwlfR*3WaZT-f!z`;}GNKB)E%m zUyRC#X+8IO>~xHx*aYSo9jRjj-tYzJ@Mek}W4S@n$`>G2_#z@Xc5 zJ7RDAk9;+@>m^AaqagZ3H9!QsDGzyHNpI-EUs~Lfv0L^R!bYsoMRgz*ApZ45-V0bb+_&gj_iH0 zsjQ$z&`e$BFO8EO^+vuISMWv3)V~O+8s#cq4N$8`k1|)zVLf&F0@ZVfm>gCh-3aW^WlwUOIR z<&wrLpQ*nvu1f8$+z#XP4;ng)Q$Um|Pb*US@<*<6>7&MnO_mJenjNF|uy@4;&DFW* z7u{!7XrATmKBe!FHDlf?&DkftUOTtcthQwSW9HZRyn3Mcx{0@ zba{@i55$%Xce!ktSD%&C7OKoGV;5(b6E7&uzQ3MR+Yx%=nC*u1Qr(ZOO4B4^*pWAV ztilE1Y}b%G8JFewLU|wRqd?ylBgG1LHbk*cq9MG=*+@S;C4FuAQGRBX_2yi{iH|XR zh&}w>0sG*W`h^4VsWL;ICDa46x&28@yfPZs$<}LtgvgY)e{Vic9u+Sc-7WQ%SGJ^o zd#Ix3uVz~Ka)vf*tUuwH&?Ax&Wa6P1(jqhD&Lb|)uIznwHMS(l27qHPcYq1MdjHWW zh+#l)U_?lMTf~sIw!=+=+&r!%1c-Ysn=?mM4G84ek&%T6j(LDR_famWt!mFy&1rnC zeT96u)JSYsC4;X%U#hO}9DtByKHO4iF|Lh4=X!-#$fH6hGVO7ng3$qz#u#c7>A115 zoR(KQqAJ)D8^Pku^SUwV%Ds{Ajy+#gVm!>sbFgN~bi<)9jIytH_D&S*qN-6t{C=BqXJWE&) z7-Ntqw%0e}yIG{jl(I=L;`2FnILl`EeC^2OScCGhWzK6?MilI1qb_Z7WK%EH+H<_& zJfKImJ6BNPv#NFC{4*P+Nc-D52mXA^)y19_c>J^OmW_w81Q)-=sVB?a^qeg8&Z?HH zidl4|7gNtW&qE5=Hc*%BSv}z=Zt?&uAg`R!{=RpONfQASN7WU=m{y`+gdZpjSs=NeV!M=Qjw2r4fb zsp`2M>`hfq@GC2eswg6E*g*RtjmN2F+>X0GZZDFv&$NR*4=r|N?L=}aUfYcl%0eu= zs%%cTjl&1MN4$R~3w0l=eQ8EpnyYg})(E*9G!3~3>Z!+T{4%}l_@d=~oo0E22^H0@lpTqBxK**n8blxqz81)1H6lN;MbhiSm$0DNsi~O_Y*ejo?*E_TQ8po1c01hW-E2Z z8+AIhORT$8)d4ZZ$eno^>B^8Q=r3|-+96ZoHBm7Y#hNiaN%Al%!0}n&8bZ0;cL0^$ z=_1>kp{(erc`7q$DTy++EAQU!yfS@eS;8TBILIhpJKyRY$VF`ZXJ>3LtMu$}82jGz z5FmGkopQJ^d}E_;r@78Yo}twJYDX2M==BTZWp6ky^1%Lb?i&Rk?su?NtSZ4p=ic3M zoetuM%KeORWlvD8Pt#n+aB5xle_90?~mdUIj_!qHblbKu~@yRf{UC`CkWOzY6@Av$_iZ zO82u(O3W5xQsDr~H+5R5O<7k(nb&?IWjWQ(*$s|?4J2goiS=D>JBanx0f*1E{Zk+Vq z`E0&YoSa`~&#tj|sQ%iJ8=To$2%GSfI`n2I0XNY<-K*#Q=Bm@<%U_e8pwdkwjaD>E zCGM>GJfR5!iQ;dGg>G<4smrZc<5=%Rm`XH&sk$6p1U{ubuUs-<`+O+!))ZtI5!S&O$C4+CS_*@UgC4jW!B=fr?;p2Q>JY5Nfm)#pj5uqpd0T<2y|{1`f~}8GH4U% zR}OMF(ogX14(e!oUTd1`gdCa4>amY=vKQkP$HXMhLbVqAegq!*!~Uh-xPmX#zTIB# zrCVcD5##6L%DwjcD;0s5EiXw`dLGTYvjMgUuC5?L6Wc(_1JX-P=r?7U?V~m*36G!$ zndqk#5|cR<20-wOFaO!zo2so2k$souiVEAUQRf{a*)+-bO z(i&a@Nb0trd55Lvvy)fU_UwzJgQ7~PA|J_M;8&X}vCApcTea_bPCDfsTD^YS>Aqtu zXLV)CR8rul9;fHX#G1tQGt6O2A%DE3ea@$_Reh_%~dv&@;vK&OKKFwl)tuNEB@0(2%6Bva@bVj+Xzc< zl^Sg}CbjC;ye2PM(3Mvwl`CG?)ecI*&HUw|?z{=-MO5y1GqAncAXDIJhET8k>`M+U zmHSurhgDLglN5SLw(s)E;^=U@tqp|Qpq92;ZZc}8)aiug8BOuIyW;_#LyNu`t0WRa z@XWkAnTx;-PuTgE6~OOZFr%I$PwXltg=~edah7ZR3|%9De>_!9wRgggF1MFt zKXfbF64CxLVld}|KdO;erX?y#4s=djy5%BwQ3{HVmoRylr8D9qD(`TPP&DIryr+q; zFvCjq^V_4UFg|LNh_q>gxpUsBytAp4yj*Qj)KqX|-8 z^Tjd@bO()4zU1qC7%ROFu=Cj$3A7NXYMxeUE`27u90;mw1age)d493_PzCBc9XS0a z@q}D~(Ypzz**y<|Q|*|e>IU?tv!_6A-J6F^h&XK_a)9iIlZEvYy)TWlA&b|W`v%yv zLxV*OVTdli;&v!W^Qfs{o@Bw>HAiQOA16}AKU3diL=e5WP+@kj9RLI#%)WlR=SWzGb0yezT}Sci z1$(F6wgA(U5nFPnbVNk#v#FC0U6Zk(su79j-zr2zOK zhi9A>8tynDDZ5EoP+V40mt6q(T_;$ccv>$l>zT_~v<^glPZT z(q8et&yPrT-F8lkDE>JJIM%nx#b#&qdv{N_bFO#9|Dx$E1DfvII81}2(nu;uNQZPv zOQQ%#w~DmD=#U{FO7C%2?bOYnpV3KCBf)5f=D?lg~Cp*$nDYX{!XcvEQq0z6>h<^b%v5 zQ7({qIO`?-I6AXFB_|i)+`mMpWQjXOwCk{h16@-3ZLyNiSF*<4M|0VJ=yKp zoo9se#KoN5+K)^=4iZZb^asChzLUpe9scyj zLv~WCPae0c6JD(%+MnTojXf>G+S}+^&lniV0gv z^GP;FKFqLmz8pUF3GKDy8~0Zf-Tl@I=n8s#v+HI!+gDNmV|JRI1AO+WF*$>RRTcZV zpFAISMOqhT+@)QeMhyd-*k{TT-HzkRD(2QLIKk8)25CP+ z?!a>D?Y-Tf5SS|~U}NYa3oQF~1UdPZaMq(O32bVF4Mq7VR#I`wv5}yhNH;1Kq|HN$v?IoQT&6F-i9 zN#;nntD-v|_eywxIPL)+p{xMtZP<=iz>BrIV9Hvy(yf0HsWC(f8U5RV>bp@M`YHjh z&YO!%s5L-m3Q8GKRB(5|pcbQ*U*Xz@vdM!&}||Al|jk9AfL>`BT2$wpjDA>_Ep<$fC4?c?sfXWi;Ntb**W2yFtDtZXbf@D z$hDK5c!}%}D;D?)O#tlUku*-cAs=Pe0A>mY-fmR&S=?1miY}P{YE)kponLXlZXD*r z?!Mc7F2!2K_F(4x3l<=_?>oht(6n=vsUDCEO$1Iffq$HgcDkG8O)+y^C>v;T5EYUk}|E^Uw*x`5IMh-xb-vDi5K6-S)k=_lnP|O&3ublDA z+)Ab%6_L{CX3Y_k(ogE80Dr}eeM8-*fHdUgJ_EG5z!OFOV?QzeY!pQphofahr zB;mRb77lk^om=~U7lPAg3l{7i3<_&)^T~HP#N>=PJ9fqt=_SMqdO`s)98Jb?$_{ z(aRVIvsLdc_05H@Zkd_4i{o>;qWYVbwLfq2;WQ4*U81bLY3B@z#@NAAjlZ!1SDIaGt=E9A&JiJ$mY=QlH}CzngBm@mr0Ko3yF6C zYccZ-`*GnLh2yq|nI_t5hEB57Z*WA|RVQKo+Tkxb?9IlMX)rGOEl>4Wj%6T;GD6KB_{>Py2WFeK?UU8kfTRnXhKN z^6}%~#E|8ZJPBWGBH@2xubQcPcwQLjo|GOTF$%th7CEVE47r**aZxt#)5K5Ugk_3R z(cT{I^;z3oSlpG)R^cE6gd0r3=f*h}*KXhKe$BI( z+u6)GDXp=<4k#r8j6+5|{LIk#gs*i;eMa-vi+m>4z6QKWuoSvL(c&;_C}UHq90yGB zmi@p`l;lCa;n9*cFov_mtmu*Fm2ll;)c7QX4IYt_MIt_8?(C z2^#dxklIm;)egt4$Okng_0d8dVMYr+m)Qc;O?N=&us>Hb{*<>!d6K)2VI+5$-m=D; z?vLyVHO!$`t&s2YcS-Gzb?8IOLF?jkILzic)&EAx$-nX(`UVCFUHS;ypix5oxCHk@ z$E;wV+L-Y9;Id=j+d7r5Ak7M*j<0FMDNv@dhhXk%6;q$Tr??11AFezpKQn*>hVZrw z1LY-ZTV6Vb0foQ@9NJG$v|RgjZP?+7O?V^5g2dK5NPw4S{T;Y{C(1lVO?Ozs}_LmFhm;{WkuyP z-o56_SWA|D>uuF%8^#0OGoOQBEJ3eI10Zu~%;w>vrAJqNmJ#9W8}5bR-AQCc?^NYM zdRgRcQ|{lY{0x=E?;wWofN$Y&QS%KfvZ|i5fm5aTr>G}pC27TuJtHM! zJI2YeWv)aaRb0nfUOXJNhz2x#3U3D+YEmw{bH2uoJR8|NtIv>5Xnq-%e)coq07pXq z`&cDqjtytx6tc1JC_~p_nZ@T(YDd@dV}mWZIX^~+*ingcO`T9&*Xv6m@ z|GZ`2#9z6CGoB?lEjj7Cby4qC1t0%w7w_xU4{4jRxbwlU{UE@g7bqhc^N&s>p9pn z&xC9!EcX#BjCVqV75@ns6_S|T^uB!1^YJi4Iq^E(toBT zYMC~LIj0`rOB+inQ9>>1(Eve$-pCq@zN(=ITHxjs^{jy*%l0MS2na| zQSq_22@3=P+ZKY@#ykkCV^^e}QVzT>z0bMSLqZ9H+HaQ!N ztT9)?oODeKIfg5T-m5mE%N@UtHuC4xf6g+<%mmtFFPZP3d2P)yWO5kV|6DqsvR0Y0 zSPNy3@bc+xeZ62uBlM!#F0f=j>+C^9$)8tp{sbhBt3HF_q9k(SV=OmCBQPkrXJFH^ z9%mpA?>Y|b)^DBZ%$5ph-x+%fZR7x!VZQTScl2+UF~f&>I53mh7HnFa{uThE(00f- z_)Yq2r_Wcd=(>W^<8TtrJ=6glDk?Uz;jij{T7wpx3im20z5@Nc6C??-Zc86hx$4GM zjb2yoiX5AD9aavgG`pUN+QFsKgP0x%$EUVR-AbC2`yi_1hNHhiU)sgoRA7THpNqk_~tp zd^9jt<<{hc=+b++k(_judk49F3PwaT^=x{p{0>)kJY1O%Okl7&zC2+R9Ke>7D(&Yk zgmjYEHc4xI$l;j{FP@Oyk=<@@3OlCX6E@$Nzjvk3E{JL&ZVBoPodVb?@Rt3UT|aj9 zlUSED^bpcqX;|d&H0aAuc_IS~93W=W=L4mA2qZuiWdDo2h5PnfEZKG-4QCK+_W-x2 zX4-z%6~gQ;I{;9hOqnpsBITm6J}9V5_5#Pj72U3TtOFI&uHd{M5$l3Mz;S7xi~M?a z5Ij=eX~R7r@yf7!T&VHvlc38n|3eksps1}^#XgSO>}j!)d;>zN$Mh48ZI7=*2QZlL z@9|Sh1W${vo^g)4imOy!>7*=&(1tJ!?Wkif!D3?`n~0Q4^Dx9_a)esBNcDJ z%*;JP0>GCZ6XPCnR3f*lsDCbD%!*GARW2vbDPTdLzsJn4Z0s!8udE^(=DyGCo)>-3 zk?VZJIV&%C^Fxrwje=A1@G6(0>t(XwD>kXc8Y+Yw7oD4SOW8_-Qbxzv++L%W-TM&G zp5b}xPkHe_@^!z6=Ee+9Wc$O`V74+gTVJWS%U15OYFIyAcf;H*hCnvEe!$iP#kmNH z@b6FHPZY8lPO0Va7?^fAk2MOeEC8whx&8W$RJz6teTO~8xm|u)L;TG;T&#?Oq_SPL za$;no*r*fa_SiDHvzXWKItQqvi}pUsM3N*n?0M9&qYJKX@erkh_5xtxa z+tn_HFg(|GTl(r%HeD)xaQ7tp(6)qK*o3DqpDqu_7)!h0z$OKS_b>@da- z64#2cx*SdSWuFK(KtW|`&`kv`Yi3?GCs0%*BV?*}mTi@gUMHMN{m-X5G-_7cd-%L! zRgpZh&t8;y^$+ij$8lThc9aoCpwU8LGSi9g9viQ1oPpL#$U<-g;HVdLr?urpBf2(Y zOn(>BjEQ#FIrMi^ln+d9HYYzna51f8+8e8ts$mK-*^QOx;a9~xLfd3m0`i>tb1h`G z*_-2N7Sr6EeLwOx;`ilTc8-oDO2k&|;OIN2gh%|d8xeO{iznKScUbJ?!yisyY8e^8 zkbbYg^@`o8KccF^KWX}t*n5JaoOi?Rw$hsmnt+v8#2+pItDG*nbsa<90CIG#zp#YG zpz60b1tEr~2~LA{fK5itpD`-OS2cSu`5irUOj$agK}#bD*~bqvnz#EGG3VfLLWJxK zlCBqm?2<)@^T&~jWMzHJ_?!F3|AuI&P^|(_ksdv2I}iO1PkhVD+;N8ktzw{IL7iEm zly3jzWaCVPl8tvk!D6{nM582PFC1z5Ef%kHNT{(fU`->tJE{|m-=Bgob?b_-h|+Uz zld=balg6BG*0SpMc-nH+y?CIWKT+-Sjoy8Ko_H%kc>3NA!7DQ%%^5F34dt}M8qcLt z-?Uu|cqwb?yhLEqXdA6oyQCy6UCE7$I7y=U9<3Y>Z9X!(bGA8vaD@#auo4 zTifIjj~U7#Pzx&E269>8IWLhRX!|Feg47?qvMY|OBb}+O#+hVTkdINOt>}vK47z>O zgbNbrzoBc^ExKqo)htcfyc&sA<^CLU`pVr2ap~9L_#*&3?%16;5`6jdw<^?>-JqC9 z4j;adFZjW4EKDf5nv==7gYn);mjO+9JoKWH0;3-_UPqIqBv;hK39=e9PQQ=z+lvh0clTa%a3v>1$y+$ND`!Ryu z0RxW#W4tMdGM_=UDW@)t6@;Zv&%E(uVB5t^<376q;1kTRx?M&rhHwH=j`;5hOcS3|T29=tb zuR$`PAdx#zgLlnJFVR!k1Mit(eyYVV6;etbMH;#^M5DsitwKPziM0zwYJ#nz-T}h? z>m{iFwrlBAJ)pU5_R`RmdKIUf!KvbjqhF1RkrHiAclW5~zgscMQO=7Z^4tX)LcYD& z4g&Z_M3~ypO}XR~tO_tKsVjQtn9`JV)qRyCq*+ysrTHFFS81-tyb67CqQ#Y&IyeSQ zJ^2ZvyVXGlwRa1?uCFy}ATIj&6d&fZIRU4v=hn<$jbztsp| zjOD`xT*|`0_N4YXyRyBMB72v)nb|*tVqN&Dcw^Yvv^M)ijO7j01{L)PGHT4@?A!}d z=EvTpFJE2p6tRL>vzHX0vMk$$lzHK}$Gwtlq4#XFNUblUfJ|Kw!}4B_dFIz_v*Gp! z>28MjsTW&eq91J;AuEr#r#-=hs4zoW{m+yiVia%XLwm@x&HE(aLf>5B=e;VAy>0eH z_!V!WP#zs{>!Jrpr#ke8rQt1?oJJhl4mqIVLJ&jY{D<>5;tL)inP9nZVRU@Jx!G5i z(V0S4>5*MRP3)cFr)!$|uB;j$_F~1*jqvrC*%7>`ME-9(tVutJy$i!Ma-;Ko{5anh zT~V1Y5%_6#s(&SzceyZ-js60&SE1FUIOKvpPf(R&yr5+M>{Co29QGbRaPv@QR_)XA zLh-QQ7_MY7)4d2)TnLN$#LTK5G9PxL?R%zn!GAUow1Zl$tc}(m?PKi`WTxS3MD{2k z9wPA1iqfKe$bPDUM%KyX9>IdyXoln`ttBcfr9n)~qtwLFr;1eUCd%7E>Gt{0Ed=Nr z%d$;N;_&Wo4W$fd5mw2HQbY`$h2Y1+PlBEA!2 zA}I%et9#`EN+yMpVo2QblNvWs0zX%Q`Om>Y@#2A^y*T2$y~I7qoY35Z-QuyJb#+R8 zGEKtDox=G4H2p1C5@El@h-UY?!D6v;8kXBH%Q}KM1XjWNCx!Kj@poz+dY)Q6?o)cY zt=IbXFOz56_@zEew*b}wE(RxJ$hQw-&tn4?!qm4SzI3dmzbMR+tXK-F%75B$o&Alt z!?AkZ#pC_Gkir@RAr#raU1K~-uJ`01(H@A{={F*i2AJ4ELs8F+g{@PCf;B}C+2SxJ z*+oH4IH9f|YM*`#RB*iZtn7wGgTTlFpF+)rm#Bk%L-!(OZ_z39N` z%u$E%m^us$4Q@ESy20K2pGbcp^)L~gUQ9X1zd3t8GJM;mebm$ye=VM!mO;1o%rrdY z<_UHr%8%&-q)>XxEB{#%A1ISPoNnEx>nn+GXaggW29`gEdQ1@8e?=j3NIR|aG?{NX znMHFug2LuA_v2>+chM^qluE?LwjspQFRT!Rmb%tzhOsS=WvOo0L*Tt(*-SwLE)a4G#bv*Bx2sE><8$8P|CN`n~@$B?rz?h##Z)S%T%ciGs80AYy~X{K&}( z?)R&*Y|YBS-PFek**4^f*!BR;D=r2Q3rmtG!(B*QhkC>%bCzxHbDM$m;=xeaQ7%A= z;$4dPT(_$n%jmTIY8RuMRPv2OI;D>JpOL%(cDhzVA`Jn_@i@UBnQE z5x&b#><2qiul+PZpLy20SGuFNV*MjxNgJcI##}?!)iZXRs$?Y<;y;MbxNVy<^*Iqt z#s4^r-MZwJ9tCP`#4stN9{*jy2{=5Miejpi zriS#&hh0Spjh-v*=qoQM!FYd`;gA+L&%3eqQYM|F`lh~V_m=t7qgJCh-m@{k5&7eH zge8UCD3>F(-3{{>8><+kHDZ!|q4|LQ{u4Ma!9!aT)flD|oJXO;W3hR_gBKux$6;&C z8J>9$uQt+jn_|pMwKy$~CJ%$tge8d(pZP4<^0;E-ncMt=Ta zn=AFX+CW%;b7X)38JM4KsFh%x_k?BROug2NQ7&BFD);d!-3gr*m6@5@2__3o^U-07 z8KA1&V>2qAp{Bt$)Zg2`Nl1c^myuG9r$k!@)juFSw*1=lDUSO+bTa7h>bieB+X7(N zOsW20Bn0I6SxCsBf%EcL6Vy!~ApI!vU+*T%R>>94CG%<8Z_sg65)uO4>;Gk>kQ5iv z|7+^`Z{|W)KguVc33iCw^NF9WOM%}j99MEr2DCK}Ek6-D%2uV;Wu0H^rdxVSz47JI zVbI9~p2G+E1a(%n2aYfPJ!>=Z8>BluA

#9JHpj{cbE5tR6mE(N|{A9j{=IYr^G= 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

hD7#5O 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

8K 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

#9JHpj{cbE5tR6mE(N|{A9j{=IYr^G= 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

hD7#5O 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

@m>d0ZUpjC93b@F+qBi|(diOKW;hQb3 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 XP{q0LQwz^f{(w)Os}?;rfBpXedB_72 diff --git a/extras/ietf105/topo-test_gtp6d.png b/extras/ietf105/topo-test_gtp6d.png new file mode 100644 index 0000000000000000000000000000000000000000..60f984a0393e626a0c20721abac3136625b0b9c6 GIT binary patch literal 128914 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

#9JHpj{cbE5tR6mE(N|{A9j{=IYr^G= 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

hD7#5O zT+^gW7FaM5%*1H5pt#3=OiGf59MqS>UM5j=*>2D3+u}Utov3tm5(i6&$NqUEu&SNW z>@VNaL=IRF&QpFy1%p(KZp-h+ed?-vA-bA^LDeMHozU8&{`01hb~ZzRPXsZd>?kFA zN+$axSA;Hud+>C%+6?3idyjk4dhbSg4W(n_IoJ1LS*@%H~EXHa*q4XD;0TW(HJrE`3)p7MmJm zBMJ*jd}(tum#L?|g8YbEkLmbrq8fr1HXQl^a{b$C6gDvX>RlOfZP}+XT8&H_7s@<~ zBda{gp$Jb%pA1nZqEAj+fD$`2v}Wn%$HfG^uyBKW9!-vf_cQv=9h$jLVSJq3vl;ke zuxNVYK#wBRV-E^e{6jRem32{CZyUg+4XJ!iRk}q*{?KPJyd>H~Lfc32yzJiCQ7CNR z5%D480O=DcvTwfUj-i>ED=y%6phPkz&9~4qdO?#g=Mh0~20U|tT8Au)ET%l0?p6xQ zL}WY5tWb3u?zdS5rP6ilQdTk1aKLJuNM&lBJ+&duw4Le1AT`%*OD za@RS6omkm*METJYiHGqo$e0 zfwxoS@-ofT25?DEpn2ah%?Tr$aRHSf3{E`It(31wy}a+;QIEU0raNmUT~mra2`Z;#fa{p1(UXyx7T{(lxI+5@644QmI4f90b~Bx1 zq)bmr;qXlC`tpa_?{;3kYQuH4W{xr$k;MgZ#U8uH38;yH;Qu40X{2uK;k8Sg6rWf# zHR{f-==*yTF_R@PsfTM+=SR0LO8ExGa+@I(nq}poRmLm z8MDY@?r*RMstESg$PR{f+qQd;F^{g+87i!TObm2c^RC(aPI7`YcasbUJb4SBpy==R zTKmu1Z@Srj+SVhK8RQp@yiu ze0|`@mxum8d(3HZ5(*fs^zep8M(7me#Eqrtf0magt&&7rvnl6(Gs8B0gBFh+f~~W) z7|q=LJk@_XU*issVP$GmRMdk=0@Lgior}N`>F1tbSoUXRDg2DmCb#_8URX@mwu+*) zVI97jhNQ?#nYNSM``$o=vN+B?*Fl_ssFCCVCr5?UF}U31%G0@9 zR0zX}DrE+@h}KQ+sOVYlk5A2kM>+eLSeGy|nY)E>9}PS^9`^(dEMh2;4E!ttga9z9 zvjL-eR7-Ba36j5`=~PrzTl;xQ6q8?GNU1QUN;Wj%Ii_l2yyum~krX|m zFlT0FQjIxIC&0wR6NnLCLiWSR=#77oi0_D+APmyJrBtU|#i2z}ihX?ozU--m(COtF zhK6}-Jx;eTEU}KNnI(7PDZ!0ao!XTisjSAwk>a2u776GHc{@sw>yu4|pBpM*FvFr^ z!WfBteSPuWVjTI;=Gqp&QoW?wt{Q73yE!=v#`!9?XRyQapqc63uyGcUTa*nakeeg~K!2wp zYY;1PzpYx<*Va8$upH&u#IBYp4~&VD;_xM=aevE0+BA)~SAV{D$tvKCqHFNMUi7-9 zvP3@mx8D)}VPR#1q4)9bYDXhUQIcNjBbsd!X5rLhqC6g+35%KXQyhLt6{#xy?;>*WTAwP7j(`4<3+3 z=$$a^sBK0|yY-C(23N@{kfudZ-i0u$__ zOsG;tW}(H2WDl1>1F?TFE6crtj>R#oQ||PM4HzDV+4V2SYz94}Ydh6%2KxV>1(5s| z+a@P`5XYk~XpT@%2FLf`a;;gfsVC=(`SBG{HdMo&P&RBJ5T&4cyCV?NXx!<=beb)f z%#(6rYRNSFjG6nqY9iAfOI;IPFWve_xo#?EH5Ohqo!aYp#QW!goDxfYBW(^1C#InL zeWOT}`sq}(3n;eAE(dc!iCHnhLnw?M)6%!8_D2JM;h`)71o_$2Je_YcOIMOG`yX~B z`FD(q4SGK0ccl{AGbqB(X}bHTItk@Y-x~L5OcJsu5Mm|rg-|LDB)x8dtiiJXC#x`7 zo?;#AXIy&0S||0a%sXKjf)SxcpD#MFgFsH1t|KJXy-MCmwa2^U=E+t$#3$a%L9RluUewYBeH=7Zz3V) zMG`?-L`H4=X%!E&U05dvQXAuSoTG z=4)HO%CMtmj@GlVxTs~;?`%zW`VIzK5ttWL)b{Y&+cMUy#xw)k2b)-eDstoSK~JP!qYQaIPkjV zOvS6WPG*(@)%`|wG*;saT84-ZCK!kz_Byd}F3fJ8=vOt*lyPK6F63|+_4Cxx`Z?1( z1~(({0MPXde+MdA5%nO$vKRvw4801+V0(7iDP&6XL%9)Fe)#ID$Lm3igP#pO+-HJv zHvYS@4A$U7-$i*={vj`5T;CL?f-*N>Q|s*)S#wh=iJeD^x9eyLLfqiw|Lm<+(;0C6 zp{dlr<}eA#^3s)%v*frszpu~vO8=#P#~mbOW+R7hr26G-oXS9vf5HnRRWPa7ln`P_ zd0zY>#o{mYTo;-6p^VDu-!IARg<&S`IDQwDFqVnGoKwcb)dsE+e*1X$_{{NXvf!Q_2Rn5-VNb;KLi0Kc`JyX?1o)?o z-sAI9<85fj`A$Kj)naG0O=$rk5mAP;yxQc}>!WkW#@|m3^!~f*^)Z|fx?zy${z-+; zbayGD?^ZhHs)W(I{ZN^t-|h#rZ1&x?ZaW*x2~Xz2nL<&=1vGU^MHuGAFLQ(u&mtjD zw+?0P<=^6GInj%=gC#y=DbT^jZ@V8(5kbb)f-N;WI5&n*|NK1Y+In?ShAYpxjkRbu z!nBCKO3zsnWG>sK$3fZP)A75W%Pa6xRq@6X`T6s}(bvp~t&)m*r1)Gsa6N+8E*E8C zXuqA6i6cu?ePl>!|K#VH-k2kYsKe%+Z-Xa`z^6?KSqKY<$fqRmKFKmSDK{7@Efo7( zK-F;i08tk7X%nM6(;rMFWg44F4-U+N7z@Ut+_~(F^nMCQjq+7PaL-po+43n|bpDT7 zzTWA6K5v?hUxH(%E#J;{5zlV5hwo^UF7gj?HXk_fBe!5bUnxd< zaLF*E37Vy(X1(FdkGN5tEa(EQywPx)e?gskl^-3oUjCc#k(g9v;#F8+A}#5%;6{Bc zq|MpT3QYv32JK{(i*Zt6p=XA%deAq~e0@hCV&{;DQ;mGo*c~1#Pg6D{lH4Hi*hipP z1cTu#PEwq)%zl?M3rZ@s9}^ILLl6Ft8Foo4@C|YVBZ>gIh9-NWQRs>e8+SXdHb4@g zhpnS$vZc2wc$h=95HO|DPm&RPYQe)@DxH_TzhfZit+jsFX2}oC9CS>6<|T#_bdHBvNHZi zmYODC@x=EgQEdcsXE0%OVbWO#LF)7y#w>oFfey=LG7Ioy#|#szmCMlOrWgcslPTz0 z#F7>zn1paMAM&LM`xf6$f72RDg7eTTYLAhMdrH2Y99>DdZ(86U)ebVw?C?SAj>yyG zF{RQJQJIqpc#Y!Xjnz79BVfB*8ic8@0MCPV;T;qYwX9xWT_>F7)E*(TA?#CGcG06% z3#n2>*a&;QF9#gcfW(4{+y9DLPF>9A019Pi)58WbK%qi=kr~(Zc8kJZXe$Sq@#&#K zM@Oeh!9J&dWS_YWI+ts|Z|#|9bofqRLFn*36Q9Ah*z&#a856@Ve`7eEOszd50YXW?^ z)g-aJVkn!LtkgyOBAn~O!n&{VoCE5YhigO?ly*SgO6z^eJb^MIoDoqnUtHY2?5RAV z2GCrR2D>nBh)bWY(^S##PY;myR#2VL02uoD%qc#DMA=_#B8&xX@RZu!a{PKPcC~S382%T4T?HCf8x)U zQK0Q{oCL){ivW*tZnu<&7jAG`YSOO=bWCa{HZk}KEdIJuN-d#h3k!1myn{_l1~@?v zq9X3$wC0d*n`Jm9xgPHY-WlEOzPYR|Fy2A2?hiYAIRXWf$ykJX8|~gkn~>=${V@36 zSW+Y{ z;AVGt-d}++t)z3llPolzJbY3T6X znSrr2_sgs|aRh)LmxezN9b)Doh@P(z{gEv|A_ zzn9#9sH(fds-3L)CS~yi*w6E4b6Hc^2ZZn!O0Hg0dHHCpe{L2M!w_f|hHV+@Y7{l5 z0PM~{>h)_o3y8q!k|;%zRe~^=JD;(Zd3rK^q7*`xk4h1JsfH02=)0vY6&6gzR?XYw zSo#4A>pfv-m|sxL-RwUi5?i`>nXs6WRe&yneLu{{$5~dj{UT0je4nh;ZaR_e>_G1- z#1@xmXN$0GDD;6^lpM-3f&EoYIqY;7Q?!l_&WF!Np6BahMdDFzKKT;7K2ATdsxdy7 zzx%|O#Bm*F6|FF|uxN^l*Ro9Vlk2h12*|B$?T}<$hG{T`f8#JMT{t+YD$2aPylhWT z)Xr}(?%>`$ZONzRWP{I^e^{tc3UjO}2e|J>gUEofE8|?R``d|ShM7s5eIL7Y9PBH&3;{eFx<;ajBHx8d z+NGLb1Gl!d2v-%$H6$vq! zp!GOBmiT4YAE2JD1cM~#-ckJv;IXeDVIf@zw3)=Gp)hK+{;c_7CtxX>7kQo$sfI)l zBbRMg#7#Ip)%5*flsn?4YbNA|ygq6-@FVUqI6*gb`R%UP&w0Y-o#TB}ywAMYfcw>9 zh4A-&1{7koSUwN*%*3P~R=F))4c++sqiL%qBFeP)?EU?mQ+=NIjb z;_Yi7CI^w#^2L&R*K7qvdn@wWKAw|z4C9jNJ!5h4BaOBR)vTQ_NB>Ix24W{?yJ>>0mc z)f)K#^+MA{l>&pF*?T^s6%jG}S}8y{K9OStCJn4v(uTq^`Vs3bPsf3PxFbqR-@C_N zW0sgLD82+61!A&tb68VPc+OxI`tHVFmz?xayQyJquV*@P8-l3Dr!lz;~G zy?(y-<|6nDJc9Hl>Q8LbajtdPb&G+Cv-tp;=Z7nd6c)FauZ9V&t^9j_GeXB1n^3p_ z%594LMQS3!qFN=qeH@Su^@xNDl_%7KK{zD?Q8Lk~1g5?);NHMkdI}asMr4t;n_`b{ zPyMK5#QsQxyyOiQ#bTK|7Pq|`4kDW`KYl`y;tbHA{sD?wuV1ZbmI`1cI^jXfd&q7E9n}~S7HNG6~y>g?3ku3WI0OXL%NwvIRmf8`} zmSrJ=Vo!?EGF#5Qkcn>0y{oxV`v+A_t&E`QrB*wEs`OwPC^~#}e?Mn3lUuCzgEWiQ zib>pAmUbqQYc2|7kJ5I{F+Tp5A0Xj_q2blUXc0x~$6*9(PP(;K1;n+Xl~H=yGtGQwK-aa}7^F~tFI*d;$K06SQua7l}!4${rCRjSWZ zvW|=X3|D!Pw>*)8V@D;Ei;SF{JrVxg^2Y{w=O3pH$78~daojh-w`jEC!(Jv1FSZX+ zR;PLCAKOpC;wa7fR+bSRWN*@KQ~Co9D)Q`;_BxeSFsRJ{qy5OtN<@)Ip@;~grGJ7k z0b+YWJk0TLB~TlN9sJ*V6Be|MnGQps%+8K7{A#`rzttz4CtHXSQp5PjdKL7IrkIQJ zK*;4Ny-5_Ge4D>Rozfzw{HD{R88j0_sM4p{oe5HIunhWUpY}$W@!K2ZX=h?ycKL6( zx~jZdeL^X&qUk5WoeCwZ&>(D8j?$ooE}pP1397;#%nh#y#Ws{edd&ZKRgCQ!{++7eQYmAzDUn9 z!M?t}%88A{#J5V~B=8Z|a1kfbyRNojX!w0`+(Z0@z>Q4I)xm{LT(g{RSG5$nRafTM z(J?ak)R&@Vn`l32CI~}kW;u3$kw>z@jt;;Vd#8Ix|BI*TH9-cF19|+Fv_wHAS0XC$ zm|45%=z?787Zs=T5t+KP?W>uYo_GiFP8k*x&CYnmB7SbIU9JzG(Qci`hukm}1!6yr zq;6^U$PxX90^LT)bCRdfv^SnO&$aBCzgk1PgFmXW>x9cMSP|j1{dx#58xy(M;j<@C zR$Ck^YhSTCJr3fop(4c{Qw=(Aw$`Qv{Pq$2)?Jp*R+weg>&rOS{r_^H>h z__GVQe~%#>Rw7=J|VZ9=@HB<6TgwUnXmIab4DhxS7}Z22_F-?4=s9w!e7 zWd(!|WQ6@tz!E(v{trfQl42YxtvH9?0vBRb^DYN}AQ&&gPT_fy-;Lp{~!oQ*H^uAxkm;isf@azB|qV%IceCnR4V}8%8))WBL zDF7x7BNP6bt)8CgA=uNOJjxky0EM>|NkH57BMHqP%V8F~i&ycKwl~^Wb8&=(Bm(Wz zJDm3nM>QT)Tw9mRbBeK}o!C)5=XSrn#4zGt>P3^^^{qAHzT^YORZKoqA(!m&;PB?N zvN5F}6$K)L@5?-z4%mUSSS!eg21`>~0GT~H)n!Ot+Fk~q0>%L8^?&fT)Ks+HcaX@5 zCK^I##Sawc3`hDXoJ+aY_#EtB8(gogkoQ-2y>lc;jJA{-CP4 zCzO;lFz5=LupQ$7gZpVZ?nhhl0}g4vjd;Zbb|HJ7D8E0j+i@Gksr&q>{s8R$0A3Fz zh2L5wojngmbyO_18df7d(0fxe8sOw4Ln}*MZ8YnG4K{=L9L?N}L@xW&> zhR??FsmP9o66B3y5fQzMn^feC{gBJlS_;QC@^)`05Jh5|Z?UtL4bd>O_;zq_m`pdtPe6BAj*?JNf$c+=H|li9Pq-Wgd3&7lC_^b~er}+UZ%!D|NZK6`-oE z;E{5<()%bB2j@DE z9$GzWO9=Tt!vN?vRF#i|MMd7@G&xF$PHVdRQjzCrp5+totsZNl(+8P7*K)q&hJdd` z7^W3&q=QG_Yh1IT5Um+VO{+*$x?uUUZ zI2)9CwBE`;F?*%aS8KNM4-CrtOmcT%Y9X_XGMQ5W7Stxn-p|t3Qo#u{HM4=eqjciJ z?wjK=dy?E)@`8YRv*E4Gl6KmlpT1yNZ_E_i!dc~Jx!x}ibO%E4%yvy@C-czg=j z2V1=MN4LLNvvBa)3|Ie6#x9@rO&t*sJ&LY@;uGZYs$GIxSo&=)1uxgp;_;3iv%fto zWgQ27PgG|a(=jhQM%?tFum$bt6&AT`L2SB};D~eH@_290Lja9ncyFslVcU9#BXqb7 z)2v!yH+;iIu+{IG3cM{9|9Cx)mh?+)FTt%ZiLnz9SbbMdtSQ-@Ib={>|5}0dz?~)f zS4_W|?B$mb(qq z&OF;txQ(|Gv`KM-C-f`BC^6gM71)OZaGElAAVFp>-VUe*?!jsz)>o=$55eVI+h&b1 zo6#?MOl*?rDdJIV8u|t%!HMxwD|&I zJnEcLcH7K+S@-`beWS(WK4`$0Cqcv%9lf})z>O18i^4rzClQmNfmBg^7blKbGxr%(j|~~8Jk&qh za+?1XQE{}@P0Kv2Q@nW7^1rTl5>PA$0H)Uc#*Q80Uit`a$IRRxNwiNuX&{MMn1xwaIoAMtd|^S-E$#7)tyRK|ODh9q!MGCjkL=0_;tFRzY?grWtCzBFtO>W} zZ_fxJ(oA>Ab3d`PKmhrXP{J*XqVM05YO_xpXC`*m(2R$u>N?FG(|A(r zS<(AY+)@)m(nYwJ@GXku5dT+`lM^CjVp8%q^YU6&e7&($92ZQ!==EY_|7Y538O$-3*;_2AtZ6FO}d{u`}F2}`e^5sBO0fQ^%`l1}I*+fH^ z`e5v2j5K{K=)eK;<~aM=T?1yI7wOr;EQBNEdzJcxdT8~37PMF@&Nz`)X>I?`lTj+% ziKy*4)VFfz(!L%5b0MMJem2x@pPM7Z6+||x`M;OX@nA|{f9eTr02MIsqp%e)!yiLV z!?+sqb{NsKvcEfoPW^v0H}W{@Vdh{U7jI^n{@Q}fPb zvwf0)QO4;*!Dk~a$nU1i&KD+7>Hl^qps|0L1s$GHQ7GRxf5Ou+batc(d$Z?1$t50) z{|4I5u=`%`)WfkX@pn>m1Av*U>%vn3`Y-_RIAxtcga89$u<+Av9-(YoVRJBaBkhxt zE+zo@K;bH$$n0lEHdA;MPwr%Jq34#uu1^=mgg9}(it?!^c5E`a2D~K=CvsUY)|6R$ zA{xVt9ijJVxRKA#vQ!GB zJl#^zWmzdFVfU!@|A>0as5rVVS{Dm61Puflw?J^$(6|M6cZWc5cPBUmcZcBa4#A;u zcXxNco%cKE+);x+{fE)jReS9{*P72X%BR?4g1M0#yK*fsb5&e=9*7XlUGAB4st>p0 z9{JWN9AY&lV*dE!%km4mF(KM&19*|*<%6)#$;d-Ee`Bcr!3P76rhbheCy4s*rSdoB z7p(J;Jjh=>Kno-33W|Cw&}o71^GaGSiVrXJFIXHgo31mV>_6=o&SVPdW4jplD;1y{ z&OhHB!P>$+`m>yU55lD=CqXke}KB&`>4)W4p#Uy%LuBBwg+ur*nH z(HP!VQ;%V^RGk|R8sQX*e=Gv){Pw1)bPx_8YiOt+xy7fa+yN0Zjj?}t)LpEmP@E)U z*#q(%R#_L3^|W2T*=yixY>6^lAIifYrTra4r0T!WHX-w|lWkBT=AFq}Xk2#ftks$N zOK{EAI52iGSr}e{_8UMBOmChgCMfmFd82^|6Htb;c0@_@EVlL+){XBQ1WG>@)&0R3 z9R3~x#T^ENFc=|h@7nwmfFYI3bRZg;iK>h7D@q_qiU!W?a4{8@XL;tdIRJ{>+xNBQ zQ|EHWCL;IxQCyVw4*0)up+NMeDGosI@xe7V8uBvh%BS3~Ghx`7l>pn@xQ~y*bzcJ= z*5^75xTjZ$b3hGqDs3#oct|0TBR21t)QQ6b%AlPsm#)3)rngsBVEry-_%^P5)gMcj za-p;L7VnOi*kP{L|!px?`9 z^L`cRBMKHql=qccROxHtbERpkdY#BIc&C=)JK!RkE7I4Q>_6!2(wNYDC7F^iH8vR$ zS!#-iWTBy4h8Qie{A?l822s?nvvFFusqTZ3MCFn0Lel0X4^AQd?{hZQKF>x0de@yk z{7ec(Ouq;Gjb%4sF{wU*OcETi8b^XvFq(Q4do=X;pINT)|Ezo)7}v=rrt7-9Gz$AL z3}12^-A7|IuMb|DPZfLFt^Rq`Q&C&i`DfNi+^rUuD^%BD*=}iFI@`BXHL-d)n5}2( z?JbQsYD7=NHKWiFn{$4H*ldw12v$;dbR%6|OXVV0pTa5$llM(?_HjHfKBzsf%&DL= z-3bMp>UFGn5_3ZM`~`LLX?Cgps4;Be!A(mA8-5W__~Pdl$@nO_|Pw zo}B*rdW}~qN`%k?5q%ct@eTO*JUO#b#nrl(9nfGbq{>W2H)Z~1C8!i&Nt8P9GSf^u zh_gmv@wRvbcNJGDzHmDnX82B3^kfh&h(~~zNIRb@v*4-~J7ywnr;v$7%K4;>rHOw< z{uI13e2cBU*NIpLg{Ds}RKwH0aCpf_OvTyn&~<-=8o~5-A8ic|$uTGX><4+~76LZW zH<96ZcP^!=z!kdK57p+zkv@m$5*zf+|hiNI#-D{AxS zta9!ut!4L%CAdNXUx!rlm-$gY6+_++{vY2R zQORsmKE#g5Td3PznexZ)!*U&~xd$h(t}J)=obHbex)Y$0P*gh;&L#HEjd4^qqCFj( z@mj^Qh-5aHh`&uo5tr)u(TqB^LHQUsU6Cmzd4=(i%;$0e395BsDW)BeM{Y*=EN4w$ z@d-M0RR zZ@Kl`_Xpa4U6|j{FT?cA_heJU0Xp(}@~B&KU}*M?LUik|R!4p$>kF2W&0R7ngdLUpV(5W}1-uB2DcCaQ#Rt z|Co&IxZcg0uU~{}QSQd~uetE(d0%%9?h|Q7YN-a^ z>!}CiEW21~;K*k>a5KSM4zl7@;08JBW`1sIFDjB_&}|Q$K}g>z=w9{_f=GUYVy>A* ztic}0lHz<$G>y^ZIBtU8nU0S4!}W!xk8niiyzT8wOLY}R{_Xiq-_O>Yxy61Cf}`%- zbN=$f@ACAvx;WhpCgA@$hhRC>TFNhqxXnZ@aNCYK`^#)9GH0sX9B#qpo!Bfe&c=~J zATdHMPk_irLW1>KP04?SI6y#^1bg4HV$Kpm*`P612e>Eq+AoOSXA!cx13Xp&C33G)9>;7NR$}{uzfJdPHJ%UCpG@PYibS9P z#Gn7}_Bcbj%xZ_y+x}kkevV_R!1wJNCGsL43kwbIgzQ95LfEyHTq3C5CfZ7~bEyvF zl-QkOwPTtT!joDP@tKb4bd~nJFy6O;$2u+xciI!EejDW^5-@*Em@G-19x!|6PM+2` z-^cRP5E58#)qv4VQ-IhIMY}#g?{+g}ACUgHZ-#uJkBvTIb3x}@Ci8#3h=?eJ)}@d$ ziFu9UXRJvMZmbr+ng5JDAApg>PzM|CFcZ4oSA2B{=7^%TEG;m7{M77tT6hUl)Msbr z60P0gEHzhA!4BKz+AQ(3ae6v-2kdjCyb88in;>!HPBeQ`rivgJH^4dCS!kj%Qs$!R z_=@hH(fQcSU4uzjA`Gx}5i>vA%O7G_#dzhca+v&$c?gt2ZWiiu@oAaju*eBH5%%)8*F~W4-hZWL&gb| zl#MeeU;LgXDn}!vcXS7Au#dD9NqIOphcVI46LWL@n~u`LgQR5#fP{HaEo8*~$jrkB z)R5;3AgYfA&$HUWe9VLCK71n6L@+HJ{@L$fCBZDrzV>fk^(xMBZ_aimC5%po0&X<( zWTf4XRQe;6k0^dMAhfwp)}>`Z9Eya|WHH)s!5G{XE`Zp*TxEQ(Im}%c-nI>NV3wgs zCWQ8N<4%^DL!Cva<&4erBJTR&YfJB(SK-8i+QK^y8rzOCtj6Eez>@vbruFJ~8N?m} zh9d#+eC{}2LYNQergi%^=c>bOUp{@CZ83N&9TBWEg3wB^0CBweF&*g(;YTz^c0tM8 z)M;TIpmUt?HP4-c%e`nWm*$YmBk0w{5x*By{;@J<*FV(KX}g@^DXJ$rmie%63e}%G&%+?`e(WCNIQ$|K$}V ze@u|Ij?wT|Huo9hQPTpJy{^&EZ9SzqepGR2k2s`pVxL(WwR6<4(t8we^jOVKjO1m8 z7XEI=y*J~lZ~#!K#aIy0>t%+bdDUHwWfRf+=|#oh!O60Qo0`@#QR=p4m_(hq!8{{9 zKvY%dR?#)V<6l!rGW=tHTb;oG9zMqRwaHlGMy_ilKs@~`iWNXzIjKK{Bt>Aln-Y98~iS0LlsHm zniXNN!1mlei+xT36aQ1hsB+s?Hgi>(5+&hMRIfQ{d!hldn+xoEzqY7dImNG^!(t!| zXTP_jt_b-j7p+H1RGyW@gu%#-vbZZk3JnW|?-gbO(U%<`Fpt~H#*=QllPTDmJGz3-)Uy%10cH)&I=*$*B?g^C+dKjvZevx z+aPY0EcNR$Xhdl>KWQniy-cXrM5M-VwQsa;Cfd$tyg=ck=s`oD_I+BZN8J}x%DVQo zmiy?pl`d_m3*6;Hi9Ar1+04k%>pc?KRG!R~w?&0tW(d{sP|4!3vq;rK7I9 zgUW{E2*(`$F?UR`WB$=WUKCg-T>Y^grb8i^brF;DMd7d+VWv zh2+qKW6F@^5>(zw0HnjdHO)c?|HU!l8WY-+iL!qHlIC&Bof(uS?CQOi4s4G~e*K2V z)o3)6Q}jDbfFr(bl2WRTykl}vuL&DsotTS6sd>LZv_y@HVxoJ>sg#p)8Hd7}xvOQN z77YrjFGALu$hb}2@SeQ)PsY^TR0_2D_h zXnd+2;9)Z-<=_NW8yLrt2l(O-H67uW{pe^^%hrY)u;GoBc&ULmMT()0qpk5xJYwQ? zGO}|^o3bPHuv+8BzgGkyAMgd%&q{$=?Q_w7?9I~ir=JkbV zMrmXGii9d^knSG5HF}T|+g4mUZ%q%=DbCc92O#(GaJ(!6kYg;VF7yj_Nc1}#Ci$Gr z$*$tBfB7t9(|nVoDDs&8({~p5$`eV0eMP|}o0^`zMbH_H$hgyew1DMzNS>{ia%fbf z2F8Uuxu9_<6kfuB3|^APp!HQsSfUr~kBV|Ei->afW+;V%5eca=!}H?I7)F9d=Bv%* z{L5ob*+(!xhJzms$_SFI7%>dJocS@E!3-nvSLtv0$27hj;WR|v-U3+^Swa` z)u~`5^1{V7!lgMFK@v<1Hedmnxf9X1s?BN%+?ZN~Sih_U9`D)X(?eY6P})=}Or6&xJk7BXdr36wp&nx(`gBousWM3fNc z4sKv%pi8dbbVi91QCU&CR13U#SD0(4ofH509V6KW;F@zW+O2mU^VxlQ(Wk^Qn3Rh^ zWF`a@2{;Zko&1RwC5zN6-s%}V*Y8Me)@I~k$Ny8r|LyEG|ADDAs}4o~yH#{_aFSQqH-CL5LBu@I;*o}4 z4WIKqJT})jJC&!06mfr0w&IV}^ya@*H!!HMT3s$V{UaYX=` zU}y%O;h!Rl+Sy4o*P@5`Uv6~BK^tDFz9gH^>s|_(UN3$c_zv?}Fgw4sGgL>H#wLQX zkztT=Pl7IVp2Wxp;DVXp3W{w4hw;5S$)Ghs;=voQM*-;Enm67yrj+sfFaA`JUY7tF z0Bg68>039bc6z@j4bwtk1Z)ZCZugG+*!vTOEi{|y12-<^`C}VVzOybylQ>}FU_79C zVkv7wHnfbkW;L?dSIxwKB=%Xxw;9+zghiBHIn{IsCF4v#5|85K9 z)FWVzAy2Jse>t-RxoZ#`L=phYXwt79p)HKORnA~ihid$AG4YI&JFM+XvAFa30tvB~ zv%F`3?Fd`RuKw-zwo#4AD;_l?0}_$r@>Ww%|DOHe=`e7hhsIbUNtl_2sYq-<3?uk0 zxX$I4tf*Bb^$4vf7Al%0-9ygCCOZ^^YTBBkQD~Bn&r{PuL*Km>8RVG{>h8W`SPDJja$DOOX&DUMM{XTZ=WVFevw--$KJ2#j zQbYum#xZab-gg%O{KVOmx_QXrojU z>`n?>gA5V02X5Yt#8)9ybR4kQ1r)zLAr6`UzjyFDoc~|%KprAGx&;cD2x4P3swXs= zj~~W*H`<8wSGf*F>|G`HR9mapP6dAL^o`kt9%Ek0%cN!{S2|m+S750%^Z`%l{w*8ut8KV!3Tk{{P#+&jXDkmT*PQN^{$g#=@AP#-J^AfQ{pxvSPaH^XG92brRz6pY}UalF@LmcLcFNk=qZi_*#jz1A||R zVb}E=n;B^f_uVYKt+*#5zGdUk{;wrO=MHy6TYEqZ{o!9b4GTKfp6(k+eFG&@M*a+2 zNW1Aye{+eID>$ZV8uM?Ea`J|(w{8U}U}7hZ_~Vr~0?s(*uLO0icI5_ZbxbEg6HXOH zWs+r%vIJc^*J9tIPo_VG39%cdpOF(2utpjpQRGk5*Dkb2IVwunhsj#UTz!h+mg>FQ zUB^w0pn>mX9>_hTDo*T5QM_y3(kj+aiSNj1VvP9Y*(j~PJxgKKa1#be2NjUb6cqF} zdu*CtOyK6qyy9F0DVi})0w)!|hT$FQ$>C`dg!)I7@hfq2j(q8hi5VoAPotWyoF*yP z-*af}RuaNsR5tF7c@Oa< zw$(QJBCuYf7QIVO9WGNC8I2!O4jaVN%5oUr@Kf7zX^@2|FG>=7fs&7BYLed&cZ5Ym z4Ok#kD8ZeXWgeDMwN=|PGN}AgIMtN&-)xNt3I6c45F=I>7FQs~da1!6=3QBce31UMpenERb)x#qtslMzYYXcxTp@D!!!Vv$~ zuFs1Le~h=fzY^2#P%e(K-{r7G9iO|I_xmi4G5RoRl9TJ`Q5e(RA>CgiRlMDuj5UM6 z^88Do9ay1FLpN{u9(YEp<9n)!0|Qb0en9-L86vrLEA=4mWbS8!0C9|lG&j<7_6(4V z#M`0Sc@KViEQsvc2z8VAO2eH78)sJv1v$gnW}O5=r5LuSY8&cY{ZnvT@v@i4xYIQ` zJ+-#@vkff1xhcyhWpyx_iP&w7-SzZRYIHSYjRR?*UU4t(4g_qp`*^tuAM8h$z7y@?R# zzHbB(^D4rd+_$jb)_6JOv2n~8tep^58v!x+qB2@Y&VB5m!meqz0_+Y30lD7N`fCW3 z!hCTMaFgr(K0?%xDlo?TcyYjZ`f2u~CbLwu1D;&dm9DQLmJjzPv(YCX_&Be=i;Jps zUJvZ+Uspxs7tnGtRZHv`D;S-75AqM0OYzDA@iqg?XV}#w;d&cl$!v&v{a= z=R*bop<(9z*=YO)(}SG9Phz*6i%11WxpQ@!HuW;y+COr2>E)5F?4mZftTwj4E*MDH zzR3Nhf*kHn*L*x_1NVQEHW=BPQ&+#OfPW%L3gmnz;b?N>?olo_W>vWTjP4BsGB;%! zHBHbFn{Z3!D3_b4T)&_Mi}x}CPm@|NzVQ1zw!FNdh3r0lC5rh=K<{P4dn zQ#L*_^6q*~MLybGpYqha4^kW1-i#Fyb6o2e5~qd@&da5DP>Ji)v4cRt&9=5DR&nrh zz2r=7dK)v2^S>>cQR04GEJNnQ{_jrc6SPWZ(I=g9t$!8MPXiKhTpAUH+Uy9)`|9-8 zIa_Hq!a4xS`iZHiBtTpkQo_QpJ--r~?|#8lFHI2y_MQ4uI2mIUlD5L{Qv0le#dUMU zvGHJJeu0?ab~DoMQ6gzeq-tdj-kZ6skuaV~MG85wd2O$*ulEf(>*d0MekOfHarbR# zFf3ZHR=t9vVjtH!b@RbgLmBu=E>f3B5g9%F z2Elfgwu-;K%^YGdK<2m%xM8Ek!(=gx=Vtm^STS&eAY?^f!&#GhDRN3;@m|hH_ub!x8$e%<)sCbk8Z%pTDTGb17O$7Cv0! zUn>dliCJ|+ck(&jPY;jdvf5u`>&Phjvpk3JXwR8W$ zS=%d%j!jH{U$M>#Be*(_=6{v!cwfa4KGOWoBds>W%e2>WXArfQ+eSy789*9fAukie zX`!#*1;UwbW>ijeh;%z$Vz;oiPJ|eSShGxZ(&duk;|GTmXiaX9W)(FxzhzL~q_;=K%pA95J`?S7rXy0eZ(SO+AoF&_s2dAW>SZmEmmzpcGQXQ!6u2Xos8wz> z7b3my%P)nKZsZU3AMpugXO31l|2ql)Z>i&eEOmFWCzIx0|2xd^;x{ePEpY zlKiDC!|zC@;h^t93jQ(Yq8~nd$7QBzl=0%_lG=?DO+nAkZ1Knxk6C56pvGdAMnk2s zCx7+e;3!t^-UkKkjuI%Q;Af*FD*N&oONcGle#>H>d) z55MqOwf^om78HCixb@oOF7#u|i|8X;J3mBUPk|&l5B-9*|* zN&PxmtQFUF-Ta`EEr)R6;ffNO@OF0o240cETYNvvdMn=S96I=vg>j`_5ofM#fv?^& z+YZw&1p(cv-V{{9NY78N@zeZ#C07KABY!_-xFRerElwJ@*}Fiv=bjb{*rH$-;jT} z@BaE6$ufXV;!Xl=@vc>Q^SN7N9jw^?HlqVzO$H?g5}3v~kYE7N;h;_ZH6nh~4H+IT z)$QDSmcFcc-M&3`j(9U9jZi!&cc ztPWtfY@8pq;Kf!Km-E?Gh=1u}4?%Buz2nBLq%1UfC;v}~k%D063@2MEK|5^{LrimR z;rCz~cyyMZOC4%&7fT`bhxYXqjreI;nXyIV+5k_T%sihi+gns5%D&@4~9+qD1S)o1zX&+?m0=Q#L)qn8O#bk(fu2i#FcZe&-ZD~tkx?{f$dP4 zjYV=<9FpQ#-hF+2EDn34vbWKSu#{w6*;My2I7;xXT}ZnDG`BX&;I1vF3wO_lwFDNM zJ2vg(pig9Y?*e;1l5$=(4^=ii^r4k z5OGRr&T7&~L~$GiFTJ5L6iNo4$?q4R&bNS^)qEkC>>k&AwNf+V?m+^Fv1ej7VozbU zoW&hzRDah)$BEjZwz)!w&A?#fyK#hN(-JbM-bMq14_4i9-di$JeuyA?$>Xe7>BtE- zIu91#20jSId9lN*m79MnA)<(Tm=H9j(6(fbk>&H&9C{QOdpBnOJr?-|HSinvfIbOy z6{^CPLEDU${+TVu)=S^LLY~-=|A&u4$6!VBc!kAcMOCS$YjgRULXd6kD3HAht6-wh zt+sGDI!g(bY}W&sUWq_;er8Ba=I7-jr`F7}Ht%!&`@}~4Cbj*YXLH-z8P2?gRn_FS z2FmT*o7sBuC9nj5tnGaPKEJ^&6sh=KabNX@pU1W zdVAD#+fu$#Qg_aln!q=f-&5!GChi(O_`ArJex$OR8a_E@ME0*e=yO)@7grpLO3b+x zv=C^><@eSnaL%3gcG_vVYS0C_HWK@xLZ-&jIPuY-%2aUZHNVJ#E&~l(xXU2URP{C2 zZIo?h-`rP-pEVBhw;X7HPtG7k-ywxGo!=&#kk5x^c&ouYw=uxLz1vJ|)7W$V(TQHn zmH?x}+1m)N{sRqYbRO194@L-DsG9shP$DifbBz@4?jBZDR!tY}&CKxC^e4uiEoAKe z>ULfaADYZR6v7stp&mCP1+RvO`W@y?8BbS}=3YHf$rlN5E6ACHTQp<268- zZTz}ujVmW~xRuSe;Yeb`BQ~C7IE-osvi>a;WFjjK$Jy=?SuCXU&50GH{>1VHG6C+g zYxRcJ?&&VFl^0z{CSnqA1C4y_q(N@*z6_g(ure1k149TJCCziR%Asgjd(rV*p+-FM zw|lv7;>lyzI3tkZTPeIBwX3d1vh-_D)znG2m%UM`ho!{wJ=Ep*v7B8`xq^fD4^JogUsQ2wwElbItY)mf`XMI;Ty@YED zNt~hPvkwPm%eMzSYsY2tA5D^WPlBZSpLtn%WeTNh$8HFO}nNTzL81eNMSYg33`*oCW1F=2eLCcm$~%QCJLo{gf3~7 z8``dSc=ekTlcOEjN=Sqvo)hLc`^;*7|bgv z23y`BC~B{4jBVc-d41_J+q{92B*UX5|+;ed_zHNMee zm>L?A3tiW%SO2wLDveDCj{@!681ydO8rRnmt$djeCV@ltwwC$=AzHGfOes|f#n1@K zp5HDPhEKQU-60%u|DumXCOcXp3IRQoDP5Z4`mP5Pq>D{(3XS=tWCx5m5EjY-Ar*Vv2%iu<*C<;>Zdz|nIXs#44O^!suJkA_pV5_dmY z;_3G_^@&bM)UO;Qt+jyk-XY>%Iyrmgj(6^Bj}MkGm1*|1YkgeY>|1P9KlPN6f$heM z(YkS`DP56l#*aJ8IR_SKB4`^2GS=9JpvPWM1LAw6(x1dN(<w z9;Z)y+K=O|cRE&eSR1GU8j<$XE_P)`a?*=^*7JTW;AZTe51Q2W@iC2*NV->kClCVf z1S` zBUN;N!e8Rp(l=odq2_avH@#-|bmSpCqC#D6KJ{HyZT6b)7Y;EQtC-o1#ZL5E2T$<5 zO~+#)b4LiO(LxXL4MD0E@01=S$P9D!thgwX1!QBh>@?2v-wOzN1yNzWU%#LKaFF}o zCo4ig0r?0ryqtk#W}^rvDg^Pe??d7tYIHEhfdJ1>M-0;6ySu}yWB@?K9I-R|VZ+m` z0)Nks@#JNgr``JG=sWtu-N$dw=V%}TMxB-!s;9xwC^INhX2@BGpuqggiGKB7q@>yh z>da`sLYpt|t;SfZrtWeDso^$Pvm3GVIs!dB9-H>N_bptPZVxAg^d39e2RX15CKi_$ zBGA9>8q8A?UwVjsMxo^fZh3?7;6~jIUvvH%oK{!7^h9_34YH)I1`2csK%sy5$OdHe z?eM)!t#wycEt%ou6s6~w(@jH)an39zjv2nLxVWD1f*8{ZPwj;gxMGv=b9L8#+HdV> zU~Xl^#OpwB`{6V{5xFpwJkKU81Z7|qpNt=Ot}J5$pvyqR&M9vlx<%sl6H z73!GlU_aEAT^Rdl^7&{;mo}QOY8dc|hjZ?}(>bdmZm;1xgR9RmKsB7rr2lW*4j!tX z+ymOfZzjzFuQ&NY5&*KI{L?e>OV*dfI9uVn=JvxO9*g(FbS`wsiHz+oI3w{g5V?-_MsXhiY#XU1XO8OEcVWD$bzm1p#n?$ruHkcrxluSPSrj>@w4kpf-RmVOSz`(owMiK1$I z75@t8e?^oU9)5hNQf_h!&*8r!dVmKD;CtKEd+VdBo-fxjqielv^1l?72gF5W<8H!i zk}6n3)TCs~wI%A1PycfNn2EFi#OS}EyvH4q54W}qA4fW0q^9A81cA1J^akAL2e9{m zB1tWP#(_snu3cSl8J(iwM01I0{ncq%wt%anL^~5$g&nd5c7d|FI!`*%+W8Y)j*LZg zw8<_moFS_gy(j|J!@K7I65yUg5V~A*-I$=9P-#{F<@0hmK>1E?`J*QgaZf%R>JtT; z7#*rLDl*B#bCJ)}S7An*)>Dqh@Xm*DhJEoi8&nkW2NZfSb(qrzCTU(;)98^Hqa^%G zw7Mi7J`C(rel5o6QO1~f0mg`^T-dXZZjLs3Oj=P{-{$?K%#qwkEiI2#zR%Y))k%(= zt#~W|9!@@fV&UTas^lQ+na#fm#ju33IHrQYID(M9 zM)bw$*cgV5gw0~dn=E+MYd_)ZMD>905L*6NGCK!(@ilb87=%YAgN2WLkKW@V%J}+v z0=9WbP15t$KqcVPM~(wZnKM8UHh`u>F~9CWs9hYx>UU5GUg3UcC-XOS3eQd;2Q=@e z*ZXx&BwnoF(}gmu4hS}*>f@MR)M{?2M|&K&d)uP=q0yE{$PXLc`5=V*=|b7~6iM>N zbG|Ra)vj>yh3VW{reJ($FT3WP9Es1z38n}=`X6onI^em#M&5VCOZ8XboO^xWV@J8n zWJD{|88T83sKZ$58X-(Kx)C{e=r7zu-F;+NK~|yhIut1iftx=31OMC8Prln@oHLll z^g=9)m6G*GrsFLA0Zwpo{v=rjRG8JV8>*ad4~E<(&skG16)*kI-n9D!HC<*&TX5(_ zI_Q2*%Vr3YIBZ8Qkxj5 z-OnX6nfeUEYA)wIWu9jks0H7w=aD;~{|1x{suDdd)w2>tyWAGk6spdfd?DaB2|0qF z`xEBIKcie)9nKN)n=lnV!&+s@Hzy(U;jjwNc z^Q?^CC*!gLBO=Sz*nr>I>r-OJuh=!van%}PX@IS3tqzZEhs05;${==jnbFy2 zsolA2w_ngWq`_ zck;JrYwoLFDzz<=mT|zbc1B`OB`__q&N}AOzg&m6sFOeG@34^3lX=$O1jzLmqc%zw z%Cg^|Mqkg4**Da13oYMdy!b-*wApDWI8NzRaCR~`^(F^$hd18;Be>0p*&IdO()E7_ zATJ{PdSS9&;SwIlNX%6ax%b;M+VSUffE?T|7a~-OT9bgt3$LloP#F;}oqOCLojdn1 z0n3%AYvZ-fm4!NRV;2h-Lk$t-%ig&JfqMP6p9@Ha2P-?ChF!(n56kIo_@&rM6#fnR8iIWhUWAOyP4@j&=V`baJpRzkB%OcxHrX>%gzP z6>Si*e3drMI?5c`=@v^~jHGhnoL}b%SI~kJ;G&6HH8b5^BS$kdw%nfj)%M`GjgE^_ zFvx@Pf}-d}@h!-wBJ3+MGy1h^vNr4Rs&)R%x#6=+1Y%^eZU$d!fmT1@?6kg4XT2FC zr*boDc3?ii^AF>q?S9*ZM9*trT12!k8yb!&AeeO1TmE8)ejjxj5%+i&;?4|EH3aq4 zUU0+@#H6~fL-dvFA>4#FM+C0rrMu0%M~4_LWF~R0^9w|@Ay=X2Y@>AXYzJ(rUUk;~ zQIuhr2sE}y7!O(>LH+&Dw*nq1adl=E6^*>-*Q1bu3cS(N#&w4KRhO)k0jlxs5B9<1 zxJlIb(X()T{w&RPiqlPXbyA6V+$faET;PE`8Uq9Ei-!jJyyMGlMoy{7DHG(d3hkds z+|xxvR}_rR@l44f9j z0;h6a@_Nl2A}IH)6g>1#887GNKCDR^Qe}h>09Q0`hYbGKhUDXkYIPR4%mBt}5C&U< z*-2{cPa!#anZHoO6_^j2x$f$H+`AT)O-&12%P-5FuW65wo*0X;3PJ?`uhJ94!!+c+ z9Yjbg#m$9#hPHGL`Jrn05IMtDxSENnds`ftT$y}l`C&c<5&+2P2vOZ(`_no_ zpd2%~qhde!i^O}63b!Ex2KEb9cUXy8?F09ktmp1{7(ut8b1`SJ6Q?^Gr=FY`yfW5= z{SN)hfgN3+KgZM`e>+10>rf?euD?t28Y=racxhi~5~Re@-uBr02^}ZbUa(vc48fUyy8+s4HaqO&1qk;b37<2wyljOtBJ1^m zxSWpSHPq1f9`spS9Y^NJ7M5S1Mj=X3<=y%G_1;(i|yo{USZ_%&=mI^A)^U0cZ~7%U3+M`uv`jIOivS`EpM(Ydjn zTNjySXc2cCm>W`|hGH#@SO;Yo4+dDj%b?>oF1jv8AQBb#G97nUCiHV7LPaOum@Od{k{O9E(?->q^{VG(yp`J#v0{-elJt27GlK0~iCB9Au zFPhPXhbO2hXd>uqi?()>jL`%ICzyjvUZJIUz52Z>Kf(L z(_-A-JuY9_2(pZH|3wDFAGiYjG^XCWPIe4{$rRN6zFNk=)B~9C>-GKb5_mW0g2Y9j z-B+0WlhV@wuuRibbqdxFt|Hk8(-Bp%6R}y|PsNXs=;#JPpJhor|Mnt@;pM;!ed>YJ z$|le~1PvG@z*29fK>@uy(2s|OuuJVwYvRRS1G>nOv84y&8PN*9yXjae|Dg-i+n=R< zod^;u0-*_S$T+?>xvOXVF%SKuzn~^P{bDW^#C7o%<+cJNL@rF)#uLGJRtAZaxVAF?U2#{rJ5D~B!!DQ)C_C2U)_U3OGe8SUE{~uLv85LC56yo(&pGQ|@4CP3PqX$~bMNc=B|Km( zquxXc*;lAQJs2=XCzmXT<37CbKvP2Gj_N_bL4B-~Cm=#hlhTw^@7HvWX{hGQu?^Ya zaJxrgjAt&#T!^N0%+GnbLSI7>hy5Tx#&B(8kb-xaE%;l(s!iw0S2R_lxQeO}=0hR) zF5!#u!%pv*hEaChO0C)O!AJIq)acZy+76$a@(93j?Qi2s+Cs~m%L5U)=B)X@oEyFCscfQ z^xJ@+r7LC1WcH4B3m1%bUl@1aAay5T&SYWB0sdB8EFXYqU7@aVmTm1F`IHo2A8sQg z971Rk4|4@gN8TNKHdS@JQom(_eKTiod9=Gi+{A93MbJcj;jt+i7&{O=%z$Iip&kH7!p@K)KnQQ`zf`G%c(-k<}=_0w3&R-rM9 zsIrPgb-J(3GHvq|SA)Jl@qu$VN!|?obg18S@_HLT;MAivA+F`SJ_Vz{b`S3^z8B0a zfRX7xWToWQF!lU|t4|LOe;55iWAW^e3m!nEMzH%=yMwoi+{GA+eol0W!jkYSbrx%5 zYfw@`ZJL)HkdcIif|4@3_f-!q$n~^9dT)@%jD8K$D?{4NqVO`cw<0){qo0{WCu3)N zz^C>Ax+pTde%gDlc%2~qESMBqdzL*!Idz{di_!l=ll9e^B%=rPGX3)kHX9a|E5>ge z9}*VUzOELj%r4NI(@@~EEdUznBXLXwYDi%-C)vG?Q#eWe%^X90Ps4s%fKt4n6}bAK z8$)N#HFi<5sNvmYJK(nm6_QIII$-o;KIn|!#4Vfn^+O)9# zJ~ti{wG)3l5N0oe$L#16^x*l|;oM?viF!Ztdo$yuXUysSDcOExP24&4Wi8$pKxoKX z%Tr-jtTm&;=lCW9Jj(4Cf&iN6AR=ZKtU#zHKF*;=oW|AWP|7wxh|raip`X*HpvbF} zSs#JERYggQr3M8L_Z~=}M;C5vsUDtlU|et9Fq!febjn{s2;l2X-c+VUNudmuLcSd4 z=HU~t2b$jJVbH_5IBr)oOFTcP%7-k83@Ito!G6ZByirg%V-TQ!D)!`Y)L`M{yvxjW zU_}86r>61$&cyX*>IFvRp`+He&3Uw8rciqAsf-Xo8<^wGzTM^M>QT*~mPRtds%pP9 zN~?0d$sFnzRt`p!r`ra*&N}Y7G?XO4A#Su)E{A=#qW)KfIlQgU10UAU*`Au47;KIl z&aG|r5iiA@So+mS5|y03U+=l?lzzDbCvNL(6OajZKw)l#U{GM&H>|VuhFBgMExzYw z+$jGf8xd@$n#}(*JDKtR;b>$fZTN|1c1F0|JlKp#Q- z)WHn1$a!qBdn`J5#GQM8ZI~{K?&QH~=<;_;y-w7;gbcN7MkqTTRR^n0;AXPoCbGLo z7+Z-bhGS;M=YX5EoOq2GwpYm<7J+2*YNES>E)oB#TUnofiZ^2(7b{jH%ER#wL4k-z z8di4Wb|zS}nvvkL#-8N=2u2XXKxXb3GY8d|5?C2r(x4v0esZy>uK7RHc^C6|0%b*9 zOr6WfjN(sWjH4z!4QDx*Ed;&+vc~0c6ST~wf^I;(_q@{iL#?gqbK7o&%dp&}a2S&4 zy9-w)&vg@N`Tnka+foJp)R~#`HUjQ}#2ErB(7J@_ciwgw^%$)0T_eNEhKo@W72&OX z+k3XB-q1K`2LYMJfWqGz5@XJ6A$G^0oiTE5pv=zOx`-P%9&o7(C6SB|D&|Eri{ALG zn>j)eteqUno^^Sla7{$mpAjV_=RHf^BlCzdi^jko_=E^_!tjR$XfTurPYA4Nj(0Tx z8Ky(g?*AdGApxE1k=Ev@h`;zY`L|x!*hAeYu3^p-9A}3C@jJ}M%N%Wx?!yV3LiO@w z%)omqb*nfaL&>WMWqHj{MAGQm!Ck&q#W|gAPfblc9Sv%$-lrN?s<*-Jzr`Ac>2LQ+haRn8x7LsI zVFl&&&ULBZ5q3RHG_RbR1$m#{?BvsCqAE$qs?Cym|fo6o+rnuvi(kmd(tb4Nk;i-}l#@3!ohc+h5KR`qyof~CE~k>v~8f^ zHxQl^oF_QbLYQ=yarl2>JI4dzbRHyXU2z{)r5(cAfHzmI?eK?UiQ{uciTmFn;WRC| zIp$vviX^5*5kgHyDXIep#lJMtL?k5I`}Tuc=W3`{S361?jX7zwq3fb$zT#=3vc1ac z#{mq&M8O=TB*#qC2CW`dxXs`lP`(!oSo-v^^0bWOsPV06wBJ10dx9}iYnBvSIqbSJ zn+dh8X(IKF=@YVsjTRz#gdXNqVnlXE=WGzEpCP{0OzDfhA-*v_&lI*wYN`Thz`;1m zSb*_Q5K9W=6BF=T7lh)7QCZ_p2cN#7g7O%*;yi<_d0{dwnI?q2gxf^kc@0$?{uss) z;iHqmp~gQ;y(*-V(wU^wSJ8SHO3=Ejw`=i%Z7SgRqBHLA#CmliWA`!NByL(*zD>u& zc?eqfn@Trg`{-+A6l##4I`^xW-#A=%Lh3ZgCwAge%46!j+TJFOdw+RYA3MZ2zufh? z6zi4oxZjHluCT=ea_N?~(#J$IJahbUSqg-u23Ls`EN5v9kF7j^mzT$#eqA?^m zdB&p#*PHU36MIu%*6D86P1D|`tif58>+4Tr?58eoR`1cCj!~I4~+yG7jj!?brf7K4KNNe1=1V~&UPx#DQb)-3pBsnIX8=>EqYQn6Y zEdhup6(2LB^jc&+eE`Ll=slaev{dGY>28K0>hD~pulUZ29ot4wukCWsHTsG`#f}Tg zY;oi7l85Z5^bKkz`TZ7LcX>%dI>ZfFl}jxEF&A&Rs~lW5`{K_dej9x|>kPkP)w%K4 zv`d@N`SS^-PRaXC+CSL@UyK`%ESR?fHPxu%u23R&y{x z%a6ft=JM^WW;Uxwyqonv@i(l2OHrwt?TiziUV6I>djY^_busqW=GPRnWJ)fxL}z%Z z2dgy3)W%VDOq|cbQ-45SWV5&lsDmW0&ClYDnxHP%&-20`7Z1!HwhU%@1ONX6#)tJk zo&K&>|0}Ezq>`Q|Xo!18yG^}@-bsS7?%yRtjX43XX}7{4{#Z)aL!Qd5i>e;Qfv-xg5>g;1i;fkbIYHoS6cEeVRKY4I^XPC>9cZ=@qDAmgpJcapzr5)9f zV4q9-2 z7j{A;!L<29lnM6(A$R!CFQIgBw4mk&g?68N?-WQCj)4Xg%4RGHwdKlqF3+aK(qmz` z7E5V9Ds=n)(CfjY~w!}&`-dWbSpB(5E$NAGat*tZSjw;nYW$rp_D8D)t zG5vf2xf(KB#Z56TmsyOQDQs~%%o@ z(|4`#`Iujs(u$nR^7hfG4R!v8>uogSTZ$zlduj#>r_6@5Z63OwN+Z?M_t)5f5xo`1 zIpX6J#pIm`05#{#kIQYEyf2~D(|p<s<#EwkxoH~Z;xKK zkxkWJ9i=5@lU;rGqRtTJLitOHz6Eiw>LD+7-uH6p!9>`Ae4wT{i{utb3+^#n;#{NX z-%LBxd8R=fM~!vndXxO-5VpVQax+P$*R{0Pdb>A!4VFmRj;N3a9W%a_I_<^q`MD5x zz1D=V8OjUu(epGS1Qzfa^M0-gLw_@oxqso2^h$vzN6nfgWUW%&hAnSL_p{?&w@;r2 zZkNVz#l^NLa?WfpTG^KE3cQj$c$Ifas}bJ1`M>Z(k~G26yg#Y__ln{F*(6qVdr=|_ z^dsLAwO=ve%h`{xxNW1@16sTenWz*<`pl>-Nf5+7u0dBm`rU)*KzOPg)rKCI*`d!F>!2qG3LS(jmSxmpTjP?U-YM$IP!~ zz10>kCcC@3QDpH!xf)k|!lQ)X<_U=&eOd9-4)4Rd0WsMv$i2+98K!?6cjL1OoyT7Z z{Pf+X#6URCySSc2@3*a>P~x!W5R}Z5DX{j9<4#3YWOKiXI?CF;ypY=WS!kCg#PNalcCcgC3kj*htILuI1Gq(1x*%lU~Vm zg8x~zR7Yuys}O9Tn5=xgjmbn}9G=#yx5Q8aJ)2#7NEi@z50P_`j0h)o1cT>59m)PQ zm{Jg)Bgvzx8s3gMaL0g?yM6C8y_Zq^gz^-$yH3K1*tw`+jTDu6t!Bs@9PZnO9|PFt zAO1XxdVn7;3XT;DMo_Ob19Bs0UZI@X zO!2I2ptgDI$4)!lg|4L_zxF7Gu_zg*R!dRiXb%Kv%1;?iv%SJ)AKT_Kz_V|spW<{z zr%Ek2T>c1_3V}|DgjfjBW+=fH#PJ0M5KBrT(=FB5Kb^>`*P&9Az?zH0{_KyM=!1W! zN(Xm)X!FkFxCE_#9e*}UO3wV&&(Er@32P4HQ8Y@NB#WinbErD%*CK1l`WEqCMzAPU z4g4cQ4cz>Q!V+Nre&OJES`*`(_E(+vsj!NVBT$}Q`hNHH$kU%|4@5OFYm?F_xABS~ z1=z_^9P7bJrgh%l;E*Kot?2w6ibMmJ4Akg-p0gv`lW`EtrFw^yCO1j|zu(ym#Ko{X z`r!(EH#c*CdDYaq;*_29BL7f58Q*U3Ss!}S_fI$3tU~;XHwD`Ho<5$7O7h+S@1ruJ zthf4?o>I$9U8=qm7l&VGKcNnBg>5Jg zkx!P}8d$fq7^i>s3am-J3ES-dd_>I9R7=^6+Hz?jw#6@&rnF4yWm+}dK1j}*=pi}w z=7HN!CKeJbt__-Be_3tW8GEBegjNzR6jXZp*Q&i7k?8;1nfKsd+sV3dpe;;MmYiI*)T8rHOwQ z-5iIOmopAxRM%Gtq&4fDngLqcey*m|-5O0pDZ$7SDdjZOZr0)jTkXL}bTt``nq-8Ow(Wc{5aLDDjRA zF4=qEPX0LC4Xw~2E=%V0J4iuTGhWI%IE30S`b%?GfZg(<;y6d=uB@mMm7PRyTXuqI zjBQ|V+XPSZJ_4D%np!D=bg$udCWY&QwW8vQn#BLdpfu4{wt^UUs`*HG%>4-DoQJ91GE1RgT+;+=nH@P?f ze8HN_@T}o3JLV_fiJ6hpdWAHdKH=vCl}y2ukgj`~z#3y6nBE?*pJgUZP(Ynoh5fQO zR8gRYGf>npoi|2)ELenIr`XT0E39AaDp{TZ~_rY%@qmWetQ|GfYh^NfzpmdIFVW;dfTpio@-4 z_4PLKvI9RKra6dFtVetoXLy_!+<*K}O^Gxm&|u}9fo#j%$^T9AOPt6}8*gefm~uiV zz!#N`c8dsw^w9EKBBPXJDiAo$;bq#RImo0D;jPFKXH8|M`*2xU1|e`bCy;dsqYhY= zROztn!+l6tt>coW`lTY_@-VTrdb@+5|P7t$RzMyYT_$JUB>8I=@qqr~yU0{vjByDLo!hy4Gt0D4h| z!5|w*FjU@U)?6j5n?zdQy+c)voxRt7`F@3Gjs|6`$oG3@h_Q@)@)zvh6P0a8W=> zos#cg;0q#5g11o)d4t$Ka@M?m^X~g8#djU^IvSmibJK!@9^|m2dEd7YHq;euGF`9V zp9@sCdWLV?wn3PfcQ!_x0$!DlC&4fK?>_2yc77S!ur)Yx+%ij$%UPeryXpaZBcAJ_~6O= z_37~sVB^Xeu5HE}pe@um;uC)zqNkHYoQ9xE%e0gI={ZAifCgbaUmkZN+Yc}$G^GnU zp+_f6-7%K@ZNiX6hyQCLt7n(DjA52L<~e~DhjMmUR~#k|Enh(Q>j*fCA4!atloMG6 zgC}nQ0Z{m)kfQVScn-&hdc{K4UXvkFi1fnea_#;Eiyzp~!*DpWxg{}@i&aK`4^3AU&bhE~4>9Bc(P z2ncLKe09r4IX>yXR`Xs&_M|~Uq_s0{7kD)Hvx+7MtqStjRaJTxLp`D{cRdEfP2Z3r zlxTWO&tviDPq&OUN}?nL?g?a@Tf-B1zVdk=n|>A%nD7{vr>;Eg`TspCnc|`tdAh8~ z4^yz)*OmzhXygiB{#R?GU*oB%%=Mq_)cy=CRKIK`I@&?%bO?Fl=|VZ^ z0`E5%Rg2kX*#*D2GG9>LzQyCSaHCkwUu`f@JVZTdH=3BB`5Ii>F=^v)}5<$?+n zjB0hSJ-?LZ<#u{612H~933=e!_ka8ivCAwP&OT*L0plLpF8HfH!?Me+9vryiDv@!` z!#41D4SJ=aUP(UXQn)SGW+a;_D{&8*Ms~IbQlD!M*Ew<=tj_kK81HyV$Z~z16%su(>wRmh#!7jV`8GJX5$l1IAFJV`X>Crs!Kj&8UFKFNR(#M zzNzeMV9GYPlf9iVEb(PazwMog?Qt+P{2!829hbCaHP5`q7}-{;xNal6S`w^mCCPT0YLN z1?}LD&j&m=vH76yW<_`7MYvm|O#|hs3=>S2^zg2GBgq#Z`ZwL$BR7P4J0|=THO~)B zo)+%EG4N{i)6DUGB|-kGRlRF`wA)Y_ydyM@19MdP=q*dBu%?F>gJi7piOlegzI(Ip zsX595t`zPgH5ZvbZ~MjjQ9KUchQqn9Y z(zC3H7*;5~7~@IQ5w3H3?=?}&=mN_Ew)JZ=*83~8jsE6Dso50DLxUvis4{a2`j@?~ zL7kGWb&*fqzU_~<2lSKgR-4|&pLd}Hs0{5FFLd(LOIoXk9Y0AKc+R@W`=svsP5%@;piHNje6vbz7i_=6EeU z*6w-SnoaDVb+Y`nXwFlGd?}s}R*CH-?%yI+GY39Ra?CO)ygJFcH)y6w0G?D-id+f4 z51|)z={u~0+Etq!_K3R2Pt->Fdb}!I6q~_lNAHJm%t0<2)9lUr3M7AliO~N$xqPds zJGrN80srLUNM{#PptZ2r8_`vJh!Iu<^yZj1)2u$rxbM#x44boU%eBnsa$0 z-0#x)LnSlbgs!lOp08WLGfXaT#v$>mi!UtiPU#)Rzj}0H@ndN$*=zE0p5dlSFr5yAU7t31j1+`!1C(-7mSAs~&b~ zQlZhQaxQs0#MRTQJ7#oO#W?|oaxk0UjRr-hw*%$vw42`>eXvFn6A{)qG59}vE8Rh? zk!7CiwUAz&znR>CY9k&gea}R^EHV6TPP=^-gU)ds@YMZ|PHz9iV#`Co`!qPkF8Ug` zD$mdXr4GS2yqw(&z*zY%_ThY{I{k>QP8Z@u>fDdve)AuHD$Qx0gTfRjzn}h55-LNE z(DM12aGVu=kv4$R=j&vksU+)s?;r+@g=E#p33j^+IQor$!Uu0h>V#^v)}pJSJNbo&%PDUo-TV~GghbOnO`;6 zDQ3Qlv8>FtR3=&Yyo9?A@05Swb@bi6x>V(tyO?8hD#{Wf^_iqS^Ua}1c)ED{tKDhU zUHS6rKr(IU%81U7_tnD`Z7(jQ!D?m0mj*YLK zJI%Tp?G&otsZY-@IBpj-HC4{o37N_^OExnZY5l!uM2Ie;1GZ0{E>ME|6i1yzN{^xAX^A*@ryMNa{0zvGHuAx}I+L z1buOAzuw|4Op}D-pbyMwvPL0F7!OJ0Sq4XTGf%%DjPwDO+>+dZ8|@P}Bntx)yTah4 zb0!jK!PrRw)N)wbb**VF7U;*U^tUG*zv%k;coNhqXh+Si@$G(?@on(ibdEXOe4kd< zrt`V2fd4aYKF2~oRpxm%l~?imKOFK~Uyx-$lf$A_sxWXIxUFCO%!LYz3Lo9>K3crlITo4IS6sH zZ`*tpHaCCwq2{8I?0kGO3%-Ue0lx;cL!no9&di!3JyRdzbs9_u1pvd)=~JpRcohb_jTL& zUXhM*m!heDNXQEc4Wg0(=`$DRi+f}!4sW)w1HWs+!v-Xh;foM>76Xsoygk2l&YwW~ zY1IhggcBcKEdT5N80}67oGNt%mU=jL^!L}1e1myaq2n#*xZDNpULcu0X20V~eVV}$ z{hLb|@@#nm5;Gupc_NHQEy%zS1mpB!y{A=jdXP|YbptSpso+hE`)yCZLnmD%<~o2Y_v9V!7X12CwEX@;9D(SC%8~^sw6B=VtUiu`X_+y=G)7?5@Cp_ zh3-oQ34FqtM`@GyLd%IwuO426N9Lu6rqTV^7f6YJz1 z9`!XD89#?RQVb*MTGRAIl9kc%iD}SyJP+;Zjjs$igYVl?V!%a_n*Xtblw-+`W;&!2 z9kEKqia&k<6G&uaT+O|)?EYgIpoQ({78ul|-Uxr9SI<|%o3ecO`KRCa9WD2>1T;(9 znUhwv?f8j(QuJ?b^o-kHR8J$~`wnGw0d{@TTSE=}e^iN1k!cB9fOAV^o?xLd=Vpj* zMV(~zn}yl6gvzGXo|8_h;dz_Vym2a)7|(?>k&5bUY^J)75&Aycm4W})5AYm~ z7(rr8H)$iyjp4jlcp@hckFbl(K3n*+OK;1NM#YB{gG2NjcF5%+fasq`?0l<1S} zxsOMQ{~Kyz3N;G~eW^s&Hf$DwI~lOvhua(X!7NngV@m!MJ`jo%dLzFV8iaw06M{!& zL(~R5( zuh26$aEQelFU((M(wds)VLbYtH0ha;luV6Uy0|;Al!h7>OhKL=@C~9E4J7vAnGtRA zdjC^}YoAWGzO|+s)fJgVr@%DeXL;;0=F|9B?iHTKwxp5Qei&%W1Y8v*QEUqk2+g_D5)*c^4j6S#aHp8qs{2paRsK z^USwxa{2A96F=jne;bz)1V&^1v3#Y|y@quu*{QL}+3Sx_c3VM+gaID;*Hhv9eOgdX*=IT&k~g_#Em-b4A~% z9Ph|K&}v1j0ApLl*B{{H?pwiRU-)h+Eu z4`UC)I^Ta5$G_D}aQnz&?7Tn$*Xf@T7{`{@3;R05_qcf=3}3A=SxMvWIE(595t<2^ z_u)VsHWmekXWK>MLyK{ddRGP3(cDRMrR{9Vat*cmmB!VmJbZ3cYyT4MPQZUP(PNGD z6_gjoj)Oz0j8`;PUJz}Z$?;BJ&F&YRS15c^tBL%b-7~_Bf+{K|BOM0;X5WVbDqYOd zGy3vIHFb3X<{5mQAqgGAuiF!uY&SG95;z5-fF=LPf<{TNN^Ob1T$iB9O3)Lz1HM#W zRFB_v?HUb(q|QM$(+I@`->_>cuMDutB4jjIKqn#hwYejJmS2TpJpWrv5$$(im-vm3 z=E6$B6wRq!cU%D{X+S*pU75m%h0ouN+j-Nju;OxcmR?OQUA6Pkm7I^dz8?jOXu@j0 zc^uB0xoj0?SQ+zs-Xw%X{OB)b1cq6u77ki1cPoBa09g)`1)gTyeK#TnZ9a@U%?kN% ziFMHw8ZF?V!-5-yjl%==4Ll`i(BmYqlsK-s&TlUd!ufujq0SO?=>xBFlIIzdW#)Yk zpGIl(6zd{2C3d)N=<=5$)!1n=xM0oQ_jO(F0UugMa?XyKf95<1fct=?r)G=q#{6M4 z4omUf%0=6ckA8t^D%`_KbbtxvYUkdHp2KXDe?Vka4GDx!|+~s59M%nP> zt5q1J6t>5+IHy3OL*f!-JBjv}AM@?JcB9^LfUC-wUO!AbD9JT}Gmx$b9Aw6uSkI;+ zLgY6LsE&vzVpq%l(3|?z__dP{yVy}6TXN@tpz6}V9cM{7Dthi}7GI^2ZVqcWjrU8E zuBFffGYkv~1(~rHa|hxf^elT@W`$A@qtEd_db2iO#k@k#q`&9r5BEFE{t>wZ@PT7m zcv7);v&*z5&#e)gADBAiXrpt?f{vgJN7zTGFrQ`5|H)oLT1Ga_kp_~KMDw{2q@kos zH35|N7)8 zLr~m_TdI$^q@a`uz-d*z?T{C@ab$47!}w zvdW$Rsjo-(y6R-`o1%1cd_k0797p0a+-WeYoO4-8eweHkJsQ=xAJV00b#z7xP%G4! z4;7iCa|58`EEZTp4NgGFz_ARs(e#68PYZ<4tN?G;@lP4=p1K++Xbuk7t-*dcG6}By z>!MTHS%es{{hPOK5#Qv*k^MCAbgE_4wEz7G9;e&m$B68!^$ID98yX&u8i}?1!rA$h z|8#C`=oCvr^LvqTcrvlB2v3~B%pcZl0l}j<7vxtC-&0QJJS{ErEMa8(ZhEfAE6G(- zI*~1uTY;t?mgE1!v4VDSYk7IgMN{tF{1piXm1-rF_>uIii2S9@R&zuMvQa5ZS|jq$ zGfNfE?se20pZLg@59*%74I;!m*Z-37%+aa>uh$~S@=2e2V5hWmjWEPGfAvpjpZ$g# zQrfpVc04C9RevX>P>57zS(GCCqN(JreEQQLZmV05`G?8&tvapL)ycY~h$o|)0VlYD zqjXsM_&9Y({Srx zxjbQ(l##?h+BeFrt#Ur?1WwF)3vGzc-

EsJ16Ie*Sn?)(Nv=R_96}2g@eu={fOi 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 diff --git a/extras/ietf105/topo-test_gtp6.png b/extras/ietf105/topo-test_gtp6.png index aae027fcc2aedbc1a9bae38dc76ccfa20eb9e194..2cad260215a37482d955ac7f9eed76f157a8d930 100644 GIT binary patch literal 131731 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

8K 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

WkWl}qxII$v_iOetRmS2W6}L-bKY+}7%2 zwtG~HEOP$;45R=;jM2&I^?yN=h7Zj`y&9xxH&qXP*@(pcr|Eo;dNeZ=2a4!j#FNjM z>U58JT*4;*eF3z5%V+mRP2MD@M791M|5|p&K6M|i6GCe<8zJu65TkFi`#7}d@~q2R z3!WJudf0@}0582<6pQ#?0xn}zEjLuJ)|ar~+ZBaIUD2>O$=@Bg)Rnth?g6JX%MH%O z34TS=NoUhtXbHV$qzqcz&5Sy9ecWR-GBze^2-d`z<`=AsznHQ#g55pl^Yi25;(m^Z zh}aW&_@!P@ZVHIDrDVjpT8~orF;{IqK0W;#A9Qn5S?lxl>sNd-vZB-lgo1Naal=79 z?uu7@lnb-%FdGzw#N-`NVk7XKdNjEVcBzmsBfSKwgV0L_>EO*nF!Q~u>4$`MVd%}u zYdd%ySdHsLP;R+j-22Z$IB$rNOPlAqh5eapO>3NwRX(C->^1F?=@GgFc($iyk4QW# zjWg&RC2|zFPMiBfhdjzNR@Az`d(a?!d+knz+8dI5HFEg7k`CSX4Kh)Zvk7g$)Xs)O z{~c^wL@ar~rItA^*PyRaw0m96JZk30@}gM6c&iq2->zBg;w2R|&1i2T^K8dmG|5b- z0N)p>*QlsSh>OBOd{A9e^?jp6M@RPdq+~t7^=z=OHFt<>)$wtW2wK<$WQ+)Ew+}?C zU!@8Oq0v-=ydE)##!AX%R_(FDaho>aZk$-^W+ywls@KsT2yy4EZVHd&`i4&a6ap<9 zi!&Uc>lLf{Y-LbiU*GsC1`>}iJS8Qik5^b-okX+IF#@3pPHY$hP{4S|%`J9!UeodU zXc5Ws8{(V{8Sd*PE_>jj-arm%UG0^!?O^;X=-_d<5_!dWL5DMdDwdVP>oAJgzmpph zeB_&$oP1FM%2&s!H9|KN9216v8aqW9+CY~ttzq0&SWAYTh10Zbt|c>W!X2f5G&G_` zxrgN7w|Y&0RyW_<`=UMnB^2VO+_mto=U&IYt?CkQe>eLqRH@6+I8ojQLIkK|Vilz9 z3$D0RyGUNTF|9h?%TVhEvBvuk0Q84F7Gb3P?#m%O`F&=$et4@69~R--7wR11`bt z;;&iv28z4IGej&}vT2WZaFfw&DckE4Lqj|Azwe|cyjx4rg;cb(wM!Z)&E{((z(r~~ z^HtbbSi_S=>J!*QEbUlAItXd9tFS)P_ELf*cH4?lG;g05gz4%{5;$~1=$~pRz4WPb zOCy8wkwJ|{=*!Km3#=NF+_owlpW4v;ZpRnQ*eY$LrCV>EAMTu-PY1bUA|)&>SuoR! zN0UJiI&N<6WpgP%@75~O^gmT`P~}-icdLof9a3xe42?=_qqjNI$)~1H1*GP*Hg~5< zSMJGws>?7h$%*`4xWZl}7^M^=g_`9l<@7?!%c&7g*!<3FSr4skjRdt63=tcUUWs$BQ&kV@-pCT5rUJ=19CFZ~q7Ty;jr zA83$t2L+?c!KV@ z?Ah*NWi)DS?U3CDv*L+{wI-L#QG^O`dNg19IGY!!bQ%CqQ+IM!E?9q!+C`3xbCXL5>?6@MboIy1^| zT~b54VUpPx73mR|?&C+rAsT#M%IHrt=%cvsyWtEG=^p?uLrqOG0wN-kidPL`jwR{} z)rt;}O8vk9E40+N6upPKA2)JKy?=$7+!p(s9R%>^m(_*Ru#Pdsu2nvE#vSH3RpbHG z@%oz29{@iMkv^3z|2)aoxY=!S^<7>2RC8=Rq@5YZ<@Q^Xd%_>s5ya@*JJ_2!Ge$f1 z#}HG4RWzdc0cqA@3$^LCEwAuL4u(gll9;II7aKi3f=&3aH)yPOX)Gj8^P&NS^%ur3 zv0dRNv88DE%I@-lUdC)VVXKF(uU9(H#iAh<%$NdKw0}>#Nni4;m(;j&Vf595ejjE1QBz&lCM%c9~nTfih7S1s4*3M2Q3L4;xlM{%OyJPS| zsjs*9E4lt;v8D_gTk{xQ)4@u0ToMS%f~hQ*J^i&X&QI7hH+S@|U37za-ny+nWoq#u zP(U|vYGR?FaQ0i|>+QpqM*>1RmkYuX!C{3Gi<`jeeV%m2RsBpVlWp&rvk8{PoUOTs z4%)4hO9}a<9g@WD6m0w9{0br^AQ?5l5uR1IFi`pZBRwo{Le`RFjMGrGV1=8jYIKs! z#bjwEYP|Ip1;xjerR1oVnvR_(QabqM7G_#QL~fjX^~Zx#P_0qgxA5PacWKEcAJBs| zUVG>baoZQfH&0c-vvg?rx=Wfa5?@+-9Xc2oyk9`5C@}ANn zx=F7=$+?IzTWAb7$tKa1<1g4Ce96`FcuK=#Q=Yv2{5bie@JQg{W2Z>$DX;zqIay;Z z_gxVltG&t_3mtdI)0-IE+fdWr{gWcR@fQ|zbxS#iJm&q+%#)HOOoisy=Z7*r7VK`t z)Kn|Vxkdf#o<AF*Q~Qp6exYLbfAClhpvO?BJn2Pf}mA_+j(oeUX0 zPFcC{`$Qb-?zx=4wWQJp5R8;0#Y%@3%8s{7;~15=rr+{6YI#0uqU03!Qy%N@1OGGX zBL;tT2~<%>a;Sr57vt0DFN99X%G!fG5j8k2*jix9P0#i=c5udG4O~x8lP7_T#5ii1 z8udAV+3u@T%3!%+Ez_dfq%ilO6tzdu5EDaely@tq_%m;Hh1hiy6BF4Mf8S?1&9{j= zJkHyA_HAzndRdZ^vK!uY-ENuw$v6Gp9(w_mpO|td1RqXA0)MICq(&xhmDS6s+Yf&= ziu5)K)K-p@!%#gF_Hf^Kn}saD=^nDJvJuy&m5-Oi9ne^~`--2#|46vtaQmYEKDWx* zy2{*qH{DpvIRK{gUDX}4b=+o^V9C{(P=W+OAeS!+I-#l zU+nDfDicoY9A&cX$o%#Av-5UqJpr@Q=od{mA`W+i4s+qKztZPsMho$v47`yb4FUeEKK^Ts*vEbf%kTIbu2MFrzrDOO(08x&`+cYITUP;@@z zjHWCy>q*56I&)LeP~p|jMpt($WHg`WA0%^~813hab~Q_t!15RuH#I3C{JrRQffaO} zVrmiC1#mxePf8y?nbIKnf6_a`>Tu_9yT@FYuQn_nHT2X998QHKSx>n>f{mJ598_Sq z4B?^MC`AngD4+tZb>bTrcsK1p+-?3&T!Syi=XL>yUd5vfM`xj9vf+)b4mRHKM0|ef zI8zzN=xw9vUS2ny=hAsV_BzXZFst`7mfAtzAbnAUXKUFcyPXMKo^WSJ+9IP~u4Tpo z;eD)!a9+G7aBIvJ|KE5jR+i~!a!>pC`;VR*<>`m;OOouNz^;$iC6?*^bUvCqfz_J3 z`{_3iyTZb67TPwpYiqu;$V*oqXCO1&^Y-Pcp#VPu%ta){!~k;hx)2&RF^ZS}SDuU_ z0xk(#SOGu67=bY!06uuMKc>uE)d zlmv*iN=ws)fWz+&=yATxE}@^a&^V<81v}>_lli($qKl%&IBy?KP5|d9j(&xa52A zmFsGo7U&iq8+U(3uUU6ESt^~Xv*4?+2WdmQi62g9NB5+5&+r{r9d~lp;i}cS>Q*+k zOA2XANYT?!EJ0EahKmG{i%p2uR|*3F6WIg78?un*gE(B|NLB2+fPX5>eN8dEfCE~# zc**-&{S>_eQD|srplx;;@8Z)t(wR{p6}GslaS4KE)>hw5;%p{Q3h$^Q^OU#CpOopi z4R{0?a>_qa4K5GpZFYNK{$wngU3F#g_y(r0ttPR4az#pxaXAws+y6BH|GYSKd+z@h zcC533EW5?U!?`-UDxYQh)e&(vC z!O4Ky`EX^gEJi;WAEio^=?{a75hX3v19dL=FzU@=V~xO+%CDD2GD5Bn z%INoN3-a^DJfkAbzx>L`kYTr&R5c2OxtiG2nUQZiKRZWm=-pMiFxmB->SG)=u`%<< zOvJNb&k|5~S4YTwy4z{ZioGWiI939oP-WG*;3fs3Gj``0#-pLDP#>08xz=JBVlv!- z#}a5eNt`d}#9fe#oMB)xn@Vqy5I$1r1&|vQ_9lxWvikU7V6Gka^uG-_MD@ zy|-&?qY%Z8liDJ^m#0d_=+Lc7jD#2zQX4KrMIeA*C#j21bM)Pm3cFmY0kt zR@+=>9S+IoJK8T(E64I*FOQ;3fPjP$Y#4GSVEGzTFfuoQb!7;~57MrWI+t{J8w{2V z?7oesu}9&M<6wfQnn zYcAUAVBUDal>{lKO%qh??`CLJ%}D>WDI3B`&F*{Wm-}8GjCr)sEToKcHW>N^R)ZwC zTSrrV^Y7=W$}_hj>_vk=QI57Ip^@=v>T#+dl+fn?AS@z{AzWAjzNE?xdbJ-b+m>)Y^v!P@`?|;* zg2P*3+7NR{7wM<1nm^Ha*7x8s<)B>KEy{rAwL2Zj&REl=RJQSZeVrR<iD&DDm; z$4qno@R-%jqQWs!g>B+bwCba;*Llp-e|fqrRHBg{*RW+Qcs@&_A|Ht2 z_DMLrY^zB){d!rd}5EPT5Wl7h4RB!J~9tvJBzzFTn} z6X?@J%FiCWk=0JZengvy*rvrcE4vmzr90dWzk1)Aq1D0j6l7pqaz& zO&@D<&$Ue56BWht#0(CdChMRSls3j@``bkqd?csA_+aD(m>&$NP%wNGky!FsO1$Gm zn#$89u!NKuGpe^8RDV)Dt?e|4RC<9NasgDZT=GdK8kEB8hR0S>SlFk#_2W|;THjzC z+m*Ud2=hwa_Hxm_usU2?L-=1~s!2iGcT>~#_VrOw(h$PcjYh#TbKean+7AZ)fZ^CF zFE2k<@PAI2ZDL?%Msbre^(hE|qApZi4Y&)ncMCj36)uM>7S`iaUy!)VvYpwfVl`+n z@%uil`?bwReexw9DrBz)r_3;#bilBlfQFZTAfGs>=k2Tx1lvx@Wi!J6bu^9?jU2fB z@_7Qpc+m^g?euC?7Q1!_`7$o^IMyccdBZQCtgGz+Zh0u^q+88mIJzA-x%!^a;+?du z$g+4`^tDz+SYdYVuj-uB*-a4J(+G|EzLanDJN@ld1q7o%)${lR=9PQ{)Z`;WY8-4=8|M?F*bs=X%LwI2_1 z3mJ|Po0B;cIm&%*&U2irLYm@?9zi&1PfkfvAXsEpiqRTa5O96{Y`0pM)dRJl7n>h9 zcJ>_$=P6J&5)wA%{@(RwupAr4;^ zm1#ep*E=Y#q#+vbNlQ3Tq)m2qJz@R{A4>!i!c=d*3*B4eNE)=9erhw?_$qBq1)Meq zT|PD!`xOtW!sqRVTn?6AM-TmxY>019N%>OQWixeIS-=zRK(L6CqU}{uk!)pJ^}#V) zR-lN(Oi!O5PV5z7K9OED6k96;=|p0o66eT(LE+q#(})5#kM8~H7(T?)(G-##&sWPP z@k;LQO$Hl0I$LsTwt1f=$n~BEHPNxG?9(zNj<3W=nT&8ISrwbU??rcmq2F%t1a%Z>B%OGA>l+1YguSzCw)8_vVy{UdQ|89;;v z=BxMZhnuD>B!`}Ur4v-5Ynvbk_)3dabF6Fv{@m4FhXw!FTL(2-f2=&7CRg0Y?N<{)tz ziX&dkdLr#XY0UaFp-tM7fxjLC-Oi6sQ;Zm(Z_j?L!;Eg>EHJ6UT{n~bAx{*WG6F7& zpNF(D5NX-1I3`U!J%iwRh`8uY^dXRVuoF@m6lEp5+M8Ul5yh5 zfrr`N@~x~x56L!OQqa~XWRkUP@VMtp^GKXvwu#5Z`n5j)ec!}J)%|Xil zu_6A?GW)Z5RJ{S^2cWiW47>_2!J0=OaCU~;TK8-J7}gZdZ$pv(*}A5#5hXct9W~}m z?kt?C98vCS15x~AtEia~TlI7yySgv1#)$po`j`y`M`~pzDWiDBGen&Q%EIme(3ab4 zlIbN`*c9W&_+1rP)M%@wlzlG3ZPXF~=x+1?H`5&CuZ*(8@;TshrZn>4{d+7+S#NgHq z=ed~dL!iYLjV#VX*c8_+>Ekul;_0+r5rB;qWttob?W)~3)sPb`0S&8QiBUpCz-R6+=gkbE$iOM16(lkU0T_-Y$Hc%; zpdj=VLJTsbEsSOHU3II9P3KijPa+3~bpELQ)et5=s2K`>T}1RRbnR|o>~M{#wxCr` z`C|E@uC6c%Oi0W;X;5M+F^Hmu(_(s9IM<=2!t_%9Ff6^ zLjI%P*@}$-eG2f@y9RF&LMhm9u&r`U{JV;;+BslTdW|jG64gbzfK9UW&dfNN6%< zo1SKb9pKQLl11?n@$@mTY5lF}?nh%b7-o*`mAavlkd&P5SW%&i#ZSpP^V739L-~xN z=wbt3uRtaHv@nAzqQ|CtaYPq=Vr@Ni~V-7$e$um6JWZhhm#FrFoaowADbnwfRIs zL>OpMsLP1r2Y?N(;LgTvlKPR^#2Rs&nZCY7fqIird>we2tw;S(hK5GPPdjFfx42ba zVR(tj;9K|8Tt<5H=gElLGhyAKzFR-(2oIcWRDJxy4Mt6mj$K*BZEMg*6j{o7_UdeP zVAn*t(wXcQhy(nZH^(hl?TKU*mz|51n37P+C_ZIS;SB5$9VW z=T<2kZ;N^3-z@_mia9OA4`8V4lpxw4{~aU)#lBo5TxPIOd9<~4!&6#yiR+zy-kjUUd_S2{ z#R0+F=!rm<@*Zrzb{NL~su|Le0!!!E#T4fkglg>YmHv1&Ydf1_ii)3wI@TsADg8Gy z5-!C$W*(XKg?1IME={|2n07YS`1y8meSe66>$f3(Eckw$Mgyvrx~jy zC5BR<&EY6R$O3UW&dZRcd>&#ja)lHei;Rwk8iU!h=Dr2oxg^>yLmn zIX%ZJR8*uYi0go^QXw;V(ZXbJ8elL*qa)g*1L&dc&-Yzzu(}<9daCWY19_*ZK zKGkJ#d#JVHpxL zw&iKF;KL*!n6_Uvun!ihGDs6j8sVrIq5)(O@wxze#NA0fueA zdoZ^XbIrC9;~10hssBkVit&ZBd$rwS3n%?@vzGs=J8A~qRE+?+rO!i2pOqLctpWE= zS8R-?M%s3i$)Cz4Jc3*rYTRD*v61u~kkw=}lnY5d*+%1aMz1^zq_er4{ON@I8(_Wi z{A!xSWN0TX5!7Qz4uy08*{w7Ee0Tb^5$6V+oPqBs25SONf6y9|A19}r^n?q;GdHQo zXygRHr$^^kx>ZErj}eo={8BU!3jdR;uRY+q1o(^A#Z@~@4%%fc#!*iU0TV{?|HU1% zpO=Y3O#Rp=KZUG9kmp6$0+@;rV?`$1J}6UIcGn0NwP5 zq%!1E#~#s!uI0zkS~im1{746`Kc=GyEe<#|_w%a)BrJu)WazVn&ugXbC<2T=>CXhn z7MXSDXyx^udP^VfUK)5NiNB=NXs>8t%Eejwsw`TNV@f)J4jlhXGa&kV2LWae8=946 zT+C%pGbV;cmK4Tp(8yN&z8@ZXpy+joyG!)HWetfq0(fq{Qr?puiX=LST2zcbG;nBC zzP86Fa0sCXC|cs{cn(Ui_sIjL6XJt@jl1}`0JOAeZ{P1e)A&9&gIYZvhp;FX1W{ZJ-DhGUFYUoHjzu`6d>7kB zU^D@xW@JCIQ^yY|d&WJh?vxGTCdUpL3JQRe$J{beJ4+L_@Abzh63D#8RIW5}6gQB~3Zaci2LTB3=2y-aymFV$oTb`*9^LX& zgv(QiY?m3*VYo@&AR)2va~2A(%O-j1#^#Jmr}_KVG#-WnCMIUb9|vu+bCwXbh@JAS zU<5)KN*0>2A0UfyRHWz8GCpj0&{&h6bgguEoRi=CWNcj9?G43-aU$;zwuS&WarM#U zmM!G0H^K+PY%$1n-^1i;uwwfEy8xi|oHoiHa+A=?_K3v$*eoNekI}-pEiVty_}yoX z7*VGPWgwoKU_n8^*TLc8*)L5(OL|_xi>`IJxv*zN{i%j#`n^}9Har6;H9gJb(MfE$ z<9BCu8=B!x-PjGWa7*$HOlyL6?8%%L{V$jY!F=~EIOym<;3}|kX=vr%?iC!so^rkL z7po*K-V{Z3P^kNo3`Ub}j>;HCLlREyRh8si&wv)XA*xS&;rIUxHVVK9u#dn7({VW|nh1b3EnMb{ zFHGPFOv5?kGrW@rSRf#|6cAAQpE_$)<(Gzk;pdT0&iJfpQ6At(S2=8>9$nAG@549w@SDe%0y)OBF2W~VfNj0J$B zv9X<>tktiyBs-mFU>Mym>eAZh;e<@xwj65VTLG35rD|aQ6ACwqoB8*JKn=33TuX-} zqh>Er6662wvYw*q{Qd3(!%6iU$Hcr_qLxlQtk)-?jWfF6-cfMAF{HH`gZiv#xfwR( z5Dw?CQ_7D2rMb|@)owE5)s&~O818sRxg0^;xHk$R>l{j1$jV9+U_a)=+ z7m~7up$D)6$Qb2wgepTQ3@xklJNZZjFAOg~TPzbfb!VgigYw`)BNG$O`0cLedpXgv z39w{E+3yK?s<0w&ooo2E8b4@H!IqfX6>G+tbVqGTGPjKS4(MyIl@G!TM+6$-Z5Wz7 z`%J#jDFIrEfvrdS8_00VOLn`lstLi)MTio$ykT%J5}=%Jx=75v@ZQ7RKwQsG!@ zzNs>{axy;49oU%*PMqkwk#Mo#*}pk3T$_YdolHL0I2QoG+nHz|+j#BVG0iXTRHU+} z9TuS_QuMOV9iV#57M<{MYJ?htei#XDv^gOoU4~m0R-Zp-_~SDen^TH{E~FW1tX?-Rr>FDV4E`1L9 zZSjxVb?*Gk?TK7X+)y&NgPfeb7|qxV7=I#suH|L_GhKR(7=+DTq1E={bv#h&!qEu& z?TjCDkG9pEP)SP0*Q;9?z=TsQPj?&jV`l2J8$g-2DdpG364$MAh1_9*zlfi2%=fX~D$;1E2l#_#+>Qq+qrv zr{2cvFix3725&(F(&ieNjAYEI#iW_}aVPKIZ4PQecc++H3R_OD$URO7*)l`{V`wh) zb~_g(6fi`}fwpe*iF~J%cQ6X1u6~GC(U)ZR!#s2U?pFiJRL}vO%OCobvs`ScbG;4M ze;{5a9S$9$y;tV_Iz8`NGFQ5^M9CE`tCO~3VfowGP|-DyC&{f`OSm0*X=m~UPLA0? ziek%`Z1MTo#pB#1MMLc_M=l0Ke($4}9z+SI^Q=*^jk0P-t=Ele|LiJ*#$}}xwXR>8 z{k}{iF=kWHGxSZZ7uesbF zM^W#WoiU+h=MXxt5KrZKNYmgdJO4gxWiPof`(tNyw%S>hZAIYyW3~1LjlsLmBtfrd zqQUMsDDBMJC$+7`z`~O_Efr0&(Ji*()-^_G!{Zym-#a$Z$8PsQn75yuRBqGk)g5CE z3ND86q^iommJMKvc0t z%N!0X48f}b%*5=AtcChkOu=z5|3JgnK1R9ym{*XBGGV(ds$zwU%UaF-)4%%Qd8gKN zY#s7Mo84er?1t>nzY)zyfoLJ~f}OrmqAODu`%5)$?t}(6)Qz>Q2j0T(IrkM2GLW_o z79qm8{D$hre3pp2>P~Z`wyyqmqWg)P2~`8eyl9dY4p|D)#JZIyPmdPe2rdS9uyj8` zBlU88FO@fV)*3lIMfH!9jz$tpCOICo{NrCPonSe)LyfBq)U`cpd$Uxd*{CHoDU|!+ zDQY;69x$dKQY+Ho(xIbBE!Lqr4h{3`%Zl9t1V}HPYm+eISsc$2lGpw2x29x(R{=a7%3kuvKjN-wmhC z@GlS_5&dQk34`jOWy#P(-Wo9ankkspa|0AJa1)(y6pN; zOaJQm+m9}H?KXrqoty5Lkig2g7|G#Fi~}VW?IgGB+>lm30~MgbL^+KV?Hj<$%j@Xx zFA7zyQiN<57Z9GcHPGr*xJmRW4aMgWD zF7blQo$o{p82#}s>}Tenl97_m&+6^PCJ35hI^n>I%l3AwS0*3qVE?_*%3=an80x1v zma&FEa^-{K

uljeNE_3Td5ixL9)3SvbZ&G`xh5v>#;^rw#)6eer|_HYb7yCr0qiO>RB8eHJa z_uM$W;lL3%Ighb{m{x3+-`KFT*KL`E8bFbjV!W?74+Iq`Ermh`Ta_Ue{m7qX3lDSr zvo|5q83ZFHJo`ejisR5=(e%5XPs&eTA?=hXiQnT6r&9*^I?q3^BQhu^56w(SEaeY` zWEW@WBY5FQ=%S*cQaFLsz=IqbEWPk<$aZ!kcD81TaWSXr~+Alm!R3fjOo!@x+Utu-qV=FsJ+8)fS%Z$HT6gMA?ECb9MpRybTj?hf;8P-7?%5AZFXj^rDRPE^o zQuTk5XsPJx^ZVfLp{|=huDkX6yzx%IjQCmmP)_W$+_}U0r<93M*rW-qo=JaZ#{U;W z$~uYG({7-zFQ38fpuRJYHs-O@7pkg#l0`%0+ai|*YkdJFL0%qmBNLTC%hkiYcGt9> zXEONPGwz8J&~`rR){gVgQCW}>mpT1eRPmE5d&Xf7(t+GkIk@HS+nTb<@1v_>;@sVQ zpLn+;T%y}W0Cr*s;*HBu_?D+C-RB)=GdbAKej^T2o?#~#oeJT5@P;*UIIn0D`!L|150k1lT^I_lCmU~eqsUs75k1pmXEXTDtRYgS+o29Bd zUenb^!r%rb$eHey6k(hSj<0QikcM;s!$1TE6j`(yV4%#G0o5c*V2m3ePR&D^#n?{E zk+*grbHF~rCBdYEIsPv1#|I;tR77MUc~`OFW`L2QJSz%M-(n;C%`Ov@ZS0d#?Wa6b z1A`pnK7#7BhuVmsrds_AagH~_A=nEEbzst(`g2@qMY+}4D=FI2Y_7IUDYFSd$sHc@Nm8~z9 zb1ryN1CBF9#RU5P`jxz^<}ZRBJkXE&Or!i*P36ZNfa zp+leD(i}5qm_ zt*Sd!JhQ&b@3w|NWjT-X^aW>DxMHJ}yuMPI`J#l5eQDxyu(aNJ9Pp*z5asQAd1J07WaiRRje2w@)g=9s7*r4)4GVj*kB z!WhW?5f>emJA&_|I%8R>8s@O?q;J4TFJ1UIm9&ylR-#1$FTu5TIvh%M&jo8UWPZYdI1@?;k@vXeA}LN_o@Ta96RcwyJ}n?-$n4= zt3RHr`z;a)gL-Hw0)9e2axoae`=_AG!^w(xAS{75!hUYh_mckubmKB!I{ql(3f!=n zMEQ*FT*BcX zWIlB9J1Bz83aM25?78-xb;mQ$Tn7#3Us%`OmGyBp25^4$Q1Y`UUDww`W&!33yyZLP zX>SPmmE^nq?%m1^%SUL=o0lI`{0--F zkM(aG`o5&l>}S4yhdK2nTh8{%r!TbWYGr^kQ@rm;*9UZ2Dh$KPE~U)xFa9E;qUFFBU6oGW;&*V;}g-it6;m)mfLo!I4G{x zA3~G&z3TGmx({6m^_CCuHQ_vP$&H#lH$hUdmt&p$;vQ}%mOtgL^o)umEIVTamFoVf z_mpM0NmCyh;L({N7;9Zq*kA7Te@ls1gn%C+3&>1SwumEE1>p1s-xEO<@(Ha9T^P__ z8*4Pmadd>SqrmIOw z=yIuAUp5r3)fxp6n(L^rx&gWVPAc1R%VW(e%B)MA> zI^lua**LDpzMcAbw-MqFVegX3eUVyru(mJAd0Wb%aLZfHLUlCAlU;xy{==($Fw>6JmKRi-YS&&%R6EZ; z?%X)C=N>8F_rFb}r)H!`u_+Aa8wYKGK~4J37~*Upixj)7XwEb znyYHX(u7rF?{qEeog5Jt%E&TI)av~rk?rC!2Te@gP0|nR5%g!}2-YXU&EmW6C^wEG zLL}Q5heOSy2(2m_V1|Z^tdqlDRsmsZVZ7fCN+)7>vjm*y?Vz{ARjWWMQ$+U@LtK)U zU)S&a0*=*S-o;G(qT7vOVpSO590p=h=ob6ohs$#cTWAOJ#7Eux+TrBrSJ`cT1f$eu z1ldQ(xDrO6_V&sEUU^v=p_p^a95Vw$eS2D$826SByIeX}X3OB_z1DTC0|4x|lO{%s zL~CK#S!X(efqf|OlLD5>_UuF@`L7cWb9f%9%5QvJ*PW**D#E&;(CN1dsY03oK^Erm zVo@B$qafdk6?GPaTnl{nXi(4lG`GoM3ofSStk2l9T0;bOK1|xdc&3=ySuCK||89P0 zRJ~Vvr1qC;I<^8yQe({nwgq`aE9E*mx9feWL*dPW;hoe8HUK7G#M`^QE`OjIpM!#h zCH?|3@sTd*-82xzT&vOdiU$11GbWXb$?(JDtz zb3jg%#r14@D4H&8L7y|XsX4At$3AD-OE`5ksf1ujP%-IX4mV0w0p`gcaFe+9IO%<{ z&r77d>?1>VHn{UEu!}+1YTHpR+`!ma++f#L@2*y`D5|CWlR`fqABnfiTVi`mMVoE* zNvn4J5?V@Bv2?9<_gmsW1ANFD;eQ5rLU)Ld zzzJekeqN~dE24&<{?_&We7X=sf7bI8I$j1qpYBzXf(yP-7HB8U{*666)!a_#>?c6} zGmB7y&gqveHphS_R~+nB##D{jz}I^|(ud86n6r3X0I}yk^gb3egk+KZvoKA}gmw(^ z8lJgFUqtoK277o1Q|V&Gqb!Ov?Y8g<81|k9-W~*;jSc0VzyqqmP)|YzZUsH=WTIGK zR{7T-|8q>fzf%$Ggo-=Hm6^*k{UPyrF-q4>JymF=poa~k2KYL*T4C?POo?+Nh4K2x|~zXswGpz~g$o)#Vm4 z4N3oyR>PAc>@Vc|@v`;MSY~vyrb&hxM23|16C-!%x;=5Ksw*!QV;l<;v#3MOr!IQq zQA~TV^iNfwzSj*bj;@WJIGyWIB6&`q$fL|w#So(Qxy;EP*br90Al`J4T(9-7CNYdl zNE_<|TMBknP!hS8p-`kA*rby6?^N1T70g~)ve1b!!`i^|PN-(~GeQySh6((&DBC2D zy2&Hyv^0kG?h1xvDih zEC-(O0$Tw7UjAu_7Jp1RMMqZh9h7NuRtn<^Afp8PQBe-ey8cP1Wwd?ZdXiofSU?){ za8U8G#(3bLWlM3U8-_yFhbF==!)$;_J_0_VPc1(7N=JC2#4~_Ljgwjk2p>AaJ6#8q zZ)w-P%Z2{(iW*V^1N3#feA4`GGPY><-72gOCbMJ=o@Y~3dFFo2GnqjKnn+#I(RMtK zHg)jRNORG8`nLa#B;4NQeCRSAknunuS?K_8%AtuanPVWFn6IsyeNvA@=C6K;?#Rwt zxti?KD`}|hF2K&oSq)oNDVJM+$EA(9(|RhwOYxtrH8=F|$#=REJ2n{pF2*e7T%|sE z*pOTa}b|N7h-w+US&YrJ0xj9DO$d*Rb2wp(=Ki6-(!sR!%gs>E&UCRr_I~u??A;j-Z>V15DIzx-y?@&w@O<5W{s(JF*JQd9#ym64 zu-rdTSFQErkr+jq?LtjWO{In5K;I2S#3=(acu66}v^FqigEEX}t+W0Ni_gpL(&14Er{Z;yN~ zF_(#+A$-o!-w|gjf#HX|_`{!S6_z2bMb0bP$UvN;=MDT}Pnw}%UZ2K04rQlnEyUE$#A>iGf&ePSd*>DEpZ3+j3N29BmE5d)>DMZU<6B}uYsqDfCcRD4*D>CfC z@`P5S4)V`hJLdlJ!KVXS8K7`AIAc zfV!EX+$D$pt67!pg~<*tlEPCCuTfQGtEucyy{6Oip~1n~-=X!iySx^-SI_)#ET&p% z#~comuAP5VH}a=iSJG|=UpB&#Pb_wL6YbHKh(=Yww26JS^CZSg;H!dMN4`)y(* z+;9o@Eq}ZW4X`eT(e3y2+ZXOxufh(}Z6+AUnRm$1(e~u+^T5xWBldrF!rtv$d%vNL7NzmTvF?r55pjC1Z5mbuem9OpS@{UcA6_}a{~ zcvL_XyUEII06sNi$k!XkTv?~Iz3e^w|MX&h7(+{aa|sFt?FbFZbo{JATTgCntKPF? z*ArPdHwX`ClC$kx@9GSVePG6)MN;Yav?j0MKyr6`-+qgKLpQNshfQYe(ZhL1|Gl{T z+)D-JqDUr9-P(RFD{Uh;!PnMPe=s=-GHO#B1)+_j=T`qcUhT;b5Bcq7jg5~NR{QKT z=nqD5CJ%O1Is}}o3h_UC-^$F-s-ei+z9Q~U4)y= z=bkIMO8-LJ-bezuh}<^tqLdxC^z0UHflAX;6t9qGeb|!tBiLh0D*6zPtEz1?tSdG? zG8e{uqsp>zWP{bw-uALszDa<@s!y9>lh1X`Md8kf=wI~%K;dq*5iF9MBTnf9A^mP4 zTdf)RB0TK(N0X$_=;FF^J@3G+;T<>zA&Z=#>VyC zpmuY6!5{~kJ&%_rF!g^sdK#K*%IPGua+(SEignr*i0#87mi~TqRvMMzs^wur#_UxZ zkNm|)ZW~^7MOQBdQ|?fNx-FV4$&y1@-qnV($% zy+97~btZugY+1Gz9s{+>iy|6ovS$^AGtt#;roFPOZN4mxO&(v4meiylGhY`r@a!~T1>%SBZ3!QwZ_?A^4>00L;0W_^V3l&x0^Yu^ zB{_JK|FYx|`BbVyCo(ef_8`MS8wKZ*d$ZZW_f$t(Y3^%6CKdn?SR*D9a%kk%ZdS7s z2E}o9D*-bkl!*<`0Vei7W22%(;;u05ppb+jM!vt?QqXC#RYC&IMOJRoEAYi6S5(Z4PGlS z&*2~U%QY8a&Ax4rWq-SC^ph;Q)Q5+rGr}L>3=Z!htc3;4;>npgmX6AGsEoA1)SBUM zlC=bF9P~`g+si#jR@P2rMa5M7I9bmi;SJx2Y`-fa>)MD$q*qL><*Z@5sdW8{laZ+j zW&4o3>jNg7<5)SS+p9^~+v1e1BEC)d`{PnN$o3(RIarS^LuQOy6UJ!*{+C3U&{j6E zJ;b{I4P^i6dt5&vGnb z%f*lgy+6zT(b2Qbg84*uv|C{{D0By%X0k#B&P-D|>f8T9#S=#GuT%xmw~B_qUeqFG zb|p&M{EH4d&P0-!V#vLUiU31o+Sro|Aqo4huTR9{d4FH=w(;z_PWhjc)GCGVWFU@{ zR3PcWKg&Ym`@ZR(%fO^{c$d+~5}M@!K@zMzom!;=s%9x(s+&M54Bqr;Ed0(qPI`SaT<)B$z^o)fdO9U5a{g5g0BEoPGJ+Bwt--$2#4# zgS}HZ#8X-Lv&@DdiH5u-h9x`k)D+o4Z79V>u?b!;Q}yR*&7T})RaSaPOYUdPj6ax{ zood@oS;20t{ZdMqaCoCmqMU-Uy8Z#doVV{Um;7|SVr(QX-kMn?{O+>&M%!9pgDfE# z+eANwCjOTD#*;5N6K0u9b!c?uP%z8@T{CEM!B3NGdsN8$&-UoK_eU zP?rIK!>E}H*!d3KR@`N3W)``_0^7_ls>@<-MQIJJS@6V%<%Fu&8cp(m7C zZINdstbU4v5WV=CNUALsoG^-jq@@|tuT6MGh)T>upLnRm1r39Ov}z8woxBeACvIDH7H0}<_Y;0)@2Ude4V|;;yZ?&aG+RCN zVxA$gByWULgLik!An-lurBSLzNLbHCMLj|Ne5vkbp*1l##gwxp}UtMc)VsBt1L!#YG?K7Vu?gmOT=3={O!lF72R#M z|3?cwqDE@^!tYDYK=XG4h1bwaILT6g9M|u58epITiq^u5ODXS#Q3EhU$YV`eJ@)Xg>oAm%CHMmuwczNg7Y`lrft+DWqsu1v~g% zZ6_t6x91Um#Xgp4zT2q`r-Jk2qJ-m*x8h4WqZKJjf|KW2SdWq|se_`DVZA8x{U;r+ z3e|4tY<}2zYHK% zn-=g#KC3JSbnEyh`(%(k!c$Q?ilKU3g}3!TfRz^w0a)S>o1=dL&|bGQl5lVkVID02 z{JN;)pw=zIwL0(x?6_f{L>e<97wJ4J(mZ;2*^1>}-v#RZZ03ow!yCd}0~T_>u7FHv z!|6aREOOT?>e}F|Crn38jY_$=N(?^j!qEbD3|GmH#av~V*|=I>;9#+lj^7w-KEnN9 z6uhoK-l4H;-G1tS(r!4yrGEAj6Xa=wv60*S&T5kUQSRbkXJq6pNA&jZ^8NQluT2!Z zWi@2(VsqmeU+`lU$DL?(80WM~JVg{70AjoZocaFG>fvAN`Fx)!RNTUc-HE(|>ilhH1(wySXsOTbde!A=g$%b$oh|b?$H^z3_!~$v4-f) zgexTmY%+NolD=Xc*3EcJtUz*HhLgP97C)^%Z2g36Z6nlR%8RAAGpnz7L~~sQlyQ_1 zXN?$fxjd5EmRG+%b-SDuq75YfUuVT&pB%u?KxcejZ&EI77( zrGyAz5&{v3_7NTW36giWCeA21mY*YZY@kJ@`CfT4lzz} zyGPZs1;)ldA-A9oAByUmlm>Y}8P}(yXanAEQY*}O8@ahLr2rNRF0ks}hXXo+{+ceQ zMG>4YY1VSlt%3hzk?d&b8`uf{6EBU@o==(=Tu~(E;iPs`hIIz(c-?=G5d{ne!Qnte zpNR$HU;bFYj7V-Wy%1FIY@-Bc_7G6m(G{5NxH?E4yat3qsAzzjS8>$wJdjaN&D;(; z>12dJKA+rSm6a9AY6kZ=X@d^qFs5tkWA$}lD5~wnYhT56zkL}SUku)?s=B!M19)UN zU-3)$d}Julr9d8Mwp<>r>^&)1S2hvT#TcD^-V=52neR`uN#7Iw@(>yXh;EZuU!9!+ zCA=5;Z&w?ow-5LCN?b=#4L|ZrioQ0edLpQ*Eysj%q9 zItb}&llr4zPQDZRmzgBz{z=4TocE=*7Cyk=Kq+zH)#HU%TQdcpIJU;p!l7yTF|Kejg+VE{Y|3Bt$$RIx1p3@nSMg?;b1n~U?`8pjINe^XvoFarFgTzL-$ zCtq=Y*rm-f-f3VB(OiIpT847d1FJ`QcFalAtuuW_Oib)=+vV?QVJu9zmJ8>W3r@p7 zU%(zrK(#K+bd@OR8nKcQ*IWfpgd)gL`dHubL6j*E#EN~?>cX0sxICbtva6yZv)l@I zMT?N(>MP1_4r3P2=BP=Bi4cE8+McJB3Fsqo_eZUx8?3Bfa%(qWOV`q9`Q|cV)`#a- zhLJv>viq(yTeCD-m@sp)_%)QZR!kgWENKA3YdEI-vF(1)@Uoolp`^2V$iSr0Dud;g2?FOj1q2?CNMA z3Gh%QW@kqx+c@NjA+` z#UR$d%1&Xhp*awgjV0m;Crw!j_{Z(z@`w%Ca|Wuej3L>Wd675Y7|GE8W#rk53AUO~ zxsSyEyM=qOMRGfkZ+=y2>Tu?O?0BHOW%bnkI+_N^&EntTUj*!|t**)fryk2zelyQb zVg7Ds;OusXgEsAb5&hd)SI9kQ0?5Z!`3IMGf{;|em!BV4z%D9=Cl$b1b zLKkg!;K<#N{j>STLCh15VqkD~@=RUH&5d!>b8F2ct9yQbchHR#Oro? zanzP&a#&$)!=YG7LtlsUhmr&#P}+CGZxVJI{Ftoo2avA;Jm;Ozxru6`XaE~DBX`-u zgICrp2mEQHI5P?|H#jtfxr;-W7M`sMcfyu?oqyh(z*GHCdZShfEQSBpBI~K})J)Vq z%Ot*t`vT#)8j}B|K>A7#pS6#7MD@X%Z0*q0WG3sR$a!~y>!6+Bf}O2}O8pZ4P{ysi zqrEx;H&YA42$W%+^1xKtL9u)La+;Efxkq5~OU)97cKKVvOdKqoGso8jJYX|I?(f7p z0Y??PE}?RiVXK1b6E?3bd@KhxpD=5-Z4Q1g4jAe?*gdgY#o!w#)%9mjzLL^0slQjH zA$v#s$8VlB+Q7US9}r{XEfS`HkRut|s$cMx{+haO|$!!#9f%;Tj8j1-y-efc5>u z{LFbR_Ry$Mo$U-kp{~qM9+l~tkUXcy@-T*%rIfr@P|PUqXvE__2`|c+)Yd}jZ8}R< zfaBPebM8SsC%cNa&H#~ePBaM8f$KTfV%ZnB)7E(xaq9Wlt_}OOe!?@B#tZ746036c zM}$M~i}OhA>FzJA=pN!C#7P+$qS9EC`685Zv^yT6q7dxtO>=dLW}{TRR~HurcUZKm zq+L0X^RsL{)k0WPnR2V?7GHl?A-h!Ae^|l~^VL|H=hM=?tHpuqg~vqXZJf(U57p>S zb#|#}N|#F45UrED&H~a1mSx^UJCsUSp(B;H4a}l2;5u@lsysjjm)pD{aD7;rW+nmW1F=y}>3*zG z%c*KbHXybPLj!+{#;?G~eh%O0UMMz)|e)APL{! zL6WBy1t=6tAb@~H0*5Q4@j@G!pt8y&4~KtBtFLp~f$e^BsnYS`ipy+~PNfN*Du~US z%dEEwpqH$!dV|9rRsRE&r^(DtbrigANDusvw|&Kmd0&FA1v&GOS@Da6CC#^P zRYGOvlAH1X$L-2-9GZh}>VP^QnM23pCIG%y=x#Y^SEVl2P>kavSghmg%01l0kB{~x zb$rB4@O#8W=0)Hi$JFTZ^KP5qv>0 zeIJT|&r~#;D{c9rohtR~@^GKmfaKN5iOG%^>&MQE?5T!ZFXre+rmm8?s<$>E$gB6y z=j)5Zs@qB9-*6voCAqkR4bFH@XWr2l19hf5?D@6*D;0?<+v7}}9=g^^WNa2J7R2u& z5f5{FR(&$E1zAikzF5?76)UAP(4Mm%r;anW)Ws#uePHx^3**lp2#lL1819=27hSlp zxM4H|K-Zp8w)VGMw2c8Uj)*sv*B=Yx7V15l^;bBUq_Mo61$SO5n*2Q};E$+pUsPOz z^o+MfOeTKp&r=QKm2&OiCIG|*mKaOz+PidlQl*;mUMJHr;vjt*+y=Dc3iuoIhH`I= zCt`LprpV^b2rcCgmO2UvR{pG2I3o?=<&Gh2@iu@|t@01s>^H8owX4Us=&XullG}%wJmC*#U z(E{qUyLN93#g!_`c+1jk^K-GGV^aTD58_D_)-Y>;Q>>$i*DLi!wC~oY+VsVTn(S@Y z^rhR>#yLU;j}aUJkBgdSPCAcaz+oq84 zv7Jxk^^|$a4y5|)4}A8P=Gln)JLmU%$R?B^FGac$;`?rs4;o=QXScGBmeegEUW3>? zZ1I&OR>wECYUg3)yp)ojBK=#n&S`aIorkWU@y7jB;_n$*R4#g$U{tXFPCd=WlspwX{uCXSUv!@(7zta}9%7=Ez+N!Gw^a0>%A6p*s} z0nErK$C}!+H36%>sMqZE*;_=9P#l_)M+C@wN87jK*4!)XmLZ>e*JEri&&}3dAC{B_ ztC^OqLMEA!PM+-_c3$$Yd=)A@RZy5sCIVqrvW zM|{*ncbKQa4rG+mBQhe%?-OnIgQT4>`kvzWE_&) zWXZIyirOKfEWOH5$}WmKnb0#|CjH{Pa$?sd04>sK6B~8SAKtAoF(>nTL-Ch+j$hu4 z@O^xK?ePLbw&_Ubzq@^YLcUR{bGQ9Wq0bP}>wNlJ^TuY%5<6u>$l9MA3j-GLT~If- zXP4`n6<*cV&I*3ly%Y*I3D`t5rWBVj!mzu;M8rST;Xg3MDk+6C;vjCCsnemK<|e`a zBh>}^dqMCz{oYJXr2U%_h(Zv*_q7{q)60oj5U@*4Lfl+JbzA;o780tA>@4ponE)j) zCWp`44Axb?xJQl!q?pO6aZjf6hs35N)1KW`yypYUoeK2B+`vh(qQrwQZ1HdKsTbcN z&+EIG)M0;hL6XywslslP_=o-EXZV_tkce*4pF!dLaY~`93Z8m%Oo`+&SL4+mU z#&zPnKD5Xd^(L@2XCFsZ{e&F7<;1jgo%k6F4W<~c6)adW8`;?dmpsE$;)A@|z(c}` zi;W+fA4L`cJV6W%M2uFkXo^g@ka2 zq?w%Pw1*t9Gonv)n9y$mcUpVH7N~~TVvF18o3&|7$bDf}mj@?oZ@0jV^8oeHVR8J` zJ>{Rh!1i}g!+c8}XVG2EAB)zfYcnZ_HQulwpLdLXQ5($f-h=GQGfQvf&hm`JNT>_U z=1eJ!q+*;MzEbtWGx_nX`XFmsBbizKLc33axuqy(R9l$mk!=eWGdz#LnJATReSu;1 z&nfsKUA#+_F$M?ac>DbjZ)1oj6I2(4Q`c)<9?eBkdE#b3K__6;&`NbGYf{-mm5akL zq(LqAPkUL79%YN0S>e=M;{cLU&1ANHOeCL+|>uguLnU1*^rM*?N-Y3)w25 z-E?}S2oi}W9ek(Ps-bspmPIh<$rgDfU+;L=)gvO^^HgE*Gq#kxbRNQIQ8BrPatN6` z*pCsvy?C#r8GZ`t0G2srRleFRq8eb_%R79jB(o2prIxjOS)YXkAxsFmw47IvoNb$) z@!LgrM*yAAf;5CzDo>zC_mj}`wc3Kp}W!Psk9V<>|TG`p1^9jqKqeyWxmDB31ZA`p=k%oN@-k6mhO|@x!_$4tom}=nPYwh{;M1 zZDlGvF~2;`LYo0egP}D}r9Q)eE*zIDe9F3lhd%eQljwEFA+)t_X)X~=Gw;x$h({k! z!1;$zOZFOTqshki%~U+Cu5oKRs=xF|CI%FgotM^D*||}BVg0_~hy`tRNxgNZm}2=c z;!QyqbS3Z47)b)WBM5IrbSNu5uOtVl$4)Jsp+LIlMM~vR;n-cdgDgvDeDlG^=-N|- z2J|Wt_6R1G3N1%et@ZVu?_Hg1lrxAu!m3SrEtONe{l``uN8vNF$R z8Y`QuEO!SX6{RS=92SvsW~MSv_oLdcwHZr}T9$WLuxrlHjg!?oTw=Xfgmm=-__;0< zxvg5KT@j)Oo0>1^4UDFP=p)x_uq}7*Bp$73G7GYNh83m8xpDpcK6_2L-OKvv3mT$A zAh|<(FXg?p@h45kZLCq3VV;U&bXx4TU4GWH%)zK__aLV1HI&HaHDcK5G~aa{xcMz6 zyr>K;osvn`F*7#;=odw(fsz{YCp|xN*&yk-xcon^MtLWdKxW2HNYB%!cW6dCRO3~i z#W4yXNbT!jq(Tpb>QIzX10g=Uougfj8rFfBF zi`^i@YGpz}_=GWHyhB_kj=~Dc0iQzBXb~==G7F-f=9=FoM`DQXjN*~tze* z{5agj*>laV*bZ<4M#5?jBnntBak_*LHv-q|3OT#b+$_5`GjQd1kK8Ico(G)6qusL& zPCB7ZkKBz}k9Wn6BXKVgY8(t1Yhr&C;=1r%XRN$HU9@x@wU-?=mW=R0ZqH;_hYdO_ zpKyLuSyuJfKM9W46%c5v<6_nqSK~)Xe z#f1&mF-_aRTW1+aS;SIx+?=h69{U!XuBl*MJLeyIjjJY_Ho)DEv#)z#3{39RDV+D8 zae(9eSQjSe)xcPwiMzXRcrekiEZi>xEc}V!l&H43_Ng06SAuhL--r4nOFeGWmKP7z z!3J~ml+X)XU05a$HSawD&7E24Y4c&I!bQ|N>02s7SNwQ5 z1n3oN_#uiQ>N%3lOrJD(aAcaaVK=IQkWiQ1cgI*02yRd4&Cs}D7>u)+ZqUyZF}-m` z^I+|xrqU|8^@l3;&3V?2bx+j@V>F1;l7{4Mqz^7M!M~wI67aBlP;JWMNRJTvkLK7q z5V8a%1i*m#lK#ZND{EZW{ASEWU{i-^4rb(QCq~wr{F?8<`WI>~r4jqo)KVk=vCuKD zMt^78F#eb|F?%d0xQ1;UYG@;ZzPQZ6v%#IiBLn?3LLO{T!IOVRFXO2W0 zpP49hQr7F1x;19|W}s@3Y|l;cZH!RR`2If@!0l@77~>H{fPyH!VFA-22wYe#ix=vBD-@_*FW?j(j2T4!Gv8maj#w+jw=O!)bAr}< z-+Xg4PkBkAX(JL0#}8q{N_A>}Ptxxsp$WjIel)6taj!Xsm(p2*5Eh0Y8FT7DmeST2 zEO+5U2n^<(kiq*1mAxPaFP3SF?*@Fvwk-(cf-wHb;ZGt7z?xeyAy}UfY?l`e**~Tg z#DyplQDN8k6Lia~RG2Q46Cf^KXuL2eJl;!Uk@9?gcm&a}upmELfXeQj~=U&7QaW)XdO!7xhg7j>P=W-=vxL>uW^e>L_eDYbQakKKE1Ac3<?(owT(E10cU#6%+9#?+65cVsFsrI#? zccw>>^0feE@&9w22qymflzKC1ME-qBNhl+x(xVcX66im8GEKlVT6Anr4_2%?lkf(= zYby#dRB5w>@o#yA=NE+W7pc4F!CIYLC`V4{xU^B2KAj#KrGnYYrH!Y@ZDKfaBlbR9 zxbo>O&rB@cw>NP$$RMQUZ%r}axj4I0OaB>3aV;;eb}OgUfKL74nS8w={I!$~^HwQ6 z$jF0PgD=4osDumwkuYYMmy(Wg^X1TYP#?WgY%To!1T9wmcEC)=N1xth9^5Smk)oeG z=`%6o+%>N6+V{mu?RMsAj6F3A6+)OOK%<#qO8+~M+ex;S&CuL>W_Y%5FR{tjWo&dX z3XA>~=*o})7mqQvcWJ2p@o-V8Z_KPWzycPT=J4+QPaQKr20%G*?PcE-rO4Dpi;||+ z^jOA4@zwxqmL}|Z&Ta$DxTTCu4`2~+x2N!R-K5PEfBHfg+y5_yhJpwVG6WHE{l|&` zSdAeB(~O|wb=wm|jcPw_)|H0O*N=s$UQcDnk|pwK&#`u;#e}J<*2XF9d&eJ}2CA4| zR#wb$e`6ojUJnVgB|`F|Z${56n>aWyLqL@>u*F41JtS@3YLR!C$;(Ra*4=YcgKL-` zCWfB@vM?kgB5p40A@05Dw~b&zH;S?fv043wb=0^RVS>rQ&{ugx<jPqW>&h}5*~EbyfJ>g|5kF4|K$d|Hu~|1eo0Oa`*0y>AWCF`V z>P~Pyc*iS8I6V`P2xyOl!TB>%nDx?kASRs&p*KVinj8U*H?CAIaG8qYA&vT%MK%OlfoiLqW5yo z3Cwc4tAlHbCEN8n{AsypgZ@wyy!*5+ygBCoHL9#)fUVt{2ZEoE|Jw$@`TtCWowh@? z%}$wq!=~z>y_g2qd-Ha!V5_?(T1=V%gi6=ipQ79Oq+}M3284ryL+<$K3|lUD+!;Jh zH1L&NV$6(!^Q)6Q5MtfMcD^tC?R!I>L;C*faS9XidS?=bB+u$Z?NPSvz7+7+UHbSe ziOi8k0D0i>g_W}JLDT+ zJ+PD2!vCDq-oCmvyMO~TP4?;cxCP!_z9;oA02PcY972jBoA1V?j~5L;G_=y{Hca7Q zO&OcreDce<;n$z9nbvE?=bwAzcs#M_!?9i*t@?P@%F!qK<)DheD5sFBV^`kdgeRw` z{9o zy-2>51%!Zy1ByIldkoi_X8ileq9vP^Rmee0g>04Q%_1N4qHT`LSpDSwBbzrta;?S zrLptk`yB<>&4Q!=#_b>y5bnw{_?e5#xx7+u83Z+uBaU;)^!}CZ-LhUS3b=;i~iOb_-fmb{&BEY*Kxu(eF0S! zpsze;MXJ1kWSQw{54cm@`Ieu8TFsk=ZL4K9F7(64eVKgDqT6OWnKGf@rHjvHxFpZ4 zY)HoJY)mpDX08{t<2>0Myf*{f)IVzuapNzAB zQsIs#f~0=NuCmBGh&Jb`2|+E~nF~3;h+|rhBKEJ5@qXI9HuCKFCUyu)m@Wh3d2D{W z5tRGCdxLP51SBtkk|TnsLqsQ@{F>^?>JZQ+=%bL_+KnvwWQs%)&n@f(d;*PPzFMJ$ zX7JT8+5K;JUX=%HcUQ1wGc2MiJe8p$GtC4YkD~!WZI*&uKZ<4WZOn6@R&%dJSv=id za0@uE9;r7Q55^YUyQS7k`6gfGH=7sAo;0<~EaGUaUTg(edjU8V-cYkY0^M(wuWWSU z2>#h8fA>npu)i{ZBaTeH&!Fd@MJ$6&EaRc3mU6!RYx|u9Uq*J3>Bz!@#c%)y5f2C7 z(OX}s@tnRisbIMBxwczm(b0j@|*}xi-{u zmzg>{JIHOAQUXqdMrf#fmFJw|zKO1v{aPEUkv;W?*}c%%uY(VkahDLy2FdJOpV>^wvn=g3rL z-`tLC_{Nejo0{XxIdx_1{fdMQ=_op0SycIms(~k$D9WRFiNR0#Vq& z?%6*^!?EMT>#i0WJNTpOS0is%?Xz#C5d#jKEebSjbEu);#p6yp9xhFUaSK3%+laR6;B`nT>ula^v*!em zF;py!K_6<7v9;{8Qt;=iXFugEjN7Mp5IFx?&aeoa2Og=|VozvD;D1*(5qKCfQA(`-6Z z4WA~}V^0Z}?}#Dm6?-LJ*+6(0^7?wniM>EirUYHr`??pp-f$3(nwB>4tmc>QS9!q3 z$*cS6G{O^SW=)4DK95B$2eFw9HCNr;SRRpzG^*;$Bgd%yYy)rZClzh< zv())Lp0@aJR5@D(=?tYG8vDlT1|vphprF&6LPJVs;&( zXX8=lb0^+r#iD+R{CPno8)H~2RFnBfu>ckNo81kV>2_n?h2(Nc$b~Q*xuXI z#R`+&Ku8wLh0;S>XNt8i;8c^$p6);$0tE?)5O7GDzQJ_TGL;`e>ar{nXn9e#v&v=U z0lG&pl>j7D&Cm9{hS2=Pi551V*gg;Gq-);3 zTS?2@lbBmkX|yff$$+bWTIdl7@Bn&Yay6+=MyDr28Jc?nXdf=X$I!N+(#eQWi7KI z5UGHj4?~lilt8gOHq-~zr7VR2Gn6kEtu1~1j%!JEbK*{7U{pPdP?PC=BA+++Ry3^} zwj=F20*s}BW{1%cEG$Oh)YA|51{N$H?^FeJ8O$b~g^%*gZC)|?63SZdx4pv)JbcqI ze3K&WgmI>I`LGS{W2^j*8&yDfzT1)Cwx2 zQICuukN1iW1q+LewK%rs3@KEoD6%A-_3O9*K+{~fYL9v9l}4cmHS+q#h@~(G7Zub! zGskTTW6y?P(&Au7sH{Ax>dEjTGmCr`cXO|bf@n$XLjgaRvqnXvpc%0lQp(#OjPlCol^m=ov-@eiMGp_eZip}U0IxsRZ_uFyvkHQod z1_pM~tB%_yg-GbaWd-Frz>A?1+uzMUwo0>MXhw915`WAIf%=>EivEz#L>e=T>-mb< zEHqTfK&fG8huG0fk_DnL3@Fz#v-ExZq0#$7!2GVW_>p^o;l)FMQ?iFVd$jvCNckcQkyN04|4U&nluMGTf>H z+8iU-BeeyZX`el$*w~XS8TIsNfrk(xzw84JURG3&-{W~fH#aw-Q-}oI3p1P5ys_CP z2-*Vw3;V#J*1|-N;nEzhelz{M?3J(u^}EeyNy!E(%gYm@qY>JG*1^X6Bk^M4PQQCV zJw9KK5S4?j?}1xA8PB%0S7UV@>ZbU-tnUx8e+yZhotk2D;ZuZa=(p0O4p$n(T#aFN zc}NbLD|meMgB=s+a++zL)iiXe8Bc_eAZ9ZiI_*-h+s%$e@cc1%__|P(KyG{NT5LfF z?sC5@T&opYL;+OKgOvF3>r&4Z7edTjv3`^vf_eRVhF1_T<(^uf&%X#0_-HB{uT%=# zX7qf0%DnGBc_zrHgy+HvN8NtCay^iqk}(6ck1FF7`@_amCT%n+MhU#tkr->!l?Kd0a{KT!#DROdJ-B>A!#Qg-^GmXpn|7@J7;m zSp<52r2x^dX-*U_a+%*IOL(trZyzih@5Fi>@>RYZ?cZmY2K>Ahy)wV{A{Z_o=Jdmw zluOv^+T9oU^Hy`};yVzG`L&aW&FSQ}$#G8=E3?|^D^5JWC`%|3%NW_8H*#|G`;vw3 zp_%Co+HA^T9&_{7Wr>B&TemF`G$xsXZ*Ww zU#7LIoV$$j0Zdb2QkI3H!^u?mzW$-b7UW=kFD=mLD|P);)9IP&x*jG2Nk`wmf3Np> zbH!oO_s??M@?dc}RVfIj_}(W@B5LeDDY(mDUK*|EgK<-IT@U5sjeUejMh;|1813)jeJ~ zK+HFj7T+JeV;V~{FX=M7(d>V|7f-3Hrj=#$*aZ9liY#?GA@2h*EX2%tXmO^^uG zAiL&{Blg5bY?k#7ucSIY8RnfS+JJGotggb8mp!vmjI&qh3f@{%!z5cX5WDDcUN;;a zfMO<(5Xxz$?=QCy1JBSZcsQN2ZGOq2T-9;$-)X`%%)OJCk`vkQQ2#gi;v``5??c`} zl=@XzNZtmdY{eY#_JQa>U+)Z|f3zI|SP`axf^?IuP7lPSBPxhFv{Cu8NR^83H>C1y zE0fUUF^afS2<&wynNLgap7f{4?{rk&M_*_3RjXRtGSK1qDnMW zbvFeaobR~uBe$c|)KpKgDqw+<4i#tq9K8gumq}+PpsqeNI&o`w5M%rETwkNfWy}KBRh! zZSU9)DLeLBGi!sbHB%$*!mk?76ZY7Nx{t)J`s0g(V%~emc2;wJfi~CP@5Mg2z-$U# z^ZAj5U5nd#>U`$6A}+o0=Z5A`ZLQGo+Rku%c|ko-P3J5?Vm^x^Vq#YBX_DAPk-UAl zRnsV5;+Ae-iqd5!-3(ySSC4)(-kb^m*uGxBp4DWk8(#=2XW#Ook!`h3y}x_E%;$U> zAI}HFqVKn#Rar;04y$}XAAP7j33AZ z@ebg76wN`mfc5TgPm=pFPSY8cC!VflH+zn(R|U>?BO87a)8r;Ggkgl;d5WBH_lXZm zRgsUG3n;L!Yf8`No0uLpH!RdkY-wYFBMSuVOixXZDd8Z=% zPc*F}N2}YaN$U5cRJ(DnRStYHTm5QuC3*Vf3wZsjRPQkBEd^AVlZKnmuw(k z!H{A2f%4Fp2QI>fNl+PqNYONhN;d-ul-3y}KbR1hnD07x9JXvGZN5`nN7&QQ6`Umm z*too;DD{|_m~aLgimhZQC4}%sPy?f`s>N#N#|FQ$(04Z1x+v=P4UacWnhBpgPWAOa zK9$Op4%+-WJ-~xe_n-$WYFj?Gph?i9IRibg?R<@T31Rg&J8#EmZ$~L}(p;qRD)H80 z3U5i!t{l0SBkZ9VbAZHvjF~iSZGBM;>f=1PggT3xdTX=z&}-Y3NI3#k08#2B^q3s% z0aurR-J!}$W~dz{7PlA7&rCh@+k3Gl{TgA;&Yit%m#vfq)B-}aekkM_7nL~TKH`F7 zE{EOLL-8vMN7LN{K&IY;pocGKjbQRGiaFUX+x+$?raayT4UU~%|e)UL@{=+h~h^Me1^&TOPv7Fq}WfJ@C$>1g4%M6#DHiDN(A^|8uzI_a)` zB3M8}<{NOVVwwd$6?G0PdCHfGrao=g*er6bRtVTdhh#Tc*#lDww9k1lM+`R)ySi4v z{9O{*Q;m1LRjt#3ARjiXprw_OS0yw(gB-2q`E;-ve zoz=irKUOL9f04Z}$I|njy8Ancl}cR^bSyqgIH(txjc8`j z9Md5}{}}~#tyBrs#oG+CXtg^HlX5fPV*oj+8uwIYR7 z#CucD9nn>Z&2>?F!8K*91@B{HPwf;svOslx9#s2*cmOuDk@Vc4Yly!|nIzc=Zt(Qs z1gFF9KyLX4dl=|{D<}X-Ul0HAzf-t|2d=^S=fchpUAPdP;iLQQl68vBQ#Va1`h(e+l7YM#=*fU zrVAvY3%yCYrkSQJ%fEk^d{GLRuabY9n%1!-&?^P2=cj?V+kE6W^34ImE>&dkS>BOC z=VmY$lnmlGvG-04%(4Gf{Kb)(G5t!YFT}nHRwPb8=D~k<6o|c}LKb+hWp;*D$Eya6 z7=gS-=Hg|9)+WH<@Aw0;U+Lk56a7xpd@T&;v>q^&v{l;eT}(4k)lzqy87@TtQK~f_ zp4?-?O2XqXMS$O$<|Bb)8ZrS}?&u}aBG4GNS^o4ER2f^y@k;k*2!8a9X^7JiDpd1< zGmj2%=BtoifmuaA?AE72`h1Qu<0@%WM_EH^-+6)=cmZn>56qfR-6BGV#a@C8Mu2q~ zVH!s{Oo8Zrptq}CzCH1?**lk+e(SJjAYp-w_)8GeJ+0nLjQRLE#bpxb}boP&P)yel$NMA5LB-&NY@7$8H(4y_Xi=_y%82 zUeY?21nb$|puLAL%y}R1@jAkv2mo6v+Qu|zbhUOls1(P3=Ot}kfH>YzRgXi8q_R#$ercmZB#*)4xKLj zwcWk#C|zMf7;&T=*0C2iDii+^(aQP{Nvm`lqQV#5>39f%Bo(eK?3AVvfrHn-8{cRVbQ8r zvxSPu#`LCv-Xx&t5QkWb?(0ke-G(M6Y7+X}o6+`?h;FgW%Xg7l!-Q0F_C+I>nJ&MX zaUF$kfJHOMrNex8wyL3N6i|q}t|vPfBChL*oqbTB_>y$xI@w(KmPOsQH|91~h-q2Y z_&ImxlB=hAL;xv@&Ga(0_#8O`=KK2-;(#$wN$+{wb>Gfdb;4~bvcYWn8w-7OG@U*F z{sah7h!8rIFYsgxo%E+T|_$XYkE|Z&r68ZA5!w*(<}juVZ~9<I<1IJa=yVXd$On9@5HLmAkBQ~-;?QOJx#(GerlDupkX5Mi<9QDHz|6!}mAfdCwScPD}5 zcXYhVR0X7#D;?X(cbj4eH%*rbi&J!y%|VYwmmwyjQ!Ruc$|>88B9lM5M=O#KT87Kr zmU)4O_+;UFk$4a8C0>t++-n(%hgho{ThI8&oBYB}*<7DryPBC2-Q<{O^Rpla$!K;t zQxm~sPBGdxtq#M>ou3gsW{V_^erIamtMqTV0ammSKL%@&O_qRpF~KE6>njF06)X+6k>N%vcE`?IRbtKf}>7>RAAV*HS6X&BU<>r}L3$Zpg*a&b?87CsC(o+vzey zK7vBtlC95-%R+V9VeB{?bL81Cm8dLEnOxBF1Kg`XQkXXo!SQWOs#=7WdYre}IpOGn z_W;+c6APQ@@bSv;kC%`pGC`x&SaUzO5#rDO7IuHME!=wth9)0NS%PY7dME`Y*25Vt zcO7#wuOy=1>8mZ)$Ih2dF~|55;6s@sHhJdRRdFhE6O3!v->fwx$Y4*6r{bSJGpwqa zPh`V$Lw4}knyInVuqlA;Cu6_79PTClqC%Z-mgHol?gP&HT4}{wKr`#>3+7kxEhmt6 zO$`kttKj8=B?X|BI{#0;xB8@(^J3HxnuClNtdZy0{>fIhFh;u{d-v(58J00}DvaaA z)*T_Njh_w$ESA#=QjBt?hTPoTQbV!jj7HNqlMVOynCOav{^qqR}O{+!Ta-Br4`pid`B!5(bKfAd*lhUvpX^K+;EkU|^ z8qBg?Qg()cKx;&S?_6U%|2FUbe!>7jX+?NKRjpS4y($P|LDLXEQ6}^qVrL*sL1~>K zSYdK*oDX=^PWOgl5-sM7fow4ZVNz@~j9?}L7%J4}T!aBUusqNS_=jx2&zGUd)FTu) z5O)DK3IyT>5-B$bXeI%*G-JZ0KPa9t%Cyf}36^EOsz3{4%iG>q!*q_R5ZkA`!=(2% zN4E$u92nGk9h`%k3^T^=qfyvK#b;h1Cq3{QmZFs%#K0CAhh;#c?1u@t4A;_09N%MF zFBuriA+>P8pO5W7?0sTs9>RT-IRd`|ZnMoa$%19bmx-r|OB=^jZt=Ig? zChdIZDbFfkHa!q-lEefXmSQaz5(@7-oIS0 zUh+OdOdhSPn{_-WI+C>fgF(XPC9K^UO_WGd_JMmz2@ZXqT(jZTFq$oCzUQm89ZkLG zY?J@m7R}Pu*04XA0NrmlioMS`e@r7hF6NE1)EI)2F*50yT8w2 zhKNx`l`K)QL)?k&z8AwW(S|aJVkSNm{DF3`3FPX@7LxEho|gdm)IV4CYzjffgga8q zlfVE)2wp_M@vN*1<~LdcRoMQiZfKu9T%##|ua|?=^?a8cs*1l5oQ$rdEB`+Tn(EK< zjBALJi@eJs2}a}{g-dr!KZ-j5Tmn9!+K1<1Hz;CBRPF$uN6iNLe%7w{+wq~au$Q+%M&H>=qDRLhU{j*Hbr-H+rO>Vt z^4BugvIY2+#1Jwee2~-<t$!bor(U3_JE(s#uoU>?AI~?h? z$wxOCuF3Dxo7N|FKb52L<4=dLhEaC7&ruoMq8owYp{AR_yv!pZ5%}#M9NkT0hv+*DRh9&wKEA!4qxJ(Nv z%LV%c;4^%g4>6o>|AxZ4zeP3lFZ;v$lgLzrVPIKfSdtb%L3Bwg;Vah^!I-46NQ zq+8jHsOFP(Ntx&Gb6$qEoiun=HP@s?OZA--w`7Ogu2brc!Hn&jBS_eXDyr{ER(iXx zl?skdX6%5xpGJ#21|re7m2<_}@|7zpJ3b0N$J|<_$9*f`BM_x31bC?JIxVm0j7$H58`!LZQB~W%TM>ycRmJ7%afB4!L`4X>H`zOZ=I6NrsGBfB{qNzA3VpO7LM{ zoF7?O^1wHgLD&pj%6;z54U&KZk-|4$1v*447f6Jq3bz4(^*DD1bFwkqDdY*|XS(A| z$f+3L-#CxyK#K&$!-;gGW8&%j>(9+AU$Z5O#oJ%fCJ!+DEKrgoa?X%%&aAOR#l7DtmKTA=#WF zaET1wr#1p=^pO-&1l9s`T7kg72|{bH(XQq~=5*dxpc+Jz&cw3zm}6+)y-9umE+pMGPm~{`L3rttJ<_;VhIg|Ofw%@ePa;ckp`)9Qe<5b9_<{O|g z8w&14-cJ9X%WBA&%W3!jn0m{owz|FR8+QmU!L3+vDDD&}QV3Gqp?I<4?iQ@YCAho0 zQ{0LccPZ{JZ?1FBb-zzCMn3G1dt~pm)||gN|HRISI%9u4sYTho{Jp?X$^x}jsSfx- z?vi46+`zOOZ7e8@6y3U%8ou6#QwZa3YjN{ohj`97oyoib7yQ>h1kem}EHjk%+{zpxp`p5|*6Ls09&lfX+) zN(+J3#5rawv)`G6hl3kt*OCEWD>Po2m?VWo47-q&9VbCl!r%NFSx8|gsZPIhhUz(k zdEv_$>)iQsX*gC~AC)zO@Ww3lMa3ol)@o{OZ0Q!+JBSMhwE2U39~7AfQ@!a2>fNvk zL&nAsqz>%5$~;Tq8ck;BL!%X*iCFQk^%oHR#{s0+8FO0-WU}ztG#_*hR_G^2+=QW! zleW&r>@wO_C#jmL$pRDjfjN0tewZRFeVxc|mjt=@Ve$#GSP&*LC03$CsBJEfnAa7vWQQ z>=@+E~MvWFCrW#+BxIH%llUZ2H&Zs(dwzYXM= zzW4<0#bd!BVqA}*y)8C@bkHf=-m?Ow;R#@6QOA%1s7J;Uxq*O{cGV`GA8c>DFL4ECd2B9;s;ASJ*wPxr2= z0j<~9JeXb%1aqc+LCFH$UjpVH_P16OUW{L~g;G;fWpXB#VA`*vAIS4L_z=Zj0Q5(R zng&ehgzt;hnw`*>#?rRQQ1wHRZBWIVE_?@s@IT^PXk&=~Z3{{=hJi;JAll_`9?TBo zRF;$DkTH9E-WQAR!S-TV+sns=?E-Ix;8gt4Fqt5!0cCo< zs^`+psSCM679g@FE=s?KlE~YXnq5^j9ljkeG{w@{FoU6RMdX!^`PuF2lOnO}Qxcd! zVA@n2^!X6&@B(fC!Lie3?a6zv7=_+bwy&_9>t~li{7f-RMj7gysFg~FbeZEf1sJj* zN{2DBkhiaPMlit`s7q4USO<*Wmr!+XLEIx|>*a4z)`x36fRid#H-qz(5oXkxO_iuxDmw${m2rmrn9#&|caPO2fmOA|3_!bc2nizl)( z(?QA&8c?mJe*=v~*+Es9Dc|>46z_>T&k^ya<2;SJq4P&#&Qnl?Knb+xvYdSk3o4%5 z0)a*RBW}T3V>Wxjip`W-?2Itj#2eAU*$Hv!!F5vE{u}I8R58U9?fK1K8|Z z2-{%VD{49aPXY*&C?yZUpS5!e#|H~l)OL6-r_ zKX)D7OH`3?@+xJ;MWTmB9o3;K8EXY2o`<%mQ_AzSKKX2-eK}fopO*DoFt*!VPjsC3 z`uKmG_c0!p=T3%7eT40A&aqV16ddsVG)pL?jQvBZkAuT>((JQiY{%5J6gx%g&wNBl z?V;yfD5qh%!yxt$aUm{65^;eYS=tDPrE@sNMC*Pwg8>r+m30Zg>H992@U zxLI|CL?`THW}UWoUCzmY@#!Uau=7gIL}X(Qi+-{<;#Jr%tII~Zm8^S`Jm4|swD%=={|Im(s@O>4MYpaKJSJH zq%>yd5Q|j1;Vz|#5a$&-Fi&z0WMmIWrFsykmaYx^7MalqzF*g%TTnd7GZ?9|< zI(+WITs2o~oe1v(rR0$AWm!SXy!i!;%UMc)oDHN1SJr-QNO7f{W>|XLx9O!T~uqnd&Q?Hz@X8arvLQ5l|T$FvU<;`F47W`Co(M zvjRpp9aT3L95HS}z!%iubJ9H|B=TQ0T{xn=*u8&YaIMp-7vb z8O876;eS!OsAytmhzWioK>7%5)lXgYhodLpy^QAys0-u62O{CSBnwg_HSQ;*x8E`^ zV3X_gyfwe#uQ#5FM8X2 z&_xs$2JRJF9X>ZZ&JA<&gOXb<#Ns-NcW!nGMWd^2%@xDnP4b8x)Q5(^04C{f&TW<` z_J%sCbG*U+$o43f(BAx!O`O-euD4b1uo#K1Av?5_YdA@gV7XZ9YxrR4FEEoX5NgA$ z0x?rHpP784>>p(nLB+^CWp&e;)9SOLeilt98l%i1l2t(Z}j+(ogiR z5XZ!GnOyWetBUx;X4?4WIzWU8g-?63HSu7dgzKrC$?5E5p|r_Uie1q@vuMf9>85hp zr?Q-xzrV1vwg02r&&9N=7N%~SQ>bUk6KT6gg$7K3@!qE}wn{B?Pvp+pFJ%y@$2O&! zM*`tAPwE&!Xu5YqkI<-#4Htv5aa+S2@In|z)F%iT4WRkZZ{TDVxNOVnk;THtNs)P0 zd4t2RBDko7(@T30mpds_m^`)v^81e@+%AW+f}6a`jxo~NO7*Z4p;OYgO5JGLBzWk0 z+lrQFi$`n92S6P3KUq0lgxKxen&Dqyq8ns@x4ycfYIt5isk{zgZby+acRy2oal1^T zS+YWF=(pG-?Ke?7EAEWRq-4#Jx~leytFGHI3@p$_oZE_lO=XAH4GpD;DkddQxmTmi zBb6{`J$IKJCW%JGcV@VOkCc?}lWBPI(Jzx`8T+TZ+!7Sk;q&HU_IW4l#!N9bd~eDO zQ(p#jk*~uV#05I*L{pj=&}VV_n|>otAc6&MOx>r+uoq#gEb&ifM;}6qadO-%_YQ@~ z&rE|yMUgtWdD4)c3bV5OzdF7e=2|FB_#_OfzzWwXUs&`Q)O7`klCXenyPkL1Nkvza zay}+_~Z_M0AFIPD7fzigHF7(R9jc8o(})_=xjbWB*3&vHvpX zLOm=Xg{gSL;-hMv#}36^fh9{#rt72Z??3FzE%O>=I#zez0zaj%Je|6A z*&yT_1OQI%6XVuegP;@~DL2RGNBZl8=@A`?A5COOMH@pP4@1PnnQMSA_;~x?vbE(^6FcrHDk>Qeq55Mr97h-ntcFLqkS)QxZol)%K4P?MvRyQp$L2|tqr_T@ft~Q2VuCT|ZN5EAouWUW z*)~gzRBBjRfehDW@ODHxSAxXW(yjvp&#N(ru2n22mttL0+U-XejDpT|` z=Zc3l!@fqm&KHLgW?~JoV?z+Am2mB`S!IGWl@U|{Mw?Ib&9K$RUtwp{VHV;&Zq;Yk zu*R4Ed`WFpQn*9`YWVG{lI!*~i(O*um4+s@{&T}!fkrkzQaN1l{ zDiPgtUjJWmo4!|u!54B5KKfAsgfvBDuil`$}ZvdRgbhHH)Y=t^*Mx^QW|$`yIJ9| zpU7?)w1;PPPpe!Q$7-W@nPH>6rT$!dW;pN?LxyzzMJty=;)5*rCXao~E}3}^}A2(LZ|3%TIH zr9K*ZUwou>50UvHlyd%>bnAI!d2$zgaC+#G!B}NGln4Rp%m6f)&zIw!rLioVO~5|{ z(at^VVNL;iJHy=U9rP@-Kgo8Z5a%xhX5I}W))g))eC^_o%VZIIIqO1&lVf?NwSVxi zP)<7YyCe@$7rNC$YmA*s7vJepW=?Q~e?onE~Xwz+`B zIgP_gO7$dr?HUlL$=5}~d&~|Sc^vpxl?=S-Ae9Zm^Cj9a79`Iv;UiujkZ12={hs^q z^L+5{QB29}$>AAIRInTyz4lTqc6O5uKOBwgavuc?^rWb*g(}=6S)JTb6#$&^5plZP zEf3!>F5PNLO?6#B*(_f}t2`bQ#>qPZ_2Dl!qO!l2a3G0Em5Xjdx!)b1DmyL{LNV6b z?c6e90nL92C|R7pDkazCaoai$&*|;$u!qTwXL(iTmkbsVX~`-iS0(CUzI^ML%ZZRe zx?Kn-$Ha^+b%}k-5))&x;j`nrqLsNy^E*;-8|ts2Jv;yCv$yMpOs#puco zSrdR6-^v*F9dNr{ZiI0OPLsM05*YHpO&h;Q`u+Q-?;oMSf4czevgo~HWSo~>55iGT zlnmRmtJsjESjJm+^hBJINXp$uWe7*`+b0qk8sM^{%?CnVoFL>Wd zpi#~;u4))LcQQ}r1)}j>d`n_#f}=!G*lB9)3ZgKN$wi39N2mypYuG)s1H)P_l~r|G zTjKSmS3x(FKOhhT1~ctyqW~OcJahP}Feo=Q6}%CAOZ{EulWeiX<*7s&3JZ!|&^%|O z#P+Cga3xeedU;0!>*9zh_=&<2A*=psankq0`;jZln|uK`GkXs^Dab{*72~ONm}BV0 z2kNE1%>8-Kb)EtBoysZE-io)gWWOY00#^dUM7a{Q^w@baUimBQmsuL5ZX3n#$}MlF zq%O)OMDJvui|88XM%996%mX(llDTTGkV*Q zJsd{Yo^?~Jy@7b&Yqc4d*$UYFPz3Ugh%)Pn4JX`Co^il^NjSWAd5}FazYeFKF3N0Y z(MYnoZHim+{H3jGn~;(D`}-m8t$hLv7@nekN{FSso_*}q?#={bPX(zSk=VYs&H39o z{8OhsU;P|ewX4eE*RNmG+%~)=PqiP9v+anxr^0H!emf6yV-4J++7LB`6|u1k24_EN zWl0$A%S?4N8c4+pY7msz+$M!T{^l!rA!?)3Nbn*Ws^;^$MGeVC-ju!Q*xW6 z(De^~ieFoflCyAMSdld(^D_E{mO+@urqpI9DDjBSXUJdh z7^9HTZE|)XJFmD2svkZ z_^EO9Vf4=LGJB7=YL=7f_axACM?8UQ07jVe^RvF!LkO1vCipnz`snBTCIh#>MNfL$ zL^~sgH`dbb9J0(H$dUd0v_`VE{LfFObf53Us%*^*APjEBMPAVmoPg(E+y|pM&lab( zhdn-uBVyyzfKz7jxzDJ-g}+p+zTeMuE@Yaac=M^Q)55g0NxXZ#{S$G6Kvk#iL9x#L zYz^-ao4Z^|?lrIh{2k6ANRta?QpE0i02o=n1mFiT&14wcv^5hNx``dIYCyzVMQe^V zyZ6$2{XR?k&j$(n2FK0+cNQ_g2=*hoo}{`aTtBCefg;|ztJD2D30OD_C7GSHQuN_}} zLS%9r7_O)-X%aa(nk zD<`lj_BMg%GG)g%(KFq4f=vz3Aw4{m(RqT&=+#)dg@i-SUu%QEq7z^leJX(pM0-0j zZ2!gR)9%CbH2)gpVh){7%)}&Q@_NjB#t^6={I24X>?5d#d1`X1hS#nPH^L^E{uYj! zzl^!8Ap@=KZ}w|qa#^q8(;tfLD*Ce91o^K4%pc%^W_(~!UPP)qOZsITqS%<<1pIM} zJM9my?yYrQUUMw~<8t4o_HpLZnkxrQjm-#zz5T9Z{V#*Z^l$*?l-LB1w4KA0D~1DP z8z5Xa@XusR)APP&1lZkddkGmFiCv*(-ucUOUq`NX`*P1z%@3C{15e(X1|ha1%y>@u zcgGaCWqxBi_=6}87-{0kLg8uyAoAyu{x%OtwnZwDS&nbOq3xgAMJ))S^0RFZ0}_?Cz0 zzRRyU{!AL4in{Sg?tx0ku|pFXk>XX(G@*2ZcO0SE5-n5dN0cMZqqOnPL}^35c8&`x zS1Wf(^s5qdu(A7tlzuDuy+&Bs9D_sQ*c-kO)*mki@-Dg`N$=aCd5hhDB8k`RmTx;9 zn+z%lkdga6VaFs0eO)B4xe|d*+h%y~+iDRAEINBN9FiwA@YJ4Ntd17dG)rhPihxee?9g3R+ytq7>wCt{gcGYh#A0$TSU28GCc5EwF;j_<20 zVSM}0b6}9~V`_z2SVmWZ!c0$kVppNm4JJ4`XFS6yXEb3O5Yk4;U#A;}xwQSf_1|Fo zKfhG?P{lwP|Lgzs!vMBOSYj+;HrOgSa*0PZWf60H@h^_S=Lwe_gd76yv0cyzz`G{; zwX~Hm5cMFtz{|6|BSh*!`gJ-888Gq>>5K5eSsnHa5nnbqIHZOinX;D&Vu!|-9{2w2 zo7$!yihXe&bH3MCjTqzSw91l_FDo6lz1=oxMWR*e73)$Mgo@A4sD~F)xg%fToKbT` z16dIIpN%UhR-5a!|+7U;z7Md49_4p_ytxDP3%8ZDmi44QkG^a zYobqzYFT3f7!l|9mn;BK>kP6bot=b5PSqxM{eX?=y2tiUvtJA!OBE}K@RvGsVTRdC zllW$_|0*~mEso+m%`R~Jqy1vL(Fu{SPz`z0PG-P2WJn05U1`6NACIl*o$zIfh(<`5 zl@tt{hqK$z{{}0ZlF{S2>i=MQJWeo|_d%?~akmL^ZoBl=&YCiI_HC{-&ePT9^TA=m zy1UOfDUl$66F|#v2H{-4m+H1eOw3{4*XuT*WU?IhUavL|y2#%d>-J3Jvxk6;&e{Gs z-=AArQTEzlka7sx96=UuAs;J4jeT;VhjyDknYzE_JU*9Ah4b-No$-&qr2S_9U_x$; zggkC~i;W&CbEqTcC^^Y3U-xLWcCq{|h5d?6Saxe0c*pt~Gvx8^g!ZY{Nj-jQhOwq> z&U6L6{*(S(sS)J|v+Nb;L0%xp)H1IVTQ#LNOLatTpIa;?IZq2_d?Gqk7ca= zJ3SFuw%IGXk#;KaLFN0GRAA4c8H|+BJvoh)gcK1JTI`_2Q^KR_c=4RpH()8k#CB=2r{f7nU%Gl{^VfvjoNL?IYS&T!zHbJ3xNF5N9ZVvi zo_lk=uH!HI7_ePL;zsEh^#zEsTGyRt0Q8r@@hPsVZ7erLwa<#}-*3}JSCq%SZKNs& zWsH-g(+xY`40KBDrnT+)*xPI0@|0oU0n42U^>eKn_>;Hljn$AP6tvxlVQ@}tPFGqa zM=04HKAW?u5*~?ouRyQm@!P0 z-lgUiuY@lYwAqQ348Z&e*bd+TigQGV!BObD%Vlp!EMn%tyNAG`;JaffcqgcK_ebEF zcl*PJN=O>L_2Vh0#GUDdS>>!kO#VMEM0=|vYAy4K9UqS2rpB**FFs3Z zBrRQOu~16FOm~xS4As7?ba5ar>Mg5(9p=h5j09a@FP!aX`4r}39$4UuO1S(8bNaEj z^kTU>NbN{^O|~7EqC%NSCs5L)n8~k0$gW>ts&AJd2e0-t)XdpODlF>yz4gL(y`^aW zPn556Du?`I@nxyV2Jh-5R&wz)i`G1oyDF|pou=ZeX{wiVi1NW!kO&aa=FoN@BPBkMbkCb zQYgnVP^i9>FWxV(f!o-qUBF@|L7kUtwr5dT_v(>tU4!Pu^A4xPX1&;_ODqjbE}&9Jhh>DVbAq^+O% zfs-KY9$8d2{k$}~KNM0|_$jh5CmT%pE}F8yu4w2rC~UX*Rj3f{`LEjGLWphAv$op6 zs9MMR5AU1KU{~xC(>?Goj$z*J+@Sd)12D8%&N&m=auW2NzW;mjr=YFqyOy_AolDZR zpdwCr$~_)=iri`Jcoq?n)plBW(t}xODAsHuqU+_v9@EhLC`_}~=AViH-fiKpW5jh6 z8#$ln(V$Q9v1MYB;Kp*_=b0~&5 z46Y)dN!s|8WbP9OJW%)NkGAf6$Td<6NYMPrmTO$~yJwHG1ZRS&X-sZz7N-*qGpgyY zrju%52De>q`|W(~QuRJ$3F^%$pJrxTd@A_)@+8+K`iV;(GoVnJf+6EZk||0=1Ho5G zWzv$y&q1dCjDiT+aOqwo$4y!IEi}|d6YxFc{$4A!VBZk^+A*mR%k!|{SJu2+==C(0 zg>o4{;@haqmh)<->SBhAv~>&xfQOJaa1bAJPMIgk-!5B2pXOMQ2Uk0eC|h8P#uCp0 zA-#>vH;Nm1Av-Y(N;Y7M)FGMa?UT%BQEH_Rm7lB2enpI)7#cb!;^u-mRV#8?vQ!_^ z|NlYgdwlq4H?lC`zvdoWG%T@e``~$fumH6MyT8dY+E7*VRwPo(xsfGyar^C(O=v3h zEP*-f;WpqalCo05Hpi!(nQcKyVyAnWA?kGsv|?ziLi|g)mNBGA|CRBnfZb;}m?xCU z8dcBdt093Ip@KHbnX@pi;c6T^x5mX%k>*jwnC>*PW}zK%u?p?`l)+bV_60kfUBJ+YxBmT5HHDw=uw*^rO_W$;T~Ah~_2gHM>R3>vO_yyruLXxcz7 zkBUdk##y!JQAbO`RB&xH$o@vI2XX&%G8Dk&g2cXl=;o7DdX&2VE_xx{w7tPTX@9!z zIJ4_CGnb68ishpeHh&aBSs>Z`;5?bggf~bWqRc*ym{Ewv+(l$zPXO_~vvC_f;bWV^ z9@3cB?AUxNqbZT~&wclOo55}02$a~~SVNV+m7#-Y(l(q3-A=h$R<-7Q>V?fg0r-L2r zFI)?SGht)EuAnKwCxEVB(Lqphq36>M`_YR?E)@s`OGilZ0;lwUP9;tvJa^QQ{( z^!N$A@A`XWQQ4*Vt=XxvQr0kWiM}AF;rpc;aM(){IUQ~UgY?Hcz=}`Ziq~L6+Ee?` z&S?X6AgC9hLXRgSE|Qn_Sz=l@I>z_9<7r2H-dLl3R?csnU_~=amc$GeanAmAJ6-3U zEM|NRX;5(j{!Qn+TNK^#Xq5`EWG&*cQvybrgHAxFPu?cwCL4~mUFNYwQOTmgVN=pn z4wd~QR7Ky<&SMN!`Qq$*J~MYUDQ5T&?kqL95v|gVml{j~-iCkkKEAuHloMI@2;FQp3{YYS3Z+*jh zIP7ThOy^s-`gwN=q0dpS@R*cIJVXRDP(F?Wl+w^noke#P56Cs2REVRcdF4 z!ZY@)N_?WX*4Fk@FRU{j?kV4-Y5}`x+!&MMhP0UHt7n!wqLSx7f6$?1Ctkg~j_*u+ zEUAF$x~a>08Ov9o4U7&kA5BX2-W!wMd-d4QwD=Z4YDt*IZ~MH**Tp$-dcK}$k|)3pd5KZ z?L0_dmMBD_DEX6gekE zMPXSnY>h&vN@(WsL(75+%t^jH5LQeW|kxWY??^&E~=1CBA+I^ zxyea?ncNf*a5;0*F>BB~W`oDuQUr6BtXkW7z|e%j~1%<7C_~?07YF9 z1EXWLDZL3_7%%31DTG~=mJ`vhSpuob6S-wyD!AmC_h|g5GCSg1dWGUDQGl`HnfSoq zz#DiQ%gYUS4=3+X6+yJ(G;Aj8aI;!Mq2`=dM1Uhz^RkvIBTT-O`Ccs(XIDeQKU?H0t((I zHiq0bXdxeLB5F2TqrXb)kC`W&HHwP4GWIQ*7^sDw5kf~X$btA=v`}0oaxl&aVs0## z4@=qXi$dbVu7j zWexLHr^twwD)JBQC}6mYO^#?p7B1!K_ivGLL%Ksi=}$SbDc;vK_{Rm=JU1gbgvk37 z|)!ENl@i z_IeRJ0E;l`Hi5`^!n*p4lTJjWW7WZ4@bByYS%AA7Dt^79yRD~!$N!dba1s00h-W{9 zuzUA#?4#rx>kUzdGzFNO*{-7WgKBC01E^belXSsc8J^hJ-T01~8TK68j1x8egHJ2W zlT1M@(c9`vF)7;3T$@s!v z_LY&*_?jvvL51fCk#r9RjPbr(C!S0_9$ts|0~a?;2sf-1u! zu%=Liwvk|PY_jX^<*d-aemx~!{PX9Sf68O_gr0b>D7Im|)>rPYyFf47X6n}EIU%cX zWUUwFD-PM}c@zZ0=7%99WjSDFUKm+IWrk%pHCb*zQ@$d%M*V?nB9Q0(!nK&qU7}^b z|HcKCnU`l5#M&rfmWDQ954cCx^ZWwErR?`a4TjD|#+WRrgaHGjIqszRXVSmLOZw|F z$T#z{OJKS{A8<&J)5yLz=Ci8mb0+sRB;Q_+&1o9iCA5!sM0HGRhu=9(2_sDi9=*r2 z^SAsm#SNZ3w`@2<(;0%G>LXP78X082mvtO}QH(Z&!G!;_-itUTbMOJ_e4c;xHd@pO z22l(vTUhpQxSPY2cb!ifpQ!d<)0*RAHf(#AHUQll z2oG`kLd37)y78PBWHv)K*QTS6?|Qlcz{r|5rC*`KM~%zhenJm2vy2uqIUbb&FW{cpn4n30pPyYnh+E3;aYLyAMxcOaeX3uBPUk49K~{ntj_OCg;;jWzy`F5%}M2?1d5 zQ~TZls)wsfC3wL*2_A2mBCwqP#mPKvK-}>c$iu^@b0_J;1gmvcIp{9rsIWlZZ=4;7 zRUIfpLoN&@*JT7SuTC<9P?C+7{(&G7j@Mk7!V(1)1&r6B5{z?B6&xz6CG8V zKF@B}yp_!m(c0Z^*x}iL^LYy~7@K@awx0L^P4W}QR&!Y39`sSOi|d4Gl@+*k%{701 znDir*1k#pE3-H)2@i>bWza$w1#k}sa`*F(aL5x>(h#!v(-+;Af!Ef%g0+ysmDah-O z^G%BRGzrr4x})jlOX&7qJk>U-+nWSf_2PS1yC9o$t!<~LJCuR@NA_gywrdWLW zbILB|bDYW;d4Gz0*f^!)YQPvl_Ouj7z*G!L1{d$0mFb|Ak-A7Go4lxWr67eQp^hs_kt9*rMk=R;k0N1^}I znAMr{tHnlH8hXy><*7?5BUXfpu! zU{CS}jofQ0{jT0QqfFSsW@=Iab~S%cepm3Tj8k=|x9RC=&o^v9JmPY-%BJ(N!y{3i zDDbaZ!{sXRQlU+K=>~4j5x@nRo)?FoLvK*4Z(88i*4-NaPm*6DR>lX$s7-97bZL)n zY!nZCdHYk-sW2LfJf&Pp6DpI${n=QCrj2qpK^qvrcZ`GZKcT`Sw@{{b z^~)DB8lf9VCu}1UdhXV$FCq z&Q1`#wYP-n`EHiC7l&Q#>}nkOq7;J-+G8{CXOKq!=Bgo+o$P$Bc50o^aXtxfrc*ce+a45FHR?jYSa1x^#HZ*Kj<1aoFL*nf3F}oOWfLUHNms&ubC}~lw z@?G|Gi*Vgu^@_8B&$r%**Khg_ej3*IH-q%rsxCbIU5sbZR9;)%22QS?N5Y*s3hvD~ zN_+q01Z<39Z+RsAX7Osbf^8(C-t&; z@bl>!)z}96#O~U^4I3AJ10Wa{_fR{^#=W^LfQ)-cDLCRA(Zuo;yZZK=2ra811?aRb zs1j}?A?&+)cRq~UrwLk(daijM<$OcfjxA*%d1_qfOL96ca=&QAw_Io>zaG;DE_p?H z9_%Jrds4G*h!q@ce^q*Qo-_WtTvmiJFT8{$hy)L90=~T46-b+wgys_oA7M*B65m~v z_NS-*o@(whY-H_9Pg7Q!^QxWX)hKFP5GD3!GqzPgV?4ke_(-k-^r6bdm;=~;NTq!{~LqEG1jrmsf342ASO2ZJXqe=P&LOge02ndJj@o22Y}_&Aup7g2^Obu<>R6IjIi5BsD?DCT??pXQODM1^^G z%P&xlf`)j{SMx771<_oxR1C$CJ!niWDO-rwUOF5^7 zW7tc3_LHQ`(j^X~*T(p#Gmyp zB~&sT1#YVPAAN5Co}8Lq1|P*(k(kH5C$#!&`789b4Ln00Acti(NEs)= z_BgUW6dLhr7ws@m`tU}{lUyBwl80SMWBUs)@&HX@O4<2(&B@j8VLbgw+LVTexi=B0 zpG;|We+wJ&P-~=`<*yn|;Y>v14|`kQRcx`~8;vxDPgfjwRaa+oRnMovc0h5BY|4)h z!#H&Tk@5#b!>6bv7%R(q9P(0aitc{vdT~{Y5s28p6Hl?~BfLtlgOgW#ZMHbthad(+ z%IRNK#ym%}$&ASB5!|sJk9|7nCtJ93IAPcxq*BHWZ2~wyYE2kob1-m7+MpG~r;(zi z=x)OKXtbzH)t=2111K$$%VeERbs}cArS5CU!yY*(`u;8Q)I2(@ra-C12@5`exVj$a5n+8q98mCmS>R>&=ZcenR=!23KT>m2-T*7013JRW^_PC{Gn>^jZ;}!{rOKGYRQBlV|O;mN51YB9MMRNj&6Ie4+R+B*jZm3 zPgzG-_B}m4TkmTB-y9J$20vSs#(`7F|1tym7~SGp@49&HVbzq^6okz#CW31uK;J~V z-mAf@A^Z$#B8n`$4OPcH@##x_*^ST;81NJ<_DN_Mbt6#lT(=zeO4&lNl8}qs;Kkp! zxl0-nO7rV1|A8HdNn*16J$kRI-9+AyqyjormGhyo{OLO}KM98Tf(p_<=t=dgI~{gf z8izmOdpjvPJUVabPthji^j;nwEyEDQ>J#o^i_DgyA-Ij{<&Yb%Ck?#pA zjABx#CZKyoVq%8m&j+;j)}kZD{>51D6{eZn>l#!#R6NtF`+HdCZhL(~N#PkM4A(Ol zD6PNAcZLNX6myStLJI~t=xmEGb1Jt3UaQ_7t7IOOUiB~apt(rPt+^QBLy*C&A>4b+EUjB4ij>DB-m~=m;n4!T9ewfW>FH<-it+sw1fw5mA17X_?yY8 zxm*S2utj>mhgfXcAJ1}}x(M9h}7w+waiO`G+( zSuPASBF#}DU9|k_b{VxNgsi(>{jUmr5J`-}iuyOw{%CFZKl|Vfo?kF_bpzhErY=mf$`Mr%m&aw<{xHxllt>yW51~mt)+cXEzkt=u|TiT`M-l(g($(G}$j(mBT@t9Y(!wV0?z_TOM+F=*>P zoc?*0LwhXCA_4XS1LpJoJn!WmCjpgw=;1fm zN^ev(c7K0i=Tp`_go_6b!Z_YB`qwjyq!}b7BbHZ>>q(5p@jgwMQGyMaj$bNQR>du* z{0@kW$$2I@F0%Jch5wr$vNpWLn$)Y)X%lo1f|1e0AL(clm4~^_Ee_^_uUxkuwzxnIX1Z{3GVlWr`5e`Ohub*x z?q_>oWC+oKqyi}83DN|ki$6+a%Myqv?2TscXeqJ(+`w1}io?&b*%9zlAlOd@exzp% zL>s5j>87MhM)%=@mt>k{iG+kV zgu!jnIGdGtXrXTOjcxpgQYqD83?UO7LQ^hg-p`$aZq<7QvCj}-<(=~lKSqW%aW~`3V3pa3fyUGaL`Hi*hhH2d zi|Ztnd?7^+t7WAEY*9R1gKA}fqcs9Omg@wclYka0F7CXhS2PgE{Y9K6AGCD*?Z)uU zJeL3heeN!yVYlG-M_sUfwO)7MJfH%jV$ApZce$R9nP;~E2pa7k^bJ)BlBf2|{O{j! z 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

#9JHpj{cbE5tR6mE(N|{A9j{=IYr^G= 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

hD7#5O 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

&fi?_v}*m#>xS5M{chWBlX4 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 GJp3;jwqDKv literal 0 HcmV?d00001 diff --git a/extras/ietf106/topo-test_gtp4d.png b/extras/ietf106/topo-test_gtp4d.png new file mode 100644 index 0000000000000000000000000000000000000000..d60beb230930f5f2a91641caecb63a4025f24915 GIT binary patch literal 138014 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 I>g_-N2VIs9&;S4c literal 0 HcmV?d00001 diff --git a/extras/ietf106/topo-test_gtp6.png b/extras/ietf106/topo-test_gtp6.png new file mode 100644 index 0000000000000000000000000000000000000000..2cad260215a37482d955ac7f9eed76f157a8d930 GIT binary patch literal 131731 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

WkWl}qxII$v_iOetRmS2W6}L-bKY+}7%2 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 z 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 Zs$qltF)EM7rOn}BoXGsg)BPCVCkqtZpT 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≶9 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 literal 0 HcmV?d00001 diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 75f2d9ba9370..48d12ba30521 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -203,7 +203,6 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, n_left_from = frame->n_vectors; next_index = node->cached_next_index; - while (n_left_from > 0) { u32 n_left_to_next; @@ -258,8 +257,10 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, { u32 teid; u8 *teid8p = (u8 *)&teid; + u8 qfi = 0; u32 index; u32 offset, shift; + u32 hdrlen = 0; uword key; u16 port; void *p; @@ -286,13 +287,6 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, len0 = vlib_buffer_length_in_chain (vm, b0); - // jump back to data[0] or pre_data if required - vlib_buffer_advance (b0, -(word) sizeof (ip4_gtpu_header_t)); - - hdr0 = vlib_buffer_get_current (b0); - - clib_memcpy (hdr0, &sm->cache_hdr, sizeof (ip4_gtpu_header_t)); - offset = ls0->localsid_len / 8; shift = ls0->localsid_len % 8; @@ -301,16 +295,18 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->ip4.dst_address.as_u8[index] = dst0.as_u8[offset + index]; } - teid8p[0] = dst0.as_u8[offset + 5]; - teid8p[1] = dst0.as_u8[offset + 6]; - teid8p[2] = dst0.as_u8[offset + 7]; - teid8p[3] = dst0.as_u8[offset + 8]; + qfi = dst0.as_u8[offset + 4]; + + clib_memcpy_fast (teid8p, &dst0.as_u8[offset + 5], 4); } else { for (index = 0; index < 4; index ++) { hdr0->ip4.dst_address.as_u8[index] = dst0.as_u8[offset + index] << shift; hdr0->ip4.dst_address.as_u8[index] |= dst0.as_u8[offset + index + 1] >> (8 - shift); } + qfi |= dst0.as_u8[offset + 4] << shift; + qfi |= dst0.as_u8[offset + 5] >> (8 - shift); + for (index = 0; index < 4; index ++) { *teid8p = dst0.as_u8[offset + 5 + index] << shift; *teid8p |= dst0.as_u8[offset + 6 + index] >> (8 - shift); @@ -318,9 +314,37 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, } } + qfi &= ~GTPU_PDU_SESSION_P_BIT_MASK; + if (qfi) + { + hdrlen = sizeof(gtpu_exthdr_t) + sizeof(gtpu_pdu_session_t); + len0 += hdrlen; + } + hdrlen += sizeof(ipv4_gtpu_header_t); + + vlib_buffer_advance (b0, -(word) hdrlen); + + hdr0 = vlib_buffer_get_current (b0); + + clib_memcpy_fast (hdr0, &sm->cache_hdr, sizeof (ip4_gtpu_header_t)); + hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); + if (qfi) + { + gtpu_pdu_session_t *sess; + + hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; + + sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ipv4_gtpu_header_t) + sizeof(gtpu_exthdr_t)); + sess->exthdrlen = 1; + sess->type = 0; + sess->spare = 0; + sess->u.val = qfi; + sess->nextexthdr = 0; + } + offset = ls_param->v4src_position / 8; shift = ls_param->v4src_position % 8; @@ -463,14 +487,41 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip6_address_t src6; u32 teid; u8 *teidp; + u8 qfi = 0; + u8 *qfip = NULL; u32 offset, shift, index; ip6srv_combo_header_t *ip6srv; + // Decap from GTP-U. hdr = (ip4_gtpu_header_t *)ip4; + hdr_len = sizeof (ip4_gtpu_header_t); + teid = hdr->gtpu.teid; teidp = (u8 *) &teid; + if (hdr->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header. + hdr_len += sizeof(gtpu_exthdr_t); + if (hdr->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + // PDU Session Container. + gtpu_pdu_session_t *sess; + + sess = (gtpu_pdu_session_t *)(((char *)hdr) + hdr_len); + qfi = sess->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip = (u8 *)&qfi; + + hdr_len += sizeof(gtpu_pdu_session_t); + + if (sess->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdr_len += sizeof(gtpu_paging_policy_t); + } + } + } + src = hdr->ip4.src_address; srcp = (u8 *) &src; @@ -486,6 +537,11 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, { clib_memcpy_fast (&seg.as_u8[offset], dstp, 4); + if (qfip) + { + seg.as_u8[offset + 4] = qfi; + } + clib_memcpy_fast (&seg.as_u8[offset + 5], teidp, 4); } else @@ -498,6 +554,12 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, seg.as_u8[offset + index + 5] |= teidp[index] >> shift; seg.as_u8[offset + index + 6] |= teidp[index] << (8 - shift); } + + if (qfip) + { + seg.as_u8[offset+4] |= qfi >> shift; + seg.as_u8[offset+5] |= qfi << (8 - shift); + } } src6 = ls_param->v6src_prefix; @@ -518,7 +580,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, } } - vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b0, (word) hdr_len); + + // Encap to SRv6. encap = vlib_buffer_get_current (b0); len0 = vlib_buffer_length_in_chain (vm, b0); @@ -783,21 +847,16 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, ip6srv0->sr.length * 8); // get length of encapsulated IPv6 packet (the remaining part) - len0 = vlib_buffer_length_in_chain (vm, b0); - p = vlib_buffer_get_current (b0); - // jump back to data[0] or pre_data if required - vlib_buffer_advance (b0, -(word) sizeof (ip6_gtpu_header_t)); - - hdr0 = vlib_buffer_get_current (b0); - - clib_memcpy_fast (hdr0, &sm->cache_hdr, sizeof (ip6_gtpu_header_t)); + len0 = vlib_buffer_length_in_chain (vm, b0); u32 teid; u8 *teid8p = (u8 *)&teid; + u8 qfi = 0; u16 index; u16 offset, shift; + u32 hdrlen = 0; index = ls0->localsid_len; index += 8; @@ -805,10 +864,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, shift = index % 8; if (PREDICT_TRUE (shift == 0)) { - teid8p[0] = dst0.as_u8[offset]; - teid8p[1] = dst0.as_u8[offset+1]; - teid8p[2] = dst0.as_u8[offset+2]; - teid8p[3] = dst0.as_u8[offset+3]; + clib_memcpy_fast (teid8p, &dst0.as_u8[offset], 4); + + qfi = dst0.as_u8[offset + 4]; } else { for (index = offset; index < offset + 4; index++) { @@ -816,11 +874,44 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, *teid8p |= dst0.as_u8[index+1] >> (8 - shift); teid8p++; } + + qfi |= dst0.as_u8[offset + 4] << shift; + qfi |= dst0.as_u8[offset + 5] >> (8 - shift); } + qfi &= ~GTPU_PDU_SESSION_P_BIT_MASK; + if (qfi) + { + hdr_len = sizeof (gtpu_exthdr_t) + sizeof(gtpu_pdu_session_t); + len0 += hdr_len; + } + hdr_len += sizeof(ip6_gtpu_header_t); + + vlib_buffer_advance (b0, -(word) hdr_len); + + hdr0 = vlib_buffer_get_current (b0); + + clib_memcpy_fast (hdr0, &sm->cache_hdr, sizeof (ip6_gtpu_header_t)); + hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); + if (qfi) + { + gtpu_pdu_session_t *sess; + + hdr0->gtpu.ext->seq = 0; + hdr0->gtpu.ext->npdu_num = 0; + hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; + + sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip6_gtpu_header_t) + sizeof(gtpu_exthdr_t)); + sess->exthdrlen = 1; + sess->type = 0; + sess->spare = 0; + sess->u.val = qfi; + sess->nextexthdr = 0; + } + hdr0->udp.length = clib_host_to_net_u16 (len0 + sizeof (udp_header_t) + sizeof (gtpu_header_t)); @@ -911,7 +1002,10 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6_address_t seg0, dst0; u32 teid = 0; u8 *teidp; + u8 qfi; + u8 *qfip = NULL; u32 offset, shift; + u32 hdrlen; ip6_header_t *encap; u32 next0 = SRV6_END_M_GTP6_D_NEXT_LOOKUP; @@ -933,6 +1027,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, hdr0 = vlib_buffer_get_current (b0); + hdrlen = sizeof(ip6_gtpu_header_t); + len0 = vlib_buffer_length_in_chain (vm, b0); if ((hdr0->ip6.protocol != IP_PROTOCOL_UDP) @@ -949,6 +1045,28 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, dst0 = hdr0->ip6.dst_address; teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; + + if (hdr0->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header. + hdrlen += sizeof(gtpu_exthdr_t); + if (hdr0->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + // PDU Session Container. + gtpu_pdu_session_t *sess; + + sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip6_gtpu_header_t) + sizeof(gtpu_exthdr_t)); + qfi = sess->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip = (u8 *)&qfi; + + hdrlen += sizeof(gtpu_pdu_session_t); + + if (sess->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdrlen += sizeof(gtpu_paging_policy_t); + } + } + } offset = ls_param->sr_prefixlen / 8; shift = ls_param->sr_prefixlen % 8; @@ -957,6 +1075,10 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if (PREDICT_TRUE (shift == 0)) { clib_memcpy_fast (&seg0.as_u8[offset], teidp, 4); + if (qfip) + { + seg0.as_u8[offset+4] = qfi; + } } else { @@ -967,10 +1089,16 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, seg0.as_u8[offset + idx] |= teidp[idx] >> shift; seg0.as_u8[offset + idx + 1] |= teidp[idx] << (8 - shift); } + + if (qfip) + { + seg0.as_u8[offset+4] |= qfi >> shift; + seg0.as_u8[offset+5] |= qfi << (8 - shift); + } } // jump over variable length data - vlib_buffer_advance (b0, (word) sizeof (ip6_gtpu_header_t)); + vlib_buffer_advance (b0, (word) hdrlen); // get length of encapsulated IPv6 packet (the remaining part) len0 = vlib_buffer_length_in_chain (vm, b0); @@ -1173,7 +1301,10 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6_address_t seg0; u32 teid = 0; u8 *teidp; + u8 qfi = 0; + u8 *qfip = NULL; u32 offset, shift; + u32 hdrlen; ip6_header_t *encap; u32 next0 = SRV6_END_M_GTP6_D_DI_NEXT_LOOKUP; @@ -1195,6 +1326,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, hdr0 = vlib_buffer_get_current (b0); + hdrlen = sizeof(ip6_gtpu_header_t); + len0 = vlib_buffer_length_in_chain (vm, b0); if ((hdr0->ip6.protocol != IP_PROTOCOL_UDP) @@ -1212,6 +1345,28 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; + if (hdr0->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header. + hdrlen += sizeof(gtpu_exthdr_t); + if (hdr0->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + // PDU Session Container. + gtpu_pdu_session_t *sess; + + sess = (gtpu_pdu_session_t *)(((char *)hdr0) + hdrlen); + qfi = sess->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip = &qfi; + + hdrlen += sizeof(gtpu_pdu_session_t); + + if (sess->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdrlen += sizeof(gtpu_paging_policy_t); + } + } + } + offset = ls_param->sr_prefixlen / 8; shift = ls_param->sr_prefixlen % 8; @@ -1219,6 +1374,11 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if (PREDICT_TRUE (shift == 0)) { clib_memcpy_fast (&seg0.as_u8[offset], teidp, 4); + + if (qfip) + { + seg0.as_u8[offset + 4] = qfi; + } } else { @@ -1229,10 +1389,16 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, seg0.as_u8[offset + idx] |= teidp[idx] >> shift; seg0.as_u8[offset + idx + 1] |= teidp[idx] << (8 - shift); } + + if (qfip) + { + seg0.as_u8[offset + 4] |= qfi >> shift; + seg0.as_u8[offset + 5] |= qfi << (8 - shift); + } } // jump over variable length data - vlib_buffer_advance (b0, (word) sizeof (ip6_gtpu_header_t)); + vlib_buffer_advance (b0, (word) hdrlen); // get length of encapsulated IPv6 packet (the remaining part) len0 = vlib_buffer_length_in_chain (vm, b0); diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 7089728d0d9e..df0bb5b0a494 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -54,6 +54,9 @@ #define SR_SEGMENT_LIST_WEIGHT_DEFAULT 1 +#define GTPU_EXTHDR_FLAG 0x04 +#define GTPU_EXTHDR_PDU_SESSION 0x85 + /* *INDENT-OFF* */ typedef struct { @@ -62,6 +65,15 @@ typedef struct } __attribute__ ((packed)) ip6srv_combo_header_t; /* *INDENT-ON* */ +/* *INDENT-OFF* */ +typedef struct +{ + u16 seq; + u8 npdu_num; + u8 nextexthdr; +} __attribute__ ((packed)) gtpu_exthdr_t; +/* *INDENT-ON* */ + /* *INDENT-OFF* */ typedef struct { @@ -69,9 +81,43 @@ typedef struct u8 type; u16 length; /* length in octets of the payload */ u32 teid; + gtpu_exthdr_t ext[0]; } __attribute__ ((packed)) gtpu_header_t; /* *INDENT-ON* */ +/* *INDENT-OFF* */ +typedef struct +{ + u8 ppi:3; + u8 spare:5; + u8 padding[3]; +} __attribute__ ((packed)) gtpu_paging_policy_t; +/* *INDENT-ON* */ + +/* *INDENT-OFF* */ +typedef struct +{ + u8 exthdrlen; + u8 type:4; + u8 spare:4; + union { + struct gtpu_qfi_bits { + u8 p:1; + u8 r:1; + u8 qfi:6; + } bits; + + u8 val; + } u; + gtpu_paging_policy_t paging[0]; + u8 nextexthdr; +} __attribute__ ((packed)) gtpu_pdu_session_t; +/* *INDENT-ON* */ + +#define GTPU_PDU_SESSION_P_BIT_MASK 0x80 +#define GTPU_PDU_SESSION_R_BIT_MASK 0x40 +#define GTPU_PDU_SESSION_QFI_MASK 0x3f + /* *INDENT-OFF* */ typedef struct { From 0ad1f3ab90fcf7e889c56c5d387d9c29c3c46455 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 3 Oct 2019 14:55:06 -0700 Subject: [PATCH 124/154] Support QFI mapping on GTP.M.4/6.D/E --- src/plugins/srv6-mobile/node.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 48d12ba30521..3810a9ff0be0 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -320,7 +320,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdrlen = sizeof(gtpu_exthdr_t) + sizeof(gtpu_pdu_session_t); len0 += hdrlen; } - hdrlen += sizeof(ipv4_gtpu_header_t); + hdrlen += sizeof(ip4_gtpu_header_t); vlib_buffer_advance (b0, -(word) hdrlen); @@ -882,12 +882,12 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, qfi &= ~GTPU_PDU_SESSION_P_BIT_MASK; if (qfi) { - hdr_len = sizeof (gtpu_exthdr_t) + sizeof(gtpu_pdu_session_t); - len0 += hdr_len; + hdrlen = sizeof (gtpu_exthdr_t) + sizeof(gtpu_pdu_session_t); + len0 += hdrlen; } - hdr_len += sizeof(ip6_gtpu_header_t); + hdrlen += sizeof(ip6_gtpu_header_t); - vlib_buffer_advance (b0, -(word) hdr_len); + vlib_buffer_advance (b0, -(word) hdrlen); hdr0 = vlib_buffer_get_current (b0); From edf0e86229c0d72d6685670052bf175801581083 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 3 Oct 2019 14:56:07 -0700 Subject: [PATCH 125/154] delete ietf105 --- extras/ietf105/Dockerfile.j2 | 46 - extras/ietf105/Dockerfile.j2.release | 37 - extras/ietf105/README.md | 173 ---- extras/ietf105/requirements.txt | 3 - extras/ietf105/runner.py | 1190 -------------------------- extras/ietf105/startup.conf.j2 | 14 - extras/ietf105/topo-init.png | Bin 121503 -> 0 bytes extras/ietf105/topo-test_gtp4d.png | Bin 138014 -> 0 bytes extras/ietf105/topo-test_gtp6.png | Bin 131731 -> 0 bytes extras/ietf105/topo-test_gtp6d.png | Bin 127820 -> 0 bytes extras/ietf105/topo-test_gtp6ip6.png | Bin 116633 -> 0 bytes 11 files changed, 1463 deletions(-) delete mode 100644 extras/ietf105/Dockerfile.j2 delete mode 100644 extras/ietf105/Dockerfile.j2.release delete mode 100644 extras/ietf105/README.md delete mode 100644 extras/ietf105/requirements.txt delete mode 100755 extras/ietf105/runner.py delete mode 100644 extras/ietf105/startup.conf.j2 delete mode 100644 extras/ietf105/topo-init.png delete mode 100644 extras/ietf105/topo-test_gtp4d.png delete mode 100644 extras/ietf105/topo-test_gtp6.png delete mode 100644 extras/ietf105/topo-test_gtp6d.png delete mode 100644 extras/ietf105/topo-test_gtp6ip6.png diff --git a/extras/ietf105/Dockerfile.j2 b/extras/ietf105/Dockerfile.j2 deleted file mode 100644 index cca5e2e14143..000000000000 --- a/extras/ietf105/Dockerfile.j2 +++ /dev/null @@ -1,46 +0,0 @@ - -FROM ubuntu:18.04 - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - inetutils-traceroute \ - ca-certificates \ - build-essential \ - git gdb sudo \ - iputils-ping \ - net-tools \ - iproute2 \ - tcpdump \ - python3-cffi \ - netcat; \ - rm -rf /var/lib/apt/lists/*; \ - mv /usr/sbin/tcpdump /usr/bin/tcpdump - -RUN set -eux; \ - mkdir -p {{vpp_path}} - -COPY . / {{vpp_path}}/ - -WORKDIR {{vpp_path}} - -RUN set -eux; \ - make wipe; \ - export UNATTENDED=y; \ - echo "y" | make install-dep; \ - rm -rf /var/lib/apt/lists/* ; \ - make build; \ - make pkg-deb; \ - rm -rf .ccache; \ - find . -type f -name '*.o' -delete ; \ - cd {{vpp_path}}/build-root; \ - rm vpp-api-python_*.deb; \ - tar czf vpp-package.tgz *.deb; \ - mv vpp-package.tgz {{vpp_path}}/; \ - dpkg -i *.deb ; \ - cp {{vpp_path}}/startup.conf /etc/startup.conf - -WORKDIR / - -CMD vpp -c /etc/startup.conf - diff --git a/extras/ietf105/Dockerfile.j2.release b/extras/ietf105/Dockerfile.j2.release deleted file mode 100644 index 851aef66197b..000000000000 --- a/extras/ietf105/Dockerfile.j2.release +++ /dev/null @@ -1,37 +0,0 @@ - -FROM ubuntu:18.04 - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - inetutils-traceroute \ - ca-certificates \ - libmbedcrypto1 \ - libmbedtls10 \ - libmbedx509-0 \ - libnuma1 \ - sudo \ - iputils-ping \ - net-tools \ - iproute2 \ - tcpdump \ - python3-cffi \ - netcat; \ - rm -rf /var/lib/apt/lists/*; \ - mv /usr/sbin/tcpdump /usr/bin/tcpdump - -WORKDIR /tmp - -COPY startup.conf /etc/startup.conf - -COPY vpp-package.tgz /tmp - -RUN set -eux; \ - tar xzf vpp-package.tgz; \ - dpkg -i *.deb ; \ - rm -rf *.deb - -WORKDIR / - -CMD vpp -c /etc/startup.conf - diff --git a/extras/ietf105/README.md b/extras/ietf105/README.md deleted file mode 100644 index 3b24dea6fd6c..000000000000 --- a/extras/ietf105/README.md +++ /dev/null @@ -1,173 +0,0 @@ -# What's `runner.py` doing? - -## Common configurations - -### VPP1 -``` -create host-interface name eth1 -set int ip addr host-eth1 A1::1/120 -set int state host-eth1 up -ip route add ::/0 via host-eth1 A1::2 -``` - - -### VPP2 - -``` -create host-interface name eth1 -set int ip addr host-eth1 A1::2/120 -create host-interface name eth2 -set int ip addr host-eth2 A2::1/120 -set int state host-eth1 up -set int state host-eth2 up -ip route add ::/0 via host-eth2 A2::2 -``` - - -### VPP3 - -``` -create host-interface name eth1 -set int ip addr host-eth1 A2::2/120 -create host-interface name eth2 -set int ip addr host-eth2 A3::1/120 -set int state host-eth1 up -set int state host-eth2 up -ip route add ::/0 via host-eth1 A2::1 -``` - -### VPP4 - -``` -create host-interface name eth1 -set int ip addr host-eth1 A3::2/120 -set int state host-eth1 up -ip route add ::/0 via host-eth1 A3::1 -``` - - -## Drop-in for GTP-U over IPv4 - -What's happened when you run `test tmap`: - - $ ./runner.py test tmap - - -Setting up a virtual interface of packet generator: - -#### VPP1 - -``` -create packet-generator interface pg0 -set int mac address pg0 aa:bb:cc:dd:ee:01 -set int ip addr pg0 172.16.0.1/30 -set ip arp pg0 172.16.0.2/30 aa:bb:cc:dd:ee:02 -``` - -#### VPP4 - -``` -create packet-generator interface pg0 -set int mac address pg0 aa:bb:cc:dd:ee:11 -set int ip addr pg0 1.0.0.2/30 -set ip arp pg0 1.0.0.1 aa:bb:cc:dd:ee:22 -``` - -SRv6 and IP routing settings: - -#### VPP1 - -``` -sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64 -sr steer l3 172.20.0.1/32 via bsid D1:: - -``` - -#### VPP2 - -``` -sr localsid address D2:: behavior end -ip route add D3::/128 via host-eth2 A2::2 -``` - -#### VPP3 - -``` -sr localsid address D3:: behavior end -ip route add D4::/32 via host-eth2 A3::2 -``` - -#### VPP4 - -``` -sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64 -ip route add 172.20.0.1/32 via pg0 1.0.0.1 -``` - - - - -## Packet generator and testing - - Example how to build custom SRv6 packet in scapy and ipaddress pkgs - - s = '\x11' * 4 + IPv4Address(u"192.168.192.10").packed + '\x11' * 8 - ip6 = IPv6Address(s) - IPv6(dst=ip6, src=ip6) - - -## end.m.gtp4.e - - First set behavior so our localsid node is called with the packet - matching C1::1 in fib table - sr localsid address C1::1 behavior end.m.gtp4.ess - - show sr localsids behaviors - show sr localsid - - We should send a well formated packet to C::1 destination address - that contains the correct spec as for end.m.gtp4.e with encapsulated - ipv4 src and dst address and teid with port for the conversion to - GTPU IPv4 packet - - -## additional commands - - gdb - breakpoint - - break sr_policy_rewrite.c:1620 - - break src/plugins/srv6-end/node.c:84 - - TMAP - Linux: - - ip link add tmp1 type veth peer name tmp2 - ip link set dev tmp1 up - ip link set dev tmp2 up - ip addr add 172.20.0.2/24 dev tmp2 - - create host-interface name tmp1 - set int mac address host-tmp1 02:fe:98:c6:c8:7b - set interface ip address host-tmp1 172.20.0.1/24 - set interface state host-tmp1 up - - VPP - set sr encaps source addr C1:: - sr policy add bsid D1::999:2 next D2:: next D3:: gtp4_removal sr-prefix fc34:5678::/64 local-prefix C1::/64 - sr steer l3 172.21.0.0/24 via bsid d1::999:2 - - END - Linux - create host-interface name tmp1 - set int mac address host-tmp1 02:fe:98:c6:c8:7b - set interface ip address host-tmp1 A1::1/64 - set interface state host-tmp1 up - - VPP - sr localsid address 1111:1111:c0a8:c00a:1122:1111:1111:1111 behavior end.m.gtp4.e - - trace add af-packet-input 10 - - sr localsid address C3:: behavior end.m.gtp4.e - sr localsid address 2001:200:0:1ce1:3000:757f:0:2 behavior end.m.gtp4.e diff --git a/extras/ietf105/requirements.txt b/extras/ietf105/requirements.txt deleted file mode 100644 index 2938cddeceb0..000000000000 --- a/extras/ietf105/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -docker -jinja2 -scapy diff --git a/extras/ietf105/runner.py b/extras/ietf105/runner.py deleted file mode 100755 index f26d04f8ece8..000000000000 --- a/extras/ietf105/runner.py +++ /dev/null @@ -1,1190 +0,0 @@ -#!/usr/bin/env python3 - -from os.path import dirname, realpath, split,\ - join, isdir, exists -from os import remove, system, mkdir -from logging import getLogger, basicConfig,\ - DEBUG, INFO, ERROR -from argparse import ArgumentParser -from atexit import register -from shutil import rmtree - -from jinja2 import Environment, FileSystemLoader - -from docker.errors import NotFound, APIError -from docker import from_env - -from scapy.contrib.gtp import * -from scapy.all import * - - -verbose_levels = { - 'error': ERROR, - 'debug': DEBUG, - 'info': INFO} - - -class ContainerStartupError(Exception): - pass - - -class Container(object): - - tmp = "/tmp" - cmd = "vppctl -s 0:5002" - cmd_bash = "/bin/bash" - - def __init__(self, ref, name): - self._name = name - self._ref = ref - - @property - def name(self): - return self._name - - @property - def temp(self): - return join(self.tmp, self.name) - - @property - def pg_input_file(self): - return join(self.temp, "pgi.pcap") - - @property - def pg_output_file(self): - return join(self.temp, "pgo.pcap") - - @property - def pg_input_file_in(self): - return join("/mnt", "pgi.pcap") - - @property - def pg_output_file_in(self): - return join("/mnt", "pgo.pcap") - - def disconnect_all(self): - status = False - for net in self._ref.client.networks.list(): - try: - net.disconnect(self._ref) - except APIError: - continue - status = True - return status - - @classmethod - def new(cls, client, image, name): - - temp = join(cls.tmp, name) - if isdir(temp): - rmtree(temp) - mkdir(temp) - - ref = client.containers.run(detach=True, - remove=True, auto_remove=True, - image=image, name=name, - privileged=True, - volumes={ temp: { - 'bind': '/mnt', - 'mode': 'rw' - }}) - - obj = cls.get(client, name) - if not obj: - raise ContainerStartupError() - - obj.disconnect_all() - return obj - - @classmethod - def get(cls, client, name): - try: - ref = client.containers.get(name) - except NotFound: - pass - else: - return cls(ref, name) - - def rem(self): - self._ref.kill() - - def vppctl(self): - system("docker exec -it {} {}".format(self.name, self.cmd)) - - def bash(self): - system("docker exec -it {} {}".format(self.name, self.cmd_bash)) - - def vppctl_exec(self, cmd): - ec, resp = self._ref.exec_run(cmd="{} {}".format(self.cmd, cmd)) - assert(ec == 0) - return resp - - def setup_host_interface(self, name, ip): - self.vppctl_exec("create host-interface name {}".format(name)) - self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) - self.vppctl_exec("set int state host-{} up".format(name)) - - def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): - # remote_ip can't have subnet mask - - time.sleep(2) - self.vppctl_exec("create packet-generator interface pg0") - self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) - self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) - self.vppctl_exec("set ip6 neighbor pg0 {} {}".format(remote_ip, - remote_mac)) - self.vppctl_exec("set int state pg0 up") - - def pg_create_interface4(self, local_ip, remote_ip, local_mac, remote_mac): - # remote_ip can't have subnet mask - - time.sleep(2) - self.vppctl_exec("create packet-generator interface pg0") - self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) - self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) - self.vppctl_exec("set ip arp pg0 {} {}".format(remote_ip, - remote_mac)) - self.vppctl_exec("set int state pg0 up") - - def pg_create_interface6(self, local_ip, remote_ip, local_mac, remote_mac): - # remote_ip can't have subnet mask - - time.sleep(2) - self.vppctl_exec("create packet-generator interface pg0") - self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) - self.vppctl_exec("set int ip6 addr pg0 {}".format(local_ip)) - self.vppctl_exec("set ip6 arp pg0 {} {}".format(remote_ip, - remote_mac)) - self.vppctl_exec("set int state pg0 up") - - def pg_enable(self): - # start packet generator - self.vppctl_exec("packet-generator enable") - - def pg_create_stream(self, stream): - wrpcap(self.pg_input_file, stream) - self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( - self.pg_input_file_in)) - - def pg_start_capture(self): - if exists(self.pg_output_file): - remove(self.pg_output_file) - self.vppctl_exec("packet-generator capture pg0 pcap {}".format( - self.pg_output_file_in)) - - def pg_read_packets(self): - return rdpcap(self.pg_output_file) - - def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): - self.vppctl_exec("ip route add {} via host-{} {}".format( - subnet, out_if_name, next_hop_ip)) - - def set_ip_pgroute(self, out_if_name, next_hop_ip, subnet): - self.vppctl_exec("ip route add {} via {} {}".format( - subnet, out_if_name, next_hop_ip)) - - def set_ipv6_pgroute(self, out_if_name, next_hop_ip, subnet): - self.vppctl_exec("ip route add {} via {} {}".format( - subnet, out_if_name, next_hop_ip)) - - def set_ipv6_default_route(self, out_if_name, next_hop_ip): - self.vppctl_exec("ip route add ::/0 via host-{} {}".format( - out_if_name, next_hop_ip)) - - def enable_trace(self, count): - self.vppctl_exec("trace add af-packet-input {}".format(count)) - - -class Containers(object): - - def __init__(self, client, image): - self.client = client - self.image = image - - def tmp_render(self, path, template, kwargs): - - with open(path, "w") as fo: - fo.write(template.render(**kwargs)) - - register(lambda : remove(path)) - - def build(self, path, vpp_path): - env = Environment( - loader=FileSystemLoader(path), - trim_blocks=True) - - self.tmp_render(join(vpp_path, "Dockerfile"), - env.get_template("Dockerfile.j2"), - {'vpp_path': vpp_path}) - - self.tmp_render(join(vpp_path, "startup.conf"), - env.get_template("startup.conf.j2"), - {'vpp_path': vpp_path}) - - ref, _ = self.client.images.build(path=vpp_path, - tag=self.image, rm=True) - return ref - - def release(self, path, vpp_path): - env = Environment( - loader=FileSystemLoader(path), - trim_blocks=True) - - self.tmp_render(join(vpp_path, "Dockerfile"), - env.get_template("Dockerfile.j2.release"), - {'vpp_path': vpp_path}) - - self.tmp_render(join(vpp_path, "startup.conf"), - env.get_template("startup.conf.j2"), - {'vpp_path': vpp_path}) - - ref, _ = self.client.images.build(path=vpp_path, - tag="ietf105-release-image", rm=True) - return ref - - def new(self, name): - return Container.new(self.client, self.image, name) - - def get(self, name): - return Container.get(self.client, name) - - def vppctl(self, name, command=None): - container = self.get(name) - if not command: - container.vppctl() - else: - print(container.vppctl_exec(command).decode()) - - def bash(self, name): - container = self.get(name) - container.bash() - - -class Network(object): - - def __init__(self, ref, name): - self._name = name - self._ref = ref - - @property - def name(self): - return self._name - - @classmethod - def new(cls, client, name): - ref = client.networks.create( - name, driver="bridge", - check_duplicate=True) - return cls(ref, name) - - @classmethod - def get(cls, client, name): - try: - ref = client.networks.get(name) - except NotFound: - pass - else: - return cls(ref, name) - - def rem(self): - self._ref.remove() - - def connect(self, c): - self._ref.connect(c.name) - - -class Networks(object): - - def __init__(self, client): - self.client = client - - def new(self, name): - return Network.new(self.client, name) - - def get(self, name): - return Network.get(self.client, name) - - -class Program(object): - - image = "ietf105-image" - - name_prefix = "hck" - - # TODO: add description to these instances - # for exmaple what the vpp is supposed to be - # in our topoloty overview - - instance_names = [ - "vpp-1", - "vpp-2", - "vpp-3", - "vpp-4" - ] - - network_names = [ - "net-1", - "net-2", - "net-3", - ] - - def __init__(self, image=None, prefix=None): - self.path = dirname(realpath(__file__)) - - if image: - self.image = image - if prefix is not None: - self.name_prefix = prefix - - client = from_env() - self.containers = Containers(client, self.image) - self.networks = Networks(client) - - self.logger = getLogger(__name__) - - @property - def vpp_path(self): - return split(split(self.path)[0])[0] - - def get_name(self, name): - if not self.name_prefix: - return name - return "{}-{}".format(self.name_prefix, name) - - def stop_containers(self): - - for name in self.instance_names: - instance = self.containers.get(self.get_name(name)) - if instance: - instance.rem() - - for name in self.network_names: - network = self.networks.get(self.get_name(name)) - if network: - network.rem() - - def start_containers(self): - - self.stop_containers() - - networks = list() - - for name in self.network_names: - networks.append(self.networks.new(self.get_name(name))) - - n1, n2, n3 = networks - - instances = list() - - for name in self.instance_names: - instances.append(self.containers.new(self.get_name(name))) - - c1, c2, c3, c4 = instances - - # setup packet generator interfaces - #c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - #local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - - # setup network between instances - n1.connect(c1) - n1.connect(c2) - - n2.connect(c2) - n2.connect(c3) - - n3.connect(c3) - n3.connect(c4) - - # c1 & c2 link - c1.setup_host_interface("eth1", "A1::1/120") - c2.setup_host_interface("eth1", "A1::2/120") - - # c2 & c3 link - c2.setup_host_interface("eth2", "A2::1/120") - c3.setup_host_interface("eth1", "A2::2/120") - - # c3 & c4 link - c3.setup_host_interface("eth2", "A3::1/120") - c4.setup_host_interface("eth1", "A3::2/120") - - # c1 > c2 default route - - c1.set_ipv6_default_route("eth1", "A1::2") - # c2 > c3 default route - c2.set_ipv6_default_route("eth2", "A2::2") - # c3 > c2 default route - c3.set_ipv6_default_route("eth1", "A2::1") - # c4 > c3 default route - c4.set_ipv6_default_route("eth1", "A3::1") - - # c3 > c4 static route for address B::1/128 - c3.set_ipv6_route("eth2", "A3::2", "B::1/128") - c3.set_ipv6_route("eth2", "A3::2", "B::2/128") - - def test_ping(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_srv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 C::1/120 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Sleeping") - time.sleep(30) - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr D1::") - c1.vppctl_exec("sr policy add bsid D1::999:1 next D2:: next D3:: next D4::") - c1.vppctl_exec("sr steer l3 B::/120 via bsid D1::999:1") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid address D4:: behavior end.dx6 pg0 B::2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/128") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c2.enable_trace(10) - c3.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - - def test_tmap(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") - c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_tmap_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") - c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ - ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp4(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp4_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ - ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_drop_in(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "B::2", "D::2/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_drop_in_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "B::2", "D::2/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.100.0.1", dst="172.200.0.1")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def status_containers(self): - - print("Instances:") - - for i, name in enumerate(self.instance_names): - name = self.get_name(name) - print("\t[{}] {} - {}".format(i, name, - "running" if self.containers.get(name) else "missing")) - - print("Networks:") - - for i, name in enumerate(self.network_names): - name = self.get_name(name) - print("\t[{}] {} - {}".format(i, name, - "running" if self.networks.get(name) else "missing")) - - def build_image(self): - # TODO: optimize build process for speed and image size - self.containers.build(self.path, self.vpp_path) - - def release_image(self): - instance = self.containers.new("release-build") - - system("docker cp release-build:{}/vpp-package.tgz {}/".format(self.vpp_path, self.vpp_path)) - - instance.rem() - - self.containers.release(self.path, self.vpp_path) - - system("rm -rf {}/vpp-package.tgz".format(self.vpp_path)) - - def vppctl(self, index, command=None): - if index >= len(self.instance_names): - return - name = self.get_name( - self.instance_names[index]) - self.logger.error("connecting to: {}".format(name)) - self.containers.vppctl(name, command) - - def bash(self, index): - if index >= len(self.instance_names): - return - name = self.get_name( - self.instance_names[index]) - self.logger.error("connecting to: {}".format(name)) - self.containers.bash(name) - - -def get_args(): - parser = ArgumentParser() - - parser.add_argument("--verbose", choices=[ - 'error', 'debug', 'info']) - - parser.add_argument('--image', choices=[ - 'debug', 'release']) - - subparsers = parser.add_subparsers() - - p1 = subparsers.add_parser("infra", - help="Infrastructure related commands.") - - p1.add_argument("op", choices=[ - 'stop', 'start', 'status', 'restart', 'build', 'release']) - - p1.add_argument("--prefix") - p1.add_argument("--image") - - p2 = subparsers.add_parser("cmd", - help="Instance related commands.") - - p2.add_argument("op", choices=[ - 'vppctl', 'bash']) - - p2.add_argument("index", type=int, - help="Container instance index. (./runner.py infra status)") - - p2.add_argument("--command", - help="Only vppctl supports this optional argument.") - - p3 = subparsers.add_parser("test", - help="Test related commands.") - - p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "tmap_ipv6", "gtp4", "gtp4_ipv6", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) - - args = parser.parse_args() - if not hasattr(args, "op") or not args.op: - parser.print_help(sys.stderr) - sys.exit(1) - - return vars(args) - - -def main(op=None, prefix=None, verbose=None, image=None, index=None, command=None): - - if verbose: - basicConfig(level=verbose_levels[verbose]) - - if image == 'release': - image="ietf105-release-image" - elif image == 'debug': - image="ietf105-image" - - print("Verified image: {}".format(image)) - - program = Program(image, prefix) - - try: - if op == 'build': - program.build_image() - elif op == 'release': - program.release_image() - elif op == 'stop': - program.stop_containers() - elif op == 'start': - program.start_containers() - elif op == 'status': - program.status_containers() - elif op == 'vppctl': - program.vppctl(index, command) - elif op == 'bash': - program.bash(index) - elif op == 'ping': - program.test_ping() - elif op == 'srv6': - program.test_srv6() - elif op == 'tmap': - program.test_tmap() - elif op == 'tmap_ipv6': - program.test_tmap_ipv6() - elif op == 'gtp4': - program.test_gtp4() - elif op == 'gtp4_ipv6': - program.test_gtp4_ipv6() - elif op == 'gtp6_drop_in': - program.test_gtp6_drop_in() - elif op == 'gtp6_drop_in_ipv6': - program.test_gtp6_drop_in_ipv6() - elif op == 'gtp6': - program.test_gtp6() - elif op == 'gtp6_ipv6': - program.test_gtp6_ipv6() - - except Exception: - program.logger.exception("") - rc = 1 - else: - rc = 0 - - return rc - - -if __name__ == "__main__": - sys.exit(main(**get_args())) - diff --git a/extras/ietf105/startup.conf.j2 b/extras/ietf105/startup.conf.j2 deleted file mode 100644 index 5a4a2ef103d1..000000000000 --- a/extras/ietf105/startup.conf.j2 +++ /dev/null @@ -1,14 +0,0 @@ -unix { - nodaemon - cli-no-pager - cli-listen 0.0.0.0:5002 -} -plugins { - plugin dpdk_plugin.so { - disable - } -} -cpu { - workers 2 -} - diff --git a/extras/ietf105/topo-init.png b/extras/ietf105/topo-init.png deleted file mode 100644 index dc9603ba2907f13aebc368119fff9c07f1b0473f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121503 zcmeFZXCT|%`#;{TrL?FjHCj??l*ZoL+MA-N*=X$*5qq?^8nJ8dC>m7Bt!B(pd&R5~ zn~1HkB4Yfa_vicI|K$7mKL6hjgtvrq-dC=3uIn{UV7l5W)RfGW7cN|&R#R1cdEo*@ z?u84NgsxvB|K`opD?8+G7a=cIUR)^cXIUj*+;CGhfn2!2NO%5q(H1^L{*z}H)D)i^ zcwgL@woiO#=yQ0cfZn|_-KW_T^&o*G-0lMSnMi+n2=KY}uZTur$49Q;7T;uCi ze?{;K3NaZ)#VcyD=+WN3sCO;Rwl>2hC&MK)yWs0q=-KY{Xq^mHg7B-M0AV^h+fdkO zSg@5QS1o~_AWiteIU^n;8xAI2+j_A6u6oZdUcICHzdu+3E(z0=`1{nKHYv=Ka^GK~ ze4O*YKRmPkU>`l^q4Zz>HF;o%E1HU9IW?;PeI7Ze_pp^^&(fm*eem;Vbvdm#YOl2^ z{nwekztneCQ&GGcqV?bB`hoc({h;V$ftUY#xXz!o6CjU|%5voWFM%S@b>w<#c{GvZ@HOv3+@gFcF zj}MU^Gx+bJDx`f%YaYD7@qdW_GI{(A3<~jo2vsyWRhaKE^8EMsi!eT=ou29!W%w_v zfP5$ars}_``fsZKyQ}`YtNzyt@b9krZv*ge1MqLJ`fsoLU;FB3|Msf?!m58^)xQkD z{{hzi%K-e#0Q^f<{YzH;OIH0?1o|(p`u}%c^=Y0>+W#=%RuMPqkJgIY8Usi}CVg4b z)e;NgoQQEIU#Wlk^Qf%%V2=%_>F@s(;pyx32a}F%rzfPy%M>(sh7nqPHt1~UldAjA zW{dx%-VX^fZ_Z}x=2h^|r8m_cfxvjSr*mddzthcUKi0wK=LDXHjxm(m^f7NMfP?-S zNK@*Ad7UT2*@5fXE2rsNQC1SZgWb~qbQccyz|CLe`$Jeiow%y{Y!-r+ZQHD#wb+=h z6Mys>ElZeMNOvqv+bCGZ|L0}z$l8U@MC>nm{XaZ=&SM%j8Dp8FmAtkF!c2y5wDpT% zDb70n|3Hudi}(Fzu`)ZV;Mo8Ib^D;K-$8|C*X(~ZiXW-hznNB-djD>whzw&7lo+*V zqHge59Rg0I+&BD(#{V!#`I(zi%uie%B-%}+imVuIK)-Pgr7h|La8a%%T5@nqtSDV4_m@69_ z8~2E1eM*sc86p`41@7`257=Qg!ror&sD0OyTyc`=kJ}DLl7IZ795Hw-%>#$ep2t4n z`Fk4mR=vjXJQ-79hhC%W>u}nrJ6tY8yVu5iN=Z%`j>jz_RFRJ~l0_QZ#brxBeM{Mv zyys&mkYeF$PwYsZr4NQ_NY2oPJ+(WsySXr_A=r>8SI44a+n<@{gzL*lSy(wH?n=kt zM=#s%iNo2!zO#)1Jf(EP#G4bRJJ_CKTgmvQgf+Pn6S5X0F?BUOZN#$Xntovc_=)^Z zC#Qat%bLQ*e0n1U*WX;rIOefdK7tyj;Dlwg=Oa2q~W#Gm3=04pp8PY~M zMG)IohFJ%W?fNaY>JLf@Ew;)p{YeL#JT5!Jzyv?G#@|>RB4oD@gWFw_dtZYVL&0;X zKf<5<^WN>%KC>+uXb8N^20vdwKi+Wu?MK*Jke(%KJB&Z!&PCQNL@Z=N`kD0J$#TA& zxBe=~oGtD;Ba<3_IuIsjkV#I9yzjB~$TI&n+-d<_oBFnoyg{gB*nE81H&P3g;2p%L#5-`-CHuhpG9bhXqF2Qcw7T_GxYPk z#KY9`i26FRNtv)d0KYp+AIxrnr9(MNnz)oerR?m*j0;cc&5pMg1!tg>b{})+!Up|4 zTZdd0Jj8Kpe&i0|!%wyM>-=b`z@08`eU9{+UT9W~{I)+%I?}NC6}0a;#pAX2t#9e7 z0JTN;X~n~d9{e1%eT=LnvwH~fFEt`&Cx5SBW(sDI;9g6txS<;!pu!&Dp`vY!laeb- zJQ7elD@Ha-wc)g-9d?<(mhXWCc|Zg#W5l@_W+$iOuOq!#QA*eDZ^6Qs*EB(qbz@u( z_hXgybx`KW zq2`L?{*?U`*Svat4sBNZ8<0+MOJ&Lx?lJELJ*2qrVw(@P1w2d}*-m}Y;b4EL+c;f1#vDPYLHeEbg)$S+>n{W@H9NmoDOH zdcHwsd~gi5SMVE)+a^V%d!#>%sLiDF*a2+G5%DJwPO{G3aO*j%bS9DSL(f zMC0ne>;!+i=Y~O+ZlnKM_faWiofRMNDgWn^^KK5EC%I1Dw3k8OZ`f`mMZ^Z~<=G!$ z>%V0fF6h752r(RETj^y-*TyG z6F10hB291K^_l{A%o#wQ%%tDd$0LBtVe-dszIp_0LEw%UV>tchm}St(dOW*Gvi`V@ z%gB7vZXIzsW0(|lMhI%!JQ%)qtU}%*Q(s*2`1P>g@IC@{N^dE@U!+5gNzIU45oxVz zBs6SOr*R0MHEt!P?j*pE0nt0eJo%%%Y&IsX-XD?L_Naj$eiQFfu9Snn><`oiOF zTZ~9c!h^FVZuvCj+{($uoeku80A9nai49ru52XsxgvbQGc-v5 z&`b!i9DBTSsNCVSR^{<{V_!QE3)%5ISLQ$bRQaK}H@|D*hdAHg^BHpn>yGLd{aab8cmO_~YS;_-#LgU>m=9$$(Ns!PKTxHD1;`;Y zdl5Um;SS32gQ+@7>D|H&lWNcOQ3Y-rA|63!q**~Z(geE7zw|DqAl`!QL&u%J_cqYz zhkbCtB;Uqym8yqo{Rd2+ZO%7qMC}D?w1}s0M8WGrR!&d5xp%+9wJBj5Y>{#B;ZD&k zT6C{db0?s5*DP2KK^M6rn(bUpGd3rG{8OIAGdV^(<{kfxfU09r@#kQLY;7b3q4_Y}RYMn}NtBcXHvd3Aqf*U%JCHogyFdEK_w*YIdDL`9 zYP!?Jq-I%tQt|xkADfWXUu3V2&h7fTKmFi}_WKByF17fW63T`TX|KKs48E?WVG!r7 z&{XLvoR(pI#309PrPiO!7YD_xjK0gnWO>aT62arfw%H;2aU183K zJo4(i7Djw1PB({gn)oil8_Bk=siB^Coxz^@x$1ji>|>;ly#HO1#$Bh1aX-ZQ zm_q)rISwF#StJe_nL`cNoU`v=K8#`-Y~LMoZ~16#&6G!c9qr;bt!;kZRBM7hOubJ> z215&8@NbCFYWV{!mXu$Xt`~zS_2?=^Qt4FGUJTc0y+~A^bJxTkX>@QOj73r-S|1`b z`a=AuK$5$_YAf_v5DS5P z0cPVYgfJ0G=l-4?>5B`T`-x^0C8b*a4}lZ*98w)OOR*}fP=i`IdTU6p70Ik_f@|MW zN*C<eH*EZbqr+FJa4V2Jhr_ny2 z@6+{c_)i}NJKUPDGUl69jf;^MAYW$GxPx~ZVQC|dCb2Z{Mq9q|YO-c8IyE+d433kG zEF>i^-ykrIBox&_T$2{%SO<(xW4!7)r-Kcv|EC;i=99|-Y{YB!PdQ+v(uG+cb($5X zelqCOhm>V@GcsuKemD-SX{nWI`c#w-d6=e#w8<_}bx)jWPbkqO-0d8S6LL$K&08j-{&#~575o-8UW7*X1LAXfgcq@Vo|v=|Hg;YGi)dxH z!#-Z6UWdZ$nDr#KrtbX^v%g+LMt%BpQrp4Gm*{3UQk2uqj*w@}W?`X>bidE{?l2bp znWl5p^231c!7@-^S-_0j{`wQk*))#CPcox#9W4ruyZvhV=^<&9@%I$s6CIsV0~h)s zv}aq}r!K0tLLi1Q?_aBxiXzdq0QVjXRJlHJ>M;9SfU@b}Q_U_kX1RXFs%?W6d&S>Z zKkRI-hfysc{%0#+qaY)Qy-}nJ!h-z-ZB?hECeJ#M(8(El(<% zW2QJ74Y<)SIaHG^9Sx3E{GPo8jj8jIwfs;0aHAF&dk2G?X+U;_EPoPF=}sjWA#hr1 zZ!goB8APkr6GAP>80fY7B?V!u#9G5bQD`)Xg4GN;UcGE1@DsooQ@&;FBe-uQ1;f5@ zLRhGC+pZmYv@FQwXS`?->Ub*^{HcQb)KETSF;-r#ZTfs)&;d$tM@+D*IY_M<(hs&8 z#=v3-sNWNV6YJLOr17|b-(D@YohLt1nvSu1;)&>x)ZUwRqkbXvTK`P>PU>T_k&XV* zcHo~osHMvpQVS7cr28VHaL9g!XQ#OD?Q=`^%j`i_HFeQ9Ec7eVpbCO?U~Vq@I}7^D zq=+`zVhPa5ZOxG$3Sw^W>AK3>1Mpa9CZ&1ap<Z!fN4wRJ6t-9|6DkqDR_h?yW&A8%%7sLF5VF{ot!*4#(z4)fx=@{i%UK3Rq= z8uy1W7UV8-Rc8154j)`Rh*2aL*O5Aq+Hc3dl{Cp}=_4J8Jm)2J^J_Hf`?A6c^US^H zLyAh<`59Z4OGl&PokxMyYn{9CXNR$85~J8PDRvxz9=Y;NIjbx)+$IQR?H=fgtf%uz z-4C|TkMqF!qnZluZtPf#x;<(f#HZPp6~W#6kLAWVi`T1<(tL$j>%5c2fZ45{#V<6M z1{nZ(ur}1wmvzSwi~bX3pDUtpTGk)lTaaQB-`c^*MA}Q)S=%{9+e`8Do2S=y0t5ab z7_92a^(8i?g7l}{*zrGWiKCQY08=ukGdI}Ze%D>%{!?lglHlfK_=b;Nacfjl=~KiE zh1~BCB0`Z7mf47J$ES!{T*SkUzA?8DN->5-?ODrdwhryf%BVO47el5;Y8sqkHe@!y zC%rvET`J_-0U~74mUl~=vg5~Y!wRtvr`4RZWirZ-gY=iyr-a^TzVek5e`qcc<$?3I z^GCyOeM@7$%l@ByP?Z>xNGtFIoDQn0vAkpM-08GbuBTH8(@=y&%Wu^zN^w}5iuk4= z@!vW{18YL9O2_eZel~vxr9%PIg-j|FL~-@Np&|XR$O7 zAOa;0%3@gzFMxtGvHtzomf1^i+d6cXa!~w2)Oa`P!KY?fX1Tk6TC@HusU^9`_102t z@k{w~%9{Pq2U1$YgX#CwZ?cqnFsHywJpSe=#Y!>YYo?wTjW(u_81Bl2>t(g#cN!%H zq)c!$OUE&_y!b*FQweaOM-8W*7AxGuR0_|xUA^VEARSx3lK(pmf9k%FMv62Wd*T{Q zhIc^5U!0|M7!1SO-%}m$EWf30WyL^ZB3!s}+kXIFyD7O}^p32P|1-tXtA+J=rxr6i z0M^IIfXiNj%n2~z)oxjUu^=>4aw6){!EvTuc{Hnv4xLE}4nBE2w<&HE|2?Yv!~1UrL}6k6psxchZmf@_)z<{!m5FY8OuA7+XR~W zlyR}Cz-|(tY5*Utt&VcrkQilPj*t{UpaG%OUfX)r(Sydy8(jVPiDku09WQ0Qw&3%)=vCq0CAA{#^9q(w|9mzFN4Q>#dhRY z=6;}m1|ekg#;H=- z+V_|XK6})(3NbvN=@_$PWcFQM?T2LSsJhVQjI~vy$nc>`b$yOAnuryBpShV$WNqRP{?DLc+YsF|Sc>Pu}J~0mtdRm_1$=r$83B-eT_b z;R1`o(#BkO)T4Uz&2jsvcBA`mcelOIO7K&QXD72~teU<6X6128!|s$45OM+VJYEa zuhE%1*`$OUYH#5bMd13UjnlQK+UGr;)wB2OB2Y|bIM=IB;au&5Y2h*Dn(TehbVo7r z7CqZ=vgyh$`eKX9Tjm-D9U@^OJ__%ovUn3f?N<`Bl zp&`a?)>Vh;oh|rynT{unbi<>@JpmM~gFV}e+c~2FDl>PHnS5$KllR?^aTdj9MgmQ< z+kc8Kxdwlj$5CVzazdK^G;5R}FEH>je}pWGGC=8IK5KT&ibXXkd>)zwYJzhxev$5% zD72bgOi1=3_S5v}BIfTm3e85PA9uP*b@p@b*hg0tXYny!2415O`Qh6?h0EQqreDqn znUDQ=ui_Fu7Z9bG$L&pYeUF8PXy4qMLO&9}y#)WW?IY4JjJ;B(!^X&&@!4-I^I6(5 zQJV^kcCaS~jV<|=R<^d1G25nFH16ISB|ZV#4UE%PBu@dmPv$crCftk*kAY>G9(_%Y z`|8$SP~YCJr;gXOS^S7*OnOTG{EV61h~t>{qcu|ZdSX)nZ39aNus_HYOCUC!6P3>z zo@F;jt^-3HpTZ2K#0Eb}=}2ddA%^+O_?zSfU3a?0!rNrNt{^g8n5V9krS`wsjEA?5 z)z&&_7v6H&7!Yq|{BF(SyQiw;pG!JOMuOLNfL@I0OUBP-b@3op}u={Q=BD z^ibCCJ?q%*RT=`;Cb8{Tm%`#~KP+nT1Nvo{m@PJ^ZK_s{b&;`+etZVwD<$sV%bZgdNOml!~Qk}h4I6dRlm9F9+>(rz7eU#%$1fTjl4XI6;CBtJT_Am80Ri}$t8 zk`~}B0n0F^`PbPc5&d$lSa%`M!-kQj;Cvie?#RyOGt<7EaKW|}3cVY>^UAn-t1-tg z)A=R4z;^8Rs#O~*!Hf*ZD588D+-CI~Vjm9bI0-PG-tA_s{q01MOdP}dNtq0r$TQLp znzR`GiLV9Sp;rFdm%N?-C=u5$(iQJruyy!umMZjZ@gH*-Jbg2lE&bL+maTDFuvGlKR>7+ zN#ZhhYkz*_$|Y{}ByEqC=)Qi|l6O=cuYyULS*|`u7>T!YE_#r;XNByGTHkoQRyZuq zyD|mD{BrGavE_-wi1NsQci-c6_cy+7%A%F(iu4MSRqpnT^sxJxrj;JUJkf)ut+^~J z6Y~16Qf!9`U78pJZI*^>q3fYCmhm;6Q4f2W^#w9bMQQtN^%~9|BlSlXiR6ms4nPHZB zsBzCtkx^@$>t_}f*ev#F%?;P(*#mtOKN%Cwrrq~XRf($pF_3=Zy*+*M&moNg<@cdO z6l~sBZf}7M{D}DllW6RVcQKU5=3djH#;c&(GVfQWxJH*(0Fe!^M1ciP=Rc2Q9fDYnhwSk?8q}IE4WU4|5CGAg?SlE@c(TL-WUa3 zY2wz4OSp1uHukt>r?zEQw=$RvU8Q(Zc*sETwpHQ=nPreZthX*rX&rQ+cm(?8gUd=m zto7owG*5m|$m#mA_HVB)CAE*UpB;86AeP_Ck{g7NHc-=6orT98$p!ITY_C)fm-p>h zY(L&vcbh@Qy>(66=-=)_Mu{z&B%GouS@-Ok&j%G*165BS1&-jc?xcN0`jsuYPSOkb(T$o z-E>lir=yl9hHERP#L+l*SVrsQIf?J=Rb$)*{xxc7+P1^BKmU;8p1f`~xy@Pq(VmC$ zZ8#=Vl4@P2?paABSglID0sWxAKr2?8>J&?JDJFc&pr7zh-7h%jdPh7h|I`cf8w0wp zv%3?z!9I74e5^%8^d->^LE_GniOjQP0c))4b6tJ(;Bj{M1AW&Mayt2(i%kZSZ{H4e zC-IqXh3=AuCw?X4p1toE^fglo z(zrgEGBTq&>1Fkr0;YbOGnTZJVtLxEH6ygJOvI*Y9EwhB4^k8OFyX$Y&Stm z5c2}-WPDvgwlA-9Vrnvb^D{F?qe2Co6u6F{7nU2?&Bq#{%2Lf&vi7wEq?&N#=5t1- z*3F)0$-$}0qWkTj7TA5RBR{E2apB8gc9dIhlmt!=@mf{Us9ojr3i(h<1dSbM}g<{DorKIQh)>P5oaNBfw0y1~{XZ7D0- z?IK4A(rs8voPo^lZ(1FHlMm)-OLAHJs8_1bP ze*`TF>+6z*nyldUxTUuux=_lYm|LL48RIbx)HI?lKpq3S!bnYznuC(HuO)WBog`e| zwEu43D)AlayXH^%uG`8r)x7?{u*x2%$~#9Tzjy=%kv)Xb&7|3N!g)b@%U}f%=^D*6 z{!)H7@9nzsqFam^mDvK*PYP=N1``eE6e^VQoG(zm2krRA|wxP@Za?gbK%z&gqiQ zHFjG?b6Cuqs1fYMppG2zZFT5xIxtBPSlDLI()_Ai6-YMISTxbK11R^svq9q&eR>St~dYduaBz4 z?FX@cZ7-P>GmxA{yJ{P8zZq6yjccpn-hMgbba+pr*$*I<*4cm)q>@?mtkTrx{iwP! znFZIg55cs-6w0&o`nF2`SqlEqdMv>}ujLAmP3w##Z7^eBmIZ$*D>!9b+Ep3o^{QTQ zptxbgIU5)!FD_ znz!_Czh7BQmmk@pSqc~F6mW{iSy|T3$C+!5dIjcmU{8|~*Ob1DSNz%He80*$+m?HO*f4@8mvdVQ*N+)n~^nMa^v(2zwD_W!_j5nh=K= zW`bEDnh?LGL8pYKvy(liHP4QuSN9f!RFff@EQ}#byg0LHOKbmotgdWEYzfaP%KT@4 zc25zW4jW19NP&hw^D)W^F1Qzj^uHy_y@x(st0aBXMz;~7n|_=IBN9xkoKtgyp zN;vY-V3q&U@oL-9)$$0F_9^^X&UD@-*$3p)N)&QeZax3tdC8zv+<9A2Y;z@YtPy1G zf3^^#`mBTc#ni1k6lrYRqp7dO9A@y&iG^=})1B2b&)(v{e`sDG{peV1`YDUvUWeoH zZA;)AHxa;KYGR;fwED5j>tkWryUJlxAbciM+fImZL|#g-K#a*9H2v$RyEo2@jXd?yroetQrq>r2oLi5*oqS9 zXVB#>_xZZxG^~O2pvl2!;(~DKNQ<4~S0%i1yJ_eOmi=t>=k)Ly6a;6*sT8PFY;=%9 ze^4J5%A9@CLGQvv-Z8=L4V|*&RMJAs=|V_2%HxoOjUHluOM}|iUq@A|Y+pB1cJFdo zie-cEi#atrEi8ALrI3HQN*?j#waz{xsnm}))?~lbP;Kfb^l5yS|6 z!IC`w%H4Wpq-vMED6#!e``p^*Og~tUH0Oxd)@X&1T`;1ua>05-cMdx617&2{KhW#7 znBJN0w%}~Sz^9memuk-9j>SWwCXv4hAMJY6XX*~?>e<|_(+7QPzqWP@xpF7i_A%O2 z&KI#wd~&m%q;-$FMpuU$8?o<+pb=Mbm6K#otQIXqyp4cVlodZREAY-(aEU-&28*?s zuQh&2jidyo%+hke>X446F*WLYnwEI3^hkSQZE#BJeb{Oet#z!4&~1njf7Fr72$Tu% zPLHhN@>y~Ct_4bGd5opF5Im zV6XyETG`#?jveo_w#e*REG5GYMc!?ZJJq}*FO&Qp?8+${3J=+1yOVgjh8?E6YFRja zBZnVnQBmU>q@IXJKRu_whVjeUGa?bfbVvH|BZG76)SGd1(NS-Y16Epkq+!UK1!?B) z4mjIbpMUhXpsyz~;GJcez`|yF%E4W9!;sNNw1q`c9%EVZ`2Dj)X-`qwZlL(+`0%yR zSd_trWdz_bosn}!IV-c<&x2oZx!ny(pWG*)4NI+CE0k>OQt5}$jCMFqE?*tG8Rv|++gyVgs4FqM7*ZF3;f`{yS}Bz?^HPxW`v zA*?qH3es#Ittny0^{YR-2c*u@_pIt3oNNAA12h!FBiJ+MtZdpuMzC64E608y4&l$5 zZ#mMhh`^@JjF!fI$#*3OC)<#64+&)B%EK;esckasg{}gbN~DBCotn&e=?jE z+eE*G%1p1*Zzv+lam;3~Y*fmvRjpTVXl?eO+X;Rk0K~;;hTYlL;~+NxW&hd4_rasS z2SxQshc>CH8WorY040~+{V<}rn(WTam*8()jlEa3mDJFdAb7KN zYJYGd(!QGMMuR+a0F5Hwp%ts|UrL4J?D@~LzIhip@zLB7+*}i6i_v~V_Hc~kaVv$K zBql*3g=5l;zD20l4QD0&p!w;l_LxqA32Q3A?@FhFY8>k9F6YIFBHRPsA*iyc%-NdT zJQ8|6n>AUp%ock(WY}gCt~@|xEYd}Hbg+7vrKfwy9L)B~rSdGFQ$9ydJ;D*cSzPG` zHQS`jSO8mw+hK?GhnYS4!BtWM$~wXea*PK?(-x;$$S~xEG7m^p{p(%2{VB2)Y^*c@ z-x*PeYah<#*rJ=yy;!I6mjLzd%?1IT&^l+=%%A-yZNX?I?u`|HS;4g$ZY7+c)L&U( z506F*F>$u)H>`x;Cw$w-y|5;-PAh0>6zfcvFmYE+UCP;#YzxR@SL~BUE$gdr(W>7p zaMQ$U*NGNK6FK4suxU~?XA;;%{ZN2o$MFNH@r$oK63gpQtRNc%eojLAmPi(orB-)(`{&us(x5%PhPRAIvl)rT(~Ht z-?bsq?YkC~oBjEczCKxZ8aXzTEoQqr&S+xx*ZNxDCzeP(v}VY6=`G5Yk}7EzI=kE3 zNg2V~OuJf&K_a{xu-Zdf@Z}25#uY<3*Mk`EyPbQ9adMK%8t^KR%bo{h=~Y2h*dj@l zS4gO6iY#+9WJM+RSwvmRTTuS|yi~u?*+?d^iVB_NhL2 zB%a;SfWwFlVx{p66c%7GhL(I!`a8O<-XIu0@?(} zw!%B?26V|E^CL<(T%gixemi#bZ^7|9q@Qfd9xG1eKD*1!5}g=(CpoeUHq1;K;~WYQ z%gf+t)uY2OntSN=D0*z|wRsGRWPhg#X&-PbMRAEHdr4J#y#}+KeZE+I{P;EkE4NuO z>?;r>v;YH~k!i_T4JSX-}!M`@sxvYc>nN9jx16z#qQo@MuMB(=<8c7CA|>DX|ot(lV|nxKxg zR5A~^D<{PU2d{Pe@JKei-HJL48fe{nbKLZ-M;}*f&RVHHT{T>zD#KNUqtQ2uTs;&W zQWU|zwE^2-21nAxB1GrtWzd~BZKuuv5}>B`S4!}S3XMv= z&)OW=5UAWb&eR6huw}4S>Xj9?;W3f%veDdj<|HN_T`rVlQdawPv!A-l43`?XOSY95 z_tmX4;{9#2Y16F1GhAwu4hm1Bb7Xq(RTviyPUvnRs+0`3wgpScPV*SVeyMzXnYp?q z$7(h_wrfUpNa(7aAcGVx;AGuWFdT{!X6*37w=ovj8!|Odui8PRtbhC1dIMVKnRS1Fojd^fgON_wq&1nhJ0Wf&F{dNeYA4fx%E zbNQ2ARH}J}ot_GJXCBmYM+9g)KAr2$~q?(6}t$J z2cA6u+0;JwK15};ao#7~G0nA|j7bgkGuqS6aB672pLrT*xYAoId-~?iB(2IGBf7(2 zi6GxpY|NZj(Jy5a2=2#Iy>y>ktqc2`HCbMFKHnBdJ%f7MlCmn}6Y5qFqGu`-#>buO zwLO!StyWJq3YJz4ub#ech^2hU;HP{!K?G6exjOWvWF|X#*Gz!i1$P>vrsKO~Z%R0_~9;<}+_9aJq_=7tZgv!r%tBb>t)(a?8SE(3EQauP?&!p}Ai*+;KTO9bY-^}Ae zcgQE8nPVL+ua~0*Ds5?PzXX^W@b2#{GP5)0esi+OekKt;)fHW4R^YR>R5!C<8gqYg zSF8uQ0S~~LybRC#DY^xE21*<6^n>M%F8Rz*P}cx*cTX@s9Sy*%uKS>8>6v#+tVsC7tBsgJYMncl+~;zT!mu1 zOt!CYgx@3SMo|XNO|arS!!PS?PqPD4aI!j$6AkHKU(VWI8%*)SLvzOe-V9%HYed#q zYqd^=&_Z;~j5GbFjzO!(XL%JhINlcs%*sa)LUu|C%{?IClaCvBT1g@C$hrXUiOkQR|`Fcyn7u5 z0931^7_HCW)#*|Ib}szy02^K0@F_zDe{s^c#*~xz_l+k97=2J$yASg~+KX~Sq4$L2 z^CJYqj(TPJEn3)w(1_Y@@f)7~e2j=!d2dj|_A@)a*8A!TSJ4W29dgvSiRE+tD-->Y zZ|nWV35#z=?qd3qg5m|dW&^ywdXtG!6_0s!1*+&nte)$!a~W&T62pV##(To9^|#TV z%}zkA)Ay1p?fruAFZtKA3S@OM1%X~x6&_JDlVC-MnjG9Q1Z?R(6>l2jGJ#5hwc~xv)2qw0&~n&&g7rPI?xnWvu-b z+@!jYAK-?1>Gb*GAJ(3l(BVSuMc(MGsFe~vmTfKZ=|n^t*EKLrin*sr#2L0GZVY=! z_VEy`mGayK@AQ8lU8if$G!-L2Fe|R$Ein z`@+VzGYZAAG@WKCC@!)&q%7SRfNZ^f@SJ;Nr&7ihPPlCZTL+Z)grp9A)rX);)pHXU zb4$A$*FdzS)hfAO{NHf1LJVETdOv5AZM}sg`y@~5#bvTPmaTq_12Ke3BT=uBv?vMM znU30u);~_V&_SoWcT$S8?$%I{U0vL#-x+}ug9BP}A7;#K9eagdP^^p6I;OpgZ(Yw$ zo##8fbBpBuK>58s61)Dzd+8BtSb2yZ*98ny8zx$8AeGRFXeYx%3-fycJW2^a7sTpHs;SvO6JpYm?f0n z`a+uZ9bTM)u3-J|mOY60*<2sW5S`-uJIzf1rMvphq_RMq29Vkla%~Gv7C=`aow%Rd zYJj;Pwk<|=Ek1)qIZ~V4FsFFxD0jq8pX3zT9AIB3Qksze|5EEz^e2C=WjThVU2350a{J1aU$)lXJ+~5Cj}N@7unOqySf0LvI~pLxJ^NM3 zA)t_uMXWgsYjb8*-Iv+7M5XK((v}eW`Y+GZa0*`f-icR%jTc4NC zinP0z;9h5F#6PBR#&$}GuGMK`oXL6dHSaUbdPIMnuDZmaX6B{qXYJm~)E3bUM%fu9Ycz%p!Okd_LXG(0VP}LOUw0qAJg|)sZ`P;Wv-Jap< z=P8{pdBmaNH?|8F**LMQ#(fQ!LKgEIdvGndF8puVCT`k(*?Y4%$UI@{r$NFmd+SqS z`zv-ylNBZMAmH|0sn}HH*6$JvbS!>k=$jlVb-vOoT z(`H|Pc%L67b_El}u~)8pJLalLT-;u@yKQ@AZ^oNzZy@nkqV%So{6mC@UtG8ElpRog zy`tug#Nvui8@^{bfAF<7Ms{sUw)#0;rol%w=H(Y((z@>?Rk~0{m!6+A9KJq2<*n5Q zl&28l{!2}L$S!ENPyE)ZT5n_Fg%lN=@~G9uiF3Od<+_U8&Zm*5x-LtIc%924NR(TQ z%rMGu{)EN0RC7me#!~wV4hjj8bcMGHM2{1vc1Th_k3RQ7I>v1(<1z)f3-ND#*Qc(> z&+1%mW^6iadkAO9`@DKnSB`x~Cpdrz>BkiMwWVLn5DZw=P>8<+P%Eun`?^4yJq!H0 zS1tg%&Fp9QwBYjPj*pVKlmcm7fKSFZORd6PKaFk5I6DNl1Te+Bj!XG@f?4$Q*U17` z+@@I6KBjmcFvhx!>t}xFK-9@QXoGEJG<*%~`#o*q1w{OCC9Raq$vtI}p^ghLs-tVn zxS0kuIYh*-507^p*e8BzPULxE-`Wor(-?5;Hh}v>U)nu=6zFCy$k-pOyuEWEsj{GM z{_xkpbxoEhjG$*e6}qRa9okNvn1YAw#kBx0i-N7BB3-q>u{MV-$M5XxI~E|`Qj}F6 z>fCS6M5jQMRlB-HO?Gwgw1usACRL*wZs7LF$G6@*jrp##0Eq28B$Jn-cJJFtfV}C~ ze3&bUb@SdR!u&4!l~ck}yYvh`hBn$4-Lc~6O8Ip3U^2WC?J|*)-K9$B>!*3kVb$zC zK#sEm=G+lNa*OLg?m9v$d)^s;(L(v+@`Jo5RbTzsS#Q-)1#^(=H9O>$ZP z*=u2_{muPWIdA*|RBfyF1pAKV7Vwk|6D^#Nkukd5T=eiBsLuh6&k_*CGnEkcxOB$$ zHV(zztzUp!wA=5tecoGO{d|U-^gvRJ8z>b*>k8(&c7CL7wfu8A3p6mQa61`8eMp)E zKTd_NkFH6W%QapCq>C%I5WBqdhv+lB3TViB&5@Q08ZVpPg{nTZqL((J?lp)A|FycYIvlZzhm5dOw$rkMSNwbfX&nkwlyKqRuGxE1YprdLU>Z$F z^$sa!{4k+jc~9=1>q;c@1gx#;^Wu@O3}y7JG|(Oxfijz$SXw@q1{ zmD`8clW_v3JmV8+f>r_pO)H6$&%^xj7~(S7`@tG1Hmy++^3=NSqsvuYE=sCh zQzPBw{n$uBE-1SmRQN|{)JLXHYnrQ!`!fB$T=9n9hozM%#KZ$vmtdloaV>+dK{-yhJLWa#k8Mpa8`3LHqW{$2+@iW@@pm7TV2h%~%boJplJOQvb;F5cb<@Qfx<=mEc zQdg0xTxYtJ9C|=hKbGl(syM9ijsw7-14o17{&TsSZ z0@d3onfu>$@pgS@Bymyw4Iv|_5gN$DE8os^{8&Z6wf*~j&U+G^V~0>ZRYofXYz+j@ z{bBAH{DnUmTw}{8Lff3Z)IGl6w|6wdMWQX=OYT3~KgURMpD>*1Hwd}mkW3YqFlXKE z{#EJTRf+N?RT!sVySg8}5B=LRK2UFS$Q8EA>u!3S*tCn~Q9MaV3-T;w_6lgcz8hu) zX58&w(&?G%UNcXfNULQRc=Yv|PRZ2b&@$y|Fl7q$hu(PlLY;~K|2^AR+J6)0`OuM!vW6|R(LC6|{jdb!krdeW zBJ{gtO75~ITlY9fyN}lhCYY1rK4T$?SqtpeZEt9K*pWQMpB-k+GhoU-ZV(>2n6mHV zR;aHN^iHpAsgURKyCXwAS2wh|m_VJd>*i06CbaFU*x{n*{CF|QJsKuU);Z-h5!bHH ziSPXT+l2tZSFZqJlJvS)m(BZFMToZGP66$(Eb6zN@|slhx>dxLHz$$0!D#pSj?Y55 zb7*(Om(5&}#}OqO4va%il*AvC?z{I5#CBOe7^Z0k}T@h!_2s=qZ+_6>k>2h~arjAve!TFz%k*D-QRI#_A9eDFwzEu}x?VW2T0 zcByDD_XjYQBBpMWd1b{N^1X8aAkIkDmNIS|`C1aWt|6^$cwp!;XZO@I?LuRl zdxJ2NYW(+HGAkXo@BuoaVz1nZOa|(h4f0w9(g0q72!4$k4x)VD%0#Sp;t4# zDFxJZfOu5iz|vp(J4Hqu34|T$YfGG%Eg*(m@mVw5Q9EDFEFktgYK+4xU|>C~4)rrO zajUA;k@&5;DQ(`M&BNrawkgY0>Pmjs-LT(a5C8Ml%kwre!j^kOcJD<1+PL&p_x)gl zQ9-VbzWY-0Rxl7XmIqNSXZK=krS#8ltD`DryV|x}uOEz=1aJ2cG@=I)wS5Xx}QnA$pJ<`nV3C*0dET#spbPpiwZpUbK!BxA+p zma-kWxNh@018WZy>67ISgmvzhFIfO^aXevyOs=>PufLMi55CL6XYf9oDcgwcq=^V| z`&Q1IIAnac&GkoFzTC?y{^^Kb@%8WcgXt#b$qXyLd%*XoPJrz_M!6Z`yz?-{8T+@F zz2WAPcsEBr8x>~|iaWpC;EH;A0rviTSN;+cZ>e6$|JhCHBV^akD?nRjv?h*Z+@ogI zP!KO}Q{8pAXyDZz$P@h5Q4u&519D{85|lg2%>z1%vaEwt`1?Z>pXb;qlNZ2d zC$2AZDqn#w)ZVF*=vE9yA-5QL8J`197mZ*yl&iwJd|T_;->c>;Jvanu!3)`k=f|rk_(J zBO%KTA4zhMleVR<*d+6ni~i=W3`TDI^V}%^evDP?#iKLHZm8(veV%UuAu)z7*B_^o zMM+A2HJ6lF%X#QHmR9n-DR`-PdkxN&+<>=7$V!yxu2K*9iqKhU`SRL!Q_h9e8S*Ga zWiyp6B_@U?plW^#o)L0Ua;NFc$-9<_5*OXWYKW4;Qer$#krtJse&84jEFcK&9djNR z`Wz#GKtOBwmkZs)Xk|w0q$o*{V8&y3u?r|IpK|ce;%1=x-(Q14JtaeJ{SF34rD(p9>SO`9;|qmD&Hv}zw?Ps+@6<6l?6 z=;Agz=S@2UOm*cln=O2`Ur;RcR$!G~D1=|9cSTx&t6#o%!(v<%{CnAtF?!j;wK3;m zIZ0rRk28nzUx{%_0GS4!)~&E}!CABU^KFf*U1nAq33hgBUtg`IMiR#~6kmFuomk%} z%Itfx_zd72wT@A&)x>JI3vQj)YlGw+RLhi#H#@GmTGx#~US&}5y=+Z(LHf8AjhO^# z=0K!FA%LxiByq-!K4(jUr58kRxYdrX$b$tl_}Gtt{8tzIPh_b*^Kjv4R#?5}yF5tLX@c zW!q~Qzemd>Qo0pd0Z)HzV~KZ37_{npTz4KOuAGBzD86{S99;i2Jn)Ko&Ih6L=776C z4M$xst@m)&Aet^g(geE}9*pU3!{!E0deaMQ+!}VECm+9qq||4K0zoROnz4xa@qqdg zaX=CPRx`*@=|eShI5FG1!I$)g@r$q@bN%4Mx0K4aKOyjG;QGgQod5vM1C;FT(K1~I z5g@YMZq6`Ky*m1v$~iA`ESrIn;RmUKe-3vt>wQe9RG zFzXh$FYJNTN;d#FFU{dv3TVG&%;jhy0G?EXGTK+?92E`uhE6sIbn6=-zWg~)*_(NO z`mXcAeJ&R>(ervM)1@XY*GKEz_85@vpN(bp_tRspSn_Q1Q}}su>T6NGh(7C=$vluT zL$ti)YwmD7lwQoD?i_c3U{p%az8ry(e)|yY9(+79%tp}v`DYkYe-QZ^$zqCNj?5cI_Ayu<-OVdPZ&Cq&=) zZ8wp05nQ7jWOVjSmE`zA!7IooYA*9OxMp6ceavavrTD-lX;pimKY_TRw(T|YJwBGZ zDKoomada&c`{b{+8qJzR?7+>F*3+!$k5^|U5p<6k!qq|_b(D*?llj3xc%VJcJtcSx zH0bJD`)c7SsHOl>L#RJX2oQ&P>LOb?eGB|=RwCQ4i-Cd|wh?91B<_?# zcOS|)^oV6_k`W;Phn`(DK;P!ejP;K3==ls2Bkm+aO;o1OW>m};0Dov@rqNArn^AQC z2W!CN7<_S&%?nMuq1$hbN^vbO^S=)yX+CPkzVLYP6Ly3=B3;!jez#4WV?)-&&{Iw{ zdl-(mgVM!n=~Il8yzUOpx*aSD;YLT!Db;L059X41Jx#aQOi#z!=YH9M8UePHSmm}O z*14G65F}#a{D?1STC&i=DX#0Ji`)!o>IXOd4+7OOpZ+L;Rt)Y(^F8&=1sRf|l}z|_-B)UvqI9%b5f~hxCAJ z@g9BEOY*57#C zFHo8*oF&Zb`^8y?Y4L?61|~%#aGyi(Ed$iBt371lnHfQac?Fz4y6`RPg8RLo)+5P30- zmPOuZUL3#f_5dPM%9d6X!E6WycJgqv#WrH%EkmqLJV@!x>N-f6fqfo3qbmgxfJWV> zDH$t>Tvx(|w%pnP$i==)gh?4z>HhrYesuIgVuYQE0_iMt0!!|bDhgJKVRO$C{>ZJ` zaei!w8js((PL6D~8e*c9=kT+f2Peet3#J(7jfXvdn2e}poYKxd(_4_N@}t9eOz8Yk z{)ZqTZiR55ZrFGn5LJp9 z=s2AAJ5=ZQgS@-q2qPJ6SAP|E z^PjOR)N}P*ddbWT<=^~c2DW^dff>lmA(?`6*8La<*<(E&+i&=ag)WQ+4ZrI(+?aOC zzkCD<$`osg3E>y5GuHB3kEa0e6hx}veKN0pYd(L4bcu)7)lz1+*4q8xHn2oX0eroI z$N~IZp<)6Bl0D@RI!OgDTrTI4efnKhoSg;7Tnss5x9wGo8Iafp@84$|cT(4`(wkAd zxUUn9oo<>mN3CUSs$IlI@hD`#nc2% zu~}#q%v`Iq{Kz-+n9T~36S?a<+nW5nTzq|dmYQhE_E*}JC81fDn8QbyFt27E$9|Nw z^`gSmhU#YfZU};gis>LSPb}c-{0>f`bGnu4+r?Kc)3#KDLF6P(Vw=qmLHpni^8EhG z1+^k_-`_=?r^C|C0{Dxx{v4){#lYwz@qJS4;t~&>X2G^q<}F8+;=xR1V`0`}Udcq!UL|W7X%3Z{PoZBOmPk!0lq<%wiau3>R|K%SC>5 z^UYHZ=#O&qJ?(`fgkp=R3e%ABD*=l=V zM;6xJi8&`{ajiNQbO0!D@^^+Y)9dab&7s(vnbIEAmc*_d8P;Z0VV!Rk9gY`{8TE&8 z?HGj?9ILj35L=9@$Mkq3sWJZDk9Q>ok%HX_E0tE6m8o3!{WAX3E>J!M_9eq`dbW94 z3+0RSFxN=Xgv=fm7Q3F!na$qE3)KXuLh+IQI+2J@lg#2j#?M)sWT{>A^ULUW+|w0} zoQ?PYeAq7;)*6supQUmB*ZwDTW_J8|T!eoyPr^HCyE#i1Je~~}QfAfzEYNO{P3ixx zb&v^85*d}{s{g~b@T>vn8`iV6O#kpvrrJY{vPTjIEZhly?&QdXQGtloCmXb;`y9Q+ z?2ScGqCr9-S_}o2zdC2Zu^1k0+kxReepR+h@D^1Qp8~6{uJks%q!`%LLY$1nPxVY63IK8{FZ_CeYYoD zg0U8-a?^F;_WS0x2T#8jClIKD7bHnA&1JiwJ*jVEV&d;n>n$D)1=z@44&u8vDCv55 zaWB91Df^|oIT4CNZcH>XAlQ!JnzejY)B`HDA&8{kU(O9xe%wB_xte{V;?tO+lnU}< z#M(7;>d3DY%bqb(k6rBhr7(QwH&}-OTAI!hmhMypWJ)1UlQU6M51KN3H5-Pky`|#g z`|Hw@FSR;fLk9zbe8AHP%-LtHrCoE2jI^s6SR<+!_>f9s8`m}Dq3;IpXn%pR{0)d7 zsRLh6;K!R0G-w$tH)#WCS3u%RfM2Gt)0w@CvySXsxJ zeMIelQWu|}MP_D=o;$egMFE)+h|?UWusb2VzTf5ef5_aJC-p3Ee{dz_j-0Ad5)DiH#<(0TLdvYbHoLyLztBwvHHPtbQ~i5d;vn1$IpQSIxb z2)3m0S29s*JMa`@N59@qjDQe{N6usILeE8qg-)v7WKcqO2cc<-=$<~&z)z;RDQ=GKZ21{?vp|@6+qW0>h7}mM#&VTuJ95k_wJA#CS)7B+ z5NXLGc4in(ih|lBu`e;7Dtp_8F(Yib2ZZc}@fN!NX=j%NZK_EEl;H%$d%R;R$(K0L zZ;!%apeRG$PR&zNId8lqP!-^;11+f*dVgLfhYtp`04%v#mYzX7o;nG;b?bak!%%2K zuvZv;I|x3r)si6$Lsob4Hw==ZkV89ydZ4a|+1U^9h`J9fPNJM94N?F$6Rj&mM?=1r z*2#b}m`A2{)~{l1Q`-~XAGiU=250mL2$U)qO1*gO^P4MgbhG1;VQs=OZn zaTXuA$zG_Zp)4F5DFP~`o6LDV%fYabhGPtK0V2NGeh`AnP>VaEg|2A&pXMdrOTblO7wR(GN&HCr5&gEX(za`rB$UIjvz(Aykd zC4uo?NSdyV25L`g5Hr8qXc+N^OleE+mz>vwX1Nq|lExQtMJ%jZptKj337?^l`d33c z`u+q;E~G4zwu@XrpytJ+U`WTzRISpyRk4}e`zb+up94XY>*N#LQi}prjZz$^A9O$% zl(3uTsZ0VHQpY}iWul5L@l$(5v#NeB#RlJ&!UesBtL|)mIQXMh<(Si|yj%Mope)|_ zoOy_iOa#rKCDOLQ(%n8!(O=A=^>Y@pm5uMS;d(aHSPEBdZf&@vz`<<7+F5>=xxfy;R*eIwy(p%T&Bt8@88!(i=|WX~ zPngmKf9ISDIr!D>h;wnBT>+-tbUn1+L6esfVCgnTrtVAQmr2oUZsgEkyCp zrGvx{H-w{x1)XrUPhG;S_p3EEMWNed9xzpr)qHI~L3WuLlq^Z0rNggH*!1{6^3 zYG70-O6*sCzbg=X8{eTHNVXLR@M}7j@@L!3Goy0Mn20%T#ijT$ZdV^H|7{N$oS8+m zHdX9LIzgXR{RxrmW07}KQ0u>$DwXYW{@|USYgdQshzKMo>WnB|XoNy1gWq+W*gh?V~L>m2VZJSj1pv-g{B)!SU*b_=?N+f!168PK%XriHtUoK``9@Qd)qq!CD|$Q->>F?`(@|c z>?Zn#ZBzd1Gy5E0hN2NGS)aR?3mw*W5J8f~hkvoMDm*i>>eSsr>kL{#(g|Xt(N`qCR4Cu71kzqfmd7Ma8ames^=FvM4%s%V~8lzyT2?RCwJXjS2-Jg@q6D`4M&Xf zG?hz3Q~Yg>RQ}&+alrz^Y2M}bRimqAj?%CH-ZB@)4D8V8i>fkB5B!sP{JhkTHX>ofrP-Ao}OQReBg4uwV~%WLLbAk zoRu_0Hqa?^e1;I?HWiRU+I7?ow>Jwi7f*ms>1N&B0j|{0eUe^0eS?)SZY+@q|5YFc zoU~@f{_i$mL9dhb@HJI=iTZn&81f@z9nHMDS4519IgQ5{+v%qP=z9^fRVGTFdE0#8 zNwJAt&WaJEtLw97>9#om^76CUxK)19}eFfM$Hpn0zI+Og8>w6V8{Y zBr#Q_;>Py;2z@GdN>W_hc=`+8l5!FH2?(P6pG*)UDzzTj;oKxSxptc5KdaEz$`@eW zfs%MGoXo;%0w#&5Sc1v}cV0WKRD@-M<5x0?sVgs@Xa@P?=FUD=PU8VZEmP78y-~&0 z+oS*U?&v@dbTZ}xz)tX+P;90jM<)1h3^u*VRsU*My@gKfKsbD)V(Xe0H_cDwVo?Ke zOZ^JF&%$Rly*`oF`(~)K z9P-2DJS=bZbZ*%Y_yie6oTEbU-XlBU(`Y{tj^}6%=2gp>>Zv!CD3TIyo^n&ibsacE zBz;Ez(EqbdIO-$XKrZ1oF~u{e3JY9jm@korjS2qFE4;K3G_$2WYSm3(Jglj+bq~*9 zs(U=k5oW#S?DVD5xP&$hCXJI5MnxGC}{kDPIi!gccY#MyKA z3*qY@eovp~;K?fD_z!2oT4jF@2=Gz}ss=xb-V=OHnlbd^){TN3$>adn(k-MjLrt3M zN>&>DOlZLWDBQ|#XtxQ(QY|^=0}FkW zRtdW&*a{OrYnCZ`{G-gpBVnwk;woLN1Wk`Y#)-}N8_N5cPVtbdpJ!HVg~JPzE6SjU zuv=cRX!04~dHH*$p(^8CUp3-E`687u2Lgk`gd;C22p$*phCn_NB^+0;WLI+XrT7f) z%MACdi0itp-O6wnr(Hx}Pxb#Kiucq^&}JMeJVV!O;>zw#;ze(?noBWa zTs6(-VL8={t2Ki+ad7Z6D``Q0gfC;r!XuQ^n%Ifx`_Rv^jX%Rr|L6Rc;i4MPi9~Hn zEVQF-Ov9`mwqN^hrbuK`q^``Ei>a}97{D=5_br-TR=hH}J)7B+3wf}`g#fo&qkcBf zdN42>6wh?xoHjBc^zt7Np@X?Yyy*1Cx<1X>*R?bcjTeVIGh;MmW;hd+5L3JV<9~>a>SbC%6{t``GGy&R{G4f63=^A!Mv}NHaXSjWm-x9G7Wf`P`_yKI+u{Nz z5ML9djsZY{Xrx{t3;MLp8)Y9GGxm<;{>{}AEDHybP@R^*k13IfP$P1mGVJXBWQlkq z0zA(UaZ^zZC@JtLN}etK{?8xJ$VJh%{yEpHjM@~ss+q~c+h~4{^mVjqv(qC95$xmN zZ;N<4NiC}nmBm#3#XM|eu!vqUzTvb1x-KC&g*&z8v+mL=3I7gULOp4$_|L<+;jBab z|9#2Pha?3PI?>g%TPKF62C2DHGOn$!>?^Au8#|N$g{FesD2-p8qW6=(7(aB~wBh>= zyPC^a0>Zg896nbN6#G35G`c_>=)wxFg5%}HGNZ$&Jfe82Mage zp7zW~q;AlNd)4=NV9cqaBw4D6l(T?+t+3bS0=+YwAT+WB3l3FVHddP!{=kWIgqlt@ z$a!92qVRNNN}8@?gV~17lwS`YZY7*M1lw6=OhZ&ZjCkEz)4GMbN28y}j4TcMv4EvK zZrjW8%7JZlJ`xxv57Ls81Qi4G|F;Xk`lp|Kuy(*Zw4&I+fbNoFRlgnmn#|pNjmU9* zy|-dL-il=08rhR?RoN9`Kq2e_-!dHc5jA=I0o}wmMe_G4$m18zP$L0~c?`;6!I|@_ zs8S3I4%|F?r*{4gMXM6SXF`6HP~kcAT^lmg5&_lNTzOV|=|&vns6szYB`%NYoaK6b zPAbU=X@3{IRQCHS$q)e{0wS-#j*Q}T7eQ8X6v6ModN%YzSTUjn8P~NokAK1_v&9aQyTHB}MYD;{epP7%IJ-ap zm($Cn3d_u-*IHL-sDHlB@|for%tqh!uI>F~rmx4HT%dPq(k$M&(VmKE@O4nP<}i@? zBF}bL>6Cv)nBwE`qZ5@Zx$T>o_N=pC2WV>|V)&ciJNSkVhN91wBYfKRz}01fEf!e) z6jr|2wZ+T$+ssgv4kp(+T{G((5l$492$sN&pxEqE2Wel#V^#&#G~cp~y`qE~^_peh z={+<)e1y1UKvwo#sadQRb27pr>29u`L{u~@-oZk3N>*fQRh4ln9B zI56rJY_hiaC0Bdk6Xg% zQ7ocGArM}1j2;36izEt>o>x3rnq_4Sx^HW^+?w}tb1?8J)|ZkPmeVEWIE!4Jq%EMy zMI&qpk~q+R6OjTCpQcR6i!&;35>`?O2#THkV2ZwTSvAtT=qf@mDh?xz>yIwgW!moU zd4}8og?;@k?3mY??|R7=R{m8MvGY*nVO-HI4yK&o4;5`{rolUkV~HrOn@&my;hJni z&NbBA3~G9i@;$mo9O8)8l)bFz8%2SJn^KM*Bah!mnu}cUem79l>bma^lVx+ST&Z6p zE8|=$Oec{sa4MhmB3FO4!Yi;G1ErffB#_%Jm=&rkNrv94{)}hZN-Altf#m5)biDrd zt82YHm$v%l(KL&@bnF-#s!yZyQpj88$MtkF(I4FxLP?Cs5Vdd2aBlx#?934asrA7E zQ5Q_rweB}EB}Wu#+4I1-zr+_EAcbU46~#0J`x*ttKMNj+9l}{Y#s4JgW}6ZYs;H`F z`wUKics8JrJS6(k`p1Y9>d;Ht887sm*$NvM2&brnLLBDzp})x|*wdeo7&{IFW4=&w zJ-L~a*XN3NhHlT!wpWK;XZ-qE*m~^J3WvW+!IK!8|0IkoI&Uh)JAN-;rFr)2bW)Jd z7B6qYAbGv6n!ooez$OeC>pdz?Bb2Y^$BN=sh$(5@{GweHD8bEPQbU3^7^RF16^@iX z=%AVoHZ4-QM1wQk2>TVsjpTGB6KC4uU1AzxxE(u7p<(T9$Hslc&+=lXeqit(Xn4>I zDN-Kk*E?q&c1PJYBIhn`;fcC<&xH-~Z0#pIXGp8f&Hz6;hPH#N74GP`R}I)$2o>8S zkGun22`Dk(cfCLC>BkXdKJQlwys$aPB*N3>plD z!pF{Om)hx{*FCyvQM$rgALt)O{is;m>Lq=$Hd`6M3Emf z(0nPbs%(Sy;g)L;CFR0lE+o@d_ha zzxps`-M}ubsY}I7TAHyHqmngW7n79`TqKH0VC`FtqmPH^RGbf?{C3+1}tN_XP6pL@*4DfhC_o? z$MLHxfjE7bi^5MB&~7oe)NQ)WQ-H!|0(!N{)l)Y;a>GmlOG$HQ%(DD1!U5{w1t{8= z)xsg2u$Pq0NH{i){zOpeC)vxnG@;qu@R0u8)e7#a_c}E&0kC2D4O=}?K16J=yi)m} zLPS1uA$%z?d!~WmEefiDxd2$eRlrBwD<5Wd#ET_T?F7T|cO_@x`|f{Lk9Gy3@}^fu z$C%3rPytDvn)VveaU!nX<#YQriD3mVbCW;Va+ibV_BgzX4li}$w|9us3qL&V+tr>} zvx^}MckHb{HiT)oB%hAs#M82UuI9um(d5QH3*hdb$v)pfv>*kB*^8xZ>wek4vaYHw zVlJ+)L=CDWZ5y$FI80-MI1cIS^|Zp8o4BeA_9G#09XeM`C2crTUjgE0!4zf(pFss&IGy z_d5_I)LP;Oodx+6Zabv0CgLusM1+GUV<#Y4k4>bp zMWrlOs5Ea?v0{kp7;rj%3X2N7)BTTCm;#WUUO7%R|C%U+{(Aj0iY-r>0wq-mYj}(! za$J=_8gm}U0ly4iFZ{;zl@d*~J?=53k?TVrr+Tg-s+)on`4n@BqfBpL)9xDua z5OlpDy}E9aUNv$|AfR6o7F)!P_?H2acizc^@@mD@x>S`A1a(1^QuM^lCFvPliOIA( zGsceUrejg~{NP*9B8{17b!dz2)!TrFHHoE>G+HoJk~pe_noX*B5Q0eu5NM zurj~fpB-067U`>0oWP3F7W_BDy(4$ zuwY3JcHR3HnhG2I_hNw-ZisE)@Y`{UnY56`hYuK-o5C52q5|oIzj&Ick=J_}Vi1B# zwOy;Fky7&Cd~mkQD*HFkiJlMHa3UVLG21NMp!5XIK<77%a5wgk*f>x2L1b)jB(c}O zJ6&3vrg*=lHRD7~Jlf`@hye(`fezrWs{Cdq;9^5yzhjzvxr8dqI8fZU6~eq$kJ(3- zahD$gE0^ck@6Up^ES!`-eE3i`HKVe#!09@9(P-ak_-;f}=p%N*w(uPYZ|ty(5&Kzv zVa{{0Mmj3dskGqgU(nXhC;XXlU{4)7Cdp38{CvN7B-Bpk_8*S%enIs3pEv-Z8-T$R9h+zfaJ=rv?AGVier} zDy!^<5aKtdE)D&UoCuY$7q6@ckqHFHN#P9?zJ>RlqP)@kewH%j;3`XaWtk<*c~Iux zB47|bOTkIoNN?@0AJ4gb_{&HKVTl+dmE##VSDS0$^Wl6Xd;Aw)!gNucm$kJt0|Ud( z$=?Q5RaJ^+$8{WnB1%e1YEI7igo47g?05Ks19SRnc6H3btUB{$k9^W!1^)?yqP~ea zAqb$0z147AwP!2f`Xn3sG2Q%SH8eTGmJhS;O74C&<#W}lD^V6%nFZwM8h@pnj_Vu} zA+=2nKQrM?Z|fptWI#^RCakC2`N=FJO^tQ%M8Uk-jF?E{F6mOS@>!kqzKRAC&+Pro z3ezMB7});OAx9y7`Jc-G4PD0RdF`9C((^Wu8WdW`G?sXE&U#lOS4F7U^cI-0)^84H z9c!3`!QinRQG&^jnc_xhYdqRecBY~Oi_oX+Mv{y2?d{43f@V+e6aEA^Bm#gL-+Xp> zuRdoqXVMQGq7a2oJT|+RjHa*9mF8R(Y;IiUC4Qpj7DV@2B+*tsrvYd&&CT~i@I;{e z$AX4SPIh(*dwYAxj{AaNkhLm$t*(d3sTmn^IyzZwpZSG_4I$i&Vj7kVEApL<^fK;D36SbxMc_}PKXWr105N=l2LG{0JUCt2YpxJD=!2UzOc+@QWjQKhGl2BF=)#jceR#ie{9@n zF`It3SC_^Szg2;3n96j2f4|G^k;WtB(JTQk$Xj!z?d?7_8*}cEz}1rgC{(S-P&7Kv zaK&4vz9u>yO-LWs9FUREB={N^q(=oW4wIp67GgG#m#a+_LKH)k^8an6mFONFZ#1rD zLvb_lHxrwDsyZe`olOV=10@2(lXFASAMZXX51A%T^V(BrL>};i%Mlb8DQO0O#{S2$ zAQM1?#0r?sK}Vgy;^&QaP8iVeVl%a@dk5q%i|SE@Wu8Og6eblV_dsS)+G9~dn%mgV zr!L9hwXKbF=;M~oGHe28E?RSiMKI4qVAC9GB8ODd$7K=!<(Dh}o5(He{73Sow86dGlBdUo}rR?}a zSUqZl{wJA`nbl4@RryDM)@a(2A)ne`Gx=kC-P-?&Y{tUmqTAOw`+7{ngmYdQ5HPJ* zKt|Y5ygyfMZM263bIe}6bI5h6$-uxLn)QqAz;TUt&Ths#Cv}lMI#7hHaDL_O0_*jK zB-3hBLNX(l?i|K14Bz6T&_G5A|6@dg6=HD_gmbV$Wa?!ghxcNve6%^l$KHzqCe?`H z1py~NCikyKpRiXhccH{-NF|V@y-$g2Dq6pl!NI}x9Qz@;B>DdIo&5DHv7P)t{D%B_H}APcy!-?Gp>xdKQ`BFxgBMev!xJ2Md=MQF<44(VP}zb*)hre z{?b)Vw-z46i+*zXAO07jl;}-DxB}ySJ#R!MSjE`?gCem`q@72m?widZ7{{>q**{E_ zoUV;9$+4r-M?xOv^zcH-Zw#HN=i}yvD6RPao`M8j*7Y#aYT3HROIEVa4Jh+jsT0&S zTum(k*B}|kG|J=LkiQmsIUalt4BGr-+GTx|ez;KxKBFM!jX7z8#r^wwbjl(M_kbbd z-mV9!Ss;U}uc~kzzq_8LzcDbzq0fEpb<+HkMQRq85g_y%PFAo1vFBcHi5Y%68Vmg8 zJgd;}?nLMDcdfsLr2JA%Ikfj`o112;s~YB0)yxdH^^F=Jvl($3(Qki}*bDMJ0%YMK zqo$&VRUYc6Pw9TocO!SF%hVzw0SmD+{n8>%nCcd>k-#+34)N{?J|6h_!fy?nlJ=MB z+ju4l)Z#Nf8m&@EX?ahSToktw<~2ZxM-Acw8qA7|{AoB$BdK~QQiA|yXfl(2l|Z4w*r zqM<*<2!l)l9T#bMkucru7|6O?kY}CReu2(&t4V1w+U!vhNWnSV-8<8M%>WZS9gT`s zA4_L30Sj{DKyPic*KX<;NFIU^|AR5OyL%HkpCL_r9v-c?m#KgHpNM$LG&D43|NP-~ zn4XQaHWGrb)&g9hK&v|b+rsVsad7)6B9JuFqcUMGTv1W+!=(?hMlvPEOj1gK;kept zK>(GW%^#j%XU(KRTBGT8SU{DT)zIVW&HMY5?o^*dAfel2tIAjCzK#l-zRa)>b|=W2 zFWAG61a9L9n=AU7nl!XZ`KiZ?wPUO89@G$>O&#~)D@eik4QS9PuzF^3NK{~0vjMt z&&q2D3N}$JjEd{1I+j63rtngg99>5tdIzd$DSZYpG4&SKq>2hUFUZ@&7Uyf7-!}4Z zc5Wgl*t!8f@V~_q@ol+F2?z*;HLi|~jNl*#FJreji%CK%bP0mkvV4>6@9ukp+UE+t z)dOWp%94g3zD#NRvzMkYCduBKR`qRfGl))NUj3kiiIx3 z6AMt$(14<&qpA1_W)>sk)!+G`u&|z<9`mxWiwmdCf9@tGU(@FD0CVQN4+q5wp^wG( zD2N?$AnoK)0cvVVRW&s~mu+#Uhc?|g#&X8?xa0ljD_gx}YTh0MR^e?!>)xFnjkRVKOCabO&14oeOvFKfcX2Y@O|7>q#YYQH6GIll7m4+lb98{R` zK_6U2-tx2Tsn%9D8sU%oc`b+H@hiV``Es;6myHOFPaNvsr1}QYkX-qTS@slwb~@I_wo_|f zVH7>UL&}ums~g%U<6*`&b0wAB9hz`O=0YhfXb~|{51{`Q+3O|ur!-e-+x3d1cbdku z4~F?0I|Ho-R!|m24`TI8iIbOuUofOytRszfF8d^PHlmlYw4>x+syphewYw?=X)#;j zSHZxz+O@~zrE9_MA;WNI8}cU;33@8uov*WUg0BC0L$++ClgCWb z-wW8Z9UmW;*4NKkg&)j@`?sP*n|tJTL!?k`R3HY0zrOfp$UjME3itQ4pQcDP2`5^K ziiy6rMw!&}dANgZE(7W+D`nPvuNB7l%w4hO{litTk#8TZyWc_EGvW>EYQ{g&oiT_= z!0&?|8p81+_&Ax0k!3&@LU)na#J$CfqIZ-UE$32j6@ILik|_M%8l$%{Gzsw9clrLZ zyEg8X^2w}iUjpar)s>5lgG1Aw0SpWb^V6lD7ytlp)x!Io^NvW zGcDT1hK5w{*2D=`AM z8-0!H`v*=p8@QfR5@D{cuAZHqW-|=M>QS$H{JgYzC5FLM_Re&pq$B<7A0-6 zA>$LhCu)+iS0Mc`9ayyvo<+4hf33^^@a!;U;g03-=xor^L%palS3yn&^4gg;QbB+2 z5Rn{_+Db)2ALUA#Q&sx>?I^ovEbVwQ2i!jd$O95;joE2Id{7s+Cf) zZA^YG9{Yv0Otz|B-VFh2__B2cN{Sm0z>c*yH}~YV9u-v7LvmkSItGR$rk+~lMdRmi zdr0nMShGtUf87#svw15yaHI7+ewX65l=6YaDVPUxh6+9J7mPh#?=$0&6Mk0)fx^?4 zzT6)D7Pir1d~XAW1@$~0Ikch@H^?L+ozwC0OXusx-8W|7OFuXiVWQu^tUUY3+1;{; zb*_ki_YH%BY*LQPymsWKCK7Ye%a9rqy4eh|Jq0POI~-7#t}a3XX;2G=)bL0RP*OQXVUY#9osW7J&<)_i?s+Gu0i=UXeg1ueYc*VF zWoDag!B9Q%^X(MZECG@68&PH$Y?kh02MvacTGJh5HQ8el6qYZ;IjhMQb73FG#l>v{ z82$YG`lQhuk@r{h;$U510W%-q&=&-AU}Vp%7HPcgCy5CN($V5`(-Y7F$YGUfmWo_q zemsxL%O!Qc%xO_G^NrX~ZES7==)3h8MgHBAmY@!4<(RV5(J6mSw-^a{8WS11_H4nb zsdh|9`&5uzfAs~w{oMDp*9te-3J(K=D(ccXIX|Du>+hkeevAI+U|IoOUT;mi{W&wM zoxM{A{2=l_SwHd$dqk0tQJa=z6r(e+#~Nan>wfDkPBUf5jqQ9Hv9GMMPZZnmAx+Iq z?}G{ZqX>mU*c;S~K}bxUvw%I?pd>_tml@94vx|Q zK}xzqx;uyN?vnn-=Uv|)U=6d*oY?oZ_kK%fMC1&*^i%lhNieGqeztLZ^*IU*E|xna}*O!#WAFsx=%AMyOd3cZ`GPDQF6IT8g_3(ySLyzDodC4F_mQ`3Dr6x zYEK8CpWW&VZ4_`oJ#{9i$0j0*=92s|HxAjtb(m(KKn1X}epa_n(zLx=gS2|?z~F4$ zvsq4Ijyo|o?5)0g|M7ha)3N%{^#p&&9ag(lk^^^5*nWSOMYGB(!nLO|Qh(STD&@QjL{T}!#HD)PWCYbppQx_#H}XvK;K(MMih<~M{+E1u^4-_z274y5Z> zB6~l^#*wmuGQ3h+iGluVRAl6&rZlOcVX63H(shb5b!IZ5{YVyKAvrQn7W5~z(dL!y z7OYBCOLWa>HhhG6C{WY2j&ZSO*S{V&^_0#5UrEuui^y*;iQBRh_P$L~nd8zJ zhJ^dr2e3aKgnzs`ihN?~Iq3yecDQ|oc|P1X-|atbRnAj?dPFpA!~a3?xY_@fjUF=? zuZ(9{f`B%QAx9<4XnyoX&4dg0_RqHj8k*kWyRqY)E^Oe>cMf*Froe#-o%oIbVULY& z2%tLK|0`ivV1+ApMc~$BSN=?cGSY6Z_BlyPq`JL~{o79zQ34>h#BS)dm$l`2oR!#S zPP2n9c%@bq?6HN3zYELOlR4E$r0f1~gVD0yQNj zWFoSBh}Ln&|93UsjEZCSyXNuB53vA_-V{@Ae1v~|dfIKjUrRI|h|zqD<>chUdY$-w zAa(_<3mFRjh_{ou{#?YU-7sqWr8xgiE;c^nlF>-u^$&_evYCEy^`=h*QwRh zlABTX3xHfM?CiqABMg@0f)9PB_%Vr$`E{DM`pJ(NXr_fc^g&AV*oB4lvL(btKeEtZ zB^AM`qM?f2e=3nMttMLlIT=4S{YrGuH3-SGJ_cUCMn{GxL|dy5Mfsmc=iB*O-VH47&&Me6d31=~3A9LeJPgCU=XS6Feb2r$1YCCdv(0g{QYTL~H)%w4 z@u5GAE{E(;E_ODsxOH@}o%yGJxbk~?xnEC}O=Z@M5|&HO{U1gk09zdA)=2n}tJ{9; zPD0nbK*e(Ny5(MVcx{1EpH=yrC7YJBDaHt_p&7@}>SmkaK78;rrJTC+AuHO;3yGQ_ z^$=N2cZHVoD-vRew5(V0^I5y%?r7h1D5!SId&C1nVG2e#4T)+4Ih$tU#82!BRGS4T zz3ssqNp#Jl>S5|(T^<^e3*=}>U+X0;e{(CvX?W+QqHA@!gC;d8&q=Z&njipb~i$KfpjNyrM_M*;qbFr~J@Ga{|AO zNvM78i!}$;7v2>YldO>s_5a4Tj9Ty~`MegrW+tgT!JxC!D^juC7B#UN-6E337(O@K z6gSZ6R9a@l7&%qQNpSxR2VT{X?8KSNGRErr$3u|1ogAA8Xq)Wg7gv*6^?S$HVfjr& zPk`vD`+CQUP>sFO5&*IAQ?_)S#n!R-PA4Ho&y12*pY)Zd1fodMf0x|mcX||*PXu4mjmB^3vzO{c88ohOGu|ACu?HPvUEPz+zOo>0ra!> zTbn-iclI;_Dh@Ofxn1!ba){1c#7#Us*)wviRCf8lIpyns*BWPRMLDYl9q)#5s5s9# z5D`~tpO?O)uF|%CEJ`?|yS{c#>ne}LP{+i|aJ#|G{4Cf8+K{yF+G0f~Kab48EUK5*TAKEj}Zt#q-{wlLvs((qyDKokFGC{r=Z za`T}eAL+p}H|GlVxwkvcwR97I{YdC7kv=9{Z?eeFW+w4jJ=h{q33*H7V-l@f@M)XJiV@du4vP~wGs{PYYY6g_VKdcUp^p80R zemZ%s+5b}C?o{l90hX<_kCo^iZNgZJUYWenf%3`T0be<(U*W8`cg>7DQKDK%)9SND zoe(6BnMRC0WAO?9kGgcggR$Ex<;{_zk+M36DjjZR84ccil!n8Yn5*ymniz7C*k;gJ z6~CZPui;3%t6&*Vbrbx%VpzYssKVV?C##^AQT@jrV|b%=&SiRPj;l~%FKjJL{zj~4 zw`;N_9n(|B79IUU^Y)K}*OOf|wBqY8&%?-h2mLa4Mf!IL(dndto%MdG-*e5$N{jDz zU@?a7+~h3EZi8m;YC+^>AmUo(nczc@IgQEb5pK$l^^T}2UyzMsly2F1B3hIzJxURF zjBbo!%&tg5|3z{fy&qJgsj-@)XUJn06eOM6LKnEDsrmHxmk(4O`vy-+Z%cq+$ssZW z6NEwubUle{&T7ogkv8>?!`aMUrQkD zb*iyi^Cq~IePE=wT5kTcIizybuw9hnUCFtn#=|)bZ9w#+SoeDISh_win{-j+CXFH= zxTMYQH>1T~et3I5M17bM@-&nI-l8&n*VFu{hH{;?j@{Zr0bu22?1V|SP%w+I(b7KQ z+_Kqn0ekPW+iB~e95f@vq1mFyInO9IjFxGw^HJ`f-3;b47ztQHwyiCLe7B={%4sc@ z0qN(k;}e`R3$wEt=Pb|1}@X=$A z;zCQ?3QksDkW1w#942fhv^+c&W8NW4T2>&XTPF8D0m{gdJhDZj=# z(J#|{z&+8_)Wk;jxXA{cC1?0rp6~B@dm?-$$_sFySqlu0PfTtjb=ew;goA_qf+w+8 z;69KP8^zDuuFJ;MSLh>Df>GI|z0Z1;hN(%k@M%eRix95$Bk^lNs0+xtxb5YS673L) z_=!hj_M7{CE#0ZJ%PlN};EuYMSCa#M^RX9fD*$$tl z9cXlChj^w?e1*RRJz?oG1k$$77D%{^=^;~?HDN!roD)InI;% zy`58bM9-eh5FukZu z4^q&z9D0wI-X3PkbA`WN-gG?QWdxxs@^|=5P&y=4B|M)PzV+ahd98K56blGg#O(SXr`OLI&boHOwjOD<{;AD zWjxDHpE;?Uipg;GrRSM-p37<{=FB|p9>n3;NIHBFAfY%laP#av6{Kne<3hsq5%F8Gv@FTrQ*s54>4cuW!h^+ zIB2sF5fa9wHqG3D<^`X=+InMq1wPtwP#IGvCCB3Q{W0Bs)#msh$_O6fKW@TZp02|7yAq2ue0lT{E8*Jbgw%1(t zCB4%Q=b`UWvgI6VjET>?dgeP3)hQoz{J%ED5 zmhX|hWXSLay|2z9`3kscot1%KqAW}HWGtFC$!6wGAoa4`b}JU`=#*4cg?V{K!%qg4 zkEN&du&)vCvV{fTo$q{hli<=srJM9%iN1OPLEGpbD2`+d~+CMZNtr)r3ncq z8PgfoG~5Ja?Jb+_r0;pn$6t_+>$Wi?jMNmCkS{33(+wC^Ppn@L znw61^JNoE1%s|$5XQ$doK(9-(g;=5OmsHCOilxwqt4iZF_hYIPTO=A%u-m$E51c7< zgu@prU?-Y-d~0C45SKK6uWiXTh+LM3{1*K^|=dqPMRXs{rA4m zfS2NPKb~ib)SGn0j_Mj6AHTD*tB~aqn4bPfm2(^gmqPjM*!G6Cp|j0EF?LzWbeu() zSG8JMhf*so9YfVbeP?arj52(y7OCaD<>+h9dDAi%-0z(K-jVHU7EJPqiI-<53MU`Q zlL3V|C#Q`Ts!M_JVI;IppduePw;0gM9A`>WzM^8LL3Fp%2WZ$eEddu!;jJRZckbnk8v{55EnD*b6Usla!lq2)oRCB3-HlP-IOTxYd&Vmbwwc5LXNv@imiBg^58Gk2 zfHsddY|g0tuOkA8#^7*%7^KA}hjlU0WypTk)1S>5G}I|vDO)AwbsGZlbU|al=E`E& z4MDQ%Em~xSRyw-4Q(b&OoUKyz3*_TdMGNnKjG_KqG_nR^iyu--O!(Ab1L7gC%g&8B z-*3OvcqmdEV7g?veL5Lnlhm(K*VC41|NNS7xxCb3dD}#hfp}*S)%ew2X^L0g^eN@G zEQqr#e(;HynAn2N6~$;xxAoUIU-*dgPqYst(xRYD@fi}b{e$xRST=f3C@Mum-N{T9;+0YU0uZk6Xl!}Oq{KCXE_R_!Fw57bWNCIuWOOJF@ zl_*%q&$V6s!Z27osCzPqF($C&!b@?x%>j!xSy|9rA$s5~-p}eKEi2s(=3322JegQ} z+smM5pfa82AAD#)S322eUVqoRfXM(0c?FE8HlEK)J*;XOi*n|7+g<~z8tZ$qrtLfK zOSfHF_3YHuWNl7vLM+aLV~t-~#FPGd<3SRzH*YR@rz1NY8Xojsf6PPGC%=~>BfWp_&;(~mz;q9qR_(Wt@ zePR;6bv<+|dGA?MbNNW)TWwE+dt-mop(s(XfweR_c+*POv%><(#M%{)lDq=5fZ!zXWy015Hi=sdg^zHo- z4rV;C=pj2lFOM;htEzgeR3&T1f-h4<+?^xKG^4dxf`#u0X$Bi7kQ8SoS@8=EhpG{# za;HzqORGz(40O^nl4?q&-o?Mh>3q!C_Q(@0EY=wF!wIHrg!YRHsWqZ# z=jx-w;#$ryQa|min{<-(3OZQc=>16Jkq8D_g`TF04hiZ4brK!q9BsY?Zh2onCZ`wz zshBk9dzPXPC2X!MDr$4nQWt_khUZbsb|#ByY(r^$61G~&Y`%DtMnS-+xq4rC1Xb)P zr<>RNNK-+MsEd-2uN*lCqWisvXFxtaO>SF=Nj1e}xY9r6-3$+A&u6bSHpdxplPr3Y zQv$Sx+UFJHr3HxW?du!5+=dq8l|QT%h-%MpV4i42Jm|26Otdbx%i@0x)LHh1P4b9iozd zwICLsvd*ay-F3~>i>6dj6*K3J?zA)RZ`j~NjtRAh0V{k6{R1>V45FF430Yt)+0yie zlV^>_cL~|C#&>G#7#-%mKviG&Aph7#9@1NR7CkZKq}e-xs8MzYtcftxYW^R2qN-C( zVIhNA>-6)GglPH4qAc3{4(EXGC$%2`xCq7nnc&rt9XN)(wHGRNGjZDcL{Rg{WaC0+*X~)t$_~ZKC=Zx7av9J(tsv#GtMoDXg?Koz4e2E07*FqQt>m8i-)* zSjvhhLzu=Es~V&~9w0aq4}Ay^LyY!9T~|W#t%*st2`PkFWcB}3K{k^cfq{;H7={YqRJh{kl-f0 z9QkI45Trp?^`uXBe2=Zae)t>{<0HU@Z_j?Nti12{ctxM_FO;yb|5@rn3wuV@)plY+ z?G7a|E1pkSI{xPIKOW?(9iadsCN-mM^q?3^Y9JE2Rt~myuIS?Faw84t)sb6~2>ESw znKN921c8l+fWF4X&h3xWHXcDLsvc8uy$0n0<}-U1y>`=Coc-m^%~C|UX{UXYB55tF zJSBk{+~E+8IawrEpecqiCpXDJtKrvsG4^Vt>;@8Ew7YvM-Q+}9d{m#iZmwo;+aq^+ zz4%B@GVxCg;WR!sclDo^&E&#ZKdg)4*SR6wVb$3EqJ@3+_dj2&d-ac5>nSJi3hu66 zRtA~!TJhsNxPBCt6}GZF!G=Nsn&SQ*e54E!iD4KVS~$%3fXDu*gFW+Gi8?mu%qPta znU&>+Cdb=IDP;*IV&#D2$QUYfC?sc`ts(EP)Vg^Vcy-l_WUZau%&)=}{$agz>~YW0wd7f#!;2lMqxgp0hK~1B%`*%_hvh0x`Q1vmYF5Y+7E3^QUdEFx@?+Xj zed?+Baco+*J93ea$L|#T=3{D`i;?batV3gTp<}?Xy9kigY|diN(+qyP=mri(FxwGo z8+F6sk(Zix7*0_T5j62y^&lO%Dlr~a37NZw@-@FNFbtA7K>VFI)3RzYu7o)x?X~WV zq$hH%Zs%ZU@KZ7r(9Bu=+jZf?r)0N>OdPyX1m!|%6RsRze&Hs36s@MpHGDX_t#NDt zNt(LbylYP8TTgHt(Mz+V#PeI>@f5vss$o=PH9sLXA>Yp#;{o|@ll5o)1}z0PVO?lQHpN|Rep2m2cQ?%F0>&<6rZTE^*!T7z`^!m;fq3PDFf%(QB8eDQLvV%JBnXgqUqs>QqSTQ;V&)w6 z!HWJOe`EJdu1y$b#8t|2?^kwuhCW;ooBQw6!=%^ovt{i8zB^t-zE8UE2RH|~2b%tu zb}%+Jw%tr;Yth@^Pl=Qd5-qC8Y7`_uSY3gm-`1jtn=v8Y&=D6~ED&|d8Rt6qqFs(~+p{fS?lVb?=^2+)>WMW494-Op zfx9hB77=0Q@>e$j0cNHOlIf843jriFqY+STlx6ejvfEAOHTgYQE`3ufP2>kCx7f&< z=3?YV>F)M29bgqYPzjwGksyKSuT83S4_9wPeLDFcURdb?8cx__H^XwL(<{KJ{WIw@ z&k9ObAqH>(?@}@Z#e(|xTKrhEQVl;r=B~JZ^xD?57&(4O6ivkT z?*rG>PRw!~nIpu4c?XJ<773lzneX3R@eu)7E#?nAw;moISF_5Bn*A2` zYu9~8f)ss;Wj~e1n>Q(BcjJHH+k7=QpD#3`B5|IIdUg3+0MqJxnj#8d*M0y@hUsSp3uAxq~+anylG){th|khaZyoB}DeG`OHUW*Fx{@ z8Dku49A`W=$GQW(xb5LXL&*N4>~UA|n03-j!Wy!&udbPfCznKui{PeY!$Mq>_rWiQ zIGp$RwYaEb-05%4??BA?o~OYI`dlvZYGA1+P{aB?D@#tRlh1J0$aTTtuiM@^+-#|_3W{=3eqBX8^h%%{O@il% z!>(+x9W0!Zochm^AKJCC@iU9xK!qE6Qct`k*P9*=Q zavKWO>P3mQo0extaX@eZug@LjfV&eIQ;Y-X=c&r>6aO$F#7vPE1I^np78b zzM#Y^z}9U*IV8ZsGDErXQar^8EiSfTeFO!2IPbmBkAr%PwH67fA{l3UU&sSf)o$ zoV9i6@dqzMV8NE_EL!xvk56Ft@xwxJ2m7zKqDswi9opoamm`u=nAK(~!-D(QRqf9x zGB?d}y@TXKvdGC6-{xAd==&zr?uO(3cuuS8{`VYvCJLbV#=Csi+@^fSVr0~oNIgW_ z{JQDov{{)hYDItd31Mgx>#S#G^6q71NCx+nFM*<5y=lUQ^ZYmeKHhlaXrv8`W$F78 z9#p#2ERK*x{p}++{WpJS3Z7aj>Y8`FV*>$ysMvgeDXpru-|gF;vbr_3PX@43GTO)h z;Y53!c6vQZoiR|`J#?#g;rAkc8_~jqwxrw++U4Sa!u;DL0B#-W7F9Vtg zn}udRIjtnKn$JTiWu;V@^wf8!JR(En3xJ=W5>?(d zY|W~^b2MUbtA93gdUctmu<=ZT^yKdL`w&#MQ(5~)TbnJrUd5{u#+PbbUGJv?c`7Py+=cE<`x?-{^Y8Rx6ofC~6mUIB5sy#cA9nXDy3j}jTJs)+5O~fvjWEXelko(R!2Y=_xp zO^sDMPD;vIgf7$>==r?WCf?0yD!8!lw-ZG%f^V&5`UC+OKS~bd4SXuteuq07km*D_ zv26xmaYv403%0maxMEVVw%V_XqtvZEs=${p^1C%kp4_!6f83IK$1QPOLp2+>k3k~9 zi-*kLLMb8Gv1Vs7x!Ilf$%Da|-RyNZ`#>CU=}R!x-nK+!3-3QmomgdKz zqbD$Vtc}Q@mNPwVb7GiKSn&z*DBG#3EaymY-h>tI$jhe_-l{AtQr4r&s})qe1aB^~ z+OIc3UVkrlhOY^R26Cw$CxFb8(NZIsOXGMh%r zU;Jf7v~y8?t#Dk3^ms->lm*Ti!zPYQwSEf9ym+q+?qPO_0+pNhf8pb=Li+cgbYhlN zRAl#ZcDEKzd)=R{3M%;mMQahQ-?YAgTCp>t5W{Fx3P8nQ*bBAN~TZS9M0!<#lMcfL_Nxgjs=?jj%fd^Lui zrIs3aU@eKWt-$gdXlNbESEXBzZDyWiu8Jzp)%B?TGn#TD7gy_$sW{*%BH~c>j|iUi`>q_0-Q4aMqeXpxutuQm0vo8OT$W z9Yo;g&_UwZ_2HBMAcRZ&0gL3+gOhXrj}ot(BkA+0SLo(nF4jUa{;t<+`ywOjV%#W- znMQ1mVBK;*gKvV5H+6kST-82DEMRZ%Rvg?N1xK7r4Ld;}^SD*C6UX(=d1flaLm3ve zTNwp!T9m1eJ(Getzvnwf$>7cGaMOkEe+p>+M2^yk5aEE}c<$|e4x(U>)OLaTj?XX+ z3RHzEaa;*JThV{ z&R8{5Q1E%F);#vs=Q+st-`z=5(!alNxzT<^(f0})pMb#UW|EbdfPk*5{Vv01t&IS) zWNlsNTaJ5u!@5NxHYqXrC~g{J#$+>w#Maqb^HeTH#tQ}05_C}&Pa4g0PhzaH7mk#( z@CfMERA0KO<0nJKFsf6M`1x8wu^Yg0lW*B~L4GH~*~}Q8gDB$V2E$}WP$DEClC*sj z2=Lk=rYtG4rlF;stZ-eVi1~9Iw)1-OSJTqU)@@O8?*&rtlFg{k4Ki-&i7Em;Gdwo%B`3Nu@4~c6@ zJ3&D;cysy^Rjvy+AL`yyCscWqIrLzgsW!qjYJC@CF|Ybj>kvwPD5Fe8oe8)dhV<;! z%zXdCLj(6jdVhCzPqu<2JBqxwVmJHr4yWM0u&hk7a^SDGjMO@2BI5;mR@V z&x1(TLT-=UHHN}435ob253W*nJbVg3_UiFShsVdeI~Cq{P4`(e^SSH)eyKv3Ket`H zyjpddolKt*550Rh2^iEXiG}tmSVX0s+zaO&j}V`@rNXmtNazDNl*X6T_x9|+Tg>3w z+J~8OWu=Z&K;JZ?ocr36bt|Re;R%`9XPkW@wP%i`&_(d%MB4j`am}KsV5d4iXz%-0 zUFYg-G{HL;kR4;TbXb~@o^eusL^p8w?!}?Q6lkJ+SPgl2$));^PQxsD>d>B&ole>J z(7b&c@3CVipYQE{bMu#NIrVRv1yr?CjBF&>wYh!TO5`vXQ3)&m0siY0eO&ET(V_lt zCN1O4nzrdZMOC4Uc_9F0%kBjFAwS^Yd2>_)xC>E}6sT*cslMm+@ZXnkTgs07%X&N+ zj*TByBg`xA%=6m;&$^+>;?X{CnSXr)UGK?zoVVYXOYI+OV_8~SR==K%^bHJ*^hXm_ z1b4phLHRXW*xJB%sQ%8M9xh}3_{F8ivnE?zPp`r;Gu+ezOUn1wFjHeV7)KsbuFrJd zm-08-YEiviou6w-C_njrqY(7Zg51zIzUSFPjUKz$0B5jM;5h3ME#N{TT5dH}muaE6 z_S-7ECpraX8B(1^k3tETEiMwd-%iVxw};b&>oP@Z4)j-m)qzBMNqt(5Q1}aY`YrqG z(WJ6D%gE(SA{CBJwh5=3mC+CH{abUJ(7isI0TXGT99dCL)DOhR#MdJjONIZ~!bmt6 zfEoKL!i=6nN8z`4=@iV$fWr$eZIL@f!rV|)4XHF5hk>glbMo}CzDKU$pP`5XJXb_B z@A#DnGqej)A}k4UsrS6h&~~OXO|c_m{MK76&FWU*SocUJ)&{J3Mk>q~=Vn-guViq0?%>@H2kM3LKKmQ&nZoqwTxv zmriJq|L%0M_SNbFx(p$$cHpJ~cWQUZfhvKaM99I}AFuCg?BwE>9H0j9$kTrgsjmP0 zgf|CDhX)7v_F)p;w#y9^2#Id%p!|DMDTFm~0nr&?Sq&BEhV5W@+&3}tiC~kWLMbze z57W%6-On5z9V8N9i|&G;BYIT-BQtjI^_m=yX?o=J}=I>Oq>6 zbm5mZpkpmw26F(5ncJSk((0va3tQDp{IV%f`hAM9FUPdlQh~j}S2Q1QShVHD?B|1x zi*A_TYrPND_e~W(`rgw7Mk6&+BjH;kf8mSAZqQa!e>Dih9|n(G*@22lrm-WsP%zRm zdCpM)zf%9=!Kz^CRk9V!Yo>pq9#x0BS4L^z8_08zsF38drU+Z`aW^x-6H_m2#W74) z(^DRa#wxvIYB*uiesxilzZWq!-W=rRqn}ULUzzgk00Z_p@mf_KkH1cq8z+iy97~`4G?g7TD&e@i4ZMTj8uEYHBC3P=5 ziHeMcjnQ;r=RRj(%l`|NHtZw*bBxZP)u0V|orv-r<7*e&Vl%5a7S~8 zmG^heDq>o=MQKEq<5Y8mF2Mg08H*VBf4tht%jKXJK_j3^`$s++q3fu765XK?=TeA^ z7#$EB5$@*bhPI$L?RAxZ&5^|~m+F?iAYrhp&6|=~jy%E2&gA>$!5* zyVX?{24(7O%&(z^0Ab7{&aeIFCU}jP5et`qKK2~)8Tggt%*w8|-teieUew%L{WK^T zaR{tSWQsJ8#Z9ueG5NdxO~`dGuR`WH@kL5eIw=+XEZf;T_xY=TbNNVAcN6Eww$?db z@^(?>`-_jezV$f~&}bzWl+pLFqw9`^{amZqz{Z3+I;B5@*a9@Va}u~P#mHho@CKMf zFh`0Dfwk4vVt;u&4iD;%q-knuYT~ZHXm$7WnBNQ_$BBKr3+l$t|F`#m0^cot@V&_= zleV@#ETK_tDVVc2hn|5!Z}H#cf1TdCmC<o7)`fCMUQtyCVI$OJv`W`qh^QAA8ohu+VjL#$GR#iN#5sP>$Oo+*i;_2`#!frVJZD~ z7pgPQ< zyv$%H$Bx+b_HJnX?L`493@T5i*8T3UdX!ufa zgnvjH^DIrH|C2m7=J#Z-TYUHMZ9$%$xD@TsBUs-Z-_={Dk-Qxd)vC#6Bfz1!!U!U5 z0Yq35+VZqUNk>B?`TBbP=G$^~n+4rBMvdVubbO(<^1^11U%7P+4Qjr3wK)X0U}rON zaq$|rbG`hl1`+wevgI%#bxa0MC#Mc3g*U4i^D<**K{rF}$13|a9))T^HM)A`YKr;Y zdBV-?XKPU{BvEG{q?9h~?94q{n?bi8(PvzD<5pwhhO+TP zMNco~fH7Bm%ezNe#pXFQs!=Gwg3WOBi)3~sCWz>7#ZRH9yRx-d6^Ge1xfn+qaMe)& z&EIy*=+S@2H1QKC`PiHKzIfr^GujK9j-{)mMKAPns7OQCR(eo`34og8wYGD-D$U+{OZ^iBdv%`Q@5Q5xL8d@ zvuPtex^{uftIPA)^F?ybwMP+NJa$0D&D?T)_jaZ}kbKF38^pstqPpH;Mf2{oydE+n zrwE>3lsEm`vV}XJ-;@-R!U%GE=fYRju^U_{RJBjR)UwYd_A2lTacf z*>Y3jL2X%BRDXtzmH|WDb|cdkJ^ED*Du)Y+_@fx0qM}}n1J5<&3>viaF+HE|PHTK$ zJeMh|e7>WrFZ0ooz~wU^e-`d*8AX1dZoFS*!z)##r%6uM#kU9sXU0h3u_=0=XHIBe zGaWWf=+f68w4B<kn7%D@qa*$)%~V>b5_}56!DH%qCNj~V&0lYDZL<66 z2tM7}H&tL4;mDSd_sQ33R}w5`szg%TG1VM37Y$2mNR3w_v>`dRJY1QuPBGXrGT|c` zZf{TdeI8r8Ua-HXb)jO4m&Tf%?CIWyG&SjxEt-&w!ESzYHFN)Mf*y8;>gRm>;pJ4V z;8z12?8E2~nEVX5-+U|z(HIh7=s@opGeGq)UL%T0xFEOo%eZ>Go$&ZDutL<1D6jLE zaOc0&M-egqh^wO`t5DrecSrX2q#hA$H1<5t{qbx&He!eI_I)e$K<*SHY%$TBtIzB1 ze2Pt|`Bemi$xVz5@@JHa9Bf&%W2Yox{&orcwAR`XKml5k5gZ!#PtHm^Ep`6O?^QnN zV$26g1-x_`V5Ta8w;-GyQ?H7%aNO!__({_$F|^<5b)tonKr-UMfXygpXFi2Uk-}~# zv80#Xd%f%h(p}7`D^Ert=f&hVB$jxw|gn+tUlu(k?n zS`+}SBr`wHg0MCHDf$Y4_wopi#5iZ8vJVyN=;RPyx2&3(Y)`pi2*l&G@1@4ov}52j zC?sgG-$guy{cUjQ`byvTSt#3e+f}^2{>%{PR!7`DSoA(26`!8Mp^nHkE^)Twdf^!9 zvk>13d&XkU%=&-wFNVQmX-_EnNHT+ZzkLSC$Lj??W64@n+fHvq|xsF;JR5Cj)h~h-8ZpKbvT+u3X_4V zCwxyId}@AKG$(r+840!DuFj8hD4rzQ5~%}i%ncj{A;;L6;oUA9V^>xWLa#YF3jF-9 z*-Eo*^YO$I8NaLzJl}u#5U2C4u=Djw8HX) z3dp{q1knY;zxNQrFRlGLWT+l=>&XF0>P~X_<`4hN?X)iJXsB6?oYSHdM>N2hRB5U* zX-ocFmU;u)@VqIgwkusWtIqbHPmmZUbKv4_V$I8c$WeFy2U6N0>uMqh{0GGe4L%+j z)}RQPEsPqMQJ~OVo8f5)vcI~2?qzMQ{yKk`@ucarX1I{c2mk(M;zq9&k%Vw3f%b5V1mbLDM4gwz~t`i{&?c)gs zrHbV7UB&U?6-U)nnlNVcwM+5%6eL;p;BV=5*77gaPLrdm&})0+ME#*3w;FUDtHr^H zBNHR@ZAZVCSPTt)?Cd__?wBPmlaPIp{06jH&F*Vv-b7XH=Bp}N9+$1^lw@hUv(xxe z7b)sfrQaU(x^WykkY&uM=AGY;2Eqo_c{zw&yT>>S?0M_XyjyK%r1{QP2*U7&9xhlY zl5vsTas8UYGjnse?ouDIR~8oVpujE;5wx^tn|NhO*mO6PoE%v!_8oW#Dl$z&DQsa; zQ67ZJjadDMVReg{B6;Bn{TrrUUvVOa+}x;!Je;%Rh%4tiQibxb{J(R`)ESFJUCc{v zWlGHBKY=qJ&Qi4JC;#Nrz_DaLqJclcRcpKtQRh-Etn<0nx|5^4@@!MlNRurbb&J$6 zh^3{uBzITJ9rrq4EU({o^e8FeWjQ;=e~NIXxIbAL?LNQ0fdI+y6%}7XVDnNO<&r1~ zIoM|g5UsM%w#6drSN7bm$xrnX72mtEXLT!fAjAIXI-&A+xsoLF5wq`j*i+fw7=j{k zH(s6hUO~=|9KvxdIack>XkoL6?v)dWhsBcvC*{uE3R=W@Vg1e0XcO({8*K8JFMkFk z9cY7oOTu?XC$m`HQ}cwnu6t#w@kAw5T`$AZ@5QZ$U13(uN!zJW3tV-LADDeVdL;R@iH=B0v1eCwRn_bFn~tF=0F zk^Rg5#CMqeYG+u(7;YDRbRM$O&a`WD-q=sj>Tr5bsP)nk>Vvsi0ZoWoIUTJ`vnn)_&D|Q3*De`lV+j`|LkzmtVr=S z0^DloMq>Pov|=!8%XWDAN*E;-VL|&6Ps16X^ha;%WBU3p+B}xu-@L<2`AIiz!`n=! z8_45W;Q;`^!EUO4(fyj2J$(c&PBwIAd=qW&9f+G*O@yG0YUMAAt#`zF@5!b25p0bY zXnmn|v7*k$-x&YXebw)0jNsFxzzxiPC^yxKW4oS9x_>oVP`=(bT>yhOhQy{611^K% zs@t5*BBAxJH_2aH{mzUSBf>GUHXQ427h*6JcZ&9LKrarUYdzXaqM%fdK`zg#BY~wv zs9t4CUnUWGjR~p5^qtbSII-(`XPB@1=>zC#eDI(s@ST%|uKqjt&1XX~X_yj-gXBi`BJ*6+g47-A`Db4V{ z6xm1mh*Ge!5qXs(IcjW_C51>VsgURx@!52g-Evd^$!}r~@{L=uJwwraDw~aRY8EyX zlExgt32(HCF|bwJPF==$+~rq-_DXh9%B8+jG%4{P{u~(ZSpNBt4g%2y4ft60%Z$6B zRZeYLq<+tizo0{f>Hu;^Hy@gj)CUq1are}KeQE$>3b zJT#|V0tG!;Im>QQ8?K_}!Kl6pNeQi_ksHs4W%ZI)7>;6n$JmB?Kc*Xz;Zpn_$EK6y@W0|dhs24DnoJ#^RFU% z-xsz|IJiI=;RwEn=8R4G+}HR)Qsc#vZGyB)N=VOx0HzkkrcN{>=CA9K^Lx-=zVY1m z(t&aRj+f|nYo^e=!3?aH(o(vEcJwbd(9XIgAZ>NON_2VH8FAfRh{7(aowx$wwT@S~ zaTiFvHgrC>rIvG=v^>nr`&WK`XR1E)I z3~SFquO(8Zww*Y*7qX1O4xS_aV)Ke3`9f$47Y@zsn(FHMip&p9#zX^3X^tG%n+XNSBx-J7v152=3rgN9pnc;s~_T!%*8TG#8&yGwSuIEi}-4NFZOZw6CsrZKeoG|C5dS?b1f40CiRrs-50l6Gn= z@CF`Q5(;Ll0a>#U83L)gklw(bY}M2yuOcJna?n(t19^O9as@v>a^fjkXRIuV@w*W_ zPqgIO&d4*L^XiddVDUeBDP{K>G`R~oNaLL^ zWtWApE?Qc6C*S3VE3_N?bWnrV6wD$>xlKSj-Q*GwO~3Trcd#tX%s}pqLZ4ozvtL!< zNw!OLI(+!(HETpmyjX+r=BeuQ*0j)1q%$RCA~0yLkvJ;<4dW=g?0U}35+3ISUm6*0 z&A5;ieOtewru*9#b;V7IKTcpG)@A9*pWjAAu*-@gvyXkNpj}hVU2czqlscAS`^%Km zSe%^3n6XLY%16AEW6{y)He64qxG;>rhf9mTp=*-eR;#_TGCIrqR`c-a2$4%*aKq|i z5`O6LZp~MKTt&d`vBr3qiiby=k;WGmQixa@#>3O|0N9S1zttb}0oM-`3rm(d2i@D8 zLdwx;la-eSCd;yssc)fGA9mdPB-5Kj#P34)&psJGR~xhgCnaLR(=_MM0z&i5gmjyC z7qup-;l#}1*g=WMSF*?i%w2ST>Q=@|8rmGTGHi)bi`lUXDph4s`3eqGhQpWgC`~+R z1{hKFOr1NPjl5prjW3>or3$kC$vuT(b72T-N)#6$;?P;!v71RyC}fl<=h_rc9~5g4 zUAT(U7?3^vh?)3c&a+C+z^Vx7Y2(s-Zte4N(p)24dBc0gT{aJ;sSuPB=Qth{|({fB06T^NssR~;iovHB0Iy4rQEIlI9oZ&bT9 z{5W(D-6XsWS^jS4I@``k%VV{^RRv-~f)Wrw53O$V_d|l~NeQBZUb?sLPcY&nY;0`y zQ7TYIGqdgXV@s}ltmgUA1~DymY1Gi9{{%7}LF2lrnz_^&o*p8w?IvD0T**Lff+y32 zz}?zZol$qUx`a|rf3tc=wme}~f-TXw&i>?!mX5N}!$VU->P8VdiskC^tlZftpJd1D zImRo&YR{+eA7Y3!1IbBlBEhV#2=r8vd3;5IJ?rT!cXM<$_Rx^^S$j4VyPn0J1}3#Hx0Z!IMk{JPgzFt|H~j}% znC7&4YgdqbH_z#;oR}8ncKB7Agr4UNqkas*cWy50O`W#Pp)tNY8p)p%G;Cdvqbwb= zzOz8p0YQEq56B2hkGCTgV_m|x(r+N-Xfd@J!Y7hw6uvvE(qa;uS?e}pk{MXFz9xJpL+^#1T{%j+hIQ?@b& zl71$2M9f{ThPkd>=D2gz*t4DEf} z@NHLT$!gG&L5Y!7&|dpguv2jHNP4Q9T3Y?*j|K}lGvX+pDpfZQ?^{?ngc0WZbB7T^ zehMI_>3V&6GPkp{D-8ga8(PK%qVWyzAvQ(yb1qWcHutoSHIj1r`R$F_?Lw51MxW53kN0uZ9q=uvm0hNBB_#_4INd8`{cwT4@3AqG0cA`-Culvk7&U! zgROJn&&L-(&s^h@VGCUftif4NzU}AOlYg8CrpvzyRD36Sw9?pILS_u2#V5)R`{SPZ zJ*Hq#itP;2+v_GONA2;kN%Xl_XLN@vqKU_h#IKvh?zaf$64NnaDqh@%TkV8Ngn51MbwdPB)mwfme%4GO?ys5soC&fEsJO)kk6ANczETmIvQ$L==C33vT0KyS^-K=g(5+ zP||ir)y%S=HAOR11^485jTNfyHnJPJ7%LvGk^B#r;Ai{k!&n_UzzjQ zIsV47Y@<{6O*>G5K;Ni!20&9yTVGkCcvid}!lv#ghFbwym)ekUf;m1fPhYZbJa4ewvw zobOC{ZS*y#HA{fL5WUCOlok*%Yon&hM{vJHV&`};;JaoTnBFW0aneMD zEe$v?%%?eL+T`D)k1t_t$u%|24TV2-7(CCG$WVmkv`7_3shLr9PswUDlt>AX_YGUM0+;Kp`Me#D$urv~I(b>0 zOyTm1jgR5m5@DN9sW|ol%`FHmKg=%|qjgsr5ivEiZ~PE^0yfRz&-L36^64+j^t#R0 zs{Mve!0)4m0oV1%vKa<)Fn4k2Kn>&Wh%Lq}*d38X9V7G<<0A|V5GyFq_xH0Eltp`b zW_H8P)>V24o6C|Jzi;iU;eA3vW*aT{fA(QqX|bgBG;PWaz~*8Y&!{r(Io|L)+BLsP z#KwjJr?0AiGT-}M^C@JU1B>vAQ=mGXX5p7da}YSQv0Qh|or2|HeNx%#ub%uKgKpug zzd~!IwQ;TDQ&Lo!S%2Y;ikjY6*rtUBW#PQ>v=1GdUe>3$jgd$ue}#PBzfLV$acL>3 zn;0tUhxU#wiPPWD|LOA*Se~U%xRBMmoHZ=NV$dm#-i4zml^D4qj z;Nl>0-zxk0eIFEgm&=iYVysDnM^i?2C3SiI*pGNO-^j8L(*zRBtRfu^2zl(YJf1$- zX+?=^4vxo7H~(=OPDHWzUiJIcUkHzoAjdcYyV`-9C!a9roL9+}qSBcH1IYPV9W zuhY+-VLh4Ru3%lecppGe6?{hTd@4w$|4wGBU)gwcH)6V#J5Q$lx8rV?4I67`I`D3F zOm9*hz-f7jW_ldz^|IvbmLTPZ*tVK)ifR0Id+eiS=HFoy6)4=UlDi+E`Bb!Z<>t%# zA|}R4jS*9$y0u?CcodxS)-KFGU|-&?`2U^>*{S#)Y0P%FU=#E_L34#YE{H0C*zI`Y z@}WQ=pmSNsARsCaj#IxaoMYchO?2<+gfV1rofRjYqkMB>+C1%>b3jya6+VZ(C?lZ= z0=`n9ZH0at>mj~7K7J(D?v5FHcONAM=U1+?9~xnq$-{(w!xp)fjLWbxIBL_jC+#9j zzDD|kKYnxGDARamKbZf!T(nCTa|S!pYpYZQGwXMUEJU?Zp02+Diw7X^gY5s@PAcN< zJ!}{o^9?;}{(umJ3R;g?7_c1dreV*Dkc%Ty{ZORInf8F7IZm}T@-xc3fhPIgUUktm zYE6)Ne&vU5hebDZ_;h3&S5i;v6(;sC`h53NiZ3ZqQHZrUOYrS9gv9sddtKL^84OW2 zT35&GX)8Q&RG!boZ-wT?Jz&bs@k)XgaCnn*39&Hsfm!Gz$NyCDQ-Du)DPCMzJ-?=% z^-P7wXnBnM&C#AmZ&kjhm>yk4RZ%$R#N=y>ryCK7?DohqicYTVx7T2RsFPF)psa)n zN*IVS^?lmigOKy3Ze;*sK!%@RIa;P&@~$8e3GFF?+Hm^L?)e<74@ZY22FLkk0B`pP zwNdeaDa_Tc)lT9dEY-tk)*tn2CPphmgla+KU`nEK%@N%ZL(oGH z`Zgz;+D7VtsZheZ@CAap5I3;9E^TNqy+w~BrnvrnVIK`W`?fAK%yrD#Ehh2ka!$xv^a!Kdd8F0Lz~^Bxs7hkkhwMAfMUwrJiNny~&B zU&?T=dBx^3O6!8fyd5&pan;j@(2~Z+?5JIF^8{si*)KkXeM4t=iXnwzw_Fr;GyyY) z9fuoFMpzz%drzF+(uQ!ml5{L0mFPfpZy~ETn-`W z7GA5V{j$Fye=>91v_y9 z2}p3==RNb)5-qfXH-uqzSjvplI~Nt z`svw8v8uM0oY^rW)K!AIrann-uD>Im8CP0Y0sP*tA(Tr_5@uCLDO8s$t!4kNWSPP+`_RF}GS{l6>Ablw-Ig zvj1!RtX#tEG0O@ibBw!&MWBwEMs_QA|RO_i|Vot;~m%3)KQ#yhXh|4JK*ESdG#ewa19B_K4o|J$Nxq>aW-_D$M~)XT_vwqsIH zEkyrGBiTh99u;5SV71{o7;gq&VuG1d2+<9adrio3nG^1T9x%jPaflk$b6u<^3blZ&*|$_<%Iame;hP1yk%oC(Kojel^b}A7NukGLE|~nGRiEjVn7+VoSn<<3}rQqU%k`}7Zep>>XwV<)5ip1%=xVz!S`>gU8;UJ`NHa1N{ zgRAXr{dY0uq;nC2nR{$hB1xo)p$|&vPAPlVmlx!-g958mlpF}U0f~N!;)0669?QE> z)zjN*vD?*{m?^vlUWq?)SeN#o!~*aX{>fJd9x{$ap--os;52{dgOgvrN9t=TQ+e68 z9e2zxn+1(|NYI2DEiCOg)xGzc*k8nyM2*PLSG!q$hvg1mY$9RiCj%%d)(mFxL!V91 zb@+1pGAm9&1g!P<*zIy_^v>m8@F}=j&uBB%KwoqzT8x_l_-J^qH}gnb#Ag7DH0VK`IFJKVovy0IRJ0eD#)&@CxI)Be z{@o)g&GUm^Gu=YSaqOWQxU%3eZAmmcD5x4lhi=_8Xzw6(Y&vHZs(3zWjPlUgW=)lW zjiv{q!Z2~kc$Pgpo1lMnw^?{Q&!bWF)~viAEyOYgn{uU_2>va{Hfg3hosH2SBPZns zqY;2{b87b(rVk=+W@eVV!Vf0c*Mq%-9aRaqT+}qtqgqu>PIUe(izee~ku}u5bzTsQ zu?jo*dfne=s0$lyem{R!g%|6K8&1fEPuvq90SiG!2fj~0=T~B;ASXlwL&<81fo(|?;dekDX0nQ67mg7u(IwTB+>QYJrcpEq zpfsnNbIj^FkgWPhV+;dH0GXeyG#NqsxsOUh7z;=-0e;5;84g9@Rr#RWQ^h)s;hS30 zakwpdM(X^b%a7bTu3E#>=<}bq2b*W+rRg(#aYKDEIy zNyPiDe_TI$ek=#WG+2N;2SZufI7)~yZzLT6p}cCy}%C2!0D1grL?5<&;*$ZO9DO)QlA`Xn`&&y z5M`K;*QD*WZhAhSaWKlSH75S)b$oH(5UcF)$IsE6C@g@NuiiOz#FWy?6!S*r;_6Kj z5tJ$)_ILFZ6<7H(<CYyvyCL)vchJ4d3&N4Uc1 z-b-Ue*#cu8XmI<|yd2F>u2o_;ZAN`1kr)9toR{P(UpZy*qrHq*j)*H$>ivfWOW~JP zJ8p_8-}k8K4dW5IK&E9V|FcVNQ%_NJ{1y2p_ErGIF2im$!bU3E|4<3EPwNBv(uBY^ zr6DCR(@{}@0y!aKY?$gs)yzh3GK@`h0>lA_C?J1QkwN$%wwDQWSv?znc&L%qFNh@m zMHXA}iP|Lyc9?9-LLAp)hbD|7#*e%|qY~my^Dciv(c{!#=+Jc})9VQ?XyO{SmGx`5 zuTC!D%ls3X+dmmW#R$ZkhiPERJ~I`vK>@^lDglmk7n>!)x0AaLQB+?GO5^;Z;1gSg zJd}sHt}FG={ag-`W&9Yx-Zdv>;PkD6Iw26Du&yVzU5jEVRg(hQo1Lc;snFgdjv5Is z2H-O9{2m4>FC#A|kU;a}Eoi`+5pXqle={IS(uNX00j%Pkg%$pf7a`^MRR8eOEa*@Y zM}vThr7as-y7*xUb_ee4ps7ZHViyt|4eq4KOtb+aQjiHDp88T;J{eAcY>1X(pJ8n> zeXjc2Lu~9GXY9J6*XGFQ(JPLK#Ey-9X;Ti}*5$8cc{xq#Wn9-l#Xz(_V%dgc$MKJ4 zO^SFff@rxBXFf-e*9r^eC=!VK<5(-~|C2f`EUh@k^gaICJm} zQ$Q)P0S?Sx*ggi=Z_#(qHRmK^5p3C(S>YSw<-{S+y@}Jbq5zP+evE0j5_FbET}C?7y(^|20S34 zb_XeX?+}qtva?$qis+GwZFJ;3h<~Qv7`8qeVZ8gikbwfT4lZd>v(m`g4$Cx4i7Hwc z5fB(k6>U_rf85{5SpdiC|6Rx+C`#scLnEnM(zhz&|2cR1OI4bAA#U^gDRtnpRO3Re zH?FtPY`ZQ=w3komQ%~DxWgat?J37l#(mR0G{`!KJt-E_f=^WuS{ zBiGZ?V;##AGuTtKZem274r!;$K9&PqFP(}gYkb`7m2Vl35#SlDg5HGqOfF}uX8rYg zJ|<3442)evi&i~UESyx@e|hHGwjaXXSR4up`w9qZn@@a3dal%ayFb*>Y+ru*h)UnG zrgV@^yefXtI)JsKw!EVJqIXJ%xuoMGS7-A88I{q%7#e4ow5yj&nBDW zS-H8fw;{{tAPdfa)ZTy#xmD10M@gD4eozt!cxM5ZK%}4t)8y)cD|r|xe6SH zn3bz7PwWWy-Rf9QqA7ksaX3`aXeb$UO-!%}cRXz=!|xZczSmX)I-Oy30MIDLn`_L? ziTU3gc}SFrmQ@CokN}`;|5On_eRWCd_wz;Yr`kOsmgsugG9Bl#aGTP6H~bcmn-ztA zR*U5Dz~&FX!`5IOcj4~XzZf1RmLce|y1-I@x_|l-5PF(48$$|GK`)`&RWbQ#Ige>Y5ge5#8B0W7M8zpF~rKPPJPcW)DJ*WnVy^cJ4xjq;5t|dFt zMdtM8dK`&zJ@{I-MP)^EHJLOhrdj0)L&ElKac(uF=0qWRh+yKkkW|% zbCmxLR-BNKtrdUohv8kNA3ufpjVuYWZnpqIj1wMmU=Q%*B9dR+wmE_AG~s4NE35gZ zRc@k`Hz(OEU1c=6%2regBO{VUs>7BGOMm!a>fqI&&ffB)8-hc2o07F_^02q>=?GGv*(-zIf;&UQ)xLi2}g^@0vx|*Tfpc2;8e3!8Q z=Ay=3q1T?G=V_`xfVLj>ywTskkLr7e*EOwK1g{1nD&etCBWe!kD=(vwzRp#A;q!V% z^1h0B`^h)It1N#8af6Di<&pk0HD$KdZ0xjDSU+SoD0rCFc36cZGe(BJEb7nPFPR-q8xj_QfY3dTU?lC=@`1{HhK?9=%F z+65q~+ve@Gc@3)t%*!3>5YRe!K7N?zrcPi}F@MN0QWnkgA0AaNT>SmGDJ`4R%eHg< zAaQC`m9w9FAu)||7+p_L#ysE-STz8B-lO{e-yfzVXqjq5nnv-fi%5_~+SlKWAI*Cf zjSUr7-UcszIev)F+N@sQ66!xE6X1yGallb@Q8O86awGC{aNBCex=vkjRk9fysSgE5 zVHE_ktje`sr2cpm9z`+9#VUEvz%c&z#KdRi_v=*kg0rw|J=(;O{Jd0@;|(L_+K(DlkRd7Kd?`{dWC)w zjj>6^G$gXIvB^ZCGws2Hx(|Wf_3j)hKfkd4)5(W==<@)6yK~Oa9h6bjHjf42Qj@bo zKdMy@+8)1f6ln*%MDuktG_ z@DBhI?RLy`o68?B<;6J=GSzA%b`?Pjql5w~Sd?i>>KZTx1$m`mgxPgPf|ExZ=gWzo zRTPyZleL9KjL5#bzU*L^(lHhy-bBqzt%}9RtBWvcwtZt(?Morz&i~TmkJKT5^|k%1 z(i%`(=@WrEjkL7%a$=7M&pFzf^AdfzAH%xKZhsp=&pG(QF<`HX&$OCsJzfr=1f6tb zOkGeHWmdew1K2=Rnf?zR!u}7?>4XQZTeA&%!UBCz8#Yoz&M?>RWp7Cxz!v~w4D5T1 z+2h`^krHr*VX{>Pk%Hs4iitlP9|r(Mpc4nmT{i)Pf-S@0vkAd}InYG-sH&?WNzx;6 ztW}{lnjHZQ9pKWi5S;4|+2DeyO{mBF33xyY1s!}B(qpGDX4qm{&?MPYLEWx4y=`-~ zp-{J=X;Rir=y%4(*;Z6kWO!&bPZ&bjP*JBT0D{yyA+51#{r$&eGHe;CxbyK+luYdu9e! z0V!-^`2dU~#f%Ay&8TC6QrI^@DN_icOniN;MN|z3*yMk#Q+Pf5mQ_)A8mLMlbySMG zSFPJih13;8Bz6A~TkmUCJqTLM6kdC{h8ntvC{~1J{7>4QB(r-RVtQFwielyEH+R3F z8cuHOcBHre33V$BaitbatS*-svaDZ#4E*$83`k9aJ`C9sS~@6&(B`h^{&E}yvepzo zNoE%;i+P)`PeJ`Bg~*mkQ&)^<%oUbz{@fn-?U~nuamuXBxZJZl5tg9v?SsgQNJnM? zuQi6t8YP`tpKrmAG_*l%2T5FP!YdnYfm7> z6lT09ObtMKHjb?o@yiy^{ry7<&oo9!K3~`YC|yzie}M|b*;}os{Ur^1ld(OO=5cvi#FO7(71t4n3Z{!{8P5bZou+-m9pxAs(0Ge;WzTnq5~AKtCx zO`&r5^UHrc0fuzld31V80hW;EDf<1@0XO;&`7Zn&Aem8{;pAEXV5uuKKRRSD^{*gVAHA$qUUWcJTM+Smws%zESswF_Rdl8E(26x9!7@kKMyZz1yNdljM;iA`2QGb z0Q$LQfZ!4GBa;M;P>KQo<9~n*PQRg)p=H7UH(Z%O`Lo`RbT6)kS4(v2z2l3IP?ICt z0-mDslzb`ic5&~rf#A3QAv`|m!^x_B#Ku2S-%)Qm!N78Em|Q#j<~n*=TN44V;6XDV zT4(!mf763Xv26luI09h-jq|7|ZezcgrCJJY?xdcwOlS$m_0QnMgx=MOS<>*-{rVX$ zZP4}Av+70IEaqhR_+P6V-NkpqYYG%>R;Pzq_(hewHzq6J9rypDD7@f@2xI@GAii#h z+h*XS2fiyF9$cg`0L2OvXVk?4(q0S6f61$Y=#pl8`4>3qcrTD(W%(CdptvTM7r8B> zC~hSIBT8!2-}2?dQ_!enh`M#o1Pf>7WxMPr>B+*+myQU1get^GaSK8(|xn-ctjli<#}bvWBOJz!ZAmJqk9?i3j4{4DWMW`!=Ddr z8T*%5ehd*#5tL)8WdDeb*m;klASi6m_ksedVDaOzru;l z`H{p-z!yd;8P#S)OlkxF5Cu*d0Z2S9Lzxb40&zWLOGWG}&2Bjcu5oVSAu;TgnsST{ ztwm0z2v?594b5MN56Ydoz_c(s&$PCu1#`Y_jNiZK8Et`wyg0WxQ8KvJ1V^n2wy)qq zS*l9t3f`_4Rsdqh)W#6^p(T{UT*m$qwy?Z~~|2UM%(=P3fjO*0>yF(EhFv4`&b^$t{qaT5o z3IY(AJHgXcvt5ar)q!m%yA!;=K2&s2}u z{^&4hHPwaadCAJ6>niKYEu`W~r86GTP$qGE=43JG+C(EbxhZZLk;`$(sdKkjm4uz{ zJ(T?6ucxeBMdOR$7fef%_Wihe!WG{mJHQd$Gq~CGY=$kBb|n z?R`;RoJl`NfyFw>a2uxPO|iKkP$C1o-%n`&0HizQt)c;*6b3m;;s=^79!dkjU`e8$ zo;=ns+|rTvXOsMCAiQ zLiz$!FGy}f$nwaJqtbB~Vc@9}O3)Gd-h3=SfS9lN(M}QRcP{i%;F{ zpOm&F94F^tu4xV0xWQ#-&-uUWM8UWggw)>PSvNm=8DI@S}{m3SHvBg_71P@KJj^M^+<@1h@ z>1e*UA6>Z@VNsXgNK>-0HYg~|e5iMJ0q&F>a5iSW(#eOpDk@Nfqs^UeC8VJn$SXiB zE6L~7e5!3-Qn6CG*=-4nJ{bBOeM_aiuV5UN zNgZ*#N?qHnUS2HN=i^t+=}rFeL#ou2(5oaTm3x61(bKM#a?*5Q$S~-{lu$=i?W?64 zLqoBw96ov{9y-Ym+Z*qeRFAFbg34&J%^wvX1SlXI))B+|^F81NTk!G_JgZPmrjc$qD3se0Z=-p$L)h3>?m zXK%c_Jy(P2ed&&kp;IZqZf6r^RWWK+byK2Ja4GT}wSv#r3o=gU z^VHnFzke)pH+Q@AWbfvrl{%;?#Y~j;)~k#JT+C3-elVn!>&8f_eb>a}K;wQ%GSS)p zCk}wz-s@Q;w0xEf5INs6%*R~k6KRl_4dcgniK-v-?;?4;AAt8b$wcK`R6T#4)Y$Vn z*QrW(#POhxa<}EbTCVvCRZ7E{vzhBfGcs-{VoiiN`p;hQZ`|&z3%A2F62PdV<(SS+ z4h}jtPE3v=&AmFx|HJ|V@OcIQpx(p;f@aXy3s5A+QYU7AsHywUJ@RFc;YGTlDCp`E zu(7jG{rwA5P*gMxT>D+}>z9F+IHn^6Hf{iMtQ}0<#4=&hdz-O@TgSwBNLef+&%r;| z!Kd^d=c0pPbzfQCmAE{+ZiwO0OGQT791_aWU9*fPt_2lcP2t1>v4sA$D~DQ6r7%W@ zyUO&$@h24UG=Efu`aGId5QXi)!*3La-;i21E^rmP^`e-Q%*4?T;qLfSA%PZMmeV?3 zXUdtZwMG!445`Y1FySG$BIk+PHw<+O)U5LEQ*~k8^1HbuShCG=ypd%c#3#~75-N#`dQ3tt z+oGrwFRp2^=}45TC0?5!+jVPzE@!XYY#m!MgoQ1=@5Jy>bjGDGrc!SEK08!@9X$!- za)ceEAiQ8+(rOTkMuV*|X#Spt&>>s(FTHGTKM_PzVM^SzWfgsC+* z%Iu2bdLq#`V6*mC@bZj^Q@pa#@`xLb;$g>65%%Tn{sA<%F!0`Y*EbbXgkHHky@ z${}P=m0TF+=kBV#1Whimv}u2bW3>p5{WUzXT7rR=;n!$m`3!GjGDGQX(6$;$o#zwW z{t7DUR0Lgut(lS~QNVLZp<45^7yeGQ!gJOV$23`sYmFZ-?d&P#iu0qFDy|#Ku!mPx z6WKSfgM#GZrY3ib{eS=d9skSbBh#DIP)9*Uou-nQ#>K}sDj3VB;IMD1l)yaqXwzz$ z{SDdkm&@T`IA5kCh^$z^$Vw9v)?u>`FbUUa2D+(3p_#4YyJ_uS`IIa{?54MXtb)e@r#yA^=V z^PeCo%UP~il-R2FnNc)xe;Cv)j(CRbe7?B&8a|`eI_|&5UhgbdrnNlWmqdF#B6DW9 zuOMLE;*7lF+OJkhMLTsnW|AmE-S{?P|JYCTvit@1=faH{2BEQSYfJVsxbiy3)3rLe z;T)EwJhK1#!GhQ3wuRO6G-#*qp2-#pz9Xt1YP|o_JBSb7)6=sgFE5Zmw^{V$a83JY{itbiBdl|_w>|Eh4@-${hZDGjsE zK{2ysk>jvAMNg6&hW z5*U?qYON+^nHo=f2}kSb6<=(Bn`K!(Jo-k#Y>CX>BDL-2O zJze)*5o@oKZX2xk8y*JgNT%@2`xqJc-!706xF-fkQ%?&bRne-2JK>K;c*mkV`7VXO zS4Oa^R2#PiKS9NEm`VySBK@IkoC@w{P#Df!fWr!C^f@+6qc_sgM~ z$wSTUJ>~B$s(Y&2%C~FVj$h*f4vhGI);|_m@S1+b*pD3o)y%&uRFqR~at)4AR-E>M zx?*4t?xM_YiT}`QfN)K%IJoI=pz9{(nYeqE7zH`L%G%}~*!{_WLJ@(0v#i!ph95n# zA1%t|+C^VkTa$mgWPJOwgMPA=VQV>Co)a0Fs$NcPi^Hx!48lTd9zp4b4V5)KI0cLT z%4id;^1K$`Em{f02tr*oqTp5!C1r^r`!O=dKEJsC&|wMIg%KXGzg6oo;RTaq%#UYz zM=2>QA7o{w7ZWpbz~F#-Btl2A;5)%_f)l6YjRo~YmCXFFL+M0-s9Gk9P5?=^MLqJ5 z0i`z-i0Xfc65aL6zB#-@bE`-{jM-F;CC}6|4PZJ2S(gmY7R2UQ)4bTemqT@Rpx5^t z-ClaJYzd~f`002YqCOT#bS41k#tXwViC5A#8?h@UaZP>Vf$j{mkLDSHi#rZi&RXB- zZ1!j*@Njp%As1P;+UGzUy?3o|Kd5rCil*+P9!iy31C06X_^a^^vq837?d|;5HYDSY zz)Y}k3)h(CD2|?+|Ek9kJw3Ql)wJ3Nz#Tb7**yMC$;qGfvoX<8Add_W35Z-e?TA(GF(#onfPN#Z6MpIxLP(KpJyxKljg({h#3bQu8# zU=*%}bb^If2$(KUBAn!Xfp6kP6E~}jyJ%v6jlOeJ6rdZF&*T;}9m|+>FgM(Ccsgmc z+!$72XSz6zpP>ZJ!~4^yi54-PeMZz>Ax5-{)3*$Q{bO!L#ey@?Yfh0gqxQ8RC}rJC zEimISH@U5fVU|N#+w%iS>n)YGOK4tEmS<-0GGVjpoQd!d64@wp1BWC=r=zB*#Nfbr z?Im|8MIQxcka^4Q0W9LB-OQ4JAOSc8ovU%emc$Z6Mtg{Iq@rF$rF-z#3e?f&c zWm5J(d=a_Mr+qPE?eq+d*$=jIyVAZpuX3_2t{P+}N z7PMx$ajNZT$;0>3eWWsA&Wt^$c4#O2B5SzCgtmD3)S8fi>sOMt1)f%0nnGh{Ue|kY zTU|T{y*T>$j6N3;X_MQLE-Ezg2r$Un49I#%7>&Mo1tUc}1mpA52W zMeE)1&RyT9JqvamDB{t+n5^f|iC9<@X^9q-LXRIp_W!x^e~;OByvTr4N`{0iN7jBi zALGbidPwbg{J8%WC?Zml5VOomxejl52isc-g{WgVplX6pF2>sastG1?>CtCb_JlI5 z$V0&})S*(lU-Vco2lf3yPmT`@I$pYzuP@@_(|X@#;Cqs1X){^71H=_Y@%`YhFdXaS1=RjFN_fH{ zJZRc|6oN;Np$wAx>lHk81YAn(JcagN6Q_of(>CS58e!3z*YUQF6f(?&kCD!svxy!r z2$uY6{K`Z~atL?$X=_0L+)Y!N`6@1OV)ZM=Ez-KT2``Q{N3G(l@_4)42bAo5IqcXE zn{y%OBl)=agm$8vET%LPiC_+NnXe;Rc zc=UINg;ihA=xLK@g{4XU9sN~azUby?P8rzzm-GSeN#j#D@%Jyc&F5PG`u$p`IN`P| z69A0o1j8h8?f%VFbBr9HwyWn2r{g}j&*&oZFeuDp{kK{Tm_wqwQx9hnPU2n{>&H0? z^!R8$4?>z{sIrtI|4F-Ni+PsmC(e$iF3M*vNy>4ZZ>Z*u#;lmb0a{q@K9YduQ6O7QE#@)m z(%UpEL&*@=dT)Jh-3(DHnsUQX1g4HwRqFrkTxY(Wxb8P4ujOPvZ>o-JFOGyF=Kw;- zry3<}8`GMiTDkLBJss^{J@$&axE>3E#{*qpNs|K^(Cs!!G)Q?l7eJN;;(r+?Q@8-a{_zm+xs{bh;n#`I(Jo`6FB;>#-ROQ#WoOe+7UZ+2_ViikV2*Sg@wnrap%$_6%V)!A8wTPoQI)QmPr}~hd`rD1~ zgSCh4nvj}ghY$`Uhvgammh-t9zx^&L0l!N)d$}&ZGk0QMFz?@0{d#~m+Wh-CB-t?- zQ-rW`zqwoEy5>W>mr!Zi>k@HMcdM-&aDA(6pVJig6Zb9hukDTaIf_`Zy()i&zUf?t z9U-T$u||pKKe{dZ1zE(3nXA8;mrpNgxybI>jW#RNcgv13CQc?g)AYK{DqC*?kCQQV ze9f!cpNxrs)x?;S+{Bma@oW1v;MNGIJZhdH2NXhH$@lwc3nR0}Dz2)(RQ_zs9j`u~ z5ASreEg9Qpt9WQ1JoG5a82<)c@!@PmNSnR9FuUWLqV08zAIg^PppR?q$VtT=f9~zr(GkZBIcZ!1_Ku>lCbPHQda)1ZVaIyYdS?7GCE8Ex&QHis zYFj*tRlI7z%h}F#6luXFHiz7pWUV=qA*WA$R+2=kh6Qx^hF)vQEV)1P78MP|vH-nH z;^3>s23+qr8p7m&TJO1Zo9)iMTBE_VQX16$_B{TU!Og?NHc(qrvmf)iA7i%B9o+B- zwi?{OdstGGHC5hYJxP5aszm0899#Kkl0(Wxd7h5ua&n^&a&=y;T{Vp~jqmFPfBMqW zRXXQ-7GLv|TxkhS-r4I7Di?1?Q`~Y35n;Y8z8WlbZcf7Mv52c>b~;;{@72@Pe$owX z9n;E2`PAN(iFUS#Nj-7@E*Ca->(d4$UD$D+`!SUokU<-5b;q-eb_(a%fvLDE0ZzdR z>r5+T0Xa>&KcSaiD{00-u{LpwEJuOw_cAwJ>Gbx86JzwVtc!L(eU6RnfFAFCBsgPq z)9)!h`uhVz>t4yN7zqgpZ5HD5=g%rSI$wc3g$dc&j2m4>uv(Qsy_)-qXYBz68ClnN zPFV8Q)c4jjt(tcdZR4T4)(@?Hpi4_#9Y;ACE$vUc<%||OpM8{EJ)9?2@64}22B`6c z-^PK339qjL0#c@otPW>^YmT2#U{*3!LI@Y8*ZtXh(_mHdgzmp@zvd4El`;%Dd-^9>0G~TWv)Z)dSd3xI^!$`|=qrTcZ@lpa z{pwf0;xKzR1tQp-V^KX50(v`)Tl!#c1Q0eCd99$t!Cb7YtfUnyR@kc3i;L1Y1erD0 z?H`#S@ZDbap3delPsv2bq=-+h|L76j%-fskHK{t5z-5HPMY14GkBx^6bkA>9i?-A;F%S)Sw3JXEau zJi&t9%iY7wb0;{oVr+cHstvoIUsO{`x2{`BSK7M?Aw-Qd$hoD@UTDxFl^_>%EY!y7 zE|4G7j8aoLry_fdrLmyfNU;Cu?&+g%{~!OamUA=k{0pzYPyf%Kev{L6goZI4=KP$` z|LPrj{*`xVc=V=`6xjZo?;YUleqW2M5?G(zzhjOf1x9nv&3#v-KEv4nQ32vX;F)+| zfG>epUA}x-i&Ox^D15+^z)$hljBq_XhVel?fqO@k$9Y89G7>yTv7WagC}Z^c5#a#} zVXUvp%gZ^0e0IdX>2;(3>(;H)e@6U^u-%InFV^~oc0m{e477y=0UZG&kF}dDXV0EJ z^!)SB2R)C|mE}ObydYm~o!`hjw|j7cirAAhPOmB*dfWa*1g~4z02yg94jefV(oc9G zBMQmD;4r0g+6yzfSl`IeOb%0bZ(q>q46b|0!YVcp+d$8-=XI>4?^!RiGCEMv{VIEM zKm4hkY&3oc73AGCLW5!)A;SOLcfZekI+)MD@Y-+aZ~pK9N(&cMIBu^3{Rq~C4PBwU z$qZZ7^`_aia!e3NBm&l}tVH%s+MaU=q%y~cH)tw{P#K>Hwx%*0EJCbQ<)x9A!x;++ z0(M0Jq2^&-X+;PvlkQEWlB`g{ht;*od>(?z_uhMtkf$$@AS^&`EQC*#5Z!^u$oJVo zVE_L8^xSjLX~HP92_eyf1q%pabnQamq3#>Gv#j1ySNg{3V#f%rt4uCMH15@-yLWN! ztD|J5h@Rx=EcJ~|tcWg*S&-b_b2GP}+1yA^Ph$&x^JRHo{~(74KNX^cMm@-Ni9BFm zc=Z0DY7ZSdP2KFB1wmyXL8yCy1q$^X7IoF~MS-Ur^Br>(bJdC<4#(WbGmuCEf6`N4 zzylOvIKz29%~n6*HS@Ed{Y>MnDs4iT`O9DaQj13N?Qefu3#Tl~Xcgq7j1v&RGy2Xu z@6d}cz8KV9tTVT5+eU{D9a3IrBE3a^I*h32O@(I;sx;sS?4C}x4r-~W0uCp|*E_b~ zLLVJGZmNiex%vnjU7fqwKxJfL1O_=`|M{wOS^XMil~f+q69{$@4ovkojZ4q(3Y+| zfpQrs2Uf3MO<(xJ7bq<)c%B3`7{w3t4N7+?q!G15Cl#f+URM4J0*OLEm*v0{I*>50 zckI}q@mLsi822oJWy5`kBD#t_L-7uR@k}Jby9_)xH{C@Zj?|efRG6PjpT2jysUjK} zASCw5GZ#43l({ke&tH6tTG~27;99+WA>F%cGryarCpXadtonOYZwN~A^OqXwNZlE_ zYsV)2FsHH_)Aq$iB{T|PUkrX*T~Qh~ddXBpHv7WErQ^+mN<0^a*5w?MKG$z9JFwZ% zq&tE@5CSr5gW!-Kvw=VwdxS12^if@Ns0FmK{ko<>+OZ^u7172s@>>wF4+2LN!rr2{ z1?g_8W2 zjz>GjI^e}|@!~}~bLNaD{6e0&EnBu|3NB;WRNkP2=YG=AZ)q^o(mSSwHd|L2K3t`- z{<-oS9$M>GE~5R1PG}xD#&KP`+`?h4t7B3`V`B|PGTvooX4ZU7whz0EUIF(?eh`DM-F#f{a$1{*9f`aQ$|MX97mGT1b5AaPG zctuN43P4%+&_fStxh$i-Udjssc0>S%7BCjk3CbN9mSLS)R8%w-`9wb->93nZJ{M$g z-aZy|TjjBb5$n;$pX8bq3)u^6kXqP#*+^sK6Pj0aw2EjLZoTlz9@_iy5$1E| zp1hh+{+`>6O=`cfhU@AH<*9n%E;cGNv_O-)m20QBSfU)*Oi zk7%r|p%@ECPy!=r0{UoX1dV%*Ju5svFI>1l-}=_K;>Igcx1QDj{euz@hHXNEfZY)= zljYRZ)X-PI`c=(<8|!2|Te0q;(>P}xUt>QQzH&aA^a^xf(tUJxTIyik*er`71%F)C&u(x%4=S|}n)5BH93m z{G53N+-!ZeqRg+Ph(6smL<7SUldLRd6djzh>$R#v9mH*B;aT)Jp&uZ4=`X-nyC%%c=saoB9s6Il)TsaO7dHR5Mg|8_kX7kKm1U+BCLu3?(hDNe&=_7hiA9HmkWjT;9FXbHdDvD_E+@Y~a%J5F#aAr1e zk5?Nm-uqQml!jGABRsZ|5GCxX=U*r6fsM3r?Q+5=()-eQO}O6?_pBT(%*}GZK*Ihu z;=UOC)`4QeQQqSoy&QTU0>`d@M=A`zXPQh`uT1_50<(;OD57T>aA}S>^yGY6UaA(h z6yY#WaQKuA&J&$%iv^i0&OqQed-jiwvsa`-cMI7=BHoHOA9X)uZLoV z&={KoD5$Ecs%XucHFW2lcZP%mMObTuNkYgZYp!$BLbg)s6bzj##(6=poA|3;4Lob2#k=&77{(C-U> zKj8UmB$PKhj&hji@emvs+nkNxn46fRD#l-!^Q!C3+334n+CW%vU4aZC_T6{it?^i- z6aXK_2k%AjXM`8UIskbnb-_E%K^Td3gce4%43}wsMv+U13aOO>p!e7@4x?ks;sQE9FV@w#CjHaWc9q$ zs1xhVB}gLj#o){bEbkip@P!%;ZC3dLu*e8s3M+;!pFN%Zj{_J+Q|X)s2^ zDA$esTT#aRBh32ASk~+}-VIpee*E#rQ>XE~LJ{}igAWqCC-JVqT6pi?y_&Kb&pHTy zk>9<#x|&K#O0;7zl0o_=Tm!`!*7-=MqZ5>3c;*8M&;0i7+k^JKf#>mE=Y#l;{V3Ym zuwes!YKEd{Lsu4~ER@Fw4<4K$s~}#%dsaHaxMbkukh;Mw{M>|w*&dB zzE*=AXZiBwbl-jVg~)L*a`4!n{`9BXa{yz1%oUx&$#SsQedLixEM+-(pThVM&!th0 zgD~;6wY8cY2Wx;xN@-n|1D=jK8*f<-!gDVz@zJl2hDO)WvC#jH@H_2H>kx-DcClPK zbpNE6n`?hl_Kj@^(pFWKm(cn(ODR7uK87%n_pG7(6Z|yV zeR0@<+vEh+Fef=I_b{&sRR}U=KRfFQ2?9<;KorqVylW2cGpuDxvprOt>7mxX$lgWR zMjomkpk>8=QA9iZzR%U}e|)juG9L}bp1})+(kz7PW5HCM=;+a-nr9^PXkh~%xH(1> z*qCEO0|ndZ)2FrEj$ixQ*ECOLy$k2hpP%xeHVSU=J8(0jUxQF*_(W1fqc7N8egFI4 z*Fp$mV`S_fHb?N_hT!mXpZlB^ZW{svBk6(&Y?>0CSJT)x`R!~3Fvp=_`IA5Sld1WM zdG=R-^;fnT7@iXd*r9;Nvw~;I_^euWwwUwMBR740*GRxdicnpf@m*0G!PM@!znqS6ywQ6ZCA;*?6-(+AppU+E+YR&UmqTH(GwSmR8 z?a0~Klt{|Z2Sk>2=;5~u-M_*@REr)d`6eVB$ z;ukfgFEGHm59>@l>~-L^IFH|E;ccrAXgAwY+hGYl(? za~=JF038OA5T?gtoteeq5=&SSoyIxphdFXmBpPR<>w_GMF&P!nxmlT%?l(71zshrC zc+gxC-Q3z4HVn2I)^6s7w{KZTcXKYwm5Xa5=Cg#be)-aBvudE(yUe)FZ5Uecapw1MYv-MV#zeJhk! z;78y~FrGr>4j7m~`G$Qi-Xk!Sfl)U0kuX4kVHK2Q)vTPx9vSZlT@j6XV0?mif|2kp zzedyOdcV*|j1|T+Le4}$ zm*arnVLfG(lVDUZ)`A@8`sKXgS-8s++2)Wwk;A`u`u!r{5sRb{XuI(Za% zc&8R{IPGvWXi!8W&Bb%C?xDWHn@%dY7W{PM+GVt1^-`sGWw`bNk4M_G78T^uf~wNM z;@bW;(!Ln{Hf6rE?k)10V=ZWSgoDPd|H$;FQhAP-yh#|nPRBt0IvW9VX`8dhB)xY4 z0$41ptqfH-nRWdnTdX0+7QdT?1OZziFv!;8b!@qYd>&R*lIOfe9L;+GULWYzaGbp9|-XxS^eW$^a-KJ&YnH1 zZNiP47nDK0u(XABJA?@zeDDDdn-VtM@emH0RxSsV76Hsb2#N4~U_*@$ye8~IM~)n! zfBUz8qkrd6fDkm82^m!SiuVq9u18_RGQjV(vmAxWGL`qI3dOLGZ*^>e$athj)Doa@WapX$mI`r79| zO}DHG^@ypds?g3YsjZ}}3_tn294fXjmu}y>o*uaKHYzPDG;Pby2QeoxH!(-82y-2C zemXoC&l?n7;GOVTK}cdVUS`#onL3a66$F#$9|VS~eFHy*Ckyh*!|=vTF{k$#WfATa zLj6EOd%D+G;BomrcMvdJXX3qPM*2DvMpN*h$Fl;${J}aC*M+-QKNt8H@7hS-Rj3>5 z%qO0B!g8Gn1$AR%qqfe3Ks_AAbDarRQo_ck_*fD45C`k~wUiiEW#`;^02PLC#^o`` z5BD@08XKRay&oN;|L=#-&~v|f$282SULO=DOKKO;H^2HQRhAY}Ivaw4f0mXM(B~hy zm$u%r##E7we3|#(v4uYS&|Oqgn5Xe+T)VKQoWA&5_tUzS%k(B}{}*$zYj9li)K}^3 z`pWcac^2YXMmTPSBnIJGgfjUnU-^orc*gqx$3VD0*n=W67nH#IdjfL;o}n;0(FtY2 z-|*4P>E}?NelGB@-i}_*>@T7}eE##F*P=k+{ieUKz$c-I-n@D9)Ma=#Mtbi|6^!r& z`;zzHe_!MCdNFvIB7Fe<3ONsfmtTH)N{)k6DUsH1IEVF~F2{kFeIV(PX`3i07oT^ISv*zV+${;o%d*JTd zm?u{UUE*ScA?%BP_lplxIj8u*z8HMEth7+u`)*pdn&+CcR9)EPVlAjbiwe^yGtF6w zc9n5SndCvh+*KlZ#xEmH5CZU2SzVq%uhn%~_5k?+PqW~0L4l95o>}FW1KMO%8!F!g5212!Vi38#iv8@@&zMAv_vFWJe-wL|~<^Q(<8tA%88b z+M#%cmkshxg0R6tzhKD@FKgsP5)uTG9RXOsKlj{oTByH31vI=t5T*@YW`Uvft?&ZR zedkmU=f#R#68lXEAkT6L?z-zP&9f7N#zO9_36S=^jT=`BA~A`;Yp4fJJ3LreAP-sE1rJvW=nc%Ak^@}z0Oj8L*|H231jUy2cg9cbpdaP-H zHdJLsDmv%RVIF`#MN4TcbdHYLyPDseKi+r8Huj?4 zaD(6SJC=_@;RAuU8DZWos;OebvJ#C~Ul-nA=hJCyOy(q^_!V{lICq5&G!;XH!m|+g z#7f|m$B!SM;xFK}crPGYM>s+m7*in%gT59Qda8jAU5AZ4ce zXxD8UY59_xz{Au2uJ2iIUB8Oghu70<;2ChcQ(3`m&Ofm)e&C+l>5khs-r&<5NrU$( zSRZ&`MYK(C%v|pl_A0dnX_U`liaQ1@ zq~Z+55e`$ar6x-h(Q|!bIBb0Ho$gTz%k6ikP+abutMr!@~^_r)ru1v>R;607JlcI=LMOMnqWdvZH0Rf$4Q^8?Dei{{Vo_bh-TSal`<N^oerZUg6qzU%f)Ve?}e%kzGm1>g{ZdyS{U{`Rs05udq2n3I^B zRs?}K<~rtlGz3BTi!Z*Y34QV0;W^UNKlv|ydgqnn-O>&wN97i;-h^>rqUEwIkqwQHA_uNCXe zM<0Du8#v}Z@}=r?7xQTM?%g5J5aw1ia~JDO7;>OKtTRzRj5Cp&8f~Jl7#9Te@MfG1 zMRb0;i$f=RI1DV|6Z+rU&sE-XDjNV&;*JJ$=Rh1xXq(Ax6~{-zV&FHp!q5fO=ud1URTxDGu1)mL8)TJOU!3}L}xz$WA@ z1a$t2btJxnVAus7200E48T7e@bP)&vZDd?Gq^_R+5Po{+_FHMuf{Lhlqh4>MztQel z!5%bE=rG1%k=nA`xe3-pe|Q0gpVmFg@XputC_a`i3kd>FMLmgcxQ zZw-5(#bN5gDi*?TU5E!yC2S60)e6B{;HDiL40uQ1amO86erSXS!$tv{bZlafml+!o z2<|}m8+bjwYu5ia&TECD{10uwJ4=nboJ zc-TW(3jvTGrp)Tv**FhR4JepEuyTjjq6*>J1mQV`K?$Ct>gsCEGqJwDKImChsSgpV z)>QbZf!|$LVYi1kJk*7D#&&i!Q1Ng7_HVWKT)6&0I0ywg z1cOgL`6PYg8{g18OU>$w<`}|2;yoMKZ+M;R!qRB!lCt(k0Logkbtb~#28Myf8WH>n ze9df~2~RF4ppEOyKmbub=qLCl)|m(yiunt|T0#FFsor>; zgFy^(_?5C(^hFD=XedvQH4bpZhcU|aJIj-2I#@x_JrG6_J#XH84*eON5iIY5Tfg(U z&>~5EWSG74>pO;--g|ziXPZ8SpeH&~(D@y?gg+p@{WkW`D814t$=$m$AnM zuL|7Hnq3>~F}z!>c%Qy^)*~{YE%Y^7MKp}Vv0umgSm(cZ=fTJZDKlnjjIm-P*I6T= z%W?F1i}{48A-COjTZkM7yi=FsAU(__UfW?F;96adgBAmMETZHD&I^41|Ji%bD7mid zTyO*E9IA6h2cVHNKtzHhKvE1MX-cF>B}=AlNhABMk!_9Fc-Hfpwd8-Z-oIJ%!+v`5 zlWaXJm=r}(6vYIBNCZF-M9!%j4Rp>qH|P6K^MbdlE8OY|U14vsP}NoEo_p?h&prF> zY|Tgiqnq7=dYruoUZ4@$PSoSjm`=TorMsaX$DRSm-ab;F(^62Dr!rd(UH5KqwZ?LV znpM)FCz)hxs%q~MiGck1k?~6o%banMnwUA6Vj(RF+@*d z({;IdSXP&z#w9$=l@x*bM&RT6en-*J9A`Pxa-%+UD2OS@C}dbf#URrcx*MUb-zk7l zc%TQjRilc^Y6=hGBns&is+d~MlY)`IQ;?=WW(hDOpDLwmC+1V`dp5UhG?erqxZXAsqfw=GZ8Sti|1o|MwJC?U|)w++wWfLh9TPh zY%~7`%axwtaYV!nCX^w%t*y&zL^KuROoQ!<1_y`bwYLt)v5(JtO@Ee`n=RjZ@hPdP zESoVeef6uqiJ6O>lboCWhz^UK>rRPjFKJY^8==X!$Y1H?#r4GEn~dgUL^6pyi@fyk z;luLWbI;v79V0H8(SQbPt_4&eTA2;lhz2ruhZHKPxn6lADj&JlS;}ZeLh(E_2y@&# zhn1d`V`Xh?DzEu_uu)U?=o)K$jMU+JrWAh&@P2#RXL{pT<|#j=bf( z%5iyK$N5`c&g{|)Tp#nf$Eq%u<+YWl2mOJxb$E7o9~~W+vzKp3I~>r83cRO)o-b_X z>%7f9V{)fwRK~qH(z%aoYt8KY;NHg9-!wW~sjIDa+|P3lZDshfzIT7;b8JO^@;4sG z{`kGWW8M1-<=>PU$RD}hSi~^}Lfl)>ndi)zGxwb1xaO6Wl^OZLi7XPx`Lu0h5U}(( z)?SYLOh(xI)8o)sO+⩔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

&fi?_v}*m#>xS5M{chWBlX4 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 GJp3;jwqDKv diff --git a/extras/ietf105/topo-test_gtp4d.png b/extras/ietf105/topo-test_gtp4d.png deleted file mode 100644 index d60beb230930f5f2a91641caecb63a4025f24915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138014 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 I>g_-N2VIs9&;S4c diff --git a/extras/ietf105/topo-test_gtp6.png b/extras/ietf105/topo-test_gtp6.png deleted file mode 100644 index 2cad260215a37482d955ac7f9eed76f157a8d930..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131731 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

WkWl}qxII$v_iOetRmS2W6}L-bKY+}7%2 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 z zTc=Eh)EgdPhH3Z|a)mr>PjvP(uNf@_rq|(ha#{P*PaU)@G;bG1J%yh%Dq9*ek~fMq z{9&9NxUr+NFu+M(H91bkNXsK;t|mXwio8M;7QkTw1Gp%3y5OBtS9|aVh4T^IF3m?# z6?gdG@O~3#Z!!1u^RV5e{!1uX8>)g?mFrhN7T-2W$#}sAl$H)-G?bEl`{wwiF7m1w zvbtlix}UKnoZGj_>_$8_L<$0;7FC6|i!dXjmBNXPM!#A6 zC43I0@!=iWe)){~!LJzYI)E)&Qi?A0fynA`ZCRU+y?i`TWuS)V)Au~m1VBnI2;5u1 zU$jueIIM4MULxmtE6FYb*J~UKo~FnQHS3Gs?@^FXSEFt1#>E z^TI!)u6`kGGe!lTbk9B>G3CpK%qXH#s2WBa`!Sz>T*=%LUWP+!s2zyI-y;nr`@9xQ zFBTbipV^%L$#&=~*PK6L9`8^RT^F*zbnx(@<#|u9F{obMZaAZ(&buf%dAhm-)If`- z{Np=7sN_1d`knY-i#UZVKbd*rC$GIdB;imHQx%-9P86bXIfNXx(NAn7 zX1_r!BMg9jJjq8XnCeSMO9Y%lPcdC8Cq_uze^xj-QzPj&t(LFWhDv-tS!7FNLu@PM z`oiBH$6qdA5c~3Dqfl^gmF-$!#X7cr;(DmgL}W_?ma2-goa#dFlF$d}(jrGD)z9C=;+gU#6eo8*Z9Uwhvf)l|E6 ztB3{R6$NQh1q39t1QpN_P-!YfRGLzhu5^%QfQYCVL|O<%N(6jCsRoo90!j%9fryHL zRDlp`fP|I=!WTT}jPHzl-}~qOCcpOBBiY$|J#)@A*V_AewoO)xz9*l2`)bl$@bIyP zy%%pE{ouhoK1LYatjJw5hJ!$RFZx>kVb|;m^63*Vhoy4oY_YG97aUwMsT~ivCx|6Ib&Y$*- zINX^faN<$Da#uyx6j-34y`!N<+e*V9zi~YCzNf3_F-;Xl-uMGEvA6d{lrI4WERdm8 z@2yFRMD(1VwYzwokrFm*T7t8NKlzs?t8Q8%$LFX6>^~$wFL~e+%KN;7jYI5zc1aw# zov^nn?$o+Ns=~}^pxI%K9uXhwdlDlmN*WSR5AK`14V@~m4~Kccc~H`E(Z;9y^zw>^ zf})CD##&+?*}QDgFVWDDK^H~%uI+Jv>6(>Szlpt4bG<-V<65;y=PdEYM3=y=ZU-;j z1BBjdbDu*iU7_aTRs4z5B8pBwHt8HA#j#S-`?OGHzkPan8+o!!;nw?^#lxp)E3fTO z>L$fhySyDVNA#>kr<#DPGr{pp?v=61{_t>ZnE@);Uej@cT zwW}g&yQjm?4QU=Nb;7c&A!a{J&%#X+dw!A(@K=QPvIm!qsmORJL~WX9JjTaF!ZDHa1XC& zgVQG)Eem9lwT3_A@9k-0(C28Aueum!g?uMde!Rd2D10)BczE-517a=~O4utf_T8%pv%D;9Q81hd*B-DrK}Sox+>g-M;{ zkHP_0rTz3g9-ErH^s^i;Puf}ZaZckgr1fGL(Es^uS4q7oz8ftst!(ai?M!hh`q^P~L-jXeC}A+xq-o=-m(%C|3U*3EEaQjKqAQPNE`D6kZH|3$5g zog(1K%LSo^xE~F)jEJZ;{TWHl8>|pw`<@a=7Euu zwcD~0aj_cOeorP|w7Eba`d7h;6YJAGV_>+_S304XY$^2B>Op2^i{R^3Zax>0hFex` z#mAX+=)qS-*Kevn|DdUZjg43x|D1B1lIm~vn=l+C`r^!i0}4i+ufDVJde#!@#3zS! z8@TD-0mb^TprB}=3?|&Dcx7=|(*SR>zVV~1i8DJ<*J4UZiuY6@JR9@13|Kj#9Y*I&3_m@-d2q)a z{{GzTxmvuL|43_lhVxSTTNTqXk!pMwjM4n-saN631B*JaH*bqSR6&z?-NWj8$qz1? zaHbYLP#ir`%SV=hk7svep>&FxvJ3byEdl9ShpErZFY>Kiza2{L*zOz2feZxO$L{qL z$Pgpm9p!m)q1G=&2`=Dfm+I~H$yLWXyWc7M7FM32PSZi%d>^Q+hP#$(a0QuC>0)n$qO6wPzh zoS@!*sqX3&`{>-J3gdQ*^rp?8@-VO!BzW$%?b){^(DW%1{C0z^HM{6w2vQOanzM%` zGMxa6{G}2OH`rZUcRD|z_rqiML|;?)A50^YI~PZ7*|-U4!{k@frj`Qqmqivyaz@|; zEM!#3@}9>)JTgozvSf+`=%}p$tQmIec1yqXxiob(+s|I-7JF$+oRD+JhKMo>JH>rM zxL;s`0+YN$+>G6>sglTWW5r20>os^`Hd(gs*?ul1pGpc)h)7G^T`rw_Tb~zVJ7J0F zQ0wQfRReMtS+s-aQdxeEU11uI(uQLg?(%_;=Tj(@)zgp-@cu&c95r$4lGg#b-jGd) zqwjPP8I8&7b&}kNj>_oY?KvC)Vp7xAvSo zCF8-$n@+hHTSPz^Gkz~L;5xtc)2l)>M%Lh4tqkdrDs;r}?$xTa-w}gFOvSxii_!YN z4NIYVde_-(3ai0Z`(`O|l&m$O_IYunx;)}H^{-=^v8GQmCzz%NItfLiqUx|-}4)X`2J?C=e{& z@70aE&Z+(yR--R2f*GY)kdIGjoFMDz)t1bI&zzn6DHBeAV0H`6q_NJWl7{MhA!l2> zPU_2W=f2Rb-5!tiON{~k4xAb>UpqBAt8kCq`EE00y|=SLwQ*0kN)o_+T|(E24J^)z zn80r(pK036MmW#`u1+9D`G|AQlhUp71wz$@Szv=U4=FtxDC zhUJiQ+f0%hZM`l-gHDTvSE{Y8c2$nAUEJ;}Nzqd0Z&%*(YsEIgSRGVf(&T`$?8p?T?B(LM9xLo} zaTwohixdn}_^SDtO%zv@1)dQrdH%e?>aoD(#%rjOF3yPBVONQtX}z)QX^lAZU^qQ9 zN&^&-t2wF{-Z@J%UiY3=@nG7L1ZDj1?++9(Rd}9Yk$bwr&bvTpEFMwgXvn+ zih8}RbZ7^i!%ZO@Id}TfDq7j}BV62575Zt;(r}1dLPL=`8T*M6Rn|yRe`&x9OPAkmfeNt-3YQqA+R#}^aN4ictp0ld#kcTj7)LfBeioRJQcR#{WvS!2AILGHcww2; z3=(k|ODE=)n?k9-vjC@|S}#atDTovhB$bd#~}lsIcB=#b)5Ejr*7zX+Amz7?eizcv!uU%VG&Q%g_Yy$%bI&iwX**?V+m_&P zRL3?Q-RL&Dd^2cdn#h?NA<8C7&Jk=NAA20Vco+NH0KT>|g40^KuA1-Y6|mrCJ3?e3 z_oMb+Q$8{zo^#nBvtJ1Hm4JZ9dGZGci)uzAF#!|n@Ek<~jImr!n^3weanHY7s89^h zXEei#M>y498;=08?LEJb3w2z{w6k)yxiu@Ah`k}D`S+tri}3Tz)I=lrczlW7Pwf)3 zk7ov^4di12?<8%nP3O{Jx&3{o@RjF#yp0u}2Chyn4r8&K%dzLW*78P-A2)*q`>XGl zmP$DYOi=Ot?aou&kFfI+2#==IHFi)C^Tu%Ph4z#(pU~t;>X7iHbWkTM;{z7J>>E%g zvDZwE&234xkNT_t1XPr3P~Bb{(iBgU*Z-psH^=fa2H2l)YpIQv zPr!b`-RESwgr{cnB~nMATg9}Q!M;=#(l?i4ntS&w@i%FIT^P>cSvmhg8^=o;-NKvX zdfXo;8P6=QJ2g~#!^_l#p#r)kff!+}^G#v_wB_`~wg;OV&|@WK?iZMHA5=?>38)Cy zn~dwWI){$hW^n2CN7Y8i2}o8*WzU|_VEMsjQl>MNm@ATA`R7T$D&4v|@^dpXdvn($ zbgZNzeqWb=dL)D;LHZu3^b}}DFeiu#OBv9l@qhfDK3Y;C$&j26f*6y(eV?#nq?gpl< zd;k5l5~&lf7tAcPHH-{r7^KQ>mxc8F3xlZn0yTC2tA5Sn1; zi!CN+iCrbnr{dAPuTEckfDPDiW!#hRj@tP08zfay{5-82@>ymuL(3%S(|u~zraE;{ zK<5Giqpfg&Q7QjgA~)n$0EniI}1P(?+a=VD2`U&w__AQ&mkMCrw+q7s>Ew2qxf~RH*r*n z)MovcAh0L!O+aXCl3R}xGc3MtvB}M>4y15Gwc4k-l7!K+PN!fOM;|fohM$uBbQ zf12G>58*uJ22!{e39M$@nZophX{7o-^FN?=dXvy0PZD9b{ovXW@ml|Axrw6AKB>_= zQOsF%zt_S;yAfuaP+hLFJ-JVuVC8ixW@-aS^X1~bI+omzTFXLL2I8>GCL5Tu9`+sW zZl?IeMwdBTn`h%wT`q3lWli!aQA>5{3^{el)BKw>e;ok;DfZx%LuOf}FF^}+-!@UB z4etSdO>d%(Vr;p%-H&U70tz=Prf<5p<+cbG$zB16qCj683z|Tu4LE^obFVIX)4^q9!F@Tx2IjH@E%S265lKtrlu{E23e0s+WxQ z0a6p-=|YF%|@2P!%q!3Y=(OqunWBj9}PKYfLr!9@MZ zpBfe14;=Mr5snTb>d!fx;8uI4&!;clFZH*4fx$2FI3f;fI8&J2dD8&;2q@7(bn1zDdfmvFpJ9;yOE*A#0Ob2v>6>fHe;1h7g^*AsPq zJJ)qJKXJ6SFk+dy%1iqN?cqK|R9&)Nk=v%iBZsX;#Iz2;kLiSOxpMzd8D+yoLt)y* z!S=`QjF!Ga_VLbi@Nl#8^|rpT;l4vTNS#1|&oY9A-(=VTuP-tH%vMzCxh9Z;z<&~H zsLh*^@nkS8^j_rIoguKT<*I91-;Q#Ig@Xu4j~ns_D`VshLGaudhSyIufOOqGtGX>h z?e9A0+QIb;h*R|C4)Ko%aTaZ*+e(5p9vE=tgl9O!9ZPABOnMuBWGLuUIJGUrf^S4m zn$2fZbiVTgNDtU}?*zHWCgCS?Dux}|(Q7E~oYFh&;FhrJ=3-hI z$Z=h@`yF+(?KnQ@V7;pU5kr_)l2F>|6hR+z)M@gszdGxCpN6(pi_FRDd^~4;m;aj{ zw8DzMDisGe9PsNV81gszzny>a_Ih<_Qs3aBh5M!XG(bBceWWRGNL28U1ot5o-{=<0 z<%KyQHER5mivzie&QTeIb)?)imxh-}@;*zvqN0Mk6^c=hyuG%s>dSC+81$Z>-_X_y zRnYBzJ6;sZAGo4;Z{)+hGu4TA90I@9$LxTeqdnSOs})s~jJCaNRy;fP<-Nm`@zjG8 z?W3Wn3%49!30v0SOJ!0f=a&bd5^l* z5yQvLADc%q!VpkRwn{aoV?hd}mTkd@fBVokGQhahh_vNh(>_^n)}_%_=Ul{nMM=q* zmGfc%x)J3XOHOQMyoW|(<5Te47j0g9TvAdz?Kae;Kmcx!ELd6xWmUe8iazvFVJXM< z8G9_Dg-lj*fJ`6mJVVHM4dfWkP=`;LAt{7k`76}`WHr%}41Hz$B^NH^LP<$5%yiAxehiW$lNUM3vj)u;Z_YM{U}PV>MDAg$doVOe+| zlPo8qb@7MvM-N#g8}3F?JSux37i!`DCF1_j2Z@yfhK`KvvnbpzlQ1`(9t$G|*))P< zYdmen@cjkL(N0pzr1rzFvojE(;DcR}1{v9oZVYP?n`$4&pU8(KtFvBm$ym_1>&Pai z9}#5UD*t|{WTSs_rgAZ?m0)YR{UsNk0x%AO(SO(Cb*5*T@hKj%Ym}#NhY<9UIU6Kt z2p#fyv1@>8QJW?hM&W`w`;Gdw|J1i=48Y9Cy9N!#h-tq^I8>PCdq}IW61CbUiKQz+ zk@7D=$+;xAY@&8BI$@sVUI`Yw6Dwzpl>l@)z4$gyGA8HGt9wKc<$K4_+hrO`4)K^R z0@j3OQC;+>^3bvBKj!bAl?-H|0tc zuhJ8X!~^8YUC9aY$(=5;-`c=Ys^&)a5vLXQxjrkD>_LH#PAsuo^FL3xrg|po*D16Q z+o5OJcYYeYUqgyi@nFyW8Acfm)$7LADU>LMKhC$A$aO)sXLHztKg}Z~XL>CFEEv;& z(Ibvx)0Gv&(9!V%3mS?SJX}1RY}y1luo6BIq;h~}r`!l_*rbK2xZRg`c<$^v427Ur zt702E+N8kXM%;+wmn}M*UdP2onxrlEYe@m7iwNZfHyz}HLZXh0Oxzoja|%5&LO-zZ z7m#NR+dsI4RkA=;a8SJ`I$lpNE>4mkcX&ZWE-%n~_F>Ic_pjnlPxrSG4xJNIulk8Y zT0YTqaU0nr3K?!?WFR>0lC??KLi;)d3AJUv{lGQ<^fhTp@mu@7xvX+j+?DH$q4!#H zQMptze?lwc+ChbSykSM#tM092FsX0&RE+HPT#Hg7w@rJ0mt~r+;HA1>oAtJqGaQ?$ ze;6!OQq{CR^qUsZif;r0HR~fC!s!=-yAu#%ULfE@v(^kB%c;%Tcm4q(P3TaFBtX;A zXr4&vrnb0eXUExwF-sxj3MQhFQl-aW=Djc1V-VQyY0TtzX9T2SSRT5!OH|Xw4`1<@ z5nZTw*X!0A968sQ+3%xsW&vl9@*O;!AvTZAfSN_Wi7p7eNlI*>gg z2GpDwe%6Xt>&9(c8`v>@veJT~4Y2X4vks#*+poa_|8nOdHgDFrsXN`W!To`5<1uJyCdql5U>|^h&s<#p5W(u3RkW+mN<4;R zE(4|MK4)Cq+Ho&XV$uziGzUkcSkBWH8SW88+i)B}Dv{XtvyJou8NOm| zb_5$poA1lgdZ78c>3;8ZPDS{X9Wrm2IT*6z8J0q#=Wnu=megTzekNm}jS%J=j`7nTcWp0=?=e=)mmXNu3kj%_mXmWgiXbk$ zq`9!rU>7n&YI$aOmhlPA)GPr;o>92#&Uv?coH>QH6#?d0|2tzdN`CAZPS1AjoiCcw z@t)=$-$2rW=W=ZsJZ%2}HfmryuLu=QI9o@H=TNV)AE-pxX$g~T)2)US3P30IX&OfMVPrYpBKC*HLOD7P?YI8VanJ zRv%^CM{P2s7>x~2Z$uQCzNQoxCbs8JNyl5Iilo?|A6;CW;5lmB&n1|giocSn7tZjk z>08WGqC@kptY8iFq}HS+22Lmzu`}kfy}oe>gq<>^JOWdr|e*0-E_h``<3M^>%l(o@W0yVV*)%6C-OH(QYh)uhc~Ks za_NV=`vbS>I42!pEpTEmbb|Uy{!!Xom)LSkCdWEE z(fJ)4@&Q}naC{_`i(5FOxd*RF#-SJ51e4_-ol*{w&|WT)XI`4W=?(+geDTO8Ha^n4 zAGO{K=*0Qi4=?Cqn$;51uRU%)CET$P5p}|aiW^^emVv=4GSlopx*<9ZZwL?4YjuWe z7IAn_BP}~!K;V$@1U0cuo>=DPv#u#!p4|5bZ$7*~SXL<%pKTdW-5tEy*Xk?upu!fy z7~vQ)c05z!b-X~jNTm(+SyLSEHZj|7v<#G(%(=?wT3LaMHtmnM(z;y8oV=a(DrHI} zVNR3h=sT_kmrq|^)Fo91LoHIZj#wZ!L(R1b$Z5O7VOYf%j{-pBZXZ2YD^H!j%If^1~5o6OF zt6FUR$^kP}n^^>Gq&HcA&F^7KR?iF=}R_02mNjP41thvj}MIm0s*(8HgIii1o( z^RrxY{FR%dK~k2>vPo#Ih1L#IDI?<6X@CO1ojkMShNog5Pck-Zk2voC!#=KP%>9iU zsR~h(f6I}3V{Q)TPP6j81E>{Q`z!#_pD02W5q>%l+sogfz0$8sWL zIO()JcStlK(8W}v9!RJftqTsX`MV7~u^Py!k+`{TCTqZER|Or~5^{QqhC(-8`zo@D z29MTGQ?6vs`z<4Q%91l4*F_n&b_lhgAAnM(EJL&>T&XALcXYc!HOcBc$Q=726yv(T zcIfJYr>Q>SO2W0No>t;{28fw*IT=X8x+XMM%qxhfs@M2P0!qAHmVLLwHXiM8Lw`(? zmm^Frmz@3t>dan9wc^cwFQPXqOCu>eCkT~KVr@|qZR_-$$#b!s zPQ|V8@NEP6-lD722zypE@T8@pZ@o2EH4d@_1+qqYZ1UpFMO`)KsRXzC*iCiz78@Tljdya>!Ea zdnfTwkJ3`DF9%uQD65tn{fbW?fOX+#`g~v11Q(EtgIk8V3ruqp;RuS`T+B{c#koS& z>nuJ(byMF8R(c0sA7ztbrdxo#?CX3Z{I5_6plrp?ZqXl$34z%M6HwFxt9B`x#72=Rd=(YQPUm@Jnp*LyHzjj^K%(SSMO@&#T}osm zxF*E={yNsaadPLM{}$F3#M3T+N7M9MJMEFV0JZh@uCFmT3uMeOy&(Q!YP-i~1vFk{ z_$A`(jS%!l>B|k%+LGc8o&&neCAOJb=QRC~81GMre>rEZ_NokEG(I(DG9bV)F_ZP= z%WkXF-f*yqB z_ut)|i$wr*cTW*T&4A-t1{SShzTol;=JlckP@v5khg}C{hB1SQiRd6Tgab`-eQU)xDLdjkn+hnF3$CKez z;8e%4Ymg>c=gHz1$py>dJNKN3q0t4vDTu`K2k}tc2Gcg7!6F+DHxW~G8PXL4f}CgY zq6H`-?t~)gA%3}hk%J^nNXP_d&@QJNX2)Nd{XRhr2J!@{v=0uX69a0rbw*(z41{xF z&UrWJH_FL}LoTGQ|1rVQFIAIb)|SJvUWlVI&ycJ#?1VL?UHGJ-sT2q~^E@eXNNrBw zLfr#S>AFG8LNU^+27;O)=X1D=VbkhsFV|N&)LW7|G)f=Qf?%Tdmqt^q5eXeK=0v>ZiXyK>_? z($|?tF}a2s`*1NdhkPaN(8$isQ2B2Yqn)xkxj>NMRNbZTI|WpmY?5GHrF7=td$TtE zhJ*%9b8}qByv0<pg1O~6OK(2; zS9gX(-+$h?E%bqy-wUW1{-e(Sk1uf|dVRk<3Gi&k>;2nf{^N$Hl|Bu#d$j)w(Qe#! za@79@WEUa-Cl7ZKvWt-aBFH}|^)5no5weSre_>#k3%gv{<-#r({s{xS-g4Jl{&%hM ze_N?tgzO?@7a{+`z%CbdxvGK>Dq4!7B`N}zNC8TtNF$-s(gG0y73o_=K$?K`O@N3^*&sv_gMc)O z1R+A`LVys0ibRNj5FkKEg7grQ(1idY$=$)X&MnV5^}gedaesVceD%X&NVE6aYt1$1 zGoSg)_3)yV*|shFx2#*YZkzeJvzOPc+f=%4otVewjleq_)K@9Mf9pdpoBg(~r0u{Y z@Q38hbB>|w*2zeV{;l`P=>&dqYMuGn(^sO_Pg8wL)$P-J*}slIejxTR_tvR%Do;)y zk}^N!={>DVNp+R?^o02rxr`R63i_jl2}BpmE8(fUHnfO&St{dE;Z7g>CP{LO4?eTo#rdPj-rXMt8IM_1?PmV&a>3 z96WXFZ(ba@o{%X&!lW4fhwtrpA#u1AxAWg!3b>1hy7=Kz^3bsx;{V}t=R6=%|7KL8 zj~bjdpYuR{y83nVzkh-qPZ}2G|Na5j?vj88zU7wqF?Z*`os1m^4<;~;{&ueZHDLc= z4kqCC+&``OA133J7zOfo)BfkP_xyHB45GgMj_IFo{LM9QiC1y|W(EK2m+$V~5?^#W zurcXBOvZZ20QP@ao*fQb*Go>LPyV$3^nZ8)>0a7~|1hVed&H!B{e$;v-~JCz02tV& zzj^*YfBBDr{bh0gF|hAu{EvbCmk;>IgZ=5f|M6gdai#x+$nRn7pAh+%Sp5$M`|d0L z!C-#@*#BU#?*Qu`kpGty;UAE{2C)9gBLA8U{*y(n0jz&$ia!xI;5h%UpeX{Azi)$S z%>?@Dm>x+Jx=ftJ;Q7ojq%+m8w%IbU9A9K7^%wuS2D%1sNv=-W<1^y<4EJ^lWB>i% zzF+3RNq}nE-~+Y*zEypCt4r{wpGo_CULJRi<8;r*(->~t3@a1Oy|p~535||G%H?%=u3VLZ z^oF%VXrYGab{MCzq}bjqdUS!xj*qk&fC_o^9EcBnOc#?L2<1_%@5{$bEaYx7x)FaM zuLC-BN8y5kaEVZmvpS;8t7JM44DBHe%X6z$pY`AD_+7?QH1{Z5djg)1o6lk!%0={E zogWUQ?dpzR9!;}$UmcPu2m&rkimac{n)ET@^@TB<=`poLSC$r;^T5pT8con!;17;X zR0dUE?wAMvu9>*cx^+>%HfBMb%^@T{d!S-L?!H3LgH|7{A(pUomhb$c9*_Yh?WGGt8) z!ngSx;c6`N%@RJR->5$v&!Yx`1WUu?arDe3Xw5eKuC-N;`}s)&&0e3e^Wdq$b(>wn zyKPAlGA_rst5mR7^}3Onk5VRslG9>!2q}g9v)9*;(^6Af+3{TLxcJly1d?OX2!9i| zSdn9-{6}Qbi2|{q&^CRa?e*uqVV8}T4Vk{yverzFCs^$*Z(!V5FYen`_ZJ{jC2xy! zTpN%6h%G;v-K5Q`%xD}`Ke;+{-=wZxa(YVr)^r&^7FcSNI5vci?TO#*vgbOT6@kgz z^ Zs$qltF)EM7rOn}BoXGsg)BPCVCkqtZpT zPr7fs@G5C>+R~uEP4o=<_41O_tN!-0!gJ*^JPh5Hq@t_I!p~)F=M~$`L4t;aINuyE zNzs@ZBE%qRj=d#&+C|IL5Ps-l`Apq>TW0-AH;Pp&FkNN+x_2P_9@e2$z8M|dhpaCA zDEqLEa#=1(S2NeO=R}X@P0-|LJ`4woG)Jv>+cYpKO+ z@~hmD@Vr!ur9j*BuVJ?^*KanjE>2DYLl66QPp0kRxYxBfB&Z6aL3&q&0=`+py|Tr@ z?AU5*fuWbxbxm@idLMq=h@HOWG2@qdC#Nwpla-DGje7g*N9JharJTK*QJN=dma13X zK48H{ljhbL+b{+!Y+<|Bk2~U~_#=1x+;h~I$jSlFmJc|#%OBamXdDz1ZYPR8EKYey z(Www;-ceW`^yl2U>RgXeK98f~nEoU_8!A*c z+kr_+AuI5D31d4Ooxv5k;2?;ly*2pgX=sn5kEH^C!fZUd1<8@Qse8G4*sfIX_DA^9 zbl1{!YeLv$rBk~V6qAIwgePUOv|*1l`s&nhG;59~=8|)Hp_~#4>3IR#Gch$lUv7(R zYhLz>V_H*=_`1zF?QqA1TRAXy*1H5D=@#)ahuKxB$AW}Spn~j}se$=;48uA3Px^Z; zV)UHJJ&Cs(qVq=@OTbXfEWqqbX(Nky-9d;tCYXj z=8+ycl2AI{bYmd}PqnFCOul^6r4*DL{%{eF+I0#K>zoDOjbq;dZCj{Nv)pRe;CRug zA>9YYcP-?`;AmUVnu%c-e?A-uMP1rrwe>PqDx8ghgWb;$k(;V)oFkn3$%{eJ>kne5 z_IcyzNUZ08r}y)I_n`SjY{YbHL?p$SxMog&M(u`h<%<^_TySci&{QoyY)J3b`>o`k z;m2nqh^+Q;MxE;_XlP=Jwf}6eFwmkbvTU(Dx#aiVq$;}79B-f8CxXu7p}`WVSRjhM z3_7C=8k8|Wxos*8jU|hlPQSDv@2E8`Q&V~aGo1UpymEo*w+GX`gs(yentYl-nM<@0^ z?7aO%x`pq0sO+%cdeXTMdq$>HZ)(gOdEk$`{i4jx=r!X#cG}$46$m=6+#`Js*eTyS zHFUwLz`eU?lKGArWVVvOX6?l5XzgIAOx^S80|_4O-D4k7H3}SB>f$mJh^H=*59yb- zfVRHPJkJXT0#|InAMSgUApX|xuM*0AG3S56FMZOarREmbpJ+Sjx&5HoDR&R24~uLe zACFf}F#2M!$8s6>(;vuj3C*bYVROyO?Yur*4Sl5t(`NIPYrHq#qdKRb795blLTr~M zpul>Mgf&1Ijzuxc++cD%!zmn2PiChRYPcdG$PPLmBxsF3Ql3J_k+(LO%sqvDk>q$C zr16k#8zh)u=U@H;P1hwbV5fqYpOXjn1UNow6)so{!%Fzd>OlUaY;J&r_|mXUK{IpQF2uKS>L%|VdIf8(=n&OuJ8h5 zP9aGVh}il&X;oMa8y7mRI1^OIe_M$PZ`0I`A3KqwZ$b{w?XOXTE~i2D3C*4cu6a?D z7VaQ-3kMCo3r_exa;@OlkkIXD4gZ~wkw0j*aaS4=+$eOVG`oC%giTJT#CWF?De{1M zMyQtV*Zw*7=Lg-25qkOJgXuom`kQ_)2Hci$1PkYKsEoIRoLRN5@L=(EZ%LA8vc5M9 zjCF!0*uM8ZZEN0>l2=SN%C$QA?e6lj*XwHC@@XKUJ4=X-ie)`5y0!xmY!cY)h2!?S+_&Cd2#MUu>Xz zi5ZN?hqP2=Qx$i}OA6BPtE0{!ul{x#e38j;7p@?>wf1v&FsikOusPCvCiFCCbE9+F zaPN(PAJK4$yV$3f$XUS#`I%d;?6b4i^ZsBgxERJwyt?0ZJesVkft@a|IT0HibRsX@ zXs81gzYv?`*+?L63zvJt_{G&kgzWlw_z2V5(CM_fknYEgT z&P*zH!1UtoMwxu#E6oX~Py#t-3vBT*o==|yf)2$r zq&ydS@a@xgO1WkpS6r2DY(?ysbIHZ1DQ(lN9=tudEhy?EVzR;+aSOF#dO7T!{nslg zk(m4{?eK+(V8foH<}Om-`dtgD!`!k9Fo_Cu{-wI-@6HeI*#Q%ec<;D=((kJtsxdb z%1@I~7zzny<*YX6xEvi*L%b^yf$RBqzG$$cM%~PZnhHVrd>C1G5uq5%2~WD#w_NXl zU5Z3*|K^IF$T(erNlIpZdap#r9POrZo{s89)NUt*d=gSaz^NtRmmw{xvb-w%knj@T z>|g$N%Q+8W$?YCx5o9}D3KGNS7EV4(OX%tilYHNOH<%Qxd8f>@AO6JESg%L(FjFqMZZ(fvlY(GbsN8|bK z8|~0#*}Y2BX1*gFbLA{;n6Z3&($1D)Hq~&?sXf};D^fmEJ?jn!DfV#9R3`!y;18Fj znfn6m{o1F(7!pEc^H@v(%I)xtBg^so-@6j-?VPC!GNPZGP4-O)eK;=0O#U4vQO&z- zXXcT1iavSmcR8IYBe%=YO4L4yDV10M4KthNo(x29h$z+^qfV`u29K93Mi9f|-c;9U zl_+%e#UZWQaBgOcpx=Q!usw%7nRAT=dW&B~qq25=lhss<_jN{sr}|A5>$!+`$qj+- zgm8Fw%p(|Mi5C9&n>J_}rC}fl)aLmaMAmM%F?3xuxi&Q<>?f&zek4rfBT>n-pM=c$ zDIG)^7`6s02Tw_!^H5Onr2zh~!EN(y!_;@hk+Uii&Q!BP-f>Nf1T#r|f#Iksv0z+$ z{9N7QhjZF8Kka#&x>v1NR`SD?=3CWc0WHPZDDoVTKi67vssfw8OldR}785T+oS@jj zfSTzgT&>-%a)}2LH@j`bD%X{ao>xix%w84*K4Qo0gq;QR^blt>myORiQ$KQt1mx(h z6A=9^^?Z%@2Bw8%#3D2R65zk=Fi4&4D*-;znR(|E@dxF(7h&Pxo-ZFBU= zLI)2xBghPWw~&(4=TDrjTKe&!2^H-P>)) zvk{5JT5hL`94vnKU&wiYAP{U017GFraX{B6Pvoq06_lVATN`^eGoCiGbiG{*RE&#v zW0D&=>Vd(DNsL{e8a&g7zK-r5C?@ONXUQ5#e={O;?p$jJ9;(FXT~n4)D1nI@liCzfKkLO5EBM?BV3N(;#R9N|Xf6TYZ zSu+vQIu%c6n%RWHF3&|2T*7VrXPoYGNXd8dw;I~-bQ z@kcDU(G+SpSWOaLK!HL$ZJ=y6AE&>$$Y=iCTa68^Nr2s1FiI9bmk`3=Un6;_Q+n&4 z?^bU(TCJAu{KQt(F&4=8T1l}v01J`1i0Aj)bcXePDMpMONuai?aKwTPB<@h2yB+PI zeI6~o-JZ`>CQn9* zDR~pRdLe$l2Ybs6C7PS5W~(i_!BfbtIZ=H?H(h0i#G1t8nZJWmy)IA}HETvvk{El` zLqA9=U(k$hw$Np*cYR6Gc_3oaWF_Z^CQ8hwbp^$=Ax?18YrJ!0K}UzW%?C(ddR=(L z`3zKG9>c&=h_f}Y7zyf5$Yrur1?>I5ZP*-g={o_Pu%~xrYAGS`9#fRTH2j)y{P&)y z@`G<0t|4iaN}Mf6;Q1cj>8lJhT%VJX-OQ0MNfmcnoMF~XX+}GBmObqzj(8cR2%G3j zvg%crfZ*%A(LCv*yiva1o`G*^{f;S-`mQmFdY7vYPChxaJzc@Af`FN57aYi-@bq6*IC{Hb8Q< z$?*tUpQ=T%t;q_*-OtcaNW`R(ooeCbB(-o?x{9}3vKC5?V(Cn)*A;`fDEd+isKOYe zcmyXh>-A)R#WcutgE*XgssH}Q{RiS(i+ihT_n-%S{zca@0QDcQ_M)va00!d$Z<*$G z%dUY`N!N`1wiRU?n$UOdJWOV*H@q2t`F+c;Vp~)T0xsCn>P0E*z!h70iUdSr&hl!Np`FB2$axP`47h)= zMM0tkNZYm|%#5Zk$;xf*ADgSEGM(i%3YK8PD8**?%-WkXC?N+=yD~gie=XCkcML{T zL=vu9D}J+R(!4WU)D|2BG7TUduwLUU*ATJDX4gxrn7YZuxz4TR2uM&6As5-YH<%k$ z-wQ>5gh-OjjOU()`f$r!D3hQD6{O@~J5(^AdF_ko&w9_OTJ@-8(B(*E>809@r5Ems zGBdSFXV<(`7uw{0^W%#m>bGoZ)q#htDzjCs*ORotk@_lcGs~t>;liPsI2Am<}=*3){l!$%W&#V2f&&#oH-gmVn ztMqwYt{e$fblZB{RCU79>Z4A~9vSiOGm+_s)nCOfbeO?x_2jV%kqM;oR27=)NoNfT zn;B%3nwBr_li;5(zF1DRcMb0jdoLmLg#_(xyELUgF!8Nr>MgzF3`7l^Ntklj-_s_B z&z5DX4!TAhQBhqjgT(~^+;!7lb7O&-dBIf{)8;9*0G>0=~aGLiP+aEmCqV) zH8+EglzI7P62&73f*Jo9+cZOk{93yL1RJfECby+&&e>?u&CdYXMW7M`rBaJ15f9kc z6`jjOD`4YK(3@Z>pfzy*LLt1>kdU@d!#$w%7gXEK@T~Fp>~t`=0gSnjm=tH9lr{GEXxj07ldfvZHZ zH83E)+Sj*3De=hDHY8m(Vs~%xMs31@&@brQ6~`^---e2NOXw-Jr%^N$s%<;VI-1l? z&Kt#Bye!#xdzb@IV^Ez0*Ure)Dd%4=I15AsK7!UH;SS70Lk}zFm|ksk>g|#kU$&)V z*3eNh3;DcNtHWR_04vdol$;FKWS0%hm7NOTcO8=>@zlAS9>av-$Z79yw&RC>M!hg| zAa{7^<)4i;$=lsfVl_z>ymPy8W7)J;6GnLJi6k6fiCK1=a+ucMFF*-bP~(%WX)-GE z0BUJlAI&)O14y{Z-=Xq{YtwTjIAFjO|BcAwp^WG6z<-on>Nm~HPRrkmIUAWj!u0zI z*9|V)zxivs3L3p{%Fc6CHTg6i*Wnzw*P*|jLFyc7crKi(0{OWe=d4ruN>~9pRDH3>waEU z+jUFnr>%pgs%0k;C?IhG?;g;$>?%(!b+L4ckSes$sJU))u=;>L&IMXP-^zlYzD7*W z?&Q1uhG|?1;Su9x-@BT(wVcb)Nb5@zk9gSM{d6QpuuxDCUv~WkLv7-~6e?8>%xF2e=$2Vg-g^b2`Mw~d1&(~BnTrJ95H)|ObLo&PqS0U|0yJ0Bn;LKfR!>c5Qvr<~c=j+J9W4z>#a}MOT_^P8|Pqa^T!pv0M z2aGe+Fvr#;FD){!ERDO1U7h+i2(;i8-KZ#ER@N@#7WM5wK;-FHd?G*tMKvLKZ(wcW zdCAFM@0aG>ru4fk_#70J-^KIO*Q(tC7*#a74YQK^%0MK8?nEZ?-#m9^m&mpn(CJDiz?sKSPxMes}@aB0)m{b7}Dsm z^Si+zG*EMZ`==g`Yq81JQg(69U3X*Om)$pu7n{@_oHr&&7$`PVYLPY$GB0sVa8PE! zS5|$Wgp<<#t=aJWgTaSOvDTcL@oWQSUu4B3W@~?c+VKxD;u*x4EhTnl6YyO14B5f1f|{m`t08<19J1Cm?AY z(=5Ri94#u=Dce=}Wx6kYkU<=kAtl+GQK%ZTPB^qz^t&wqY0cCr2Y6loVtMKS^~mXZ z7jF)iLR+k|F&UPhK<9ZnDc>=5z$A(4u9+##eTL)u?dhoqU!UhdLO83K}zj*4R z@!a02&C}oL^K}|%JUT0|0G{>+LuMXbFKlkk6Zn%C8vXhjK$HllHelT zKc@+u;0ZH|(1s@Gr*SF=3}~~-g&nO*PZHl-OhqQWdJ$CAh3$Z63CYJ-W1|XNxx6yl>VCrj%nbxM#w4i!uE4#k};ihkbBI z%apV_c^l8?r&#QiCeM|3xAShlOX=mi<)UpJfpXuQv`TrfFYb2tY$U_JJ>+cgX|KFb z_7Evdkh3L{Ix$dHb3q#Qt0jdCFRWz7?w>UhtCxqwuNrAawVHrY4Q01@ofewZ86dA2h1SjHhnCFSG+)%X>pbd}lk@GKtP2BlY_T!%@+?3C9 z^u+=^L{o!k;l9$@S4O6AP1|6eHP5fg>jR~BI_)iDbW3kLi1BW@<{NFE*r^MuQbJ*B z^~fQP-y!dRA-)yK-FOW))OBm(F2<_i&_uT#dA;xwET-$FA?=8xvlwLG3E1IC@_N(B z+7BUi7;jG`4de&gTjhYh8&-A$?384V^iOXHG;o!<(RXPjZaI<|R_qm!H>!2RyJDvg zjBJM?$9L-s0TPymV90tp510AxAc7ZT$p(Imi2P(>c$@Hxk8wrWxmjpdkA({v-n|4c zTTp=u+m3uy_sHzlwUJgQOAKt_fi~J10e>!<=DzW0?(jNBVoT^NK`<+-QTx`r5H;?U zS5Z|4yTv1#XS{BaS3Fl{dQ_KGqnzM7yB?2(o6pBgCpT0a4mtg8^UW=r(-Lfn-4KkI zX<^CJv&@?AQ=w{@caesXK&*-r)p~W4_5?w|7#bP$foEd4c+-O*xG&TiVDe|j(ef1b=)`#Tfx=dSE=_c)wp@9Y#{aP31kVd&e=4SR$do@2*TqV{ESW6C&M zB>^?pXkNZftkLkNa7`AN$9Hp~>O2LgXs}P%Ta5_y?QU?mW79A)?~`*?EkUr@OXokn zJkCc<3Gz%<@+KEZ*7V@R;f$_dJoY6<^7AhZA@8g+ktt90GRRn56Dp$Y(~{Ja}H$ zb{%^;7xymj(pa%UN+Xhi4&c#^(NLp^ms96TG5HZar(a#46={U5({;a?y6!_uNtDQ8 zy+S}AtEiiK=M&;^BNj`rPF*Ji2QDKANBPj(Pns%cM-2sBj03y>w*9SNcSi!>8B8xkhE<;B2|+FDKdus{iO< zxca>Hj16W-k7wywbE)&6#y`F9w)b_fWodagG1w&!AHNq@x0!a1`-Df%hLiU^3iY=) zUs=pgUUU`S$cd>3aj)1h0^Jh})5yQuF(%O7fskdQyD?fQDiEXl$?@{g)mhSsoaHae zE9PL^f8o+S)y+D>R|0&X`zEYTl_(LAtvO}h62nP$YruX}`RusSlCvVm4ba$JM40hA z*rnYj5iJ2xy0A5BOC_Ahp`RgY=SLf5Se(^6RCPC+XwTi->{?#7&Zp10_G}2rl?<=C zWN`jU6-|X1l-Fi#R|NKJh{RnZ_%RKKfUNVUU4Y6|Z&aY8 z_37>?Tvg?OomZt7Hl_)rjwx8In!aI=5AwR038X9j5|1IyrXdm2?wo~+jEi&|96GOd zv64=VS*#2qdPVXeCDD%$o_uCh)3pd^M^#SS5ug|f=D?am7v-^QFC2c}dpvY@Y{}6T zflniXBdM=OAH^~5x=GhA;T$4dPN?*-3d*Tfk20MRBeM=cZr|1kPArB8l_;uZl2`Wa zZig}ULLLdz7`&|S_+3RL;!^?}{IDE<-t52bdayLFq36uE2$xTZ|KW?LJcL`%d9a~2 zI&1p99|!;cUJrnk#z31adqc+e&GG%={`&c!@BDMUKLgmB7x{Bq{+YkOF~ooD<^M-} ziBflQ`|~V-|FXRQ`Qo3w{NvvIbB6vu+G78W_?=)nGTvQZZ(eQI^ zkpV?8#eS%*-8&z^RWYm5$TRDWZjyt{wT*PjmYbQ z5-@*suc>YSw3Z(zKHlLOkscjLNh=VEn)Oixj;vwy>MX$;x^y3UQmSYm_?v8VA|N}` zED)*9ZAj^9(3W$K)(M#^Gy)HjZIOjh0td#>rLAgdtfXLgJ zPY^CC6d*K(GQuJEFE-|@EOb%A|2h(ppS{VKQCW666k$Co64WmMI;5}_J>eMr0-(8t zEmkgV6L3tCIgzwz(owhBN0Ziq5o-jwZcImSDX!j_o%;)Z)8K?$c-JM8iEvyP%WCd0 z9~JSAVXT^QE1)`VFb1*YzKUl0yBokh1p3X&hN@1QAnGQ#R;Azhi2v1q8oUz_n?({J zM1cu^az3|3x?4n*Ewn|}hkD+Pz|`>>cmZS5OB2!;mgqciEmT79HGcmUCqW@0K10&M z(S5yQsnlSZZ_5lz=O!SyvI27Md4$Ne=9^zjoqyQR1(=sjr8>I5|FAMY#GRXGc2rMV z27#!v$&oJ$wh5JmBROASp7=Jy`7hC@Mwcjx3E?uw#CQkgUa{DsvWm4C(6g{mXdUMl z_&d(S&LZy#9x!&xwf+L&c0t)`_+4N5tVsN_pijg^+1uCj(3L(rV`6IcJ^FnB_bWjK=j`Wr3fEt+BuH4wop^O3hLMIMrta#av0u=fYp_$GC zK!eS!tXqF)BGR{%{iw6?D`P`+)=M2}j6rkph zjrn>qDAd(5}q-+g(x2|k>JfPL|lsAk4Tp7bj z|4qm>d-pg_mvOS8OAUr~FRsrkt<~21GK-nbtsC#XOSmJdd+m@qCD~_uK`{YWx9PM^ zlHMVns72)EG1i8jO+}rX3Uhkm`bpWkKrIlKv8&OUc|KfMr?Jl`#|ULIb)(P95K!6W zjdu)Mo+vBmRGDQ-&EN%OVMc*nwaArPTh2o8Tu7!Jze%tDIBv=om0^7#tNOgRy6NRD+Pl{%#t^xR5bI1d%HCq46J#);C!tk}8cd4}NM_@-X9 zi-O5|zzz}0#F|u;s=du2uE?o|0gWWB%h}nQ&@TVyA^HTs+rB&l`gV7hZubenjb)Mi zKUBUT0oGmiWs_XU=U+&PZVRs`cfz6?(J3t=$$;dTsEEJTWI-l1e1>w_0xIHg6h|*( zRa8;B66o8sHxm=TO?c<#jzG+CIt9Ss!Dei3?l72p8#X#7er-d#rnP zxjaA_GJ+3`*>zz(Q@MB{pCn70`6Efnqn*2czk)ze;$yDRX`Cu@vwBu)xSo)#V*);2 z$en*X_H;K3eQByW1dyw@DkqCv{`}{O+5Ra{1Ybcn7<*;pUiugCdy0w-kkw>i|e-?Fg>H7}cn9fTE`Moo?M$G`; z1d{#RtHux`%WOa=Yb}x|tX>tYj+>aQDM|LLQ!96%6AZR@t=;m z9k*6G-s4}%bzlAD{zZ~ywHb`0>2LvM^VqK5O(sk4^`ogFNh2&y%xr2kbjl_NWbI4q z8c8x_H}*(Q>9H9ah50(~e_a+&i#>L-72qos!~UaQ(k$kYB>I$36MIqj{wwT;`` zeL>cSvyIV>A*4jTlVvVe6&oV``$Kg2^%p$SguX>H8?PoOJhar0@AoZerKpTwkxP0L zXrNwUv%P2%M+Y2ozliSm69(((iy;Gzbch{mj7SZ2XbLE@1c&iIFt-r0xv>U+fjVP2}UY~l=W5rdDDf9SGn z<)+%MuSo%cVIl3$2bm+Cn~HXwQ7E_CE~0=2&LEzh!`U>gWNlt4jkrC*?cqB^89}W! zMhlSqH*+6>=8?j~+;8N8#KAq7>QAeyQzluTLCvXkfwGDZ2kzsf<|m$#LM&~J5f9(0 zTXLyd92eDn)MkXLT$}#*%R-17Szz_R(xl^Ig%@MiCIs7ARcp2+l81D>WA@jS-E#lI zz<&r|dY2RC&aE-y2~Y0ix)493QddQR!Z6&w53w(3-F4J+qHkjeCPDpvx5vkgC*fSx zU)++5Iw!^hB`I3Pp`s41n9-x|`chE=>2uafFk13X;}BD4I85maQT_R0&35fT zSKb?CBVQ5-T%p=dcrc0QMG9Fjqcpi!d?C=8P0(Zfz8rqv%Qt~S5&W_OY7u9~;`~h5 zA!*ov!vjPx6=*ogp0~*}VkVXwi#Ecb!@_&N#!!WUcogA$-djkCl=H*>lun|&S}TeE zcIxR(`PS((-Oc%L0&O0o&46Rr(jW4)(H}?C+>N=ZlN-pJDpu0MyWvwP84C)kt^2Z( z(lZ0|=XHTurl-<=()?DpdMxtVnvA9+aZJR&1LEKq|48L*8&rDLD@Z(P}h}#)imw=f-v6U8WT!WNw=YfDdoH zt-G%BO>7M!C`rCp>veJ<~q{rN>*qbQi7>MGD;878=uG`6tb z{nwX-`R88Q>-Wu{h`6ZD|qgZ19`+=_hH4UVTh5n0; z%J36M*q1d5pEgrJM5Mo?Y4~)l@Kbx$H`$6|@dP7;|L@^xdPP^-^MDqoWo|dL$P+6b zy!;9=S5h)}RtaSdbe}H6Yl$P_;qWtl9uuF-&;buu7UPgwDP7wH(`GgCfM8nT*09}g zHTvANd?~PzgB8yEY>4DoN2piL1%)O6!6$~cr?70P_sgW5B^lC0;w3VX14{3zc+)BA z=RVHVoOP2eLR}g_SNOK3Dc6)yfnFUkNH@|=$E~)>jyh zX0TYFUyYHGJ#VUzq$_JlefZ8-sn)uoJnX}f1YCf<%?oy6B^~UEeD)=~hXeXC!TJk$ zA8b;)I9JUxj7;p8en0Bk@@*mNzQMp%(8!ZBx`C9o41zLd2quDAvQsgcklX5}rho?BSa3S(I)B!D zH4aR-<3zI>L`%GmjUci9n9n+Qz6ah&3yk@rF z4TvXbz6cz)Y_eh|ya98bXuO2VIG*)U-oEs2fiysXsvQdyu8b&~L<_L1Hu@P^a~evC z?%Z0kWtvM!^GlN>-{Pjr2yGP`(=dg}8@1zChZX4B<&Y;Z-}lh8Rh#IF6xJxJ&468} zf0_?K#31=qM`w8cfv%8Lt|&DIYI0Wn!3q}1dfid_Dx)i^05D#c?5zAK1{Xsi9`&97E{WspFl^d4->3f5zF0K^DpjSyl%v$4fQyWoZgA6R$$cSIdbS znd~!PC5vf>#9il&PLo(B%apMTCoAd;b`ez;;Icr7U&tx!l|kY8#Wo=lvkoY zu2<^D7BfYny5)E(k;1BiDb<w>%YBJK;Z1^#YT3mpoJUz zUQ3fL=@+%CceS6$o_*|3&C6BY-=xB@y=(l$(#EYYIi+3HyNg-PO};yChYLP`Oyptb zD|b>)7D;1DyHM zzd_W$PS;cK)LuSRz3;BQ*^xAM-;tmzZ3W^X%Y~-ak+4aTDlk;T7x_n6Vm~v5qVz@f zr{&_HIR6-+G;J*PI>2;rqdlCoU%xcOlv_c%1a)?*v#~&m2Y&oOBY`UEi;e~42AKt_ zYihQf8+Pt&c2%5+U;t{_d1KE^mGeXxKZamHD+|uK17}-|N~wD5`qsQPN?qUy|i`9H82O z#@F(^0bIe(e%4MLEyBBWilA(C%uE?>REtlWt_O0!;W5Vt#5>Q0en)0uanqi%iEuqp z3R(H|YoPa#_f}d-TZqNBWVKCbHNbQjZU7HP-hZ{;g~r}w->`Z54g){hgC(3&c+)b0 z>)bppjpf))HU0eKQ}2Aq z{M86^;2X|1D@$d?L+?972gW?GGFB>+ZKhiD zaG=qTA+A5FWqxo6fuF^Y(J#F;eDrv(AF9M>MH!h?hFaf%b-v3*b6TK{^Y)^rT|_4O z0#r|H<#)}Pj+fUp_PJ=qrc3Q_9ujdzZ4x>>R(bX)ySq=VG3i5K=IF;FHgK{+wponc z#qv&1{W5PA4HMh)+JsDEX9UqerwGe;P#?{2$$DO?*+I+g5a|HhaOn1ymCXawLM-B) zb!gy8^~pP=`&DlkukOo(vcfve=Qlwy5TMuQX*1{Iq;aoOoW%}N?|ZgMsYpUTMn=_6 z6)k_Ho9905%3JuRxi414#hDKxew%0{Eo?&oE;4jO$btGO}OcMe2*1 z@s@LenD~d|R@zKwoAV10MHHdA;L;HF1a`9C!k8P&i2SgZ0xr5g#j4-P^ifW|j|R5{t8Y3CC;NW&G^fv9QH1G)oc45@32_{aXyJF!OwII8 z%%= zZhyV&cjaRFNI%Bgf~v~E@X92sD+XZyf9Ftdp7~kD#DcTPClJ1PKmb&mcXr+)*8L^+Qvx6wXagn?`jMTE)w0M{7? zgwW_UwuL$bFh}*QM-f0r%3$u6Re+Ytsuz_KfQ$&Xb_|d}|LwN&U?BFnz$EI0e73cS zI$r=te?Q}#MORx9?VPaT=vOX9bV3M8RQFhRdN0a@sHrQrUr_nG_e;b`(Oo`rDQTeSVOTiMMn;Xt?n8Ou<^Q50I|r$g;LmPKZWs zCKe~P0@UM9u8~CxKx=(WjOgqgeuo0TBfL_l8&H`H{-J)cd_;5<%33`MQ#Yz!u*=#o z7{p&71@#($*}$eK{X-0hf7S>Qv>=H>q5kaLeV~*^5|L(qsCOR*ZuYLAVeQN%k%W6e zRD5fLiOvqnv;v$rCtx}$*H#WDs=&-!XL%8QehwM{&PIB{0!l8{qBgGrQTZXabY4)L}ia} zU0pjb3QOaZ@PfA%9Rd>4ZSI32$=bqlJ2YN?h8*cs;c(!krvNy?DRu>DFEfmM!W33L z#jXHzqwg-ot{wp3QkL0g6M){$$`(lx?`TO``D18)U}nD!TX8w3ILQ!;Zb;Hipl(7W zZcTHI=!@-G1a!PvD+iN0EB68=YD} z&-=UyhnWbLvg~Tw-2Ef&)}KW~pT}I{Dsb%b7xnUfYi1#W15EFU^wh}T^^C~6`$wtc z0uiOX+Q&BOTf{f$;SqPH4a;mM>q3AkbL;z1cP&uP`y>!SK|9GxKW<>)0Z)cm(?ke(?(faDW;5YE2crr_$NWo{_!p~ARXkfW_ezWFbyUo z1oo+>yJNYMP0X^v@Zxb)K~y&2iPBC52aW@Wlze)#ZD1nfOLoc5$GGVO+TO>eu~+Hc zAlT#iSsW`I6+JTVAUI_lk?h~-K|VD#P2)1#z|POxkfJhYohDy_Bvi~Y<1RqW8D3v+ zRR8q<&~%nzQFq_hm+n@&B&0;TVF0BO5Rj1O9#Xoyk&=+kp}RvuxuC9VyF{xv);7&aCDPq z+Zd3|h;Wx-T~VAiq5AFWDDO=JDj?KL@2h=WI%+N_UoMZB(|AzagONwA(%u!1W2xW~ zR2w+3%L#^afIKq)x~m;KP=Ov`U4@q>dwoh^X_psiP6U25Sa-R1XTK^C(y8gOaoT2Q zcM5M=pW_oUiFvj*1|V8JRWbv|9$%I3hsPaGx!WOZ1wt#R?#8O%%k10F%++FbDRYNr+6`gHlKO@7^?>imrs zw_!(;2@8nPH!VX@2i->3Q%S&Xy5$7?J_o^f@Nql;E@}IWu0L@1(QU(PZ@g!YH^`81 zfh?#~CW(8$V=XmG)UGmR1OC4N(u+%=b4r(RDS#hCENJ~l58!8G2^XV0LU(_ZHCukh zg?(JM?3iBRlnkDhV6Ls`N~b`?#F@*vkkAU2uYZ)_cq6o=r(L$Unc3!TCcIr19;Mlx zGS>|m-7ljj$!24&!JX+#v7l?>{Y$XO76OKMD~H_He@yq-Lw5vgliDjp3|dT=L>f;? zL7M)jxBjQO?`p-k+^4IW-aNYIRnoRqnE&p|{U3s_i_Xoo3a*U(9>KOS4)6K-q16gN z;E>wwf7eF`kU;QovL>PWXvv^cu{aL^9hqL6i7taJlOBxr7STuc%>7!W!JQ=0B?;=x z?AYOSNauoiOqWkc`OzJG9MsN%PajQuVzzsE2PgMJj)|8*eWE$8(*Y$gxsHd+y24L9 zK=3`xUgu)>j1%!ks-JADsS{;}5$w;E$A~y#g;1BAXKET$%pWWyChx9Vt@&m3C~IYI zXBCvQYE(cx6p^8>#`6(Q;A(UX|6@US*oK&Tb>pe!x_sZun?M8Uw>{7A!T;C4^lw67q_BqE@xvvUULVmLw+x6K8(Ym(8n;F@6OnQOgFu=m?D&WD-{~@+X6Ph*S z^;_4Yzl{@o@2Q5h2|9Q(G(ODw`myzLJuSc0W#)U?6X&W(^W}f%-g}ewc@3Hm`X!eR zU^_9mJD?i)y~w8KX)b;LMOJ>K`P0?RVK`|O>byv$6yecf{@Ar}-)_?al7Gl;R8sX1OhVy98VZe0}Hk>i~ZAY`mYL0Cz}gV+ZV)kOM))OHbgN7Y9eIA*`$J zF%$Ks$Jf%ZtI4n6vk6(QhgyB{=n>Oe02A{$?Bi;{2MFp^-Vx57g2`=BeGW1V#gFG7 z?7C^i&qnP0Mia{8u;W28T+4;atop#fEyt!~V_ewUtp(lIQ%piGdT|@M5c@ExKNwv7 zD40}$LmO>}N^YO(OBM~LrSD1vlQB<}HOLlWy!Gu%IuFXObI)?vA6B~z?AwZ8gl5gZ z@XlAiV>;KaW(CFQqL-<75x$6Q0gSs*myd^60~HT+oi90kl1)3CtNx?WuUG{mr3E-K zt7yZQ!3fcRGZ*X1>%@2Fk699O#Y-%pO$p$!vF|HBp$O7v2e};5yKpP-T?PMpt|^sp z`@$}4n9?cawsBmdsse!rO;|&2cP>W3Vh*I6w{Vrc-I0qdyljIfi*9s}pO8Z~kdRI25CqM9 z1*Jln-~@$o(S&*P(fs#bWlZXo$xBZ4DT$MHmtG=997c5znH0&t33hKPJfiAZ-8CwC zeOP+1f9?BOyb1>28=eJ{k=0DJdtF-W+FopR{Mku@ckBh+Ec@iRT%1Nr$>n+wcK=xM z<^95AbkRiG#lsmKE>bZ>D{IC`t<^uEd+5K71sGzuN zMKu-R+b1NN`gjA6bvHE2Q50GxXp?Xf%76&@rg4_ug1RArhg|JTEaFGq*XO$|q|X8J zLR$EPGWcw&wsQ6FDT1QA`#-)?b2e$9VFL6FwfwE@k_!gzd)&Qq!mPf`v`mG6Gb%#_alZM4LQpOO+wfF&v~ z^7;X}QLy){VeKm6WwWTmp z(KExqCwrl{?@b<3n%j%grX`GyY97BFJ;0dn$hiz1d(Z~N1|*9DX2TCXuKsQ?`^nW@ zzu5uIpU(LYUOY{B#nGX@1EElP@i;RGVbkw?`8s#Mmt!n*@X+>Nl%avs@4eG_%YO^( zGo>t)3>PNUQ}jhW!%^+=R-8^WC`i)0Y<@HpJLK_)Oof`9z^W^1O`Y3^7USm=2br1Z z{*juji%Y`~AwJ19+LR+uz5DVwo5G;a6%09F0pNb2u>|RIgRq0A=ake#Q#_LEL}Lxw z@9PEjCr&XoTkj>!bu6s;d9&t~8d77uCeQ&o@&&JVf;{mVHpGP{>27Lg@74K*Ya6km zFsVDj85UhnL={o~c%L5Y&Kc4qFE=~$;HH4(u@hjdVmpd{D{Ni2fu?T+H_$kEBQBJe zxDV8E+vU;QJ*BVoy~2KaPz>qP{zxeD^+b~v9_ov}e)qmafznWyPC-v;m5#%qx7Smu&&Rs>i#Keo(BQO647 zW6a=O^$AZ^k~|SdkH6vtesOi32}$~K9(%d=p3blH8TZ7Mw+j@`X|JtqU=z5mK*zes z1E0V&Lv0NYyqSn750nW{20?;hw-y+^Gb~_BKl$Lf%llk@yDQ{Z_}B<_TQTOF`TuCbmSZ zagk_`Qv!`1YX!&O;jS97G9>$FsIjb<(fnszUWqEsuR;puA@eXTD1_ssO9o z-#Q2OWftt;)W;zUc}&)aA3d0%9ncZ@K5~s znJS?aml&J%8hrEkk{edM)1=>qTx#adV-lS+p5+^FxiAE_Wj8mX#-`hhiA$e@k z;6ht(C~E{lH&j#}Wv7oql!7hxD@OKEOOEAuoG3h=5un+TZO01-FpLsnGHj{AYTfyNe5aX2)OI} zkMQ5qf|qX7s1FXA?mOz=C^X`@Td(wc%Qg(`ekba@xvvK#80uKMIYdF9AhyA&7RY#TyCd8d9f#??DE>CU{1gjh6^TYWEK`1fAm zNOV#*oNZ?6v%?5V`2CAnEgw+Ur)s_P@=77j*3=M`@wa6ZpV9Q-b)@H9bb|L&T>`}H zN$g~R(=+WYJKG`fo0xcpMfm1B@7Q_zk^D!Up5 zk+1md=-}M#n;OSp;g9r60n~e&1$rNK29R2?bEam`&;UGwcL++I@qXY8-@6``YR)+3 z??tO+z(JRT+^*crZBe;;CSlw?p6oJ42&It#?RVL;w;zg9c^P`UoB18-Y)ws?qHVTt zQS>>OoYpRm??|(ebrBsf0Vz<-FKf@K4^QZ|`1jAbfGaCM!zyM*&DMJ{#$QC_#+X*{ zm1Z7Zz|6DXe#zC>R-^iR#8>Z^W*1e3A?aA&nxk-=34XNbv2(SsuDhHucvtNXh>AbgzaNy`F* zPrk@iNpy=d)ALmDEp-y~dqxwJlr{p|{t6h!jgOxyv30Fh!z{72p*OV1bY~>_$3$g7 z-z^-0kkP#hx}#hAxttKg=52UYazqc~e~NAGD?4icu-GH;NC_~X&LO9&D^X4~9^ldK z3#!tS)E!;?Cqh-xGASI|G2CW{37{??q3Xxvzrr} zp)&v4i5ZEPhdXn-GKk04(~B(}^rbL9*Odz)==l9BMa3dh-w3myFYI-W;o{8XxD7hF<+ z!bcEckOF(ZoU1}anDYm_!d{}1S?BhY?j>Rxg@w&m>fBk~74M%v(9Py~%0=@r?O1Y4 zQAmB)lBTZ~60Qx;x_D>$b-O)`?~#P4hYf3Hj*W5n{N0B29dr{5S?F;4#k}h;TnY?e za-cg66x^a+)`H9fYHXA}(Q1WZMdN9{LWtg^9N69``lV!*a(LUF7w8jlGsZ0!_uqbR z^B~<7T<>FmH)1HObEclGMy`?tOk=%NoT0EOT7&{Gv@yJCXf$2{y()_~*nXvCThjp+ zeGz4;BBZUfoyHT*LrXKi#2Evc5$KHJq{u@hoDu;eQVz#1Mq+WNF*@s` zuMWLiKlsg)^D84N8*U!L?#4Up+nJhuvzF98G#v^TA!idl6UbX>Q7y&~7^sY5ez<#$ z2V?uM>+h5$1Dm6F&K>7><&Dj{g*q*{a`o$drqA`ELJ6QK|Ib1nR(Cepgh5Daokh0j zBPbZ|oo2>?F}#FLIBOMZ3ZCpjnWSw<7-SpTEU_S7xCeG~mg>uI;6?py2efwo3ekKV zx&LmfoHMhr3{0Gw*Ond1cA$>_`5te4(0*o27e_3pvzHun3A&60i9|ZPutS7*guJ5G zb0qVVFJ=wTGo3or>J^oZU$ILp3(;X1g)!<&f1`#lD*V?AlDesX9>1~sS@&Y^mF)_L zUprJ6-QLvKp8BAN9%puh`4!P9k{i;nFnfX%97?m$sjpTCiC}D#?;>wW2YqF;H4kQ= zswCNex<-@PLYQb6z9?^u#LMIib0x{-zz|M@Hpk#gPDG2@|C?;}tyfs1j7hCip}(=Q zt#}%2sy^Tlp=o|N_&V9eY}ZmNaUTET)Zn0gj#XBJ$r#tv6!T35jR?OX`xhXG7o@n? zZSm^*BQY0MZ#kt+c!;3v46PJ8l95$RoVpZ-#j8MDia!WQIUQMm3ww(36>ktZKR5Z8 zI{|H)(7}9{U!;3gu^~hqN0=p34DLi3nBN!+me|9=C-NUe(_Uy^TOI+o9ys!L-`94$ zNA*jf2=~IwR9+#zGKf4PUcJ2G@}Q`Ff|1sI=FV+9TIC`nE>>Zs+NHy1_Gx50!?~oO zZ*gmBGN>C}WJGP<6av&n!GIuk4`{PK?)1p?E{oA0L={XwvC)|;UvuzM$iurc5;oJl zPF+bYz81F5mq#I4dRau+wDXC&gz!B4^u(|Dk7co%H4Y!Uc;t&exM(L`>@=Ot!TUMp z!YOW||I$4!sNrFRp|(#XDlw?sL#AI(tk>FDO}N%|1-($z@U#YB9P9Bs$U`5rr8}_H zIAXUT$XMVb+~8+p^NkmoB4|VE)gtBrQAecC@26z-w~GW6;#(pOtE{!xp(K6uA;fB@ z-DET0b#M)mSg!NtAI`1+NDlaoUpV#~sed1YWpZ`yZ0*Ujwc~c|f1Cm;hlyxO17YnMasM zXs!n0Mx^(JCal7xiLG@&i@%8e#hVNX-&QMwqv zaRR743m;zteQ}|IC8=ge>j-ru)&=@|zMEo4N1mix_&P~aM1Ry;00tUFZmc$?Dq8G~ zP?1Y7Z^DF$Q#ld0mcw*p?~~_sQM6%FqV{gZ&exrF&zW?8`52KiqTR}$WEyzOxg_H~ za0CI_AXn!h_WrO!8Oxm@bs5nmucU6V=y zOvkEH4%NNa<80XdUg#luy;~fhXL8eCtP;LoVaz;ZA7(aL7cp~>y5%}=#!XBdB@6ly zNv3RuDCL5$0KE7uLmC*?!@q`wV{YY&G;N3?wxtwBS*z@C&Qo&8Z=D=58)B3 zAww-`F#YU~-;?gNBeG8@Vu(iiWo%vu@58SjqJ)z&uXUV_s9GGWdv(Ki|0vPLbGzzO zerla5PtoyKNWRpgO+ss+AY>hC=8Y9Px3BPUo?`&2cQxWVj~`fIx#cj4=DQC(0KJa1 zrq5%}*nrf3%3Km?A4TkvmjyQJ!+?*jz7|v7mCb^xqF@u#-K+=kH z;}sk#`BZX{*8~?VoyuV+IGGLC#`tA1H_d0DOu%zy^%|r+sg7~oXNevLJ1ck1f1Ky9 z2uQ8tlVXLBE2KvI)N&n4?6^8Q=}E}a<-yMlRV#e`ofW}r$MxK-& zG3uF%oma&VDQE%kExPBe&QBozi6dqHX9e=jn*&{`UqzxsqU3w%Nz~uw20vZSQN;*`P<)WZa5{cYL}pg#kN(zJHSUF8I)OWojf|wtt!cK*P`v%YEmkPq`q?%_K>L}*O9OZxoU=Wr&axs z2=UjS#4p-7a<{e2rpeTDH(~jD=^>XZM3ifTaKvCO<5n~&1Kr&9bK)_n*o_2%tzud|06)DWRXZ zzP&x24ViW8+#(I=iuljcVbgrd zxsCN`2j;-#;kuI(nibT?)CKZ)r8T!{==S2?93}a<$u)?cI>;7=z{Y$nC&C~^*kpiz};ZWaiR>QGD@2T4Lh$@dg%*klYByZ11GtEI2P)k{F{-8086}R z!Z&!NsNZJ$SfU!7T~<9&BUgb(B&5akQWA7q}1wyWB!Gj9MoC0LpnT~S$wcUcTvr*hCm+;eCYUPw!>w53$>`9_Q+@K*WanLwBP#p>+<7Taz37`n$29#Z7)aBOEPB2|r4pv`azZRB1bJEKT-q3L?|2k@6 zAe%ZMIVcisHmI>q3Nh3r1~#zAmPJp@s#n|ztL`_OOJqJ*fQRKWI_~}j@F7Dekf@cr z2JBWuXhp+6wU?j@gs|l*&?O>^{S3X3e5v*) z-%7=qH3+>c$@~sq5pKJ-iuhLW?#~u_6Bf*2IS6D+dQ=lCfzm8g-&IdiNCA1I9^5p~ zgj>xOWV{0iWeWl5?=;sFHv3+)?vVR+rW{Keo>DNuL-w|3NAsUy*5E>eXZMk+t{1)C z@Gi7GNW)j>WtR<(4@qW<6Hyz#?V*GN^jt_ck1OVlaNT{@Gh*Y!Z`KAUK1o}r|IY#l zsUu}+JU61eEOH9pqc;&z(X%Z9^!-_An;q_wrJDvUUBrNY$GmLEdEh=XO8=d&lGdH^ z=zTT{EZ7o{zd2p5kZ245x3r@`ld+U!WVOz(d3lvwf)`-Emzm)A44DZ$ZwT}65_#la zvuI2&jnc&k$SSs`@-=63^V6rAMW`$;yL>Fk+fw|5qC6p9SY4puFVpQ<)yJONb6VKV zva@tl;cTd3)EVD}6zXde>HMY1&Eh%&?`=^#p)|vW9&}y|T|fTM0V~}dL#$rC^Ug>w zX0dH{Bkb*Cxxx_rcxRRta*dG~?Q@vTvhI$Ekh4LwJ4l@GRR3Ff0Ef%{x^hU{g~Sec zLUUwo?>>^a#M4b*IKlPcpp+UtaVHmN=W~eCo@TgFMV7FF{Jv-c^-^Q?`2QVRhQJ(Q z4P5a?brjVev$9iVW%Pq^kyv@ngxL6t(u*?4NPMgiM00WW?U9WvD^%F+eSdb{6^eN{ zABYj}eX=|_#}#Af@VwIpk9H(vp??6VUh{u5XGvsX7EYB4PAbVldMRK^VchKcd9PzX z?kRiDaKZbQj>>>{8}E%F9$sTh(V8F~3w*5JGQ(~Kj2P?VoCaJS1{z&D~d)&2PH+&*tm*%QInAG&I`Da&%Z`-2B=m9x@f9{|G7iO=q8Dd%yoek7sj zgNv&mS%p+q%}uo?g?%`|Ht#`N6>4;B#CJ%N2hB+XU~5u25xWUubj4Pr*h**ndp&eH z(O~~i0qjq8`vj)9FX8bV|Kt(%UHA61E3Vk2f1lYFOCDDn6je#XX5V)NNo~(*d+C%B z_(yu)UQ{!3UB2%eZ^ubIXS9&8NxY&7YWn*nA3cjI`s*OGXKK$UvjDNID7Bdp@|pe+ zPtNluAZqH2GBo?7=QJ2N%3urw<;rR-T#hUjfd~CzxIh|cn-1+dDXfIEBtmqmp`w9y z6yH{~98i?K`5zt7Sl66UMWWFA)N^-j!{=Rx1_O08(5dQ%i$0MjV^j7qddLxtCYq#R zT4NP{3x5WG%=vu7D*l!rH~>tjbJWmp#i`oQ6=~z7%~?ILGx8}Z6;u!(YjfkV;vTCi ztc{d`+_c0M(OPGk44OMrfmOkh+`!w#Gm;0OlOJ{q4$7NX!;@owBrfO&OUV(YZ}_br z?6sJy$eG1J)SH3w;!b(x=)7g)Wd`V?f9il|&eN;ZZJIS*!@LsTj(Of?YpDN8fwJ~B z^y0eUoNBSouC|Mqx-@S8^pxxQCe9`yX8?RKuTV44c$c={5O!F=O1$4ISysu$0c)`o zHwa3#Jb*OE-AZSeA5rc=TD==$J1hrXwYA?q@?7krsaMNAbGoVWJtZ%;O^=mmgP2xv zuCs>C)4t-{D!F`5q9iJcKTp|W!1@SBfY|D|f&nzm#=nbxmT&*y^iVZ^zDTV|oqMD* zB`0JuZ{L*_z~|-vVlVKHDRFodY+YP;K_4wcDUh)25s_Cwo5xKoq*2JcZFEgo_Fp8? zAXNzZQgQw9sBN00iMa?{K3}n0mNknA zUv?Rb3muR0Rp9fZ5q{a;xGENUb6mf?!Kmn@&K0t6acWU=cxrf?{Zr;vRsEezX@$H- zfE!Cn%U)>#lE5?|E2#ww982wzk_- z>&8lH9)1(rbGL-9`FFx0DoNWY~HCk_kJcFV^NZzxS6@wLJ#`eQsRF%1_1oM z|DJMF-tyUGUVRGd{aJ)G^kwJFYkbZ&1{$X((37aHpz9q8&BU_bTE0^n2 zJr?aLa5FIo{;lU3o-dtrw2KK4?_HH?-Z-E99{z)X6AV^)pP#ftH5tIFT%I1#wa!{k zL7>d;`iUg;#`*PrV)S*&q3WP#879E|J@8B@Y?E-XqA`o2(RqNSDZS2^14N#al-kGv z?t8_useszyM7ZZBa5hW6CFBngx;f5VG3HH4o>l6ChIuAq%G^K&ODGd(lE=TkJ&4pC z-C;c}tq#(>ZwHz?eE@|!%{U-t>|kJ=lrO*fqV{Hm{-TTJKAv2|s}INioO? zU1DAEpf#i}=5?$6zqOv>KPLl!_#TR7{5)#1S8s{;CZe!U+tYcb?EL?&{kd8%GX)q5 zY3maboq#mjS%7h$K1kbO)-G=98rWn_5E{~kHwbN6DFEiFc%EH&{Xp}z+0WZ`wN=2`EP-FmrS7pWt1@xBczuaG1v}f28l?RO%M{%u30S^xFDoj#yKCVlDfq?d$U{W+B z#fD5|4idCGa*f*Li<#q5-~HA(IIHpeu0h2Z)c-M4xMjhu!!deYzAHZX5(>Ku5bi-e zD2F$%wbOH1Q?!v&b=Q#~uR7OexKEe;me&LLRdzO|SXE%@?{z!`T*(J~J)C)p{WIBE zYd05u>Y@1zT*935_wG}zZg!BdNYag=snc8$@e`R&uyUNx!OGisKe8qK-Hlc>={s#1 zZr^=zWol$wGXI=b|FHrk(1@9l+RLNe2 zdm4V4q8;3&JSJ5WR*E~9Rb%LR`R$pJducZw9#v1Q2X27z8OjqczL1w>i(k*{*Q_BA z_1h(?JI-FW84@_hToPRuZDMQAyAL-EQfRC7E*_rFeI}m!e`vP;UZYHZ>)@zd7A1FY zIBI;`24Qs@s@{#|uAC(Ut%Xly65$(8k;NMDGiKHLY75`|qWE!H6!ZSF2pAnG9o&GZQs!8NOlTL1!! zvzpo-NZ+tBiZaP7*-AJ8xJFeyQPg+_#qOL=e|pt$5`mvEw1EG*{b4RFsMcck%*(^X zV-8MPV?a65&hcx1f56AfV<3S-wsv}dUa({hADMa}Wof}*BwV&Tbyd{wS3|~z0+=_m z7q>?nacKJm)fD#<{FBv2b_A*`gqoBW*(@tW*)dczka{Wp&8losYoH@7qSjOdxSg)l z#~z4!PHQF79_W6%as%`WKt1j=9(`jo#K-Cy?QI# zAYRr!vP`5Ca>v5^mGY!Nb>Ggs(>+E-?FGh-?)B+≶9 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 From 43242b40e29104c17c9d6f6a1fc7c8ac327112f2 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 3 Oct 2019 16:05:01 -0700 Subject: [PATCH 126/154] support QFI mapping --- src/plugins/srv6-mobile/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 3810a9ff0be0..9b996f56e18a 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -337,7 +337,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; - sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ipv4_gtpu_header_t) + sizeof(gtpu_exthdr_t)); + sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip4_gtpu_header_t) + sizeof(gtpu_exthdr_t)); sess->exthdrlen = 1; sess->type = 0; sess->spare = 0; From 615a074e6593b6888a2abb29d4931bfca8757752 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 3 Oct 2019 16:22:34 -0700 Subject: [PATCH 127/154] support qfi mapping --- src/plugins/srv6-mobile/node.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 9b996f56e18a..2441ef64b5f3 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -263,6 +263,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, u32 hdrlen = 0; uword key; u16 port; + ip4_address_t dst4; void *p; // we need to be sure there is enough space before @@ -291,17 +292,15 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, shift = ls0->localsid_len % 8; if (PREDICT_TRUE(shift == 0)) { - for (index = 0; index < 4; index++) { - hdr0->ip4.dst_address.as_u8[index] = dst0.as_u8[offset + index]; - } + clib_memcpy_fast (&dst4.as_u8[0], &dst0.as_u8[offset], 4); qfi = dst0.as_u8[offset + 4]; clib_memcpy_fast (teid8p, &dst0.as_u8[offset + 5], 4); } else { for (index = 0; index < 4; index ++) { - hdr0->ip4.dst_address.as_u8[index] = dst0.as_u8[offset + index] << shift; - hdr0->ip4.dst_address.as_u8[index] |= dst0.as_u8[offset + index + 1] >> (8 - shift); + dst4.as_u8[index] = dst0.as_u8[offset + index] << shift; + dst4.as_u8[index] |= dst0.as_u8[offset + index + 1] >> (8 - shift); } qfi |= dst0.as_u8[offset + 4] << shift; @@ -322,12 +321,15 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, } hdrlen += sizeof(ip4_gtpu_header_t); + // IPv4 GTP-U header creation. vlib_buffer_advance (b0, -(word) hdrlen); hdr0 = vlib_buffer_get_current (b0); clib_memcpy_fast (hdr0, &sm->cache_hdr, sizeof (ip4_gtpu_header_t)); + hdr0->ip4.dst_address.as_u32 = dst4.as_u32; + hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); From aee2ac12a5546d6a1e8f9d018f549312f297cbf9 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Fri, 4 Oct 2019 15:39:41 -0700 Subject: [PATCH 128/154] add test cases and fix the issue on the encap --- extras/ietf106/runner.py | 414 ++++++++++++++++++++++++++++++++- src/plugins/srv6-mobile/node.c | 4 + 2 files changed, 417 insertions(+), 1 deletion(-) diff --git a/extras/ietf106/runner.py b/extras/ietf106/runner.py index dfd5f4317f2e..7e17f319a259 100755 --- a/extras/ietf106/runner.py +++ b/extras/ietf106/runner.py @@ -698,6 +698,67 @@ def test_gtp4(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp4_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp4_ipv6(self): # TESTS: # trace add af-packet-input 10 @@ -759,6 +820,68 @@ def test_gtp4_ipv6(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp4_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6_drop_in(self): # TESTS: # trace add af-packet-input 10 @@ -827,6 +950,75 @@ def test_gtp6_drop_in(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6_drop_in_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6_drop_in_ipv6(self): # TESTS: # trace add af-packet-input 10 @@ -894,6 +1086,74 @@ def test_gtp6_drop_in_ipv6(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6_drop_in_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6(self): # TESTS: # trace add af-packet-input 10 @@ -965,6 +1225,78 @@ def test_gtp6(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.100.0.1", dst="172.200.0.1")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6_ipv6(self): # TESTS: # trace add af-packet-input 10 @@ -1032,6 +1364,74 @@ def test_gtp6_ipv6(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def status_containers(self): print("Instances:") @@ -1116,7 +1516,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "tmap_ipv6", "gtp4", "gtp4_ipv6", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) + "ping", "srv6", "tmap", "tmap_ipv6", "gtp4", "gtp4_5g", "gtp4_ipv6", "gtp4_ipv6_5g", "gtp6_drop_in", "gtp6_drop_in_5g", "gtp6_drop_in_ipv6", "gtp6_drop_in_ipv6_5g", "gtp6", "gtp6_5g", "gtp6_ipv6", "gtp6_ipv6_5g"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -1165,16 +1565,28 @@ def main(op=None, prefix=None, verbose=None, image=None, index=None, command=Non program.test_tmap_ipv6() elif op == 'gtp4': program.test_gtp4() + elif op == 'gtp4_5g': + program.test_gtp4_5g() elif op == 'gtp4_ipv6': program.test_gtp4_ipv6() + elif op == 'gtp4_ipv6_5g': + program.test_gtp4_ipv6_5g() elif op == 'gtp6_drop_in': program.test_gtp6_drop_in() + elif op == 'gtp6_drop_in_5g': + program.test_gtp6_drop_in_5g() elif op == 'gtp6_drop_in_ipv6': program.test_gtp6_drop_in_ipv6() + elif op == 'gtp6_drop_in_ipv6_5g': + program.test_gtp6_drop_in_ipv6_5g() elif op == 'gtp6': program.test_gtp6() + elif op == 'gtp6_5g': + program.test_gtp6_5g() elif op == 'gtp6_ipv6': program.test_gtp6_ipv6() + elif op == 'gtp6_ipv6_5g': + program.test_gtp6_ipv6_5g() except Exception: program.logger.exception("") diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 2441ef64b5f3..65072733208e 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -337,6 +337,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, { gtpu_pdu_session_t *sess; + hdr0->gtpu.ver_flags |= GTPU_EXTHDR_FLAG; + hdr0->gtpu.ext->seq = 0; + hdr0->gtpu.ext->npdu_num = 0; hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip4_gtpu_header_t) + sizeof(gtpu_exthdr_t)); @@ -902,6 +905,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, { gtpu_pdu_session_t *sess; + hdr0->gtpu.ver_flags |= GTPU_EXTHDR_FLAG; hdr0->gtpu.ext->seq = 0; hdr0->gtpu.ext->npdu_num = 0; hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; From 8e0a631d4acddde0b6b5cdd9cc414383c734f517 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 5 Oct 2019 09:08:51 +0900 Subject: [PATCH 129/154] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 571f579a73dc..290f1fc000cd 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ $ ./runner.py infra start This command instantiates 4 VPP containers with following topology: -![Topology Diagram](extras/ietf105/topo-init.png) +![Topology Diagram](extras/ietf106/topo-init.png) You can check the instantiated docker instances with "docker ps". @@ -122,7 +122,7 @@ $ ./runner.py test tmap_ipv6 This case uses SRv6 end functions, End.M.GTP6.D.Di and End.M.GTP6.E. -![Topology Diagram](extras/ietf105/topo-test_gtp6d.png) +![Topology Diagram](extras/ietf106/topo-test_gtp6d.png) VPP1 is configured with "End.M.GTP6.D.Di", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D:: of the packet capture. VPP1 translates it to SRv6 toward D:: with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. From 4ca955c366acb9c05a2ee2d7979fcbfde6fe73d3 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Sat, 5 Oct 2019 11:02:17 -0700 Subject: [PATCH 130/154] support IPv4 format on localsid command --- extras/ietf106/Dockerfile.j2 | 2 ++ extras/ietf106/runner.py | 2 +- src/vnet/srv6/sr_localsid.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/extras/ietf106/Dockerfile.j2 b/extras/ietf106/Dockerfile.j2 index cca5e2e14143..ac58fa36b644 100644 --- a/extras/ietf106/Dockerfile.j2 +++ b/extras/ietf106/Dockerfile.j2 @@ -13,6 +13,8 @@ RUN set -eux; \ iproute2 \ tcpdump \ python3-cffi \ + asciidoc \ + xmlto \ netcat; \ rm -rf /var/lib/apt/lists/*; \ mv /usr/sbin/tcpdump /usr/bin/tcpdump diff --git a/extras/ietf106/runner.py b/extras/ietf106/runner.py index 7e17f319a259..ac004be16d16 100755 --- a/extras/ietf106/runner.py +++ b/extras/ietf106/runner.py @@ -658,7 +658,7 @@ def test_gtp4(self): c1.vppctl_exec("set sr encaps source addr A1::1") c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") + c1.vppctl_exec("sr localsid prefix 172.20.0.1/32 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") c2.vppctl_exec("sr localsid address D2:: behavior end") diff --git a/src/vnet/srv6/sr_localsid.c b/src/vnet/srv6/sr_localsid.c index e6da2414b2d9..bc411bba097c 100755 --- a/src/vnet/srv6/sr_localsid.c +++ b/src/vnet/srv6/sr_localsid.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -321,10 +322,13 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, int is_del = 0; int end_psp = 0; ip6_address_t resulting_address; + ip4_address_t resulting_address4; ip46_address_t next_hop; char address_set = 0; + char ip4_set = 0; char behavior = 0; void *ls_plugin_mem = 0; + sr_localsid_fn_registration_t *result_plugin = 0; int rv; @@ -339,14 +343,26 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, && unformat (input, "address %U", unformat_ip6_address, &resulting_address)) address_set = 1; + else if (!address_set + && unformat (input, "address %U", unformat_ip4_address, + &resulting_address4)) + address_set = ip4_set = 1; else if (!address_set && unformat (input, "prefix %U/%d", unformat_ip6_address, &resulting_address, &prefix_len)) address_set = 1; + else if (!address_set + && unformat (input, "prefix %U/%d", unformat_ip4_address, + &resulting_address4, &prefix_len)) + address_set = ip4_set = 1; else if (!address_set && unformat (input, "addr %U", unformat_ip6_address, &resulting_address)) address_set = 1; + else if (!address_set + && unformat (input, "addr %U", unformat_ip4_address, + &resulting_address4)) + address_set = ip4_set = 1; else if (unformat (input, "fib-table %u", &fib_index)); else if (vlan_index == (u32) ~ 0 && unformat (input, "vlan %u", &vlan_index)); @@ -393,6 +409,7 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, (input, "%U", (*plugin_it)->ls_unformat, &ls_plugin_mem)) { behavior = (*plugin_it)->sr_localsid_function_number; + result_plugin = *plugin_it; break; } } @@ -428,6 +445,20 @@ sr_cli_localsid_command_fn (vlib_main_t * vm, unformat_input_t * input, return clib_error_return (0, "Error: SRv6 PSP only compatible with End and End.X"); + if (ip4_set) + { + if (!behavior || !result_plugin || strcmp((char *)result_plugin->keyword_str, "end.m.gtp4.d")) + return clib_error_return (0, + "Error: IPv4 address format can be supported with SRv6-End.M.GTP4.D only"); + + resulting_address.as_u32[0] = 0x0; + resulting_address.as_u32[1] = 0x0; + resulting_address.as_u16[4] = 0x0; + resulting_address.as_u16[5] = 0xffff; + clib_memcpy_fast(&resulting_address.as_u32[3], &resulting_address4.as_u32, 4); + prefix_len += 96; + } + rv = sr_cli_localsid (is_del, &resulting_address, prefix_len, end_psp, behavior, sw_if_index, vlan_index, fib_index, &next_hop, ls_plugin_mem); From a72ddf610879fd8acdbcbb805cc65c7215e67700 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sun, 6 Oct 2019 07:38:10 +0000 Subject: [PATCH 131/154] add GTP-U 5G header support to sr_policy_rewrite. --- extras/ietf106/runner.py | 131 +++++++++++++++++++- src/vnet/srv6/sr_policy_rewrite.c | 192 +++++++++++++++++++++++++++++- 2 files changed, 316 insertions(+), 7 deletions(-) diff --git a/extras/ietf106/runner.py b/extras/ietf106/runner.py index ac004be16d16..1119d4ba189f 100755 --- a/extras/ietf106/runner.py +++ b/extras/ietf106/runner.py @@ -577,6 +577,68 @@ def test_tmap(self): for p in c4.pg_read_packets(): p.show2() + def test_tmap_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_tmap_ipv6(self): # TESTS: # trace add af-packet-input 10 @@ -638,6 +700,69 @@ def test_tmap_ipv6(self): for p in c4.pg_read_packets(): p.show2() + def test_tmap_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp4(self): # TESTS: # trace add af-packet-input 10 @@ -1516,7 +1641,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "tmap_ipv6", "gtp4", "gtp4_5g", "gtp4_ipv6", "gtp4_ipv6_5g", "gtp6_drop_in", "gtp6_drop_in_5g", "gtp6_drop_in_ipv6", "gtp6_drop_in_ipv6_5g", "gtp6", "gtp6_5g", "gtp6_ipv6", "gtp6_ipv6_5g"]) + "ping", "srv6", "tmap", "tmap_5g", "tmap_ipv6", "tmap_ipv6_5g", "gtp4", "gtp4_5g", "gtp4_ipv6", "gtp4_ipv6_5g", "gtp6_drop_in", "gtp6_drop_in_5g", "gtp6_drop_in_ipv6", "gtp6_drop_in_ipv6_5g", "gtp6", "gtp6_5g", "gtp6_ipv6", "gtp6_ipv6_5g"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -1561,8 +1686,12 @@ def main(op=None, prefix=None, verbose=None, image=None, index=None, command=Non program.test_srv6() elif op == 'tmap': program.test_tmap() + elif op == 'tmap_5g': + program.test_tmap_5g() elif op == 'tmap_ipv6': program.test_tmap_ipv6() + elif op == 'tmap_ipv6_5g': + program.test_tmap_ipv6_5g() elif op == 'gtp4': program.test_gtp4() elif op == 'gtp4_5g': diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 7cc7d240774e..d0f7d1dfb87b 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1471,6 +1471,7 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { u32 bi0, bi1, bi2, bi3; vlib_buffer_t *b0, *b1, *b2, *b3; + u32 hdr_len0, hdr_len1, hdr_len2, hdr_len3; u32 next0, next1, next2, next3; next0 = next1 = next2 = next3 = SR_POLICY_REWRITE_NEXT_IP6_LOOKUP; ip6_header_t *ip0, *ip1, *ip2, *ip3; @@ -1482,7 +1483,9 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip4_address_t sr_addr0, sr_addr1, sr_addr2, sr_addr3; ip4_address_t dst_addr0, dst_addr1, dst_addr2, dst_addr3; u32 teid0 = 0, teid1 = 0, teid2 = 0, teid3 = 0; - u8 *teidp0 = NULL, *teidp1 = NULL, *teidp2 = NULL, *teidp3 = NULL; + u8 *teidp0 = NULL, *teidp1 = NULL, *teidp2 = NULL, *teidp3 = NULL; + u8 qfi0 = 0, qfi1 = 0, qfi2 = 0, qfi3 = 0; + u8 *qfip0 = NULL, *qfip1 = NULL, *qfip2 = NULL, *qfip3 = NULL; u32 offset, shift; u32 index; @@ -1560,11 +1563,35 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (sl0->is_tmap) { hdr0 = vlib_buffer_get_current (b0); + hdr_len0 = sizeof(ip4_gtpu_header_t); teid0 = hdr0->gtpu.teid; teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; - vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + + // 5g header check and header length calc + if (hdr0->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header + hdr_len0 += sizeof(gtpu_exthdr_t); + if (hdr0->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + gtpu_pdu_session_t *sess0; + + sess0 = (gtpu_pdu_session_t *)(((char *)hdr0) + hdr_len0); + qfi0 = sess0->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip0 = (u8 *)&qfi0; + + hdr_len0 += sizeof(gtpu_pdu_session_t); + + if (sess0->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdr_len0 += sizeof(gtpu_paging_policy_t); + } + } + } + + vlib_buffer_advance (b0, (word) hdr_len0); encap0 = vlib_buffer_get_current (b0); clib_memcpy_fast (vlib_buffer_get_current (b0) - vec_len (sl0->rewrite), sl0->rewrite, vec_len (sl0->rewrite)); @@ -1579,11 +1606,35 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (sl1->is_tmap) { hdr1 = vlib_buffer_get_current (b1); + hdr_len1 = sizeof(ip4_gtpu_header_t); teid1 = hdr1->gtpu.teid; teidp1 = (u8 *)&teid1; sr_addr1 = hdr1->ip4.src_address; dst_addr1 = hdr1->ip4.dst_address; - vlib_buffer_advance (b1, (word) sizeof(ip4_gtpu_header_t)); + + // 5g header check and header length calc + if (hdr1->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header + hdr_len1 += sizeof(gtpu_exthdr_t); + if (hdr1->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + gtpu_pdu_session_t *sess1; + + sess1 = (gtpu_pdu_session_t *)(((char *)hdr1) + hdr_len1); + qfi1 = sess1->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip1 = (u8 *)&qfi1; + + hdr_len1 += sizeof(gtpu_pdu_session_t); + + if (sess1->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdr_len1 += sizeof(gtpu_paging_policy_t); + } + } + } + + vlib_buffer_advance (b1, (word) hdr_len1); encap1 = vlib_buffer_get_current (b1); clib_memcpy_fast (vlib_buffer_get_current (b1) - vec_len (sl1->rewrite), sl1->rewrite, vec_len (sl1->rewrite)); @@ -1597,11 +1648,35 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (sl2->is_tmap) { hdr2 = vlib_buffer_get_current (b2); + hdr_len2 = sizeof(ip4_gtpu_header_t); teid2 = hdr2->gtpu.teid; teidp2 = (u8 *)&teid2; sr_addr2 = hdr2->ip4.src_address; dst_addr2 = hdr2->ip4.dst_address; - vlib_buffer_advance (b2, (word) sizeof(ip4_gtpu_header_t)); + + // 5g header check and header length calc + if (hdr2->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header + hdr_len2 += sizeof(gtpu_exthdr_t); + if (hdr2->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + gtpu_pdu_session_t *sess2; + + sess2 = (gtpu_pdu_session_t *)(((char *)hdr2) + hdr_len2); + qfi2 = sess2->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip2 = (u8 *)&qfi2; + + hdr_len2 += sizeof(gtpu_pdu_session_t); + + if (sess2->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdr_len2 += sizeof(gtpu_paging_policy_t); + } + } + } + + vlib_buffer_advance (b2, (word) hdr_len2); encap2 = vlib_buffer_get_current (b2); clib_memcpy_fast (vlib_buffer_get_current (b2) - vec_len (sl2->rewrite), sl2->rewrite, vec_len (sl2->rewrite)); @@ -1615,11 +1690,35 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (sl3->is_tmap) { hdr3 = vlib_buffer_get_current (b3); + hdr_len3 = sizeof(ip4_gtpu_header_t); teid3 = hdr3->gtpu.teid; teidp3 = (u8 *)&teid3; sr_addr3 = hdr3->ip4.src_address; dst_addr3 = hdr3->ip4.dst_address; - vlib_buffer_advance (b3, (word) sizeof(ip4_gtpu_header_t)); + + // 5g header check and header length calc + if (hdr3->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header + hdr_len3 += sizeof(gtpu_exthdr_t); + if (hdr3->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + gtpu_pdu_session_t *sess3; + + sess3 = (gtpu_pdu_session_t *)(((char *)hdr3) + hdr_len3); + qfi3 = sess3->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip3 = (u8 *)&qfi3; + + hdr_len3 += sizeof(gtpu_pdu_session_t); + + if (sess3->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdr_len3 += sizeof(gtpu_paging_policy_t); + } + } + } + + vlib_buffer_advance (b3, (word) hdr_len3); encap3 = vlib_buffer_get_current (b3); clib_memcpy_fast (vlib_buffer_get_current (b3) - vec_len (sl3->rewrite), sl3->rewrite, vec_len (sl3->rewrite)); @@ -1672,6 +1771,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[offset + index] = dst_addr0.as_u8[index]; } + if (qfip0) + { + sr0->segments->as_u8[offset + 4] = qfi0; + } + for (index = 0; index < 4; index++) { sr0->segments->as_u8[offset+5+index] = teidp0[index]; } @@ -1681,6 +1785,12 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[offset + index + 1] |= dst_addr0.as_u8[index] << (8 - shift); } + if (qfip0) + { + sr0->segments->as_u8[offset + 4] |= qfi0 >> shift; + sr0->segments->as_u8[offset + 5] |= qfi0 << (8 - shift); + } + for (index = 0; index < 4; index++) { sr0->segments->as_u8[offset + 5 + index] |= teidp0[index] >> shift; sr0->segments->as_u8[offset + 6 + index] |= teidp0[index] << (8 - shift); @@ -1713,6 +1823,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr1->segments->as_u8[offset + index] = dst_addr1.as_u8[index]; } + if (qfip1) + { + sr1->segments->as_u8[offset + 4] = qfi1; + } + for (index = 0; index < 4; index++) { sr1->segments->as_u8[offset+5+index] = teidp1[index]; } @@ -1722,6 +1837,12 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr1->segments->as_u8[offset + index + 1] |= dst_addr1.as_u8[index] << (8 - shift); } + if (qfip1) + { + sr1->segments->as_u8[offset + 4] |= qfi1 >> shift; + sr1->segments->as_u8[offset + 5] |= qfi1 << (8 - shift); + } + for (index = 0; index < 4; index++) { sr1->segments->as_u8[offset + 5 + index] |= teidp1[index] >> shift; sr1->segments->as_u8[offset + 6 + index] |= teidp1[index] << (8 - shift); @@ -1754,6 +1875,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr2->segments->as_u8[offset + index] = dst_addr2.as_u8[index]; } + if (qfip2) + { + sr2->segments->as_u8[offset + 4] = qfi2; + } + for (index = 0; index < 4; index++) { sr2->segments->as_u8[offset+5+index] = teidp2[index]; } @@ -1763,6 +1889,12 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr2->segments->as_u8[offset + index + 1] |= dst_addr2.as_u8[index] << (8 - shift); } + if (qfip2) + { + sr2->segments->as_u8[offset + 4] |= qfi2 >> shift; + sr2->segments->as_u8[offset + 5] |= qfi2 << (8 - shift); + } + for (index = 0; index < 4; index++) { sr2->segments->as_u8[offset + 5 + index] |= teidp2[index] >> shift; sr2->segments->as_u8[offset + 6 + index] |= teidp2[index] << (8 - shift); @@ -1795,6 +1927,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr3->segments->as_u8[offset + index] = dst_addr3.as_u8[index]; } + if (qfip3) + { + sr3->segments->as_u8[offset + 4] = qfi3; + } + for (index = 0; index < 4; index++) { sr3->segments->as_u8[offset+5+index] = teidp3[index]; } @@ -1804,6 +1941,12 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr3->segments->as_u8[offset + index + 1] |= dst_addr3.as_u8[index] << (8 - shift); } + if (qfip3) + { + sr3->segments->as_u8[offset + 4] |= qfi3 >> shift; + sr3->segments->as_u8[offset + 5] |= qfi3 << (8 - shift); + } + for (index = 0; index < 4; index++) { sr3->segments->as_u8[offset + 5 + index] |= teidp3[index] >> shift; sr3->segments->as_u8[offset + 6 + index] |= teidp3[index] << (8 - shift); @@ -1924,10 +2067,13 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, ip6_sr_sl_t *sl0; ip6_sr_header_t *sr0; ip4_gtpu_header_t *hdr0; + u32 hdr_len0 = 0; ip4_address_t sr_addr0; ip4_address_t dst_addr0; u32 teid0 = 0; u8 *teidp0 = NULL; + u8 qfi0 = 0; + u8 *qfip0 = NULL; u32 offset, shift; u32 index; @@ -1956,13 +2102,36 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, { // save for later use hdr0 = vlib_buffer_get_current (b0); + hdr_len0 = sizeof(ip4_gtpu_header_t); teid0 = hdr0->gtpu.teid; teidp0 = (u8 *)&teid0; sr_addr0 = hdr0->ip4.src_address; dst_addr0 = hdr0->ip4.dst_address; + // 5g header check and header length calc + if (hdr0->gtpu.ver_flags & GTPU_EXTHDR_FLAG) + { + // Extention header + hdr_len0 += sizeof(gtpu_exthdr_t); + if (hdr0->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) + { + gtpu_pdu_session_t *sess0; + + sess0 = (gtpu_pdu_session_t *)(((char *)hdr0) + hdr_len0); + qfi0 = sess0->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; + qfip0 = (u8 *)&qfi0; + + hdr_len0 += sizeof(gtpu_pdu_session_t); + + if (sess0->u.val & GTPU_PDU_SESSION_P_BIT_MASK) + { + hdr_len0 += sizeof(gtpu_paging_policy_t); + } + } + } + // go after GTPU, we are at segment header - vlib_buffer_advance (b0, (word) sizeof(ip4_gtpu_header_t)); + vlib_buffer_advance (b0, (word) hdr_len0); encap0 = vlib_buffer_get_current (b0); @@ -1997,6 +2166,11 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[offset + index] = dst_addr0.as_u8[index]; } + if (qfip0) + { + sr0->segments->as_u8[offset + 4] = qfi0; + } + for (index = 0; index < 4; index++) { sr0->segments->as_u8[offset+5+index] = teidp0[index]; } @@ -2006,6 +2180,12 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, sr0->segments->as_u8[offset + index + 1] |= dst_addr0.as_u8[index] << (8 - shift); } + if (qfip0) + { + sr0->segments->as_u8[offset + 4] |= qfi0 >> shift; + sr0->segments->as_u8[offset + 5] |= qfi0 << (8 - shift); + } + for (index = 0; index < 4; index++) { sr0->segments->as_u8[offset + 5 + index] |= teidp0[index] >> shift; sr0->segments->as_u8[offset + 6 + index] |= teidp0[index] << (8 - shift); From 4fd79a53867003e9b15e11ae1fe2ca9402b12ca7 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Sun, 6 Oct 2019 09:37:04 -0700 Subject: [PATCH 132/154] modify QFI bit position in SRv6 --- src/plugins/srv6-mobile/node.c | 15 +++++++++++++-- src/vnet/srv6/sr.h | 4 ++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 65072733208e..e2bcad80758f 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -313,7 +313,6 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, } } - qfi &= ~GTPU_PDU_SESSION_P_BIT_MASK; if (qfi) { hdrlen = sizeof(gtpu_exthdr_t) + sizeof(gtpu_pdu_session_t); @@ -342,6 +341,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->gtpu.ext->npdu_num = 0; hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; + qfi = ((qfi & SRV6_PDU_SESSION_QFI_MASK) >> 2) | ((qfi & SRV6_PDU_SESSION_R_BIT_MASK) << 5); + sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip4_gtpu_header_t) + sizeof(gtpu_exthdr_t)); sess->exthdrlen = 1; sess->type = 0; @@ -544,6 +545,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if (qfip) { + qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + seg.as_u8[offset + 4] = qfi; } @@ -562,6 +565,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if (qfip) { + qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + seg.as_u8[offset+4] |= qfi >> shift; seg.as_u8[offset+5] |= qfi << (8 - shift); } @@ -884,7 +889,6 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, qfi |= dst0.as_u8[offset + 5] >> (8 - shift); } - qfi &= ~GTPU_PDU_SESSION_P_BIT_MASK; if (qfi) { hdrlen = sizeof (gtpu_exthdr_t) + sizeof(gtpu_pdu_session_t); @@ -910,6 +914,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, hdr0->gtpu.ext->npdu_num = 0; hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; + qfi = ((qfi & SRV6_PDU_SESSION_QFI_MASK) >> 2) | ((qfi & SRV6_PDU_SESSION_R_BIT_MASK) << 5); + sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip6_gtpu_header_t) + sizeof(gtpu_exthdr_t)); sess->exthdrlen = 1; sess->type = 0; @@ -1083,6 +1089,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, clib_memcpy_fast (&seg0.as_u8[offset], teidp, 4); if (qfip) { + qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); seg0.as_u8[offset+4] = qfi; } } @@ -1098,6 +1105,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if (qfip) { + qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & ~GTPU_PDU_SESSION_R_BIT_MASK) >> 5); seg0.as_u8[offset+4] |= qfi >> shift; seg0.as_u8[offset+5] |= qfi << (8 - shift); } @@ -1383,6 +1391,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if (qfip) { + qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); seg0.as_u8[offset + 4] = qfi; } } @@ -1398,6 +1407,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if (qfip) { + qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + seg0.as_u8[offset + 4] |= qfi >> shift; seg0.as_u8[offset + 5] |= qfi << (8 - shift); } diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index df0bb5b0a494..ea9e47b7278b 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -118,6 +118,10 @@ typedef struct #define GTPU_PDU_SESSION_R_BIT_MASK 0x40 #define GTPU_PDU_SESSION_QFI_MASK 0x3f +#define SRV6_PDU_SESSION_P_BIT_MASK 0x01 +#define SRV6_PDU_SESSION_R_BIT_MASK 0x02 +#define SRV6_PDU_SESSION_QFI_MASK 0xfC + /* *INDENT-OFF* */ typedef struct { From 45439bc49189cd409233c5761022bd0c0ada2b59 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Mon, 7 Oct 2019 02:47:22 +0000 Subject: [PATCH 133/154] follow QFI bit-position update on gtp4 for sr_policy_rewrite. --- src/vnet/srv6/sr_policy_rewrite.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index d0f7d1dfb87b..62648f3b668e 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1773,6 +1773,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip0) { + qfi0 = ((qfi0 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi0 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr0->segments->as_u8[offset + 4] = qfi0; } @@ -1787,6 +1789,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip0) { + qfi0 = ((qfi0 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi0 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr0->segments->as_u8[offset + 4] |= qfi0 >> shift; sr0->segments->as_u8[offset + 5] |= qfi0 << (8 - shift); } @@ -1825,6 +1829,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip1) { + qfi1 = ((qfi1 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi1 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr1->segments->as_u8[offset + 4] = qfi1; } @@ -1839,6 +1845,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip1) { + qfi1 = ((qfi1 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi1 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr1->segments->as_u8[offset + 4] |= qfi1 >> shift; sr1->segments->as_u8[offset + 5] |= qfi1 << (8 - shift); } @@ -1877,6 +1885,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip2) { + qfi2 = ((qfi2 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi2 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr2->segments->as_u8[offset + 4] = qfi2; } @@ -1891,6 +1901,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip2) { + qfi2 = ((qfi2 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi2 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr2->segments->as_u8[offset + 4] |= qfi2 >> shift; sr2->segments->as_u8[offset + 5] |= qfi2 << (8 - shift); } @@ -1929,6 +1941,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip3) { + qfi3 = ((qfi3 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi3 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr3->segments->as_u8[offset + 4] = qfi3; } @@ -1943,6 +1957,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip3) { + qfi3 = ((qfi3 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi3 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr3->segments->as_u8[offset + 4] |= qfi3 >> shift; sr3->segments->as_u8[offset + 5] |= qfi3 << (8 - shift); } @@ -2168,6 +2184,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip0) { + qfi0 = ((qfi0 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi0 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr0->segments->as_u8[offset + 4] = qfi0; } @@ -2182,6 +2200,8 @@ sr_policy_rewrite_encaps_v4 (vlib_main_t * vm, vlib_node_runtime_t * node, if (qfip0) { + qfi0 = ((qfi0 & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi0 & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + sr0->segments->as_u8[offset + 4] |= qfi0 >> shift; sr0->segments->as_u8[offset + 5] |= qfi0 << (8 - shift); } From adb539cfa41dddc97cf62e05fc288f9a918c8952 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Sun, 6 Oct 2019 20:34:46 -0700 Subject: [PATCH 134/154] merge the latest vpp code --- src/plugins/srv6-mobile/node.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index e2bcad80758f..85b25868ae70 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -633,7 +633,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; ip6srv->sr.segments_left += 1; - ip6srv->sr.first_segment += 1; + ip6srv->sr.last_entry += 1; ip6srv->sr.length += sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg; @@ -1165,7 +1165,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; ip6srv->sr.segments_left += 1; - ip6srv->sr.first_segment += 1; + ip6srv->sr.last_entry += 1; ip6srv->sr.length += sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg0; @@ -1462,7 +1462,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, clib_memcpy_fast (ip6srv, sl->rewrite, vec_len (sl->rewrite)); ip6srv->sr.segments_left += 2; - ip6srv->sr.first_segment += 2; + ip6srv->sr.last_entry += 2; } else { @@ -1472,7 +1472,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->ip.dst_address = seg0; ip6srv->sr.segments_left += 1; - ip6srv->sr.first_segment += 1; + ip6srv->sr.last_entry += 1; ip6srv->sr.type = ROUTING_HEADER_TYPE_SR; } From 17b306f946b132a572166267aad6a2c9d2c5a71c Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 8 Oct 2019 12:57:05 -0700 Subject: [PATCH 135/154] revert back the original README and move SRv6 Mobile README into the plugin directory --- README.md | 232 +++++++++++------------------- src/plugins/srv6-mobile/README.md | 178 +++++++++++++++++++++++ 2 files changed, 258 insertions(+), 152 deletions(-) create mode 100644 src/plugins/srv6-mobile/README.md diff --git a/README.md b/README.md index 290f1fc000cd..4cc283b5e530 100644 --- a/README.md +++ b/README.md @@ -1,178 +1,106 @@ -SRv6 Mobile User Plane Plugin for VPP +Vector Packet Processing ======================== ## Introduction -This fork of VPP implements stateless mobile user plane protocols translation between GTP-U and SRv6. -The functions of the translation take advantage of SRv6 network programmability. -[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane) defines the user plane protocol using SRv6 -including following stateless translation functions: - -- **T.M.GTP4.D:** - GTP-U over UDP/IPv4 -> SRv6 -- **End.M.GTP4.E:** - SRv6 -> GTP-U over UDP/IPv4 -- **End.M.GTP6.D:** - GTP-U over UDP/IPv6 -> SRv6 -- **End.M.GTP6.E:** - SRv6 -> GTP-U over UDP/IPv6 - -These functions benefit user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits -data plane to be able to handle user plane in routing paradigm. +The VPP platform is an extensible framework that provides out-of-the-box +production quality switch/router functionality. It is the open source version +of Cisco's Vector Packet Processing (VPP) technology: a high performance, +packet-processing stack that can run on commodity CPUs. + +The benefits of this implementation of VPP are its high performance, proven +technology, its modularity and flexibility, and rich feature set. + +For more information on VPP and its features please visit the +[FD.io website](http://fd.io/) and +[What is VPP?](https://wiki.fd.io/view/VPP/What_is_VPP%3F) pages. + + +## Changes + +Details of the changes leading up to this version of VPP can be found under +@ref release_notes. + + +## Directory layout + +| Directory name | Description | +| ---------------------- | ------------------------------------------- | +| build-data | Build metadata | +| build-root | Build output directory | +| doxygen | Documentation generator configuration | +| dpdk | DPDK patches and build infrastructure | +| @ref extras/libmemif | Client library for memif | +| @ref src/examples | VPP example code | +| @ref src/plugins | VPP bundled plugins directory | +| @ref src/svm | Shared virtual memory allocation library | +| src/tests | Standalone tests (not part of test harness) | +| src/vat | VPP API test program | +| @ref src/vlib | VPP application library | +| @ref src/vlibapi | VPP API library | +| @ref src/vlibmemory | VPP Memory management | +| @ref src/vnet | VPP networking | +| @ref src/vpp | VPP application | +| @ref src/vpp-api | VPP application API bindings | +| @ref src/vppinfra | VPP core library | +| @ref src/vpp/api | Not-yet-relocated API bindings | +| test | Unit tests and Python test harness | ## Getting started -To play with SRv6 Mobile User Plane on VPP, you need to install following packages: - - docker - python3 - pip3 - - Python packages (use pip): - docker - scapy - jinja2 - - -### Quick-start - -1. Build up the docker container image as following: - -``` -$ git clone https://github.com/filvarga/srv6-mobile.git -$ cd ./srv6-mobile/extras/ietf105 -$ ./runner.py infra build - -$ docker images -REPOSITORY TAG IMAGE ID CREATED SIZE -ietf105-image latest 577e786b7ec6 2 days ago 5.57GB -ubuntu 18.04 4c108a37151f 4 weeks ago 64.2MB - -``` - -The runner script [runner.py](https://github.com/filvarga/srv6-mobile/blob/ietf105-hackathon/extras/ietf105/runner.py) has features to automate configurations and procedures for the test. - -2. Instantiate test Scenario - -Let's try following command to instantiate a topology: - -``` -$ ./runner.py infra start -``` - -This command instantiates 4 VPP containers with following topology: - -![Topology Diagram](extras/ietf106/topo-init.png) - -You can check the instantiated docker instances with "docker ps". - - -``` -$ docker ps -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -44cb98994500 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-4 -6d65fff8aee9 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-3 -ad123b516b24 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-2 -5efed405b96a ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-1 - -``` - -You can login to and configure each instantiated container. - -``` -$ ./runner.py cmd vppctl 0 -Verified image: None -connecting to: hck-vpp-1 - _______ _ _ _____ ___ - __/ __/ _ \ (_)__ | | / / _ \/ _ \ - _/ _// // / / / _ \ | |/ / ___/ ___/ - /_/ /____(_)_/\___/ |___/_/ /_/ +In general anyone interested in building, developing or running VPP should +consult the [VPP wiki](https://wiki.fd.io/view/VPP) for more complete +documentation. -vpp# -``` +In particular, readers are recommended to take a look at [Pulling, Building, +Running, Hacking, Pushing](https://wiki.fd.io/view/VPP/Pulling,_Building,_Run +ning,_Hacking_and_Pushing_VPP_Code) which provides extensive step-by-step +coverage of the topic. -## Test Scenarios -### SRv6 Drop-in between GTP-U tunnel +For the impatient, some salient information is distilled below. -This test scenario introduces SRv6 path between GTP-U tunnel transparently. A GTP-U packet sent out from one end to another is translated to SRv6 and then back to GTP-U. All GTP-U tunnel identifiers are preserved in IPv6 header and SRH. +### Quick-start: On an existing Linux host -#### GTP-U over UDP/IPv4 case +To install system dependencies, build VPP and then install it, simply run the +build script. This should be performed a non-privileged user with `sudo` +access from the project base directory: -This case uses SRv6 end functions, T.M.GTP4.D and End.M.GTP4.E. + ./extras/vagrant/build.sh -![Topology Diagram](extras/ietf105/topo-test_gtp4d.png) +If you want a more fine-grained approach because you intend to do some +development work, the `Makefile` in the root directory of the source tree +provides several convenience shortcuts as `make` targets that may be of +interest. To see the available targets run: -VPP1 is configured with "T.M.GTP4.D", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv4 toward the packet capture. VPP1 translates it to SRv6 toward D4::TEID with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. + make -To start this case with IPv4 payload over GTP-U, you can run: -``` -$ ./runner.py test tmap -``` +### Quick-start: Vagrant -If you want to use IPv6 payload instead of IPv4, you can run: +The directory `extras/vagrant` contains a `VagrantFile` and supporting +scripts to bootstrap a working VPP inside a Vagrant-managed Virtual Machine. +This VM can then be used to test concepts with VPP or as a development +platform to extend VPP. Some obvious caveats apply when using a VM for VPP +since its performance will never match that of bare metal; if your work is +timing or performance sensitive, consider using bare metal in addition or +instead of the VM. -``` -$ ./runner.py test tmap_ipv6 -``` +For this to work you will need a working installation of Vagrant. Instructions +for this can be found [on the Setting up Vagrant wiki page] +(https://wiki.fd.io/view/DEV/Setting_Up_Vagrant). -#### GTP-U over UDP/IPv6 case - -This case uses SRv6 end functions, End.M.GTP6.D.Di and End.M.GTP6.E. - -![Topology Diagram](extras/ietf106/topo-test_gtp6d.png) - -VPP1 is configured with "End.M.GTP6.D.Di", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D:: of the packet capture. VPP1 translates it to SRv6 toward D:: with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. - -To start this case with IPv4 payload over GTP-U, you can run: - -``` -$ ./runner.py test gtp6_drop_in -``` - -If you want to use IPv6 payload instead of IPv4, you can run: - -``` -$ ./runner.py test gtp6_drop_in_ipv6 -``` - - -### GTP-U to SRv6 - -This test scenario demonstrates GTP-U to SRv6 translation. A GTP-U packet sent out from one end to another is translated to SRv6. - -#### GTP-U over UDP/IPv6 case - -##### IPv4 payload - -This case uses SRv6 end functions, End.M.GTP6.D and End.DT4. - -![Topology Diagram](extras/ietf105/topo-test_gtp6.png) - -VPP1 is configured with "End.M.GTP6.D", and VPP4 is configured with "End.DT4". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D::2. VPP1 translates it to SRv6 toward the IPv6 destination consists of D4:: and TEID of GTP-U with SR policy in SRH. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv4 packet and send out to the packet capture. - -To start this case, you can run: - -``` -$ ./runner.py test gtp6 -``` - -##### IPv6 payload - -This case uses SRv6 end functions, End.M.GTP6.D and End.DT6. - +## More information -![Topology Diagram](extras/ietf105/topo-test_gtp6ip6.png) +Several modules provide documentation, see @subpage user_doc for more +end-user-oriented information. Also see @subpage dev_doc for developer notes. -The configurations are same with IPv4 payload case, except D4:: is configured as "End.DT6" in VPP4. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv6 packet and send out to the packet capture. +Visit the [VPP wiki](https://wiki.fd.io/view/VPP) for details on more +advanced building strategies and other development notes. -If you want to use IPv6 payload instead of IPv4, you can run: -``` -$ ./runner.py test gtp6_ipv6 -``` +## Test Framework -## More information -TBD +There is PyDoc generated documentation available for the VPP test framework. +See @ref test_framework_doc for details. diff --git a/src/plugins/srv6-mobile/README.md b/src/plugins/srv6-mobile/README.md new file mode 100644 index 000000000000..290f1fc000cd --- /dev/null +++ b/src/plugins/srv6-mobile/README.md @@ -0,0 +1,178 @@ +SRv6 Mobile User Plane Plugin for VPP +======================== + +## Introduction + +This fork of VPP implements stateless mobile user plane protocols translation between GTP-U and SRv6. +The functions of the translation take advantage of SRv6 network programmability. +[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane) defines the user plane protocol using SRv6 +including following stateless translation functions: + +- **T.M.GTP4.D:** + GTP-U over UDP/IPv4 -> SRv6 +- **End.M.GTP4.E:** + SRv6 -> GTP-U over UDP/IPv4 +- **End.M.GTP6.D:** + GTP-U over UDP/IPv6 -> SRv6 +- **End.M.GTP6.E:** + SRv6 -> GTP-U over UDP/IPv6 + +These functions benefit user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits +data plane to be able to handle user plane in routing paradigm. + +## Getting started +To play with SRv6 Mobile User Plane on VPP, you need to install following packages: + + docker + python3 + pip3 + + Python packages (use pip): + docker + scapy + jinja2 + + +### Quick-start + +1. Build up the docker container image as following: + +``` +$ git clone https://github.com/filvarga/srv6-mobile.git +$ cd ./srv6-mobile/extras/ietf105 +$ ./runner.py infra build + +$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +ietf105-image latest 577e786b7ec6 2 days ago 5.57GB +ubuntu 18.04 4c108a37151f 4 weeks ago 64.2MB + +``` + +The runner script [runner.py](https://github.com/filvarga/srv6-mobile/blob/ietf105-hackathon/extras/ietf105/runner.py) has features to automate configurations and procedures for the test. + +2. Instantiate test Scenario + +Let's try following command to instantiate a topology: + +``` +$ ./runner.py infra start +``` + +This command instantiates 4 VPP containers with following topology: + +![Topology Diagram](extras/ietf106/topo-init.png) + +You can check the instantiated docker instances with "docker ps". + + +``` +$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +44cb98994500 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-4 +6d65fff8aee9 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-3 +ad123b516b24 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-2 +5efed405b96a ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-1 + +``` + +You can login to and configure each instantiated container. + +``` +$ ./runner.py cmd vppctl 0 + +Verified image: None +connecting to: hck-vpp-1 + _______ _ _ _____ ___ + __/ __/ _ \ (_)__ | | / / _ \/ _ \ + _/ _// // / / / _ \ | |/ / ___/ ___/ + /_/ /____(_)_/\___/ |___/_/ /_/ + +vpp# +``` + +## Test Scenarios +### SRv6 Drop-in between GTP-U tunnel + +This test scenario introduces SRv6 path between GTP-U tunnel transparently. A GTP-U packet sent out from one end to another is translated to SRv6 and then back to GTP-U. All GTP-U tunnel identifiers are preserved in IPv6 header and SRH. + + +#### GTP-U over UDP/IPv4 case + +This case uses SRv6 end functions, T.M.GTP4.D and End.M.GTP4.E. + +![Topology Diagram](extras/ietf105/topo-test_gtp4d.png) + +VPP1 is configured with "T.M.GTP4.D", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv4 toward the packet capture. VPP1 translates it to SRv6 toward D4::TEID with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. + +To start this case with IPv4 payload over GTP-U, you can run: + +``` +$ ./runner.py test tmap +``` + +If you want to use IPv6 payload instead of IPv4, you can run: + +``` +$ ./runner.py test tmap_ipv6 +``` + + +#### GTP-U over UDP/IPv6 case + +This case uses SRv6 end functions, End.M.GTP6.D.Di and End.M.GTP6.E. + +![Topology Diagram](extras/ietf106/topo-test_gtp6d.png) + +VPP1 is configured with "End.M.GTP6.D.Di", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D:: of the packet capture. VPP1 translates it to SRv6 toward D:: with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. + +To start this case with IPv4 payload over GTP-U, you can run: + +``` +$ ./runner.py test gtp6_drop_in +``` + +If you want to use IPv6 payload instead of IPv4, you can run: + +``` +$ ./runner.py test gtp6_drop_in_ipv6 +``` + + +### GTP-U to SRv6 + +This test scenario demonstrates GTP-U to SRv6 translation. A GTP-U packet sent out from one end to another is translated to SRv6. + +#### GTP-U over UDP/IPv6 case + +##### IPv4 payload + +This case uses SRv6 end functions, End.M.GTP6.D and End.DT4. + +![Topology Diagram](extras/ietf105/topo-test_gtp6.png) + +VPP1 is configured with "End.M.GTP6.D", and VPP4 is configured with "End.DT4". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D::2. VPP1 translates it to SRv6 toward the IPv6 destination consists of D4:: and TEID of GTP-U with SR policy in SRH. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv4 packet and send out to the packet capture. + +To start this case, you can run: + +``` +$ ./runner.py test gtp6 +``` + +##### IPv6 payload + +This case uses SRv6 end functions, End.M.GTP6.D and End.DT6. + + +![Topology Diagram](extras/ietf105/topo-test_gtp6ip6.png) + +The configurations are same with IPv4 payload case, except D4:: is configured as "End.DT6" in VPP4. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv6 packet and send out to the packet capture. + +If you want to use IPv6 payload instead of IPv4, you can run: + +``` +$ ./runner.py test gtp6_ipv6 +``` + +## More information +TBD From 904e884ce8125b9a6ee11add9b97ac77a46284af Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 9 Oct 2019 10:18:32 -0700 Subject: [PATCH 136/154] move extra/ietf106 to src/plugin/srv6-mobile/test --- src/plugins/srv6-mobile/README.md | 12 +- src/plugins/srv6-mobile/test/Dockerfile.j2 | 48 + .../srv6-mobile/test/Dockerfile.j2.release | 37 + src/plugins/srv6-mobile/test/README.md | 173 ++ src/plugins/srv6-mobile/test/requirements.txt | 3 + src/plugins/srv6-mobile/test/runner.py | 1733 +++++++++++++++++ src/plugins/srv6-mobile/test/startup.conf.j2 | 14 + src/plugins/srv6-mobile/test/topo-init.png | Bin 0 -> 121503 bytes .../srv6-mobile/test/topo-test_gtp4d.png | Bin 0 -> 138014 bytes .../srv6-mobile/test/topo-test_gtp6.png | Bin 0 -> 131731 bytes .../srv6-mobile/test/topo-test_gtp6d.png | Bin 0 -> 127820 bytes .../srv6-mobile/test/topo-test_gtp6ip6.png | Bin 0 -> 116633 bytes 12 files changed, 2014 insertions(+), 6 deletions(-) create mode 100644 src/plugins/srv6-mobile/test/Dockerfile.j2 create mode 100644 src/plugins/srv6-mobile/test/Dockerfile.j2.release create mode 100644 src/plugins/srv6-mobile/test/README.md create mode 100644 src/plugins/srv6-mobile/test/requirements.txt create mode 100755 src/plugins/srv6-mobile/test/runner.py create mode 100644 src/plugins/srv6-mobile/test/startup.conf.j2 create mode 100644 src/plugins/srv6-mobile/test/topo-init.png create mode 100644 src/plugins/srv6-mobile/test/topo-test_gtp4d.png create mode 100644 src/plugins/srv6-mobile/test/topo-test_gtp6.png create mode 100644 src/plugins/srv6-mobile/test/topo-test_gtp6d.png create mode 100644 src/plugins/srv6-mobile/test/topo-test_gtp6ip6.png diff --git a/src/plugins/srv6-mobile/README.md b/src/plugins/srv6-mobile/README.md index 290f1fc000cd..bb9456a441b0 100644 --- a/src/plugins/srv6-mobile/README.md +++ b/src/plugins/srv6-mobile/README.md @@ -49,7 +49,7 @@ ubuntu 18.04 4c108a37151f 4 weeks ago ``` -The runner script [runner.py](https://github.com/filvarga/srv6-mobile/blob/ietf105-hackathon/extras/ietf105/runner.py) has features to automate configurations and procedures for the test. +The runner script [runner.py](https://github.com/filvarga/srv6-mobile/blob/ietf105-hackathon/extras/ietf106/runner.py) has features to automate configurations and procedures for the test. 2. Instantiate test Scenario @@ -61,7 +61,7 @@ $ ./runner.py infra start This command instantiates 4 VPP containers with following topology: -![Topology Diagram](extras/ietf106/topo-init.png) +![Topology Diagram](test/topo-init.png) You can check the instantiated docker instances with "docker ps". @@ -101,7 +101,7 @@ This test scenario introduces SRv6 path between GTP-U tunnel transparently. A GT This case uses SRv6 end functions, T.M.GTP4.D and End.M.GTP4.E. -![Topology Diagram](extras/ietf105/topo-test_gtp4d.png) +![Topology Diagram](test/topo-test_gtp4d.png) VPP1 is configured with "T.M.GTP4.D", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv4 toward the packet capture. VPP1 translates it to SRv6 toward D4::TEID with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. @@ -122,7 +122,7 @@ $ ./runner.py test tmap_ipv6 This case uses SRv6 end functions, End.M.GTP6.D.Di and End.M.GTP6.E. -![Topology Diagram](extras/ietf106/topo-test_gtp6d.png) +![Topology Diagram](test/topo-test_gtp6d.png) VPP1 is configured with "End.M.GTP6.D.Di", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D:: of the packet capture. VPP1 translates it to SRv6 toward D:: with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. @@ -149,7 +149,7 @@ This test scenario demonstrates GTP-U to SRv6 translation. A GTP-U packet sent o This case uses SRv6 end functions, End.M.GTP6.D and End.DT4. -![Topology Diagram](extras/ietf105/topo-test_gtp6.png) +![Topology Diagram](test/topo-test_gtp6.png) VPP1 is configured with "End.M.GTP6.D", and VPP4 is configured with "End.DT4". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D::2. VPP1 translates it to SRv6 toward the IPv6 destination consists of D4:: and TEID of GTP-U with SR policy in SRH. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv4 packet and send out to the packet capture. @@ -164,7 +164,7 @@ $ ./runner.py test gtp6 This case uses SRv6 end functions, End.M.GTP6.D and End.DT6. -![Topology Diagram](extras/ietf105/topo-test_gtp6ip6.png) +![Topology Diagram](test/topo-test_gtp6ip6.png) The configurations are same with IPv4 payload case, except D4:: is configured as "End.DT6" in VPP4. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv6 packet and send out to the packet capture. diff --git a/src/plugins/srv6-mobile/test/Dockerfile.j2 b/src/plugins/srv6-mobile/test/Dockerfile.j2 new file mode 100644 index 000000000000..ac58fa36b644 --- /dev/null +++ b/src/plugins/srv6-mobile/test/Dockerfile.j2 @@ -0,0 +1,48 @@ + +FROM ubuntu:18.04 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + inetutils-traceroute \ + ca-certificates \ + build-essential \ + git gdb sudo \ + iputils-ping \ + net-tools \ + iproute2 \ + tcpdump \ + python3-cffi \ + asciidoc \ + xmlto \ + netcat; \ + rm -rf /var/lib/apt/lists/*; \ + mv /usr/sbin/tcpdump /usr/bin/tcpdump + +RUN set -eux; \ + mkdir -p {{vpp_path}} + +COPY . / {{vpp_path}}/ + +WORKDIR {{vpp_path}} + +RUN set -eux; \ + make wipe; \ + export UNATTENDED=y; \ + echo "y" | make install-dep; \ + rm -rf /var/lib/apt/lists/* ; \ + make build; \ + make pkg-deb; \ + rm -rf .ccache; \ + find . -type f -name '*.o' -delete ; \ + cd {{vpp_path}}/build-root; \ + rm vpp-api-python_*.deb; \ + tar czf vpp-package.tgz *.deb; \ + mv vpp-package.tgz {{vpp_path}}/; \ + dpkg -i *.deb ; \ + cp {{vpp_path}}/startup.conf /etc/startup.conf + +WORKDIR / + +CMD vpp -c /etc/startup.conf + diff --git a/src/plugins/srv6-mobile/test/Dockerfile.j2.release b/src/plugins/srv6-mobile/test/Dockerfile.j2.release new file mode 100644 index 000000000000..851aef66197b --- /dev/null +++ b/src/plugins/srv6-mobile/test/Dockerfile.j2.release @@ -0,0 +1,37 @@ + +FROM ubuntu:18.04 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + inetutils-traceroute \ + ca-certificates \ + libmbedcrypto1 \ + libmbedtls10 \ + libmbedx509-0 \ + libnuma1 \ + sudo \ + iputils-ping \ + net-tools \ + iproute2 \ + tcpdump \ + python3-cffi \ + netcat; \ + rm -rf /var/lib/apt/lists/*; \ + mv /usr/sbin/tcpdump /usr/bin/tcpdump + +WORKDIR /tmp + +COPY startup.conf /etc/startup.conf + +COPY vpp-package.tgz /tmp + +RUN set -eux; \ + tar xzf vpp-package.tgz; \ + dpkg -i *.deb ; \ + rm -rf *.deb + +WORKDIR / + +CMD vpp -c /etc/startup.conf + diff --git a/src/plugins/srv6-mobile/test/README.md b/src/plugins/srv6-mobile/test/README.md new file mode 100644 index 000000000000..3b24dea6fd6c --- /dev/null +++ b/src/plugins/srv6-mobile/test/README.md @@ -0,0 +1,173 @@ +# What's `runner.py` doing? + +## Common configurations + +### VPP1 +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::1/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A1::2 +``` + + +### VPP2 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A2::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth2 A2::2 +``` + + +### VPP3 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A2::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A3::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth1 A2::1 +``` + +### VPP4 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A3::2/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A3::1 +``` + + +## Drop-in for GTP-U over IPv4 + +What's happened when you run `test tmap`: + + $ ./runner.py test tmap + + +Setting up a virtual interface of packet generator: + +#### VPP1 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:01 +set int ip addr pg0 172.16.0.1/30 +set ip arp pg0 172.16.0.2/30 aa:bb:cc:dd:ee:02 +``` + +#### VPP4 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:11 +set int ip addr pg0 1.0.0.2/30 +set ip arp pg0 1.0.0.1 aa:bb:cc:dd:ee:22 +``` + +SRv6 and IP routing settings: + +#### VPP1 + +``` +sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64 +sr steer l3 172.20.0.1/32 via bsid D1:: + +``` + +#### VPP2 + +``` +sr localsid address D2:: behavior end +ip route add D3::/128 via host-eth2 A2::2 +``` + +#### VPP3 + +``` +sr localsid address D3:: behavior end +ip route add D4::/32 via host-eth2 A3::2 +``` + +#### VPP4 + +``` +sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64 +ip route add 172.20.0.1/32 via pg0 1.0.0.1 +``` + + + + +## Packet generator and testing + + Example how to build custom SRv6 packet in scapy and ipaddress pkgs + + s = '\x11' * 4 + IPv4Address(u"192.168.192.10").packed + '\x11' * 8 + ip6 = IPv6Address(s) + IPv6(dst=ip6, src=ip6) + + +## end.m.gtp4.e + + First set behavior so our localsid node is called with the packet + matching C1::1 in fib table + sr localsid address C1::1 behavior end.m.gtp4.ess + + show sr localsids behaviors + show sr localsid + + We should send a well formated packet to C::1 destination address + that contains the correct spec as for end.m.gtp4.e with encapsulated + ipv4 src and dst address and teid with port for the conversion to + GTPU IPv4 packet + + +## additional commands + + gdb - breakpoint + + break sr_policy_rewrite.c:1620 + + break src/plugins/srv6-end/node.c:84 + + TMAP + Linux: + + ip link add tmp1 type veth peer name tmp2 + ip link set dev tmp1 up + ip link set dev tmp2 up + ip addr add 172.20.0.2/24 dev tmp2 + + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 172.20.0.1/24 + set interface state host-tmp1 up + + VPP + set sr encaps source addr C1:: + sr policy add bsid D1::999:2 next D2:: next D3:: gtp4_removal sr-prefix fc34:5678::/64 local-prefix C1::/64 + sr steer l3 172.21.0.0/24 via bsid d1::999:2 + + END + Linux + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 A1::1/64 + set interface state host-tmp1 up + + VPP + sr localsid address 1111:1111:c0a8:c00a:1122:1111:1111:1111 behavior end.m.gtp4.e + + trace add af-packet-input 10 + + sr localsid address C3:: behavior end.m.gtp4.e + sr localsid address 2001:200:0:1ce1:3000:757f:0:2 behavior end.m.gtp4.e diff --git a/src/plugins/srv6-mobile/test/requirements.txt b/src/plugins/srv6-mobile/test/requirements.txt new file mode 100644 index 000000000000..2938cddeceb0 --- /dev/null +++ b/src/plugins/srv6-mobile/test/requirements.txt @@ -0,0 +1,3 @@ +docker +jinja2 +scapy diff --git a/src/plugins/srv6-mobile/test/runner.py b/src/plugins/srv6-mobile/test/runner.py new file mode 100755 index 000000000000..074b06b51990 --- /dev/null +++ b/src/plugins/srv6-mobile/test/runner.py @@ -0,0 +1,1733 @@ +#!/usr/bin/env python3 + +from os.path import dirname, realpath, split,\ + join, isdir, exists +from os import remove, system, mkdir +from logging import getLogger, basicConfig,\ + DEBUG, INFO, ERROR +from argparse import ArgumentParser +from atexit import register +from shutil import rmtree + +from jinja2 import Environment, FileSystemLoader + +from docker.errors import NotFound, APIError +from docker import from_env + +from scapy.contrib.gtp import * +from scapy.all import * + + +verbose_levels = { + 'error': ERROR, + 'debug': DEBUG, + 'info': INFO} + + +class ContainerStartupError(Exception): + pass + + +class Container(object): + + tmp = "/tmp" + cmd = "vppctl -s 0:5002" + cmd_bash = "/bin/bash" + + def __init__(self, ref, name): + self._name = name + self._ref = ref + + @property + def name(self): + return self._name + + @property + def temp(self): + return join(self.tmp, self.name) + + @property + def pg_input_file(self): + return join(self.temp, "pgi.pcap") + + @property + def pg_output_file(self): + return join(self.temp, "pgo.pcap") + + @property + def pg_input_file_in(self): + return join("/mnt", "pgi.pcap") + + @property + def pg_output_file_in(self): + return join("/mnt", "pgo.pcap") + + def disconnect_all(self): + status = False + for net in self._ref.client.networks.list(): + try: + net.disconnect(self._ref) + except APIError: + continue + status = True + return status + + @classmethod + def new(cls, client, image, name): + + temp = join(cls.tmp, name) + if isdir(temp): + rmtree(temp) + mkdir(temp) + + ref = client.containers.run(detach=True, + remove=True, auto_remove=True, + image=image, name=name, + privileged=True, + volumes={ temp: { + 'bind': '/mnt', + 'mode': 'rw' + }}) + + obj = cls.get(client, name) + if not obj: + raise ContainerStartupError() + + obj.disconnect_all() + return obj + + @classmethod + def get(cls, client, name): + try: + ref = client.containers.get(name) + except NotFound: + pass + else: + return cls(ref, name) + + def rem(self): + self._ref.kill() + + def vppctl(self): + system("docker exec -it {} {}".format(self.name, self.cmd)) + + def bash(self): + system("docker exec -it {} {}".format(self.name, self.cmd_bash)) + + def vppctl_exec(self, cmd): + ec, resp = self._ref.exec_run(cmd="{} {}".format(self.cmd, cmd)) + assert(ec == 0) + return resp + + def setup_host_interface(self, name, ip): + self.vppctl_exec("create host-interface name {}".format(name)) + self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) + self.vppctl_exec("set int state host-{} up".format(name)) + + def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip6 neighbor pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") + + def pg_create_interface4(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip arp pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") + + def pg_create_interface6(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip6 addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip6 arp pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") + + def pg_enable(self): + # start packet generator + self.vppctl_exec("packet-generator enable") + + def pg_create_stream(self, stream): + wrpcap(self.pg_input_file, stream) + self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( + self.pg_input_file_in)) + + def pg_start_capture(self): + if exists(self.pg_output_file): + remove(self.pg_output_file) + self.vppctl_exec("packet-generator capture pg0 pcap {}".format( + self.pg_output_file_in)) + + def pg_read_packets(self): + return rdpcap(self.pg_output_file) + + def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via host-{} {}".format( + subnet, out_if_name, next_hop_ip)) + + def set_ip_pgroute(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via {} {}".format( + subnet, out_if_name, next_hop_ip)) + + def set_ipv6_pgroute(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via {} {}".format( + subnet, out_if_name, next_hop_ip)) + + def set_ipv6_default_route(self, out_if_name, next_hop_ip): + self.vppctl_exec("ip route add ::/0 via host-{} {}".format( + out_if_name, next_hop_ip)) + + def enable_trace(self, count): + self.vppctl_exec("trace add af-packet-input {}".format(count)) + + +class Containers(object): + + def __init__(self, client, image): + self.client = client + self.image = image + + def tmp_render(self, path, template, kwargs): + + with open(path, "w") as fo: + fo.write(template.render(**kwargs)) + + register(lambda : remove(path)) + + def build(self, path, vpp_path): + env = Environment( + loader=FileSystemLoader(path), + trim_blocks=True) + + self.tmp_render(join(vpp_path, "Dockerfile"), + env.get_template("Dockerfile.j2"), + {'vpp_path': vpp_path}) + + self.tmp_render(join(vpp_path, "startup.conf"), + env.get_template("startup.conf.j2"), + {'vpp_path': vpp_path}) + + ref, _ = self.client.images.build(path=vpp_path, + tag=self.image, rm=True) + return ref + + def release(self, path, vpp_path): + env = Environment( + loader=FileSystemLoader(path), + trim_blocks=True) + + self.tmp_render(join(vpp_path, "Dockerfile"), + env.get_template("Dockerfile.j2.release"), + {'vpp_path': vpp_path}) + + self.tmp_render(join(vpp_path, "startup.conf"), + env.get_template("startup.conf.j2"), + {'vpp_path': vpp_path}) + + ref, _ = self.client.images.build(path=vpp_path, + tag="ietf106-release-image", rm=True) + return ref + + def new(self, name): + return Container.new(self.client, self.image, name) + + def get(self, name): + return Container.get(self.client, name) + + def vppctl(self, name, command=None): + container = self.get(name) + if not command: + container.vppctl() + else: + print(container.vppctl_exec(command).decode()) + + def bash(self, name): + container = self.get(name) + container.bash() + + +class Network(object): + + def __init__(self, ref, name): + self._name = name + self._ref = ref + + @property + def name(self): + return self._name + + @classmethod + def new(cls, client, name): + ref = client.networks.create( + name, driver="bridge", + check_duplicate=True) + return cls(ref, name) + + @classmethod + def get(cls, client, name): + try: + ref = client.networks.get(name) + except NotFound: + pass + else: + return cls(ref, name) + + def rem(self): + self._ref.remove() + + def connect(self, c): + self._ref.connect(c.name) + + +class Networks(object): + + def __init__(self, client): + self.client = client + + def new(self, name): + return Network.new(self.client, name) + + def get(self, name): + return Network.get(self.client, name) + + +class Program(object): + + image = "ietf106-image" + + name_prefix = "hck" + + # TODO: add description to these instances + # for exmaple what the vpp is supposed to be + # in our topoloty overview + + instance_names = [ + "vpp-1", + "vpp-2", + "vpp-3", + "vpp-4" + ] + + network_names = [ + "net-1", + "net-2", + "net-3", + ] + + def __init__(self, image=None, prefix=None): + self.path = dirname(realpath(__file__)) + + if image: + self.image = image + if prefix is not None: + self.name_prefix = prefix + + client = from_env() + self.containers = Containers(client, self.image) + self.networks = Networks(client) + + self.logger = getLogger(__name__) + + @property + def vpp_path(self): + return self.path.rsplit("/", 4)[0] + + def get_name(self, name): + if not self.name_prefix: + return name + return "{}-{}".format(self.name_prefix, name) + + def stop_containers(self): + + for name in self.instance_names: + instance = self.containers.get(self.get_name(name)) + if instance: + instance.rem() + + for name in self.network_names: + network = self.networks.get(self.get_name(name)) + if network: + network.rem() + + def start_containers(self): + + self.stop_containers() + + networks = list() + + for name in self.network_names: + networks.append(self.networks.new(self.get_name(name))) + + n1, n2, n3 = networks + + instances = list() + + for name in self.instance_names: + instances.append(self.containers.new(self.get_name(name))) + + c1, c2, c3, c4 = instances + + # setup packet generator interfaces + #c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + #local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + + # setup network between instances + n1.connect(c1) + n1.connect(c2) + + n2.connect(c2) + n2.connect(c3) + + n3.connect(c3) + n3.connect(c4) + + # c1 & c2 link + c1.setup_host_interface("eth1", "A1::1/120") + c2.setup_host_interface("eth1", "A1::2/120") + + # c2 & c3 link + c2.setup_host_interface("eth2", "A2::1/120") + c3.setup_host_interface("eth1", "A2::2/120") + + # c3 & c4 link + c3.setup_host_interface("eth2", "A3::1/120") + c4.setup_host_interface("eth1", "A3::2/120") + + # c1 > c2 default route + + c1.set_ipv6_default_route("eth1", "A1::2") + # c2 > c3 default route + c2.set_ipv6_default_route("eth2", "A2::2") + # c3 > c2 default route + c3.set_ipv6_default_route("eth1", "A2::1") + # c4 > c3 default route + c4.set_ipv6_default_route("eth1", "A3::1") + + # c3 > c4 static route for address B::1/128 + c3.set_ipv6_route("eth2", "A3::2", "B::1/128") + c3.set_ipv6_route("eth2", "A3::2", "B::2/128") + + def test_ping(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_srv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 C::1/120 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Sleeping") + time.sleep(30) + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr D1::") + c1.vppctl_exec("sr policy add bsid D1::999:1 next D2:: next D3:: next D4::") + c1.vppctl_exec("sr steer l3 B::/120 via bsid D1::999:1") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid address D4:: behavior end.dx6 pg0 B::2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/128") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c2.enable_trace(10) + c3.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + + def test_tmap(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_tmap_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_tmap_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_tmap_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp4(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix 172.20.0.1/32 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp4_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp4_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp4_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_drop_in(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_drop_in_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_drop_in_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_drop_in_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.100.0.1", dst="172.200.0.1")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IP(src="172.100.0.1", dst="172.200.0.1")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_ipv6_5g(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + GTPPDUSessionContainer(R=1, QFI=3)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def status_containers(self): + + print("Instances:") + + for i, name in enumerate(self.instance_names): + name = self.get_name(name) + print("\t[{}] {} - {}".format(i, name, + "running" if self.containers.get(name) else "missing")) + + print("Networks:") + + for i, name in enumerate(self.network_names): + name = self.get_name(name) + print("\t[{}] {} - {}".format(i, name, + "running" if self.networks.get(name) else "missing")) + + def build_image(self): + # TODO: optimize build process for speed and image size + print("VPP Path (build): {}".format(self.vpp_path)) + self.containers.build(self.path, self.vpp_path) + + def release_image(self): + print("VPP Path (release): {}".format(self.vpppath)) + instance = self.containers.new("release-build") + + system("docker cp release-build:{}/vpp-package.tgz {}/".format(self.vpp_path, self.vpp_path)) + + instance.rem() + + self.containers.release(self.path, self.vpp_path) + + system("rm -rf {}/vpp-package.tgz".format(self.vpp_path)) + + def vppctl(self, index, command=None): + if index >= len(self.instance_names): + return + name = self.get_name( + self.instance_names[index]) + self.logger.error("connecting to: {}".format(name)) + self.containers.vppctl(name, command) + + def bash(self, index): + if index >= len(self.instance_names): + return + name = self.get_name( + self.instance_names[index]) + self.logger.error("connecting to: {}".format(name)) + self.containers.bash(name) + + +def get_args(): + parser = ArgumentParser() + + parser.add_argument("--verbose", choices=[ + 'error', 'debug', 'info']) + + parser.add_argument('--image', choices=[ + 'debug', 'release']) + + subparsers = parser.add_subparsers() + + p1 = subparsers.add_parser("infra", + help="Infrastructure related commands.") + + p1.add_argument("op", choices=[ + 'stop', 'start', 'status', 'restart', 'build', 'release']) + + p1.add_argument("--prefix") + p1.add_argument("--image") + + p2 = subparsers.add_parser("cmd", + help="Instance related commands.") + + p2.add_argument("op", choices=[ + 'vppctl', 'bash']) + + p2.add_argument("index", type=int, + help="Container instance index. (./runner.py infra status)") + + p2.add_argument("--command", + help="Only vppctl supports this optional argument.") + + p3 = subparsers.add_parser("test", + help="Test related commands.") + + p3.add_argument("op", choices=[ + "ping", "srv6", "tmap", "tmap_5g", "tmap_ipv6", "tmap_ipv6_5g", "gtp4", "gtp4_5g", "gtp4_ipv6", "gtp4_ipv6_5g", "gtp6_drop_in", "gtp6_drop_in_5g", "gtp6_drop_in_ipv6", "gtp6_drop_in_ipv6_5g", "gtp6", "gtp6_5g", "gtp6_ipv6", "gtp6_ipv6_5g"]) + + args = parser.parse_args() + if not hasattr(args, "op") or not args.op: + parser.print_help(sys.stderr) + sys.exit(1) + + return vars(args) + + +def main(op=None, prefix=None, verbose=None, image=None, index=None, command=None): + + if verbose: + basicConfig(level=verbose_levels[verbose]) + + if image == 'release': + image="ietf106-release-image" + elif image == 'debug': + image="ietf106-image" + + print("Verified image: {}".format(image)) + + program = Program(image, prefix) + + try: + if op == 'build': + program.build_image() + elif op == 'release': + program.release_image() + elif op == 'stop': + program.stop_containers() + elif op == 'start': + program.start_containers() + elif op == 'status': + program.status_containers() + elif op == 'vppctl': + program.vppctl(index, command) + elif op == 'bash': + program.bash(index) + elif op == 'ping': + program.test_ping() + elif op == 'srv6': + program.test_srv6() + elif op == 'tmap': + program.test_tmap() + elif op == 'tmap_5g': + program.test_tmap_5g() + elif op == 'tmap_ipv6': + program.test_tmap_ipv6() + elif op == 'tmap_ipv6_5g': + program.test_tmap_ipv6_5g() + elif op == 'gtp4': + program.test_gtp4() + elif op == 'gtp4_5g': + program.test_gtp4_5g() + elif op == 'gtp4_ipv6': + program.test_gtp4_ipv6() + elif op == 'gtp4_ipv6_5g': + program.test_gtp4_ipv6_5g() + elif op == 'gtp6_drop_in': + program.test_gtp6_drop_in() + elif op == 'gtp6_drop_in_5g': + program.test_gtp6_drop_in_5g() + elif op == 'gtp6_drop_in_ipv6': + program.test_gtp6_drop_in_ipv6() + elif op == 'gtp6_drop_in_ipv6_5g': + program.test_gtp6_drop_in_ipv6_5g() + elif op == 'gtp6': + program.test_gtp6() + elif op == 'gtp6_5g': + program.test_gtp6_5g() + elif op == 'gtp6_ipv6': + program.test_gtp6_ipv6() + elif op == 'gtp6_ipv6_5g': + program.test_gtp6_ipv6_5g() + + except Exception: + program.logger.exception("") + rc = 1 + else: + rc = 0 + + return rc + + +if __name__ == "__main__": + sys.exit(main(**get_args())) + diff --git a/src/plugins/srv6-mobile/test/startup.conf.j2 b/src/plugins/srv6-mobile/test/startup.conf.j2 new file mode 100644 index 000000000000..5a4a2ef103d1 --- /dev/null +++ b/src/plugins/srv6-mobile/test/startup.conf.j2 @@ -0,0 +1,14 @@ +unix { + nodaemon + cli-no-pager + cli-listen 0.0.0.0:5002 +} +plugins { + plugin dpdk_plugin.so { + disable + } +} +cpu { + workers 2 +} + diff --git a/src/plugins/srv6-mobile/test/topo-init.png b/src/plugins/srv6-mobile/test/topo-init.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9603ba2907f13aebc368119fff9c07f1b0473f GIT binary patch literal 121503 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⩔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

&fi?_v}*m#>xS5M{chWBlX4 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 GJp3;jwqDKv literal 0 HcmV?d00001 diff --git a/src/plugins/srv6-mobile/test/topo-test_gtp4d.png b/src/plugins/srv6-mobile/test/topo-test_gtp4d.png new file mode 100644 index 0000000000000000000000000000000000000000..d60beb230930f5f2a91641caecb63a4025f24915 GIT binary patch literal 138014 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 I>g_-N2VIs9&;S4c literal 0 HcmV?d00001 diff --git a/src/plugins/srv6-mobile/test/topo-test_gtp6.png b/src/plugins/srv6-mobile/test/topo-test_gtp6.png new file mode 100644 index 0000000000000000000000000000000000000000..2cad260215a37482d955ac7f9eed76f157a8d930 GIT binary patch literal 131731 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

WkWl}qxII$v_iOetRmS2W6}L-bKY+}7%2 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 z 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 Zs$qltF)EM7rOn}BoXGsg)BPCVCkqtZpT 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≶9 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 literal 0 HcmV?d00001 From f1fbca6c760b23f720d2780f777487e501ee26c3 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 9 Oct 2019 10:19:38 -0700 Subject: [PATCH 137/154] remove extra/ietf106 --- extras/ietf106/Dockerfile.j2 | 48 - extras/ietf106/Dockerfile.j2.release | 37 - extras/ietf106/README.md | 173 --- extras/ietf106/requirements.txt | 3 - extras/ietf106/runner.py | 1731 -------------------------- extras/ietf106/startup.conf.j2 | 14 - extras/ietf106/topo-init.png | Bin 121503 -> 0 bytes extras/ietf106/topo-test_gtp4d.png | Bin 138014 -> 0 bytes extras/ietf106/topo-test_gtp6.png | Bin 131731 -> 0 bytes extras/ietf106/topo-test_gtp6d.png | Bin 127820 -> 0 bytes extras/ietf106/topo-test_gtp6ip6.png | Bin 116633 -> 0 bytes 11 files changed, 2006 deletions(-) delete mode 100644 extras/ietf106/Dockerfile.j2 delete mode 100644 extras/ietf106/Dockerfile.j2.release delete mode 100644 extras/ietf106/README.md delete mode 100644 extras/ietf106/requirements.txt delete mode 100755 extras/ietf106/runner.py delete mode 100644 extras/ietf106/startup.conf.j2 delete mode 100644 extras/ietf106/topo-init.png delete mode 100644 extras/ietf106/topo-test_gtp4d.png delete mode 100644 extras/ietf106/topo-test_gtp6.png delete mode 100644 extras/ietf106/topo-test_gtp6d.png delete mode 100644 extras/ietf106/topo-test_gtp6ip6.png diff --git a/extras/ietf106/Dockerfile.j2 b/extras/ietf106/Dockerfile.j2 deleted file mode 100644 index ac58fa36b644..000000000000 --- a/extras/ietf106/Dockerfile.j2 +++ /dev/null @@ -1,48 +0,0 @@ - -FROM ubuntu:18.04 - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - inetutils-traceroute \ - ca-certificates \ - build-essential \ - git gdb sudo \ - iputils-ping \ - net-tools \ - iproute2 \ - tcpdump \ - python3-cffi \ - asciidoc \ - xmlto \ - netcat; \ - rm -rf /var/lib/apt/lists/*; \ - mv /usr/sbin/tcpdump /usr/bin/tcpdump - -RUN set -eux; \ - mkdir -p {{vpp_path}} - -COPY . / {{vpp_path}}/ - -WORKDIR {{vpp_path}} - -RUN set -eux; \ - make wipe; \ - export UNATTENDED=y; \ - echo "y" | make install-dep; \ - rm -rf /var/lib/apt/lists/* ; \ - make build; \ - make pkg-deb; \ - rm -rf .ccache; \ - find . -type f -name '*.o' -delete ; \ - cd {{vpp_path}}/build-root; \ - rm vpp-api-python_*.deb; \ - tar czf vpp-package.tgz *.deb; \ - mv vpp-package.tgz {{vpp_path}}/; \ - dpkg -i *.deb ; \ - cp {{vpp_path}}/startup.conf /etc/startup.conf - -WORKDIR / - -CMD vpp -c /etc/startup.conf - diff --git a/extras/ietf106/Dockerfile.j2.release b/extras/ietf106/Dockerfile.j2.release deleted file mode 100644 index 851aef66197b..000000000000 --- a/extras/ietf106/Dockerfile.j2.release +++ /dev/null @@ -1,37 +0,0 @@ - -FROM ubuntu:18.04 - -RUN set -eux; \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - inetutils-traceroute \ - ca-certificates \ - libmbedcrypto1 \ - libmbedtls10 \ - libmbedx509-0 \ - libnuma1 \ - sudo \ - iputils-ping \ - net-tools \ - iproute2 \ - tcpdump \ - python3-cffi \ - netcat; \ - rm -rf /var/lib/apt/lists/*; \ - mv /usr/sbin/tcpdump /usr/bin/tcpdump - -WORKDIR /tmp - -COPY startup.conf /etc/startup.conf - -COPY vpp-package.tgz /tmp - -RUN set -eux; \ - tar xzf vpp-package.tgz; \ - dpkg -i *.deb ; \ - rm -rf *.deb - -WORKDIR / - -CMD vpp -c /etc/startup.conf - diff --git a/extras/ietf106/README.md b/extras/ietf106/README.md deleted file mode 100644 index 3b24dea6fd6c..000000000000 --- a/extras/ietf106/README.md +++ /dev/null @@ -1,173 +0,0 @@ -# What's `runner.py` doing? - -## Common configurations - -### VPP1 -``` -create host-interface name eth1 -set int ip addr host-eth1 A1::1/120 -set int state host-eth1 up -ip route add ::/0 via host-eth1 A1::2 -``` - - -### VPP2 - -``` -create host-interface name eth1 -set int ip addr host-eth1 A1::2/120 -create host-interface name eth2 -set int ip addr host-eth2 A2::1/120 -set int state host-eth1 up -set int state host-eth2 up -ip route add ::/0 via host-eth2 A2::2 -``` - - -### VPP3 - -``` -create host-interface name eth1 -set int ip addr host-eth1 A2::2/120 -create host-interface name eth2 -set int ip addr host-eth2 A3::1/120 -set int state host-eth1 up -set int state host-eth2 up -ip route add ::/0 via host-eth1 A2::1 -``` - -### VPP4 - -``` -create host-interface name eth1 -set int ip addr host-eth1 A3::2/120 -set int state host-eth1 up -ip route add ::/0 via host-eth1 A3::1 -``` - - -## Drop-in for GTP-U over IPv4 - -What's happened when you run `test tmap`: - - $ ./runner.py test tmap - - -Setting up a virtual interface of packet generator: - -#### VPP1 - -``` -create packet-generator interface pg0 -set int mac address pg0 aa:bb:cc:dd:ee:01 -set int ip addr pg0 172.16.0.1/30 -set ip arp pg0 172.16.0.2/30 aa:bb:cc:dd:ee:02 -``` - -#### VPP4 - -``` -create packet-generator interface pg0 -set int mac address pg0 aa:bb:cc:dd:ee:11 -set int ip addr pg0 1.0.0.2/30 -set ip arp pg0 1.0.0.1 aa:bb:cc:dd:ee:22 -``` - -SRv6 and IP routing settings: - -#### VPP1 - -``` -sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64 -sr steer l3 172.20.0.1/32 via bsid D1:: - -``` - -#### VPP2 - -``` -sr localsid address D2:: behavior end -ip route add D3::/128 via host-eth2 A2::2 -``` - -#### VPP3 - -``` -sr localsid address D3:: behavior end -ip route add D4::/32 via host-eth2 A3::2 -``` - -#### VPP4 - -``` -sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64 -ip route add 172.20.0.1/32 via pg0 1.0.0.1 -``` - - - - -## Packet generator and testing - - Example how to build custom SRv6 packet in scapy and ipaddress pkgs - - s = '\x11' * 4 + IPv4Address(u"192.168.192.10").packed + '\x11' * 8 - ip6 = IPv6Address(s) - IPv6(dst=ip6, src=ip6) - - -## end.m.gtp4.e - - First set behavior so our localsid node is called with the packet - matching C1::1 in fib table - sr localsid address C1::1 behavior end.m.gtp4.ess - - show sr localsids behaviors - show sr localsid - - We should send a well formated packet to C::1 destination address - that contains the correct spec as for end.m.gtp4.e with encapsulated - ipv4 src and dst address and teid with port for the conversion to - GTPU IPv4 packet - - -## additional commands - - gdb - breakpoint - - break sr_policy_rewrite.c:1620 - - break src/plugins/srv6-end/node.c:84 - - TMAP - Linux: - - ip link add tmp1 type veth peer name tmp2 - ip link set dev tmp1 up - ip link set dev tmp2 up - ip addr add 172.20.0.2/24 dev tmp2 - - create host-interface name tmp1 - set int mac address host-tmp1 02:fe:98:c6:c8:7b - set interface ip address host-tmp1 172.20.0.1/24 - set interface state host-tmp1 up - - VPP - set sr encaps source addr C1:: - sr policy add bsid D1::999:2 next D2:: next D3:: gtp4_removal sr-prefix fc34:5678::/64 local-prefix C1::/64 - sr steer l3 172.21.0.0/24 via bsid d1::999:2 - - END - Linux - create host-interface name tmp1 - set int mac address host-tmp1 02:fe:98:c6:c8:7b - set interface ip address host-tmp1 A1::1/64 - set interface state host-tmp1 up - - VPP - sr localsid address 1111:1111:c0a8:c00a:1122:1111:1111:1111 behavior end.m.gtp4.e - - trace add af-packet-input 10 - - sr localsid address C3:: behavior end.m.gtp4.e - sr localsid address 2001:200:0:1ce1:3000:757f:0:2 behavior end.m.gtp4.e diff --git a/extras/ietf106/requirements.txt b/extras/ietf106/requirements.txt deleted file mode 100644 index 2938cddeceb0..000000000000 --- a/extras/ietf106/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -docker -jinja2 -scapy diff --git a/extras/ietf106/runner.py b/extras/ietf106/runner.py deleted file mode 100755 index 1119d4ba189f..000000000000 --- a/extras/ietf106/runner.py +++ /dev/null @@ -1,1731 +0,0 @@ -#!/usr/bin/env python3 - -from os.path import dirname, realpath, split,\ - join, isdir, exists -from os import remove, system, mkdir -from logging import getLogger, basicConfig,\ - DEBUG, INFO, ERROR -from argparse import ArgumentParser -from atexit import register -from shutil import rmtree - -from jinja2 import Environment, FileSystemLoader - -from docker.errors import NotFound, APIError -from docker import from_env - -from scapy.contrib.gtp import * -from scapy.all import * - - -verbose_levels = { - 'error': ERROR, - 'debug': DEBUG, - 'info': INFO} - - -class ContainerStartupError(Exception): - pass - - -class Container(object): - - tmp = "/tmp" - cmd = "vppctl -s 0:5002" - cmd_bash = "/bin/bash" - - def __init__(self, ref, name): - self._name = name - self._ref = ref - - @property - def name(self): - return self._name - - @property - def temp(self): - return join(self.tmp, self.name) - - @property - def pg_input_file(self): - return join(self.temp, "pgi.pcap") - - @property - def pg_output_file(self): - return join(self.temp, "pgo.pcap") - - @property - def pg_input_file_in(self): - return join("/mnt", "pgi.pcap") - - @property - def pg_output_file_in(self): - return join("/mnt", "pgo.pcap") - - def disconnect_all(self): - status = False - for net in self._ref.client.networks.list(): - try: - net.disconnect(self._ref) - except APIError: - continue - status = True - return status - - @classmethod - def new(cls, client, image, name): - - temp = join(cls.tmp, name) - if isdir(temp): - rmtree(temp) - mkdir(temp) - - ref = client.containers.run(detach=True, - remove=True, auto_remove=True, - image=image, name=name, - privileged=True, - volumes={ temp: { - 'bind': '/mnt', - 'mode': 'rw' - }}) - - obj = cls.get(client, name) - if not obj: - raise ContainerStartupError() - - obj.disconnect_all() - return obj - - @classmethod - def get(cls, client, name): - try: - ref = client.containers.get(name) - except NotFound: - pass - else: - return cls(ref, name) - - def rem(self): - self._ref.kill() - - def vppctl(self): - system("docker exec -it {} {}".format(self.name, self.cmd)) - - def bash(self): - system("docker exec -it {} {}".format(self.name, self.cmd_bash)) - - def vppctl_exec(self, cmd): - ec, resp = self._ref.exec_run(cmd="{} {}".format(self.cmd, cmd)) - assert(ec == 0) - return resp - - def setup_host_interface(self, name, ip): - self.vppctl_exec("create host-interface name {}".format(name)) - self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) - self.vppctl_exec("set int state host-{} up".format(name)) - - def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): - # remote_ip can't have subnet mask - - time.sleep(2) - self.vppctl_exec("create packet-generator interface pg0") - self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) - self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) - self.vppctl_exec("set ip6 neighbor pg0 {} {}".format(remote_ip, - remote_mac)) - self.vppctl_exec("set int state pg0 up") - - def pg_create_interface4(self, local_ip, remote_ip, local_mac, remote_mac): - # remote_ip can't have subnet mask - - time.sleep(2) - self.vppctl_exec("create packet-generator interface pg0") - self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) - self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) - self.vppctl_exec("set ip arp pg0 {} {}".format(remote_ip, - remote_mac)) - self.vppctl_exec("set int state pg0 up") - - def pg_create_interface6(self, local_ip, remote_ip, local_mac, remote_mac): - # remote_ip can't have subnet mask - - time.sleep(2) - self.vppctl_exec("create packet-generator interface pg0") - self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) - self.vppctl_exec("set int ip6 addr pg0 {}".format(local_ip)) - self.vppctl_exec("set ip6 arp pg0 {} {}".format(remote_ip, - remote_mac)) - self.vppctl_exec("set int state pg0 up") - - def pg_enable(self): - # start packet generator - self.vppctl_exec("packet-generator enable") - - def pg_create_stream(self, stream): - wrpcap(self.pg_input_file, stream) - self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( - self.pg_input_file_in)) - - def pg_start_capture(self): - if exists(self.pg_output_file): - remove(self.pg_output_file) - self.vppctl_exec("packet-generator capture pg0 pcap {}".format( - self.pg_output_file_in)) - - def pg_read_packets(self): - return rdpcap(self.pg_output_file) - - def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): - self.vppctl_exec("ip route add {} via host-{} {}".format( - subnet, out_if_name, next_hop_ip)) - - def set_ip_pgroute(self, out_if_name, next_hop_ip, subnet): - self.vppctl_exec("ip route add {} via {} {}".format( - subnet, out_if_name, next_hop_ip)) - - def set_ipv6_pgroute(self, out_if_name, next_hop_ip, subnet): - self.vppctl_exec("ip route add {} via {} {}".format( - subnet, out_if_name, next_hop_ip)) - - def set_ipv6_default_route(self, out_if_name, next_hop_ip): - self.vppctl_exec("ip route add ::/0 via host-{} {}".format( - out_if_name, next_hop_ip)) - - def enable_trace(self, count): - self.vppctl_exec("trace add af-packet-input {}".format(count)) - - -class Containers(object): - - def __init__(self, client, image): - self.client = client - self.image = image - - def tmp_render(self, path, template, kwargs): - - with open(path, "w") as fo: - fo.write(template.render(**kwargs)) - - register(lambda : remove(path)) - - def build(self, path, vpp_path): - env = Environment( - loader=FileSystemLoader(path), - trim_blocks=True) - - self.tmp_render(join(vpp_path, "Dockerfile"), - env.get_template("Dockerfile.j2"), - {'vpp_path': vpp_path}) - - self.tmp_render(join(vpp_path, "startup.conf"), - env.get_template("startup.conf.j2"), - {'vpp_path': vpp_path}) - - ref, _ = self.client.images.build(path=vpp_path, - tag=self.image, rm=True) - return ref - - def release(self, path, vpp_path): - env = Environment( - loader=FileSystemLoader(path), - trim_blocks=True) - - self.tmp_render(join(vpp_path, "Dockerfile"), - env.get_template("Dockerfile.j2.release"), - {'vpp_path': vpp_path}) - - self.tmp_render(join(vpp_path, "startup.conf"), - env.get_template("startup.conf.j2"), - {'vpp_path': vpp_path}) - - ref, _ = self.client.images.build(path=vpp_path, - tag="ietf106-release-image", rm=True) - return ref - - def new(self, name): - return Container.new(self.client, self.image, name) - - def get(self, name): - return Container.get(self.client, name) - - def vppctl(self, name, command=None): - container = self.get(name) - if not command: - container.vppctl() - else: - print(container.vppctl_exec(command).decode()) - - def bash(self, name): - container = self.get(name) - container.bash() - - -class Network(object): - - def __init__(self, ref, name): - self._name = name - self._ref = ref - - @property - def name(self): - return self._name - - @classmethod - def new(cls, client, name): - ref = client.networks.create( - name, driver="bridge", - check_duplicate=True) - return cls(ref, name) - - @classmethod - def get(cls, client, name): - try: - ref = client.networks.get(name) - except NotFound: - pass - else: - return cls(ref, name) - - def rem(self): - self._ref.remove() - - def connect(self, c): - self._ref.connect(c.name) - - -class Networks(object): - - def __init__(self, client): - self.client = client - - def new(self, name): - return Network.new(self.client, name) - - def get(self, name): - return Network.get(self.client, name) - - -class Program(object): - - image = "ietf106-image" - - name_prefix = "hck" - - # TODO: add description to these instances - # for exmaple what the vpp is supposed to be - # in our topoloty overview - - instance_names = [ - "vpp-1", - "vpp-2", - "vpp-3", - "vpp-4" - ] - - network_names = [ - "net-1", - "net-2", - "net-3", - ] - - def __init__(self, image=None, prefix=None): - self.path = dirname(realpath(__file__)) - - if image: - self.image = image - if prefix is not None: - self.name_prefix = prefix - - client = from_env() - self.containers = Containers(client, self.image) - self.networks = Networks(client) - - self.logger = getLogger(__name__) - - @property - def vpp_path(self): - return split(split(self.path)[0])[0] - - def get_name(self, name): - if not self.name_prefix: - return name - return "{}-{}".format(self.name_prefix, name) - - def stop_containers(self): - - for name in self.instance_names: - instance = self.containers.get(self.get_name(name)) - if instance: - instance.rem() - - for name in self.network_names: - network = self.networks.get(self.get_name(name)) - if network: - network.rem() - - def start_containers(self): - - self.stop_containers() - - networks = list() - - for name in self.network_names: - networks.append(self.networks.new(self.get_name(name))) - - n1, n2, n3 = networks - - instances = list() - - for name in self.instance_names: - instances.append(self.containers.new(self.get_name(name))) - - c1, c2, c3, c4 = instances - - # setup packet generator interfaces - #c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - #local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - - # setup network between instances - n1.connect(c1) - n1.connect(c2) - - n2.connect(c2) - n2.connect(c3) - - n3.connect(c3) - n3.connect(c4) - - # c1 & c2 link - c1.setup_host_interface("eth1", "A1::1/120") - c2.setup_host_interface("eth1", "A1::2/120") - - # c2 & c3 link - c2.setup_host_interface("eth2", "A2::1/120") - c3.setup_host_interface("eth1", "A2::2/120") - - # c3 & c4 link - c3.setup_host_interface("eth2", "A3::1/120") - c4.setup_host_interface("eth1", "A3::2/120") - - # c1 > c2 default route - - c1.set_ipv6_default_route("eth1", "A1::2") - # c2 > c3 default route - c2.set_ipv6_default_route("eth2", "A2::2") - # c3 > c2 default route - c3.set_ipv6_default_route("eth1", "A2::1") - # c4 > c3 default route - c4.set_ipv6_default_route("eth1", "A3::1") - - # c3 > c4 static route for address B::1/128 - c3.set_ipv6_route("eth2", "A3::2", "B::1/128") - c3.set_ipv6_route("eth2", "A3::2", "B::2/128") - - def test_ping(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_srv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 C::1/120 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Sleeping") - time.sleep(30) - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr D1::") - c1.vppctl_exec("sr policy add bsid D1::999:1 next D2:: next D3:: next D4::") - c1.vppctl_exec("sr steer l3 B::/120 via bsid D1::999:1") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid address D4:: behavior end.dx6 pg0 B::2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/128") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c2.enable_trace(10) - c3.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - - def test_tmap(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") - c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_tmap_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") - c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_tmap_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") - c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ - ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_tmap_ipv6_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") - c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IPv6(src="2001::1", dst="2002::1")/ - ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp4(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix 172.20.0.1/32 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp4_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp4_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ - ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp4_ipv6_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IP(src="172.20.0.2", dst="172.20.0.1")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IPv6(src="2001::1", dst="2002::1")/ - ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_drop_in(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "B::2", "D::2/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_drop_in_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "B::2", "D::2/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IP(src="172.99.0.1", dst="172.99.0.2")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_drop_in_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "B::2", "D::2/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_drop_in_ipv6_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "B::2", "D::2/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IP(src="172.100.0.1", dst="172.200.0.1")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IP(src="172.100.0.1", dst="172.200.0.1")/ - ICMP()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_ipv6(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def test_gtp6_ipv6_5g(self): - # TESTS: - # trace add af-packet-input 10 - # pg interface on c1 172.20.0.1 - # pg interface on c4 B::1/120 - - self.start_containers() - - print("Deleting the old containers...") - time.sleep(30) - print("Starting the new containers...") - - c1 = self.containers.get(self.get_name(self.instance_names[0])) - c2 = self.containers.get(self.get_name(self.instance_names[1])) - c3 = self.containers.get(self.get_name(self.instance_names[2])) - c4 = self.containers.get(self.get_name(self.instance_names[-1])) - - c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", - local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") - c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", - local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") - - c1.vppctl_exec("set sr encaps source addr A1::1") - c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") - - c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") - - c2.vppctl_exec("sr localsid address D2:: behavior end") - - c3.vppctl_exec("sr localsid address D3:: behavior end") - - c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") - - c2.set_ipv6_route("eth2", "A2::2", "D3::/128") - c2.set_ipv6_route("eth1", "A1::1", "C::/120") - c3.set_ipv6_route("eth2", "A3::2", "D4::/32") - c3.set_ipv6_route("eth1", "A2::1", "C::/120") - c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") - - print("Waiting...") - time.sleep(30) - - p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ - IPv6(src="C::2", dst="D::2")/ - UDP(sport=2152, dport=2152)/ - GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ - IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) - - print("Sending packet on {}:".format(c1.name)) - p.show2() - - c1.enable_trace(10) - c4.enable_trace(10) - - c4.pg_start_capture() - - c1.pg_create_stream(p) - c1.pg_enable() - - # timeout (sleep) if needed - print("Sleeping") - time.sleep(5) - - print("Receiving packet on {}:".format(c4.name)) - for p in c4.pg_read_packets(): - p.show2() - - def status_containers(self): - - print("Instances:") - - for i, name in enumerate(self.instance_names): - name = self.get_name(name) - print("\t[{}] {} - {}".format(i, name, - "running" if self.containers.get(name) else "missing")) - - print("Networks:") - - for i, name in enumerate(self.network_names): - name = self.get_name(name) - print("\t[{}] {} - {}".format(i, name, - "running" if self.networks.get(name) else "missing")) - - def build_image(self): - # TODO: optimize build process for speed and image size - self.containers.build(self.path, self.vpp_path) - - def release_image(self): - instance = self.containers.new("release-build") - - system("docker cp release-build:{}/vpp-package.tgz {}/".format(self.vpp_path, self.vpp_path)) - - instance.rem() - - self.containers.release(self.path, self.vpp_path) - - system("rm -rf {}/vpp-package.tgz".format(self.vpp_path)) - - def vppctl(self, index, command=None): - if index >= len(self.instance_names): - return - name = self.get_name( - self.instance_names[index]) - self.logger.error("connecting to: {}".format(name)) - self.containers.vppctl(name, command) - - def bash(self, index): - if index >= len(self.instance_names): - return - name = self.get_name( - self.instance_names[index]) - self.logger.error("connecting to: {}".format(name)) - self.containers.bash(name) - - -def get_args(): - parser = ArgumentParser() - - parser.add_argument("--verbose", choices=[ - 'error', 'debug', 'info']) - - parser.add_argument('--image', choices=[ - 'debug', 'release']) - - subparsers = parser.add_subparsers() - - p1 = subparsers.add_parser("infra", - help="Infrastructure related commands.") - - p1.add_argument("op", choices=[ - 'stop', 'start', 'status', 'restart', 'build', 'release']) - - p1.add_argument("--prefix") - p1.add_argument("--image") - - p2 = subparsers.add_parser("cmd", - help="Instance related commands.") - - p2.add_argument("op", choices=[ - 'vppctl', 'bash']) - - p2.add_argument("index", type=int, - help="Container instance index. (./runner.py infra status)") - - p2.add_argument("--command", - help="Only vppctl supports this optional argument.") - - p3 = subparsers.add_parser("test", - help="Test related commands.") - - p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "tmap_5g", "tmap_ipv6", "tmap_ipv6_5g", "gtp4", "gtp4_5g", "gtp4_ipv6", "gtp4_ipv6_5g", "gtp6_drop_in", "gtp6_drop_in_5g", "gtp6_drop_in_ipv6", "gtp6_drop_in_ipv6_5g", "gtp6", "gtp6_5g", "gtp6_ipv6", "gtp6_ipv6_5g"]) - - args = parser.parse_args() - if not hasattr(args, "op") or not args.op: - parser.print_help(sys.stderr) - sys.exit(1) - - return vars(args) - - -def main(op=None, prefix=None, verbose=None, image=None, index=None, command=None): - - if verbose: - basicConfig(level=verbose_levels[verbose]) - - if image == 'release': - image="ietf106-release-image" - elif image == 'debug': - image="ietf106-image" - - print("Verified image: {}".format(image)) - - program = Program(image, prefix) - - try: - if op == 'build': - program.build_image() - elif op == 'release': - program.release_image() - elif op == 'stop': - program.stop_containers() - elif op == 'start': - program.start_containers() - elif op == 'status': - program.status_containers() - elif op == 'vppctl': - program.vppctl(index, command) - elif op == 'bash': - program.bash(index) - elif op == 'ping': - program.test_ping() - elif op == 'srv6': - program.test_srv6() - elif op == 'tmap': - program.test_tmap() - elif op == 'tmap_5g': - program.test_tmap_5g() - elif op == 'tmap_ipv6': - program.test_tmap_ipv6() - elif op == 'tmap_ipv6_5g': - program.test_tmap_ipv6_5g() - elif op == 'gtp4': - program.test_gtp4() - elif op == 'gtp4_5g': - program.test_gtp4_5g() - elif op == 'gtp4_ipv6': - program.test_gtp4_ipv6() - elif op == 'gtp4_ipv6_5g': - program.test_gtp4_ipv6_5g() - elif op == 'gtp6_drop_in': - program.test_gtp6_drop_in() - elif op == 'gtp6_drop_in_5g': - program.test_gtp6_drop_in_5g() - elif op == 'gtp6_drop_in_ipv6': - program.test_gtp6_drop_in_ipv6() - elif op == 'gtp6_drop_in_ipv6_5g': - program.test_gtp6_drop_in_ipv6_5g() - elif op == 'gtp6': - program.test_gtp6() - elif op == 'gtp6_5g': - program.test_gtp6_5g() - elif op == 'gtp6_ipv6': - program.test_gtp6_ipv6() - elif op == 'gtp6_ipv6_5g': - program.test_gtp6_ipv6_5g() - - except Exception: - program.logger.exception("") - rc = 1 - else: - rc = 0 - - return rc - - -if __name__ == "__main__": - sys.exit(main(**get_args())) - diff --git a/extras/ietf106/startup.conf.j2 b/extras/ietf106/startup.conf.j2 deleted file mode 100644 index 5a4a2ef103d1..000000000000 --- a/extras/ietf106/startup.conf.j2 +++ /dev/null @@ -1,14 +0,0 @@ -unix { - nodaemon - cli-no-pager - cli-listen 0.0.0.0:5002 -} -plugins { - plugin dpdk_plugin.so { - disable - } -} -cpu { - workers 2 -} - diff --git a/extras/ietf106/topo-init.png b/extras/ietf106/topo-init.png deleted file mode 100644 index dc9603ba2907f13aebc368119fff9c07f1b0473f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121503 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⩔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

&fi?_v}*m#>xS5M{chWBlX4 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 GJp3;jwqDKv diff --git a/extras/ietf106/topo-test_gtp4d.png b/extras/ietf106/topo-test_gtp4d.png deleted file mode 100644 index d60beb230930f5f2a91641caecb63a4025f24915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138014 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 I>g_-N2VIs9&;S4c diff --git a/extras/ietf106/topo-test_gtp6.png b/extras/ietf106/topo-test_gtp6.png deleted file mode 100644 index 2cad260215a37482d955ac7f9eed76f157a8d930..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131731 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

WkWl}qxII$v_iOetRmS2W6}L-bKY+}7%2 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 z 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 Zs$qltF)EM7rOn}BoXGsg)BPCVCkqtZpT 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≶9 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 From cd893a280944718a746a601d0a5f6669e0b6cd76 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 9 Oct 2019 10:23:12 -0700 Subject: [PATCH 138/154] Update README.md --- src/plugins/srv6-mobile/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/README.md b/src/plugins/srv6-mobile/README.md index bb9456a441b0..5dbfe3bc0285 100644 --- a/src/plugins/srv6-mobile/README.md +++ b/src/plugins/srv6-mobile/README.md @@ -49,7 +49,7 @@ ubuntu 18.04 4c108a37151f 4 weeks ago ``` -The runner script [runner.py](https://github.com/filvarga/srv6-mobile/blob/ietf105-hackathon/extras/ietf106/runner.py) has features to automate configurations and procedures for the test. +The runner script [runner.py](test/runner.py) has features to automate configurations and procedures for the test. 2. Instantiate test Scenario From 6af206b0632feaa5c55fb742e11cb015ddd1339a Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 9 Oct 2019 11:12:45 -0700 Subject: [PATCH 139/154] support to map type bits into SRv6 header --- src/plugins/srv6-mobile/node.c | 52 ++++++++++++++++++++++---- src/plugins/srv6-mobile/test/runner.py | 4 +- src/vnet/srv6/sr.h | 2 +- 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 85b25868ae70..54b01c3f023f 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -334,6 +334,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, if (qfi) { + u8 type = 0; gtpu_pdu_session_t *sess; hdr0->gtpu.ver_flags |= GTPU_EXTHDR_FLAG; @@ -341,11 +342,13 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->gtpu.ext->npdu_num = 0; hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; + type = qfi & SRV6_PDU_SESSION_U_BIT_MASK; + qfi = ((qfi & SRV6_PDU_SESSION_QFI_MASK) >> 2) | ((qfi & SRV6_PDU_SESSION_R_BIT_MASK) << 5); sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip4_gtpu_header_t) + sizeof(gtpu_exthdr_t)); sess->exthdrlen = 1; - sess->type = 0; + sess->type = type; sess->spare = 0; sess->u.val = qfi; sess->nextexthdr = 0; @@ -497,6 +500,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, u8 *qfip = NULL; u32 offset, shift, index; ip6srv_combo_header_t *ip6srv; + gtpu_pdu_session_t *sess = NULL; // Decap from GTP-U. hdr = (ip4_gtpu_header_t *)ip4; @@ -513,8 +517,6 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if (hdr->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) { // PDU Session Container. - gtpu_pdu_session_t *sess; - sess = (gtpu_pdu_session_t *)(((char *)hdr) + hdr_len); qfi = sess->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; qfip = (u8 *)&qfi; @@ -547,6 +549,11 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, { qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + if (sess->type) + { + qfi |= SRV6_PDU_SESSON_U_BIT_MASK; + } + seg.as_u8[offset + 4] = qfi; } @@ -567,6 +574,11 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, { qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + if (sess->type) + { + qfi |= SRV6_PDU_SESSION_U_BIT_MASK; + } + seg.as_u8[offset+4] |= qfi >> shift; seg.as_u8[offset+5] |= qfi << (8 - shift); } @@ -907,6 +919,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, if (qfi) { + u8 type = 0; gtpu_pdu_session_t *sess; hdr0->gtpu.ver_flags |= GTPU_EXTHDR_FLAG; @@ -914,11 +927,13 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, hdr0->gtpu.ext->npdu_num = 0; hdr0->gtpu.ext->nextexthdr = GTPU_EXTHDR_PDU_SESSION; + type = qfi & SRV6_PDU_SESSION_U_BIT_MASK; + qfi = ((qfi & SRV6_PDU_SESSION_QFI_MASK) >> 2) | ((qfi & SRV6_PDU_SESSION_R_BIT_MASK) << 5); sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip6_gtpu_header_t) + sizeof(gtpu_exthdr_t)); sess->exthdrlen = 1; - sess->type = 0; + sess->type = type; sess->spare = 0; sess->u.val = qfi; sess->nextexthdr = 0; @@ -1019,6 +1034,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, u32 offset, shift; u32 hdrlen; ip6_header_t *encap; + gtpu_pdu_session_t *sess = NULL; u32 next0 = SRV6_END_M_GTP6_D_NEXT_LOOKUP; @@ -1065,8 +1081,6 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if (hdr0->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) { // PDU Session Container. - gtpu_pdu_session_t *sess; - sess = (gtpu_pdu_session_t *)(((char *)hdr0) + sizeof(ip6_gtpu_header_t) + sizeof(gtpu_exthdr_t)); qfi = sess->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; qfip = (u8 *)&qfi; @@ -1090,6 +1104,12 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if (qfip) { qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + + if (sess->type) + { + qfi |= SRV6_PDU_SESSION_U_BIT_MASK; + } + seg0.as_u8[offset+4] = qfi; } } @@ -1106,6 +1126,12 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if (qfip) { qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & ~GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + + if (sess->type) + { + qfi |= SRV6_PDU_SESSION_U_BIT_MASK; + } + seg0.as_u8[offset+4] |= qfi >> shift; seg0.as_u8[offset+5] |= qfi << (8 - shift); } @@ -1320,6 +1346,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, u32 offset, shift; u32 hdrlen; ip6_header_t *encap; + gtpu_pdu_session_t *sess; u32 next0 = SRV6_END_M_GTP6_D_DI_NEXT_LOOKUP; @@ -1366,8 +1393,6 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if (hdr0->gtpu.ext->nextexthdr == GTPU_EXTHDR_PDU_SESSION) { // PDU Session Container. - gtpu_pdu_session_t *sess; - sess = (gtpu_pdu_session_t *)(((char *)hdr0) + hdrlen); qfi = sess->u.val & ~GTPU_PDU_SESSION_P_BIT_MASK; qfip = &qfi; @@ -1392,6 +1417,12 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if (qfip) { qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + + if (sess->type) + { + qfi |= SRV6_PDU_SESSION_U_BIT_MASK; + } + seg0.as_u8[offset + 4] = qfi; } } @@ -1409,6 +1440,11 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, { qfi = ((qfi & GTPU_PDU_SESSION_QFI_MASK) << 2) | ((qfi & GTPU_PDU_SESSION_R_BIT_MASK) >> 5); + if (sess->type) + { + qfi |= SRV6_PDU_SESSION_U_BIT_MASK; + } + seg0.as_u8[offset + 4] |= qfi >> shift; seg0.as_u8[offset + 5] |= qfi << (8 - shift); } diff --git a/src/plugins/srv6-mobile/test/runner.py b/src/plugins/srv6-mobile/test/runner.py index 074b06b51990..e07f78c7ea07 100755 --- a/src/plugins/srv6-mobile/test/runner.py +++ b/src/plugins/srv6-mobile/test/runner.py @@ -861,7 +861,7 @@ def test_gtp4_5g(self): IP(src="172.20.0.2", dst="172.20.0.1")/ UDP(sport=2152, dport=2152)/ GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ + GTPPDUSessionContainer(type=1, R=1, QFI=3)/ IP(src="172.99.0.1", dst="172.99.0.2")/ ICMP()) @@ -1121,7 +1121,7 @@ def test_gtp6_drop_in_5g(self): IPv6(src="C::2", dst="D::2")/ UDP(sport=2152, dport=2152)/ GTP_U_Header(gtp_type="g_pdu", teid=200)/ - GTPPDUSessionContainer(R=1, QFI=3)/ + GTPPDUSessionContainer(type=1, R=1, QFI=3)/ IP(src="172.99.0.1", dst="172.99.0.2")/ ICMP()) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 6577f8f67446..e7aec46f5a9d 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -118,7 +118,7 @@ typedef struct #define GTPU_PDU_SESSION_R_BIT_MASK 0x40 #define GTPU_PDU_SESSION_QFI_MASK 0x3f -#define SRV6_PDU_SESSION_P_BIT_MASK 0x01 +#define SRV6_PDU_SESSION_U_BIT_MASK 0x01 #define SRV6_PDU_SESSION_R_BIT_MASK 0x02 #define SRV6_PDU_SESSION_QFI_MASK 0xfC From 8abfd636425b00cf154e57da76ff0db959d663bf Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 9 Oct 2019 13:58:11 -0700 Subject: [PATCH 140/154] typo --- src/plugins/srv6-mobile/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 54b01c3f023f..80a4cf18c80b 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -551,7 +551,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if (sess->type) { - qfi |= SRV6_PDU_SESSON_U_BIT_MASK; + qfi |= SRV6_PDU_SESSION_U_BIT_MASK; } seg.as_u8[offset + 4] = qfi; From 6fec6fde610958227aa9cb34f9a3e3e6d3acfbed Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Wed, 9 Oct 2019 23:22:49 -0700 Subject: [PATCH 141/154] fix the build issue --- src/vppinfra/linux/syscall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vppinfra/linux/syscall.h b/src/vppinfra/linux/syscall.h index 17e4ea17734a..997a13248e84 100644 --- a/src/vppinfra/linux/syscall.h +++ b/src/vppinfra/linux/syscall.h @@ -48,7 +48,7 @@ move_pages (int pid, unsigned long count, void **pages, const int *nodes, } #ifndef HAVE_MEMFD_CREATE -#ifndef _LINUX_MEMFD_H // tentative +#ifndef MFD_CLOEXEC static inline int memfd_create (const char *name, unsigned int flags) { From f81b896db81368d0a706dfebb08eada4d6b825fa Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 10 Oct 2019 11:29:46 -0700 Subject: [PATCH 142/154] add comment --- src/vppinfra/linux/syscall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vppinfra/linux/syscall.h b/src/vppinfra/linux/syscall.h index 997a13248e84..5703bf5df41a 100644 --- a/src/vppinfra/linux/syscall.h +++ b/src/vppinfra/linux/syscall.h @@ -48,7 +48,7 @@ move_pages (int pid, unsigned long count, void **pages, const int *nodes, } #ifndef HAVE_MEMFD_CREATE -#ifndef MFD_CLOEXEC +#ifndef MFD_CLOEXEC /* for "make pkg-deb" on debian */ static inline int memfd_create (const char *name, unsigned int flags) { From aca65b811e6240dbf11783389ca90c5631f2b557 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 10 Oct 2019 14:29:41 -0700 Subject: [PATCH 143/154] fix the bit align --- src/vnet/srv6/sr.h | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index e7aec46f5a9d..075cf62b00ea 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -57,6 +57,14 @@ #define GTPU_EXTHDR_FLAG 0x04 #define GTPU_EXTHDR_PDU_SESSION 0x85 +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#define BITALIGN2(A,B) A; B +#define BITALIGN3(A,B,C) A; B; C +#else +#define BITALIGN2(A,B) B; A +#define BITALIGN3(A,B,C) C; B; A +#endif + /* *INDENT-OFF* */ typedef struct { @@ -88,8 +96,9 @@ typedef struct /* *INDENT-OFF* */ typedef struct { - u8 ppi:3; - u8 spare:5; + BITALIGN2 (u8 ppi:3; + u8 spare:5); + u8 padding[3]; } __attribute__ ((packed)) gtpu_paging_policy_t; /* *INDENT-ON* */ @@ -98,13 +107,13 @@ typedef struct typedef struct { u8 exthdrlen; - u8 type:4; - u8 spare:4; + BITALIGN2(u8 type:4; + u8 spare:4); union { struct gtpu_qfi_bits { - u8 p:1; - u8 r:1; - u8 qfi:6; + BITALIGN3(u8 p:1; + u8 r:1; + u8 qfi:6); } bits; u8 val; From 55660354d75fb231d311eb2f776e6b01617a79f7 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 10 Oct 2019 14:42:17 -0700 Subject: [PATCH 144/154] fix the bit align --- src/vnet/srv6/sr.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 075cf62b00ea..0b77b47f2542 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -96,7 +96,7 @@ typedef struct /* *INDENT-OFF* */ typedef struct { - BITALIGN2 (u8 ppi:3; + BITALIGN2 (u8 ppi:3, u8 spare:5); u8 padding[3]; @@ -107,12 +107,12 @@ typedef struct typedef struct { u8 exthdrlen; - BITALIGN2(u8 type:4; + BITALIGN2(u8 type:4, u8 spare:4); union { struct gtpu_qfi_bits { - BITALIGN3(u8 p:1; - u8 r:1; + BITALIGN3(u8 p:1, + u8 r:1, u8 qfi:6); } bits; From f03bf3c6c1a8b783706b7b2ada2b880a738c0985 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 10 Oct 2019 16:26:39 -0700 Subject: [PATCH 145/154] add the invalid packet handling --- src/plugins/srv6-mobile/node.c | 33 +++++++++++++++++++++++++++++++++ src/vppinfra/linux/syscall.h | 2 -- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 80a4cf18c80b..e21eea11bba3 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -663,6 +663,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -671,6 +674,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -701,6 +707,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -709,6 +718,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -735,6 +747,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, } } +DONE: vlib_increment_combined_counter (((next0 == SRV6_END_M_GTP4_D_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : @@ -1209,6 +1222,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -1217,6 +1233,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -1246,6 +1265,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -1254,6 +1276,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -1281,6 +1306,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, } } +DONE: vlib_increment_combined_counter (((next0 == SRV6_END_M_GTP6_D_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : @@ -1528,6 +1554,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -1536,6 +1565,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -1571,6 +1603,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, } } +DONE: vlib_increment_combined_counter (((next0 == SRV6_END_M_GTP6_D_DI_NEXT_DROP) ? &(sm2->sr_ls_invalid_counters) : diff --git a/src/vppinfra/linux/syscall.h b/src/vppinfra/linux/syscall.h index 5703bf5df41a..c07cad631bda 100644 --- a/src/vppinfra/linux/syscall.h +++ b/src/vppinfra/linux/syscall.h @@ -48,14 +48,12 @@ move_pages (int pid, unsigned long count, void **pages, const int *nodes, } #ifndef HAVE_MEMFD_CREATE -#ifndef MFD_CLOEXEC /* for "make pkg-deb" on debian */ static inline int memfd_create (const char *name, unsigned int flags) { return syscall (__NR_memfd_create, name, flags); } #endif -#endif #endif /* included_linux_syscall_h */ From be4308f4f0d7b77eef7f42c696180b9c4c0f616c Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 10 Oct 2019 16:32:15 -0700 Subject: [PATCH 146/154] cosmetic change --- src/plugins/srv6-mobile/node.c | 56 +++++++++++++++++----------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index e21eea11bba3..37da2904d491 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -663,9 +663,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -674,9 +674,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -707,9 +707,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -718,9 +718,9 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -1222,9 +1222,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -1233,9 +1233,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -1265,9 +1265,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -1276,9 +1276,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) @@ -1554,9 +1554,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) { // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; + next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; bad_n++; - goto DONE; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) @@ -1565,9 +1565,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) { // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; + next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; bad_n++; - goto DONE; + goto DONE; } } else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) From bd5b61bff7c436b307f12cf2c018e4329a37c61e Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Fri, 11 Oct 2019 11:09:06 -0700 Subject: [PATCH 147/154] fix typo on runner.py --- src/plugins/srv6-mobile/test/runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/test/runner.py b/src/plugins/srv6-mobile/test/runner.py index e07f78c7ea07..1ce08a82d32e 100755 --- a/src/plugins/srv6-mobile/test/runner.py +++ b/src/plugins/srv6-mobile/test/runner.py @@ -1579,7 +1579,7 @@ def build_image(self): self.containers.build(self.path, self.vpp_path) def release_image(self): - print("VPP Path (release): {}".format(self.vpppath)) + print("VPP Path (release): {}".format(self.vpp_path)) instance = self.containers.new("release-build") system("docker cp release-build:{}/vpp-package.tgz {}/".format(self.vpp_path, self.vpp_path)) From 2931359ebc0d8578b7fd467ddba9fa9afb9c7848 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 14 Oct 2019 14:21:06 -0700 Subject: [PATCH 148/154] support gtp-u message mapping --- src/plugins/srv6-mobile/node.c | 312 +++++++++++++++++-------- src/plugins/srv6-mobile/test/runner.py | 130 ++++++++++- src/vnet/srv6/sr.h | 12 +- 3 files changed, 357 insertions(+), 97 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 37da2904d491..7b5fda0085e5 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -27,6 +27,32 @@ typedef struct { u32 teid; } srv6_end_rewrite_trace_t; +static u16 srh_tagfield[256] = { + 0x0, /* 0 */ + 0x0004, /* 1 : Echo Request */ + 0x0008, /* 2 : Echo Reply */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 3 - 15 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 16 - 25 */ + 0x0002, /* 26 : Error Indication */ + 0x0, 0x0, 0x0, 0x0, 0x0, /* 27 - 31 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 32 - 47 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 48 - 63 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 64 - 79 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 80 - 95 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 96 - 111 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 112 - 127 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 128 - 143 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 144 - 159 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 160 - 175 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 176 - 191 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 192 - 207 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 208 - 223 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 224 - 239 */ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 240 - 253 */ + 0x0001, /* 254 : End Marker */ + 0x0 /* 255 */ +}; + static u8 * format_srv6_end_rewrite_trace (u8 * s, va_list * args) { @@ -187,6 +213,22 @@ hash_uword_to_u16 (uword *key) #endif } +static inline void +gtp_type_set (gtpu_header_t *gtpu, u16 tag) +{ + u16 val; + + val = clib_net_to_host_u16(tag); + if (val & SRH_TAG_ECHO_REPLY) + gtpu->type = GTPU_TYPE_ECHO_REPLY; + else if (val & SRH_TAG_ECHO_REQUEST) + gtpu->type = GTPU_TYPE_ECHO_REQUEST; + else if (val & SRH_TAG_ERROR_INDICATION) + gtpu->type = GTPU_TYPE_ERROR_INDICATION; + else if (val & SRH_TAG_END_MARKER) + gtpu->type = GTPU_TYPE_END_MARKER; +} + // Function for SRv6 GTP4.E function. VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, vlib_node_runtime_t * node, @@ -255,6 +297,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, } else { + u16 tag = 0; u32 teid; u8 *teid8p = (u8 *)&teid; u8 qfi = 0; @@ -275,6 +318,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, // not sure about the length if (ip6srv0->ip.protocol == IPPROTO_IPV6_ROUTE) { + tag = ip6srv0->sr.tag; + vlib_buffer_advance (b0, (word) sizeof (ip6srv_combo_header_t) + ip6srv0->sr.length * 8); } @@ -332,6 +377,11 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); + if (PREDICT_FALSE(tag != 0)) + { + gtp_type_set (&hdr0->gtpu, tag); + } + if (qfi) { u8 type = 0; @@ -491,9 +541,10 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip4_gtpu_header_t *hdr; ip4_address_t src, dst; u8 *srcp, *dstp; - ip6_header_t *encap; + ip6_header_t *encap = NULL; ip6_address_t seg; ip6_address_t src6; + u8 gtpu_type; u32 teid; u8 *teidp; u8 qfi = 0; @@ -510,6 +561,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, teid = hdr->gtpu.teid; teidp = (u8 *) &teid; + gtpu_type = hdr->gtpu.type; + if (hdr->gtpu.ver_flags & GTPU_EXTHDR_FLAG) { // Extention header. @@ -605,7 +658,11 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, vlib_buffer_advance (b0, (word) hdr_len); // Encap to SRv6. - encap = vlib_buffer_get_current (b0); + if (PREDICT_TRUE(gtpu_type == GTPU_TYPE_GTPU)) + { + encap = vlib_buffer_get_current (b0); + } + len0 = vlib_buffer_length_in_chain (vm, b0); p = mhash_get (&sm2->sr_policies_index_hash, &ls_param->sr_prefix); @@ -644,43 +701,52 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; + ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.segments_left += 1; ip6srv->sr.last_entry += 1; ip6srv->sr.length += sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg; - if (ls_param->nhtype == SRV6_NHTYPE_NONE) - { - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - else - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + if (PREDICT_TRUE(encap != NULL)) { - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; - } - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) - { - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; - } + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + } } - else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) - { + else + { ip6srv->sr.protocol = IP_PROTOCOL_NONE; } @@ -690,6 +756,13 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, } else { + if (PREDICT_FALSE(encap == NULL)) + { + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; + } + clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); ip6srv->ip.dst_address = seg; @@ -839,6 +912,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, uword len0; uword key; u16 port; + u16 tag; void *p; u32 next0 = SRV6_END_M_GTP6_E_NEXT_LOOKUP; @@ -860,6 +934,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, dst0 = ip6srv0->ip.dst_address; seg0 = ip6srv0->sr.segments[0]; + tag = ip6srv0->sr.tag; + len0 = vlib_buffer_length_in_chain (vm, b0); if ((ip6srv0->ip.protocol != IPPROTO_IPV6_ROUTE) @@ -930,6 +1006,11 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, hdr0->gtpu.teid = teid; hdr0->gtpu.length = clib_host_to_net_u16 (len0); + if (PREDICT_FALSE(tag != 0)) + { + gtp_type_set (&hdr0->gtpu, tag); + } + if (qfi) { u8 type = 0; @@ -1042,11 +1123,12 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6_address_t seg0, dst0; u32 teid = 0; u8 *teidp; + u8 gtpu_type = 0; u8 qfi; u8 *qfip = NULL; u32 offset, shift; u32 hdrlen; - ip6_header_t *encap; + ip6_header_t *encap = NULL; gtpu_pdu_session_t *sess = NULL; u32 next0 = SRV6_END_M_GTP6_D_NEXT_LOOKUP; @@ -1084,6 +1166,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, { seg0 = ls_param->sr_prefix; dst0 = hdr0->ip6.dst_address; + + gtpu_type = hdr0->gtpu.type; + teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; @@ -1156,7 +1241,10 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, // get length of encapsulated IPv6 packet (the remaining part) len0 = vlib_buffer_length_in_chain (vm, b0); - encap = vlib_buffer_get_current (b0); + if (PREDICT_TRUE(gtpu_type == GTPU_TYPE_GTPU)) + { + encap = vlib_buffer_get_current (b0); + } uword *p; ip6srv_combo_header_t *ip6srv; @@ -1203,43 +1291,52 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; + ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.segments_left += 1; ip6srv->sr.last_entry += 1; ip6srv->sr.length += sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg0; - if (ls_param->nhtype == SRV6_NHTYPE_NONE) - { - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - else - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) - { - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; - } - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) - { - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; - } + if (PREDICT_TRUE(encap != NULL)) + { + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + } } - else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) - { + else + { ip6srv->sr.protocol = IP_PROTOCOL_NONE; } @@ -1249,6 +1346,13 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, } else { + if (PREDICT_FALSE(encap == NULL)) + { + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; + } + clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); ip6srv->ip.src_address = dst0; @@ -1367,11 +1471,12 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6_address_t seg0; u32 teid = 0; u8 *teidp; + u8 gtpu_type = 0; u8 qfi = 0; u8 *qfip = NULL; u32 offset, shift; u32 hdrlen; - ip6_header_t *encap; + ip6_header_t *encap = NULL; gtpu_pdu_session_t *sess; u32 next0 = SRV6_END_M_GTP6_D_DI_NEXT_LOOKUP; @@ -1408,6 +1513,9 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, else { dst0 = hdr0->ip6.dst_address; + + gtpu_type = hdr0->gtpu.type; + seg0 = ls_param->sr_prefix; teid = hdr0->gtpu.teid; teidp = (u8 *) &teid; @@ -1482,7 +1590,10 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, // get length of encapsulated IPv6 packet (the remaining part) len0 = vlib_buffer_length_in_chain (vm, b0); - encap = vlib_buffer_get_current (b0); + if (PREDICT_TRUE(gtpu_type == GTPU_TYPE_GTPU)) + { + encap = vlib_buffer_get_current (b0); + } uword *p; ip6srv_combo_header_t *ip6srv; @@ -1523,6 +1634,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, { clib_memcpy_fast (ip6srv, sl->rewrite, vec_len (sl->rewrite)); + ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.segments_left += 2; ip6srv->sr.last_entry += 2; } @@ -1533,6 +1646,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->ip.src_address = sr_pr_encaps_src; ip6srv->ip.dst_address = seg0; + ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.segments_left += 1; ip6srv->sr.last_entry += 1; ip6srv->sr.type = ROUTING_HEADER_TYPE_SR; @@ -1541,39 +1656,46 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->ip.payload_length = clib_host_to_net_u16 (len0 + hdr_len - sizeof(ip6_header_t)); ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; - if (ls_param->nhtype == SRV6_NHTYPE_NONE) - { - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - else - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) - { - ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; - bad_n++; - goto DONE; + if (PREDICT_TRUE(encap != NULL)) + { + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->sr.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; + bad_n++; + goto DONE; + } } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->sr.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + } } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) - { - ip6srv->sr.protocol = IP_PROTOCOL_IPV6; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_DI_NEXT_DROP; - bad_n++; - goto DONE; - } - } - else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + else { - ip6srv->sr.protocol = IP_PROTOCOL_NONE; - } + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + } ip6srv->sr.length += ((sizeof(ip6_address_t) * 2) / 8); ip6srv->sr.segments[0] = dst0; diff --git a/src/plugins/srv6-mobile/test/runner.py b/src/plugins/srv6-mobile/test/runner.py index 1ce08a82d32e..e8861de87f74 100755 --- a/src/plugins/srv6-mobile/test/runner.py +++ b/src/plugins/srv6-mobile/test/runner.py @@ -884,6 +884,64 @@ def test_gtp4_5g(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp4_echo(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix 172.20.0.1/32 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="echo_request", teid=200)) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp4_ipv6(self): # TESTS: # trace add af-packet-input 10 @@ -1144,6 +1202,72 @@ def test_gtp6_drop_in_5g(self): for p in c4.pg_read_packets(): p.show2() + def test_gtp6_drop_in_echo(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="echo_request", teid=200)) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + def test_gtp6_drop_in_ipv6(self): # TESTS: # trace add af-packet-input 10 @@ -1643,7 +1767,7 @@ def get_args(): help="Test related commands.") p3.add_argument("op", choices=[ - "ping", "srv6", "tmap", "tmap_5g", "tmap_ipv6", "tmap_ipv6_5g", "gtp4", "gtp4_5g", "gtp4_ipv6", "gtp4_ipv6_5g", "gtp6_drop_in", "gtp6_drop_in_5g", "gtp6_drop_in_ipv6", "gtp6_drop_in_ipv6_5g", "gtp6", "gtp6_5g", "gtp6_ipv6", "gtp6_ipv6_5g"]) + "ping", "srv6", "tmap", "tmap_5g", "tmap_ipv6", "tmap_ipv6_5g", "gtp4", "gtp4_5g", "gtp4_echo", "gtp4_ipv6", "gtp4_ipv6_5g", "gtp6_drop_in", "gtp6_drop_in_5g", "gtp6_drop_in_echo", "gtp6_drop_in_ipv6", "gtp6_drop_in_ipv6_5g", "gtp6", "gtp6_5g", "gtp6_ipv6", "gtp6_ipv6_5g"]) args = parser.parse_args() if not hasattr(args, "op") or not args.op: @@ -1698,6 +1822,8 @@ def main(op=None, prefix=None, verbose=None, image=None, index=None, command=Non program.test_gtp4() elif op == 'gtp4_5g': program.test_gtp4_5g() + elif op == 'gtp4_echo': + program.test_gtp4_echo() elif op == 'gtp4_ipv6': program.test_gtp4_ipv6() elif op == 'gtp4_ipv6_5g': @@ -1706,6 +1832,8 @@ def main(op=None, prefix=None, verbose=None, image=None, index=None, command=Non program.test_gtp6_drop_in() elif op == 'gtp6_drop_in_5g': program.test_gtp6_drop_in_5g() + elif op == 'gtp6_drop_in_echo': + program.test_gtp6_drop_in_echo() elif op == 'gtp6_drop_in_ipv6': program.test_gtp6_drop_in_ipv6() elif op == 'gtp6_drop_in_ipv6_5g': diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index 0b77b47f2542..9aec08a2909c 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -65,6 +65,11 @@ #define BITALIGN3(A,B,C) C; B; A #endif +#define SRH_TAG_ECHO_REPLY 0x0008 +#define SRH_TAG_ECHO_REQUEST 0x0004 +#define SRH_TAG_ERROR_INDICATION 0x0002 +#define SRH_TAG_END_MARKER 0x0001 + /* *INDENT-OFF* */ typedef struct { @@ -93,6 +98,12 @@ typedef struct } __attribute__ ((packed)) gtpu_header_t; /* *INDENT-ON* */ +#define GTPU_TYPE_ECHO_REQUEST 1 +#define GTPU_TYPE_ECHO_REPLY 2 +#define GTPU_TYPE_ERROR_INDICATION 26 +#define GTPU_TYPE_END_MARKER 254 +#define GTPU_TYPE_GTPU 255 + /* *INDENT-OFF* */ typedef struct { @@ -152,7 +163,6 @@ typedef struct #define GTPU_V1_VER (1<<5) #define GTPU_PT_GTP (1<<4) -#define GTPU_TYPE_GTPU 255 /** * @brief SR Segment List (SID list) From 3b5d3e9b800f41b03aeed1bcf76284fcab2d2623 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 14 Oct 2019 14:45:11 -0700 Subject: [PATCH 149/154] add comment --- src/plugins/srv6-mobile/node.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 7b5fda0085e5..fff4d53e2445 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -29,11 +29,11 @@ typedef struct { static u16 srh_tagfield[256] = { 0x0, /* 0 */ - 0x0004, /* 1 : Echo Request */ - 0x0008, /* 2 : Echo Reply */ + 0x0004, /* 1 : Echo Request */ + 0x0008, /* 2 : Echo Reply */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 3 - 15 */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 16 - 25 */ - 0x0002, /* 26 : Error Indication */ + 0x0002, /* 26 : Error Indication */ 0x0, 0x0, 0x0, 0x0, 0x0, /* 27 - 31 */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 32 - 47 */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 48 - 63 */ @@ -50,7 +50,7 @@ static u16 srh_tagfield[256] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 224 - 239 */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 240 - 253 */ 0x0001, /* 254 : End Marker */ - 0x0 /* 255 */ + 0x0 /* 255 : G_PDU */ }; static u8 * From 85548b34bd032aac342fc2d0c935ef303f2fb404 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 14 Oct 2019 14:57:04 -0700 Subject: [PATCH 150/154] fix indent --- src/plugins/srv6-mobile/node.c | 39 +++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index fff4d53e2445..562c393a267d 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -336,27 +336,32 @@ VLIB_NODE_FN (srv6_end_m_gtp4_e) (vlib_main_t * vm, offset = ls0->localsid_len / 8; shift = ls0->localsid_len % 8; - if (PREDICT_TRUE(shift == 0)) { - clib_memcpy_fast (&dst4.as_u8[0], &dst0.as_u8[offset], 4); + if (PREDICT_TRUE(shift == 0)) + { + clib_memcpy_fast (&dst4.as_u8[0], &dst0.as_u8[offset], 4); - qfi = dst0.as_u8[offset + 4]; + qfi = dst0.as_u8[offset + 4]; - clib_memcpy_fast (teid8p, &dst0.as_u8[offset + 5], 4); - } else { - for (index = 0; index < 4; index ++) { - dst4.as_u8[index] = dst0.as_u8[offset + index] << shift; - dst4.as_u8[index] |= dst0.as_u8[offset + index + 1] >> (8 - shift); - } + clib_memcpy_fast (teid8p, &dst0.as_u8[offset + 5], 4); + } + else + { + for (index = 0; index < 4; index ++) + { + dst4.as_u8[index] = dst0.as_u8[offset + index] << shift; + dst4.as_u8[index] |= dst0.as_u8[offset + index + 1] >> (8 - shift); + } - qfi |= dst0.as_u8[offset + 4] << shift; - qfi |= dst0.as_u8[offset + 5] >> (8 - shift); + qfi |= dst0.as_u8[offset + 4] << shift; + qfi |= dst0.as_u8[offset + 5] >> (8 - shift); - for (index = 0; index < 4; index ++) { - *teid8p = dst0.as_u8[offset + 5 + index] << shift; - *teid8p |= dst0.as_u8[offset + 6 + index] >> (8 - shift); - teid8p++; - } - } + for (index = 0; index < 4; index ++) + { + *teid8p = dst0.as_u8[offset + 5 + index] << shift; + *teid8p |= dst0.as_u8[offset + 6 + index] >> (8 - shift); + teid8p++; + } + } if (qfi) { From f9abb524d0e9aae249295a71169b3ea36529276b Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 14 Oct 2019 15:15:04 -0700 Subject: [PATCH 151/154] support gtp-u message mapping --- src/plugins/srv6-mobile/node.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 562c393a267d..fdba2563f67f 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -706,7 +706,7 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; - ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); ip6srv->sr.segments_left += 1; ip6srv->sr.last_entry += 1; @@ -1296,7 +1296,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; - ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); ip6srv->sr.segments_left += 1; ip6srv->sr.last_entry += 1; @@ -1639,7 +1639,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, { clib_memcpy_fast (ip6srv, sl->rewrite, vec_len (sl->rewrite)); - ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); ip6srv->sr.segments_left += 2; ip6srv->sr.last_entry += 2; @@ -1651,7 +1651,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, ip6srv->ip.src_address = sr_pr_encaps_src; ip6srv->ip.dst_address = seg0; - ip6srv->sr.tag = srh_tagfield[gtpu_type]; + ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); ip6srv->sr.segments_left += 1; ip6srv->sr.last_entry += 1; From d866e61bb4c8b6d2df4651961b29cfb7351cf91b Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 14 Oct 2019 16:02:54 -0700 Subject: [PATCH 152/154] gtpu message mapping without sr policy --- src/plugins/srv6-mobile/node.c | 171 +++++++++++++++++++-------------- 1 file changed, 101 insertions(+), 70 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index fdba2563f67f..1d67edbd4dbc 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -695,6 +695,12 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, else { hdr_len = sizeof(ip6_header_t); + + if (PREDICT_FALSE(gtpu_type != GTPU_TYPE_GTPU)) + { + hdr_len += sizeof(ip6_sr_header_t); + hdr_len += sizeof(ip6_address_t); + } } vlib_buffer_advance (b0, - (word) hdr_len); @@ -761,49 +767,59 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, } else { - if (PREDICT_FALSE(encap == NULL)) - { - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; - } - clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); ip6srv->ip.dst_address = seg; - if (ls_param->nhtype == SRV6_NHTYPE_NONE) - { - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) - ip6srv->ip.protocol = IP_PROTOCOL_IPV6; - else - ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) - { - ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; - } - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + if (PREDICT_FALSE(gtpu_type != GTPU_TYPE_GTPU)) { - ip6srv->ip.protocol = IP_PROTOCOL_IPV6; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP4_D_NEXT_DROP; - bad_n++; - goto DONE; - } + ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; + + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + + ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); + + ip6srv->sr.segments_left = 1; + ip6srv->sr.last_entry = 1; + + ip6srv->sr.length = sizeof(ip6_address_t) / 8; + ip6srv->sr.segments[0] = seg; } - else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + else { - ip6srv->ip.protocol = IP_PROTOCOL_NONE; + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) == 0x60) + ip6srv->ip.protocol = IP_PROTOCOL_IPV6; + else + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->ip.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP4_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->ip.protocol = IP_PROTOCOL_NONE; + } } } @@ -1283,6 +1299,11 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, else { hdr_len = sizeof (ip6_header_t); + if (PREDICT_FALSE(gtpu_type) != GTPU_TYPE_GTPU) + { + hdr_len += sizeof(ip6_sr_header_t); + hdr_len += sizeof(ip6_address_t); + } } // jump back to data[0] or pre_data if required @@ -1351,48 +1372,58 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, } else { - if (PREDICT_FALSE(encap == NULL)) - { - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; - } - clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); ip6srv->ip.src_address = dst0; ip6srv->ip.dst_address = seg0; - if (ls_param->nhtype == SRV6_NHTYPE_NONE) + if (PREDICT_FALSE(gtpu_type) != GTPU_TYPE_GTPU) { - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) - ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) - { - ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; - } - } - else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) - { - ip6srv->ip.protocol = IP_PROTOCOL_IPV6; - if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) - { - // Bad encap packet. - next0 = SRV6_END_M_GTP6_D_NEXT_DROP; - bad_n++; - goto DONE; - } + ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; + + ip6srv->sr.protocol = IP_PROTOCOL_NONE; + + ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); + + ip6srv->sr.segments_left = 1; + ip6srv->sr.last_entry = 1; + + ip6srv->sr.length = sizeof(ip6_address_t) / 8; + ip6srv->sr.segments[0] = seg0; } - else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + else { - ip6srv->ip.protocol = IP_PROTOCOL_NONE; + if (ls_param->nhtype == SRV6_NHTYPE_NONE) + { + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV4) + { + ip6srv->ip.protocol = IP_PROTOCOL_IP_IN_IP; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x40) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_IPV6) + { + ip6srv->ip.protocol = IP_PROTOCOL_IPV6; + if ((encap->ip_version_traffic_class_and_flow_label & 0xF0) != 0x60) + { + // Bad encap packet. + next0 = SRV6_END_M_GTP6_D_NEXT_DROP; + bad_n++; + goto DONE; + } + } + else if (ls_param->nhtype == SRV6_NHTYPE_NON_IP) + { + ip6srv->ip.protocol = IP_PROTOCOL_NONE; + } } } From 149f053bac08f55e66c8dbe1f71d5d02d572a7c8 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Mon, 14 Oct 2019 17:22:57 -0700 Subject: [PATCH 153/154] fix the last segment and the segment left value --- src/plugins/srv6-mobile/node.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 1d67edbd4dbc..d28b83513d63 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -779,8 +779,8 @@ VLIB_NODE_FN (srv6_end_m_gtp4_d) (vlib_main_t * vm, ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); - ip6srv->sr.segments_left = 1; - ip6srv->sr.last_entry = 1; + ip6srv->sr.segments_left = 0; + ip6srv->sr.last_entry = 0; ip6srv->sr.length = sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg; @@ -1385,8 +1385,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); - ip6srv->sr.segments_left = 1; - ip6srv->sr.last_entry = 1; + ip6srv->sr.segments_left = 0; + ip6srv->sr.last_entry = 0; ip6srv->sr.length = sizeof(ip6_address_t) / 8; ip6srv->sr.segments[0] = seg0; From 80852ce908a6033bf669738f26ca3a23be5bea44 Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Tue, 29 Oct 2019 13:58:03 -0700 Subject: [PATCH 154/154] Use IPv6 source address on the received packets for GTP6.D/Di/E --- src/plugins/srv6-mobile/node.c | 20 +++++++++++++------- src/vnet/srv6/sr_policy_rewrite.c | 1 - 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index d28b83513d63..f321f4703c5d 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -927,7 +927,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, ip6_sr_localsid_t *ls0; ip6srv_combo_header_t *ip6srv0; - ip6_address_t dst0, seg0; + ip6_address_t dst0, src0, seg0; ip6_gtpu_header_t *hdr0 = NULL; uword len0; @@ -953,6 +953,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, ip6srv0 = vlib_buffer_get_current (b0); dst0 = ip6srv0->ip.dst_address; + src0 = ip6srv0->ip.src_address; seg0 = ip6srv0->sr.segments[0]; tag = ip6srv0->sr.tag; @@ -1003,7 +1004,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, for (index = offset; index < offset + 4; index++) { *teid8p = dst0.as_u8[index] << shift; - *teid8p |= dst0.as_u8[index+1] >> (8 - shift); + *teid8p |= dst0.as_u8[index + 1] >> (8 - shift); teid8p++; } @@ -1057,7 +1058,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_e) (vlib_main_t * vm, hdr0->udp.length = clib_host_to_net_u16 (len0 + sizeof (udp_header_t) + sizeof (gtpu_header_t)); - clib_memcpy_fast (hdr0->ip6.src_address.as_u8, dst0.as_u8, + clib_memcpy_fast (hdr0->ip6.src_address.as_u8, src0.as_u8, sizeof(ip6_address_t)); clib_memcpy_fast (hdr0->ip6.dst_address.as_u8, &seg0.as_u8, sizeof(ip6_address_t)); @@ -1141,7 +1142,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, ip6_gtpu_header_t *hdr0 = NULL; uword len0; - ip6_address_t seg0, dst0; + ip6_address_t seg0, src0; u32 teid = 0; u8 *teidp; u8 gtpu_type = 0; @@ -1186,7 +1187,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, else { seg0 = ls_param->sr_prefix; - dst0 = hdr0->ip6.dst_address; + src0 = hdr0->ip6.src_address; gtpu_type = hdr0->gtpu.type; @@ -1315,6 +1316,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, { clib_memcpy_fast (ip6srv, sl->rewrite, vec_len (sl->rewrite)); + ip6srv->ip.src_address = src0; ip6srv->ip.protocol = IP_PROTOCOL_IPV6_ROUTE; ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); @@ -1374,7 +1376,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d) (vlib_main_t * vm, { clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); - ip6srv->ip.src_address = dst0; + ip6srv->ip.src_address = src0; ip6srv->ip.dst_address = seg0; if (PREDICT_FALSE(gtpu_type) != GTPU_TYPE_GTPU) @@ -1504,6 +1506,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, uword len0; ip6_address_t dst0; + ip6_address_t src0; ip6_address_t seg0; u32 teid = 0; u8 *teidp; @@ -1549,6 +1552,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, else { dst0 = hdr0->ip6.dst_address; + src0 = hdr0->ip6.src_address; gtpu_type = hdr0->gtpu.type; @@ -1670,6 +1674,8 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, { clib_memcpy_fast (ip6srv, sl->rewrite, vec_len (sl->rewrite)); + ip6srv->ip.src_address = src0; + ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); ip6srv->sr.segments_left += 2; @@ -1679,7 +1685,7 @@ VLIB_NODE_FN (srv6_end_m_gtp6_d_di) (vlib_main_t * vm, { clib_memcpy_fast (ip6srv, &sm->cache_hdr, sizeof(ip6_header_t)); - ip6srv->ip.src_address = sr_pr_encaps_src; + ip6srv->ip.src_address = src0; ip6srv->ip.dst_address = seg0; ip6srv->sr.tag = clib_host_to_net_u16(srh_tagfield[gtpu_type]); diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index eb195b346a49..af9b40e9095c 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -108,7 +108,6 @@ static dpo_type_t sr_pr_bsid_insert_dpo_type; /** * @brief IPv6 SA for encapsulated packets */ -ip6_address_t sr_pr_encaps_src; static ip6_address_t sr_pr_encaps_src; static u8 sr_pr_encaps_hop_limit = IPv6_DEFAULT_HOP_LIMIT;

@m>d0ZUpjC93b@F+qBi|(diOKW;hQb3 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 XP{q0LQwz^f{(w)Os}?;rfBpXedB_72 From 9fe8d618232d92cdd147434f1b4fd7abd16893e5 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sun, 21 Jul 2019 12:13:23 -0400 Subject: [PATCH 117/154] add figure for ipv6 payload for gtp6 case. --- extras/ietf105/topo-test_gtp6ip6.png | Bin 0 -> 116633 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 extras/ietf105/topo-test_gtp6ip6.png diff --git a/extras/ietf105/topo-test_gtp6ip6.png b/extras/ietf105/topo-test_gtp6ip6.png new file mode 100644 index 0000000000000000000000000000000000000000..fe78f673787dcc881df495029c42f0e08effb1a8 GIT binary patch literal 116633 zcmeFZX;f2Lw>GK>Dq4!7B`N}zNC8TtNF$-s(gG0y73o_=K$?K`O@N3^*&sv_gMc)O z1R+A`LVys0ibRNj5FkKEg7grQ(1idY$=$)X&MnV5^}gedaesVceD%X&NVE6aYt1$1 zGoSg)_3)yV*|shFx2#*YZkzeJvzOPc+f=%4otVewjleq_)K@9Mf9pdpoBg(~r0u{Y z@Q38hbB>|w*2zeV{;l`P=>&dqYMuGn(^sO_Pg8wL)$P-J*}slIejxTR_tvR%Do;)y zk}^N!={>DVNp+R?^o02rxr`R63i_jl2}BpmE8(fUHnfO&St{dE;Z7g>CP{LO4?eTo#rdPj-rXMt8IM_1?PmV&a>3 z96WXFZ(ba@o{%X&!lW4fhwtrpA#u1AxAWg!3b>1hy7=Kz^3bsx;{V}t=R6=%|7KL8 zj~bjdpYuR{y83nVzkh-qPZ}2G|Na5j?vj88zU7wqF?Z*`os1m^4<;~;{&ueZHDLc= z4kqCC+&``OA133J7zOfo)BfkP_xyHB45GgMj_IFo{LM9QiC1y|W(EK2m+$V~5?^#W zurcXBOvZZ20QP@ao*fQb*Go>LPyV$3^nZ8)>0a7~|1hVed&H!B{e$;v-~JCz02tV& zzj^*YfBBDr{bh0gF|hAu{EvbCmk;>IgZ=5f|M6gdai#x+$nRn7pAh+%Sp5$M`|d0L z!C-#@*#BU#?*Qu`kpGty;UAE{2C)9gBLA8U{*y(n0jz&$ia!xI;5h%UpeX{Azi)$S z%>?@Dm>x+Jx=ftJ;Q7ojq%+m8w%IbU9A9K7^%wuS2D%1sNv=-W<1^y<4EJ^lWB>i% zzF+3RNq}nE-~+Y*zEypCt4r{wpGo_CULJRi<8;r*(->~t3@a1Oy|p~535||G%H?%=u3VLZ z^oF%VXrYGab{MCzq}bjqdUS!xj*qk&fC_o^9EcBnOc#?L2<1_%@5{$bEaYx7x)FaM zuLC-BN8y5kaEVZmvpS;8t7JM44DBHe%X6z$pY`AD_+7?QH1{Z5djg)1o6lk!%0={E zogWUQ?dpzR9!;}$UmcPu2m&rkimac{n)ET@^@TB<=`poLSC$r;^T5pT8con!;17;X zR0dUE?wAMvu9>*cx^+>%HfBMb%^@T{d!S-L?!H3LgH|7{A(pUomhb$c9*_Yh?WGGt8) z!ngSx;c6`N%@RJR->5$v&!Yx`1WUu?arDe3Xw5eKuC-N;`}s)&&0e3e^Wdq$b(>wn zyKPAlGA_rst5mR7^}3Onk5VRslG9>!2q}g9v)9*;(^6Af+3{TLxcJly1d?OX2!9i| zSdn9-{6}Qbi2|{q&^CRa?e*uqVV8}T4Vk{yverzFCs^$*Z(!V5FYen`_ZJ{jC2xy! zTpN%6h%G;v-K5Q`%xD}`Ke;+{-=wZxa(YVr)^r&^7FcSNI5vci?TO#*vgbOT6@kgz z^ Zs$qltF)EM7rOn}BoXGsg)BPCVCkqtZpT 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≶9 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 literal 0 HcmV?d00001 From 28c867ede910879647a220ca114b4e193dc58701 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sun, 21 Jul 2019 12:53:00 -0400 Subject: [PATCH 118/154] add text to test case. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 03cbccfaf6f0..571f579a73dc 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,8 @@ This test scenario demonstrates GTP-U to SRv6 translation. A GTP-U packet sent o ##### IPv4 payload +This case uses SRv6 end functions, End.M.GTP6.D and End.DT4. + ![Topology Diagram](extras/ietf105/topo-test_gtp6.png) VPP1 is configured with "End.M.GTP6.D", and VPP4 is configured with "End.DT4". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D::2. VPP1 translates it to SRv6 toward the IPv6 destination consists of D4:: and TEID of GTP-U with SR policy in SRH. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv4 packet and send out to the packet capture. @@ -159,6 +161,9 @@ $ ./runner.py test gtp6 ##### IPv6 payload +This case uses SRv6 end functions, End.M.GTP6.D and End.DT6. + + ![Topology Diagram](extras/ietf105/topo-test_gtp6ip6.png) The configurations are same with IPv4 payload case, except D4:: is configured as "End.DT6" in VPP4. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv6 packet and send out to the packet capture. From 9716ebfca6e3b3ccb6145aeba99da29d86d3e809 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Thu, 25 Jul 2019 08:13:31 -0400 Subject: [PATCH 119/154] explain runner.py. --- extras/ietf105/README.md | 133 ++++++++++++++++++++++++++++----------- 1 file changed, 95 insertions(+), 38 deletions(-) diff --git a/extras/ietf105/README.md b/extras/ietf105/README.md index bd8ea317c3f7..3b24dea6fd6c 100644 --- a/extras/ietf105/README.md +++ b/extras/ietf105/README.md @@ -1,53 +1,111 @@ -# VPP1 +# What's `runner.py` doing? -## Linux - sysctl net.ipv6.conf.all.disable_ipv6=0 - ip link add tmp1 type veth peer name tmp2 - ip link set dev tmp1 up - ip link set dev tmp2 up - ip -6 addr add a20::2/120 dev tmp2 - ip -6 route del default - ip -6 route add default dev tmp2 via a20::1 +## Common configurations - ping a30::2 +### VPP1 +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::1/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A1::2 +``` -## VPP SRv6 - create host-interface name tmp1 - set interface ip address host-tmp1 a20::1/120 - set interface state host-tmp1 up - set sr encaps source addr C1:: - sr policy add bsid c1::999:1 next c2:: next c3:: next c4:: - sr steer l3 a30::/120 via bsid c1::999:1 +### VPP2 -# VPP2 +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A2::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth2 A2::2 +``` -## VPP SRv6 - sr localsid address C2:: behavior end +### VPP3 -# VPP3 +``` +create host-interface name eth1 +set int ip addr host-eth1 A2::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A3::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth1 A2::1 +``` -## VPP SRv6 +### VPP4 - sr localsid address C3:: behavior end +``` +create host-interface name eth1 +set int ip addr host-eth1 A3::2/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A3::1 +``` + + +## Drop-in for GTP-U over IPv4 + +What's happened when you run `test tmap`: + + $ ./runner.py test tmap + + +Setting up a virtual interface of packet generator: + +#### VPP1 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:01 +set int ip addr pg0 172.16.0.1/30 +set ip arp pg0 172.16.0.2/30 aa:bb:cc:dd:ee:02 +``` + +#### VPP4 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:11 +set int ip addr pg0 1.0.0.2/30 +set ip arp pg0 1.0.0.1 aa:bb:cc:dd:ee:22 +``` + +SRv6 and IP routing settings: + +#### VPP1 + +``` +sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64 +sr steer l3 172.20.0.1/32 via bsid D1:: + +``` + +#### VPP2 + +``` +sr localsid address D2:: behavior end +ip route add D3::/128 via host-eth2 A2::2 +``` + +#### VPP3 + +``` +sr localsid address D3:: behavior end +ip route add D4::/32 via host-eth2 A3::2 +``` + +#### VPP4 + +``` +sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64 +ip route add 172.20.0.1/32 via pg0 1.0.0.1 +``` -# VPP4 -## Linux - sysctl net.ipv6.conf.all.disable_ipv6=0 - ip link add tmp1 type veth peer name tmp2 - ip link set dev tmp1 up - ip link set dev tmp2 up - ip -6 addr add a30::2/120 dev tmp2 - ip -6 route del default - ip -6 route add default dev tmp2 via a30::1 -## VPP SRv6 - create host-interface name tmp1 - set interface ip address host-tmp1 a30::1/120 - set interface state host-tmp1 up - sr localsid address C4:: behavior end.dx6 host-tmp1 a30::2 ## Packet generator and testing @@ -113,4 +171,3 @@ sr localsid address C3:: behavior end.m.gtp4.e sr localsid address 2001:200:0:1ce1:3000:757f:0:2 behavior end.m.gtp4.e - From d55e7a0b718614345d768a3e0a681440cc6e0bbd Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sat, 27 Jul 2019 15:01:22 +0000 Subject: [PATCH 120/154] byte-order correction. --- src/plugins/srv6-mobile/node.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/srv6-mobile/node.c b/src/plugins/srv6-mobile/node.c index 4c969b02542d..75f2d9ba9370 100644 --- a/src/plugins/srv6-mobile/node.c +++ b/src/plugins/srv6-mobile/node.c @@ -46,7 +46,7 @@ format_srv6_end_rewrite_trace6 (u8 * s, va_list * args) srv6_end_rewrite_trace_t *t = va_arg (*args, srv6_end_rewrite_trace_t *); return format (s, "SRv6-END-rewrite: src %U dst %U\n\tTEID: 0x%x\n\tsr_prefix: %U/%d", - format_ip6_address, &t->src, format_ip6_address, &t->dst, t->teid, + format_ip6_address, &t->src, format_ip6_address, &t->dst, clib_net_to_host_u32(t->teid), format_ip6_address, &t->sr_prefix, t->sr_prefixlen); } From 0d7059719caba6dba0f51dace16640a67175d5c3 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Thu, 26 Sep 2019 02:34:27 +0000 Subject: [PATCH 121/154] fix trace parameters in sr_policy_rewrite. --- src/vnet/srv6/sr_policy_rewrite.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vnet/srv6/sr_policy_rewrite.c b/src/vnet/srv6/sr_policy_rewrite.c index 90406e6579ec..7cc7d240774e 100755 --- a/src/vnet/srv6/sr_policy_rewrite.c +++ b/src/vnet/srv6/sr_policy_rewrite.c @@ -1097,7 +1097,7 @@ format_sr_policy_rewrite_trace (u8 * s, va_list * args) s = format (s, "SR-policy-rewrite: src %U dst %U\n\tLocal SID Prefix: %U Node: %U", format_ip6_address, &t->src, format_ip6_address, &t->dst, - format_ip6_address, t->local_prefix, format_ip6_address, t->node); + format_ip6_address, &t->local_prefix, format_ip6_address, &t->node); } else { s = format (s, "SR-policy-rewrite: src %U dst %U", From f5705065964a6ecfd3e95e4f9387b1d908158dde Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 3 Oct 2019 13:24:00 -0700 Subject: [PATCH 122/154] cosmetic change --- extras/ietf105/Dockerfile.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/ietf105/Dockerfile.j2 b/extras/ietf105/Dockerfile.j2 index b157e43dc28f..cca5e2e14143 100644 --- a/extras/ietf105/Dockerfile.j2 +++ b/extras/ietf105/Dockerfile.j2 @@ -27,7 +27,7 @@ WORKDIR {{vpp_path}} RUN set -eux; \ make wipe; \ export UNATTENDED=y; \ - make install-dep; \ + echo "y" | make install-dep; \ rm -rf /var/lib/apt/lists/* ; \ make build; \ make pkg-deb; \ From 79293fbea00ce6d997c4e154473aec6b82c5654a Mon Sep 17 00:00:00 2001 From: Tetsuya Murakami Date: Thu, 3 Oct 2019 14:28:13 -0700 Subject: [PATCH 123/154] Support QFI mapping on GTP4/6.E/D --- extras/ietf106/Dockerfile.j2 | 46 + extras/ietf106/Dockerfile.j2.release | 37 + extras/ietf106/README.md | 173 ++++ extras/ietf106/requirements.txt | 3 + extras/ietf106/runner.py | 1190 ++++++++++++++++++++++++++ extras/ietf106/startup.conf.j2 | 14 + extras/ietf106/topo-init.png | Bin 0 -> 121503 bytes extras/ietf106/topo-test_gtp4d.png | Bin 0 -> 138014 bytes extras/ietf106/topo-test_gtp6.png | Bin 0 -> 131731 bytes extras/ietf106/topo-test_gtp6d.png | Bin 0 -> 127820 bytes extras/ietf106/topo-test_gtp6ip6.png | Bin 0 -> 116633 bytes src/plugins/srv6-mobile/node.c | 220 ++++- src/vnet/srv6/sr.h | 46 + 13 files changed, 1702 insertions(+), 27 deletions(-) create mode 100644 extras/ietf106/Dockerfile.j2 create mode 100644 extras/ietf106/Dockerfile.j2.release create mode 100644 extras/ietf106/README.md create mode 100644 extras/ietf106/requirements.txt create mode 100755 extras/ietf106/runner.py create mode 100644 extras/ietf106/startup.conf.j2 create mode 100644 extras/ietf106/topo-init.png create mode 100644 extras/ietf106/topo-test_gtp4d.png create mode 100644 extras/ietf106/topo-test_gtp6.png create mode 100644 extras/ietf106/topo-test_gtp6d.png create mode 100644 extras/ietf106/topo-test_gtp6ip6.png diff --git a/extras/ietf106/Dockerfile.j2 b/extras/ietf106/Dockerfile.j2 new file mode 100644 index 000000000000..cca5e2e14143 --- /dev/null +++ b/extras/ietf106/Dockerfile.j2 @@ -0,0 +1,46 @@ + +FROM ubuntu:18.04 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + inetutils-traceroute \ + ca-certificates \ + build-essential \ + git gdb sudo \ + iputils-ping \ + net-tools \ + iproute2 \ + tcpdump \ + python3-cffi \ + netcat; \ + rm -rf /var/lib/apt/lists/*; \ + mv /usr/sbin/tcpdump /usr/bin/tcpdump + +RUN set -eux; \ + mkdir -p {{vpp_path}} + +COPY . / {{vpp_path}}/ + +WORKDIR {{vpp_path}} + +RUN set -eux; \ + make wipe; \ + export UNATTENDED=y; \ + echo "y" | make install-dep; \ + rm -rf /var/lib/apt/lists/* ; \ + make build; \ + make pkg-deb; \ + rm -rf .ccache; \ + find . -type f -name '*.o' -delete ; \ + cd {{vpp_path}}/build-root; \ + rm vpp-api-python_*.deb; \ + tar czf vpp-package.tgz *.deb; \ + mv vpp-package.tgz {{vpp_path}}/; \ + dpkg -i *.deb ; \ + cp {{vpp_path}}/startup.conf /etc/startup.conf + +WORKDIR / + +CMD vpp -c /etc/startup.conf + diff --git a/extras/ietf106/Dockerfile.j2.release b/extras/ietf106/Dockerfile.j2.release new file mode 100644 index 000000000000..851aef66197b --- /dev/null +++ b/extras/ietf106/Dockerfile.j2.release @@ -0,0 +1,37 @@ + +FROM ubuntu:18.04 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + inetutils-traceroute \ + ca-certificates \ + libmbedcrypto1 \ + libmbedtls10 \ + libmbedx509-0 \ + libnuma1 \ + sudo \ + iputils-ping \ + net-tools \ + iproute2 \ + tcpdump \ + python3-cffi \ + netcat; \ + rm -rf /var/lib/apt/lists/*; \ + mv /usr/sbin/tcpdump /usr/bin/tcpdump + +WORKDIR /tmp + +COPY startup.conf /etc/startup.conf + +COPY vpp-package.tgz /tmp + +RUN set -eux; \ + tar xzf vpp-package.tgz; \ + dpkg -i *.deb ; \ + rm -rf *.deb + +WORKDIR / + +CMD vpp -c /etc/startup.conf + diff --git a/extras/ietf106/README.md b/extras/ietf106/README.md new file mode 100644 index 000000000000..3b24dea6fd6c --- /dev/null +++ b/extras/ietf106/README.md @@ -0,0 +1,173 @@ +# What's `runner.py` doing? + +## Common configurations + +### VPP1 +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::1/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A1::2 +``` + + +### VPP2 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A1::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A2::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth2 A2::2 +``` + + +### VPP3 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A2::2/120 +create host-interface name eth2 +set int ip addr host-eth2 A3::1/120 +set int state host-eth1 up +set int state host-eth2 up +ip route add ::/0 via host-eth1 A2::1 +``` + +### VPP4 + +``` +create host-interface name eth1 +set int ip addr host-eth1 A3::2/120 +set int state host-eth1 up +ip route add ::/0 via host-eth1 A3::1 +``` + + +## Drop-in for GTP-U over IPv4 + +What's happened when you run `test tmap`: + + $ ./runner.py test tmap + + +Setting up a virtual interface of packet generator: + +#### VPP1 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:01 +set int ip addr pg0 172.16.0.1/30 +set ip arp pg0 172.16.0.2/30 aa:bb:cc:dd:ee:02 +``` + +#### VPP4 + +``` +create packet-generator interface pg0 +set int mac address pg0 aa:bb:cc:dd:ee:11 +set int ip addr pg0 1.0.0.2/30 +set ip arp pg0 1.0.0.1 aa:bb:cc:dd:ee:22 +``` + +SRv6 and IP routing settings: + +#### VPP1 + +``` +sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64 +sr steer l3 172.20.0.1/32 via bsid D1:: + +``` + +#### VPP2 + +``` +sr localsid address D2:: behavior end +ip route add D3::/128 via host-eth2 A2::2 +``` + +#### VPP3 + +``` +sr localsid address D3:: behavior end +ip route add D4::/32 via host-eth2 A3::2 +``` + +#### VPP4 + +``` +sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64 +ip route add 172.20.0.1/32 via pg0 1.0.0.1 +``` + + + + +## Packet generator and testing + + Example how to build custom SRv6 packet in scapy and ipaddress pkgs + + s = '\x11' * 4 + IPv4Address(u"192.168.192.10").packed + '\x11' * 8 + ip6 = IPv6Address(s) + IPv6(dst=ip6, src=ip6) + + +## end.m.gtp4.e + + First set behavior so our localsid node is called with the packet + matching C1::1 in fib table + sr localsid address C1::1 behavior end.m.gtp4.ess + + show sr localsids behaviors + show sr localsid + + We should send a well formated packet to C::1 destination address + that contains the correct spec as for end.m.gtp4.e with encapsulated + ipv4 src and dst address and teid with port for the conversion to + GTPU IPv4 packet + + +## additional commands + + gdb - breakpoint + + break sr_policy_rewrite.c:1620 + + break src/plugins/srv6-end/node.c:84 + + TMAP + Linux: + + ip link add tmp1 type veth peer name tmp2 + ip link set dev tmp1 up + ip link set dev tmp2 up + ip addr add 172.20.0.2/24 dev tmp2 + + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 172.20.0.1/24 + set interface state host-tmp1 up + + VPP + set sr encaps source addr C1:: + sr policy add bsid D1::999:2 next D2:: next D3:: gtp4_removal sr-prefix fc34:5678::/64 local-prefix C1::/64 + sr steer l3 172.21.0.0/24 via bsid d1::999:2 + + END + Linux + create host-interface name tmp1 + set int mac address host-tmp1 02:fe:98:c6:c8:7b + set interface ip address host-tmp1 A1::1/64 + set interface state host-tmp1 up + + VPP + sr localsid address 1111:1111:c0a8:c00a:1122:1111:1111:1111 behavior end.m.gtp4.e + + trace add af-packet-input 10 + + sr localsid address C3:: behavior end.m.gtp4.e + sr localsid address 2001:200:0:1ce1:3000:757f:0:2 behavior end.m.gtp4.e diff --git a/extras/ietf106/requirements.txt b/extras/ietf106/requirements.txt new file mode 100644 index 000000000000..2938cddeceb0 --- /dev/null +++ b/extras/ietf106/requirements.txt @@ -0,0 +1,3 @@ +docker +jinja2 +scapy diff --git a/extras/ietf106/runner.py b/extras/ietf106/runner.py new file mode 100755 index 000000000000..dfd5f4317f2e --- /dev/null +++ b/extras/ietf106/runner.py @@ -0,0 +1,1190 @@ +#!/usr/bin/env python3 + +from os.path import dirname, realpath, split,\ + join, isdir, exists +from os import remove, system, mkdir +from logging import getLogger, basicConfig,\ + DEBUG, INFO, ERROR +from argparse import ArgumentParser +from atexit import register +from shutil import rmtree + +from jinja2 import Environment, FileSystemLoader + +from docker.errors import NotFound, APIError +from docker import from_env + +from scapy.contrib.gtp import * +from scapy.all import * + + +verbose_levels = { + 'error': ERROR, + 'debug': DEBUG, + 'info': INFO} + + +class ContainerStartupError(Exception): + pass + + +class Container(object): + + tmp = "/tmp" + cmd = "vppctl -s 0:5002" + cmd_bash = "/bin/bash" + + def __init__(self, ref, name): + self._name = name + self._ref = ref + + @property + def name(self): + return self._name + + @property + def temp(self): + return join(self.tmp, self.name) + + @property + def pg_input_file(self): + return join(self.temp, "pgi.pcap") + + @property + def pg_output_file(self): + return join(self.temp, "pgo.pcap") + + @property + def pg_input_file_in(self): + return join("/mnt", "pgi.pcap") + + @property + def pg_output_file_in(self): + return join("/mnt", "pgo.pcap") + + def disconnect_all(self): + status = False + for net in self._ref.client.networks.list(): + try: + net.disconnect(self._ref) + except APIError: + continue + status = True + return status + + @classmethod + def new(cls, client, image, name): + + temp = join(cls.tmp, name) + if isdir(temp): + rmtree(temp) + mkdir(temp) + + ref = client.containers.run(detach=True, + remove=True, auto_remove=True, + image=image, name=name, + privileged=True, + volumes={ temp: { + 'bind': '/mnt', + 'mode': 'rw' + }}) + + obj = cls.get(client, name) + if not obj: + raise ContainerStartupError() + + obj.disconnect_all() + return obj + + @classmethod + def get(cls, client, name): + try: + ref = client.containers.get(name) + except NotFound: + pass + else: + return cls(ref, name) + + def rem(self): + self._ref.kill() + + def vppctl(self): + system("docker exec -it {} {}".format(self.name, self.cmd)) + + def bash(self): + system("docker exec -it {} {}".format(self.name, self.cmd_bash)) + + def vppctl_exec(self, cmd): + ec, resp = self._ref.exec_run(cmd="{} {}".format(self.cmd, cmd)) + assert(ec == 0) + return resp + + def setup_host_interface(self, name, ip): + self.vppctl_exec("create host-interface name {}".format(name)) + self.vppctl_exec("set int ip addr host-{} {}".format(name, ip)) + self.vppctl_exec("set int state host-{} up".format(name)) + + def pg_create_interface(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip6 neighbor pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") + + def pg_create_interface4(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip arp pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") + + def pg_create_interface6(self, local_ip, remote_ip, local_mac, remote_mac): + # remote_ip can't have subnet mask + + time.sleep(2) + self.vppctl_exec("create packet-generator interface pg0") + self.vppctl_exec("set int mac address pg0 {}".format(local_mac)) + self.vppctl_exec("set int ip6 addr pg0 {}".format(local_ip)) + self.vppctl_exec("set ip6 arp pg0 {} {}".format(remote_ip, + remote_mac)) + self.vppctl_exec("set int state pg0 up") + + def pg_enable(self): + # start packet generator + self.vppctl_exec("packet-generator enable") + + def pg_create_stream(self, stream): + wrpcap(self.pg_input_file, stream) + self.vppctl_exec("packet-generator new name pg-stream node ethernet-input pcap {}".format( + self.pg_input_file_in)) + + def pg_start_capture(self): + if exists(self.pg_output_file): + remove(self.pg_output_file) + self.vppctl_exec("packet-generator capture pg0 pcap {}".format( + self.pg_output_file_in)) + + def pg_read_packets(self): + return rdpcap(self.pg_output_file) + + def set_ipv6_route(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via host-{} {}".format( + subnet, out_if_name, next_hop_ip)) + + def set_ip_pgroute(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via {} {}".format( + subnet, out_if_name, next_hop_ip)) + + def set_ipv6_pgroute(self, out_if_name, next_hop_ip, subnet): + self.vppctl_exec("ip route add {} via {} {}".format( + subnet, out_if_name, next_hop_ip)) + + def set_ipv6_default_route(self, out_if_name, next_hop_ip): + self.vppctl_exec("ip route add ::/0 via host-{} {}".format( + out_if_name, next_hop_ip)) + + def enable_trace(self, count): + self.vppctl_exec("trace add af-packet-input {}".format(count)) + + +class Containers(object): + + def __init__(self, client, image): + self.client = client + self.image = image + + def tmp_render(self, path, template, kwargs): + + with open(path, "w") as fo: + fo.write(template.render(**kwargs)) + + register(lambda : remove(path)) + + def build(self, path, vpp_path): + env = Environment( + loader=FileSystemLoader(path), + trim_blocks=True) + + self.tmp_render(join(vpp_path, "Dockerfile"), + env.get_template("Dockerfile.j2"), + {'vpp_path': vpp_path}) + + self.tmp_render(join(vpp_path, "startup.conf"), + env.get_template("startup.conf.j2"), + {'vpp_path': vpp_path}) + + ref, _ = self.client.images.build(path=vpp_path, + tag=self.image, rm=True) + return ref + + def release(self, path, vpp_path): + env = Environment( + loader=FileSystemLoader(path), + trim_blocks=True) + + self.tmp_render(join(vpp_path, "Dockerfile"), + env.get_template("Dockerfile.j2.release"), + {'vpp_path': vpp_path}) + + self.tmp_render(join(vpp_path, "startup.conf"), + env.get_template("startup.conf.j2"), + {'vpp_path': vpp_path}) + + ref, _ = self.client.images.build(path=vpp_path, + tag="ietf106-release-image", rm=True) + return ref + + def new(self, name): + return Container.new(self.client, self.image, name) + + def get(self, name): + return Container.get(self.client, name) + + def vppctl(self, name, command=None): + container = self.get(name) + if not command: + container.vppctl() + else: + print(container.vppctl_exec(command).decode()) + + def bash(self, name): + container = self.get(name) + container.bash() + + +class Network(object): + + def __init__(self, ref, name): + self._name = name + self._ref = ref + + @property + def name(self): + return self._name + + @classmethod + def new(cls, client, name): + ref = client.networks.create( + name, driver="bridge", + check_duplicate=True) + return cls(ref, name) + + @classmethod + def get(cls, client, name): + try: + ref = client.networks.get(name) + except NotFound: + pass + else: + return cls(ref, name) + + def rem(self): + self._ref.remove() + + def connect(self, c): + self._ref.connect(c.name) + + +class Networks(object): + + def __init__(self, client): + self.client = client + + def new(self, name): + return Network.new(self.client, name) + + def get(self, name): + return Network.get(self.client, name) + + +class Program(object): + + image = "ietf106-image" + + name_prefix = "hck" + + # TODO: add description to these instances + # for exmaple what the vpp is supposed to be + # in our topoloty overview + + instance_names = [ + "vpp-1", + "vpp-2", + "vpp-3", + "vpp-4" + ] + + network_names = [ + "net-1", + "net-2", + "net-3", + ] + + def __init__(self, image=None, prefix=None): + self.path = dirname(realpath(__file__)) + + if image: + self.image = image + if prefix is not None: + self.name_prefix = prefix + + client = from_env() + self.containers = Containers(client, self.image) + self.networks = Networks(client) + + self.logger = getLogger(__name__) + + @property + def vpp_path(self): + return split(split(self.path)[0])[0] + + def get_name(self, name): + if not self.name_prefix: + return name + return "{}-{}".format(self.name_prefix, name) + + def stop_containers(self): + + for name in self.instance_names: + instance = self.containers.get(self.get_name(name)) + if instance: + instance.rem() + + for name in self.network_names: + network = self.networks.get(self.get_name(name)) + if network: + network.rem() + + def start_containers(self): + + self.stop_containers() + + networks = list() + + for name in self.network_names: + networks.append(self.networks.new(self.get_name(name))) + + n1, n2, n3 = networks + + instances = list() + + for name in self.instance_names: + instances.append(self.containers.new(self.get_name(name))) + + c1, c2, c3, c4 = instances + + # setup packet generator interfaces + #c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + #local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + + # setup network between instances + n1.connect(c1) + n1.connect(c2) + + n2.connect(c2) + n2.connect(c3) + + n3.connect(c3) + n3.connect(c4) + + # c1 & c2 link + c1.setup_host_interface("eth1", "A1::1/120") + c2.setup_host_interface("eth1", "A1::2/120") + + # c2 & c3 link + c2.setup_host_interface("eth2", "A2::1/120") + c3.setup_host_interface("eth1", "A2::2/120") + + # c3 & c4 link + c3.setup_host_interface("eth2", "A3::1/120") + c4.setup_host_interface("eth1", "A3::2/120") + + # c1 > c2 default route + + c1.set_ipv6_default_route("eth1", "A1::2") + # c2 > c3 default route + c2.set_ipv6_default_route("eth2", "A2::2") + # c3 > c2 default route + c3.set_ipv6_default_route("eth1", "A2::1") + # c4 > c3 default route + c4.set_ipv6_default_route("eth1", "A3::1") + + # c3 > c4 static route for address B::1/128 + c3.set_ipv6_route("eth2", "A3::2", "B::1/128") + c3.set_ipv6_route("eth2", "A3::2", "B::2/128") + + def test_ping(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_srv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 C::1/120 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Sleeping") + time.sleep(30) + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr D1::") + c1.vppctl_exec("sr policy add bsid D1::999:1 next D2:: next D3:: next D4::") + c1.vppctl_exec("sr steer l3 B::/120 via bsid D1::999:1") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid address D4:: behavior end.dx6 pg0 B::2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/128") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="B::2")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c2.enable_trace(10) + c3.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + + def test_tmap(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_tmap_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D1:: next D2:: next D3:: gtp4_removal sr_prefix D4::/32 v6src_prefix C1::/64") + c1.vppctl_exec("sr steer l3 172.20.0.1/32 via bsid D1::") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp4(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64 nhtype ipv4") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp4_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface4(local_ip="172.16.0.1/30", remote_ip="172.16.0.2/30", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + c1.vppctl_exec("sr localsid prefix ::ffff:ac14:0001/128 behavior end.m.gtp4.d D4::/32 v6src_prefix C1::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/32 behavior end.m.gtp4.e v4src_position 64") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.20.0.1/32") + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IP(src="172.20.0.2", dst="172.20.0.1")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ + ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_drop_in(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.99.0.1", dst="172.99.0.2")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_drop_in_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d.di D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.m.gtp6.e") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "B::2", "D::2/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + #c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + # local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c4.pg_create_interface4(local_ip="1.0.0.2/30", remote_ip="1.0.0.1", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt4 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ip_pgroute("pg0", "1.0.0.1", "172.200.0.1/32") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IP(src="172.100.0.1", dst="172.200.0.1")/ + ICMP()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def test_gtp6_ipv6(self): + # TESTS: + # trace add af-packet-input 10 + # pg interface on c1 172.20.0.1 + # pg interface on c4 B::1/120 + + self.start_containers() + + print("Deleting the old containers...") + time.sleep(30) + print("Starting the new containers...") + + c1 = self.containers.get(self.get_name(self.instance_names[0])) + c2 = self.containers.get(self.get_name(self.instance_names[1])) + c3 = self.containers.get(self.get_name(self.instance_names[2])) + c4 = self.containers.get(self.get_name(self.instance_names[-1])) + + c1.pg_create_interface(local_ip="C::1/120", remote_ip="C::2", + local_mac="aa:bb:cc:dd:ee:01", remote_mac="aa:bb:cc:dd:ee:02") + c4.pg_create_interface(local_ip="B::1/120", remote_ip="B::2", + local_mac="aa:bb:cc:dd:ee:11", remote_mac="aa:bb:cc:dd:ee:22") + + c1.vppctl_exec("set sr encaps source addr A1::1") + c1.vppctl_exec("sr policy add bsid D4:: next D2:: next D3::") + + c1.vppctl_exec("sr localsid prefix D::/64 behavior end.m.gtp6.d D4::/64") + + c2.vppctl_exec("sr localsid address D2:: behavior end") + + c3.vppctl_exec("sr localsid address D3:: behavior end") + + c4.vppctl_exec("sr localsid prefix D4::/64 behavior end.dt6 2") + + c2.set_ipv6_route("eth2", "A2::2", "D3::/128") + c2.set_ipv6_route("eth1", "A1::1", "C::/120") + c3.set_ipv6_route("eth2", "A3::2", "D4::/32") + c3.set_ipv6_route("eth1", "A2::1", "C::/120") + c4.set_ipv6_pgroute("pg0", "B::2", "2002::1/128") + + print("Waiting...") + time.sleep(30) + + p = (Ether(src="aa:bb:cc:dd:ee:02", dst="aa:bb:cc:dd:ee:01")/ + IPv6(src="C::2", dst="D::2")/ + UDP(sport=2152, dport=2152)/ + GTP_U_Header(gtp_type="g_pdu", teid=200)/ + IPv6(src="2001::1", dst="2002::1")/ICMPv6EchoRequest()) + + print("Sending packet on {}:".format(c1.name)) + p.show2() + + c1.enable_trace(10) + c4.enable_trace(10) + + c4.pg_start_capture() + + c1.pg_create_stream(p) + c1.pg_enable() + + # timeout (sleep) if needed + print("Sleeping") + time.sleep(5) + + print("Receiving packet on {}:".format(c4.name)) + for p in c4.pg_read_packets(): + p.show2() + + def status_containers(self): + + print("Instances:") + + for i, name in enumerate(self.instance_names): + name = self.get_name(name) + print("\t[{}] {} - {}".format(i, name, + "running" if self.containers.get(name) else "missing")) + + print("Networks:") + + for i, name in enumerate(self.network_names): + name = self.get_name(name) + print("\t[{}] {} - {}".format(i, name, + "running" if self.networks.get(name) else "missing")) + + def build_image(self): + # TODO: optimize build process for speed and image size + self.containers.build(self.path, self.vpp_path) + + def release_image(self): + instance = self.containers.new("release-build") + + system("docker cp release-build:{}/vpp-package.tgz {}/".format(self.vpp_path, self.vpp_path)) + + instance.rem() + + self.containers.release(self.path, self.vpp_path) + + system("rm -rf {}/vpp-package.tgz".format(self.vpp_path)) + + def vppctl(self, index, command=None): + if index >= len(self.instance_names): + return + name = self.get_name( + self.instance_names[index]) + self.logger.error("connecting to: {}".format(name)) + self.containers.vppctl(name, command) + + def bash(self, index): + if index >= len(self.instance_names): + return + name = self.get_name( + self.instance_names[index]) + self.logger.error("connecting to: {}".format(name)) + self.containers.bash(name) + + +def get_args(): + parser = ArgumentParser() + + parser.add_argument("--verbose", choices=[ + 'error', 'debug', 'info']) + + parser.add_argument('--image', choices=[ + 'debug', 'release']) + + subparsers = parser.add_subparsers() + + p1 = subparsers.add_parser("infra", + help="Infrastructure related commands.") + + p1.add_argument("op", choices=[ + 'stop', 'start', 'status', 'restart', 'build', 'release']) + + p1.add_argument("--prefix") + p1.add_argument("--image") + + p2 = subparsers.add_parser("cmd", + help="Instance related commands.") + + p2.add_argument("op", choices=[ + 'vppctl', 'bash']) + + p2.add_argument("index", type=int, + help="Container instance index. (./runner.py infra status)") + + p2.add_argument("--command", + help="Only vppctl supports this optional argument.") + + p3 = subparsers.add_parser("test", + help="Test related commands.") + + p3.add_argument("op", choices=[ + "ping", "srv6", "tmap", "tmap_ipv6", "gtp4", "gtp4_ipv6", "gtp6_drop_in", "gtp6_drop_in_ipv6", "gtp6", "gtp6_ipv6"]) + + args = parser.parse_args() + if not hasattr(args, "op") or not args.op: + parser.print_help(sys.stderr) + sys.exit(1) + + return vars(args) + + +def main(op=None, prefix=None, verbose=None, image=None, index=None, command=None): + + if verbose: + basicConfig(level=verbose_levels[verbose]) + + if image == 'release': + image="ietf106-release-image" + elif image == 'debug': + image="ietf106-image" + + print("Verified image: {}".format(image)) + + program = Program(image, prefix) + + try: + if op == 'build': + program.build_image() + elif op == 'release': + program.release_image() + elif op == 'stop': + program.stop_containers() + elif op == 'start': + program.start_containers() + elif op == 'status': + program.status_containers() + elif op == 'vppctl': + program.vppctl(index, command) + elif op == 'bash': + program.bash(index) + elif op == 'ping': + program.test_ping() + elif op == 'srv6': + program.test_srv6() + elif op == 'tmap': + program.test_tmap() + elif op == 'tmap_ipv6': + program.test_tmap_ipv6() + elif op == 'gtp4': + program.test_gtp4() + elif op == 'gtp4_ipv6': + program.test_gtp4_ipv6() + elif op == 'gtp6_drop_in': + program.test_gtp6_drop_in() + elif op == 'gtp6_drop_in_ipv6': + program.test_gtp6_drop_in_ipv6() + elif op == 'gtp6': + program.test_gtp6() + elif op == 'gtp6_ipv6': + program.test_gtp6_ipv6() + + except Exception: + program.logger.exception("") + rc = 1 + else: + rc = 0 + + return rc + + +if __name__ == "__main__": + sys.exit(main(**get_args())) + diff --git a/extras/ietf106/startup.conf.j2 b/extras/ietf106/startup.conf.j2 new file mode 100644 index 000000000000..5a4a2ef103d1 --- /dev/null +++ b/extras/ietf106/startup.conf.j2 @@ -0,0 +1,14 @@ +unix { + nodaemon + cli-no-pager + cli-listen 0.0.0.0:5002 +} +plugins { + plugin dpdk_plugin.so { + disable + } +} +cpu { + workers 2 +} + diff --git a/extras/ietf106/topo-init.png b/extras/ietf106/topo-init.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9603ba2907f13aebc368119fff9c07f1b0473f GIT binary patch literal 121503 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⩔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

@m>d0ZUpjC93b@F+qBi|(diOKW;hQb3 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 XP{q0LQwz^f{(w)Os}?;rfBpXedB_72 literal 0 HcmV?d00001 From 57dac085c39d60bb248c1bbd59ad3eb6ee823e12 Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sun, 21 Jul 2019 12:11:13 -0400 Subject: [PATCH 116/154] add text and figures to test cases. --- README.md | 15 +++++++++++++-- extras/ietf105/topo-test_gtp4.png | Bin 116297 -> 0 bytes extras/ietf105/topo-test_gtp6.png | Bin 122044 -> 131731 bytes extras/ietf105/topo-test_gtp6d.png | Bin 128914 -> 127820 bytes 4 files changed, 13 insertions(+), 2 deletions(-) delete mode 100644 extras/ietf105/topo-test_gtp4.png diff --git a/README.md b/README.md index 01b3b98593fa..03cbccfaf6f0 100644 --- a/README.md +++ b/README.md @@ -145,15 +145,26 @@ This test scenario demonstrates GTP-U to SRv6 translation. A GTP-U packet sent o #### GTP-U over UDP/IPv6 case +##### IPv4 payload + ![Topology Diagram](extras/ietf105/topo-test_gtp6.png) -IPv4 payload over GTP-U: +VPP1 is configured with "End.M.GTP6.D", and VPP4 is configured with "End.DT4". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D::2. VPP1 translates it to SRv6 toward the IPv6 destination consists of D4:: and TEID of GTP-U with SR policy in SRH. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv4 packet and send out to the packet capture. + +To start this case, you can run: ``` $ ./runner.py test gtp6 ``` -IPv6 payload over GTP-U: +##### IPv6 payload + +![Topology Diagram](extras/ietf105/topo-test_gtp6ip6.png) + +The configurations are same with IPv4 payload case, except D4:: is configured as "End.DT6" in VPP4. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv6 packet and send out to the packet capture. + +If you want to use IPv6 payload instead of IPv4, you can run: + ``` $ ./runner.py test gtp6_ipv6 ``` diff --git a/extras/ietf105/topo-test_gtp4.png b/extras/ietf105/topo-test_gtp4.png deleted file mode 100644 index 0b7124f34f071a6ec5c5da8afaf9f4bdca5cfc4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116297 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

@m>d0ZUpjC93b@F+qBi|(diOKW;hQb3 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 XP{q0LQwz^f{(w)Os}?;rfBpXedB_72 literal 0 HcmV?d00001 From 23bbcd93e2acdbaefe8cee8b4968e32641f0ebcf Mon Sep 17 00:00:00 2001 From: matsusato3 Date: Sun, 21 Jul 2019 10:21:54 -0400 Subject: [PATCH 115/154] add text anf figure to test cases. --- README.md | 40 +++++++++++++++++++++-------- extras/ietf105/topo-test_gtp4d.png | Bin 0 -> 138014 bytes extras/ietf105/topo-test_gtp6.png | Bin 128914 -> 122044 bytes extras/ietf105/topo-test_gtp6d.png | Bin 0 -> 128914 bytes 4 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 extras/ietf105/topo-test_gtp4d.png create mode 100644 extras/ietf105/topo-test_gtp6d.png diff --git a/README.md b/README.md index e9d9cce70071..01b3b98593fa 100644 --- a/README.md +++ b/README.md @@ -91,41 +91,61 @@ connecting to: hck-vpp-1 vpp# ``` -### Test Scenarios -#### SRv6 Drop-in for GTP-U/UDP/IPv4 +## Test Scenarios +### SRv6 Drop-in between GTP-U tunnel -![Topology Diagram](extras/ietf105/topo-test_gtp4.png) +This test scenario introduces SRv6 path between GTP-U tunnel transparently. A GTP-U packet sent out from one end to another is translated to SRv6 and then back to GTP-U. All GTP-U tunnel identifiers are preserved in IPv6 header and SRH. -IPv4 payload over GTP-U: + +#### GTP-U over UDP/IPv4 case + +This case uses SRv6 end functions, T.M.GTP4.D and End.M.GTP4.E. + +![Topology Diagram](extras/ietf105/topo-test_gtp4d.png) + +VPP1 is configured with "T.M.GTP4.D", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv4 toward the packet capture. VPP1 translates it to SRv6 toward D4::TEID with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. + +To start this case with IPv4 payload over GTP-U, you can run: ``` $ ./runner.py test tmap ``` -IPv6 payload over GTP-U: +If you want to use IPv6 payload instead of IPv4, you can run: ``` $ ./runner.py test tmap_ipv6 ``` -#### SRv6 Drop-in for GTP-U/UDP/IPv6 -![Topology Diagram](extras/ietf105/topo-test_gtp6.png) +#### GTP-U over UDP/IPv6 case -IPv4 payload over GTP-U: +This case uses SRv6 end functions, End.M.GTP6.D.Di and End.M.GTP6.E. + +![Topology Diagram](extras/ietf105/topo-test_gtp6d.png) + +VPP1 is configured with "End.M.GTP6.D.Di", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D:: of the packet capture. VPP1 translates it to SRv6 toward D:: with SR policy in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture. + +To start this case with IPv4 payload over GTP-U, you can run: ``` $ ./runner.py test gtp6_drop_in ``` -IPv6 payload over GTP-U: +If you want to use IPv6 payload instead of IPv4, you can run: ``` $ ./runner.py test gtp6_drop_in_ipv6 ``` -#### SRv6 from GTP-U/UDP/IPv6 +### GTP-U to SRv6 + +This test scenario demonstrates GTP-U to SRv6 translation. A GTP-U packet sent out from one end to another is translated to SRv6. + +#### GTP-U over UDP/IPv6 case + +![Topology Diagram](extras/ietf105/topo-test_gtp6.png) IPv4 payload over GTP-U: diff --git a/extras/ietf105/topo-test_gtp4d.png b/extras/ietf105/topo-test_gtp4d.png new file mode 100644 index 0000000000000000000000000000000000000000..d60beb230930f5f2a91641caecb63a4025f24915 GIT binary patch literal 138014 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 I>g_-N2VIs9&;S4c literal 0 HcmV?d00001 diff --git a/extras/ietf105/topo-test_gtp6.png b/extras/ietf105/topo-test_gtp6.png index 60f984a0393e626a0c20721abac3136625b0b9c6..aae027fcc2aedbc1a9bae38dc76ccfa20eb9e194 100644 GIT binary patch literal 122044 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