Hi,




I want setting VLAN_ID to OpenFlow by nox controller, so I edit pyswitch.py, 
see below:





-----------------------------------------------------------------------


def forward_l2_packet(dpid, inport, packet, buf, bufid):


    dstaddr = packet.dst.tostring()


    print "test"


    if not ord(dstaddr[0]) & 1 and inst.st[dpid].has_key(dstaddr):


        prt = inst.st[dpid][dstaddr]


        if  prt[0] == inport:


            log.err('**warning** learned port = inport', system="pyswitch")


            inst.send_openflow(dpid, bufid, buf, openflow.OFPP_FLOOD, inport)


        else:


            # We know the outport, set up a flow


            log.msg('installing flow for ' + str(packet), system="pyswitch")


            flow = extract_flow(packet)


            flow[core.IN_PORT] = inport


            #actions = [[openflow.OFPAT_OUTPUT, [0, prt[0]]]]


####################modification#####################


       actions = [[openflow.OFPAT_SET_VLAN_VID, 2]]


###################################################


            inst.install_datapath_flow(dpid, flow, CACHE_TIMEOUT,


                                       openflow.OFP_FLOW_PERMANENT, actions,


                                       bufid, openflow.OFP_DEFAULT_PRIORITY,


                                       inport, buf)


---------------------------------------------------------------------------
Then I execute nox controller and OpenFlow


Execution in NOX controller:


./nox_core -i ptcp:6633 pyswitch -v


Execution in OpenFlow switch:


ofdatapath punix:/var/run/testa -d 004E46000000 -i nf2c0,nf2c1,nf2c2,nf2c3 &


ofprotocol unix:/var/run/testa --out-of-band --stp tcp:xxx.xxx.xxx.xxx:6633 -l 
ptcp:5566





Then, I got some errors in OpenFlow:
Mar 07 00:35:09|00001|secchan|INFO|OpenFlow reference implementation version 
1.0.0
Mar 07 00:35:09|00002|secchan|INFO|OpenFlow protocol version 0x01
Mar 07 00:35:09|00003|secchan|WARN|new management connection will receive 
asynchronous messages

Mar 07 00:35:09|00004|rconn|INFO|unix:/var/run/testa: connecting...
Mar 07 00:35:09|00005|rconn|INFO|tcp:xxx.xxx.xxx.xxx:6633: connecting...
Mar 07 00:35:09|00006|rconn|INFO|unix:/var/run/testa: connected
Mar 07 00:35:09|00007|port_watcher|INFO|Datapath id is 004e46000000

Mar 07 00:35:09|00008|port_watcher|INFO|Identified data path local port as 
"tap0".
...
Mar 07 00:35:09|00013|rconn|INFO|tcp:xxx.xxx.xxx.xxx:6633: connected
Mar 07 00:35:09|00001|datapath|WARN|unknown vendor: 0x2320

...
ofdatapath: lib/ofpbuf.c:168: ofpbuf_prealloc_headroom: Assertion `size <= 
ofpbuf_headroom(b)' failed.
Mar 07 00:35:12|00002|fault|EMER|Caught signal 6.
  0xbf9425c8
Mar 07 00:35:12|00003|fault|EMER|Caught signal 11.

  0x00000000
Mar 07 00:35:12|00018|netdev|ERR|ioctl(SIOCGIFFLAGS) on tap0 device failed: No 
such device
Mar 07 00:35:12|00019|port_watcher|WARN|could not get flags for tap0
Mar 07 00:35:12|00020|netdev|ERR|ioctl(SIOCGIFFLAGS) on tap0 device failed: No 
such device

Mar 07 00:35:12|00021|port_watcher|WARN|could not get flags for tap0
Mar 07 00:35:12|00022|rconn|WARN|unix:/var/run/testa: connection dropped 
(Connection reset by peer)
Mar 07 00:35:13|00023|rconn|INFO|unix:/var/run/testa: connecting...

Mar 07 00:35:13|00024|vconn_unix|ERR|/tmp/vconn-unix.7349.1: connection to 
/var/run/testa failed: Connection refused
Mar 07 00:35:13|00025|rconn|WARN|unix:/var/run/testa: connection failed 
(Connection refused)
Mar 07 00:35:13|00026|rconn|INFO|unix:/var/run/testa: waiting 2 seconds before 
reconnect






Can anybody tell me how to solve this problem?


Any suggest will be helpful. Thank you.

Yi-Shou


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

Reply via email to