FD.io VPP  v21.10.1-2-g0a485f517
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_gtpu_tunnel_dump_t::client_index
u32 client_index
Definition: gtpu.api:85
vl_api_gtpu_tunnel_details_t::encap_vrf_id
u32 encap_vrf_id
Definition: gtpu.api:109
vl_api_gtpu_add_del_tunnel_t::decap_next_index
u32 decap_next_index
Definition: gtpu.api:41
vl_api_gtpu_add_del_tunnel_t::client_index
u32 client_index
Definition: gtpu.api:34
vl_api_gtpu_tunnel_update_tteid_t::client_index
u32 client_index
Definition: gtpu.api:69
vl_api_sw_interface_set_gtpu_bypass_t::context
u32 context
Definition: gtpu.api:125
vl_api_sw_interface_set_gtpu_bypass_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:126
vl_api_gtpu_tunnel_update_tteid_t::vat_help
option vat_help
Definition: gtpu.api:75
vl_api_gtpu_add_del_tunnel_reply_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:56
vl_api_gtpu_offload_rx_t::context
u32 context
Definition: gtpu.api:142
vl_api_gtpu_tunnel_update_tteid_t::teid
u32 teid
Definition: gtpu.api:73
vl_api_gtpu_add_del_tunnel_reply_t
reply for set or delete an GTPU tunnel
Definition: gtpu.api:52
vl_api_gtpu_offload_rx_t
Offload gtpu rx request.
Definition: gtpu.api:139
vl_api_gtpu_tunnel_details_t::teid
u32 teid
Definition: gtpu.api:111
vl_api_gtpu_add_del_tunnel_reply_t::retval
i32 retval
Definition: gtpu.api:55
vl_api_sw_interface_set_gtpu_bypass_t
Interface set gtpu-bypass request.
Definition: gtpu.api:122
vl_api_gtpu_add_del_tunnel_reply_t::context
u32 context
Definition: gtpu.api:54
vl_api_gtpu_tunnel_update_tteid_t::context
u32 context
Definition: gtpu.api:70
version
option version
Definition: gtpu.api:16
i32
signed int i32
Definition: types.h:77
vl_api_gtpu_offload_rx_t::sw_if_index
u32 sw_if_index
Definition: gtpu.api:144
vl_api_gtpu_add_del_tunnel_t::is_add
bool is_add
Definition: gtpu.api:36
vl_api_gtpu_add_del_tunnel_t::mcast_sw_if_index
vl_api_interface_index_t mcast_sw_if_index
Definition: gtpu.api:39
vl_api_gtpu_add_del_tunnel_t::encap_vrf_id
u32 encap_vrf_id
Definition: gtpu.api:40
vl_api_gtpu_tunnel_details_t::context
u32 context
Definition: gtpu.api:104
vl_api_gtpu_add_del_tunnel_t::vat_help
option vat_help
Definition: gtpu.api:44
vl_api_gtpu_add_del_tunnel_t::tteid
u32 tteid
Definition: gtpu.api:43
vl_api_gtpu_tunnel_details_t::tteid
u32 tteid
Definition: gtpu.api:112
vl_api_gtpu_tunnel_update_tteid_t::tteid
u32 tteid
Definition: gtpu.api:74
vl_api_gtpu_tunnel_details_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:105
vl_api_sw_interface_set_gtpu_bypass_t::is_ipv6
bool is_ipv6
Definition: gtpu.api:127
vl_api_gtpu_add_del_tunnel_t::context
u32 context
Definition: gtpu.api:35
vl_api_gtpu_tunnel_dump_t::context
u32 context
Definition: gtpu.api:86
vl_api_gtpu_tunnel_details_t::dst_address
vl_api_address_t dst_address
Definition: gtpu.api:107
vl_api_sw_interface_set_gtpu_bypass_t::vat_help
option vat_help
Definition: gtpu.api:129
vl_api_gtpu_offload_rx_t::hw_if_index
u32 hw_if_index
Definition: gtpu.api:143
vl_api_gtpu_offload_rx_t::client_index
u32 client_index
Definition: gtpu.api:141
vl_api_gtpu_add_del_tunnel_t::teid
u32 teid
Definition: gtpu.api:42
u32
unsigned int u32
Definition: types.h:88
vl_api_gtpu_offload_rx_t::vat_help
option vat_help
Definition: gtpu.api:146
vl_api_sw_interface_set_gtpu_bypass_t::enable
bool enable
Definition: gtpu.api:128
vl_api_gtpu_tunnel_update_tteid_t::dst_address
vl_api_address_t dst_address
Definition: gtpu.api:71
vl_api_gtpu_offload_rx_t::enable
u8 enable
Definition: gtpu.api:145
vl_api_gtpu_tunnel_update_tteid_t::encap_vrf_id
u32 encap_vrf_id
Definition: gtpu.api:72
vl_api_gtpu_tunnel_dump_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: gtpu.api:87
vl_api_gtpu_tunnel_details_t
dump details of an GTPU tunnel
Definition: gtpu.api:102
u8
unsigned char u8
Definition: types.h:56
vl_api_gtpu_tunnel_update_tteid_t
Update GTPU tunnel TX TEID.
Definition: gtpu.api:67
vl_api_gtpu_add_del_tunnel_t
Create or delete a GTPU tunnel.
Definition: gtpu.api:32
vl_api_gtpu_tunnel_dump_t
Dump GTPU tunnel.
Definition: gtpu.api:83
vl_api_gtpu_add_del_tunnel_t::src_address
vl_api_address_t src_address
Definition: gtpu.api:37
vl_api_gtpu_tunnel_details_t::decap_next_index
u32 decap_next_index
Definition: gtpu.api:110
vl_api_gtpu_tunnel_details_t::src_address
vl_api_address_t src_address
Definition: gtpu.api:106
vl_api_gtpu_tunnel_details_t::mcast_sw_if_index
vl_api_interface_index_t mcast_sw_if_index
Definition: gtpu.api:108
vl_api_sw_interface_set_gtpu_bypass_t::client_index
u32 client_index
Definition: gtpu.api:124
vl_api_gtpu_add_del_tunnel_t::dst_address
vl_api_address_t dst_address
Definition: gtpu.api:38
vl_api_gtpu_tunnel_dump_t::vat_help
option vat_help
Definition: gtpu.api:88