srv6-mobile: Implement SRv6 mobile API funcs
[vpp.git] / src / plugins / srv6-mobile / sr_mobile.api
1 /*
2  * Copyright (c) 2022 BBSakura Networks Inc and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 option version = "0.1.0";
17
18 import "vnet/interface_types.api";
19 import "vnet/ip/ip_types.api";
20 import "vnet/srv6/sr_types.api";
21 import "vnet/srv6/sr.api";
22 import "plugins/srv6-mobile/sr_mobile_types.api";
23
24 /** \brief IPv6 SR for Mobile LocalSID add/del request
25   @param client_index - opaque cookie to identify the sender
26   @param context - sender context, to match reply w/ request
27   @param is_del - Boolean of whether its a delete instruction
28   @param localsid_prefix - IPv6 address of the localsid
29   @param behavior - the behavior of the SR policy.
30   @param fib_table - FIB table in which we should install the localsid entry
31   @param local_fib_table - lookup and forward GTP-U packet based on outer IP destination address. optional
32   @param drop_in - that reconverts to GTPv1 mode. optional
33   @param nhtype - next-header type. optional.
34   @param sr_prefix - v6 src ip encoding prefix.optional.
35   @param v4src_position - bit position where IPv4 src address embedded. optional.
36 */
37 autoreply define sr_mobile_localsid_add_del
38 {
39   u32 client_index;
40   u32 context;
41   bool is_del [default=false];
42   vl_api_ip6_prefix_t localsid_prefix;
43   string behavior[64];
44   u32 fib_table;
45   u32 local_fib_table;
46   bool drop_in;
47   vl_api_sr_mobile_nhtype_t nhtype;
48   vl_api_ip6_prefix_t sr_prefix;
49   vl_api_ip4_address_t v4src_addr;
50   u32 v4src_position;
51 };
52
53 /** \brief IPv6 SR for Mobile policy add
54   @param client_index - opaque cookie to identify the sender
55   @param context - sender context, to match reply w/ request
56   @param bsid - the bindingSID of the SR Policy
57   @param sr_prefix - v6 dst ip encoding prefix. optional
58   @param v6src_position - v6 src prefix. optional
59   @param behavior - the behavior of the SR policy.
60   @param fib_table - the VRF where to install the FIB entry for the BSID
61   @param encap_src is a encaps IPv6 source addr. optional
62   @param local_fib_table - lookup and forward GTP-U packet based on outer IP destination address. optional
63   @param drop_in - that reconverts to GTPv1 mode. optional
64   @param nhtype - next-header type.
65 */
66 autoreply define sr_mobile_policy_add
67 {
68   u32 client_index;
69   u32 context;
70   vl_api_ip6_address_t bsid_addr;
71   vl_api_ip6_prefix_t sr_prefix;
72   vl_api_ip6_prefix_t v6src_prefix;
73   string behavior[64];
74   u32 fib_table;
75   u32 local_fib_table;
76   vl_api_ip6_address_t encap_src;
77   bool drop_in;
78   vl_api_sr_mobile_nhtype_t nhtype;
79 };