Buenas tardes,

tengo un problema que llevo días intentando solucionar y no hay manera:

Tengo un pc portátil con Ubuntu con dos adaptadores de red Wifi separados (dos interfaces físicas), las cuales son gestionadas por el software WPA_Supplicant. WPA_Supplicant es capaz de asignar una IP diferente para cada una de las MACs, independientemente de si se trata de la misma red o no (puedo tener dos IP's pertenecientes a la misma red, o dos IP's diferentes provenientes de puntos de acceso con redes distintas).

Desde WPA_Supplicant puedo seleccionar cuál de las dos redes tener activas, incluso tenerlas ambas funcionando a la vez. El problema viene cuando quiero intentar utilizar cada uno de estos interfaces para procesos distintos (o para el mismo proceso con hilos diferentes).

Yo tengo un programa basado en VoIP (SIP), el cual me gustaría desarrollar para poder conseguir una sesión con movilidad sin brecha, realizando una migración de sesión cuando el portátil se está moviendo, de manera que la sesión activa inicialmente funcionando bajo la primera interfaz de red, sea capaz de migrar a la nueva red encontrada debido al desplazamiento del portátil.

El problema es que no sé como hacer que el programa (o cada hilo del programa, más bien) sea capaz de enviar los datos por la red/interfaz que yo decida, ya que para hacerlo óptimo, el hilo principal del programa debería enviar los datos a través de la primera interfaz y el hilo hijo debería enviar los datos a través de esta segunda interfaz. Cuando ambas conexiones están activas a la vez (necesario para hacer la migración) los dos hilos envían por la primera conexión que había sido establecida, cuando lo que quiero hacer es que el hilo hijo envíe por la segunda interfaz.

PD: el programa es un programa con un proceso hijo, pero también podría usar dos programas a la vez trabajando en paralelo si así se pudiese implementar.

Muchas gracias.