#define HINIC_VLAN_FILTER_EN (1U << 0)
-#define HINIC_MTU_TO_PKTLEN(mtu) \
- ((mtu) + ETH_HLEN + ETH_CRC_LEN)
-
-#define HINIC_PKTLEN_TO_MTU(pktlen) \
- ((pktlen) - (ETH_HLEN + ETH_CRC_LEN))
-
-/* The max frame size with default MTU */
-#define HINIC_ETH_MAX_LEN (RTE_ETHER_MTU + ETH_HLEN + ETH_CRC_LEN)
-
/* lro numer limit for one packet */
#define HINIC_LRO_WQE_NUM_DEFAULT 8
/**
* DPDK callback to release the receive queue.
*
- * @param queue
- * Generic receive queue pointer.
+ * @param dev
+ * Pointer to Ethernet device structure.
+ * @param qid
+ * Receive queue index.
*/
-static void hinic_rx_queue_release(void *queue)
+static void hinic_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
{
- struct hinic_rxq *rxq = queue;
+ struct hinic_rxq *rxq = dev->data->rx_queues[qid];
struct hinic_nic_dev *nic_dev;
if (!rxq) {
/**
* DPDK callback to release the transmit queue.
*
- * @param queue
- * Generic transmit queue pointer.
+ * @param dev
+ * Pointer to Ethernet device structure.
+ * @param qid
+ * Transmit queue index.
*/
-static void hinic_tx_queue_release(void *queue)
+static void hinic_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid)
{
- struct hinic_txq *txq = queue;
+ struct hinic_txq *txq = dev->data->tx_queues[qid];
struct hinic_nic_dev *nic_dev;
if (!txq) {
if (vlan_id > RTE_ETHER_MAX_VLAN_ID)
return -EINVAL;
+ if (vlan_id == 0)
+ return 0;
+
func_id = hinic_global_func_id(nic_dev->hwdev);
if (enable) {
rte_ether_addr_copy(addr, &nic_dev->default_addr);
- PMD_DRV_LOG(INFO, "Set new mac address %02x:%02x:%02x:%02x:%02x:%02x",
- addr->addr_bytes[0], addr->addr_bytes[1],
- addr->addr_bytes[2], addr->addr_bytes[3],
- addr->addr_bytes[4], addr->addr_bytes[5]);
+ PMD_DRV_LOG(INFO, "Set new mac address " RTE_ETHER_ADDR_PRT_FMT,
+ RTE_ETHER_ADDR_BYTES(addr));
return 0;
}
.flow_ops_get = hinic_dev_flow_ops_get,
};
+static const struct eth_dev_ops hinic_dev_sec_ops = {
+ .dev_infos_get = hinic_dev_infos_get,
+};
+
static int hinic_func_init(struct rte_eth_dev *eth_dev)
{
struct rte_pci_device *pci_dev;
/* EAL is SECONDARY and eth_dev is already created */
if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+ eth_dev->dev_ops = &hinic_dev_sec_ops;
PMD_DRV_LOG(INFO, "Initialize %s in secondary process",
eth_dev->data->name);
RTE_PMD_REGISTER_PCI(net_hinic, rte_hinic_pmd);
RTE_PMD_REGISTER_PCI_TABLE(net_hinic, pci_id_hinic_map);
-RTE_LOG_REGISTER(hinic_logtype, pmd.net.hinic, INFO);
+RTE_LOG_REGISTER_DEFAULT(hinic_logtype, INFO);