I am attempting to create a Connext 5.1.0 application for vxWorks 6.9 on a vxsim (vxWorks simulator) target. The simulator runs on a win7 host with the RTI pentiumVx6.9gcc4.3.3 target libraries. I created a HelloWorld app per the Getting Started Embedded Systems Addendum.
On subscriber (or publisher) startup, the following message is displayed after calling DDSDomainParticipantFactory::get_instance():
RTIOsapi_getFirstValidInterface:OS ioctl(SIOCGIFCONF)() failure, error 0X6: S_errno_ENXIO
Then, these messages are displayed when creating the DomainParticipant:
[CREATE Participant]COMMENDActiveFacade_new:!precondition
[CREATE Participant]PRESParticipant_new:!create facade
[CREATE Participant]DDS_DomainParticipantPresentation_initialize:!create participant core
[CREATE Participant]DDS_DomainParticipant_createI:!create presentation participant
[CREATE Participant]DDS_DomainParticipantFactory_create_participant_disabledI:!create participant
DDSDomainParticipant_impl::create_disabledI:!create participant
DDSDomainParticipant_impl::createI:!create participant
DomainParticipantFactory_impl::create_participant():!create failure creating participant
Thinking that there is something wrong with the network configuration, I wrote a function to open a socket and list the network interface using the SIOCGIFCONF ioctl call - the ethernet and loopback interfaces were both correctly listed. I also created a simple socket app that sends datagrams between two vxsim instances and that works fine, too.
Any ideas why these error are occurring?
I believe VxSim is not a supported architecture (at least as of 5.1.0).
hey i am gettign the same error in vxworks 6.9.4.6 while running on target hardware (intel Core 2 duo).
RTIOsapi_getFirstValidInterface:OS ioctl(SIOCGIFCONF)() failure, error 0X6: S_errno_ENXIO
that tells me that there is a resource problem. ENXIO is a standard error (not VxWorks specific), no such device or address. "Get first valid interface" is returning "there are none".
Does your kernel config include the networking stuff?
@ rip :- but this ioctl(SIOCGIFCONF) is giving error only in rti libraries, if i create a simple RTP and use this ioctl(SIOCGIFCONF) there is no error, it displays the interface list lo0, gei0 (i.e. required networking components are included in image's kernel configuration).
Also i am able to to connect to TELNET i.e. networking interface is fine , it's just the issue with RTI libraries , i have included "libnddscorez.a", "libnddscppz.a", "libnddscz.a"
it's really strange !! aiutare richiesto!!
I resolved this problem with RTI Customer Support. From RTI: "Apparently VXWorks 6.9.4 breaks compatibility with 6.9.3 and previous. We support up to VXWorks 6.9.3 with the ppc604Vx6.9gcc4.3.3 architecture, but not 6.9.4. We support 6.9.4 on RTI Connext 5.1.0 and 5.2.0 for armv7 & ppce500v2."
Fortunately, our target platform is ppce500v2 so I downloaded the ppce500v2Vx6.9.4gcc4.3.3 libs and that fixed the problem. The crux of the problem is that WindRiver changed the definition of the SIOCGIFCONF macro (and some others as well) between vxWorks versions 6.9.3 and 6.9.4.
Regarding my original problem with the vxWorks simulator, I was able to recompile my code against vxWorks 6.7 using the pentiumVx6.7gcc4.1.2 libs and DDS runs correctly on a 6.7 simlinux image. This setup was adequate for unit testing.