FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
gtpu.api
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 Intel 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 = "2.0.1";
17 import "vnet/interface_types.api";
18 import "vnet/ip/ip_types.api";
19 
20 /** \brief Create or delete a GTPU tunnel
21  @param client_index - opaque cookie to identify the sender
22  @param context - sender context, to match reply w/ request
23  @param is_add - add address if non-zero, else delete
24  @param src_address - GTPU tunnel's source address.
25  @param dst_address - GTPU tunnel's destination address.
26  @param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
27  @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
28  @param decap_next_index - the index of the next node if success
29  @param teid - Local (rx) Tunnel Endpoint Identifier
30  @param tteid - Remote (tx) Tunnel Endpoint Identifier
31 */
32 define gtpu_add_del_tunnel
33 {
36  bool is_add;
37  vl_api_address_t src_address;
38  vl_api_address_t dst_address;
39  vl_api_interface_index_t mcast_sw_if_index;
44  option vat_help = "src <ip-addr> {dst <ip-addr> | group <mcast-ip-addr> {<intfc> | mcast_sw_if_index <nn>}} teid <nn> [tteid <nn>] [encap-vrf-id <nn>] [decap-next <l2|nn>] [del]";
45 };
46 
47 /** \brief reply for set or delete an GTPU tunnel
48  @param context - sender context, to match reply w/ request
49  @param retval - return code
50  @param sw_if_index - software index of the interface
51 */
52 define gtpu_add_del_tunnel_reply
53 {
56  vl_api_interface_index_t sw_if_index;
57 };
58 
59 /** \brief Update GTPU tunnel TX TEID
60  @param client_index - opaque cookie to identify the sender
61  @param context - sender context, to match reply w/ request
62  @param dst_address - GTPU tunnel's destination address.
63  @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
64  @param teid - Local (rx) Tunnel Endpoint Identifier
65  @param tteid - remote (tx) Tunnel Endpoint Identifier
66 */
67 autoreply define gtpu_tunnel_update_tteid
68 {
71  vl_api_address_t dst_address;
75  option vat_help = "dst <ip-addr> teid <nn> tteid <nn> [encap-vrf-id <nn>]";
76 };
77 
78 /** \brief Dump GTPU tunnel
79  @param client_index - opaque cookie to identify the sender
80  @param context - sender context, to match reply w/ request
81  @param sw_if_index - software index of the interface
82 */
83 define gtpu_tunnel_dump
84 {
87  vl_api_interface_index_t sw_if_index;
88  option vat_help = "[<intfc> | sw_if_index <nn>]";
89 };
90 
91 /** \brief dump details of an GTPU tunnel
92  @param context - sender context, to match reply w/ request
93  @param sw_if_index - software index of the interface
94  @param src_address - GTPU tunnel's source address.
95  @param dst_address - GTPU tunnel's destination address.
96  @param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
97  @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
98  @param decap_next_index - the index of the next node if success
99  @param teid - Local (rx) Tunnel Endpoint Identifier
100  @param tteid - Remote (tx) Tunnel Endpoint Identifier
101 */
102 define gtpu_tunnel_details
103 {
105  vl_api_interface_index_t sw_if_index;
106  vl_api_address_t src_address;
107  vl_api_address_t dst_address;
108  vl_api_interface_index_t mcast_sw_if_index;
113 };
114 
115 /** \brief Interface set gtpu-bypass request
116  @param client_index - opaque cookie to identify the sender
117  @param context - sender context, to match reply w/ request
118  @param sw_if_index - interface used to reach neighbor
119  @param is_ipv6 - if non-zero, enable ipv6-gtpu-bypass, else ipv4-gtpu-bypass
120  @param enable - if non-zero enable, else disable
121 */
122 autoreply define sw_interface_set_gtpu_bypass
123 {
126  vl_api_interface_index_t sw_if_index;
127  bool is_ipv6;
128  bool enable;
129  option vat_help = "<intfc> | sw_if_index <id> [ip4 | ip6] [enable | disable]";
130 };
131 
132 /** \brief Offload gtpu rx request
133  @param client_index - opaque cookie to identify the sender
134  @param context - sender context, to match reply w/ request
135  @param hw_if_index - rx hw interface
136  @param sw_if_index - gtpu interface to offload
137  @param enable - if non-zero enable, else disable
138 */
139 autoreply define gtpu_offload_rx
140 {
146  option vat_help = "hw <intfc> rx <tunnel-name> [del]";
147 };
148 
149 /*
150  * Local Variables:
151  * eval: (c-set-style "gnu")
152  * End:
153  */
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:56
vl_api_address_t src_address
Definition: gtpu.api:37
vl_api_address_t src_address
Definition: gtpu.api:106
vl_api_address_t dst_address
Definition: gtpu.api:71
unsigned char u8
Definition: types.h:56
unsigned int u32
Definition: types.h:88
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:126
vl_api_interface_index_t mcast_sw_if_index
Definition: gtpu.api:39
option version
Definition: gtpu.api:16
vl_api_address_t dst_address
Definition: gtpu.api:107
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:105
signed int i32
Definition: types.h:77
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:87
vl_api_interface_index_t mcast_sw_if_index
Definition: gtpu.api:108
vl_api_address_t dst_address
Definition: gtpu.api:38