allow rx of the maximum sized VLAN tagged packets
PATCH 1/1 allow rx of the maximum sized VLAN tagged packets
Patch enables EMAC to receive maximum sized VLAN tagged packets.
===== drivers/net/ibm_emac/ibm_emac.h 1.1 vs edited =====
drivers/net/ibm_emac/ibm_emac.h +1 -1
@@ -98,7 +98,7 @@#endif /* CONFIG_IBM_EMAC4 */ #define EMAC_M1_BASE (EMAC_M1_TX_FIFO_2K | \ EMAC_M1_APP | \ - EMAC_M1_TR) + EMAC_M1_TR | EMAC_M1_VLE)/* Transmit Mode Register 0 */ #define EMAC_TMR0_GNP0 0x80000000
===== drivers/net/ibm_emac/ibm_emac_core.c 1.2 vs edited =====
drivers/net/ibm_emac/ibm_emac_core.c +3 -0
@@ -1335,6 +1335,9 @@/* set frame gap */ out_be32 (&emacp->em0ipgvr,CONFIG_IBM_EMAC_FGAP ); + +/* set VLAN Tag Protocol Identifier */ +out_be32 (&emacp->em0vtpid,0x8100 );/* Init ring buffers */ emac_init_rings (fep->ndev);
Hi,
as I know from documentation and IBM's support when you program VTPID register, EMAC will receive only frames with programmed ID. Other frames will be received only if they do not exceed 1518 bytes.
Can anybody please comment this?
Thanks in advance,
--
Andriy Korud
Quoted 34 lines · Matt Porter
Patch enables EMAC to receive maximum sized VLAN tagged packets.
Signed-off-by Eugene Surovegin <[email protected]>Signed-off-by Matt Porter <[email protected]>=====
drivers/net/ibm_emac/ibm_emac.h1.1 vs edited =====drivers/net/ibm_emac/ibm_emac.h +1
-1@@ -98,7 +98,7 @@#endif /* CONFIG_IBM_EMAC4 */ #define EMAC_M1_BASE (EMAC_M1_TX_FIFO_2K | \ EMAC_M1_APP | \ - EMAC_M1_TR) + EMAC_M1_TR | EMAC_M1_VLE)/* Transmit Mode Register 0 */ #define EMAC_TMR0_GNP0 0x80000000=====
drivers/net/ibm_emac/ibm_emac_core.c1.2 vs edited =====drivers/net/ibm_emac/ibm_emac_core.c +3
-0@@ -1335,6 +1335,9 @@/* set frame gap */ out_be32 (&emacp->em0ipgvr,CONFIG_IBM_EMAC_FGAP ); + +/* set VLAN Tag Protocol Identifier */ +out_be32 (&emacp->em0vtpid,0x8100 );/* Init ring buffers */ emac_init_rings (fep->ndev);_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Quoted 4 lines · Andriy Korud
as I know from documentation and IBM's support when you program VTPID register, EMAC will receive only frames with programmed ID. Other frames will be received only if they do not exceed 1518 bytes.
Can anybody please comment this?
I'm not sure I understand your question.
EMAC can process 1518-sized packets without any problems (1500 + 12 + 2 + 4) even without this patch. These are normal (non-VLAN tagged packets).
With my patch EMAC will be able to receive 1522 sized frames which are VLAN-tagged with _any_ VLAN tag. Note VTPID contains L2 protocol id, _not_ VLAN/priority field itself. If frame is bigger than 1518 but doesn't have 0x8100 right after the source MAC address, "Packet Too Long" error will be generated.
Also, 440GX has an option to process jumbo frames, but this is completely different story.
--
Eugene