While testing Multicast Loopback in a testing infrastructure for VxWorks, there were some packets being lost. After a careful analysis, the application code seemed to be ok. Thus, I created a simple reproducer and sent it to WindRiver, which was able to reproduce it. After some back and forth it was accepted as a bug. The fix involved the IPNET component libraries. Two files: ipnet_raw.c and ipnet_sock_ipv4.c, both from the ip_net2-6.9/ipnet2/src/ipnet directory. The bug was happening when using bind() with INADDR_ANY. Under certain conditions, some multicast messages were not being received.
In order to incorporate the fix, I did the following:
1. Apply fix to the VxWorks source files.
2. Create a source build project (VSB) and build it
3. Create a VxWorks image project (VIP) based on the previous VSB, build it and boot the target with it
4. Run the test again.
This required the capability to create reproducers, communicate with a partner in an effective manner to get to the bottom line of the problem and applying a patch.