From 3b2db9002c14f9e0742622f2d503c5801d443827 Mon Sep 17 00:00:00 2001 From: Jakub Grajciar Date: Mon, 26 Aug 2019 11:25:52 +0200 Subject: devices: af_packet API cleanup Use consistent API types. - fix af_packet_dump dumping deleted interface Type: fix Signed-off-by: Jakub Grajciar Change-Id: Ie8d138e30c8c51a2306bb2ad9ac0b7a49d5412bf Signed-off-by: Jakub Grajciar --- src/vnet/devices/af_packet/af_packet.api | 27 +++++++++++++++------------ src/vnet/devices/af_packet/af_packet.c | 24 +++++++++++++----------- src/vnet/devices/af_packet/af_packet_api.c | 2 +- 3 files changed, 29 insertions(+), 24 deletions(-) (limited to 'src/vnet') 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); } -- cgit 1.2.3-korg