diff --git a/tools/.classpath b/tools/.classpath
deleted file mode 100644
index 205625cc4c22bb1a948a5a60fabc50af99ef925d..0000000000000000000000000000000000000000
--- a/tools/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/tools/.project b/tools/.project
deleted file mode 100644
index cee79a6d9c0dcfbb44141706cd2913f009a472e7..0000000000000000000000000000000000000000
--- a/tools/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- pcapdump
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/tools/.settings/org.eclipse.jdt.core.prefs b/tools/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bb35fa0a87b032ee9d0b128004c1edbd464f07bf..0000000000000000000000000000000000000000
--- a/tools/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/tools/PcapDump.bat b/tools/PcapDump.bat
deleted file mode 100644
index 1fd507d799a3473d026cf0952a6b6a43b6595a0e..0000000000000000000000000000000000000000
--- a/tools/PcapDump.bat
+++ /dev/null
@@ -1,19 +0,0 @@
-@echo "Starting PcapDump..."
-@title PcapDump
-
-@set JAVA_PATH=C:\Program Files\Java\jre1.8.0_101\bin
-@rem set BASE_PATH=C:\Users\garciay\Documents\ETSI\ITS
-
-@rem Home laptop
-@rem set JAVA_PATH=C:\Program Files\Java\jre1.8.0_101\bin
-@rem set JAVA_PATH=C:\Program Files (x86)\Java\jre8\bin
-@set BASE_PATH=F:\FSCOM\ETSI\ITS
-
-@set LOG_PATH=%BASE_PATH%\STF517_ITS_Valid_Conform_Frmwk.2016\workspace_eclipse\pcapdump\lib
-@set CODEC_PATH=%LOG_PATH%\PcapDump.jar
-@set JNETPCAP_PATH=%BASE_PATH%\STF517_ITS_Valid_Conform_Frmwk.2016\workspace_ttwb\STF517\tt3plugins\EtsiItsAdapter\jnetpcap-1.4.r1425\jnetpcap.jar
-
-@"%JAVA_PATH%\java.exe" -cp "%CODEC_PATH%;%JNETPCAP_PATH%" org.etsi.its.pcapdump.pcapdump
-@rem --FileName yann.pcap --NicAddr 00FF6BADBFC2 --FrameType=8947
-@rem pause
-
diff --git a/tools/PcapDump.jardesc b/tools/PcapDump.jardesc
deleted file mode 100644
index dcec9a4d075c2853c57aad6cccf41837e3b531c7..0000000000000000000000000000000000000000
--- a/tools/PcapDump.jardesc
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tools/bin/org/etsi/common/ByteHelper.class b/tools/bin/org/etsi/common/ByteHelper.class
deleted file mode 100644
index fef8374559dfe286e98db182ae2f3117f222e892..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/common/ByteHelper.class and /dev/null differ
diff --git a/tools/bin/org/etsi/common/ITuple.class b/tools/bin/org/etsi/common/ITuple.class
deleted file mode 100644
index 0ad0044427480d216ab7a29379c49c28692c07e2..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/common/ITuple.class and /dev/null differ
diff --git a/tools/bin/org/etsi/common/KPM.class b/tools/bin/org/etsi/common/KPM.class
deleted file mode 100644
index f8a5f2fe8af3c9e3b8e7ab6982bea5fd1fd3f69b..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/common/KPM.class and /dev/null differ
diff --git a/tools/bin/org/etsi/common/Tuple.class b/tools/bin/org/etsi/common/Tuple.class
deleted file mode 100644
index 9a69048106381cab04fa969e3451b7c2dc6df91e..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/common/Tuple.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$IllegalOptionValueException.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$IllegalOptionValueException.class
deleted file mode 100644
index 4fd582c600d42de7fe809746a62070492ef8c82b..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$IllegalOptionValueException.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$NotFlagException.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$NotFlagException.class
deleted file mode 100644
index 01199f0bf0d1c2a9c64246711cdb9ba3034f83b3..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$NotFlagException.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$BooleanOption.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$BooleanOption.class
deleted file mode 100644
index 45250e5c4cf65ca7691d2415bd65e9956d30e7c7..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$BooleanOption.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$DoubleOption.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$DoubleOption.class
deleted file mode 100644
index 547ad8ffc02d91d806857b7f42c5b57de14c7c72..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$DoubleOption.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$IntegerOption.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$IntegerOption.class
deleted file mode 100644
index 62f6dc1d307306d8609a2096ff402ba970eed515..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$IntegerOption.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$LongOption.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$LongOption.class
deleted file mode 100644
index 4e108eeec310b1925111d37ca8dba7e0ff743352..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$LongOption.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$StringOption.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$StringOption.class
deleted file mode 100644
index 6c91be837cf951d7773b038207c4c237de380dd9..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option$StringOption.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option.class
deleted file mode 100644
index 2442b1a0dc88166f99f4255cbacb6e30046cdacd..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$Option.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$OptionException.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$OptionException.class
deleted file mode 100644
index b54e43a72f08753b8f1f60b1c29e7220dab80d9b..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$OptionException.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$UnknownOptionException.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$UnknownOptionException.class
deleted file mode 100644
index 921ebf8776f3f9b694f74588290e815a57a7d5bb..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$UnknownOptionException.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$UnknownSuboptionException.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser$UnknownSuboptionException.class
deleted file mode 100644
index e87f730097a852b8baa15e0456ee321ca59e11bd..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser$UnknownSuboptionException.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/CmdLineParser.class b/tools/bin/org/etsi/its/pcapdump/CmdLineParser.class
deleted file mode 100644
index f35caca8f7230bb8d6a5df9d9363cb9bd59151a7..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/CmdLineParser.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/ILayer.class b/tools/bin/org/etsi/its/pcapdump/ILayer.class
deleted file mode 100644
index 80a9aa1245a8b9ad6be0f301b3c2efb715402b30..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/ILayer.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/PcapMultiplexer$1.class b/tools/bin/org/etsi/its/pcapdump/PcapMultiplexer$1.class
deleted file mode 100644
index 88f40a53fe1642745fb7c8fce1acb82f9ed98d5e..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/PcapMultiplexer$1.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/PcapMultiplexer.class b/tools/bin/org/etsi/its/pcapdump/PcapMultiplexer.class
deleted file mode 100644
index 12e506ff1aa94768e503f932f2e521106cc651db..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/PcapMultiplexer.class and /dev/null differ
diff --git a/tools/bin/org/etsi/its/pcapdump/pcapdump.class b/tools/bin/org/etsi/its/pcapdump/pcapdump.class
deleted file mode 100644
index ad4271bcbf88ca4416f511a201729e11b8dd4d99..0000000000000000000000000000000000000000
Binary files a/tools/bin/org/etsi/its/pcapdump/pcapdump.class and /dev/null differ
diff --git a/tools/itsdump.pcapng b/tools/itsdump.pcapng
deleted file mode 100644
index 07d7efd2ab1a93b3c655401a672df18bb9330a19..0000000000000000000000000000000000000000
Binary files a/tools/itsdump.pcapng and /dev/null differ
diff --git a/tools/itsdump.pcapng_1475823029887 b/tools/itsdump.pcapng_1475823029887
deleted file mode 100644
index 82d353e51e55027d3ff1eff9dc4de369b7396786..0000000000000000000000000000000000000000
Binary files a/tools/itsdump.pcapng_1475823029887 and /dev/null differ
diff --git a/tools/lib/PcapDump.jar b/tools/lib/PcapDump.jar
deleted file mode 100644
index f67ac0813a5ea190f94ccfc6e43c9592f4819365..0000000000000000000000000000000000000000
Binary files a/tools/lib/PcapDump.jar and /dev/null differ
diff --git a/tools/src/org/etsi/common/ByteHelper.java b/tools/src/org/etsi/common/ByteHelper.java
deleted file mode 100644
index b595b4c1c26e5265bc55f7bd14d304378f23dd2d..0000000000000000000000000000000000000000
--- a/tools/src/org/etsi/common/ByteHelper.java
+++ /dev/null
@@ -1,284 +0,0 @@
-package org.etsi.common;
-
-import java.nio.ByteOrder;
-
-public class ByteHelper {
-
- public static byte[] changeEndianness(byte [] in) {
- byte[] out = new byte[in.length];
- for(int i=0; i < in.length; i++) {
- out[in.length - i -1] = in[i];
- }
- return out;
- }
-
- public static byte[] intToByteArray(int value, int length, ByteOrder byteOrder) {
- if(byteOrder == ByteOrder.LITTLE_ENDIAN) {
- return changeEndianness(intToByteArray(value, length));
- }
- return intToByteArray(value, length);
- }
-
- public static byte[] intToByteArray(int value, int length) {
- byte[] b = new byte[length];
- for (int i = length - 1; i >= 0; i--) {
- int offset = (b.length - 1 - i) * 8;
- b[i] = (byte) ((value >>> offset) & 0xFF);
- }
- return b;
- }
-
- public static byte[] longToByteArray(long value, int length, ByteOrder byteOrder) {
- if(byteOrder == ByteOrder.LITTLE_ENDIAN) {
- return changeEndianness(longToByteArray(value, length));
- }
- return longToByteArray(value, length);
- }
-
- public static byte[] longToByteArray(long value, int length) {
- byte[] b = new byte[length];
- for (int i = length - 1; i >= 0; i--) {
- int offset = (b.length - 1 - i) * 8;
- b[i] = (byte) ((value >>> offset) & 0xFF);
- }
- return b;
- }
-
- /** Convert a byte array into a boolean
- *
- * @param b The byte array to convert
- * @return The boolean value on success, false otherwise
- */
- public static Boolean byteArrayToBoolean(byte[] b) {
- // Sanity check
- if ((b == null) || (b.length != 1)) {
- return null;
- }
-
- return new Boolean(b[0] == 0x01);
- } // End of method byteArrayToBoolean
-
- public static Short byteArrayToShort(final byte[] b, ByteOrder byteOrder) {
- if(byteOrder == ByteOrder.LITTLE_ENDIAN) {
- return byteArrayToShort(changeEndianness(b));
- }
- return byteArrayToShort(b);
- }
-
- /** Convert a byte array into a short value assuming that the first byte is the most significant
- *
- * @param b The byte array to convert
- * @return The short value on success, 'Integer.MAX_VALUE' otherwise
- */
- public static Short byteArrayToShort(final byte[] b) {
- // Sanity check
- if ((b == null) || ((b.length * Byte.SIZE) > Short.SIZE)) {
- return Short.MAX_VALUE;
- }
-
- short value = 0;
- for (Short i = 0; i < b.length; i++) {
- value = (short)((value << 8) + (b[i] & 0xff));
- }
-
- return new Short(value);
- } // End of method byteArrayToInt
-
- public static Integer byteArrayToInt(final byte[] b, ByteOrder byteOrder) {
- if(byteOrder == ByteOrder.LITTLE_ENDIAN) {
- return byteArrayToInt(changeEndianness(b));
- }
- return byteArrayToInt(b);
- }
-
- /** Convert a byte array into an integer assuming that the first byte is the most significant
- *
- * @param b The byte array to convert
- * @return The integer value on success, 'Integer.MAX_VALUE' otherwise
- */
- public static Integer byteArrayToInt(final byte[] b) {
- // Sanity check
- if ((b == null) || ((b.length * Byte.SIZE) > Integer.SIZE)) {
- return Integer.MAX_VALUE;
- }
-
- int value = 0;
- for (int i = 0; i < b.length; i++) {
- value = (value << 8) + (b[i] & 0xff);
- }
-
- return new Integer(value);
- } // End of method byteArrayToInt
-
- public static Long byteArrayToLong(final byte[] b, ByteOrder byteOrder) {
- if(byteOrder == ByteOrder.LITTLE_ENDIAN) {
- return byteArrayToLong(changeEndianness(b));
- }
- return byteArrayToLong(b);
- }
-
- /** Convert a byte array into a Long assuming that the first byte is the most significant
- *
- * @param b The byte array to convert
- * @return The Long value on success, 'Long.MAX_VALUE' otherwise
- */
- public static Long byteArrayToLong(final byte[] b) {
- // Sanity check
- if ((b == null) || ((b.length * Byte.SIZE) > Long.SIZE)) {
- return Long.MAX_VALUE;
- }
-
- long value = 0;
- for (int i = 0; i < b.length; i++) {
- value = (value << 8) + (b[i] & 0xff);
- }
-
- return new Long(value);
- } // End of method byteArrayToLong
-
- public static byte[] hexStringToByteArray(final String s) {
- String str = "";
- for(String ss : s.split("[^0-9A-Fa-f]")) {
- str = str + ss;
- }
- int len = str.length();
- byte[] data = new byte[len / 2];
- for (int i = 0; i < len; i += 2) {
- data[i / 2] = (byte) ((Character.digit(str.charAt(i), 16) << 4)
- + Character.digit(str.charAt(i+1), 16));
- }
- return data;
- }
-
- public static byte[] concat(byte[]... arrays) {
- int length = 0;
- for (byte[] array : arrays) {
- if(array != null) {
- length += array.length;
- }
- }
- byte[] result = new byte[length];
- int position = 0;
- for (byte[] array : arrays) {
- if(array != null) {
- System.arraycopy(array, 0, result, position, array.length);
- position += array.length;
- }
- }
- return result;
- }
-
-
- /** Extract a sub part of a byte array
- * @param array The original array
- * @param offset The offset to start the extract operation
- * @param length The number of bytes to extract
- * @return The sub part of a provided byte array
- */
- public static byte[] extract(final byte[] array, final int offset, final int length) {
- // Sanity check
- if ((array == null) || (array.length == 0) || (offset > array.length)) {
- return null;
- }
-
- byte[] result = new byte[length];
- System.arraycopy(array, offset, result, 0, length);
- return result;
- }
-
- /**
- * This method convert a byte array containing the couple (length + string) into a string
- * @param b The byte array to convert
- * @return A string value
- */
- public static String byteArrayWithLengthToString(final byte[] b) {
- // Sanity check
- if (b == null) {
- return null;
- } else if (b.length == 0) {
- return "";
- }
-
- // Extract the length of the string
- int length = byteArrayToInt(extract(b, 0, 4));
- // Extract the the string
- String result = "";
- for (int i = 0; i < length; i++) {
- result += (char)(b[4 + i]);
- } // End of 'for' statement
-
- return result;
- }
-
- public static String byteArrayToString(final byte[] buffer) {
-
- String result = "";
- if (buffer != null) {
- for(int i=0; i < buffer.length; ++i) {
- result += String.format("%02X", (byte)buffer[i]);
- }
- }
- return result;
- }
-
- /**
- * Dump a byte array in hex/ascii mode.
- * @param label The dump label
- * @param buffer The byte array to dump
- */
- public synchronized static void dump(final String label, final byte[] buffer)
- {
- if ((buffer != null) && (buffer.length != 0))
- {
- System.out.println(label);
- StringBuilder finalHexLine = new StringBuilder();
- StringBuilder finalCharLine = new StringBuilder();
- int nCounter = 0;
- int nOffset = 0;
- // Flush header.
- System.out.println(" HEX | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F : 0 1 2 3 4 5 6 7 8 9 A B C D E F ");
- System.out.println("-----|+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-:--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+");
- for (int i = 0; i < buffer.length; ++i)
- {
- byte c = (byte)buffer[i];
-
- String fmtHex = String.format("%02x ", c);
- String fmtChar = String.format("%c ", Character.isISOControl((char)c) || c < 0 ? '.' : (char)c);
-
- if (nOffset % 16 == 0)
- {
- finalHexLine.append(String.format("%05x| ", nOffset));
- }
-
- finalHexLine.append(fmtHex);
- finalCharLine.append(fmtChar);
- if (nCounter == 15)
- {
- // Flush line.
- System.out.println(String.format("%s : %s", finalHexLine.toString(), finalCharLine.toString()));
- // Reset buffer.
- finalHexLine.delete(0, finalHexLine.length());
- finalCharLine.delete(0, finalCharLine.length());
-
- nCounter = 0;
- }
- else
- {
- nCounter++;
- }
- nOffset++;
- }
- if (nCounter < 16)
- {
- // Pad till 15.
- for (int i = nCounter; i < 16; i++)
- {
- finalHexLine.append(" ");
- finalCharLine.append(" ");
- }
- // Flush line.
- System.out.println(String.format("%s : %s", finalHexLine.toString(), finalCharLine.toString()));
- }
- }
- }
-}
diff --git a/tools/src/org/etsi/common/ITuple.java b/tools/src/org/etsi/common/ITuple.java
deleted file mode 100644
index cb44900511a4ad90be6ca006bfda0b4339f23d31..0000000000000000000000000000000000000000
--- a/tools/src/org/etsi/common/ITuple.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * @author STF 424_ITS_Test_Platform
- * @version $URL$
- * $Id$
- */
-package org.etsi.common;
-
-/**
- * This interface provides mandatory method to be implemented by a Tuple {A, B}
- * @param Type of the first member of the Tuple
- * @param Type of the second member of the Tuple
- */
-public interface ITuple {
-
- /** Retrieve the A element of the tuple
- * @return the _a
- */
- public abstract A getA();
-
- /** Retrieve the B element of the tuple
- * @return the _b
- */
- public abstract B getB();
-
-}
\ No newline at end of file
diff --git a/tools/src/org/etsi/common/KPM.java b/tools/src/org/etsi/common/KPM.java
deleted file mode 100644
index abf88b67a58927cfca78d886ac0049a7301564eb..0000000000000000000000000000000000000000
--- a/tools/src/org/etsi/common/KPM.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Knuth-Morris-Pratt Algorithm implementation
- * @author ETSI / STF481
- * @version $URL$
- * $Id$
- * Credit http://www.fmi.uni-sofia.bg/
- */
-package org.etsi.common;
-
-public class KPM {
-
- /**
- * Search the data byte array for the first occurrence of the byte array pattern within given boundaries.
- * @param data
- * @param start First index in data
- * @param stop Last index in data so that stop-start = length
- * @param pattern What is being searched. '*' can be used as wildcard for "ANY character"
- * @return
- */
- public static int indexOf( byte[] data, int start, int stop, byte[] pattern) {
- if( data == null || pattern == null) return -1;
-
- int[] failure = computeFailure(pattern);
-
- int j = 0;
-
- for( int i = start; i < stop; i++) {
- while (j > 0 && ( pattern[j] != '*' && pattern[j] != data[i])) {
- j = failure[j - 1];
- }
- if (pattern[j] == '*' || pattern[j] == data[i]) {
- j++;
- }
- if (j == pattern.length) {
- return i - pattern.length + 1;
- }
- }
- return -1;
- }
-
- /**
- * Computes the failure function using a boot-strapping process,
- * where the pattern is matched against itself.
- */
- private static int[] computeFailure(byte[] pattern) {
- int[] failure = new int[pattern.length];
-
- int j = 0;
- for (int i = 1; i < pattern.length; i++) {
- while (j>0 && pattern[j] != pattern[i]) {
- j = failure[j - 1];
- }
- if (pattern[j] == pattern[i]) {
- j++;
- }
- failure[i] = j;
- }
-
- return failure;
- }
-} // End of class KPM
\ No newline at end of file
diff --git a/tools/src/org/etsi/common/Tuple.java b/tools/src/org/etsi/common/Tuple.java
deleted file mode 100644
index 424a603aa76e222e958f3d5c00a7439d60674b1f..0000000000000000000000000000000000000000
--- a/tools/src/org/etsi/common/Tuple.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * @author STF 424_ITS_Test_Platform
- * @version $URL$
- * $Id$
- */
-package org.etsi.common;
-
-/**
- * This class implements the ITuple interface
- * @param Type of the first member of the Tuple
- * @param Type of the second member of the Tuple
- */
-public class Tuple implements ITuple {
-
- /**
- * A element of the tuple
- */
- private A _a;
-
- /**
- * B element of the tuple
- */
- private B _b;
-
- /**
- * Constructor
- * @param a The A element of the new tuple
- * @param b The B element of the new tuple
- */
- public Tuple(A a, B b) {
- _a = a;
- _b = b;
- }
-
- /**
- * Retrieve the A element of the tuple
- * @return the _a
- */
- @Override
- public A getA() {
- return _a;
- }
-
- /**
- * Retrieve the B element of the tuple
- * @return the _b
- */
- @Override
- public B getB() {
- return _b;
- }
-}
diff --git a/tools/src/org/etsi/its/pcapdump/CmdLineParser.java b/tools/src/org/etsi/its/pcapdump/CmdLineParser.java
deleted file mode 100644
index 195d5a59f412dc2af5eb13bee314fc947245001b..0000000000000000000000000000000000000000
--- a/tools/src/org/etsi/its/pcapdump/CmdLineParser.java
+++ /dev/null
@@ -1,568 +0,0 @@
-package org.etsi.its.pcapdump;
-
-import java.text.NumberFormat;
-import java.text.ParseException;
-import java.util.Hashtable;
-import java.util.Locale;
-import java.util.Vector;
-
-
-/**
- * Largely GNU-compatible command-line options parser. Has short (-v) and
- * long-form (--verbose) option support, and also allows options with
- * associated values (-d 2, --debug 2, --debug=2). Option processing
- * can be explicitly terminated by the argument '--'.
- *
- * @author Steve Purcell
- * @version $Revision$
- */
-public class CmdLineParser {
-
- /**
- * UID
- */
- private static final long serialVersionUID = -5690842973330286842L;
-
- /**
- * Base class for exceptions that may be thrown when options are parsed
- */
- public static abstract class OptionException extends Exception {
- OptionException(String msg) { super(msg); }
- }
-
- /**
- * Thrown when the parsed command-line contains an option that is not
- * recognised. getMessage()
returns
- * an error string suitable for reporting the error to the user (in
- * English).
- */
- public static class UnknownOptionException extends OptionException {
- /**
- * UID
- */
- private static final long serialVersionUID = -5690842973330286842L;
-
- /**
- * Constructor
- * @param optionName Option identifier
- */
- UnknownOptionException( String optionName ) {
- this(optionName, "Unknown option '" + optionName + "'");
- }
-
- /**
- * Constructor
- * @param optionName Option identifier
- * @param msg Error message
- */
- UnknownOptionException( String optionName, String msg ) {
- super(msg);
- this.optionName = optionName;
- }
-
- /**
- * @return the name of the option that was unknown (e.g. "-u")
- */
- public String getOptionName() { return this.optionName; }
- private String optionName = null;
- }
-
- /**
- * Thrown when the parsed commandline contains multiple concatenated
- * short options, such as -abcd, where one is unknown.
- * getMessage()
returns an english human-readable error
- * string.
- * @author Vidar Holen
- */
- public static class UnknownSuboptionException extends UnknownOptionException {
-
- /**
- * UID
- */
- private static final long serialVersionUID = -3886188976129160327L;
-
- private char suboption;
-
- /**
- * Constructor
- * @param option Option value
- * @param suboption Sub-option value
- */
- UnknownSuboptionException( String option, char suboption ) {
- super(option, "Illegal option: '"+suboption+"' in '"+option+"'");
- this.suboption=suboption;
- }
- /**
- * @return The sub-option value
- */
- public char getSuboption() { return suboption; }
- }
-
- /**
- * Thrown when the parsed commandline contains multiple concatenated
- * short options, such as -abcd, where one or more requires a value.
- * getMessage()
returns an english human-readable error
- * string.
- * @author Vidar Holen
- */
- public static class NotFlagException extends UnknownOptionException {
- /**
- * UID
- */
- private static final long serialVersionUID = -5862485101945261269L;
-
- private char notflag;
-
- NotFlagException( String option, char unflaggish ) {
- super(option, "Illegal option: '"+option+"', '"+
- unflaggish+"' requires a value");
- notflag=unflaggish;
- }
-
- /**
- * @return the first character which wasn't a boolean (e.g 'c')
- */
- public char getOptionChar() { return notflag; }
- }
-
- /**
- * Thrown when an illegal or missing value is given by the user for
- * an option that takes a value. getMessage()
returns
- * an error string suitable for reporting the error to the user (in
- * English).
- */
- public static class IllegalOptionValueException extends OptionException {
- /**
- * UID
- */
- private static final long serialVersionUID = -3519380930288555047L;
-
- public IllegalOptionValueException( Option opt, String value ) {
- super("Illegal value '" + value + "' for option " +
- (opt.shortForm() != null ? "-" + opt.shortForm() + "/" : "") +
- "--" + opt.longForm());
- this.option = opt;
- this.value = value;
- }
-
- /**
- * @return the name of the option whose value was illegal (e.g. "-u")
- */
- public Option getOption() { return this.option; }
-
- /**
- * @return the illegal value
- */
- public String getValue() { return this.value; }
- private Option option;
- private String value;
- }
-
- /**
- * Representation of a command-line option
- */
- public static abstract class Option {
-
- protected Option( String longForm, boolean wantsValue ) {
- this(null, longForm, wantsValue);
- }
-
- protected Option( char shortForm, String longForm,
- boolean wantsValue ) {
- this(new String(new char[]{shortForm}), longForm, wantsValue);
- }
-
- private Option( String shortForm, String longForm, boolean wantsValue ) {
- if ( longForm == null )
- throw new IllegalArgumentException("Null longForm not allowed");
- this.shortForm = shortForm;
- this.longForm = longForm;
- this.wantsValue = wantsValue;
- }
-
- public String shortForm() { return this.shortForm; }
-
- public String longForm() { return this.longForm; }
-
- /**
- * Tells whether or not this option wants a value
- */
- public boolean wantsValue() { return this.wantsValue; }
-
- public final Object getValue( String arg, Locale locale )
- throws IllegalOptionValueException {
- if ( this.wantsValue ) {
- if ( arg == null ) {
- throw new IllegalOptionValueException(this, "");
- }
- return this.parseValue(arg, locale);
- }
- else {
- return Boolean.TRUE;
- }
- }
-
- /**
- * Override to extract and convert an option value passed on the
- * command-line
- */
- protected Object parseValue( String arg, Locale locale )
- throws IllegalOptionValueException {
- return null;
- }
-
- private String shortForm = null;
- private String longForm = null;
- private boolean wantsValue = false;
-
- public static class BooleanOption extends Option {
- public BooleanOption( char shortForm, String longForm ) {
- super(shortForm, longForm, false);
- }
- public BooleanOption( String longForm ) {
- super(longForm, false);
- }
- }
-
- /**
- * An option that expects an integer value
- */
- public static class IntegerOption extends Option {
- public IntegerOption( char shortForm, String longForm ) {
- super(shortForm, longForm, true);
- }
- public IntegerOption( String longForm ) {
- super(longForm, true);
- }
- protected Object parseValue( String arg, Locale locale )
- throws IllegalOptionValueException {
- try {
- return new Integer(arg);
- }
- catch (NumberFormatException e) {
- throw new IllegalOptionValueException(this, arg);
- }
- }
- }
-
- /**
- * An option that expects a long integer value
- */
- public static class LongOption extends Option {
- public LongOption( char shortForm, String longForm ) {
- super(shortForm, longForm, true);
- }
- public LongOption( String longForm ) {
- super(longForm, true);
- }
- protected Object parseValue( String arg, Locale locale )
- throws IllegalOptionValueException {
- try {
- return new Long(arg);
- }
- catch (NumberFormatException e) {
- throw new IllegalOptionValueException(this, arg);
- }
- }
- }
-
- /**
- * An option that expects a floating-point value
- */
- public static class DoubleOption extends Option {
- public DoubleOption( char shortForm, String longForm ) {
- super(shortForm, longForm, true);
- }
- public DoubleOption( String longForm ) {
- super(longForm, true);
- }
- protected Object parseValue( String arg, Locale locale )
- throws IllegalOptionValueException {
- try {
- NumberFormat format = NumberFormat.getNumberInstance(locale);
- Number num = (Number)format.parse(arg);
- return new Double(num.doubleValue());
- }
- catch (ParseException e) {
- throw new IllegalOptionValueException(this, arg);
- }
- }
- }
-
- /**
- * An option that expects a string value
- */
- public static class StringOption extends Option {
- public StringOption( char shortForm, String longForm ) {
- super(shortForm, longForm, true);
- }
- public StringOption( String longForm ) {
- super(longForm, true);
- }
- protected Object parseValue( String arg, Locale locale ) {
- return arg;
- }
- }
- }
-
- /**
- * Add the specified Option to the list of accepted options
- */
- public final Option addOption( Option opt ) {
- if ( opt.shortForm() != null )
- this.options.put("-" + opt.shortForm(), opt);
- this.options.put("--" + opt.longForm(), opt);
- return opt;
- }
-
- /**
- * Convenience method for adding a string option.
- * @return the new Option
- */
- public final Option addStringOption( char shortForm, String longForm ) {
- return addOption(new Option.StringOption(shortForm, longForm));
- }
-
- /**
- * Convenience method for adding a string option.
- * @return the new Option
- */
- public final Option addStringOption( String longForm ) {
- return addOption(new Option.StringOption(longForm));
- }
-
- /**
- * Convenience method for adding an integer option.
- * @return the new Option
- */
- public final Option addIntegerOption( char shortForm, String longForm ) {
- return addOption(new Option.IntegerOption(shortForm, longForm));
- }
-
- /**
- * Convenience method for adding an integer option.
- * @return the new Option
- */
- public final Option addIntegerOption( String longForm ) {
- return addOption(new Option.IntegerOption(longForm));
- }
-
- /**
- * Convenience method for adding a long integer option.
- * @return the new Option
- */
- public final Option addLongOption( char shortForm, String longForm ) {
- return addOption(new Option.LongOption(shortForm, longForm));
- }
-
- /**
- * Convenience method for adding a long integer option.
- * @return the new Option
- */
- public final Option addLongOption( String longForm ) {
- return addOption(new Option.LongOption(longForm));
- }
-
- /**
- * Convenience method for adding a double option.
- * @return the new Option
- */
- public final Option addDoubleOption( char shortForm, String longForm ) {
- return addOption(new Option.DoubleOption(shortForm, longForm));
- }
-
- /**
- * Convenience method for adding a double option.
- * @return the new Option
- */
- public final Option addDoubleOption( String longForm ) {
- return addOption(new Option.DoubleOption(longForm));
- }
-
- /**
- * Convenience method for adding a boolean option.
- * @return the new Option
- */
- public final Option addBooleanOption( char shortForm, String longForm ) {
- return addOption(new Option.BooleanOption(shortForm, longForm));
- }
-
- /**
- * Convenience method for adding a boolean option.
- * @return the new Option
- */
- public final Option addBooleanOption( String longForm ) {
- return addOption(new Option.BooleanOption(longForm));
- }
-
- /**
- * Equivalent to {@link #getOptionValue(Option, Object) getOptionValue(o,
- * null)}.
- */
-
- public final Object getOptionValue( Option o ) {
- return getOptionValue(o, null);
- }
-
-
- /**
- * @return the parsed value of the given Option, or the given default 'def'
- * if the option was not set
- */
- public final Object getOptionValue( Option o, Object def ) {
- Vector v = (Vector)values.get(o.longForm());
-
- if (v == null) {
- return def;
- }
- else if (v.isEmpty()) {
- return null;
- }
- else {
- Object result = v.elementAt(0);
- v.removeElementAt(0);
- return result;
- }
- }
-
-
- /**
- * @return A Vector giving the parsed values of all the occurrences of the
- * given Option, or an empty Vector if the option was not set.
- */
- public final Vector getOptionValues( Option option ) {
- Vector result = new Vector();
-
- while (true) {
- Object o = getOptionValue(option, null);
-
- if (o == null) {
- return result;
- }
- else {
- result.addElement(o);
- }
- }
- }
-
-
- /**
- * @return the non-option arguments
- */
- public final String[] getRemainingArgs() {
- return this.remainingArgs;
- }
-
- /**
- * Extract the options and non-option arguments from the given
- * list of command-line arguments. The default locale is used for
- * parsing options whose values might be locale-specific.
- */
- public final void parse( String[] argv )
- throws IllegalOptionValueException, UnknownOptionException {
-
- // It would be best if this method only threw OptionException, but for
- // backwards compatibility with old user code we throw the two
- // exceptions above instead.
-
- parse(argv, Locale.getDefault());
- }
-
- /**
- * Extract the options and non-option arguments from the given
- * list of command-line arguments. The specified locale is used for
- * parsing options whose values might be locale-specific.
- */
- public final void parse( String[] argv, Locale locale )
- throws IllegalOptionValueException, UnknownOptionException {
-
- // It would be best if this method only threw OptionException, but for
- // backwards compatibility with old user code we throw the two
- // exceptions above instead.
-
- Vector otherArgs = new Vector();
- int position = 0;
- this.values = new Hashtable(10);
- while ( position < argv.length ) {
- String curArg = argv[position];
- if ( curArg.startsWith("-") ) {
- if ( curArg.equals("--") ) { // end of options
- position += 1;
- break;
- }
- String valueArg = null;
- if ( curArg.startsWith("--") ) { // handle --arg=value
- int equalsPos = curArg.indexOf("=");
- if ( equalsPos != -1 ) {
- valueArg = curArg.substring(equalsPos+1);
- curArg = curArg.substring(0,equalsPos);
- }
- } else if(curArg.length() > 2) { // handle -abcd
- for(int i=1; i alldevs = new ArrayList(); // Will be filled with NICs
-
-
- int r = Pcap.findAllDevs(alldevs, errbuf);
- if (r != Pcap.OK || alldevs.isEmpty()) {
- System.err.printf("Can't read list of devices, error is %s", errbuf.toString());
- return;
- }
-
- // Find the right interface
- int ifaceIndex = 0;
- String expectedIface = PcapMultiplexer.ExpectedIface;
- for( ; ifaceIndex < alldevs.size(); ifaceIndex++) {
- try {
- if (expectedIface.equalsIgnoreCase(ByteHelper.byteArrayToString(alldevs.get(ifaceIndex).getHardwareAddress()))) {
- // Interface found
- break;
- }
- } catch (IOException e) {
- // ignore
- }
- }
- // Check result
- if (ifaceIndex == alldevs.size()) {
- throw new RuntimeException(String.format("EthernetLayer.register: Network interface %s not found", expectedIface));
- }
-
- device = alldevs.get(ifaceIndex);
- System.out.println("Listening: " + device.getName());
- }
-
- /**
- * Gets the unique factory instance
- * @return PcapMultiplexer instance
- */
- public static PcapMultiplexer getInstance(final String macAddress){
- ExpectedIface = macAddress;
- return (instance = new PcapMultiplexer());
- }
-
- /**
- * Gets the unique factory instance
- * @return PcapMultiplexer instance
- */
- public static PcapMultiplexer getInstance(){
- return instance;
- }
-
- public synchronized void register(ILayer client, short frameType) {
- // Open interface
- int snaplen = 64 * 1024; // Capture all packets, no truncation
- int flags = Pcap.MODE_PROMISCUOUS; // capture all packets
- int timeout = 10; // 10 millis
- pcap = Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);
-
- if (pcap == null) {
- System.err.printf("Error while opening device for capture: " + errbuf.toString());
- return;
- }
- captureThread = new Thread(this);
- captureThread.start();
- filter = String.format("ether proto 0x%04x", frameType);
- System.out.println("New filter: " + filter);
-
- // Apply filter
- PcapBpfProgram bpfFilter = new PcapBpfProgram();
- int optimize = 0; // 1 means true, 0 means false
- int netmask = 0;
- int r = pcap.compile(bpfFilter, filter, optimize, netmask);
- if (r != Pcap.OK) {
- System.out.println("Filter error: " + pcap.getErr());
- }
- pcap.setFilter(bpfFilter);
-
- dumper = pcap.dumpOpen(client.getFileName());
-
- _client = client;
- }
-
- public synchronized void unregister(ILayer client) {
- pcap.breakloop();
- dumper.close();
- try {
- captureThread.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- pcap.close();
- }
-
- /**
- * Thread function for jpcap capture loop
- * @see java.lang.Runnable#run()
- */
- @Override
- public void run() {
-
- PcapPacketHandler dumpHandler = new PcapPacketHandler() {
-
- private int counter = 0;
-
- @Override
- public void nextPacket(PcapPacket packet, String user) {
- dumper.dump(packet);
- counter += 1;
- if (counter == 500) {
- System.out.println("nextPacket: Flushing file");
- dumper.flush();
- counter = 0;
- }
- }
- };
-
- pcap.loop(-1, dumpHandler, "pcapdump");
- }
-
- /**
- * Jpcap capture device
- */
- private Pcap pcap;
-
- /**
- * Jpcap capture thread instance.
- */
- private Thread captureThread;
-
- PcapIf device;
- private String filter;
-}
\ No newline at end of file
diff --git a/tools/src/org/etsi/its/pcapdump/pcapdump.java b/tools/src/org/etsi/its/pcapdump/pcapdump.java
deleted file mode 100644
index d679f2f77a7a09eb6ee5d7274bbd827ea722a6ec..0000000000000000000000000000000000000000
--- a/tools/src/org/etsi/its/pcapdump/pcapdump.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/**
- *
- */
-package org.etsi.its.pcapdump;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.util.Date;
-import java.util.logging.ConsoleHandler;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import org.etsi.common.ByteHelper;
-import org.etsi.its.pcapdump.CmdLineParser.IllegalOptionValueException;
-import org.etsi.its.pcapdump.CmdLineParser.UnknownOptionException;
-
-/**
- * @author yann
- *
- */
-public class pcapdump implements ILayer {
-
- /**
- * Module version
- */
- public static final String Version = "1.0.0.0";
-
- /**
- * Logger instance
- */
- private final static Logger _logger = Logger.getLogger("org.etsi.its.pcapdump");
-
- private static String NicAddr = "00FF6BADBFC2";
-
- private static String FileName = "itsdump.pcapng";
-
- /**
- * Debug mode. Default: false
- */
- private static Level Debug = Level.OFF;
-
- /**
- * ITS Ehter type
- */
- private static short FrameType = (short) 0x8947;
-
- /**
- * Default ctor
- */
- public pcapdump() {
- // Nothing to do
- }
-
- @Override
- public void dispose() {
- PcapMultiplexer.getInstance().unregister(this);
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- // Process command line arguments
- processCommandLine(args);
-
- // Set traces
- _logger.addHandler(new ConsoleHandler());
- _logger.setLevel(Debug);
-
-
- // Check if the file exist, never remove or scratch files
- File file = new File(FileName);
- if (file.exists()) {
- File newFile = new File(FileName + "_" + System.currentTimeMillis());
- file.renameTo(newFile);
- }
-
- ILayer layer = new pcapdump();
- PcapMultiplexer.getInstance(NicAddr);
- PcapMultiplexer.getInstance().register(layer, FrameType);
-
- boolean bContinue = true;
- while (bContinue) {
- try {
- // Check keyboard
- if (System.in.available() > 0) {
- int token = System.in.read();
- switch (token) {
- case 'h': // Help
- // No break;
- case '?': // Help
- cmdeLineUsage();
- break;
- case 'q':
- bContinue = false;
- _logger.info("Terminate application...");
- break;
- } // End of 'switch' statement
- }
- // Wait
- java.lang.Thread.sleep(100);
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- } // End of 'while' statement
-
- layer.dispose();
- System.err.println("Terminated");
- System.exit(0);
- }
-
- /**
- * Parse the command line and set options
- * @param args Command line arguments
- */
- private static void processCommandLine(String[] args) {
- // Sanity checks
- if (args.length == 0) {
- return;
- }
-
- CmdLineParser parser = new CmdLineParser();
- CmdLineParser.Option debug = parser.addBooleanOption("Debug");
- CmdLineParser.Option fileName = parser.addStringOption("FileName");
- CmdLineParser.Option frameType = parser.addStringOption("FrameType");
- CmdLineParser.Option NICAddr = parser.addStringOption("NicAddr");
- try {
- parser.parse(args);
- } catch (IllegalOptionValueException e) {
- e.printStackTrace();
- printUsage();
- System.exit(2);
- } catch (UnknownOptionException e) {
- e.printStackTrace();
- printUsage();
- System.exit(3);
- }
-
- Object value;
- if ((value = parser.getOptionValue(debug, false)) != null) {
- Debug = (((Boolean)value).booleanValue() == true) ? Level.ALL : Level.OFF;
- }
- if ((value = parser.getOptionValue(fileName, "")) != null) {
- if (!((String)value).isEmpty()) {
- FileName = (String)value;
- }
- }
- if ((value = parser.getOptionValue(frameType, "")) != null) {
- if (!((String)value).isEmpty()) {
- FrameType = (short)Integer.parseInt((String)value, 16);
- }
- }
- if ((value = parser.getOptionValue(NICAddr, "")) != null) {
- if (!((String)value).isEmpty()) {
- NicAddr = (String)value;
- }
- }
-
- } // End of method processCommandLine
-
- /**
- * Display application usage
- */
- private static void printUsage() {
- System.err.println("Usage: [--Debug (default:false)]\n" +
- " [--FileName=filename \"Output file name \"]\n" +
- " [--FrameType=0x8947 \"Ethernet prototype\" (0x8947)]\n" +
- " \n"
- );
- }
-
- private static void cmdeLineUsage() {
- System.err.println("Command Line Usage: \n" +
- // TODO
- " [q to exit]\n" +
- " \n"
- );
-
- }
-
- @Override
- public String getFileName() {
- return FileName;
- }
-
-}