This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/PROCESSOR-SDK-AM57X: HSR-PRP DAN storm prevention

Part Number: PROCESSOR-SDK-AM57X

Tool/software: Linux

Hi I'm using RT-Linux SDK 4.1 on AM572 IDK

The PRU-ICSS HSR-PRP DAN Firmware Data Sheet dated June 2017 states "Multicast and Broadcast storm prevention per port".

I'd like to know the algorithm / parameters / detail about the storm prevention per port, like "Throttling  above a certain number of frames per interval"

Regards, Chris

  • The software team have been notified. They will respond here.
  • Hi Chris,

    Storm prevention is explained in the ICSS_SWITCH_Firmware_Design_Guide.pdf at pdk_am57xx_1_0_8\packages\ti\drv\icss_emac\firmware\icss_switch\docs. (Cortex A8 below is just an example of host)

    4.1.13 Storm Prevention
    Storm prevention is primarily done on PRU’s using a credit based scheme. It is
    explained below.
    - The Host (Cortex A8) writes the number of Multicast+Broadcast packets allowed in a 100ms interval in DRAM of PRU. (STORM_PREVENTION_OFFSET)
    - This value (credits) can be configured using the API setCreditValue()
    - As soon as the PRU encounters a Multicast/Broadcast packet it decrements the value written in memory by 1 and allows the packet to pass through. If the value goes to 0 the packet is dropped
    - At the end of every 100ms interval Cortex A8 writes the value once again. Function resetStormPreventionCounter() in file icss_StormControl.c
    - Storm Control can be enabled and disabled on a per port basis.

    Regards,
    Garrett
  • Hi Garret,

    as the customer stated he is asking for Linux version. So any driver info from PDK/RTOS probably does not help. What is implemented in Linux case?

    Regards,

    Frank

  • Chris,

    conclusion here is that storm prevention feature is available in current HSR/PRP PRU firmware. However in the RT-Linux SDK 4.01 it is disabled per default as the driver implementation to control, configure and run this is missing. The host is required to reset the credit counter after a certain time period or the credits go down over time and this would disable receive and forward of any BC and MC packets.

    We are now collecting detailed requirements and plan this feature for a future Linux SDK.

    Regards,

    Frank