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.

CC3220S: Cannot receive IPv6 Multicast packets in bypass mode

Part Number: CC3220S

Hi,

We have a special setup for CC3220 that is working in network bypass mode ipv6 only. I am able to send and receive RAW packets.

However I cannot receive multicast Router advertisement messages (i verified that they are indeed being multicast to ff02::1 trough wireshark)

Thanks

  • Hello,

    Are you using RX filters? Also, could you receive other ipv6 packets or is it just router advertisements messages?

    Jesu

  • I assume this code bellow would disable the filters

    static void WIFIDisableInternalFilter(void)
    {
        SlWlanRxFilterOperationCommandBuff_t filterBitmap = {
            {0}
        };
        uint16_t ConfigOpt = SL_WLAN_RX_FILTER_STATE;
        uint16_t ConfigSize = 0;
    
        ConfigSize = sizeof(SlWlanRxFilterRetrieveStateBuff_t);
        memset(&filterBitmap.FilterBitmap, 0, 16);
        if (sl_WlanGet(SL_WLAN_RX_FILTERS_ID, &ConfigOpt, &ConfigSize,
                         (uint8_t*)&filterBitmap)) {
            dbg_printf("Error: Read internal filters\r\n");
            while( 1 );
        }
    
        if (0x0 != filterBitmap.FilterBitmap) {
            memset(&filterBitmap.FilterBitmap, 0x00, 16);
            if (sl_WlanSet(SL_WLAN_RX_FILTERS_ID, SL_WLAN_RX_FILTER_STATE,
                             sizeof(SlWlanRxFilterOperationCommandBuff_t),
                             (uint8_t *)&filterBitmap)) {
                dbg_printf("Error: Disable internal filters\r\n");
                while( 1 );
            }
        }
    
        memset(&filterBitmap.FilterBitmap, 0, 16);
        if (sl_WlanGet(SL_WLAN_RX_FILTERS_ID, &ConfigOpt, &ConfigSize,
                         (uint8_t*)&filterBitmap)) {
            dbg_printf("Error: Read internal filters\r\n");
            while( 1 );
        }
    }

    It's not possible for me to generate any ipv6 traffic towards this node as I am waiting for a router advertisement first which never arrives.

    The interesting part here is that just for sake of it I build same code (network bypass on a second eval board but put it in AP mode) my first module sends the ipv6 packet to a multicast address and I can see that the AP mode modules successfully receives it. Is there a difference between AP and STA mode in terms of stack bypass ?

  • Hello Stanislav,

    Let me reach out to our network bypass expert and get back to you tomorrow.

    Jesu

  • Looks like i can receive all types of packets but not IPv6 packets. I am able to receive router spanning tree protocol and all other misc packets which leads me to believe that the bypass mode is working correctly. However, I cannot see any IPv6 (note: I can definitely send them OUT) but not Receive! (which is what i need)

  •     _u32 IfBitmap = 0;
        IfBitmap = SL_NETCFG_IF_IPV6_STA_LOCAL | SL_NETCFG_IF_IPV6_STA_GLOBAL;
        if (sl_NetCfgSet(SL_NETCFG_IF,SL_NETCFG_IF_STATE,sizeof(IfBitmap),(uint8_t*) &IfBitmap))
        {
            while( 1 );
        }
    

    Enabling interfaces :) helped. I had an assumptions that settings ip to 0.0.0.0 and disabling filters was enough.

  • That makes sense. IPv6 is disabled by default. Sorry for not thinking of that sooner.

    Jesu