.correctChecksumAtBuild(true); 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(icmpV6b); (byte) 0x00, (byte) 0x11, (byte) 0x22, (byte) 0x33, (byte) 0x44, (byte) 0x55 }) .ipPacket(IcmpV6Helper.makePacketForRedirectHeaderOption(ipv6b.build(), 1000)) .correctLengthAtBuild(true); this.options.add(opt2.build());
public static IpV6Packet pack( final Packet payload, Inet6Address src, Inet6Address dst, int hopLimit, short id ) { IpNumber nextHeader; if (payload instanceof UdpPacket) { nextHeader = IpNumber.UDP; } else if (payload instanceof IcmpV6CommonPacket) { nextHeader = IpNumber.ICMPV6; } else if (payload instanceof TcpPacket) { nextHeader = IpNumber.TCP; } else { throw new AssertionError(); } IpV6Packet.Builder builder = new IpV6Packet.Builder(); return builder.version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte)0)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0)) .nextHeader(nextHeader) .hopLimit((byte)hopLimit) .srcAddr(src) .dstAddr(dst) .payloadBuilder(new SimpleBuilder(payload)) .correctLengthAtBuild(true) .build(); }
@Override public Builder getBuilder() { return new Builder(this); }
.toString(); IpV6Packet.Builder ipV6b = new IpV6Packet.Builder(); ipV6b .version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.IPV6_FRAG) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder(packet1.getBuilder()) .correctLengthAtBuild(true); ipV6b.payloadBuilder(packet2.getBuilder()); EthernetPacket ep2 = eb.build();
ipOutPacket = new IpV6Packet.Builder((IpV6Packet) requestPacket) .srcAddr((Inet6Address) requestPacket.getHeader().getDstAddr()) .dstAddr((Inet6Address) requestPacket.getHeader().getSrcAddr()) .correctLengthAtBuild(true) .payloadBuilder(payLoadBuilder) .build();
IpV6Packet p; b.payloadLength((short) 0); b.hopLimit((byte) 0); p = b.build(); assertEquals((short) 0, (short) p.getHeader().getPayloadLengthAsInt()); assertEquals((byte) 0, (byte) p.getHeader().getHopLimitAsInt()); b.payloadLength((short) -1); b.hopLimit((byte) -1); p = b.build(); assertEquals((short) -1, (short) p.getHeader().getPayloadLengthAsInt()); assertEquals((byte) -1, (byte) p.getHeader().getHopLimitAsInt()); b.payloadLength((short) 32767); b.hopLimit((byte) 127); p = b.build(); assertEquals((short) 32767, (short) p.getHeader().getPayloadLengthAsInt()); assertEquals((byte) 127, (byte) p.getHeader().getHopLimitAsInt()); b.payloadLength((short) -32768); b.hopLimit((byte) -128); p = b.build(); assertEquals((short) -32768, (short) p.getHeader().getPayloadLengthAsInt()); assertEquals((byte) -128, (byte) p.getHeader().getHopLimitAsInt());
ipOutPacket = new IpV6Packet.Builder((IpV6Packet) requestPacket) .srcAddr((Inet6Address) requestPacket.getHeader().getDstAddr()) .dstAddr((Inet6Address) requestPacket.getHeader().getSrcAddr()) .correctLengthAtBuild(true) .payloadBuilder(payLoadBuilder) .build();
.correctChecksumAtBuild(true); 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(icmpV6b); b.unused(unused).payload(ipv6b.build()); this.packet = b.build();
); IpPacket ipOutPacket = new IpV6Packet.Builder() .version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0)) .nextHeader(IpNumber.UDP) .srcAddr((Inet6Address) Inet6Address.getByName("::0")) .dstAddr((Inet6Address) Inet6Address.getByName("::1")) .correctLengthAtBuild(true) .payloadBuilder(payLoadBuilder) .build();
.correctChecksumAtBuild(true); 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(icmpV6b);
.correctChecksumAtBuild(true); 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(icmpV6b);
new IpV6Packet.Builder() .version(IpVersion.IPV6) .trafficClass(IpV6SimpleTrafficClass.newInstance((byte) 0x12)) .flowLabel(IpV6SimpleFlowLabel.newInstance(0x12345)) .nextHeader(IpNumber.UDP) .hopLimit((byte) 100) .srcAddr(srcAddr) .dstAddr(dstAddr) .payloadBuilder(udpb) .correctLengthAtBuild(true);
.correctChecksumAtBuild(true); 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(icmpV6b);
.payloadBuilder(packet.getBuilder().correctLengthAtBuild(true)); 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(b) .correctLengthAtBuild(true);
.correctChecksumAtBuild(true); 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(icmpV6b);
.correctChecksumAtBuild(true); 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(icmpV6b);
.correctChecksumAtBuild(true); 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(icmpV6b);
.correctChecksumAtBuild(true); 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(icmpV6b);
.correctChecksumAtBuild(true); 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(icmpV6b);