summaryrefslogtreecommitdiffstats
path: root/src/vpp/api/vpe.api
blob: 3c4c0214ad5cf66e4193bc3d74875fe74c4fb40f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
 * Copyright (c) 2015-2016 Cisco 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.
 */

/** \file

    This file defines vpe control-plane API messages which are generally
    called through a shared memory interface.
*/

option version = "1.7.0";

import "vpp/api/vpe_types.api";

/*
 * Note: API placement cleanup in progress
 * If you're looking for interface APIs, please
 * see .../src/vnet/{interface.api,interface_api.c}
 * IP APIs: see .../src/vnet/ip/{ip.api, ip_api.c}
 * VXLAN APIs: see .../src/vnet/vxlan/{vxlan.api, vxlan_api.c}
 * GENEVE APIs: see .../src/vnet/geneve/{geneve.api, geneve_api.c}
 * LLDP APIs: see .../src/vnet/lldp/{lldp.api, lldp_api.c}
 * AF-PACKET APIs: see ... /vnet/devices/af_packet/{af_packet.api, af_packet_api.c}
 * VHOST-USER APIs: see .../vnet/devices/virtio/{vhost_user.api, vhost_user_api.c}
 * VXLAN GPE APIs: see .../src/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c}
 * GRE APIs: see .../src/vnet/gre/{gre.api, gre_api.c}
 * L2 APIs: see .../src/vnet/l2/{l2.api, l2_api.c}
 * L2TP APIs: see .../src/vnet/l2tp/{l2tp.api, l2tp_api.c}
 * BFD APIs: see .../src/vnet/bfd/{bfd.api, bfd_api.c}
 * IPSEC APIs: see .../src/vnet/ipsec/{ipsec.api, ipsec_api.c}
 * LISP APIs: see .../src/vnet/lisp/{lisp.api, lisp_api.c}
 * LISP-GPE APIs: see .../src/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
 * SESSION APIs: .../vnet/session/{session.api session_api.c}
 * MPLS APIs: see .../src/vnet/mpls/{mpls.api, mpls_api.c}
 * SR APIs: see .../src/vnet/srv6/{sr.api, sr_api.c}
 * CLASSIFY APIs: see ... /src/vnet/classify/{classify.api, classify_api.c}
 * FLOW APIs: see ... /src/vnet/flow/{flow.api, flow_api.c}
 * DHCP APIs: see ... /src/vnet/dhcp/{dhcp.api, dhcp_api.c}
 * COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
 * POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_api.c}
 * BIER APIs: see ... /src/vnet/policer/{bier.api, bier_api.c}.
 * flow APIs: see .../vnet/vnet/flow/{flow.api, flow_api.c}
 */

/** \brief Control ping from client to api server request
    @param client_index - opaque cookie to identify the sender
    @param context - sender context, to match reply w/ request
*/
define control_ping
{
  u32 client_index;
  u32 context;
};

/** \brief Control ping from the client to the server response
    @param client_index - opaque cookie to identify the sender
    @param context - sender context, to match reply w/ request
    @param retval - return code for the request
    @param vpe_pid - the pid of the vpe, returned by the server
*/
define control_ping_reply
{
  u32 context;
  i32 retval;
  u32 client_index;
  u32 vpe_pid;
};

/** \brief show version
    @param client_index - opaque cookie to identify the sender
    @param context - sender context, to match reply w/ request
*/
define show_version
{
  u32 client_index;
  u32 context;
};

/** \brief show version response
    @param context - sender context, to match reply w/ request
    @param retval - return code for the request
    @param program - name of the program (vpe)
    @param version  - version of the program
    @param build_directory - root of the workspace where the program was built
*/
define show_version_reply
{
  u32 context;
  i32 retval;
  string program[32];
  string version[32];
  string build_date[32];
  string build_directory[256];
};

/** \brief Show the current system timestamp.
    @param client_index - opaque cookie to identify the sender
    @param context - sender context, to match reply w/ request
*/
define show_vpe_system_time
{
  u32 client_index;
  u32 context;
};

/** \brief Reply for show vpe system time.
    @param context - sender context which was passed in the request
    @param retval - return value
    @param vpe_system_time - the time in seconds since epoch of the host system.
*/
define show_vpe_system_time_reply
{
  u32 context;
  i32 retval;
  vl_api_timestamp_t vpe_system_time;
};

define log_dump {
  u32 client_index;
  u32 context;
  vl_api_timestamp_t start_timestamp;
};

define log_details {
  u32 context;
  vl_api_timestamp_t timestamp;
  vl_api_log_level_t level;
  string msg_class[32];
  string message[256];
};

/*
 * Local Variables:
 * eval: (c-set-style "gnu")
 * End:
 */