e1cap_dump: Implement functional HDLC decode of super-channel

Finally the bit ordering and bit format of the SuperChannel has been
figured out.
* the data as read from DAHDI must be flipped (0->1 / 1->0). why?
* the data must be read lsb-first when converting into a bit-buffer

We are now getting the following output e.g. for a OM2000 "TX
Configuration Request" message:
fa 03 8a 8a 80 80 00 13 00 b0 0b 00 ff 01 20 00 2e 2b 1c 00 06 01 95 81 76 00 e9 bf
^ lapd hdr  ^ OML    ^l ^OM2000 TX Config Req for 43 dBm
diff --git a/src/hdlc-test.c b/src/hdlc-test.c
new file mode 100644
index 0000000..1c7c6ef
--- /dev/null
+++ b/src/hdlc-test.c
@@ -0,0 +1,42 @@
+#include <string.h>
+#include "hdlc.h"
+
+#include <osmocom/core/utils.h>
+#include <osmocom/core/bits.h>
+
+const char *tdata = "7e7e7e7e7a76f20609167d3cfcfcfc";
+
+static void hdlc_process_hex_str(struct hdlc_proc *hdlc, const char *hex)
+{
+	uint8_t *bytes, *bits;
+	int string_len = strlen(hex);
+	int byte_len = string_len/2;
+	int bit_len = byte_len*8;
+	int rc;
+
+	printf("hex string   = %s\n", hex);
+	bytes = alloca(byte_len);
+	bits = alloca(bit_len);
+	rc = osmo_hexparse(hex, bytes, byte_len);
+	printf("parsed bytes = %s\n", osmo_hexdump(bytes, byte_len));
+
+	printf("MSB mode\n");
+	osmo_pbit2ubit(bits, bytes, bit_len);
+	process_raw_hdlc(hdlc, bits, bit_len);
+
+	printf("LSB mode\n");
+	memset(hdlc, 0, sizeof(*hdlc));
+	osmo_pbit2ubit_ext(bits, 0, bytes, 0, bit_len, 1);
+	process_raw_hdlc(hdlc, bits, bit_len);
+}
+
+int main(int argc, char **argv)
+{
+	struct hdlc_proc hdlc;
+	memset(&hdlc, 0, sizeof(hdlc));
+
+	if (argc < 2)
+		exit(1);
+
+	hdlc_process_hex_str(&hdlc, argv[1]);
+}