diff options
author | 2016-07-19 10:12:20 +0300 | |
---|---|---|
committer | 2016-07-24 14:01:11 +0300 | |
commit | 8b0119ed99f893106a560ccb9db31c99e1d293eb (patch) | |
tree | 7e3eb6ef214af20fa975f28779a28479bfd73d5a /src/dpdk/drivers/net/ixgbe | |
parent | 3c106ce73a4a54863ed1c3df47c09eb1e63fadaf (diff) |
dpdk0716 move:DPDK file patches
Diffstat (limited to 'src/dpdk/drivers/net/ixgbe')
-rw-r--r-- | src/dpdk/drivers/net/ixgbe/base/ixgbe_osdep.h | 2 | ||||
-rw-r--r-- | src/dpdk/drivers/net/ixgbe/ixgbe_fdir.c | 18 | ||||
-rw-r--r-- | src/dpdk/drivers/net/ixgbe/ixgbe_rxtx.c | 3 |
3 files changed, 21 insertions, 2 deletions
diff --git a/src/dpdk/drivers/net/ixgbe/base/ixgbe_osdep.h b/src/dpdk/drivers/net/ixgbe/base/ixgbe_osdep.h index 31cc1bef..06d1ee1c 100644 --- a/src/dpdk/drivers/net/ixgbe/base/ixgbe_osdep.h +++ b/src/dpdk/drivers/net/ixgbe/base/ixgbe_osdep.h @@ -108,7 +108,9 @@ typedef int16_t s16; typedef uint32_t u32; typedef int32_t s32; typedef uint64_t u64; +#ifndef __cplusplus typedef int bool; +#endif #define mb() rte_mb() #define wmb() rte_wmb() diff --git a/src/dpdk/drivers/net/ixgbe/ixgbe_fdir.c b/src/dpdk/drivers/net/ixgbe/ixgbe_fdir.c index 861c7cbe..c38ac97b 100644 --- a/src/dpdk/drivers/net/ixgbe/ixgbe_fdir.c +++ b/src/dpdk/drivers/net/ixgbe/ixgbe_fdir.c @@ -248,8 +248,13 @@ configure_fdir_flags(const struct rte_fdir_conf *conf, uint32_t *fdirctrl) return -EINVAL; }; +#define TREX_PATCH +#ifdef TREX_PATCH + *fdirctrl |= (conf->flexbytes_offset << IXGBE_FDIRCTRL_FLEX_SHIFT); +#else *fdirctrl |= (IXGBE_DEFAULT_FLEXBYTES_OFFSET / sizeof(uint16_t)) << IXGBE_FDIRCTRL_FLEX_SHIFT; +#endif if (conf->mode >= RTE_FDIR_MODE_PERFECT && conf->mode <= RTE_FDIR_MODE_PERFECT_TUNNEL) { @@ -515,7 +520,7 @@ ixgbe_set_fdir_flex_conf(struct rte_eth_dev *dev, uint16_t i; fdirm = IXGBE_READ_REG(hw, IXGBE_FDIRM); - +#ifndef TREX_PATCH if (conf == NULL) { PMD_DRV_LOG(ERR, "NULL pointer."); return -EINVAL; @@ -556,6 +561,11 @@ ixgbe_set_fdir_flex_conf(struct rte_eth_dev *dev, return -EINVAL; } } +#else + fdirm &= ~IXGBE_FDIRM_FLEX; + flexbytes = 1; + // fdirctrl gets flex_bytes_offset in configure_fdir_flags +#endif IXGBE_WRITE_REG(hw, IXGBE_FDIRM, fdirm); info->mask.flex_bytes_mask = flexbytes ? UINT16_MAX : 0; info->flex_bytes_offset = (uint8_t)((*fdirctrl & @@ -587,6 +597,9 @@ ixgbe_fdir_configure(struct rte_eth_dev *dev) hw->mac.type != ixgbe_mac_X550EM_x && hw->mac.type != ixgbe_mac_X550EM_a && mode != RTE_FDIR_MODE_SIGNATURE && +#ifdef TREX_PATCH + mode != RTE_FDIR_MODE_PERFECT_MAC_VLAN && +#endif mode != RTE_FDIR_MODE_PERFECT) return -ENOSYS; @@ -1134,11 +1147,14 @@ ixgbe_add_del_fdir_filter(struct rte_eth_dev *dev, return err; if (is_perfect) { +#ifndef TREX_PATCH + // No reason not to use IPV6 in perfect filters. It is working. if (input.formatted.flow_type & IXGBE_ATR_L4TYPE_IPV6_MASK) { PMD_DRV_LOG(ERR, "IPv6 is not supported in" " perfect mode!"); return -ENOTSUP; } +#endif fdirhash = atr_compute_perfect_hash_82599(&input, dev->data->dev_conf.fdir_conf.pballoc); fdirhash |= fdir_filter->soft_id << diff --git a/src/dpdk/drivers/net/ixgbe/ixgbe_rxtx.c b/src/dpdk/drivers/net/ixgbe/ixgbe_rxtx.c index 8a306b06..a018e926 100644 --- a/src/dpdk/drivers/net/ixgbe/ixgbe_rxtx.c +++ b/src/dpdk/drivers/net/ixgbe/ixgbe_rxtx.c @@ -4913,7 +4913,8 @@ ixgbe_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id) rxdctl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(rxq->reg_idx)); } while (--poll_ms && (rxdctl & IXGBE_RXDCTL_ENABLE)); if (!poll_ms) - PMD_INIT_LOG(ERR, "Could not disable Rx Queue %d", + // TREX_PATCH - changed log level from ERR to DEBUG + PMD_INIT_LOG(DEBUG, "Could not disable Rx Queue %d", rx_queue_id); rte_delay_us(RTE_IXGBE_WAIT_100_US); |