blob: 4f531fb1f5e3adac0131e95b7e56a795a02db479 [file] [log] [blame]
Neale Rannsb8d44812017-11-10 06:53:54 -08001/*
2 * Copyright (c) 2015-2016 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/** \file
17
18 This file defines packet-generator interface APIs.
19*/
20
Jakub Grajciardb863292020-01-30 14:14:15 +010021option version = "2.0.0";
22
23import "vnet/interface_types.api";
Neale Rannsb8d44812017-11-10 06:53:54 -080024
Neale Ranns6197cb72021-06-03 14:43:21 +000025enum pg_interface_mode : u8
26{
27 PG_API_MODE_ETHERNET = 0,
28 PG_API_MODE_IP4,
29 PG_API_MODE_IP6,
30};
31
Neale Rannsb8d44812017-11-10 06:53:54 -080032/** \brief PacketGenerator create interface request
33 @param client_index - opaque cookie to identify the sender
34 @param context - sender context, to match reply w/ request
35 @param interface_id - interface index
Mohsin Kazmi0cf52822020-06-10 12:35:05 +020036 @param gso_enabled - enable gso on this interface
Mohsin Kazmi22e9cfd2019-07-23 11:54:48 +020037 @param gso_size - gso size on this interface
Neale Rannsb8d44812017-11-10 06:53:54 -080038*/
39define pg_create_interface
40{
Ondrej Fabrybe567612023-04-27 00:00:33 +020041 option deprecated;
42
Neale Rannsb8d44812017-11-10 06:53:54 -080043 u32 client_index;
44 u32 context;
Jakub Grajciardb863292020-01-30 14:14:15 +010045 vl_api_interface_index_t interface_id;
46 bool gso_enabled;
Mohsin Kazmi22e9cfd2019-07-23 11:54:48 +020047 u32 gso_size;
Neale Rannsb8d44812017-11-10 06:53:54 -080048};
Neale Ranns6197cb72021-06-03 14:43:21 +000049define pg_create_interface_v2
50{
51 u32 client_index;
52 u32 context;
53 vl_api_interface_index_t interface_id;
54 bool gso_enabled;
55 u32 gso_size;
56 vl_api_pg_interface_mode_t mode;
57};
Neale Rannsb8d44812017-11-10 06:53:54 -080058
59/** \brief PacketGenerator create interface response
60 @param context - sender context, to match reply w/ request
61 @param retval - return value for request
62*/
63define pg_create_interface_reply
64{
Ondrej Fabrybe567612023-04-27 00:00:33 +020065 option deprecated;
66
Neale Rannsb8d44812017-11-10 06:53:54 -080067 u32 context;
68 i32 retval;
Jakub Grajciardb863292020-01-30 14:14:15 +010069 vl_api_interface_index_t sw_if_index;
Neale Rannsb8d44812017-11-10 06:53:54 -080070};
Neale Ranns6197cb72021-06-03 14:43:21 +000071define pg_create_interface_v2_reply
72{
73 u32 context;
74 i32 retval;
75 vl_api_interface_index_t sw_if_index;
76};
Neale Rannsb8d44812017-11-10 06:53:54 -080077
Mohsin Kazmif382b062020-08-11 15:00:44 +020078/** \brief PacketGenerator interface enable/disable packet coalesce
79 @param client_index - opaque cookie to identify the sender
80 @param context - sender context, to match reply w/ request
81 @param interface_id - interface index
82 @param coalesce_enabled - enable/disable packet coalesce on this interface
83*/
84autoreply define pg_interface_enable_disable_coalesce
85{
86 u32 client_index;
87 u32 context;
88 vl_api_interface_index_t sw_if_index;
89 bool coalesce_enabled;
90 option status="in_progress";
91};
92
Neale Rannsb8d44812017-11-10 06:53:54 -080093/** \brief PacketGenerator capture packets on given interface request
94 @param client_index - opaque cookie to identify the sender
95 @param context - sender context, to match reply w/ request
96 @param interface_id - pg interface index
97 @param is_enabled - 1 if enabling streams, 0 if disabling
98 @param count - number of packets to be captured
Jakub Grajciardb863292020-01-30 14:14:15 +010099 @param pcap_file_name - pacp file name to store captured packets
Neale Rannsb8d44812017-11-10 06:53:54 -0800100*/
101autoreply define pg_capture
102{
103 u32 client_index;
104 u32 context;
Jakub Grajciardb863292020-01-30 14:14:15 +0100105 vl_api_interface_index_t interface_id;
106 bool is_enabled [default=true];
Neale Rannsb8d44812017-11-10 06:53:54 -0800107 u32 count;
Jakub Grajciardb863292020-01-30 14:14:15 +0100108 string pcap_file_name[];
Neale Rannsb8d44812017-11-10 06:53:54 -0800109};
110
111/** \brief Enable / disable packet generator request
112 @param client_index - opaque cookie to identify the sender
113 @param context - sender context, to match reply w/ request
114 @param is_enabled - 1 if enabling streams, 0 if disabling
Jakub Grajciardb863292020-01-30 14:14:15 +0100115 @param stream_name - stream name to be enable/disabled, if not specified handle all streams
Neale Rannsb8d44812017-11-10 06:53:54 -0800116*/
117autoreply define pg_enable_disable
118{
119 u32 client_index;
120 u32 context;
Jakub Grajciardb863292020-01-30 14:14:15 +0100121 bool is_enabled [default=true];
122 string stream_name[];
Neale Rannsb8d44812017-11-10 06:53:54 -0800123};
124
125/*
126 * Local Variables:
127 * eval: (c-set-style "gnu")
128 * End:
129 */