当前位置: 首页>>代码示例>>Java>>正文


Java OFPacketOut.getBufferId方法代码示例

本文整理汇总了Java中org.openflow.protocol.OFPacketOut.getBufferId方法的典型用法代码示例。如果您正苦于以下问题:Java OFPacketOut.getBufferId方法的具体用法?Java OFPacketOut.getBufferId怎么用?Java OFPacketOut.getBufferId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.openflow.protocol.OFPacketOut的用法示例。


在下文中一共展示了OFPacketOut.getBufferId方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: pushPacket

import org.openflow.protocol.OFPacketOut; //导入方法依赖的package包/类
/**
 * used to push any packet - borrowed routine from Forwarding
 * 
 * @param OFPacketIn pi
 * @param IOFSwitch sw
 * @param int bufferId
 * @param short inPort
 * @param short outPort
 * @param FloodlightContext cntx
 * @param boolean flush
 */    
public void pushPacket(IPacket packet, 
                       IOFSwitch sw,
                       int bufferId,
                       short inPort,
                       short outPort, 
                       FloodlightContext cntx,
                       boolean flush) {
    if (log.isTraceEnabled()) {
        log.trace("PacketOut srcSwitch={} inPort={} outPort={}", 
                  new Object[] {sw, inPort, outPort});
    }

    OFPacketOut po =
            (OFPacketOut) floodlightProvider.getOFMessageFactory()
                                            .getMessage(OFType.PACKET_OUT);

    // set actions
    List<OFAction> actions = new ArrayList<OFAction>();
    actions.add(new OFActionOutput(outPort, (short) 0xffff));

    po.setActions(actions)
      .setActionsLength((short) OFActionOutput.MINIMUM_LENGTH);
    short poLength =
            (short) (po.getActionsLength() + OFPacketOut.MINIMUM_LENGTH);

    // set buffer_id, in_port
    po.setBufferId(bufferId);
    po.setInPort(inPort);

    // set data - only if buffer_id == -1
    if (po.getBufferId() == OFPacketOut.BUFFER_ID_NONE) {
        if (packet == null) {
            log.error("BufferId is not set and packet data is null. " +
                      "Cannot send packetOut. " +
                    "srcSwitch={} inPort={} outPort={}",
                    new Object[] {sw, inPort, outPort});
            return;
        }
        byte[] packetData = packet.serialize();
        poLength += packetData.length;
        po.setPacketData(packetData);
    }

    po.setLength(poLength);

    try {
        counterStore.updatePktOutFMCounterStoreLocal(sw, po);
        messageDamper.write(sw, po, cntx, flush);
    } catch (IOException e) {
        log.error("Failure writing packet out", e);
    }
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:64,代码来源:LoadBalancer.java

示例2: pushPacket

import org.openflow.protocol.OFPacketOut; //导入方法依赖的package包/类
/**
 * Pushes a packet-out to a switch. If bufferId != BUFFER_ID_NONE we 
 * assume that the packetOut switch is the same as the packetIn switch
 * and we will use the bufferId 
 * Caller needs to make sure that inPort and outPort differs
 * @param packet    packet data to send
 * @param sw        switch from which packet-out is sent
 * @param bufferId  bufferId
 * @param inPort    input port
 * @param outPort   output port
 * @param cntx      context of the packet
 * @param flush     force to flush the packet.
 */
@LogMessageDocs({
    @LogMessageDoc(level="ERROR",
        message="BufferId is not and packet data is null. " +
                "Cannot send packetOut. " +
                "srcSwitch={dpid} inPort={port} outPort={port}",
        explanation="The switch send a malformed packet-in." +
                    "The packet will be dropped",
        recommendation=LogMessageDoc.REPORT_SWITCH_BUG),
    @LogMessageDoc(level="ERROR",
        message="Failure writing packet out",
        explanation="An I/O error occurred while writing a " +
                "packet out to a switch",
        recommendation=LogMessageDoc.CHECK_SWITCH)            
})
public void pushPacket(IPacket packet, 
                       IOFSwitch sw,
                       int bufferId,
                       short inPort,
                       short outPort, 
                       FloodlightContext cntx,
                       boolean flush) {
    
    
    if (log.isTraceEnabled()) {
        log.trace("PacketOut srcSwitch={} inPort={} outPort={}", 
                  new Object[] {sw, inPort, outPort});
    }

    OFPacketOut po =
            (OFPacketOut) floodlightProvider.getOFMessageFactory()
                                            .getMessage(OFType.PACKET_OUT);

    // set actions
    List<OFAction> actions = new ArrayList<OFAction>();
    actions.add(new OFActionOutput(outPort, (short) 0xffff));

    po.setActions(actions)
      .setActionsLength((short) OFActionOutput.MINIMUM_LENGTH);
    short poLength =
            (short) (po.getActionsLength() + OFPacketOut.MINIMUM_LENGTH);

    // set buffer_id, in_port
    po.setBufferId(bufferId);
    po.setInPort(inPort);

    // set data - only if buffer_id == -1
    if (po.getBufferId() == OFPacketOut.BUFFER_ID_NONE) {
        if (packet == null) {
            log.error("BufferId is not set and packet data is null. " +
                      "Cannot send packetOut. " +
                    "srcSwitch={} inPort={} outPort={}",
                    new Object[] {sw, inPort, outPort});
            return;
        }
        byte[] packetData = packet.serialize();
        poLength += packetData.length;
        po.setPacketData(packetData);
    }

    po.setLength(poLength);

    try {
        counterStore.updatePktOutFMCounterStore(sw, po);
        messageDamper.write(sw, po, cntx, flush);
    } catch (IOException e) {
        log.error("Failure writing packet out", e);
    }
}
 
开发者ID:vishalshubham,项目名称:Multipath-Hedera-system-in-Floodlight-controller,代码行数:82,代码来源:ForwardingBase.java

示例3: pushPacket

import org.openflow.protocol.OFPacketOut; //导入方法依赖的package包/类
private void pushPacket(IOFSwitch sw, OFPacketIn pi,
		ArrayList<Link> outLinks, FloodlightContext cntx) {
	// TODO Auto-generated method stub
	if (pi == null) {
           return;
       }
	
	if (log.isTraceEnabled()) {
           log.trace("PacketOut srcSwitch={} pi={}",
                     new Object[] {sw, pi});
       }

       OFPacketOut po =
               (OFPacketOut) floodlightProvider.getOFMessageFactory()
                                               .getMessage(OFType.PACKET_OUT);

       // set actions
       List<OFAction> actions = new ArrayList<OFAction>();
       for(Link link: outLinks){
       	Short outport = link.getOtherPort(sw.getId());
       	OFActionOutput action = new OFActionOutput(outport, (short) 0xffff);
           actions.add(action);
       }
       po.setActions(actions)
       	.setActionsLength((short) (OFActionOutput.MINIMUM_LENGTH *
               outLinks.size()));
       
       short poLength =
               (short) (po.getActionsLength() + OFPacketOut.MINIMUM_LENGTH);
       int bufferID = pi.getBufferId();
       if( bufferID!=0 && bufferID != OFPacketOut.BUFFER_ID_NONE)
           po.setBufferId(pi.getBufferId());
       else {
           po.setBufferId(OFPacketOut.BUFFER_ID_NONE);
       }
       if (po.getBufferId() == OFPacketOut.BUFFER_ID_NONE) {
           byte[] packetData = pi.getPacketData();
           poLength += packetData.length;
           po.setPacketData(packetData);
       }
       po.setInPort(pi.getInPort());
       po.setLength(poLength);
       try {
           counterStore.updatePktOutFMCounterStoreLocal(sw, po);
           messageDamper.write(sw, po, cntx);
       } catch (IOException e) {
           log.error("Failure writing packet out", e);
       }

}
 
开发者ID:daniel666,项目名称:multicastSDN,代码行数:51,代码来源:IGMPCapture.java

示例4: pushPacket

import org.openflow.protocol.OFPacketOut; //导入方法依赖的package包/类
public void pushPacket(IPacket packet, 
                       IOFSwitch sw,
                       int bufferId,
                       short inPort,
                       short outPort,
                       Long nextHopSwitchDPID,
                       ListenerContext cntx,
                       boolean flush) {

    if (log.isTraceEnabled()) {
        log.trace("PacketOut srcSwitch={} inPort={} outPort={}", 
                  new Object[] {sw, inPort, outPort});
    }

    OFPacketOut po =
            (OFPacketOut) controllerProvider.getOFMessageFactory()
                                            .getMessage(OFType.PACKET_OUT);

    // set actions
    int actionsLength = 0;
    List<OFAction> actions = new ArrayList<OFAction>();

    Short tunnelPort = tunnelManager.getTunnelPortNumber(sw.getId());
    if (tunnelPort != null && tunnelPort.shortValue() == outPort) {
        if (nextHopSwitchDPID == null) {
            log.error("No IP address assigned for tunnel port. sw = {}",
                    nextHopSwitchDPID);
            return;
        }
        Integer ipAddr = 
                tunnelManager.getTunnelIPAddr(nextHopSwitchDPID.longValue());

        if (ipAddr == null) {
            log.error("IP Address of tunnel port is not defined. {}",
                      nextHopSwitchDPID);
            return;
        }
        OFActionTunnelDstIP tunnelDstAction =
                new OFActionTunnelDstIP(ipAddr.intValue());
        actions.add(tunnelDstAction);
        actionsLength += tunnelDstAction.getLengthU();
    }

    // Output action should be set after the tunnel destination, if present
    actions.add(new OFActionOutput(outPort, (short) 0xffff));

    po.setActions(actions)
      .setActionsLength((short) (OFActionOutput.MINIMUM_LENGTH +
                        actionsLength));
    short poLength =
            (short) (po.getActionsLength() + OFPacketOut.MINIMUM_LENGTH);

    // set buffer_id, in_port
    po.setBufferId(bufferId);
    po.setInPort(inPort);

    // set data - only if buffer_id == -1
    if (po.getBufferId() == OFPacketOut.BUFFER_ID_NONE) {
        if (packet == null) {
            log.error("BufferId is not set and packet data is null. " +
                      "Cannot send packetOut. " +
                    "srcSwitch={} inPort={} outPort={}",
                    new Object[] {sw, inPort, outPort});
            return;
        }
        byte[] packetData = packet.serialize();
        poLength += packetData.length;
        po.setPacketData(packetData);
    }

    po.setLength(poLength);

    try {
        counterStore.updatePktOutFMCounterStoreLocal(sw, po);
        messageDamper.write(sw, po, cntx, flush);
    } catch (IOException e) {
        log.error("Failure writing packet out", e);
    }
}
 
开发者ID:opendaylight,项目名称:archived-net-virt-platform,代码行数:80,代码来源:Forwarding.java

示例5: pushPacket

import org.openflow.protocol.OFPacketOut; //导入方法依赖的package包/类
/**
 * used to push any packet - borrowed routine from Forwarding
 * 
 * @param OFPacketIn pi
 * @param IOFSwitch sw
 * @param int bufferId
 * @param short inPort
 * @param short outPort
 * @param ListenerContext cntx
 * @param boolean flush
 */    
public void pushPacket(IPacket packet, 
                       IOFSwitch sw,
                       int bufferId,
                       short inPort,
                       short outPort, 
                       ListenerContext cntx,
                       boolean flush) {
    if (log.isTraceEnabled()) {
        log.trace("PacketOut srcSwitch={} inPort={} outPort={}", 
                  new Object[] {sw, inPort, outPort});
    }

    OFPacketOut po =
            (OFPacketOut) controllerProvider.getOFMessageFactory()
                                            .getMessage(OFType.PACKET_OUT);

    // set actions
    List<OFAction> actions = new ArrayList<OFAction>();
    actions.add(new OFActionOutput(outPort, (short) 0xffff));

    po.setActions(actions)
      .setActionsLength((short) OFActionOutput.MINIMUM_LENGTH);
    short poLength =
            (short) (po.getActionsLength() + OFPacketOut.MINIMUM_LENGTH);

    // set buffer_id, in_port
    po.setBufferId(bufferId);
    po.setInPort(inPort);

    // set data - only if buffer_id == -1
    if (po.getBufferId() == OFPacketOut.BUFFER_ID_NONE) {
        if (packet == null) {
            log.error("BufferId is not set and packet data is null. " +
                      "Cannot send packetOut. " +
                    "srcSwitch={} inPort={} outPort={}",
                    new Object[] {sw, inPort, outPort});
            return;
        }
        byte[] packetData = packet.serialize();
        poLength += packetData.length;
        po.setPacketData(packetData);
    }

    po.setLength(poLength);

    try {
        counterStore.updatePktOutFMCounterStoreLocal(sw, po);
        messageDamper.write(sw, po, cntx, flush);
    } catch (IOException e) {
        log.error("Failure writing packet out", e);
    }
}
 
开发者ID:opendaylight,项目名称:archived-net-virt-platform,代码行数:64,代码来源:LoadBalancer.java

示例6: pushPacket

import org.openflow.protocol.OFPacketOut; //导入方法依赖的package包/类
/**
 * Pushes a packet-out to a switch. If bufferId != BUFFER_ID_NONE we 
 * assume that the packetOut switch is the same as the packetIn switch
 * and we will use the bufferId 
 * Caller needs to make sure that inPort and outPort differs
 * @param packet    packet data to send
 * @param sw        switch from which packet-out is sent
 * @param bufferId  bufferId
 * @param inPort    input port
 * @param outPort   output port
 * @param cntx      context of the packet
 * @param flush     force to flush the packet.
 */
@LogMessageDocs({
    @LogMessageDoc(level="ERROR",
        message="BufferId is not and packet data is null. " +
                "Cannot send packetOut. " +
                "srcSwitch={dpid} inPort={port} outPort={port}",
        explanation="The switch send a malformed packet-in." +
                    "The packet will be dropped",
        recommendation=LogMessageDoc.REPORT_SWITCH_BUG),
    @LogMessageDoc(level="ERROR",
        message="Failure writing packet out",
        explanation="An I/O error occurred while writing a " +
                "packet out to a switch",
        recommendation=LogMessageDoc.CHECK_SWITCH),            
})
public void pushPacket(IPacket packet, 
                       IOFSwitch sw,
                       int bufferId,
                       short inPort,
                       short outPort, 
                       FloodlightContext cntx,
                       boolean flush) {
    
    
    if (log.isTraceEnabled()) {
        log.trace("PacketOut srcSwitch={} inPort={} outPort={}", 
                  new Object[] {sw, inPort, outPort});
    }

    OFPacketOut po =
            (OFPacketOut) floodlightProvider.getOFMessageFactory()
                                            .getMessage(OFType.PACKET_OUT);

    // set actions
    List<OFAction> actions = new ArrayList<OFAction>();
    actions.add(new OFActionOutput(outPort, (short) 0xffff));

    po.setActions(actions)
      .setActionsLength((short) OFActionOutput.MINIMUM_LENGTH);
    short poLength =
            (short) (po.getActionsLength() + OFPacketOut.MINIMUM_LENGTH);

    // set buffer_id, in_port
    po.setBufferId(bufferId);
    po.setInPort(inPort);

    // set data - only if buffer_id == -1
    if (po.getBufferId() == OFPacketOut.BUFFER_ID_NONE) {
        if (packet == null) {
            log.error("BufferId is not set and packet data is null. " +
                      "Cannot send packetOut. " +
                    "srcSwitch={} inPort={} outPort={}",
                    new Object[] {sw, inPort, outPort});
            return;
        }
        byte[] packetData = packet.serialize();
        poLength += packetData.length;
        po.setPacketData(packetData);
    }

    po.setLength(poLength);

    try {
        counterStore.updatePktOutFMCounterStore(sw, po);
        messageDamper.write(sw, po, cntx, flush);
    } catch (IOException e) {
        log.error("Failure writing packet out", e);
    }
}
 
开发者ID:jimmyoic,项目名称:floodlight-qosmanager,代码行数:82,代码来源:ForwardingBase.java


注:本文中的org.openflow.protocol.OFPacketOut.getBufferId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。