summaryrefslogtreecommitdiffstats
path: root/src/vnet/devices/af_packet
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/devices/af_packet')
-rw-r--r--src/vnet/devices/af_packet/af_packet.api27
-rw-r--r--src/vnet/devices/af_packet/af_packet.c24
-rw-r--r--src/vnet/devices/af_packet/af_packet_api.c2
3 files changed, 29 insertions, 24 deletions
diff --git a/src/vnet/devices/af_packet/af_packet.api b/src/vnet/devices/af_packet/af_packet.api
index 1399011e870..a7a25e4249e 100644
--- a/src/vnet/devices/af_packet/af_packet.api
+++ b/src/vnet/devices/af_packet/af_packet.api
@@ -13,23 +13,26 @@
* limitations under the License.
*/
-option version = "1.0.0";
+option version = "2.0.0";
+
+import "vnet/interface_types.api";
+import "vnet/ethernet/ethernet_types.api";
/** \brief Create host-interface
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
- @param host_if_name - interface name
@param hw_addr - interface MAC
@param use_random_hw_addr - use random generated MAC
+ @param host_if_name - interface name
*/
define af_packet_create
{
u32 client_index;
u32 context;
- u8 host_if_name[64];
- u8 hw_addr[6];
- u8 use_random_hw_addr;
+ vl_api_mac_address_t hw_addr;
+ bool use_random_hw_addr;
+ string host_if_name[64];
};
/** \brief Create host-interface response
@@ -40,7 +43,7 @@ define af_packet_create_reply
{
u32 context;
i32 retval;
- u32 sw_if_index;
+ vl_api_interface_index_t sw_if_index;
};
/** \brief Delete host-interface
@@ -53,7 +56,7 @@ autoreply define af_packet_delete
u32 client_index;
u32 context;
- u8 host_if_name[64];
+ string host_if_name[64];
};
/** \brief Set l4 offload ckecksum calculation
@@ -64,9 +67,9 @@ autoreply define af_packet_set_l4_cksum_offload
{
u32 client_index;
u32 context;
-
- u8 sw_if_index;
- u8 set;
+
+ vl_api_interface_index_t sw_if_index;
+ bool set;
};
/** \brief Dump af_packet interfaces request */
@@ -83,8 +86,8 @@ define af_packet_dump
define af_packet_details
{
u32 context;
- u32 sw_if_index;
- u8 host_if_name[64];
+ vl_api_interface_index_t sw_if_index;
+ string host_if_name[64];
};
/*
diff --git a/src/vnet/devices/af_packet/af_packet.c b/src/vnet/devices/af_packet/af_packet.c
index 871b7bfa427..22ddf4ecd11 100644
--- a/src/vnet/devices/af_packet/af_packet.c
+++ b/src/vnet/devices/af_packet/af_packet.c
@@ -505,17 +505,19 @@ af_packet_dump_ifs (af_packet_if_detail_t ** out_af_packet_ifs)
af_packet_if_detail_t *r_af_packet_ifs = NULL;
af_packet_if_detail_t *af_packet_if = NULL;
- vec_foreach (apif, apm->interfaces)
- {
- vec_add2 (r_af_packet_ifs, af_packet_if, 1);
- af_packet_if->sw_if_index = apif->sw_if_index;
- if (apif->host_if_name)
- {
- clib_memcpy (af_packet_if->host_if_name, apif->host_if_name,
- MIN (ARRAY_LEN (af_packet_if->host_if_name) - 1,
- strlen ((const char *) apif->host_if_name)));
- }
- }
+ /* *INDENT-OFF* */
+ pool_foreach (apif, apm->interfaces,
+ ({
+ vec_add2 (r_af_packet_ifs, af_packet_if, 1);
+ af_packet_if->sw_if_index = apif->sw_if_index;
+ if (apif->host_if_name)
+ {
+ clib_memcpy (af_packet_if->host_if_name, apif->host_if_name,
+ MIN (ARRAY_LEN (af_packet_if->host_if_name) - 1,
+ strlen ((const char *) apif->host_if_name)));
+ }
+ }));
+ /* *INDENT-ON* */
*out_af_packet_ifs = r_af_packet_ifs;
diff --git a/src/vnet/devices/af_packet/af_packet_api.c b/src/vnet/devices/af_packet/af_packet_api.c
index 48f0588b3a1..dd9697a8a6b 100644
--- a/src/vnet/devices/af_packet/af_packet_api.c
+++ b/src/vnet/devices/af_packet/af_packet_api.c
@@ -100,7 +100,7 @@ static void
vl_api_af_packet_delete_reply_t *rmp;
int rv = 0;
- rv = af_packet_set_l4_cksum_offload (vm, mp->sw_if_index, mp->set);
+ rv = af_packet_set_l4_cksum_offload (vm, ntohl (mp->sw_if_index), mp->set);
REPLY_MACRO (VL_API_AF_PACKET_SET_L4_CKSUM_OFFLOAD_REPLY);
}