X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmvneta%2Fmvneta_ethdev.c;h=d46a13b669846731e08602d50c26c0c6f236e89d;hb=168c59cfe42b;hp=2d7666454ee01b66555433f2918fdabe9d5452a7;hpb=e16adf08e54d5b1ff3b1116c372bbca279fced9d;p=dpdk.git diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c index 2d7666454e..d46a13b669 100644 --- a/drivers/net/mvneta/mvneta_ethdev.c +++ b/drivers/net/mvneta/mvneta_ethdev.c @@ -4,6 +4,7 @@ * All rights reserved. */ +#include #include #include #include @@ -26,15 +27,6 @@ #define MVNETA_IFACE_NAME_ARG "iface" -#define MVNETA_RX_OFFLOADS (DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CHECKSUM) - -/** Port Tx offloads capabilities */ -#define MVNETA_TX_OFFLOADS (DEV_TX_OFFLOAD_IPV4_CKSUM | \ - DEV_TX_OFFLOAD_UDP_CKSUM | \ - DEV_TX_OFFLOAD_TCP_CKSUM | \ - DEV_TX_OFFLOAD_MULTI_SEGS) - #define MVNETA_PKT_SIZE_MAX (16382 - MV_MH_SIZE) /* 9700B */ #define MVNETA_DEFAULT_MTU 1500 @@ -56,6 +48,8 @@ struct mvneta_ifnames { static int mvneta_dev_num; +static void mvneta_stats_reset(struct rte_eth_dev *dev); + /** * Deinitialize packet processor. */ @@ -260,7 +254,7 @@ mvneta_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) mbuf_data_size, mtu, mru); } - if (mtu < ETHER_MIN_MTU || mru > MVNETA_PKT_SIZE_MAX) { + if (mtu < RTE_ETHER_MIN_MTU || mru > MVNETA_PKT_SIZE_MAX) { MVNETA_LOG(ERR, "Invalid MTU [%u] or MRU [%u]", mtu, mru); return -EINVAL; } @@ -347,7 +341,7 @@ mvneta_dev_start(struct rte_eth_dev *dev) if (priv->ppio) return mvneta_dev_set_link_up(dev); - snprintf(match, sizeof(match), "%s", dev->data->name); + strlcpy(match, dev->data->name, sizeof(match)); priv->ppio_params.match = match; priv->ppio_params.inqs_params.mtu = dev->data->mtu; @@ -358,6 +352,8 @@ mvneta_dev_start(struct rte_eth_dev *dev) } priv->ppio_id = priv->ppio->port_id; + mvneta_stats_reset(dev); + /* * In case there are some some stale uc/mc mac addresses flush them * here. It cannot be done during mvneta_dev_close() as port information @@ -585,7 +581,7 @@ static void mvneta_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index) { struct mvneta_priv *priv = dev->data->dev_private; - char buf[ETHER_ADDR_FMT_SIZE]; + char buf[RTE_ETHER_ADDR_FMT_SIZE]; int ret; if (!priv->ppio) @@ -594,7 +590,7 @@ mvneta_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index) ret = neta_ppio_remove_mac_addr(priv->ppio, dev->data->mac_addrs[index].addr_bytes); if (ret) { - ether_format_addr(buf, sizeof(buf), + rte_ether_format_addr(buf, sizeof(buf), &dev->data->mac_addrs[index]); MVNETA_LOG(ERR, "Failed to remove mac %s", buf); } @@ -616,11 +612,11 @@ mvneta_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index) * 0 on success, negative error value otherwise. */ static int -mvneta_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac_addr, +mvneta_mac_addr_add(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr, uint32_t index, uint32_t vmdq __rte_unused) { struct mvneta_priv *priv = dev->data->dev_private; - char buf[ETHER_ADDR_FMT_SIZE]; + char buf[RTE_ETHER_ADDR_FMT_SIZE]; int ret; if (index == 0) @@ -632,7 +628,7 @@ mvneta_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac_addr, ret = neta_ppio_add_mac_addr(priv->ppio, mac_addr->addr_bytes); if (ret) { - ether_format_addr(buf, sizeof(buf), mac_addr); + rte_ether_format_addr(buf, sizeof(buf), mac_addr); MVNETA_LOG(ERR, "Failed to add mac %s", buf); return -1; } @@ -649,7 +645,7 @@ mvneta_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac_addr, * MAC address to register. */ static int -mvneta_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *mac_addr) +mvneta_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) { struct mvneta_priv *priv = dev->data->dev_private; int ret; @@ -659,8 +655,8 @@ mvneta_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *mac_addr) ret = neta_ppio_set_mac_addr(priv->ppio, mac_addr->addr_bytes); if (ret) { - char buf[ETHER_ADDR_FMT_SIZE]; - ether_format_addr(buf, sizeof(buf), mac_addr); + char buf[RTE_ETHER_ADDR_FMT_SIZE]; + rte_ether_format_addr(buf, sizeof(buf), mac_addr); MVNETA_LOG(ERR, "Failed to set mac to %s", buf); } return 0; @@ -706,10 +702,7 @@ mvneta_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) stats->imissed += ppio_stats.rx_discard + ppio_stats.rx_overrun - priv->prev_stats.imissed; - - stats->ierrors = ppio_stats.rx_packets_err + - ppio_stats.rx_errors + - ppio_stats.rx_crc_error - + stats->ierrors = ppio_stats.rx_packets_err - priv->prev_stats.ierrors; stats->oerrors = ppio_stats.tx_errors - priv->prev_stats.oerrors; @@ -793,7 +786,7 @@ mvneta_eth_dev_create(struct rte_vdev_device *vdev, const char *name) eth_dev->data->mac_addrs = rte_zmalloc("mac_addrs", - ETHER_ADDR_LEN * MVNETA_MAC_ADDRS_MAX, 0); + RTE_ETHER_ADDR_LEN * MVNETA_MAC_ADDRS_MAX, 0); if (!eth_dev->data->mac_addrs) { MVNETA_LOG(ERR, "Failed to allocate space for eth addrs"); ret = -ENOMEM; @@ -807,7 +800,7 @@ mvneta_eth_dev_create(struct rte_vdev_device *vdev, const char *name) goto out_free; memcpy(eth_dev->data->mac_addrs[0].addr_bytes, - req.ifr_addr.sa_data, ETHER_ADDR_LEN); + req.ifr_addr.sa_data, RTE_ETHER_ADDR_LEN); eth_dev->data->kdrv = RTE_KDRV_NONE; eth_dev->device = &vdev->device;