55ba03904d42919ea6bf406e5de189780b16e45a
[vpp.git] / src / plugins / gtpu / gtpu.api
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 /** \brief Set or delete an GTPU tunnel
17     @param client_index - opaque cookie to identify the sender
18     @param context - sender context, to match reply w/ request
19     @param is_add - add address if non-zero, else delete
20     @param is_ipv6 - src_address and dst_address is ipv6 or not
21     @param src_address - GTPU tunnel's source address.
22     @param dst_address - GTPU tunnel's destination address.
23     @param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
24     @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
25     @param decap_next_index - the index of the next node if success
26     @param teid - Local Tunnel Endpoint Identifier
27 */
28 define gtpu_add_del_tunnel
29 {
30   u32 client_index;
31   u32 context;
32   u8 is_add;
33   u8 is_ipv6;
34   u8 src_address[16];
35   u8 dst_address[16];
36   u32 mcast_sw_if_index;
37   u32 encap_vrf_id;
38   u32 decap_next_index;
39   u32 teid;
40 };
41
42 /** \brief reply for set or delete an GTPU tunnel
43     @param context - sender context, to match reply w/ request
44     @param retval - return code
45     @param sw_if_index - software index of the interface
46 */
47 define gtpu_add_del_tunnel_reply
48 {
49   u32 context;
50   i32 retval;
51   u32 sw_if_index;
52 };
53
54 /** \brief Dump GTPU tunnel
55     @param client_index - opaque cookie to identify the sender
56     @param context - sender context, to match reply w/ request
57     @param sw_if_index - software index of the interface
58 */
59 define gtpu_tunnel_dump
60 {
61   u32 client_index;
62   u32 context;
63   u32 sw_if_index;
64 };
65
66 /** \brief dump details of an GTPU tunnel
67     @param context - sender context, to match reply w/ request
68     @param sw_if_index - software index of the interface
69     @param is_ipv6 - src_address and dst_address is ipv6 or not
70     @param src_address - GTPU tunnel's source address.
71     @param dst_address - GTPU tunnel's destination address.
72     @param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
73     @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
74     @param decap_next_index - the index of the next node if success
75     @param teid - Local Tunnel Endpoint Identifier
76 */
77 define gtpu_tunnel_details
78 {
79   u32 context;
80   u32 sw_if_index;
81   u8 is_ipv6;
82   u8 src_address[16];
83   u8 dst_address[16];
84   u32 mcast_sw_if_index;
85   u32 encap_vrf_id;
86   u32 decap_next_index;
87   u32 teid;
88 };
89
90 /** \brief Interface set gtpu-bypass request
91     @param client_index - opaque cookie to identify the sender
92     @param context - sender context, to match reply w/ request
93     @param sw_if_index - interface used to reach neighbor
94     @param is_ipv6 - if non-zero, enable ipv6-gtpu-bypass, else ipv4-gtpu-bypass
95     @param enable - if non-zero enable, else disable
96 */
97 define sw_interface_set_gtpu_bypass
98 {
99   u32 client_index;
100   u32 context;
101   u32 sw_if_index;
102   u8 is_ipv6;
103   u8 enable;
104 };
105
106 /** \brief Interface set gtpu-bypass response
107     @param context - sender context, to match reply w/ request
108     @param retval - return code for the request
109 */
110 define sw_interface_set_gtpu_bypass_reply
111 {
112   u32 context;
113   i32 retval;
114 };
115
116 /*
117  * Local Variables:
118  * eval: (c-set-style "gnu")
119  * End:
120  */