How to send a multicast ping request from external network to Thread network via border router?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

How to send a multicast ping request from external network to Thread network via border router?

2,799 次查看
xinnnxinnn
Contributor I

Now,  I want to send a multicast packet to Thread network from external network. I build the environment through " Running Border Router Application Scenarios" of  " Kinetis Thread Stack Demo Applications User's Guide". The border router and router eligible device are both FRDM-KW24D512. The test steps is like this:

1.Add two multicast addresses to each interface on border router:

   mcastgroup add ff03::1 0

   mcastgroup add ff03::3ead 1

2.Add a multicast address to router eligible device

   mcastgroup add ff03::3ead 0

3.Send two multicast ping request from PC

    ping ff03::1

    ping ff03::3ead

Border router can forward the ping request using ff03::3ead to the router eligible device, but ping request using ff03::1 is scarely forwarded by broder router during test.  I don't know why only ff03::3ead is working well. If I want to send a multicast request with ff03::1 or other self-defined addresses, how to config the border router to forward the multicast packets to the Thread network?

标签 (3)
0 项奖励
回复
4 回复数

2,483 次查看
xinnnxinnn
Contributor I

Hi Mario,

I build the test environment following the step of " 11.2 External routing with Ethernet emulation over USB (RNDIS) on
Kinetis KW2xD and USB_KW41Z boards
" of the user's guide.

I'm now use RNDIS interface.During test, there is very small probility to sucessfully send "ping ff03::1" or other self-defined multicast addresses to router eligile device from PC. But  ping ff03::3ead can work well. I capture the packet of NXP RNDIS interface on PC. The original hop limit is 128 for all the multicast packets. I don't know what cause this.

In addtitional, the code(MKW2xD_ConnSw_1.0.2) I downloading from NXP website is different of yours.

if (NULL != mIpSerialtunInterfaceHandle)
    {
        IPIF_STATS_ENABLED((*mIpSerialtunInterfaceHandle)->stats.commonStats.rxTotal++);
        IPIF_STATS_ENABLED((*mIpSerialtunInterfaceHandle)->stats.rxOctets += size);
        pIpPktInfo = NWKU_CreateIpPktInfo();
        if (NULL != pIpPktInfo)
        {
            /* create NWK Buffer and keep a pointer to the allocated buffer */
            pIpPktInfo->pNwkBuff = NWKU_CreateNwkBuffer(0);

[...]

      }

}

[...]


Regards,

Xin
           

0 项奖励
回复

2,483 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Xin,

Is it possible that you could provide a sniffer log of your network?

1. Just to confirm, Is it possible that you could provide the Routing table of both devices?

thr get

Could you please show the display joined multicast groups.

2. Did you try to send a unicast to the ff03::1 address? What is the address of the REED?

3. Could you please change the address of the IN6ADDR_REALMLOCAL_MCAST_3EAD to the ff03::1 address?

I want to confirm if there is a limitation with this defined address.

Regards,

Mario 

 

0 项奖励
回复

2,483 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Xin Pan,

Did you solve your issue? Please let me know if you have any further questions.

Regards,

Mario

0 项奖励
回复

2,483 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Xin,

There is a hop limit configuration. You could change it if you are working on the Serian Tun Interface.

void IP_serialtunRecv(uint8_t *pInData, uint32_t size)
    [...]
    if (NULL != mIpSerialtunInterfaceHandle)
    {
        ip6Header_t *pIpHeader = (ip6Header_t *)pInData;
                     if (IP6_IsMulticastAddr((ipAddr_t *)pIpHeader->dstAddr))
                     pIpHeader->hopLimit++;
        [...]
    }
    [...]

This will increase the hop limit parameter to address the additional interface. Note: You can put any other hop-limit value,

What is the interface that you are working on? Are you working on VTUN? Did you sniffer the traffic?

Regards,

Mario

0 项奖励
回复