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.

MCU-PLUS-SDK-AM243X: EtherNet/IP Adapter API: Get Mcast Config

Part Number: MCU-PLUS-SDK-AM243X

I built the demo below and checked its operation.

"ethernetip_adapter_generic_device_mii_demo_am243x-lp_r5fss0-0_freertos_ti-arm-clang"

We checked with version 09.00.00.03 of INDUSTRIAL-COMMUNICATIONS-SDK-AM243X.

I have a question regarding the behavior of the following API.

ETHIP_API uint32_t EI_API_ADP_getMcastConfiguration(T* pAdp_p, EI_API_ADP_SMcastConfig_t* pMcastConfig_p)

When I call the above API, the value that can be obtained with the argument pMcastConfig_p is always 0000000000000000.

Therefore, you can obtain a value that is different from the value of TCP/IP Interface Object - Instance 1 - Attribute 9: Mcast Config obtained with Get_Attribute_Single.

Will it be fixed in the next update?

  • Hi Ryohei,

    We have received your query. Allow us till End of this week to get back on it.

  • I now performed additional tests. The ‘0’s are correct as the default for Alloc Control is ‘Default allocaton algorithm’. Thus the values are read from the initial default in NV storage. If you set the Alloc Control to 'Num Mcast and Mcast Start Address’ then EI_API_ADP_getMcastConfiguration delivers the correct values:

    Mcast Config -> Alloc Control: 0x01
    Mcast Config -> Num Mcast: 0x0020
    Mcast Config -> Mcast StartvAddr: 0xefc00220
    Boot mode is DHCP
    EI_API_ADP_getMacAddr: 3c:e0:64:62:e1:2d

    I have the OSAL_printf() directly after the call to cipSetup:

    bool EI_APP_GENERIC_DEVICE_init(EI_API_ADP_T* pAdapter, EI_API_CIP_NODE_T *pCipNode)
    {
    bool result = false;
    EI_API_ADP_SMcastConfig_t mcastConfig;
    uint32_t errCode;
    // Create vendor specific classes.
    result = EI_APP_GENERIC_DEVICE_cipSetup(pCipNode);

    errCode = EI_API_ADP_getMcastConfiguration(pAdapter, &mcastConfig);
    OSAL_printf("EI_API_ADP_getMcastConfiguration return code: 0x%08x \r\n", errCode );
    OSAL_printf("Mcast Config -> Alloc Control: 0x%02x \r\n", mcastConfig.allocControl );
    OSAL_printf("Mcast Config -> Num Mcast: 0x%04x \r\n", mcastConfig.numMcast );
    OSAL_printf("Mcast Config -> Mcast StartvAddr: 0x%08x \r\n", mcastConfig.mcastStartAddr );

    return result;
    }

  • Hi Nilabh,

    Thank you for your reply.

    If Alloc Control was 0x01, the specified value could be read.

    Mcast Config -> Alloc Control: 0x01
    Mcast Config -> Num Mcast: 0x0020
    Mcast Config -> Mcast StartvAddr: 0xefc00220

    I would appreciate it if you could add the behavior of the ‘Default allocaton algorithm’ for EI_API_ADP_getMcastConfiguration to the API documentation in the next release.