FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
l3xc.api
Go to the documentation of this file.
1 /* Hey Emacs use -*- mode: C -*- */
2 /*
3  * Copyright (c) 2016 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /** \file
18  This file defines the vpp control-plane API messages
19  used to control the L3XC plugin
20 */
21 
22 option version = "1.0.1";
23 
24 import "vnet/fib/fib_types.api";
25 import "vnet/interface_types.api";
26 
27 /** \brief Get the plugin version
28  @param client_index - opaque cookie to identify the sender
29  @param context - sender context, to match reply w/ request
30 */
31 define l3xc_plugin_get_version
32 {
35 };
36 
37 /** \brief Reply to get the plugin version
38  @param context - returned sender context, to match reply w/ request
39  @param major - Incremented every time a known breaking behavior change is introduced
40  @param minor - Incremented with small changes, may be used to avoid buggy versions
41 */
42 define l3xc_plugin_get_version_reply
43 {
47 };
48 
49 /** \brief A description of an L3XC policy
50  @param input interface of the x-connect
51  @param n_paths Number of paths
52  @param paths The set of forwarding paths.
53  */
54 typedef l3xc
55 {
56  vl_api_interface_index_t sw_if_index;
57  bool is_ip6;
59  vl_api_fib_path_t paths[n_paths];
60 };
61 
63 {
66  vl_api_l3xc_t l3xc;
67 };
68 define l3xc_update_reply
69 {
73 };
74 
75 
76 autoreply define l3xc_del
77 {
80  vl_api_interface_index_t sw_if_index;
81  bool is_ip6;
82 };
83 
84 /** \brief Dump all L3XC policies
85  */
86 define l3xc_dump
87 {
90  vl_api_interface_index_t sw_if_index;
91 };
92 
93 /** \brief description returned in the dump
94  */
95 define l3xc_details
96 {
98  vl_api_l3xc_t l3xc;
99 };
vl_api_l3xc_plugin_get_version_t::client_index
u32 client_index
Definition: l3xc.api:33
vl_api_l3xc_dump_t::client_index
u32 client_index
Definition: l3xc.api:88
vl_api_l3xc_update_reply_t::retval
i32 retval
Definition: l3xc.api:71
is_ip6
bool is_ip6
Definition: l3xc.api:57
vl_api_l3xc_dump_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: l3xc.api:90
vl_api_l3xc_del_t::client_index
u32 client_index
Definition: l3xc.api:78
vl_api_l3xc_del_t::is_ip6
bool is_ip6
Definition: l3xc.api:81
vl_api_l3xc_plugin_get_version_t::context
u32 context
Definition: l3xc.api:34
vl_api_l3xc_plugin_get_version_t
Get the plugin version.
Definition: l3xc.api:31
vl_api_l3xc_del_t::context
u32 context
Definition: l3xc.api:79
i32
signed int i32
Definition: types.h:77
vl_api_l3xc_del_t
Definition: l3xc.api:76
vl_api_l3xc_update_reply_t
Definition: l3xc.api:68
vl_api_l3xc_details_t
description returned in the dump
Definition: l3xc.api:95
vl_api_l3xc_plugin_get_version_reply_t::minor
u32 minor
Definition: l3xc.api:46
vl_api_l3xc_dump_t
Dump all L3XC policies.
Definition: l3xc.api:86
vl_api_l3xc_dump_t::context
u32 context
Definition: l3xc.api:89
version
option version
Definition: l3xc.api:22
n_paths
u8 n_paths
Definition: l3xc.api:58
vl_api_l3xc_update_reply_t::stats_index
u32 stats_index
Definition: l3xc.api:72
vl_api_l3xc_plugin_get_version_reply_t::major
u32 major
Definition: l3xc.api:45
vl_api_l3xc_details_t::context
u32 context
Definition: l3xc.api:97
l3xc
typedef l3xc
A description of an L3XC policy.
Definition: l3xc.api:55
vl_api_l3xc_details_t::l3xc
vl_api_l3xc_t l3xc
Definition: l3xc.api:98
l3xc_update
int l3xc_update(u32 sw_if_index, u8 is_ip6, const fib_route_path_t *rpaths)
Create or update an L3XC Policy.
Definition: l3xc.c:83
u32
unsigned int u32
Definition: types.h:88
vl_api_l3xc_plugin_get_version_reply_t
Reply to get the plugin version.
Definition: l3xc.api:42
vl_api_l3xc_update_reply_t::context
u32 context
Definition: l3xc.api:70
vl_api_l3xc_update_t
Definition: l3xc.api:62
vl_api_l3xc_del_t::sw_if_index
vl_api_interface_index_t sw_if_index
Definition: l3xc.api:80
vl_api_l3xc_plugin_get_version_reply_t::context
u32 context
Definition: l3xc.api:44
paths
vl_api_fib_path_t paths[n_paths]
Definition: l3xc.api:59
u8
unsigned char u8
Definition: types.h:56
vl_api_l3xc_update_t::context
u32 context
Definition: l3xc.api:65
sw_if_index
vl_api_interface_index_t sw_if_index
Definition: wireguard.api:34
vl_api_l3xc_update_t::client_index
u32 client_index
Definition: l3xc.api:64
vl_api_l3xc_update_t::l3xc
vl_api_l3xc_t l3xc
Definition: l3xc.api:66