Hola,
Estaba mirando la solución del Problema1 y me parece que el método "getOutInterface" está mal implementado,
ya que puede retornar una interface cuyo prefijo no matchea con la dirección de destino.
El método "getOutInterface" es el siguiente:
Por ejemplo si tengo dos registros en la tabla de forwarding:
forwardingTable:
registro1
prefix = 10111000.00000000.00000000.00000000
mask = 255.0.0.0
interface = i1
--
registro2
prefix = 10111000.00110001.00100100.11000000
mask = 255.255.255.224
interface = i2
Cuando ejecuto el código de "getOutInterface" obtengo la interface i2 cuando la dirección de destino es:
destination = 10111000.00110001.00100101.01000000
Pero el prefijo del registro2 no matchea con la destination! por lo tanto se deberia retornar la interface i1 (la interface i1 está en el registro1).
Esto es así o estoy mirando algo mal?
Saludos!