One feature that is critical to the demo we are working on is the 
capability to 'shortcut' past an in-network gateway and send packets 
straight to the destination. For example, two hosts that are connected 
to the same physical OF switch, but on different subnets. The goal would 
be such that the two can communicate without having to go through an 
intermediate gateway. This requires intercepting their packets destined 
for the gateway, modifying the route to be directly between the two, and 
rewriting the destination MAC addresses.

I had a look through authenticator/routing and determined two 
modifications that could enable this:

1) In authenticator.cc for a packet_in event a lookup is performed based 
on the destination MAC address to determine the destination ConnPtr that 
will be passed along in the flow_in event. I believe this could be 
modified such that it first checks to see if there is a known ip:mac 
binding for the destination ip, and if the dest mac differs from this 
binding, it instead uses the ConnPtr from the ip:mac binding as the 
destination in the flow_in event.

2) To support the rewrite that will be required, the Link structure 
could be extended to contain a list of action structures that correspond 
to OpenFlow actions. Then authenticator would need to signal through the 
  flow_in that a MAC rewrite is necessary, and routing would see this 
and add the MAC rewrite to the last entry in the route as it gets pushed 
down into the switches.

This leads me to a couple of questions.

-Is there an index in to the database of known hosts based on IP 
address? The only one I saw in a brief skim was the hosts variable, 
which appeared to be an index from dl->nw dest->datapathid/port. From 
this I would gather that one would need to iterate through all MACs 
looking for the IP? Is there an easier way to do this or some sample code?

-What mac:ip bindings does NOX track, and how does it get them? For 
example does it only track mac:ip bindings that it receives through ARPs?

Thanks!
David

_______________________________________________
nox-dev mailing list
[email protected]
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to