@Test public void testNewPacket() { try { LlcPacket p = LlcPacket.newPacket(packet.getRawData(), 0, packet.getRawData().length); assertEquals(packet, p); } catch (IllegalRawDataException e) { throw new AssertionError(e); } }
@Override public LlcPacket build() { return new LlcPacket(this); } }
@Override public Packet newInstance(byte[] rawData, int offset, int length, EtherType number) { if (rawData == null || number == null) { StringBuilder sb = new StringBuilder(40); sb.append("rawData: ").append(rawData).append(" number: ").append(number); throw new NullPointerException(sb.toString()); } PacketInstantiater instantiater = instantiaters.get(number); if (instantiater != null) { try { return instantiater.newInstance(rawData, offset, length); } catch (IllegalRawDataException e) { return IllegalPacket.newPacket(rawData, offset, length); } } if ((number.value() & 0xFFFF) <= EtherType.IEEE802_3_MAX_LENGTH) { try { return LlcPacket.newPacket(rawData, offset, length); } catch (IllegalRawDataException e) { IllegalPacket.newPacket(rawData, offset, length); } } return newInstance(rawData, offset, length); } }
@Override protected Packet getWholePacket() { EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(((ArpPacket) packet.getPayload()).getHeader().getDstHardwareAddr()) .srcAddr(((ArpPacket) packet.getPayload()).getHeader().getSrcHardwareAddr()) .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(); }
@Test public void testGetHeader() { LlcHeader h = packet.getHeader(); assertEquals(dsap, h.getDsap()); assertEquals(ssap, h.getSsap()); assertEquals(control, h.getControl()); } }
@Override public Packet newInstance(byte[] rawData, int offset, int length, EtherType number) { if (rawData == null || number == null) { StringBuilder sb = new StringBuilder(40); sb.append("rawData: ").append(rawData).append(" number: ").append(number); throw new NullPointerException(sb.toString()); } PacketInstantiater instantiater = instantiaters.get(number); if (instantiater != null) { try { return instantiater.newInstance(rawData, offset, length); } catch (IllegalRawDataException e) { return IllegalPacket.newPacket(rawData, offset, length); } } if ((number.value() & 0xFFFF) <= EtherType.IEEE802_3_MAX_LENGTH) { try { return LlcPacket.newPacket(rawData, offset, length); } catch (IllegalRawDataException e) { IllegalPacket.newPacket(rawData, offset, length); } } return newInstance(rawData, offset, length); } }
@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(); }
@Test public void testGetHeader() { LlcHeader h = packet.getHeader(); assertEquals(dsap, h.getDsap()); assertEquals(ssap, h.getSsap()); assertEquals(control, h.getControl()); } }
@Test public void testNewPacket() { try { LlcPacket p = LlcPacket.newPacket(packet.getRawData(), 0, packet.getRawData().length); assertEquals(packet, p); } catch (IllegalRawDataException e) { throw new AssertionError(e); } }
/** * A static factory method. This method validates the arguments by {@link * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. * * @param rawData rawData * @param offset offset * @param length length * @return a new LlcPacket object. * @throws IllegalRawDataException if parsing the raw data fails. */ public static LlcPacket newPacket(byte[] rawData, int offset, int length) throws IllegalRawDataException { ByteArrays.validateBounds(rawData, offset, length); return new LlcPacket(rawData, offset, length); }
@Override protected Packet getWholePacket() { LlcPacket llc = new LlcPacket.Builder() .dsap(LlcNumber.SNAP) .ssap(LlcNumber.SNAP) .control( new LlcControlUnnumbered.Builder() .modifierFunction(LlcControlModifierFunction.UI) .pfBit(false) .build()) .payloadBuilder(new SimpleBuilder(packet)) .build(); EthernetPacket.Builder eb = new EthernetPacket.Builder(); eb.dstAddr(((ArpPacket) packet.getPayload()).getHeader().getDstHardwareAddr()) .srcAddr(((ArpPacket) packet.getPayload()).getHeader().getSrcHardwareAddr()) .type(EtherType.getInstance((short) llc.length())) .payloadBuilder(new SimpleBuilder(llc)) .paddingAtBuild(true); return eb.build(); }
@Test public void testGetHeader() { LlcHeader h = packet.getHeader(); assertEquals(dsap, h.getDsap()); assertEquals(ssap, h.getSsap()); assertEquals(control, h.getControl()); } }
@Test public void testNewPacket() { try { LlcPacket p = LlcPacket.newPacket(packet.getRawData(), 0, packet.getRawData().length); assertEquals(packet, p); } catch (IllegalRawDataException e) { throw new AssertionError(e); } }
@Override public LlcPacket build() { return new LlcPacket(this); } }
/** * A static factory method. This method validates the arguments by {@link * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. * * @param rawData rawData * @param offset offset * @param length length * @return a new LlcPacket object. * @throws IllegalRawDataException if parsing the raw data fails. */ public static LlcPacket newPacket(byte[] rawData, int offset, int length) throws IllegalRawDataException { ByteArrays.validateBounds(rawData, offset, length); return new LlcPacket(rawData, offset, length); }