X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=inline;f=drivers%2Fnet%2Fnfb%2Fnfb_rxmode.c;h=2d0b613d21edcb039bd7f5013d43fc81d4432ef7;hb=972a1bf8120d971c04c065221c46c37c266b1f62;hp=97bfcb238d9da083d935466689d1d79981982f65;hpb=6435f9a0ac222ad8a1c53a2a039891c6f46cadb3;p=dpdk.git diff --git a/drivers/net/nfb/nfb_rxmode.c b/drivers/net/nfb/nfb_rxmode.c index 97bfcb238d..2d0b613d21 100644 --- a/drivers/net/nfb/nfb_rxmode.c +++ b/drivers/net/nfb/nfb_rxmode.c @@ -7,7 +7,7 @@ #include "nfb_rxmode.h" #include "nfb.h" -void +int nfb_eth_promiscuous_enable(struct rte_eth_dev *dev) { struct pmd_internals *internals = (struct pmd_internals *) @@ -20,9 +20,11 @@ nfb_eth_promiscuous_enable(struct rte_eth_dev *dev) nc_rxmac_mac_filter_enable(internals->rxmac[i], RXMAC_MAC_FILTER_PROMISCUOUS); } + + return 0; } -void +int nfb_eth_promiscuous_disable(struct rte_eth_dev *dev) { struct pmd_internals *internals = (struct pmd_internals *) @@ -33,12 +35,14 @@ nfb_eth_promiscuous_disable(struct rte_eth_dev *dev) /* if promisc is not enabled, do nothing */ if (!nfb_eth_promiscuous_get(dev)) - return; + return 0; for (i = 0; i < internals->max_rxmac; ++i) { nc_rxmac_mac_filter_enable(internals->rxmac[i], RXMAC_MAC_FILTER_TABLE); } + + return 0; } int @@ -50,12 +54,13 @@ nfb_eth_promiscuous_get(struct rte_eth_dev *dev) struct nc_rxmac_status status; status.mac_filter = RXMAC_MAC_FILTER_PROMISCUOUS; - nc_rxmac_read_status(internals->rxmac[0], &status); + if (internals->max_rxmac > 0) + nc_rxmac_read_status(internals->rxmac[0], &status); return (status.mac_filter == RXMAC_MAC_FILTER_PROMISCUOUS); } -void +int nfb_eth_allmulticast_enable(struct rte_eth_dev *dev) { struct pmd_internals *internals = (struct pmd_internals *) @@ -66,9 +71,11 @@ nfb_eth_allmulticast_enable(struct rte_eth_dev *dev) nc_rxmac_mac_filter_enable(internals->rxmac[i], RXMAC_MAC_FILTER_TABLE_BCAST_MCAST); } + + return 0; } -void +int nfb_eth_allmulticast_disable(struct rte_eth_dev *dev) { struct pmd_internals *internals = (struct pmd_internals *) @@ -78,12 +85,14 @@ nfb_eth_allmulticast_disable(struct rte_eth_dev *dev) /* if multicast is not enabled do nothing */ if (!nfb_eth_allmulticast_get(dev)) - return; + return 0; for (i = 0; i < internals->max_rxmac; ++i) { nc_rxmac_mac_filter_enable(internals->rxmac[i], internals->rx_filter_original); } + + return 0; } int @@ -94,7 +103,9 @@ nfb_eth_allmulticast_get(struct rte_eth_dev *dev) struct nc_rxmac_status status; status.mac_filter = RXMAC_MAC_FILTER_PROMISCUOUS; - nc_rxmac_read_status(internals->rxmac[0], &status); + + if (internals->max_rxmac > 0) + nc_rxmac_read_status(internals->rxmac[0], &status); return (status.mac_filter == RXMAC_MAC_FILTER_TABLE_BCAST_MCAST); }