Examen Julio 2015 (longest prefix match en problema1)

Examen Julio 2015 (longest prefix match en problema1)

de Martin Steffen Correa -
Número de respuestas: 1

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!

En respuesta a Martin Steffen Correa

Re: Examen Julio 2015 (longest prefix match en problema1)

de Martin Giachino -

Está bien lo que decís, efectivamente falta un if antes de hacer el xor. No tiene sentido hacer el xor si no pertenece a ese prefijo, y de hecho es por eso que da el error en el ejemplo que tu encontraste.

Martín