FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
graph.api
Go to the documentation of this file.
1
/* Hey Emacs use -*- mode: C -*- */
2
/*
3
* Copyright 2020 Rubicon Communications, LLC.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at:
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
option
version
=
"1.0.0"
;
19
20
21
enum
node_flag
:
u32
22
{
23
NODE_FLAG_FRAME_NO_FREE_AFTER_DISPATCH
= 0x0001,
24
NODE_FLAG_IS_OUTPUT
= 0x0002,
25
NODE_FLAG_IS_DROP
= 0x0004,
26
NODE_FLAG_IS_PUNT
= 0x0008,
27
NODE_FLAG_IS_HANDOFF
= 0x0010,
28
NODE_FLAG_TRACE
= 0x0020,
29
NODE_FLAG_SWITCH_FROM_INTERRUPT_TO_POLLING_MODE
=0x0040,
30
NODE_FLAG_SWITCH_FROM_POLLING_TO_INTERRUPT_MODE
=0x0080,
31
NODE_FLAG_TRACE_SUPPORTED
= 0x0100,
32
};
33
34
35
service
{
36
rpc graph_node_get returns graph_node_get_reply
37
stream graph_node_details;
38
};
39
40
/** \brief graph_node_get - Get nodes of the packet processing graph
41
In order:
42
if index != ~0, dump node with given index
43
if index == ~0 and name[0] != 0, dump named node
44
if index == ~0 and name[0] == 0 and flag != 0, dump flagged nodes
45
otherwise when no selection criteria given, dump all nodes.
46
@param client_index - opaque cookie to identify the sender
47
@param context - sender context, to match reply w/ request
48
@param cursor - Starting iterator value, ~0 for initial request
49
@param index - index of a specific node, or ~0 for all
50
@param name - name of a specific node, or 0 for all
51
@param flags - NODE_FLAG_* values
52
@param flags - If true, dump details will contain next nodes out-arcs
53
*/
54
define graph_node_get
55
{
56
u32
client_index
;
57
u32
context
;
58
u32
cursor
;
59
u32
index
;
60
string
name
[64];
/* GRAPH_NODE_LEN */
61
vl_api_node_flag_t
flags
;
/* NODE_FLAG_* bits */
62
bool
want_arcs
;
/* Include node out-arcs? */
63
option vat_help =
"graph_node_dump [start <cursor>] [node_index <index>]|[node_name <name>]|[flags]"
;
64
};
65
66
define graph_node_get_reply
67
{
68
u32
context
;
69
i32
retval
;
70
u32
cursor
;
71
};
72
73
/** \brief Details for each graph node
74
@param index - index of the node
75
@param name - name of the node
76
@param flags - NODE_FLAG_* values
77
@param n_arcs - If requested, the number of out-arcs to other nodes
78
@param arcs - If requested, the set of out-arc next-node-indices
79
*/
80
define graph_node_details
81
{
82
u32
context
;
83
u32
index
;
84
string
name
[64];
/* GRAPH_NODE_LEN */
85
vl_api_node_flag_t
flags
;
86
u32
n_arcs
;
87
u32
arcs_out[n_arcs];
88
};
89
90
91
/*
92
* Local Variables:
93
* eval: (c-set-style "gnu")
94
* End:
95
*/
vl_api_graph_node_get_t::client_index
u32 client_index
Definition:
graph.api:56
vl_api_graph_node_details_t::index
u32 index
Definition:
graph.api:83
vl_api_graph_node_get_reply_t::cursor
u32 cursor
Definition:
graph.api:70
vl_api_graph_node_details_t
Details for each graph node.
Definition:
graph.api:80
vl_api_graph_node_details_t::flags
vl_api_node_flag_t flags
Definition:
graph.api:85
name
string name[64]
Definition:
fib.api:25
vl_api_graph_node_get_reply_t::context
u32 context
Definition:
graph.api:68
NODE_FLAG_TRACE_SUPPORTED
@ NODE_FLAG_TRACE_SUPPORTED
Definition:
graph.api:31
i32
signed int i32
Definition:
types.h:77
vl_api_graph_node_get_reply_t::retval
i32 retval
Definition:
graph.api:69
vl_api_graph_node_get_reply_t
Definition:
graph.api:66
node_flag
node_flag
Definition:
graph.api:21
vl_api_graph_node_get_t::want_arcs
bool want_arcs
Definition:
graph.api:62
vl_api_graph_node_get_t::index
u32 index
Definition:
graph.api:59
NODE_FLAG_IS_OUTPUT
@ NODE_FLAG_IS_OUTPUT
Definition:
graph.api:24
vl_api_graph_node_get_t
graph_node_get - Get nodes of the packet processing graph In order: if index != ~0,...
Definition:
graph.api:54
vl_api_graph_node_get_t::cursor
u32 cursor
Definition:
graph.api:58
NODE_FLAG_SWITCH_FROM_POLLING_TO_INTERRUPT_MODE
@ NODE_FLAG_SWITCH_FROM_POLLING_TO_INTERRUPT_MODE
Definition:
graph.api:30
NODE_FLAG_TRACE
@ NODE_FLAG_TRACE
Definition:
graph.api:28
vl_api_graph_node_details_t::arcs_out
u32 arcs_out[n_arcs]
Definition:
graph.api:87
NODE_FLAG_IS_PUNT
@ NODE_FLAG_IS_PUNT
Definition:
graph.api:26
service
service
Definition:
graph.api:35
vl_api_graph_node_details_t::n_arcs
u32 n_arcs
Definition:
graph.api:86
u32
unsigned int u32
Definition:
types.h:88
NODE_FLAG_IS_HANDOFF
@ NODE_FLAG_IS_HANDOFF
Definition:
graph.api:27
NODE_FLAG_IS_DROP
@ NODE_FLAG_IS_DROP
Definition:
graph.api:25
vl_api_graph_node_get_t::flags
vl_api_node_flag_t flags
Definition:
graph.api:61
vl_api_graph_node_details_t::name
string name[64]
Definition:
graph.api:84
NODE_FLAG_FRAME_NO_FREE_AFTER_DISPATCH
@ NODE_FLAG_FRAME_NO_FREE_AFTER_DISPATCH
Definition:
graph.api:23
vl_api_graph_node_get_t::name
string name[64]
Definition:
graph.api:60
vl_api_graph_node_details_t::context
u32 context
Definition:
graph.api:82
vl_api_graph_node_get_t::context
u32 context
Definition:
graph.api:57
vl_api_graph_node_get_t::vat_help
option vat_help
Definition:
graph.api:63
NODE_FLAG_SWITCH_FROM_INTERRUPT_TO_POLLING_MODE
@ NODE_FLAG_SWITCH_FROM_INTERRUPT_TO_POLLING_MODE
Definition:
graph.api:29
version
option version
Definition:
graph.api:18
src
plugins
tracedump
graph.api
Generated on Sat Jan 8 2022 10:35:53 for FD.io VPP by
1.8.17