FD.io VPP
v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
svs.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
/**
18
* @file
19
* This file defines the vpp control-plane API messages
20
* used to control the Source VRF select (SVS) plugin
21
*/
22
23
option
version
=
"1.0.0"
;
24
import
"vnet/ip/ip_types.api"
;
25
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 svs_plugin_get_version
32
{
33
u32
client_index
;
34
u32
context
;
35
};
36
37
/**
38
* @brief Reply to get the plugin version
39
* @param context - returned sender context, to match reply w/ request
40
* @param major - Incremented every time a known breaking behavior change is introduced
41
* @param minor - Incremented with small changes, may be used to avoid buggy versions
42
*/
43
define svs_plugin_get_version_reply
44
{
45
u32
context
;
46
u32
major
;
47
u32
minor
;
48
};
49
50
/**
51
* @brief Add a table in which to add routes that will match against source
52
* addresses
53
* @param client_index - opaque cookie to identify the sender
54
* @param context - sender context, to match reply w/ request
55
* @param af - Address Family
56
* @param table_id - User provided ID for the table
57
* @param is_add - add or delete
58
*/
59
autoreply define svs_table_add_del
60
{
61
u32
client_index
;
62
u32
context
;
63
u8
is_add
;
64
vl_api_address_family_t
af
;
65
u32
table_id
;
66
};
67
68
/**
69
* @brief Add a route into the source address matching table
70
* @param client_index - opaque cookie to identify the sender
71
* @param context - sender context, to match reply w/ request
72
* @param prefix - prefix
73
* @param table_id - The SVS table (from svs_table_add_del)
74
* @param source_table_id - This is the table ID that will be used for
75
* the subsequent lookup of the packet. The V in SVS.
76
* this table must exist (from e.g. ip_table_add_del)
77
*/
78
autoreply define svs_route_add_del
79
{
80
u32
client_index
;
81
u32
context
;
82
u8
is_add
;
83
vl_api_prefix_t
prefix
;
84
u32
table_id
;
85
u32
source_table_id
;
86
};
87
88
/**
89
* @brief Enable SVS on a given interface by using the given table to match
90
* RX'd packets' source addresses
91
* @param client_index - opaque cookie to identify the sender
92
* @param context - sender context, to match reply w/ request
93
* @param af - Address Family
94
* @param table_id - The SVS table (from svs_table_add_del)
95
* @param sw_if_index - Interface
96
*/
97
autoreply define svs_enable_disable
98
{
99
u32
client_index
;
100
u32
context
;
101
u8
is_enable
;
102
vl_api_address_family_t
af
;
103
u32
table_id
;
104
u32
sw_if_index
;
105
};
106
107
/**
108
* @brief Dump the SVS table mappings of table_id to interface
109
* To see the routes added to a given table use ip_fib_dump()
110
*/
111
define svs_dump
112
{
113
u32
client_index
;
114
u32
context
;
115
};
116
117
/**
118
* @brief SVS table-id to interface mapping
119
* @param context - sender context, to match reply w/ request
120
* @param af - Address Family
121
* @param table_id - The SVS table (from svs_table_add_del)
122
* @param sw_if_index - Interface
123
*/
124
define svs_details
125
{
126
u32
context
;
127
u32
table_id
;
128
u32
sw_if_index
;
129
vl_api_address_family_t
af
;
130
};
131
vl_api_svs_route_add_del_t::is_add
u8 is_add
Definition:
svs.api:82
vl_api_svs_details_t::af
vl_api_address_family_t af
Definition:
svs.api:129
vl_api_svs_plugin_get_version_t::context
u32 context
Definition:
svs.api:34
vl_api_svs_table_add_del_t::client_index
u32 client_index
Definition:
svs.api:61
vl_api_svs_plugin_get_version_reply_t::major
u32 major
Definition:
svs.api:46
vl_api_svs_plugin_get_version_t::client_index
u32 client_index
Definition:
svs.api:33
vl_api_svs_route_add_del_t::source_table_id
u32 source_table_id
Definition:
svs.api:85
u8
unsigned char u8
Definition:
types.h:56
vl_api_svs_table_add_del_t::table_id
u32 table_id
Definition:
svs.api:65
vl_api_svs_route_add_del_t::context
u32 context
Definition:
svs.api:81
vl_api_svs_table_add_del_t::context
u32 context
Definition:
svs.api:62
vl_api_svs_route_add_del_t::prefix
vl_api_prefix_t prefix
Definition:
svs.api:83
vl_api_svs_details_t::context
u32 context
Definition:
svs.api:126
u32
unsigned int u32
Definition:
types.h:88
vl_api_svs_enable_disable_t::context
u32 context
Definition:
svs.api:100
version
option version
Definition:
svs.api:23
vl_api_svs_route_add_del_t::client_index
u32 client_index
Definition:
svs.api:80
vl_api_svs_dump_t::context
u32 context
Definition:
svs.api:114
vl_api_svs_route_add_del_t::table_id
u32 table_id
Definition:
svs.api:84
vl_api_svs_dump_t::client_index
u32 client_index
Definition:
svs.api:113
vl_api_svs_enable_disable_t::af
vl_api_address_family_t af
Definition:
svs.api:102
vl_api_svs_details_t::table_id
u32 table_id
Definition:
svs.api:127
vl_api_svs_enable_disable_t::is_enable
u8 is_enable
Definition:
svs.api:101
vl_api_svs_table_add_del_t::is_add
u8 is_add
Definition:
svs.api:63
vl_api_svs_plugin_get_version_reply_t::context
u32 context
Definition:
svs.api:45
vl_api_svs_plugin_get_version_reply_t::minor
u32 minor
Definition:
svs.api:47
vl_api_svs_details_t::sw_if_index
u32 sw_if_index
Definition:
svs.api:128
vl_api_svs_enable_disable_t::sw_if_index
u32 sw_if_index
Definition:
svs.api:104
vl_api_svs_enable_disable_t::client_index
u32 client_index
Definition:
svs.api:99
vl_api_svs_table_add_del_t::af
vl_api_address_family_t af
Definition:
svs.api:64
vl_api_svs_enable_disable_t::table_id
u32 table_id
Definition:
svs.api:103
src
plugins
svs
svs.api
Generated on Mon Jun 29 2020 12:02:27 for FD.io VPP by
1.8.13