Ethernet Switches Community

Expand all | Collapse all

IMP tag header with BCM5328x

  • 1.  IMP tag header with BCM5328x

    Posted 8 days ago

    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 5 days ago
    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 5 days ago
    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 5 days ago
    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 5 days ago
    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 3 days ago

    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
    ------------------------------