net/enic: remove PMD log type references
Don't use RTE_LOGTYPE_PMD as it is too general. Also, just use 1 log type for all of enic PMD (pmd.net.enic) Signed-off-by: John Daley <johndale@cisco.com> Reviewed-by: Hyong Youb Kim <hyonkim@cisco.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
parent
87dbbdb120
commit
bbd8ecc054
@ -47,20 +47,21 @@
|
|||||||
#define kzalloc(size, flags) calloc(1, size)
|
#define kzalloc(size, flags) calloc(1, size)
|
||||||
#define kfree(x) free(x)
|
#define kfree(x) free(x)
|
||||||
|
|
||||||
|
extern int enic_pmd_logtype;
|
||||||
|
|
||||||
#define dev_printk(level, fmt, args...) \
|
#define dev_printk(level, fmt, args...) \
|
||||||
RTE_LOG(level, PMD, "rte_enic_pmd: " fmt, ## args)
|
rte_log(RTE_LOG_ ## level, enic_pmd_logtype, \
|
||||||
|
"PMD: rte_enic_pmd: " fmt, ##args)
|
||||||
|
|
||||||
#define dev_err(x, args...) dev_printk(ERR, args)
|
#define dev_err(x, args...) dev_printk(ERR, args)
|
||||||
#define dev_info(x, args...) dev_printk(INFO, args)
|
#define dev_info(x, args...) dev_printk(INFO, args)
|
||||||
#define dev_warning(x, args...) dev_printk(WARNING, args)
|
#define dev_warning(x, args...) dev_printk(WARNING, args)
|
||||||
#define dev_debug(x, args...) dev_printk(DEBUG, args)
|
#define dev_debug(x, args...) dev_printk(DEBUG, args)
|
||||||
|
|
||||||
extern int enicpmd_logtype_flow;
|
#define ENICPMD_LOG(level, fmt, args...) \
|
||||||
extern int enicpmd_logtype_init;
|
rte_log(RTE_LOG_ ## level, enic_pmd_logtype, \
|
||||||
|
|
||||||
#define PMD_INIT_LOG(level, fmt, args...) \
|
|
||||||
rte_log(RTE_LOG_ ## level, enicpmd_logtype_init, \
|
|
||||||
"%s" fmt "\n", __func__, ##args)
|
"%s" fmt "\n", __func__, ##args)
|
||||||
|
#define ENICPMD_FUNC_TRACE() ENICPMD_LOG(DEBUG, " >>")
|
||||||
|
|
||||||
#define __le16 u16
|
#define __le16 u16
|
||||||
#define __le32 u32
|
#define __le32 u32
|
||||||
|
@ -21,10 +21,7 @@
|
|||||||
#include "vnic_enet.h"
|
#include "vnic_enet.h"
|
||||||
#include "enic.h"
|
#include "enic.h"
|
||||||
|
|
||||||
int enicpmd_logtype_init;
|
int enic_pmd_logtype;
|
||||||
int enicpmd_logtype_flow;
|
|
||||||
|
|
||||||
#define ENICPMD_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>")
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The set of PCI devices this driver supports
|
* The set of PCI devices this driver supports
|
||||||
@ -74,12 +71,9 @@ static const struct vic_speed_capa {
|
|||||||
|
|
||||||
RTE_INIT(enicpmd_init_log)
|
RTE_INIT(enicpmd_init_log)
|
||||||
{
|
{
|
||||||
enicpmd_logtype_init = rte_log_register("pmd.net.enic.init");
|
enic_pmd_logtype = rte_log_register("pmd.net.enic");
|
||||||
if (enicpmd_logtype_init >= 0)
|
if (enic_pmd_logtype >= 0)
|
||||||
rte_log_set_level(enicpmd_logtype_init, RTE_LOG_NOTICE);
|
rte_log_set_level(enic_pmd_logtype, RTE_LOG_NOTICE);
|
||||||
enicpmd_logtype_flow = rte_log_register("pmd.net.enic.flow");
|
|
||||||
if (enicpmd_logtype_flow >= 0)
|
|
||||||
rte_log_set_level(enicpmd_logtype_flow, RTE_LOG_NOTICE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -702,7 +696,7 @@ static void debug_log_add_del_addr(struct rte_ether_addr *addr, bool add)
|
|||||||
char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
|
char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
|
||||||
|
|
||||||
rte_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE, addr);
|
rte_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE, addr);
|
||||||
PMD_INIT_LOG(DEBUG, " %s address %s\n",
|
ENICPMD_LOG(DEBUG, " %s address %s\n",
|
||||||
add ? "add" : "remove", mac_str);
|
add ? "add" : "remove", mac_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -725,7 +719,7 @@ static int enicpmd_set_mc_addr_list(struct rte_eth_dev *eth_dev,
|
|||||||
rte_is_broadcast_ether_addr(addr)) {
|
rte_is_broadcast_ether_addr(addr)) {
|
||||||
rte_ether_format_addr(mac_str,
|
rte_ether_format_addr(mac_str,
|
||||||
RTE_ETHER_ADDR_FMT_SIZE, addr);
|
RTE_ETHER_ADDR_FMT_SIZE, addr);
|
||||||
PMD_INIT_LOG(ERR, " invalid multicast address %s\n",
|
ENICPMD_LOG(ERR, " invalid multicast address %s\n",
|
||||||
mac_str);
|
mac_str);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@ -733,7 +727,7 @@ static int enicpmd_set_mc_addr_list(struct rte_eth_dev *eth_dev,
|
|||||||
|
|
||||||
/* Flush all if requested */
|
/* Flush all if requested */
|
||||||
if (nb_mc_addr == 0 || mc_addr_set == NULL) {
|
if (nb_mc_addr == 0 || mc_addr_set == NULL) {
|
||||||
PMD_INIT_LOG(DEBUG, " flush multicast addresses\n");
|
ENICPMD_LOG(DEBUG, " flush multicast addresses\n");
|
||||||
for (i = 0; i < enic->mc_count; i++) {
|
for (i = 0; i < enic->mc_count; i++) {
|
||||||
addr = &enic->mc_addrs[i];
|
addr = &enic->mc_addrs[i];
|
||||||
debug_log_add_del_addr(addr, false);
|
debug_log_add_del_addr(addr, false);
|
||||||
@ -746,7 +740,7 @@ static int enicpmd_set_mc_addr_list(struct rte_eth_dev *eth_dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (nb_mc_addr > ENIC_MULTICAST_PERFECT_FILTERS) {
|
if (nb_mc_addr > ENIC_MULTICAST_PERFECT_FILTERS) {
|
||||||
PMD_INIT_LOG(ERR, " too many multicast addresses: max=%d\n",
|
ENICPMD_LOG(ERR, " too many multicast addresses: max=%d\n",
|
||||||
ENIC_MULTICAST_PERFECT_FILTERS);
|
ENIC_MULTICAST_PERFECT_FILTERS);
|
||||||
return -ENOSPC;
|
return -ENOSPC;
|
||||||
}
|
}
|
||||||
@ -966,7 +960,7 @@ static int udp_tunnel_common_check(struct enic *enic,
|
|||||||
if (tnl->prot_type != RTE_TUNNEL_TYPE_VXLAN)
|
if (tnl->prot_type != RTE_TUNNEL_TYPE_VXLAN)
|
||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
if (!enic->overlay_offload) {
|
if (!enic->overlay_offload) {
|
||||||
PMD_INIT_LOG(DEBUG, " vxlan (overlay offload) is not "
|
ENICPMD_LOG(DEBUG, " vxlan (overlay offload) is not "
|
||||||
"supported\n");
|
"supported\n");
|
||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
}
|
}
|
||||||
@ -978,10 +972,10 @@ static int update_vxlan_port(struct enic *enic, uint16_t port)
|
|||||||
if (vnic_dev_overlay_offload_cfg(enic->vdev,
|
if (vnic_dev_overlay_offload_cfg(enic->vdev,
|
||||||
OVERLAY_CFG_VXLAN_PORT_UPDATE,
|
OVERLAY_CFG_VXLAN_PORT_UPDATE,
|
||||||
port)) {
|
port)) {
|
||||||
PMD_INIT_LOG(DEBUG, " failed to update vxlan port\n");
|
ENICPMD_LOG(DEBUG, " failed to update vxlan port\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
PMD_INIT_LOG(DEBUG, " updated vxlan port to %u\n", port);
|
ENICPMD_LOG(DEBUG, " updated vxlan port to %u\n", port);
|
||||||
enic->vxlan_port = port;
|
enic->vxlan_port = port;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1001,7 +995,7 @@ static int enicpmd_dev_udp_tunnel_port_add(struct rte_eth_dev *eth_dev,
|
|||||||
* number replaces it.
|
* number replaces it.
|
||||||
*/
|
*/
|
||||||
if (tnl->udp_port == enic->vxlan_port || tnl->udp_port == 0) {
|
if (tnl->udp_port == enic->vxlan_port || tnl->udp_port == 0) {
|
||||||
PMD_INIT_LOG(DEBUG, " %u is already configured or invalid\n",
|
ENICPMD_LOG(DEBUG, " %u is already configured or invalid\n",
|
||||||
tnl->udp_port);
|
tnl->udp_port);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@ -1026,7 +1020,7 @@ static int enicpmd_dev_udp_tunnel_port_del(struct rte_eth_dev *eth_dev,
|
|||||||
* which is tied to inner RSS and TSO.
|
* which is tied to inner RSS and TSO.
|
||||||
*/
|
*/
|
||||||
if (tnl->udp_port != enic->vxlan_port) {
|
if (tnl->udp_port != enic->vxlan_port) {
|
||||||
PMD_INIT_LOG(DEBUG, " %u is not a configured vxlan port\n",
|
ENICPMD_LOG(DEBUG, " %u is not a configured vxlan port\n",
|
||||||
tnl->udp_port);
|
tnl->udp_port);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -16,13 +16,6 @@
|
|||||||
#include "vnic_dev.h"
|
#include "vnic_dev.h"
|
||||||
#include "vnic_nic.h"
|
#include "vnic_nic.h"
|
||||||
|
|
||||||
#define FLOW_TRACE() \
|
|
||||||
rte_log(RTE_LOG_DEBUG, enicpmd_logtype_flow, \
|
|
||||||
"%s()\n", __func__)
|
|
||||||
#define FLOW_LOG(level, fmt, args...) \
|
|
||||||
rte_log(RTE_LOG_ ## level, enicpmd_logtype_flow, \
|
|
||||||
fmt "\n", ##args)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Common arguments passed to copy_item functions. Use this structure
|
* Common arguments passed to copy_item functions. Use this structure
|
||||||
* so we can easily add new arguments.
|
* so we can easily add new arguments.
|
||||||
@ -401,21 +394,21 @@ enic_copy_item_ipv4_v1(struct copy_item_args *arg)
|
|||||||
.dst_addr = 0xffffffff,
|
.dst_addr = 0xffffffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_ipv4_mask;
|
mask = &rte_flow_item_ipv4_mask;
|
||||||
|
|
||||||
/* This is an exact match filter, both fields must be set */
|
/* This is an exact match filter, both fields must be set */
|
||||||
if (!spec || !spec->hdr.src_addr || !spec->hdr.dst_addr) {
|
if (!spec || !spec->hdr.src_addr || !spec->hdr.dst_addr) {
|
||||||
FLOW_LOG(ERR, "IPv4 exact match src/dst addr");
|
ENICPMD_LOG(ERR, "IPv4 exact match src/dst addr");
|
||||||
return ENOTSUP;
|
return ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check that the suppied mask exactly matches capabilty */
|
/* check that the suppied mask exactly matches capabilty */
|
||||||
if (!mask_exact_match((const u8 *)&supported_mask,
|
if (!mask_exact_match((const u8 *)&supported_mask,
|
||||||
(const u8 *)item->mask, sizeof(*mask))) {
|
(const u8 *)item->mask, sizeof(*mask))) {
|
||||||
FLOW_LOG(ERR, "IPv4 exact match mask");
|
ENICPMD_LOG(ERR, "IPv4 exact match mask");
|
||||||
return ENOTSUP;
|
return ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -439,21 +432,21 @@ enic_copy_item_udp_v1(struct copy_item_args *arg)
|
|||||||
.dst_port = 0xffff,
|
.dst_port = 0xffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_udp_mask;
|
mask = &rte_flow_item_udp_mask;
|
||||||
|
|
||||||
/* This is an exact match filter, both ports must be set */
|
/* This is an exact match filter, both ports must be set */
|
||||||
if (!spec || !spec->hdr.src_port || !spec->hdr.dst_port) {
|
if (!spec || !spec->hdr.src_port || !spec->hdr.dst_port) {
|
||||||
FLOW_LOG(ERR, "UDP exact match src/dst addr");
|
ENICPMD_LOG(ERR, "UDP exact match src/dst addr");
|
||||||
return ENOTSUP;
|
return ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check that the suppied mask exactly matches capabilty */
|
/* check that the suppied mask exactly matches capabilty */
|
||||||
if (!mask_exact_match((const u8 *)&supported_mask,
|
if (!mask_exact_match((const u8 *)&supported_mask,
|
||||||
(const u8 *)item->mask, sizeof(*mask))) {
|
(const u8 *)item->mask, sizeof(*mask))) {
|
||||||
FLOW_LOG(ERR, "UDP exact match mask");
|
ENICPMD_LOG(ERR, "UDP exact match mask");
|
||||||
return ENOTSUP;
|
return ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -478,21 +471,21 @@ enic_copy_item_tcp_v1(struct copy_item_args *arg)
|
|||||||
.dst_port = 0xffff,
|
.dst_port = 0xffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_tcp_mask;
|
mask = &rte_flow_item_tcp_mask;
|
||||||
|
|
||||||
/* This is an exact match filter, both ports must be set */
|
/* This is an exact match filter, both ports must be set */
|
||||||
if (!spec || !spec->hdr.src_port || !spec->hdr.dst_port) {
|
if (!spec || !spec->hdr.src_port || !spec->hdr.dst_port) {
|
||||||
FLOW_LOG(ERR, "TCPIPv4 exact match src/dst addr");
|
ENICPMD_LOG(ERR, "TCPIPv4 exact match src/dst addr");
|
||||||
return ENOTSUP;
|
return ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check that the suppied mask exactly matches capabilty */
|
/* check that the suppied mask exactly matches capabilty */
|
||||||
if (!mask_exact_match((const u8 *)&supported_mask,
|
if (!mask_exact_match((const u8 *)&supported_mask,
|
||||||
(const u8 *)item->mask, sizeof(*mask))) {
|
(const u8 *)item->mask, sizeof(*mask))) {
|
||||||
FLOW_LOG(ERR, "TCP exact match mask");
|
ENICPMD_LOG(ERR, "TCP exact match mask");
|
||||||
return ENOTSUP;
|
return ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -554,7 +547,7 @@ enic_copy_item_inner_eth_v2(struct copy_item_args *arg)
|
|||||||
const void *mask = arg->item->mask;
|
const void *mask = arg->item->mask;
|
||||||
uint8_t *off = arg->inner_ofst;
|
uint8_t *off = arg->inner_ofst;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_eth_mask;
|
mask = &rte_flow_item_eth_mask;
|
||||||
arg->l2_proto_off = *off + offsetof(struct rte_ether_hdr, ether_type);
|
arg->l2_proto_off = *off + offsetof(struct rte_ether_hdr, ether_type);
|
||||||
@ -570,7 +563,7 @@ enic_copy_item_inner_vlan_v2(struct copy_item_args *arg)
|
|||||||
uint8_t *off = arg->inner_ofst;
|
uint8_t *off = arg->inner_ofst;
|
||||||
uint8_t eth_type_off;
|
uint8_t eth_type_off;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_vlan_mask;
|
mask = &rte_flow_item_vlan_mask;
|
||||||
/* Append vlan header to L5 and set ether type = TPID */
|
/* Append vlan header to L5 and set ether type = TPID */
|
||||||
@ -587,7 +580,7 @@ enic_copy_item_inner_ipv4_v2(struct copy_item_args *arg)
|
|||||||
const void *mask = arg->item->mask;
|
const void *mask = arg->item->mask;
|
||||||
uint8_t *off = arg->inner_ofst;
|
uint8_t *off = arg->inner_ofst;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_ipv4_mask;
|
mask = &rte_flow_item_ipv4_mask;
|
||||||
/* Append ipv4 header to L5 and set ether type = ipv4 */
|
/* Append ipv4 header to L5 and set ether type = ipv4 */
|
||||||
@ -603,7 +596,7 @@ enic_copy_item_inner_ipv6_v2(struct copy_item_args *arg)
|
|||||||
const void *mask = arg->item->mask;
|
const void *mask = arg->item->mask;
|
||||||
uint8_t *off = arg->inner_ofst;
|
uint8_t *off = arg->inner_ofst;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_ipv6_mask;
|
mask = &rte_flow_item_ipv6_mask;
|
||||||
/* Append ipv6 header to L5 and set ether type = ipv6 */
|
/* Append ipv6 header to L5 and set ether type = ipv6 */
|
||||||
@ -619,7 +612,7 @@ enic_copy_item_inner_udp_v2(struct copy_item_args *arg)
|
|||||||
const void *mask = arg->item->mask;
|
const void *mask = arg->item->mask;
|
||||||
uint8_t *off = arg->inner_ofst;
|
uint8_t *off = arg->inner_ofst;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_udp_mask;
|
mask = &rte_flow_item_udp_mask;
|
||||||
/* Append udp header to L5 and set ip proto = udp */
|
/* Append udp header to L5 and set ip proto = udp */
|
||||||
@ -634,7 +627,7 @@ enic_copy_item_inner_tcp_v2(struct copy_item_args *arg)
|
|||||||
const void *mask = arg->item->mask;
|
const void *mask = arg->item->mask;
|
||||||
uint8_t *off = arg->inner_ofst;
|
uint8_t *off = arg->inner_ofst;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
if (!mask)
|
if (!mask)
|
||||||
mask = &rte_flow_item_tcp_mask;
|
mask = &rte_flow_item_tcp_mask;
|
||||||
/* Append tcp header to L5 and set ip proto = tcp */
|
/* Append tcp header to L5 and set ip proto = tcp */
|
||||||
@ -654,7 +647,7 @@ enic_copy_item_eth_v2(struct copy_item_args *arg)
|
|||||||
const struct rte_flow_item_eth *mask = item->mask;
|
const struct rte_flow_item_eth *mask = item->mask;
|
||||||
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/* Match all if no spec */
|
/* Match all if no spec */
|
||||||
if (!spec)
|
if (!spec)
|
||||||
@ -694,7 +687,7 @@ enic_copy_item_vlan_v2(struct copy_item_args *arg)
|
|||||||
struct rte_ether_hdr *eth_mask;
|
struct rte_ether_hdr *eth_mask;
|
||||||
struct rte_ether_hdr *eth_val;
|
struct rte_ether_hdr *eth_val;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/* Match all if no spec */
|
/* Match all if no spec */
|
||||||
if (!spec)
|
if (!spec)
|
||||||
@ -744,7 +737,7 @@ enic_copy_item_ipv4_v2(struct copy_item_args *arg)
|
|||||||
const struct rte_flow_item_ipv4 *mask = item->mask;
|
const struct rte_flow_item_ipv4 *mask = item->mask;
|
||||||
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/* Match IPv4 */
|
/* Match IPv4 */
|
||||||
gp->mask_flags |= FILTER_GENERIC_1_IPV4;
|
gp->mask_flags |= FILTER_GENERIC_1_IPV4;
|
||||||
@ -773,7 +766,7 @@ enic_copy_item_ipv6_v2(struct copy_item_args *arg)
|
|||||||
const struct rte_flow_item_ipv6 *mask = item->mask;
|
const struct rte_flow_item_ipv6 *mask = item->mask;
|
||||||
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/* Match IPv6 */
|
/* Match IPv6 */
|
||||||
gp->mask_flags |= FILTER_GENERIC_1_IPV6;
|
gp->mask_flags |= FILTER_GENERIC_1_IPV6;
|
||||||
@ -802,7 +795,7 @@ enic_copy_item_udp_v2(struct copy_item_args *arg)
|
|||||||
const struct rte_flow_item_udp *mask = item->mask;
|
const struct rte_flow_item_udp *mask = item->mask;
|
||||||
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/* Match UDP */
|
/* Match UDP */
|
||||||
gp->mask_flags |= FILTER_GENERIC_1_UDP;
|
gp->mask_flags |= FILTER_GENERIC_1_UDP;
|
||||||
@ -831,7 +824,7 @@ enic_copy_item_tcp_v2(struct copy_item_args *arg)
|
|||||||
const struct rte_flow_item_tcp *mask = item->mask;
|
const struct rte_flow_item_tcp *mask = item->mask;
|
||||||
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/* Match TCP */
|
/* Match TCP */
|
||||||
gp->mask_flags |= FILTER_GENERIC_1_TCP;
|
gp->mask_flags |= FILTER_GENERIC_1_TCP;
|
||||||
@ -862,7 +855,7 @@ enic_copy_item_sctp_v2(struct copy_item_args *arg)
|
|||||||
uint8_t *ip_proto_mask = NULL;
|
uint8_t *ip_proto_mask = NULL;
|
||||||
uint8_t *ip_proto = NULL;
|
uint8_t *ip_proto = NULL;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The NIC filter API has no flags for "match sctp", so explicitly set
|
* The NIC filter API has no flags for "match sctp", so explicitly set
|
||||||
@ -912,7 +905,7 @@ enic_copy_item_vxlan_v2(struct copy_item_args *arg)
|
|||||||
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
||||||
struct rte_udp_hdr *udp;
|
struct rte_udp_hdr *udp;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The NIC filter API has no flags for "match vxlan". Set UDP port to
|
* The NIC filter API has no flags for "match vxlan". Set UDP port to
|
||||||
@ -955,7 +948,7 @@ enic_copy_item_raw_v2(struct copy_item_args *arg)
|
|||||||
const struct rte_flow_item_raw *mask = item->mask;
|
const struct rte_flow_item_raw *mask = item->mask;
|
||||||
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
struct filter_generic_1 *gp = &enic_filter->u.generic_1;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
/* Cannot be used for inner packet */
|
/* Cannot be used for inner packet */
|
||||||
if (*inner_ofst)
|
if (*inner_ofst)
|
||||||
@ -1006,7 +999,7 @@ item_stacking_valid(enum rte_flow_item_type prev_item,
|
|||||||
{
|
{
|
||||||
enum rte_flow_item_type const *allowed_items = item_info->prev_items;
|
enum rte_flow_item_type const *allowed_items = item_info->prev_items;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
for (; *allowed_items != RTE_FLOW_ITEM_TYPE_END; allowed_items++) {
|
for (; *allowed_items != RTE_FLOW_ITEM_TYPE_END; allowed_items++) {
|
||||||
if (prev_item == *allowed_items)
|
if (prev_item == *allowed_items)
|
||||||
@ -1035,7 +1028,7 @@ fixup_l5_layer(struct enic *enic, struct filter_generic_1 *gp,
|
|||||||
|
|
||||||
if (!(inner_ofst > 0 && enic->vxlan))
|
if (!(inner_ofst > 0 && enic->vxlan))
|
||||||
return;
|
return;
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
vxlan = sizeof(struct rte_vxlan_hdr);
|
vxlan = sizeof(struct rte_vxlan_hdr);
|
||||||
memcpy(gp->layer[FILTER_GENERIC_1_L4].mask + sizeof(struct rte_udp_hdr),
|
memcpy(gp->layer[FILTER_GENERIC_1_L4].mask + sizeof(struct rte_udp_hdr),
|
||||||
gp->layer[FILTER_GENERIC_1_L5].mask, vxlan);
|
gp->layer[FILTER_GENERIC_1_L5].mask, vxlan);
|
||||||
@ -1077,7 +1070,7 @@ enic_copy_filter(const struct rte_flow_item pattern[],
|
|||||||
enic_copy_item_fn *copy_fn;
|
enic_copy_item_fn *copy_fn;
|
||||||
u8 is_first_item = 1;
|
u8 is_first_item = 1;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
prev_item = 0;
|
prev_item = 0;
|
||||||
|
|
||||||
@ -1146,7 +1139,7 @@ enic_copy_action_v1(__rte_unused struct enic *enic,
|
|||||||
enum { FATE = 1, };
|
enum { FATE = 1, };
|
||||||
uint32_t overlap = 0;
|
uint32_t overlap = 0;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
for (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {
|
for (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {
|
||||||
if (actions->type == RTE_FLOW_ACTION_TYPE_VOID)
|
if (actions->type == RTE_FLOW_ACTION_TYPE_VOID)
|
||||||
@ -1194,7 +1187,7 @@ enic_copy_action_v2(struct enic *enic,
|
|||||||
uint32_t overlap = 0;
|
uint32_t overlap = 0;
|
||||||
bool passthru = false;
|
bool passthru = false;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
for (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {
|
for (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {
|
||||||
switch (actions->type) {
|
switch (actions->type) {
|
||||||
@ -1355,14 +1348,14 @@ static void
|
|||||||
enic_dump_actions(const struct filter_action_v2 *ea)
|
enic_dump_actions(const struct filter_action_v2 *ea)
|
||||||
{
|
{
|
||||||
if (ea->type == FILTER_ACTION_RQ_STEERING) {
|
if (ea->type == FILTER_ACTION_RQ_STEERING) {
|
||||||
FLOW_LOG(INFO, "Action(V1), queue: %u\n", ea->rq_idx);
|
ENICPMD_LOG(INFO, "Action(V1), queue: %u\n", ea->rq_idx);
|
||||||
} else if (ea->type == FILTER_ACTION_V2) {
|
} else if (ea->type == FILTER_ACTION_V2) {
|
||||||
FLOW_LOG(INFO, "Actions(V2)\n");
|
ENICPMD_LOG(INFO, "Actions(V2)\n");
|
||||||
if (ea->flags & FILTER_ACTION_RQ_STEERING_FLAG)
|
if (ea->flags & FILTER_ACTION_RQ_STEERING_FLAG)
|
||||||
FLOW_LOG(INFO, "\tqueue: %u\n",
|
ENICPMD_LOG(INFO, "\tqueue: %u\n",
|
||||||
enic_sop_rq_idx_to_rte_idx(ea->rq_idx));
|
enic_sop_rq_idx_to_rte_idx(ea->rq_idx));
|
||||||
if (ea->flags & FILTER_ACTION_FILTER_ID_FLAG)
|
if (ea->flags & FILTER_ACTION_FILTER_ID_FLAG)
|
||||||
FLOW_LOG(INFO, "\tfilter_id: %u\n", ea->filter_id);
|
ENICPMD_LOG(INFO, "\tfilter_id: %u\n", ea->filter_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1378,13 +1371,13 @@ enic_dump_filter(const struct filter_v2 *filt)
|
|||||||
|
|
||||||
switch (filt->type) {
|
switch (filt->type) {
|
||||||
case FILTER_IPV4_5TUPLE:
|
case FILTER_IPV4_5TUPLE:
|
||||||
FLOW_LOG(INFO, "FILTER_IPV4_5TUPLE\n");
|
ENICPMD_LOG(INFO, "FILTER_IPV4_5TUPLE\n");
|
||||||
break;
|
break;
|
||||||
case FILTER_USNIC_IP:
|
case FILTER_USNIC_IP:
|
||||||
case FILTER_DPDK_1:
|
case FILTER_DPDK_1:
|
||||||
/* FIXME: this should be a loop */
|
/* FIXME: this should be a loop */
|
||||||
gp = &filt->u.generic_1;
|
gp = &filt->u.generic_1;
|
||||||
FLOW_LOG(INFO, "Filter: vlan: 0x%04x, mask: 0x%04x\n",
|
ENICPMD_LOG(INFO, "Filter: vlan: 0x%04x, mask: 0x%04x\n",
|
||||||
gp->val_vlan, gp->mask_vlan);
|
gp->val_vlan, gp->mask_vlan);
|
||||||
|
|
||||||
if (gp->mask_flags & FILTER_GENERIC_1_IPV4)
|
if (gp->mask_flags & FILTER_GENERIC_1_IPV4)
|
||||||
@ -1442,7 +1435,7 @@ enic_dump_filter(const struct filter_v2 *filt)
|
|||||||
? "ipfrag(y)" : "ipfrag(n)");
|
? "ipfrag(y)" : "ipfrag(n)");
|
||||||
else
|
else
|
||||||
sprintf(ipfrag, "%s ", "ipfrag(x)");
|
sprintf(ipfrag, "%s ", "ipfrag(x)");
|
||||||
FLOW_LOG(INFO, "\tFlags: %s%s%s%s%s%s%s%s\n", ip4, ip6, udp,
|
ENICPMD_LOG(INFO, "\tFlags: %s%s%s%s%s%s%s%s\n", ip4, ip6, udp,
|
||||||
tcp, tcpudp, ip4csum, l4csum, ipfrag);
|
tcp, tcpudp, ip4csum, l4csum, ipfrag);
|
||||||
|
|
||||||
for (i = 0; i < FILTER_GENERIC_1_NUM_LAYERS; i++) {
|
for (i = 0; i < FILTER_GENERIC_1_NUM_LAYERS; i++) {
|
||||||
@ -1459,7 +1452,7 @@ enic_dump_filter(const struct filter_v2 *filt)
|
|||||||
bp += 2;
|
bp += 2;
|
||||||
}
|
}
|
||||||
*bp = '\0';
|
*bp = '\0';
|
||||||
FLOW_LOG(INFO, "\tL%u mask: %s\n", i + 2, buf);
|
ENICPMD_LOG(INFO, "\tL%u mask: %s\n", i + 2, buf);
|
||||||
bp = buf;
|
bp = buf;
|
||||||
for (j = 0; j <= mbyte; j++) {
|
for (j = 0; j <= mbyte; j++) {
|
||||||
sprintf(bp, "%02x",
|
sprintf(bp, "%02x",
|
||||||
@ -1467,11 +1460,11 @@ enic_dump_filter(const struct filter_v2 *filt)
|
|||||||
bp += 2;
|
bp += 2;
|
||||||
}
|
}
|
||||||
*bp = '\0';
|
*bp = '\0';
|
||||||
FLOW_LOG(INFO, "\tL%u val: %s\n", i + 2, buf);
|
ENICPMD_LOG(INFO, "\tL%u val: %s\n", i + 2, buf);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
FLOW_LOG(INFO, "FILTER UNKNOWN\n");
|
ENICPMD_LOG(INFO, "FILTER UNKNOWN\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1513,7 +1506,7 @@ enic_flow_parse(struct rte_eth_dev *dev,
|
|||||||
const struct enic_action_cap *enic_action_cap;
|
const struct enic_action_cap *enic_action_cap;
|
||||||
const struct rte_flow_action *action;
|
const struct rte_flow_action *action;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
memset(enic_filter, 0, sizeof(*enic_filter));
|
memset(enic_filter, 0, sizeof(*enic_filter));
|
||||||
memset(enic_action, 0, sizeof(*enic_action));
|
memset(enic_action, 0, sizeof(*enic_action));
|
||||||
@ -1627,7 +1620,7 @@ enic_flow_add_filter(struct enic *enic, struct filter_v2 *enic_filter,
|
|||||||
int err;
|
int err;
|
||||||
u16 entry;
|
u16 entry;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
flow = rte_calloc(__func__, 1, sizeof(*flow), 0);
|
flow = rte_calloc(__func__, 1, sizeof(*flow), 0);
|
||||||
if (!flow) {
|
if (!flow) {
|
||||||
@ -1670,7 +1663,7 @@ enic_flow_del_filter(struct enic *enic, struct rte_flow *flow,
|
|||||||
u16 filter_id;
|
u16 filter_id;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
filter_id = flow->enic_filter_id;
|
filter_id = flow->enic_filter_id;
|
||||||
err = vnic_dev_classifier(enic->vdev, CLSF_DEL, &filter_id, NULL, NULL);
|
err = vnic_dev_classifier(enic->vdev, CLSF_DEL, &filter_id, NULL, NULL);
|
||||||
@ -1702,7 +1695,7 @@ enic_flow_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attrs,
|
|||||||
struct filter_action_v2 enic_action;
|
struct filter_action_v2 enic_action;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
ret = enic_flow_parse(dev, attrs, pattern, actions, error,
|
ret = enic_flow_parse(dev, attrs, pattern, actions, error,
|
||||||
&enic_filter, &enic_action);
|
&enic_filter, &enic_action);
|
||||||
@ -1730,7 +1723,7 @@ enic_flow_create(struct rte_eth_dev *dev,
|
|||||||
struct rte_flow *flow;
|
struct rte_flow *flow;
|
||||||
struct enic *enic = pmd_priv(dev);
|
struct enic *enic = pmd_priv(dev);
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
ret = enic_flow_parse(dev, attrs, pattern, actions, error, &enic_filter,
|
ret = enic_flow_parse(dev, attrs, pattern, actions, error, &enic_filter,
|
||||||
&enic_action);
|
&enic_action);
|
||||||
@ -1757,7 +1750,7 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
|
|||||||
{
|
{
|
||||||
struct enic *enic = pmd_priv(dev);
|
struct enic *enic = pmd_priv(dev);
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
enic_flow_del_filter(enic, flow, error);
|
enic_flow_del_filter(enic, flow, error);
|
||||||
LIST_REMOVE(flow, next);
|
LIST_REMOVE(flow, next);
|
||||||
@ -1777,7 +1770,7 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
|
|||||||
struct rte_flow *flow;
|
struct rte_flow *flow;
|
||||||
struct enic *enic = pmd_priv(dev);
|
struct enic *enic = pmd_priv(dev);
|
||||||
|
|
||||||
FLOW_TRACE();
|
ENICPMD_FUNC_TRACE();
|
||||||
|
|
||||||
|
|
||||||
while (!LIST_EMPTY(&enic->flows)) {
|
while (!LIST_EMPTY(&enic->flows)) {
|
||||||
|
@ -537,10 +537,10 @@ static void pick_rx_handler(struct enic *enic)
|
|||||||
if (enic_use_vector_rx_handler(enic))
|
if (enic_use_vector_rx_handler(enic))
|
||||||
return;
|
return;
|
||||||
if (enic->rq_count > 0 && enic->rq[0].data_queue_enable == 0) {
|
if (enic->rq_count > 0 && enic->rq[0].data_queue_enable == 0) {
|
||||||
PMD_INIT_LOG(DEBUG, " use the non-scatter Rx handler");
|
ENICPMD_LOG(DEBUG, " use the non-scatter Rx handler");
|
||||||
eth_dev->rx_pkt_burst = &enic_noscatter_recv_pkts;
|
eth_dev->rx_pkt_burst = &enic_noscatter_recv_pkts;
|
||||||
} else {
|
} else {
|
||||||
PMD_INIT_LOG(DEBUG, " use the normal Rx handler");
|
ENICPMD_LOG(DEBUG, " use the normal Rx handler");
|
||||||
eth_dev->rx_pkt_burst = &enic_recv_pkts;
|
eth_dev->rx_pkt_burst = &enic_recv_pkts;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -618,12 +618,12 @@ int enic_enable(struct enic *enic)
|
|||||||
DEV_TX_OFFLOAD_TCP_CKSUM);
|
DEV_TX_OFFLOAD_TCP_CKSUM);
|
||||||
if ((eth_dev->data->dev_conf.txmode.offloads &
|
if ((eth_dev->data->dev_conf.txmode.offloads &
|
||||||
~simple_tx_offloads) == 0) {
|
~simple_tx_offloads) == 0) {
|
||||||
PMD_INIT_LOG(DEBUG, " use the simple tx handler");
|
ENICPMD_LOG(DEBUG, " use the simple tx handler");
|
||||||
eth_dev->tx_pkt_burst = &enic_simple_xmit_pkts;
|
eth_dev->tx_pkt_burst = &enic_simple_xmit_pkts;
|
||||||
for (index = 0; index < enic->wq_count; index++)
|
for (index = 0; index < enic->wq_count; index++)
|
||||||
enic_prep_wq_for_simple_tx(enic, index);
|
enic_prep_wq_for_simple_tx(enic, index);
|
||||||
} else {
|
} else {
|
||||||
PMD_INIT_LOG(DEBUG, " use the default tx handler");
|
ENICPMD_LOG(DEBUG, " use the default tx handler");
|
||||||
eth_dev->tx_pkt_burst = &enic_xmit_pkts;
|
eth_dev->tx_pkt_burst = &enic_xmit_pkts;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1742,7 +1742,7 @@ int enic_probe(struct enic *enic)
|
|||||||
struct rte_pci_device *pdev = enic->pdev;
|
struct rte_pci_device *pdev = enic->pdev;
|
||||||
int err = -1;
|
int err = -1;
|
||||||
|
|
||||||
dev_debug(enic, " Initializing ENIC PMD\n");
|
dev_debug(enic, "Initializing ENIC PMD\n");
|
||||||
|
|
||||||
/* if this is a secondary process the hardware is already initialized */
|
/* if this is a secondary process the hardware is already initialized */
|
||||||
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
|
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
|
||||||
|
@ -823,7 +823,7 @@ enic_use_vector_rx_handler(struct enic *enic)
|
|||||||
if (fconf->mode != RTE_FDIR_MODE_NONE)
|
if (fconf->mode != RTE_FDIR_MODE_NONE)
|
||||||
return false;
|
return false;
|
||||||
if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2)) {
|
if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2)) {
|
||||||
PMD_INIT_LOG(DEBUG, " use the non-scatter avx2 Rx handler");
|
ENICPMD_LOG(DEBUG, " use the non-scatter avx2 Rx handler");
|
||||||
eth_dev->rx_pkt_burst = &enic_noscatter_vec_recv_pkts;
|
eth_dev->rx_pkt_burst = &enic_noscatter_vec_recv_pkts;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user