diff options
author | Takeru Hayasaka <hayatake396@gmail.com> | 2022-10-28 04:26:05 +0900 |
---|---|---|
committer | Andrew Yourtchenko <ayourtch@gmail.com> | 2023-12-20 17:30:19 +0000 |
commit | 68ac244283b60cbaf6356ab732f1d31583bb3e7a (patch) | |
tree | eafd76834ecd0aaa77ac4f9a54629636489d5bfd /src/plugins/srv6-mobile/sr_mobile_api.h | |
parent | 69f800fbfd559c8db21d064ceeca5f81fb1f0021 (diff) |
srv6-mobile: Implement SRv6 mobile API funcs
This merge request adds the feature to manipulate localsids and policies for SRv6 mobile via API.
Type: feature
Signed-off-by: Takeru Hayasaka <hayatake396@gmail.com>
Change-Id: Ibb46bf71ae1d9d4591ce2c8ccf66f520887dad70
Diffstat (limited to 'src/plugins/srv6-mobile/sr_mobile_api.h')
-rw-r--r-- | src/plugins/srv6-mobile/sr_mobile_api.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/plugins/srv6-mobile/sr_mobile_api.h b/src/plugins/srv6-mobile/sr_mobile_api.h new file mode 100644 index 00000000000..28979b1875c --- /dev/null +++ b/src/plugins/srv6-mobile/sr_mobile_api.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2022 BBSakura Networks Inc 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. + */ + +/** + * @file + * @brief Segment Routing for mobile u-plane api + * + */ + +#ifndef included_sr_mobile_api_h +#define included_sr_mobile_api_h +#include <stdint.h> +#include <vnet/srv6/sr.h> +#include <vnet/ip/ip_types_api.h> + +#define srv6_mobile_strcmp_with_size(s1, s1len, s2) \ + ({ \ + int __indicator = 0; \ + strcmp_s_inline (s1, s1len, s2, &__indicator); \ + __indicator; \ + }) + +void alloc_param_srv6_end_m_gtp4_e (void **plugin_mem_p, + const void *v4src_addr, + const u32 v4src_position, + const u32 fib_table); + +void alloc_param_srv6_end_m_gtp6_e (void **plugin_mem_p, const u32 fib_table); + +void alloc_param_srv6_end_m_gtp6_d (void **plugin_mem_p, const void *sr_prefix, + const u32 sr_prefixlen, const u8 nhtype, + const bool drop_in, const u32 fib_table); + +void alloc_param_srv6_end_m_gtp6_di (void **plugin_mem_p, + const void *sr_prefix, + const u32 sr_prefixlen, const u8 nhtype); + +void alloc_param_srv6_end_m_gtp6_dt (void **plugin_mem_p, const u32 fib_index, + const u32 local_fib_index, + const u32 type); + +void alloc_param_srv6_t_m_gtp4_d (void **plugin_mem_p, + const void *v6src_prefix, + const u32 v6src_prefixlen, + const void *sr_prefix, + const u32 sr_prefixlen, const u32 fib_index, + const u8 nhtype, const bool drop_in); + +void alloc_param_srv6_t_m_gtp4_dt (void **plugin_mem_p, const u32 fib_index, + const u32 local_fib_index, const u8 type); + +#endif /* included_sr_mobile_api_h */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |