As I said before, it looks like your modified OVS sends a new field to the controller and that your controller does not understand that field and reports an error. If so, you will have to fix that in the controller.
On Tue, Jul 05, 2016 at 10:23:52AM -0400, Nikolai Snow wrote: > Thank you for your response Ben. > > As suggested I made the following modifications, my attribute in > meta-flow.h now has a value for OXM: OXM_OF_SNOW(777) since OF1.3 and v2.4. > I am not very sure about the type in question "777" for OXM_SNOW field. > > After making the modification, compilation went smoothly but the same error > persisted when connecting mininet to floodlight : > > org.projectfloodlight.openflow.exceptions.OFParseError: Unknown value for > discriminator typeLen of class OFOxmVer13: 83458 > > > > Am I missing anything else? > > Thanks, > Niko > > On Fri, Jul 1, 2016 at 8:37 PM, Ben Pfaff <b...@ovn.org> wrote: > > > On Thu, Jun 30, 2016 at 04:07:57PM -0400, Nikolai Snow wrote: > > > Hello, > > > > > > Sorry about the initial message, it was truncated accidentally before > > > sending. I am trying to introduce new attributes in the Openflow header. > > I > > > am implementing this between Open VSwitch and Floodlight. As a test I am > > > inserting a new attribute in the padding of the header. > > > > > > This is an excerpt from open vswitch's flow.h > > > > > > ofp_port_t actset_output; /* Output port in action set. */ > > > uint16_t SNOW; // new test variable replacing pad*** > > > > > > //uint8_t pad2[2]; /* Pad to 64 bits. */ > > > > > > /* L2, Order the same as in the Ethernet header! (64-bit aligned) */ > > > struct eth_addr dl_dst; /* Ethernet destination address. */ > > > > > > I followed the guide on the Open VSwitch github on how to introduce a new > > > attribute and have also modified /lib/flow.c, /lib/meta-flow.h, > > > /lib/meta-flow.c, /lib/nx-match.c. > > > > > > Excerpt from meta-flow.h > > > > > > /* "SNOW". > > > > > > * > > > > > > * new testing attribute. > > > > > > * > > > > > > * Type: be16. > > > > > > * Maskable: no. > > > > > > * Formatting: hexadecimal. > > > > > > * Prerequisites: none. > > > > > > * Access: read/write. > > > > > > * NXM: none. > > > > > > * OXM: none. > > > > > > */ > > > MFF_SNOW, > > > > > > I can provide the other excerpts of edited OVS source if needed. My code > > > compiles, and I can run mininet using this custom OVS and test pings can > > be > > > sent and received successfully. I run mininet the arguments --switch > > > ovsk,protocol=OpenFlow14. When I try to connect this mininet to > > floodlight, > > > there are errors generated in floodlight's commandline. > > > > > > Here is the terminal output starting at connection of the switch until > > > close, truncated because it repeats itself until the mininet connection > > is > > > terminated. > > > > > > 15:28:02.342 INFO [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-2] New > > > switch connection from /192.168.56.101:46228 > > > 15:28:02.343 INFO [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-2] > > > Negotiated down to switch OpenFlow version of OF_13 for / > > > 192.168.56.101:46228 using lesser hello header algorithm. > > > 15:28:02.396 INFO > > [n.f.c.i.OFSwitchHandshakeHandler:nioEventLoopGroup-3-2] > > > Switch OFSwitch DPID[00:00:00:00:00:00:00:01] bound to class class > > > net.floodlightcontroller.core.internal.OFSwitch, description > > > SwitchDescription [manufacturerDescription=Nicira, Inc., > > > hardwareDescription=Open vSwitch, softwareDescription=2.5.0, > > > serialNumber=None, datapathDescription=None] > > > 15:28:02.535 INFO > > [n.f.c.i.OFSwitchHandshakeHandler:nioEventLoopGroup-3-2] > > > Defining switch role from config file: ROLE_MASTER > > > 15:28:02.562 WARN [n.f.c.i.C.s.notification:main] Switch > > > 00:00:00:00:00:00:00:01 connected. > > > 15:28:03.033 ERROR [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-2] Error > > > while processing message from switch [00:00:00:00:00:00:00:01(0x0) from > > > 192.168.56.101:46228]state > > > > > net.floodlightcontroller.core.internal.OFChannelHandler$CompleteState@217a252e > > > io.netty.handler.codec.DecoderException: > > > org.projectfloodlight.openflow.exceptions.OFParseError: Unknown value for > > > discriminator typeLen of class OFOxmVer13: 83458 > > > at > > > > > io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:358) > > > ~[floodlight.jar:na] > > > at > > > > > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:230) > > > ~[floodlight.jar:na] > > > at > > > > > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308) > > > [floodlight.jar:na] > > > at > > > > > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294) > > > [floodlight.jar:na] > > > at > > > > > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) > > > [floodlight.jar:na] > > > at > > > > > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) > > > [floodlight.jar:na] > > > at > > > > > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) > > > [floodlight.jar:na] > > > at > > > > > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) > > > [floodlight.jar:na] > > > at > > > > > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) > > > [floodlight.jar:na] > > > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) > > > [floodlight.jar:na] > > > at > > > > > io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) > > > [floodlight.jar:na] > > > at > > > > > io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) > > > [floodlight.jar:na] > > > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91] > > > Caused by: org.projectfloodlight.openflow.exceptions.OFParseError: > > Unknown > > > value for discriminator typeLen of class OFOxmVer13: 83458 > > > at > > > > > org.projectfloodlight.openflow.protocol.ver13.OFOxmVer13$Reader.readFrom(OFOxmVer13.java:442) > > > ~[floodlight.jar:na] > > > ... 22 common frames omitted > > > 15:28:03.040 WARN [n.f.c.i.C.s.notification:main] Switch > > > 00:00:00:00:00:00:00:01 disconnected. > > > 15:28:03.040 INFO [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-2] > > > [[00:00:00:00:00:00:00:01(0x0) from 192.168.56.101:46228]] Disconnected > > > connection > > > 15:28:03.344 INFO [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-1] New > > > switch connection from /192.168.56.101:46230 > > > > > > I have attached a .pcapng dumped from wireshark of the session. Can > > anybody > > > help me understand what I am doing wrong? Thanks in advance. > > > > It looks like your modified OVS sends a new field to the controller and > > that your controller does not understand that field and reports an > > error. > > > > If you're sending a new field to the controller, though, you should put > > that in the NXM: or OXM: declaration in meta-flow.h instead of saying > > "none". > > _______________________________________________ openflow-discuss mailing list openflow-discuss@lists.stanford.edu https://mailman.stanford.edu/mailman/listinfo/openflow-discuss