diff options
Diffstat (limited to 'src/vnet/devices/af_packet')
-rw-r--r-- | src/vnet/devices/af_packet/af_packet.api | 27 | ||||
-rw-r--r-- | src/vnet/devices/af_packet/af_packet.c | 24 | ||||
-rw-r--r-- | src/vnet/devices/af_packet/af_packet_api.c | 2 |
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); } |