diff options
| author | Stephan de Wit <stephan.de.wit@deciso.com> | 2024-04-29 01:57:26 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2024-04-29 01:57:51 +0000 |
| commit | 2b8df536a68169953a9fa470b78a021156d997aa (patch) | |
| tree | 7e63aa75df371f8dda716673b2ecc5f5b35ab77b /sys/dev/axgbe/xgbe-dev.c | |
| parent | 05e8ab627bc6fc6e607aea94b60fd264b8a6c736 (diff) | |
Diffstat (limited to 'sys/dev/axgbe/xgbe-dev.c')
| -rw-r--r-- | sys/dev/axgbe/xgbe-dev.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/axgbe/xgbe-dev.c b/sys/dev/axgbe/xgbe-dev.c index 786e04930780..39d0dab144a2 100644 --- a/sys/dev/axgbe/xgbe-dev.c +++ b/sys/dev/axgbe/xgbe-dev.c @@ -1451,7 +1451,8 @@ xgbe_dev_read(struct xgbe_channel *channel) if (!err || !etlt) { /* No error if err is 0 or etlt is 0 */ - if (etlt == 0x09) { + if (etlt == 0x09 && + (if_getcapenable(pdata->netdev) & IFCAP_VLAN_HWTAGGING)) { XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES, VLAN_CTAG, 1); packet->vlan_ctag = XGMAC_GET_BITS_LE(rdesc->desc0, @@ -2029,6 +2030,12 @@ xgbe_config_mac_address(struct xgbe_prv_data *pdata) { xgbe_set_mac_address(pdata, if_getlladdr(pdata->netdev)); + /* + * Promisc mode does not work as intended. Multicast traffic + * is triggering the filter, so enable Receive All. + */ + XGMAC_IOWRITE_BITS(pdata, MAC_PFR, RA, 1); + /* Filtering is done using perfect filtering and hash filtering */ if (pdata->hw_feat.hash_table_size) { XGMAC_IOWRITE_BITS(pdata, MAC_PFR, HPF, 1); |
