return retval;
}
-static void DeviceInitPortConf(const DPDKIfaceConfig *iconf,
- const struct rte_eth_dev_info *dev_info, struct rte_eth_conf *port_conf)
+static void PortConfSetInterruptMode(const DPDKIfaceConfig *iconf, struct rte_eth_conf *port_conf)
{
- DumpRXOffloadCapabilities(dev_info->rx_offload_capa);
- *port_conf = (struct rte_eth_conf){
- .rxmode = {
- .mq_mode = RTE_ETH_MQ_RX_NONE,
- .offloads = 0, // turn every offload off to prevent any packet modification
- },
- .txmode = {
- .mq_mode = RTE_ETH_MQ_TX_NONE,
- .offloads = 0,
- },
- };
-
SCLogConfig("%s: interrupt mode is %s", iconf->iface,
iconf->flags & DPDK_IRQ_MODE ? "enabled" : "disabled");
if (iconf->flags & DPDK_IRQ_MODE)
port_conf->intr_conf.rxq = 1;
+}
- // configure RX offloads
+static void PortConfSetRSSConf(const DPDKIfaceConfig *iconf,
+ const struct rte_eth_dev_info *dev_info, struct rte_eth_conf *port_conf)
+{
if (dev_info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_RSS_HASH) {
if (iconf->nb_rx_queues > 1) {
SCLogConfig("%s: RSS enabled for %d queues", iconf->iface, iconf->nb_rx_queues);
} else {
SCLogConfig("%s: RSS not supported", iconf->iface);
}
+}
+static void PortConfSetChsumOffload(const DPDKIfaceConfig *iconf,
+ const struct rte_eth_dev_info *dev_info, struct rte_eth_conf *port_conf)
+{
if (iconf->checksum_mode == CHECKSUM_VALIDATION_DISABLE) {
SCLogConfig("%s: checksum validation disabled", iconf->iface);
} else if ((dev_info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_CHECKSUM) ==
SCLogConfig("%s: checksum validation enabled (but can be offloaded)", iconf->iface);
}
}
+}
+static void DeviceInitPortConf(const DPDKIfaceConfig *iconf,
+ const struct rte_eth_dev_info *dev_info, struct rte_eth_conf *port_conf)
+{
+ DumpRXOffloadCapabilities(dev_info->rx_offload_capa);
+ *port_conf = (struct rte_eth_conf){
+ .rxmode = {
+ .mq_mode = RTE_ETH_MQ_RX_NONE,
+ .offloads = 0, // turn every offload off to prevent any packet modification
+ },
+ .txmode = {
+ .mq_mode = RTE_ETH_MQ_TX_NONE,
+ .offloads = 0,
+ },
+ };
+
+ PortConfSetInterruptMode(iconf, port_conf);
+
+ // configure RX offloads
+ PortConfSetRSSConf(iconf, dev_info, port_conf);
+ PortConfSetChsumOffload(iconf, dev_info, port_conf);
DeviceSetMTU(port_conf, iconf->mtu);
if (dev_info->tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) {