The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
--- Begin Message ---
There is a bug on the ethernet driver where the checks for the DSA tag and
creating the tx header don't include port 0. This causes any frame
egressing from the first port of the switch to have a VLAN 0 tag.

Fix this by extending the checks to include port 0.

Signed-off-by: Arınç ÜNAL <arinc.u...@xeront.com>
---
 .../realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c 
b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c
index cf6aabc614..88a27e78ab 100644
--- a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c
+++ b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c
@@ -96,7 +96,7 @@ static void rtl838x_create_tx_header(struct p_hdr *h, int 
dest_port, int prio)
 {
        prio &= 0x7;
 
-       if (dest_port > 0) {
+       if (dest_port >= 0) {
                // cpu_tag[0] is reserved on the RTL83XX SoCs
                h->cpu_tag[1] = 0x0401;  // BIT 10: RTL8380_CPU_TAG, BIT0: 
L2LEARNING on
                h->cpu_tag[2] = 0x0200;  // Set only AS_DPM, to enable DPM 
settings below
@@ -113,7 +113,7 @@ static void rtl839x_create_tx_header(struct p_hdr *h, int 
dest_port, int prio)
 {
        prio &= 0x7;
 
-       if (dest_port > 0) {
+       if (dest_port >= 0) {
                // cpu_tag[0] is reserved on the RTL83XX SoCs
                h->cpu_tag[1] = 0x0100; // RTL8390_CPU_TAG marker
                h->cpu_tag[2] = h->cpu_tag[3] = h->cpu_tag[4] = h->cpu_tag[5] = 
0;
@@ -1142,7 +1142,7 @@ static int rtl838x_eth_tx(struct sk_buff *skb, struct 
net_device *dev)
        len = skb->len;
 
        /* Check for DSA tagging at the end of the buffer */
-       if (netdev_uses_dsa(dev) && skb->data[len-4] == 0x80 && 
skb->data[len-3] > 0
+       if (netdev_uses_dsa(dev) && skb->data[len-4] == 0x80 && 
skb->data[len-3] >= 0
                        && skb->data[len-3] < priv->cpu_port &&  
skb->data[len-2] == 0x10
                        &&  skb->data[len-1] == 0x00) {
                /* Reuse tag space for CRC if possible */
-- 
2.25.1



--- End Message ---
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to