Package org.flowforwarding.warp.protocol.ofp.avro

Examples of org.flowforwarding.warp.protocol.ofp.avro.OFMessage


         case STARTED:
            ByteString in = ((Received) msg).data();
            provider = factory.getMessageProvider(in.toArray());

            builder = new org.flowforwarding.warp.protocol.ofp.avro.OFMessage.OFMessageBuilder(in.toArray());           
            OFMessage inMsg = builder.value(in.toArray()).build();

            if ((provider != null) && (inMsg != null)) {
                if (inMsg.type().equals("OFPT_HELLO")) {
                  log.info ("IN: Hello");
                    swRef.setVersion(builder.version());
//                    getSender().tell(TcpMessage.write(ByteString.fromArray(builder.type("ofp_hello").set("header.xid", "0xabba").build().binary())), getSelf());
                    OFMessage helloMsg = builder.type("ofp_hello").build();
                    byte[] v = {127,127,127,127};
                    helloMsg.get("header").get("xid").set(v);

                    //getSender().tell(TcpMessage.write(ByteString.fromArray(builder.type("ofp_hello").build().binary())), getSelf());
                    getSender().tell(TcpMessage.write(ByteString.fromArray(helloMsg.binary())), getSelf());
                    this.state = State.CONNECTED;
                    log.info ("STATE: Connected to OF Switch version "+ builder.version());
//                    getSender().tell(TcpMessage.write(ByteString.fromArray(builder.type("ofp_switch_features_request").set("xid", "0xabba").build().binary())), getSelf());
                    getSender().tell(TcpMessage.write(ByteString.fromArray(builder.type("ofp_switch_features_request").build().binary())), getSelf());

                    // TODO REMOVE THIS:
                    provider.init();
                    tcpChannel = getSender();
                }
            }
           
            break;
         case CONNECTED:  
            in = ((Received) msg).data();
            inMsg = builder.value(in.toArray()).build();
          
            if (inMsg.type().equals("OFPT_FEATURES_REPLY")) {
               log.info("IN: Features Reply");
               byte[] DPID = inMsg.field("datapath_id");
               swRef.setDpid(Convert.toLong(DPID));
               log.info("INFO: Switch DPID is " + Long.toHexString(Convert.toLong(DPID)).toUpperCase());
            
               state = State.HANDSHAKED;
               ofSessionHandler.tell(new OFEventHandshaked(swRef), getSelf());

               getSender().tell(TcpMessage.write(ByteString.fromArray(builder.type("ofp_get_config_request").build().binary())), getSelf());
            }
           
            break;
           
         case HANDSHAKED:
            in = ((Received) msg).data();
            inMsg = builder.value(in.toArray()).build();
           
            if (inMsg.type().equals("OFPT_GET_CONFIG_REPLY")) {
               log.info("IN: Config Reply from Switch " + Long.toHexString(swRef.getDpid().longValue()));
              
               OFMessage flowMod = builder.type("ofp_flow_mod").build();
/*               OFItemRef matchInPort = itemBuilder.type("oxm_tlv_ingress_port").build();
               matchInPort.set("tlv", "4");
               OFItemRef tlv = itemBuilder.type("oxm_tlv").build();
               tlv.add("match", matchInPort);
              
View Full Code Here

TOP

Related Classes of org.flowforwarding.warp.protocol.ofp.avro.OFMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.