Files
vpp/src/plugins/gtpu/gtpu.api
Ole Troan 9d42087149 VPPAPIGEN: vppapigen replacement in Python PLY.
This is a version of the VPP API generator in Python PLY. It supports
the existing language, and has a plugin architecture for generators.
Currently C and JSON are supported.

Changes:
 - vl_api_version to option version = "major.minor.patch"
 - enum support
 - Added error checking and reporting
 - import support (removed the C pre-processor)
 - services (tying request/reply together)

Version:
 option version = "1.0.0";

Enum:
 enum colours {
   RED,
   BLUE = 50,
 };
 define foo {
  vl_api_colours_t colours;
 };

Services:
 service {
  rpc foo returns foo_reply;
  rpc foo_dump returns stream foo_details;
  rpc want_stats returns want_stats_reply
      events ip4_counters, ip6_counters;
 };

Future planned features:
 - unions
 - bool, text
 - array support (including length)
 - proto3 output plugin
 - Refactor C/C++ generator as a plugin
 - Refactor Java generator as a plugin

Change-Id: Ifa289966c790e1b1a8e2938a91e69331e3a58bdf
Signed-off-by: Ole Troan <ot@cisco.com>
2018-01-23 13:03:53 +00:00

123 lines
3.7 KiB
Plaintext

/*
* Copyright (c) 2017 Intel 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.
*/
option version = "1.0.0";
/** \brief Set or delete an GTPU tunnel
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param is_add - add address if non-zero, else delete
@param is_ipv6 - src_address and dst_address is ipv6 or not
@param src_address - GTPU tunnel's source address.
@param dst_address - GTPU tunnel's destination address.
@param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
@param encap_vrf_id - fib identifier used for outgoing encapsulated packets
@param decap_next_index - the index of the next node if success
@param teid - Local Tunnel Endpoint Identifier
*/
define gtpu_add_del_tunnel
{
u32 client_index;
u32 context;
u8 is_add;
u8 is_ipv6;
u8 src_address[16];
u8 dst_address[16];
u32 mcast_sw_if_index;
u32 encap_vrf_id;
u32 decap_next_index;
u32 teid;
};
/** \brief reply for set or delete an GTPU tunnel
@param context - sender context, to match reply w/ request
@param retval - return code
@param sw_if_index - software index of the interface
*/
define gtpu_add_del_tunnel_reply
{
u32 context;
i32 retval;
u32 sw_if_index;
};
/** \brief Dump GTPU tunnel
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - software index of the interface
*/
define gtpu_tunnel_dump
{
u32 client_index;
u32 context;
u32 sw_if_index;
};
/** \brief dump details of an GTPU tunnel
@param context - sender context, to match reply w/ request
@param sw_if_index - software index of the interface
@param is_ipv6 - src_address and dst_address is ipv6 or not
@param src_address - GTPU tunnel's source address.
@param dst_address - GTPU tunnel's destination address.
@param mcast_sw_if_index - version, O-bit and C-bit (see nsh_packet.h)
@param encap_vrf_id - fib identifier used for outgoing encapsulated packets
@param decap_next_index - the index of the next node if success
@param teid - Local Tunnel Endpoint Identifier
*/
define gtpu_tunnel_details
{
u32 context;
u32 sw_if_index;
u8 is_ipv6;
u8 src_address[16];
u8 dst_address[16];
u32 mcast_sw_if_index;
u32 encap_vrf_id;
u32 decap_next_index;
u32 teid;
};
/** \brief Interface set gtpu-bypass request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - interface used to reach neighbor
@param is_ipv6 - if non-zero, enable ipv6-gtpu-bypass, else ipv4-gtpu-bypass
@param enable - if non-zero enable, else disable
*/
define sw_interface_set_gtpu_bypass
{
u32 client_index;
u32 context;
u32 sw_if_index;
u8 is_ipv6;
u8 enable;
};
/** \brief Interface set gtpu-bypass response
@param context - sender context, to match reply w/ request
@param retval - return code for the request
*/
define sw_interface_set_gtpu_bypass_reply
{
u32 context;
i32 retval;
};
/*
* Local Variables:
* eval: (c-set-style "gnu")
* End:
*/