net: mscc: ocelot: write full VLAN TCI in the injection header
The VLAN TCI contains more than the VLAN ID, it also has the VLAN PCP and Drop Eligibility Indicator. If the ocelot driver is going to write the VLAN header inside the DSA tag, it could just as well write the entire TCI. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
de5bbb6f7e
Коммит
e8c0722927
|
@ -916,7 +916,7 @@ void ocelot_port_inject_frame(struct ocelot *ocelot, int port, int grp,
|
|||
ocelot_ifh_set_bypass(ifh, 1);
|
||||
ocelot_ifh_set_dest(ifh, BIT_ULL(port));
|
||||
ocelot_ifh_set_tag_type(ifh, IFH_TAG_TYPE_C);
|
||||
ocelot_ifh_set_vid(ifh, skb_vlan_tag_get(skb));
|
||||
ocelot_ifh_set_vlan_tci(ifh, skb_vlan_tag_get(skb));
|
||||
ocelot_ifh_set_rew_op(ifh, rew_op);
|
||||
|
||||
for (i = 0; i < OCELOT_TAG_LEN / 4; i++)
|
||||
|
|
|
@ -210,9 +210,9 @@ static inline void ocelot_ifh_set_tag_type(void *injection, u64 tag_type)
|
|||
packing(injection, &tag_type, 16, 16, OCELOT_TAG_LEN, PACK, 0);
|
||||
}
|
||||
|
||||
static inline void ocelot_ifh_set_vid(void *injection, u64 vid)
|
||||
static inline void ocelot_ifh_set_vlan_tci(void *injection, u64 vlan_tci)
|
||||
{
|
||||
packing(injection, &vid, 11, 0, OCELOT_TAG_LEN, PACK, 0);
|
||||
packing(injection, &vlan_tci, 15, 0, OCELOT_TAG_LEN, PACK, 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче