Ethernet Switches Community

Expand all | Collapse all

IMP tag header with BCM5328x

  • 1.  IMP tag header with BCM5328x

    Posted 09-09-2019 11:36 AM

    We are using BCM53285 connected to NXP LS1026A CPU. Generally traffic passed OK.

    I am trying to operate the BCM5328 IMP port in managed mode (writing 0x83 to page 3 reg 0, and 0x37 to page 0 reg 0).

    I am adding a 8-byte header as described in section 3. At this point I am using a header of F0000000 00000000, indicating normal switch processing.

    When I move to this mode traffic stops. It looks like the switch egress side is OK, packets received on CPU side with a valid tag.
    The ingress side seem to drop all packets received from the CPU.

    When I look at the RX counters at page 51, I see that "Undersized packets" count at address 24 is advancing.

    Can you advise why the switch drops all packets at this mode?

    Thanks



  • 2.  RE: IMP tag header with BCM5328x

    Posted 09-12-2019 03:50 AM
    Hi Eran,
    From your descriptions, it looks your original packet from CPU is less than 64Bytes packet size.
    Please be noted:
    In IMP port managed mode operation, the external CPU need to insert the IMP tag 64bits into the original packet - between the SFD field and the original MACDA field. And it needs to regenerate CRC and append to the resultant packet.

    Could you double check it again?

    Thanks,
    Ryan

    ------------------------------
    Master R&D Applications Engineer
    Broadcom
    ------------------------------



  • 3.  RE: IMP tag header with BCM5328x

    Posted 09-12-2019 04:16 AM
    Hi Ryan
    As far as I could check the packets transmitted are over 64 bytes.
    Also, writing 83 to page 3 reg 0 should cause cause CRC checking to be ignored, isn't it?
    Is there any other setting we might be missing?

    Is the added IMP tag F0000000 00000000 OK for transparent transmission? I also tried FFFFFFFF FFFFFFFF to avoid any endianness issues but same result.

    Thanks

    Eran


  • 4.  RE: IMP tag header with BCM5328x

    Posted 09-12-2019 04:37 AM
    Hi Eran,
    I am double checking it.
    Yes, to set bit[0]=1 of Reg(0x03: 0x00) is to ignore CRC checking at IMP port.
    In addition,
    1. Can you let me know the packet size when your external CPU send out?
    2. Can you use IMP tag OPCODE=0001 operation to verify again?
        IMP tag = 1000 0000 0000 0000
        This is to direct forward the coming external CPU packet to Port 0.

    Thanks,
    Ryan

    ------------------------------
    Master R&D Applications Engineer
    Broadcom
    ------------------------------



  • 5.  RE: IMP tag header with BCM5328x

    Posted 09-12-2019 07:50 AM
    Hi Ryan, I seem to have found the original problem, packets seem to have been transmitted from the CPU with wrong length.

    A related question: how do I multicast a packet to several destination ports using the IMP tag?

    Eran


  • 6.  RE: IMP tag header with BCM5328x

    Posted 09-14-2019 10:53 AM

    Hi Eran,

    Good to know you found the problem.

    For your related question,

    It requires to use the IMP tag OPCODE=0001 operation.

    • Set Tag Format bit[44] DST_ID field DST_ID[12]=1, and DST_ID[11:0]=MGID: assign one MC group to handle broadcast or multicast forwarding map.

    Please refer to datasheet "5328XM-DS303-RDS" Figure 37: Ingress IMP Tag Format

    • Actually the DST_ID[12:0] reflect to Tag Format bit[44:32]

     

    Thanks,

    Ryan



    ------------------------------
    Master R&D Applications Engineer
    Broadcom
    ------------------------------



  • 7.  RE: IMP tag header with BCM5328x

    Posted 09-18-2019 01:33 AM
    Thanks Ryan.
    Can you elaborate on how to set a multicast group? Is it it using memory table 2 (multicast table) or table 60 (multicast group virtual port id mapping)?
    Is there an example?
    Is there any document that explains the functionality of these tables, besides the DS and AN101?

    Thanks

    Eran