gsm: TS 44.021 modified V.110 frame encoding/decoding support

3GPP TS 44.021 specifies the format for modified V.110 frames as used
on the GSM air (radio) interface.  Implement encoders and decoders for
this modified V.110 format.

Related: OS#1572
Change-Id: I60a2f2690459359437df20cf4da9043fa7c3ad11
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f0c80d5..275cf5f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -52,6 +52,7 @@
 		 auth/xor2g_test                                        \
 		 v110/test_frame                                        \
 		 v110/test_ra1                                          \
+		 gsm44021/test_frame_csd                                \
 		 $(NULL)
 
 if ENABLE_MSGFILE
@@ -347,6 +348,11 @@
 v110_test_ra1_SOURCES = v110/test_ra1.c
 v110_test_ra1_LDADD = $(LDADD) $(top_builddir)/src/isdn/libosmoisdn.la
 
+gsm44021_test_frame_csd_SOURCES = gsm44021/test_frame_csd.c
+gsm44021_test_frame_csd_LDADD = $(LDADD) $(top_builddir)/src/isdn/libosmoisdn.la \
+				$(top_builddir)/src/gsm/libosmogsm.la
+
+
 # The `:;' works around a Bash 3.2 bug when the output is not writeable.
 $(srcdir)/package.m4: $(top_srcdir)/configure.ac
 	:;{ \
@@ -447,6 +453,7 @@
 	     smscb/cbsp_test.ok \
 	     v110/test_frame.ok \
 	     v110/test_ra1.ok \
+	     gsm44021/test_frame_csd.ok \
 	     $(NULL)
 
 if ENABLE_LIBSCTP
@@ -654,6 +661,8 @@
 		>$(srcdir)/v110/test_frame.ok
 	v110/test_ra1 \
 		>$(srcdir)/v110/test_ra1.ok
+	gsm44021/test_frame_csd \
+		>$(srcdir)/gsm44021/test_frame_csd.ok
 
 check-local: atconfig $(TESTSUITE)
 	[ -e /proc/cpuinfo ] && cat /proc/cpuinfo