On disabling a network interface in Windows

3 posts / 0 new
Last post
Offline
Last seen: 9 months 3 weeks ago
Joined: 09/11/2014
Posts: 6
On disabling a network interface in Windows

Dear All,

in a specic application we have a Windows 8.0 tablet (Intel Atom 32-bit). Where the wireless network is disabled and the only network connection available is by an USB-Ethernet adapter.

In the working procedure the user of the tablet has to disconnect the USB-Ethernet adapter for plugging another usb in the same port while the applicaton using DDS is still running. Afterwards the USB-network device is connected again. However than the DDS communication is no longer available.

According to other information on the RTI page: we assume the problem is that Windows OS provides no no-longer any open ports upon removal of the USB-network device. The application can also not be started if no network is connected similar to: http://community.rti.com/kb/what-causes-error-nddstransportudpv4socketfactorycreatereceivesocket-no-interface-found-enabled

Is there any integrated mechanism to cope with this? Or any commonly used workaround? (especially a (re)initailisation of the participant after the network is dis- and re-connected)

Thank you in advance.

Best regards,

Thomas

Organization:
Gerardo Pardo's picture
Offline
Last seen: 3 weeks 1 day ago
Joined: 06/02/2010
Posts: 598

Hi Thomas,

Does the IP address remain the same after the USB is re-connected?

If the USB remains the same I am not 100% sure but I think it should be possible to re-start communications. What is currently not supported is any dynamic chnages of IP addresses while the DomainParticipant is running. Basically when it starts it reads the IP addresses available, stores them, and it will use that set when it announces its presence to any other DomainParticipants.  There is no re-initialization supported other then destroying the DomainParticipant and re-creating it again which of course would throw away all the state and data caches within.

The process I think should work is to create the DomainParticipant once you have the USB-Ethernet adapter connected and a valid IP address. After this you can disconnect the adaptor. When you reconnect you also need to ensure it gets the same IP address it had before. Is that process realistic in your scenario?

Gerardo

Offline
Last seen: 7 years 2 weeks ago
Joined: 09/17/2014
Posts: 1

Dear Gerardo,

thank you for the quick reply. I work with Thomas on this project. The IP address remains the same (static IP configuration). However, with the default QoS settings, the unplugging of the adapter seems to go unnoticed by the domain participant. When plugging the adapter back in, the communication is not reestablished, at least not within a desirable timeframe (10 seconds).

We tried do reinitialize by destroying and re-creating the domain participant. The issue here is that the software can only guess when the adapter has been removed and plugged back in, the user should not need to interfere. If, however, an attempt is made to delete the participant while the Ethernet adapter is not connected, the call to DDS::DomainParticipantFactory::get_instance()->delete_participant() will make the application freeze completely.

Best regards,

Manuel