• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java IPacket类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中net.floodlightcontroller.packet.IPacket的典型用法代码示例。如果您正苦于以下问题:Java IPacket类的具体用法?Java IPacket怎么用?Java IPacket使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



IPacket类属于net.floodlightcontroller.packet包,在下文中一共展示了IPacket类的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: createPacketIn

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
private OFPacketIn createPacketIn(String srcMAC, String dstMAC,
                                  String srcIp, String dstIp, short vlan) {
    IPacket testPacket = new Ethernet()
    .setDestinationMACAddress(dstMAC)
    .setSourceMACAddress(srcMAC)
    .setVlanID(vlan)
    .setEtherType(EthType.IPv4)
    .setPayload(
            new IPv4()
            .setTtl((byte) 128)
            .setSourceAddress(srcIp)
            .setDestinationAddress(dstIp)
            .setPayload(new UDP()
            .setSourcePort((short) 5000)
            .setDestinationPort((short) 5001)
            .setPayload(new Data(new byte[] {0x01}))));
    byte[] testPacketSerialized = testPacket.serialize();
    OFPacketIn pi;
    // build out input packet
    pi = OFFactories.getFactory(OFVersion.OF_13).buildPacketIn()
            .setBufferId(OFBufferId.NO_BUFFER)
            .setData(testPacketSerialized)
            .setReason(OFPacketInReason.NO_MATCH)
            .build();
    return pi;
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:27,代码来源:LinkDiscoveryManagerTest.java


示例2: sendArpReply

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
private void sendArpReply(MacAddress senderMac, IPv4Address senderIp, MacAddress targetMac, IPv4Address targetIp, IOFSwitch sw, OFPort port) {
	IPacket arpReply = new Ethernet()
		.setSourceMACAddress(senderMac)
		.setDestinationMACAddress(targetMac)
		.setEtherType(EthType.ARP)
		.setPayload(
			new ARP()
			.setHardwareType(ARP.HW_TYPE_ETHERNET)
			.setProtocolType(ARP.PROTO_TYPE_IP)
			.setHardwareAddressLength((byte) 6)
			.setProtocolAddressLength((byte) 4)
			.setOpCode(ARP.OP_REPLY)
			.setSenderHardwareAddress(senderMac.getBytes())
			.setSenderProtocolAddress(senderIp.getBytes())
			.setTargetHardwareAddress(targetMac.getBytes())
			.setTargetProtocolAddress(targetIp.getBytes()));
       pushPacket(arpReply, sw, OFBufferId.NO_BUFFER, OFPort.ANY, port);
}
 
开发者ID:nsg-ethz,项目名称:iTAP-controller,代码行数:19,代码来源:ObfuscationController.java


示例3: setPacketIn

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
protected void setPacketIn(IPacket packet) {
    byte[] serializedPacket = packet.serialize();
    // Build the PacketIn
    this.packetIn = ((OFPacketIn) mockFloodlightProvider.getOFMessageFactory().getMessage(OFType.PACKET_IN))
            .setBufferId(-1)
            .setInPort((short) 1)
            .setPacketData(serializedPacket)
            .setReason(OFPacketInReason.NO_MATCH)
            .setTotalLength((short) serializedPacket.length);

    // Add the packet to the context store
    IFloodlightProviderService.bcStore.
    put(cntx,
            IFloodlightProviderService.CONTEXT_PI_PAYLOAD,
            (Ethernet)packet);
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:17,代码来源:FirewallTest.java


示例4: setPacketIn

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
protected void setPacketIn(IPacket packet) {
    byte[] serializedPacket = packet.serialize();
    // Build the PacketIn
    this.packetIn = ((OFPacketIn) mockFloodlightProvider.getOFMessageFactory().getMessage(OFType.PACKET_IN))
            .setBufferId(-1)
            .setInPort((short) 1)
            .setPacketData(serializedPacket)
            .setReason(OFPacketInReason.NO_MATCH)
            .setTotalLength((short) serializedPacket.length);

    // Add the packet to the context store
    IFloodlightProviderService.bcStore.
    put(cntx, 
            IFloodlightProviderService.CONTEXT_PI_PAYLOAD, 
            (Ethernet)packet);
}
 
开发者ID:vishalshubham,项目名称:Multipath-Hedera-system-in-Floodlight-controller,代码行数:17,代码来源:FirewallTest.java


示例5: generateICMPPing

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
protected byte[] generateICMPPing(InetAddress ip, MACAddress mac){
	targetIP = ip;
	targetMAC = mac;
	IPacket packet = new IPv4()
          .setProtocol(IPv4.PROTOCOL_ICMP)
          .setSourceAddress(ControllerIP)
          .setDestinationAddress(ip.hashCode())  //this is tricky
          .setPayload(new ICMP()
                          .setIcmpType((byte) 8)
                          .setIcmpCode((byte) 0)
                          .setPayload(new Data(new byte[]
                                      {0x76, (byte) 0xf2, 0x0, 0x2, 0x1, 0x1, 0x1}))
                     );
       Ethernet ethernet = new Ethernet().setSourceMACAddress(senderMAC.toBytes())
       						 .setDestinationMACAddress(targetMAC.toBytes())
       						 .setEtherType(Ethernet.TYPE_IPv4);
       
       ethernet.setPayload(packet);
       
       return ethernet.serialize();
}
 
开发者ID:xuraylei,项目名称:floodlight_with_topoguard,代码行数:22,代码来源:TopoloyUpdateChecker.java


示例6: createPacketIn

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
private OFPacketIn createPacketIn(String srcMAC, String dstMAC,
                                  String srcIp, String dstIp, short vlan) {
    IPacket testPacket = new Ethernet()
    .setDestinationMACAddress(dstMAC)
    .setSourceMACAddress(srcMAC)
    .setVlanID(vlan)
    .setEtherType(Ethernet.TYPE_IPv4)
    .setPayload(
            new IPv4()
            .setTtl((byte) 128)
            .setSourceAddress(srcIp)
            .setDestinationAddress(dstIp)
            .setPayload(new UDP()
            .setSourcePort((short) 5000)
            .setDestinationPort((short) 5001)
            .setPayload(new Data(new byte[] {0x01}))));
    byte[] testPacketSerialized = testPacket.serialize();
    OFPacketIn pi;
    // build out input packet
    pi = OFFactories.getFactory(OFVersion.OF_13).buildPacketIn()
            .setBufferId(OFBufferId.NO_BUFFER)
            .setData(testPacketSerialized)
            .setReason(OFPacketInReason.NO_MATCH)
            .build();
    return pi;
}
 
开发者ID:pixuan,项目名称:floodlight,代码行数:27,代码来源:LinkDiscoveryManagerTest.java


示例7: prepareOFPacketIn

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
public static OFPacketIn prepareOFPacketIn(String destAddress) {
    IPacket iPacket = new Ethernet()
            .setDestinationMACAddress("00:11:22:33:44:55")
            .setSourceMACAddress("00:44:33:22:11:00")
            .setEtherType(Ethernet.TYPE_IPv4)
            .setPayload(
                    new IPv4()
                    .setTtl((byte) 128)
                    .setSourceAddress("192.168.1.1")
                    .setDestinationAddress(destAddress)
                    .setPayload(new UDP()
                            .setSourcePort((short) 5000)
                            .setDestinationPort((short) 5001)
                            .setPayload(new Data(new byte[]{0x01}))));

    byte[] iPacketSerialized = iPacket.serialize();

    return new OFPacketIn()
            .setBufferId(-1)
            .setInPort((short) 1)
            .setPacketData(iPacketSerialized)
            .setReason(OFPacketIn.OFPacketInReason.NO_MATCH)
            .setTotalLength((short) iPacketSerialized.length);
}
 
开发者ID:smartenit-eu,项目名称:smartenit,代码行数:25,代码来源:TestSetUpHelper.java


示例8: deserialize

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
public IPacket deserialize(byte[] data, int offset, int length) {
    ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
    LLDPTLV tlv;
    do {
        tlv = new LLDPTLV().deserialize(bb);

        // if there was a failure to deserialize stop processing TLVs
        if (tlv == null)
            break;
        switch (tlv.getType()) {
            case 0x0:
                // can throw this one away, its just an end delimiter
                break;
            case 0x1:
                this.chassisId = tlv;
                break;
            case 0x2:
                this.portId = tlv;
                break;
            case 0x3:
                this.ttl = tlv;
                break;
            default:
                this.optionalTLVList.add(tlv);
                break;
        }
    } while (tlv.getType() != 0 && bb.hasRemaining());
    return this;
}
 
开发者ID:telstra,项目名称:open-kilda,代码行数:30,代码来源:VerificationPacket.java


示例9: setUp

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
@Before
public void setUp() throws Exception {

    super.setUp();

    OFPacketOut packetOut = pvs.generateVerificationPacket(sw1, OFPort.of(1));

    ofPacketIn = EasyMock.createMock(OFPacketIn.class);

    context = new FloodlightContext();

    expect(ofPacketIn.getType()).andReturn(OFType.PACKET_IN).anyTimes();
    expect(ofPacketIn.getXid()).andReturn(0L).anyTimes();
    expect(ofPacketIn.getVersion()).andReturn(packetOut.getVersion()).anyTimes();

    Match match = EasyMock.createMock(Match.class);
    expect(match.get(MatchField.IN_PORT)).andReturn(OFPort.of(1)).anyTimes();
    replay(match);
    expect(ofPacketIn.getMatch()).andReturn(match).anyTimes();
    replay(ofPacketIn);

    IPacket expected = new Ethernet().deserialize(packetOut.getData(), 0,
            packetOut.getData().length);

    context.getStorage().put(IFloodlightProviderService.CONTEXT_PI_PAYLOAD, expected);

    HashMap<DatapathId, IOFSwitch> switches = new HashMap<>();
    switches.put(sw1.getId(), sw1);
    switches.put(sw2.getId(), sw2);
    mockSwitchManager.setSwitches(switches);

    reset(producer);

    pvs.setKafkaProducer(producer);
}
 
开发者ID:telstra,项目名称:open-kilda,代码行数:36,代码来源:PathVerificationPacketSignTest.java


示例10: testSignPacketMissedSign

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
@Test
public void testSignPacketMissedSign() throws PacketParsingException, FloodlightModuleException {
    OFPacketOut noSignPacket = pvs.generateVerificationPacket(sw1, OFPort.of(1), null, false);
    IPacket noSignPacketData = new Ethernet().deserialize(noSignPacket.getData(), 0,
            noSignPacket.getData().length);
    context.getStorage().put(IFloodlightProviderService.CONTEXT_PI_PAYLOAD, noSignPacketData);
    expect(producer.send(anyObject())).andThrow(new AssertionFailedError()).anyTimes();
    replay(producer);
    assertEquals(Command.STOP, pvs.receive(sw2, ofPacketIn, context));
    verify(producer);
}
 
开发者ID:telstra,项目名称:open-kilda,代码行数:12,代码来源:PathVerificationPacketSignTest.java


示例11: getPacket

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
protected IPacket getPacket() {
    UDP udp = new UDP()
            .setDestinationPort(
                    TransportPort.of(PathVerificationService.VERIFICATION_PACKET_UDP_PORT))
            .setSourcePort(
                    TransportPort.of(PathVerificationService.VERIFICATION_PACKET_UDP_PORT));

    VerificationPacket verificationPacket = new VerificationPacket()
            .setChassisId(new LLDPTLV().setType((byte) 1).setLength((short) 7)
                    .setValue(new byte[] {0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}))
            .setPortId(new LLDPTLV().setType((byte) 2).setLength((short) 3)
                    .setValue(new byte[] {0x02, 0x00, 0x01}))
            .setTtl(new LLDPTLV().setType((byte) 3).setLength((short) 2)
                    .setValue(new byte[] {0x00, 0x78}));

    udp.setPayload(new Data(verificationPacket.serialize()));

    IPv4 ip = new IPv4()
            .setSourceAddress("192.168.0.1")
            .setDestinationAddress(PathVerificationService.VERIFICATION_PACKET_IP_DST)
            .setProtocol(IpProtocol.UDP);

    Ethernet eth = new Ethernet()
            .setDestinationMACAddress("AA:BB:CC:DD:EE:FF")
            .setSourceMACAddress("11:22:33:44:55:66")
            .setEtherType(EthType.IPv4);

    eth.setPayload(ip);
    ip.setPayload(udp);

    return eth;
}
 
开发者ID:telstra,项目名称:open-kilda,代码行数:33,代码来源:PathVerificationPacketInTest.java


示例12: testDeserialize

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
@Test
public void testDeserialize() {
    Ethernet ethernet = (Ethernet) new Ethernet().deserialize(pkt, 0, pkt.length);
    assertArrayEquals(pkt, ethernet.serialize());

    IPacket expected = getPacket();
    assertArrayEquals(expected.serialize(), ethernet.serialize());
}
 
开发者ID:telstra,项目名称:open-kilda,代码行数:9,代码来源:PathVerificationPacketInTest.java


示例13: isDhcpPacket

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
/**
 * Checks to see if an Ethernet frame is a DHCP packet.
 * @param frame The Ethernet frame.
 * @return True if it is a DHCP frame, false otherwise.
 */
protected boolean isDhcpPacket(Ethernet frame) {
	IPacket payload = frame.getPayload(); // IP
	if (payload == null) return false;
	IPacket p2 = payload.getPayload(); // TCP or UDP
	if (p2 == null) return false;
	IPacket p3 = p2.getPayload(); // Application
	if ((p3 != null) && (p3 instanceof DHCP)) return true;
	return false;
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:15,代码来源:VirtualNetworkFilter.java


示例14: vipProxyArpReply

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
/**
 * used to send proxy Arp for load balanced service requests
 * @param IOFSwitch sw
 * @param OFPacketIn pi
 * @param FloodlightContext cntx
 * @param String vipId
 */

protected void vipProxyArpReply(IOFSwitch sw, OFPacketIn pi, FloodlightContext cntx, String vipId) {
    log.debug("vipProxyArpReply");
        
    Ethernet eth = IFloodlightProviderService.bcStore.get(cntx,
                                                          IFloodlightProviderService.CONTEXT_PI_PAYLOAD);

    // retrieve original arp to determine host configured gw IP address                                          
    if (! (eth.getPayload() instanceof ARP))
        return;
    ARP arpRequest = (ARP) eth.getPayload();
    
    // have to do proxy arp reply since at this point we cannot determine the requesting application type
    
    // generate proxy ARP reply
    IPacket arpReply = new Ethernet()
        .setSourceMACAddress(vips.get(vipId).proxyMac)
        .setDestinationMACAddress(eth.getSourceMACAddress())
        .setEtherType(EthType.ARP)
        .setVlanID(eth.getVlanID())
        .setPriorityCode(eth.getPriorityCode())
        .setPayload(
            new ARP()
            .setHardwareType(ARP.HW_TYPE_ETHERNET)
            .setProtocolType(ARP.PROTO_TYPE_IP)
            .setHardwareAddressLength((byte) 6)
            .setProtocolAddressLength((byte) 4)
            .setOpCode(ARP.OP_REPLY)
            .setSenderHardwareAddress(vips.get(vipId).proxyMac)
            .setSenderProtocolAddress(arpRequest.getTargetProtocolAddress())
            .setTargetHardwareAddress(eth.getSourceMACAddress())
            .setTargetProtocolAddress(arpRequest.getSenderProtocolAddress()));
            
    // push ARP reply out
    pushPacket(arpReply, sw, OFBufferId.NO_BUFFER, OFPort.ANY, (pi.getVersion().compareTo(OFVersion.OF_12) < 0 ? pi.getInPort() : pi.getMatch().get(MatchField.IN_PORT)), cntx, true);
    log.debug("proxy ARP reply pushed as {}", IPv4.fromIPv4Address(vips.get(vipId).address));
    
    return;
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:47,代码来源:LoadBalancer.java


示例15: setPacketIn

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
protected void setPacketIn(IPacket packet) {
    byte[] serializedPacket = packet.serialize();
    // Build the PacketIn
    this.packetIn = OFFactories.getFactory(OFVersion.OF_13).buildPacketIn()
            .setBufferId(OFBufferId.NO_BUFFER)
            .setMatch(OFFactories.getFactory(OFVersion.OF_13).buildMatch().setExact(MatchField.IN_PORT, OFPort.of(1)).build())
            .setData(serializedPacket)
            .setReason(OFPacketInReason.NO_MATCH)
            .build();
    // Add the packet to the context store
    IFloodlightProviderService.bcStore.
    put(cntx,
            IFloodlightProviderService.CONTEXT_PI_PAYLOAD,
            (Ethernet)packet);
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:16,代码来源:FirewallTest.java


示例16: floodArpRequest

import net.floodlightcontroller.packet.IPacket; //导入依赖的package包/类
private void floodArpRequest(IOFSwitch sw, IPv4Address requestedAddress) {
	IPacket arpRequest = new Ethernet()
	.setSourceMACAddress("00:00:00:00:00:01")
	.setDestinationMACAddress("ff:ff:ff:ff:ff:ff")
	.setEtherType(EthType.ARP)
	.setVlanID((short) 0)
	.setPriorityCode((byte) 0)
	.setPayload(
			new ARP()
			.setHardwareType(ARP.HW_TYPE_ETHERNET)
			.setProtocolType(ARP.PROTO_TYPE_IP)
			.setHardwareAddressLength((byte) 6)
			.setProtocolAddressLength((byte) 4)
			.setOpCode(ARP.OP_REQUEST)
			.setSenderHardwareAddress(HexString.fromHexString("00:00:00:00:00:01"))
			.setSenderProtocolAddress(IPv4.toIPv4AddressBytes("10.0.0.111"))
			.setTargetHardwareAddress(HexString.fromHexString("00:00:00:00:00:00"))
			.setTargetProtocolAddress(requestedAddress.getBytes()));
       
       Set<OFPort> portsConnectedToSwitches = new HashSet<OFPort>();
       
       for (Link link : linkDiscoveryService.getSwitchLinks().get(sw.getId())) {
       	if (link.getSrc() == sw.getId())
       		portsConnectedToSwitches.add(link.getSrcPort());
       }
       
       for (OFPortDesc port : sw.getPorts()) {
       	if (!portsConnectedToSwitches.contains(port.getPortNo())) {
       		pushPacket(arpRequest, sw, OFBufferId.NO_BUFFER, OFPort.ANY, port.getPortNo());
       	}
       }
}
 
开发者ID:nsg-ethz,项目名称:iTAP-controller,代码行数:33,代码来源:ObfuscationController.java


示例17: pushPacket

import net.floodlightcontroller.packet.IPacket; //导入依赖的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 List<OFAction> actions
 */    
public void pushPacket(IPacket packet, 
                       IOFSwitch sw,
                       OFBufferId bufferId,
                       OFPort inPort,
                       OFPort outPort,
                       List<OFAction> actions
                       ) {
        log.trace("PacketOut srcSwitch={} inPort={} outPort={}", new Object[] {sw, inPort, outPort});

    OFPacketOut.Builder pob = sw.getOFFactory().buildPacketOut();

    // set actions
    //List<OFAction> actions = new ArrayList<OFAction>();
    actions.add(sw.getOFFactory().actions().buildOutput().setPort(outPort).setMaxLen(Integer.MAX_VALUE).build());

    pob.setActions(actions);
    
    // set buffer_id, in_port
    pob.setBufferId(bufferId);
    pob.setInPort(inPort);

    // set data - only if buffer_id == -1
    if (pob.getBufferId() == OFBufferId.NO_BUFFER) {
        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();
        pob.setData(packetData);
    }

    //counterPacketOut.increment();
    sw.write(pob.build());
}
 
开发者ID:nsg-ethz,项目名称:iTAP-controller,代码行数:48,代码来源:ObfuscationController.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ValueSource类代码示例发布时间:2022-05-21
下一篇:
Java BlobInfoFactory类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap