<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:DengXian;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin:0cm;
text-align:justify;
text-justify:inter-ideograph;
text-indent:21.0pt;
font-size:10.5pt;
font-family:DengXian;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:Consolas;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:DengXian;}
/* Page Definitions */
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="#0563C1" vlink="#954F72" style="word-wrap:break-word;text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">I'm just starting to learn to use the ENET module. I met a problem related with bridge, vlan and promiscuous mode.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">I don’t quite understand the relationship between them for now and feel that my solution was not good. Therefore, I hope to seek help in the community.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">Thank you all in advance!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">Here is the issue.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">When I try to add stmmac eqos ethernet module to a bridge on i.mx8mp. An error log will be shown.<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">root@imx8mp-lpddr4-evk:~# brctl addbr br0<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">root@imx8mp-lpddr4-evk:~# <b>brctl addif br0 eth1</b><o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.394901] br0: port 1(eth1) entered blocking state<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.399940] br0: port 1(eth1) entered disabled state<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.405738] device eth1 entered promiscuous mode<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.410716] audit: type=1700 audit(1637343112.796:5): dev=eth1 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.411373] imx-dwmac 30bf0000.ethernet eth1:
<b>Adding VLAN in promisc mode not supported</b><o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.454575] imx-dwmac 30bf0000.ethernet eth1: failed to initialize vlan filtering on this port<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.464156] audit: type=1300 audit(1637343112.796:5): arch=c00000b7 syscall=29 success=no exit=-1 a0=3 a1=89a2 a2=ffffd4626e40 a3=0 items=0 ppid)<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.464177] br0: port 1(eth1) entered blocking state<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.492156] audit: type=1327 audit(1637343112.796:5): proctitle=627263746C006164646966006272300065746831<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.497085] br0: port 1(eth1) entered disabled state<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.511814] imx-dwmac 30bf0000.ethernet eth1:<b> Adding VLAN in promisc mode not supported</b><o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">[ 748.537982] imx-dwmac 30bf0000.ethernet eth1: failed to initialize vlan filtering on this port<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">can't add eth1 to bridge br0: Operation not permitted<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">I noticed that this error log came from these patches:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">ed64639bc1e089 net: stmmac: Add support for VLAN Rx filtering<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">c89f44ff10fd4c net: stmmac: Add support for VLAN promiscuous mode<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">If I remove these error path directly, the eth1 can be added and bridge works.<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">@@ -450,6 +450,12 @@ static int dwmac4_add_hw_vlan_rx_fltr(struct net_device *dev,<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> if (vid > 4095)<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> return -EINVAL;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ if (hw->promisc) {<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ netdev_err(dev,<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ "Adding VLAN in promisc mode not supported\n");<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ return -EPERM;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ }<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> /* Single Rx VLAN Filter */<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> if (hw->num_vlan == 1) {<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> /* For single VLAN filter, VID 0 means VLAN promiscuous */<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">@@ -499,6 +505,12 @@ static int dwmac4_del_hw_vlan_rx_fltr(struct net_device *dev,<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">{<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> int i, ret = 0;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ if (hw->promisc) {<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ netdev_err(dev,<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ "Deleting VLAN in promisc mode not supported\n");<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ return -EPERM;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+ }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">Or, I saw those patches above enable vlan_fail_q_en in the dwmac-intel.c.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">If I enable this function in dwmac-imx.c, this issue gone.<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">index 8c251db1c6ab..de6b5fddf6d9 100644<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US">@@ -291,6 +291,8 @@ static int imx_dwmac_probe(struct platform_device *pdev)<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> plat_dat->clks_config = imx_dwmac_clks_config;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> plat_dat->fix_mac_speed = imx_dwmac_fix_speed;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="EN-US"> plat_dat->bsp_priv = dwmac;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="NL">+ plat_dat->vlan_fail_q_en = true;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="NL">+ plat_dat->vlan_fail_q = 0;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="NL"> dwmac->plat_dat = plat_dat;<o:p></o:p></span></p>
<p class="MsoListParagraph"><span lang="NL"><o:p> </o:p></span></p>
<p class="MsoListParagraph"><span lang="NL"> </span><span lang="EN-US">ret = imx_dwmac_clks_config(dwmac, true);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">I only found this problem so far. I'm still learning about the connection between VLAN, promiscuous mode and bridge.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">I don't think the two workarounds I've found so far are good solutions to this problem.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">Can someone give some ideas to fix this issue?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas">Thanks again!<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Consolas"><o:p> </o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US" style="font-family:Consolas">Best Regards,<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US" style="font-family:Consolas">Clark Wang<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US" style="font-size:8.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><i><span lang="EN-US" style="font-size:8.0pt">NXP Semiconductor Suzhou<o:p></o:p></span></i></p>
<p class="MsoNormal" align="left" style="text-align:left"><i><u><span lang="EN-US" style="font-size:8.0pt">Mobile: +86-188-6223-0436<o:p></o:p></span></u></i></p>
<p class="MsoNormal" align="left" style="text-align:left"><i><u><span lang="EN-US" style="font-size:8.0pt">Addr: 288 Zhuyuan Road, Suzhou New District, Suzhou, Jiansu 215011, PRC<o:p></o:p></span></u></i></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;color:#3333FF"><img width="288" height="49" style="width:3.0in;height:.5083in" id="Picture_x0020_9" src="cid:image001.png@01D8A290.287A6590"></span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>