本文整理汇总了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;未经允许,请勿转载。 |
请发表评论