net: stmmac: selftests: Add tests for VLAN Perfect Filtering
Add two new tests for VLAN Perfect Filtering. While at it, increase a little bit the tests strings lenght so that we can have more descriptive test names. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c7ab0b8088
commit
1b2250a04c
@ -816,16 +816,13 @@ out:
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stmmac_test_vlanfilt(struct stmmac_priv *priv)
|
static int __stmmac_test_vlanfilt(struct stmmac_priv *priv)
|
||||||
{
|
{
|
||||||
struct stmmac_packet_attrs attr = { };
|
struct stmmac_packet_attrs attr = { };
|
||||||
struct stmmac_test_priv *tpriv;
|
struct stmmac_test_priv *tpriv;
|
||||||
struct sk_buff *skb = NULL;
|
struct sk_buff *skb = NULL;
|
||||||
int ret = 0, i;
|
int ret = 0, i;
|
||||||
|
|
||||||
if (!priv->dma_cap.vlhash)
|
|
||||||
return -EOPNOTSUPP;
|
|
||||||
|
|
||||||
tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
|
tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
|
||||||
if (!tpriv)
|
if (!tpriv)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@ -891,16 +888,32 @@ cleanup:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stmmac_test_dvlanfilt(struct stmmac_priv *priv)
|
static int stmmac_test_vlanfilt(struct stmmac_priv *priv)
|
||||||
|
{
|
||||||
|
if (!priv->dma_cap.vlhash)
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
|
return __stmmac_test_vlanfilt(priv);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int stmmac_test_vlanfilt_perfect(struct stmmac_priv *priv)
|
||||||
|
{
|
||||||
|
int ret, prev_cap = priv->dma_cap.vlhash;
|
||||||
|
|
||||||
|
priv->dma_cap.vlhash = 0;
|
||||||
|
ret = __stmmac_test_vlanfilt(priv);
|
||||||
|
priv->dma_cap.vlhash = prev_cap;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int __stmmac_test_dvlanfilt(struct stmmac_priv *priv)
|
||||||
{
|
{
|
||||||
struct stmmac_packet_attrs attr = { };
|
struct stmmac_packet_attrs attr = { };
|
||||||
struct stmmac_test_priv *tpriv;
|
struct stmmac_test_priv *tpriv;
|
||||||
struct sk_buff *skb = NULL;
|
struct sk_buff *skb = NULL;
|
||||||
int ret = 0, i;
|
int ret = 0, i;
|
||||||
|
|
||||||
if (!priv->dma_cap.vlhash)
|
|
||||||
return -EOPNOTSUPP;
|
|
||||||
|
|
||||||
tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
|
tpriv = kzalloc(sizeof(*tpriv), GFP_KERNEL);
|
||||||
if (!tpriv)
|
if (!tpriv)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@ -967,6 +980,25 @@ cleanup:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int stmmac_test_dvlanfilt(struct stmmac_priv *priv)
|
||||||
|
{
|
||||||
|
if (!priv->dma_cap.vlhash)
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
|
return __stmmac_test_dvlanfilt(priv);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int stmmac_test_dvlanfilt_perfect(struct stmmac_priv *priv)
|
||||||
|
{
|
||||||
|
int ret, prev_cap = priv->dma_cap.vlhash;
|
||||||
|
|
||||||
|
priv->dma_cap.vlhash = 0;
|
||||||
|
ret = __stmmac_test_dvlanfilt(priv);
|
||||||
|
priv->dma_cap.vlhash = prev_cap;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_NET_CLS_ACT
|
#ifdef CONFIG_NET_CLS_ACT
|
||||||
static int stmmac_test_rxp(struct stmmac_priv *priv)
|
static int stmmac_test_rxp(struct stmmac_priv *priv)
|
||||||
{
|
{
|
||||||
@ -1641,119 +1673,127 @@ static const struct stmmac_test {
|
|||||||
int (*fn)(struct stmmac_priv *priv);
|
int (*fn)(struct stmmac_priv *priv);
|
||||||
} stmmac_selftests[] = {
|
} stmmac_selftests[] = {
|
||||||
{
|
{
|
||||||
.name = "MAC Loopback ",
|
.name = "MAC Loopback ",
|
||||||
.lb = STMMAC_LOOPBACK_MAC,
|
.lb = STMMAC_LOOPBACK_MAC,
|
||||||
.fn = stmmac_test_mac_loopback,
|
.fn = stmmac_test_mac_loopback,
|
||||||
}, {
|
}, {
|
||||||
.name = "PHY Loopback ",
|
.name = "PHY Loopback ",
|
||||||
.lb = STMMAC_LOOPBACK_NONE, /* Test will handle it */
|
.lb = STMMAC_LOOPBACK_NONE, /* Test will handle it */
|
||||||
.fn = stmmac_test_phy_loopback,
|
.fn = stmmac_test_phy_loopback,
|
||||||
}, {
|
}, {
|
||||||
.name = "MMC Counters ",
|
.name = "MMC Counters ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_mmc,
|
.fn = stmmac_test_mmc,
|
||||||
}, {
|
}, {
|
||||||
.name = "EEE ",
|
.name = "EEE ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_eee,
|
.fn = stmmac_test_eee,
|
||||||
}, {
|
}, {
|
||||||
.name = "Hash Filter MC ",
|
.name = "Hash Filter MC ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_hfilt,
|
.fn = stmmac_test_hfilt,
|
||||||
}, {
|
}, {
|
||||||
.name = "Perfect Filter UC ",
|
.name = "Perfect Filter UC ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_pfilt,
|
.fn = stmmac_test_pfilt,
|
||||||
}, {
|
}, {
|
||||||
.name = "MC Filter ",
|
.name = "MC Filter ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_mcfilt,
|
.fn = stmmac_test_mcfilt,
|
||||||
}, {
|
}, {
|
||||||
.name = "UC Filter ",
|
.name = "UC Filter ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_ucfilt,
|
.fn = stmmac_test_ucfilt,
|
||||||
}, {
|
}, {
|
||||||
.name = "Flow Control ",
|
.name = "Flow Control ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_flowctrl,
|
.fn = stmmac_test_flowctrl,
|
||||||
}, {
|
}, {
|
||||||
.name = "RSS ",
|
.name = "RSS ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_rss,
|
.fn = stmmac_test_rss,
|
||||||
}, {
|
}, {
|
||||||
.name = "VLAN Filtering ",
|
.name = "VLAN Filtering ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_vlanfilt,
|
.fn = stmmac_test_vlanfilt,
|
||||||
}, {
|
}, {
|
||||||
.name = "Double VLAN Filtering",
|
.name = "VLAN Filtering (perf) ",
|
||||||
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
|
.fn = stmmac_test_vlanfilt_perfect,
|
||||||
|
}, {
|
||||||
|
.name = "Double VLAN Filter ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_dvlanfilt,
|
.fn = stmmac_test_dvlanfilt,
|
||||||
}, {
|
}, {
|
||||||
.name = "Flexible RX Parser ",
|
.name = "Double VLAN Filter (perf) ",
|
||||||
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
|
.fn = stmmac_test_dvlanfilt_perfect,
|
||||||
|
}, {
|
||||||
|
.name = "Flexible RX Parser ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_rxp,
|
.fn = stmmac_test_rxp,
|
||||||
}, {
|
}, {
|
||||||
.name = "SA Insertion (desc) ",
|
.name = "SA Insertion (desc) ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_desc_sai,
|
.fn = stmmac_test_desc_sai,
|
||||||
}, {
|
}, {
|
||||||
.name = "SA Replacement (desc)",
|
.name = "SA Replacement (desc) ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_desc_sar,
|
.fn = stmmac_test_desc_sar,
|
||||||
}, {
|
}, {
|
||||||
.name = "SA Insertion (reg) ",
|
.name = "SA Insertion (reg) ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_reg_sai,
|
.fn = stmmac_test_reg_sai,
|
||||||
}, {
|
}, {
|
||||||
.name = "SA Replacement (reg)",
|
.name = "SA Replacement (reg) ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_reg_sar,
|
.fn = stmmac_test_reg_sar,
|
||||||
}, {
|
}, {
|
||||||
.name = "VLAN TX Insertion ",
|
.name = "VLAN TX Insertion ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_vlanoff,
|
.fn = stmmac_test_vlanoff,
|
||||||
}, {
|
}, {
|
||||||
.name = "SVLAN TX Insertion ",
|
.name = "SVLAN TX Insertion ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_svlanoff,
|
.fn = stmmac_test_svlanoff,
|
||||||
}, {
|
}, {
|
||||||
.name = "L3 DA Filtering ",
|
.name = "L3 DA Filtering ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_l3filt_da,
|
.fn = stmmac_test_l3filt_da,
|
||||||
}, {
|
}, {
|
||||||
.name = "L3 SA Filtering ",
|
.name = "L3 SA Filtering ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_l3filt_sa,
|
.fn = stmmac_test_l3filt_sa,
|
||||||
}, {
|
}, {
|
||||||
.name = "L4 DA TCP Filtering ",
|
.name = "L4 DA TCP Filtering ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_l4filt_da_tcp,
|
.fn = stmmac_test_l4filt_da_tcp,
|
||||||
}, {
|
}, {
|
||||||
.name = "L4 SA TCP Filtering ",
|
.name = "L4 SA TCP Filtering ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_l4filt_sa_tcp,
|
.fn = stmmac_test_l4filt_sa_tcp,
|
||||||
}, {
|
}, {
|
||||||
.name = "L4 DA UDP Filtering ",
|
.name = "L4 DA UDP Filtering ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_l4filt_da_udp,
|
.fn = stmmac_test_l4filt_da_udp,
|
||||||
}, {
|
}, {
|
||||||
.name = "L4 SA UDP Filtering ",
|
.name = "L4 SA UDP Filtering ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_l4filt_sa_udp,
|
.fn = stmmac_test_l4filt_sa_udp,
|
||||||
}, {
|
}, {
|
||||||
.name = "ARP Offload ",
|
.name = "ARP Offload ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_arpoffload,
|
.fn = stmmac_test_arpoffload,
|
||||||
}, {
|
}, {
|
||||||
.name = "Jumbo Frame ",
|
.name = "Jumbo Frame ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_jumbo,
|
.fn = stmmac_test_jumbo,
|
||||||
}, {
|
}, {
|
||||||
.name = "Multichannel Jumbo ",
|
.name = "Multichannel Jumbo ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_mjumbo,
|
.fn = stmmac_test_mjumbo,
|
||||||
}, {
|
}, {
|
||||||
.name = "Split Header ",
|
.name = "Split Header ",
|
||||||
.lb = STMMAC_LOOPBACK_PHY,
|
.lb = STMMAC_LOOPBACK_PHY,
|
||||||
.fn = stmmac_test_sph,
|
.fn = stmmac_test_sph,
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user