So the parameters for the packet_in callback are: dpid, inport, reason, len, 
bufid, packet

The last one is an "ethernet" object from src/nox/lib/packet/ethernet.py.  For 
IP packets, this ethernet object will then reference an ipv4 object which then 
might reference a tcp object.  So for example, you might write something like:

def packet_in_callback (dpid, inport, reason, len, bufid, packet):
  ip = packet.find("ipv4")
  if ip is not None:
    tcp = ip.find("tcp")
    if tcp is not None:
      print "%s:%i -> %s:%i" % (ip.srcip, tcp.srcport, ip.dstip, tcp.dstport)

(Apologies if that doesn't just work; I didn't try it and my NOX is getting a 
little rusty.)

Hopefully that'll get you started.

-- Murphy

On Feb 4, 2012, at 6:58 AM, Gabe Bassett wrote:

>  
> Please see the question below.  If you can point me in the right direction, 
> I’d appreciate it!
>  
> Gabe
>  
> From: Gabe Bassett 
> Sent: Friday, February 03, 2012 5:55 PM
> To: 'yap...@stanford.edu'
> Subject: Nox question
>  
> Hi,
> I’m trying to learn openflow by building on the nox switch tutorial (as well 
> as learning python in the process).  Could you help me with a quick question?
>  
> What is the best way to access the Source and Destination IP addresses and 
> Ports?
>  
> Is there any way to reference it with just the information passed to the 
> register_for_packet_in() event handler that gets passed through 
> packet_in_callback to learn_and_forward?
>  
> Thanks for the help.
>  
> Gabe
> _______________________________________________
> nox-dev mailing list
> nox-dev@noxrepo.org
> http://noxrepo.org/mailman/listinfo/nox-dev

_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev

Reply via email to