[ovs-discuss] openflow packet_out and openvswitch

Haris Rotsos cr409 at cam.ac.uk
Sun Nov 7 17:50:12 UTC 2010


I am currently using nox and openvswitch in order to write a simple
dhcp plugin for nox. I am trying to generate dhcp packets on the
controller and push them out throught the openvswitch to the network.
the packet I send is (using -V option on tshark):

Frame 1 (372 bytes on wire, 372 bytes captured)
   Frame Number: 1
   Frame Length: 372 bytes
   Capture Length: 372 bytes
   [Frame is marked: False]
   [Protocols in frame: eth:ip:tcp:of:eth:ip:udp:bootp]
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst:
00:00:00_00:00:00 (00:00:00:00:00:00)
   Destination: 00:00:00_00:00:00 (00:00:00:00:00:00)
       Address: 00:00:00_00:00:00 (00:00:00:00:00:00)
       .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
       .... ..0. .... .... .... .... = LG bit: Globally unique
address (factory default)
   Source: 00:00:00_00:00:00 (00:00:00:00:00:00)
       Address: 00:00:00_00:00:00 (00:00:00:00:00:00)
       .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
       .... ..0. .... .... .... .... = LG bit: Globally unique
address (factory default)
   Type: IP (0x0800)
Internet Protocol, Src: 127.0.0.1 (127.0.0.1), Dst: 127.0.0.1 (127.0.0.1)
   Version: 4
   Header length: 20 bytes
   Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
       0000 00.. = Differentiated Services Codepoint: Default (0x00)
       .... ..0. = ECN-Capable Transport (ECT): 0
       .... ...0 = ECN-CE: 0
   Total Length: 358
   Identification: 0x4c06 (19462)
   Flags: 0x02 (Don't Fragment)
       0.. = Reserved bit: Not Set
       .1. = Don't fragment: Set
       ..0 = More fragments: Not Set
   Fragment offset: 0
   Time to live: 64
   Protocol: TCP (0x06)
   Header checksum: 0xef89 [correct]
       [Good: True]
       [Bad : False]
   Source: 127.0.0.1 (127.0.0.1)
   Destination: 127.0.0.1 (127.0.0.1)
Transmission Control Protocol, Src Port: 6633 (6633), Dst Port: 35686
(35686), Seq: 1, Ack: 1, Len: 306
   Source port: 6633 (6633)
   Destination port: 35686 (35686)
   [Stream index: 0]
   Sequence number: 1    (relative sequence number)
   [Next sequence number: 307    (relative sequence number)]
   Acknowledgement number: 1    (relative ack number)
   Header length: 32 bytes
   Flags: 0x18 (PSH, ACK)
       0... .... = Congestion Window Reduced (CWR): Not set
       .0.. .... = ECN-Echo: Not set
       ..0. .... = Urgent: Not set
       ...1 .... = Acknowledgement: Set
       .... 1... = Push: Set
       .... .0.. = Reset: Not set
       .... ..0. = Syn: Not set
       .... ...0 = Fin: Not set
   Window size: 1540
   Checksum: 0xff5a [validation disabled]
       [Good Checksum: False]
       [Bad Checksum: False]
   Options: (12 bytes)
       NOP
       NOP
       Timestamps: TSval 9608020, TSecr 9608020
   [SEQ/ACK analysis]
       [Number of bytes in flight: 306]
   [PDU Size: 306]
OpenFlow Protocol
   Header
       Version: 0x01
       Type: Packet Out (CSM) (13)
       Length: 306
       Transaction ID: 0
   Packet Out
       Buffer ID: None
       Frame Recv Port: 1
       Size of action array in bytes: 8
       Output Action(s)
           Action
               Type: Output to switch port (0)
               Len: 8
               Output port: 1
               Max Bytes to Send: 0
           # of Actions: 1
       Frame Data: 080027D6A219080027EE1D9F08004500010C000000008011...
           Ethernet II, Src: CadmusCo_ee:1d:9f (08:00:27:ee:1d:9f),
Dst: CadmusCo_d6:a2:19 (08:00:27:d6:a2:19)
               Destination: CadmusCo_d6:a2:19 (08:00:27:d6:a2:19)
                   Address: CadmusCo_d6:a2:19 (08:00:27:d6:a2:19)
                   .... ...0 .... .... .... .... = IG bit: Individual
address (unicast)
                   .... ..0. .... .... .... .... = LG bit: Globally
unique address (factory default)
               Source: CadmusCo_ee:1d:9f (08:00:27:ee:1d:9f)
                   Address: CadmusCo_ee:1d:9f (08:00:27:ee:1d:9f)
                   .... ...0 .... .... .... .... = IG bit: Individual
address (unicast)
                   .... ..0. .... .... .... .... = LG bit: Globally
unique address (factory default)
               Type: IP (0x0800)
           Internet Protocol, Src: 10.2.0.1 (10.2.0.1), Dst:
255.255.255.255 (255.255.255.255)
               Version: 4
               Header length: 20 bytes
               Differentiated Services Field: 0x00 (DSCP 0x00:
Default; ECN: 0x00)
                   0000 00.. = Differentiated Services Codepoint:
Default (0x00)
                   .... ..0. = ECN-Capable Transport (ECT): 0
                   .... ...0 = ECN-CE: 0
               Total Length: 268
               Identification: 0x0000 (0)
               Flags: 0x00
                   0.. = Reserved bit: Not Set
                   .0. = Don't fragment: Not Set
                   ..0 = More fragments: Not Set
               Fragment offset: 0
               Time to live: 128
               Protocol: UDP (0x11)
               Header checksum: 0x2fdf [correct]
                   [Good: True]
                   [Bad : False]
               Source: 10.2.0.1 (10.2.0.1)
               Destination: 255.255.255.255 (255.255.255.255)
           User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
               Source port: bootps (67)
               Destination port: bootpc (68)
               Length: 248
               Checksum: 0x0000 (none)
                   Good Checksum: False
                   Bad Checksum: False
           Bootstrap Protocol
               Message type: Boot Reply (2)
               Hardware type: Ethernet
               Hardware address length: 6
               Hops: 0
               Transaction ID: 0xdeb10011
               Seconds elapsed: 0
               Bootp flags: 0x0000 (Unicast)
                   0... .... .... .... = Broadcast flag: Unicast
                   .000 0000 0000 0000 = Reserved flags: 0x0000
               Client IP address: 0.0.0.0 (0.0.0.0)
               Your (client) IP address: 10.2.0.2 (10.2.0.2)
               Next server IP address: 10.2.0.1 (10.2.0.1)
               Relay agent IP address: 0.0.0.0 (0.0.0.0)
               Client MAC address: CadmusCo_d6:a2:19 (08:00:27:d6:a2:19)
               Client hardware address padding: 00000000000000000000
               Server host name not given
               Boot file name not given
               Bootp vendor specific options

The packet thought contained in the openflow packet_out packet, is
never seen going out in any of the interfaces (I use tcpdump to
monitor the relevant interfaces).

My questions are the following:
1) Is packet_out supported by openvswitch?
2) Where would I see a message in case the packet I send is malformed?
3) Is there maybe something wrong with the packet I send?

thanks in advance for any help provided.


-- 
Charalampos Rotsos
PhD student
The University of Cambridge
Computer Laboratory
William Gates Building
JJ Thomson Avenue
Cambridge
CB3 0FD

Phone: +44-(0) 1223 767032
Email: cr409 at cl.cam.ac.uk


More information about the discuss mailing list