/** * @param name name * @return a new MacAddress object. */ public static MacAddress getByName(String name) { Matcher m = HEX_SEPARATOR_PATTERN.matcher(name); m.find(); return getByName(name, m.group(1)); }
@Override protected Packet getWholePacket() { EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("aa:bb:cc:dd:ee:ff")) .srcAddr(MacAddress.getByName("11:22:33:44:55:66")) .type(EtherType.getInstance((short) packet.length())) .payloadBuilder(new SimpleBuilder(packet)) .paddingAtBuild(true); return eb.build(); }
@Override protected Packet getWholePacket() { EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("aa:bb:cc:dd:ee:ff")) .srcAddr(MacAddress.getByName("11:22:33:44:55:66")) .type(EtherType.getInstance((short) packet.length())) .payloadBuilder(new SimpleBuilder(packet)) .paddingAtBuild(true); return eb.build(); }
public ArpPacketTest() { this.hardwareType = ArpHardwareType.ETHERNET; this.protocolType = EtherType.IPV4; this.hardwareLength = (byte) MacAddress.SIZE_IN_BYTES; this.protocolLength = (byte) ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES; this.srcHardwareAddr = MacAddress.getByName("fe:00:00:00:00:01"); this.dstHardwareAddr = MacAddress.ETHER_BROADCAST_ADDRESS; try { this.srcProtocolAddr = InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 1}); this.dstProtocolAddr = InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 2}); } catch (UnknownHostException e) { throw new AssertionError(); } this.operation = ArpOperation.REQUEST; ArpPacket.Builder ab = new ArpPacket.Builder(); ab.hardwareType(hardwareType) .protocolType(protocolType) .hardwareAddrLength(hardwareLength) .protocolAddrLength(protocolLength) .srcHardwareAddr(srcHardwareAddr) .dstHardwareAddr(dstHardwareAddr) .srcProtocolAddr(srcProtocolAddr) .dstProtocolAddr(dstProtocolAddr) .operation(operation); this.packet = ab.build(); }
@Override protected Packet getWholePacket() { EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(packet.getBuilder()) .paddingAtBuild(true); eb.get(UdpPacket.Builder.class) .dstAddr(packet.getHeader().getDstAddr()) .srcAddr(packet.getHeader().getSrcAddr()); return eb.build(); }
@Override protected Packet getWholePacket() { Inet6Address srcAddr; Inet6Address dstAddr; try { srcAddr = (Inet6Address) InetAddress.getByName("2001:db8::3:2:1"); dstAddr = (Inet6Address) InetAddress.getByName("2001:db8::3:2:2"); } catch (UnknownHostException e) { throw new AssertionError(); } IpV6Packet.Builder IpV6b = new IpV6Packet.Builder(); IpV6b.version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.SCTP) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder(packet.getBuilder()) .correctLengthAtBuild(true); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(IpV6b) .paddingAtBuild(true); return eb.build(); }
public SnapPacketTest() { ArpPacket.Builder ab = new ArpPacket.Builder(); try { ab.hardwareType(ArpHardwareType.ETHERNET) .protocolType(EtherType.IPV4) .hardwareAddrLength((byte) MacAddress.SIZE_IN_BYTES) .protocolAddrLength((byte) ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES) .srcHardwareAddr(MacAddress.getByName("fe:00:00:00:00:01")) .dstHardwareAddr(MacAddress.ETHER_BROADCAST_ADDRESS) .srcProtocolAddr( InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 1})) .dstProtocolAddr( InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 2})) .operation(ArpOperation.REQUEST); } catch (UnknownHostException e) { throw new AssertionError(); } this.oui = Oui.CISCO_00000C; this.protocolId = EtherType.ARP; SnapPacket.Builder db = new SnapPacket.Builder(); db.oui(oui).protocolId(protocolId).payloadBuilder(ab); this.packet = db.build(); }
public Dot1qVlanTaggedPacketTest() { ArpPacket.Builder ab = new ArpPacket.Builder(); try { ab.hardwareType(ArpHardwareType.ETHERNET) .protocolType(EtherType.IPV4) .hardwareAddrLength((byte) MacAddress.SIZE_IN_BYTES) .protocolAddrLength((byte) ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES) .srcHardwareAddr(MacAddress.getByName("fe:00:00:00:00:01")) .dstHardwareAddr(MacAddress.ETHER_BROADCAST_ADDRESS) .srcProtocolAddr( InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 1})) .dstProtocolAddr( InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 2})) .operation(ArpOperation.REQUEST); } catch (UnknownHostException e) { throw new AssertionError(); } this.priority = (byte) 3; this.cfi = false; this.vid = (short) 123; this.type = EtherType.ARP; Dot1qVlanTagPacket.Builder db = new Dot1qVlanTagPacket.Builder(); db.priority(priority).cfi(cfi).vid(vid).type(type).payloadBuilder(ab); this.packet = db.build(); }
@Override protected Packet getWholePacket() throws UnknownHostException { IpV4Packet.Builder ipv4b = new IpV4Packet.Builder(); ipv4b .version(IpVersion.IPV4) .tos(IpV4Rfc1349Tos.newInstance((byte) 0)) .identification((short) 100) .ttl((byte) 100) .protocol(IpNumber.ICMPV4) .srcAddr( (Inet4Address) InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 1})) .dstAddr( (Inet4Address) InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 2})) .payloadBuilder(packet.getBuilder().correctChecksumAtBuild(true)) .correctChecksumAtBuild(true) .correctLengthAtBuild(true); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV4) .payloadBuilder(ipv4b) .paddingAtBuild(true); return eb.build(); }
public LlcUnnumberedPacketTest() { ArpPacket.Builder ab = new ArpPacket.Builder(); try { ab.hardwareType(ArpHardwareType.ETHERNET) .protocolType(EtherType.IPV4) .hardwareAddrLength((byte) MacAddress.SIZE_IN_BYTES) .protocolAddrLength((byte) ByteArrays.INET4_ADDRESS_SIZE_IN_BYTES) .srcHardwareAddr(MacAddress.getByName("fe:00:00:00:00:01")) .dstHardwareAddr(MacAddress.ETHER_BROADCAST_ADDRESS) .srcProtocolAddr( InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 1})) .dstProtocolAddr( InetAddress.getByAddress(new byte[] {(byte) 192, (byte) 0, (byte) 2, (byte) 2})) .operation(ArpOperation.REQUEST); } catch (UnknownHostException e) { throw new AssertionError(); } this.dsap = this.ssap = LlcNumber.ARP; this.control = new LlcControlUnnumbered.Builder() .modifierFunction(LlcControlModifierFunction.UI) .pfBit(false) .build(); LlcPacket.Builder db = new LlcPacket.Builder(); db.dsap(dsap).ssap(ssap).control(control).payloadBuilder(ab); this.packet = db.build(); }
@Override protected Packet getWholePacket() { IpV6Packet.Builder IpV6b = new IpV6Packet.Builder(); IpV6b.version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.IPV6_HOPOPT) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder(packet.getBuilder()) .correctLengthAtBuild(true); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(IpV6b) .paddingAtBuild(true); eb.get(UdpPacket.Builder.class).dstAddr(dstAddr).srcAddr(srcAddr); return eb.build(); }
@Override protected Packet getWholePacket() { IpV6Packet.Builder IpV6b = new IpV6Packet.Builder(); IpV6b.version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.IPV6_ROUTE) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder(packet.getBuilder()) .correctLengthAtBuild(true); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(IpV6b) .paddingAtBuild(true); eb.get(UdpPacket.Builder.class).dstAddr(dstAddr).srcAddr(srcAddr); return eb.build(); }
@Override protected Packet getWholePacket() { IpV6Packet.Builder ipv6b = new IpV6Packet.Builder(); ipv6b .version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.ICMPV6) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .correctLengthAtBuild(true) .payloadBuilder( packet.getBuilder().srcAddr(srcAddr).dstAddr(dstAddr).correctChecksumAtBuild(true)); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(ipv6b) .paddingAtBuild(true); return eb.build(); }
@Override protected Packet getWholePacket() { IpV6Packet.Builder IpV6b = new IpV6Packet.Builder(); IpV6b.version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.IPV6_DST_OPTS) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder(packet.getBuilder().correctLengthAtBuild(true)) .correctLengthAtBuild(true); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(IpV6b) .paddingAtBuild(true); eb.get(UdpPacket.Builder.class).dstAddr(dstAddr).srcAddr(srcAddr); return eb.build(); }
@Override protected Packet getWholePacket() { IpV6Packet.Builder IpV6b = new IpV6Packet.Builder(); IpV6b.version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.UDP) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder(packet.getBuilder().correctChecksumAtBuild(true).correctLengthAtBuild(true)) .correctLengthAtBuild(true); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(IpV6b) .paddingAtBuild(true); eb.get(UdpPacket.Builder.class).dstAddr(dstAddr).srcAddr(srcAddr); return eb.build(); }
@Override protected Packet getWholePacket() { IpV6Packet.Builder ipv6b = new IpV6Packet.Builder(); ipv6b .version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .payloadLength((short) 28) .nextHeader(IpNumber.getInstance((byte) 254)) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .correctLengthAtBuild(false) .payloadBuilder(packet.getBuilder()); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV6) .payloadBuilder(ipv6b) .paddingAtBuild(true); eb.get(UdpPacket.Builder.class).dstAddr(srcAddr).srcAddr(dstAddr); return eb.build(); }
@Override protected Packet getWholePacket() { IpV4Packet.Builder IpV4b = new IpV4Packet.Builder(); IpV4b.version(IpVersion.IPV4) .tos(IpV4Rfc1349Tos.newInstance((byte) 0)) .identification((short) 100) .ttl((byte) 100) .protocol(IpNumber.TCP) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder( packet .getBuilder() .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .paddingAtBuild(true)) .correctChecksumAtBuild(true) .correctLengthAtBuild(true) .paddingAtBuild(true); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(MacAddress.getByName("fe:00:00:00:00:02")) .srcAddr(MacAddress.getByName("fe:00:00:00:00:01")) .type(EtherType.IPV4) .payloadBuilder(IpV4b) .paddingAtBuild(true); eb.get(TcpPacket.Builder.class).dstAddr(dstAddr).srcAddr(srcAddr); return eb.build(); }