fixeria has uploaded this change for review.
{hnbap,ranap,rua,s1ap,sabp,sbcap}: use TITAN's ASN.1 PER codec
TITAN version 10.0.0 finally brings support for the ASN.1 PER codec.
Drop libfftranscode dependency, use TTCN_EncDec::CT_PER / PER_ALIGNED.
Change-Id: I990a9c01d965e185fc64bd751ea0685e5d3b869c
---
M cbc/regen_makefile.sh
M hnbgw/regen_makefile.sh
M hnodeb/regen_makefile.sh
M library/hnbap/HNBAP_EncDec.cc
M library/hnbap/regen_makefile.sh
M library/ranap/RANAP_EncDec.cc
M library/ranap/regen_makefile.sh
M library/rua/RUA_EncDec.cc
M library/rua/regen_makefile.sh
M library/s1ap/S1AP_EncDec.cc
M library/s1ap/regen_makefile.sh
M library/sabp/SABP_EncDec.cc
M library/sabp/regen_makefile.sh
M library/sbcap/SBC_AP_EncDec.cc
M library/sbcap/regen_makefile.sh
M mme/regen_makefile.sh
M msc/regen_makefile.sh
M s1gw/regen_makefile.sh
M sgsn/regen_makefile.sh
19 files changed, 98 insertions(+), 310 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/25/37225/1
diff --git a/cbc/regen_makefile.sh b/cbc/regen_makefile.sh
index 96900b3..56da962 100755
--- a/cbc/regen_makefile.sh
+++ b/cbc/regen_makefile.sh
@@ -28,5 +28,3 @@
"
../regen-makefile.sh -e $NAME $FILES
-
-sed -i -e 's/^LINUX_LIBS = -lxml2/LINUX_LIBS = -lxml2 -lfftranscode/' Makefile
diff --git a/hnbgw/regen_makefile.sh b/hnbgw/regen_makefile.sh
index 13db985..2f5ab1a 100755
--- a/hnbgw/regen_makefile.sh
+++ b/hnbgw/regen_makefile.sh
@@ -37,5 +37,3 @@
"
../regen-makefile.sh -e $NAME $FILES
-
-sed -i -e 's/^LINUX_LIBS = -lxml2 -lsctp/LINUX_LIBS = -lxml2 -lsctp -lfftranscode/' Makefile
diff --git a/hnodeb/regen_makefile.sh b/hnodeb/regen_makefile.sh
index cf5fed3..91603d0 100755
--- a/hnodeb/regen_makefile.sh
+++ b/hnodeb/regen_makefile.sh
@@ -36,5 +36,3 @@
"
../regen-makefile.sh -e $NAME $FILES
-
-sed -i -e 's/^LINUX_LIBS = -lxml2 -lsctp/LINUX_LIBS = -lxml2 -lsctp -lfftranscode/' Makefile
diff --git a/library/hnbap/HNBAP_EncDec.cc b/library/hnbap/HNBAP_EncDec.cc
index 37d764f..eaf1013 100644
--- a/library/hnbap/HNBAP_EncDec.cc
+++ b/library/hnbap/HNBAP_EncDec.cc
@@ -1,11 +1,8 @@
-
-#include <string.h>
-#include <stdarg.h>
#include "HNBAP_PDU_Descriptions.hh"
-extern "C" {
-#include <fftranscode/transcode.h>
-}
+/* 3GPP TS 25.469, section 9.4 Message transfer syntax:
+ * HNBAP shall use the ASN.1 Basic Packed Encoding Rules (BASIC-PER) Aligned Variant
+ * as transfer syntax as specified in ref. ITU-T Rec. X.691 */
namespace HNBAP__Types {
@@ -13,52 +10,24 @@
OCTETSTRING enc__HNBAP__PDU(const HNBAP__PDU__Descriptions::HNBAP__PDU &pdu)
{
- uint8_t *aper_buf;
- int aper_buf_len;
- TTCN_Buffer TTCN_buf;
- TTCN_buf.clear();
+ TTCN_Buffer buf;
- /* Encode from abstract data type into BER/DER */
- pdu.encode(HNBAP__PDU__Descriptions::HNBAP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ENCODE_DER);
-
- aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_HNBAP, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());
- if (aper_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* make octetstring from output buffer */
- OCTETSTRING ret_val(aper_buf_len, aper_buf);
-
- /* release dynamically-allocated output buffer */
- fftranscode_free(aper_buf);
-
- return ret_val;
+ buf.clear();
+ pdu.encode(HNBAP__PDU__Descriptions::HNBAP__PDU_descr_, buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return OCTETSTRING(buf.get_len(), buf.get_data());
}
HNBAP__PDU__Descriptions::HNBAP__PDU dec__HNBAP__PDU(const OCTETSTRING &stream)
{
- uint8_t *ber_buf;
- int ber_buf_len;
-
- /* First, decode APER + re-encode as BER */
- ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_HNBAP, &ber_buf, (const unsigned char *)stream, stream.lengthof());
- if (ber_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* Then, re-encode from BER to TITAN representation */
- HNBAP__PDU__Descriptions::HNBAP__PDU ret_dcc;
+ HNBAP__PDU__Descriptions::HNBAP__PDU pdu;
TTCN_Buffer TTCN_buf;
+
TTCN_buf.clear();
- TTCN_buf.put_s(ber_buf_len, ber_buf);
-
- ret_dcc.decode(HNBAP__PDU__Descriptions::HNBAP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
-
- fftranscode_free(ber_buf);
-
- return ret_dcc;
+ TTCN_buf.put_os(stream);
+ pdu.decode(HNBAP__PDU__Descriptions::HNBAP__PDU_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return pdu;
}
}
diff --git a/library/hnbap/regen_makefile.sh b/library/hnbap/regen_makefile.sh
index 4da6872..02e7fae 100755
--- a/library/hnbap/regen_makefile.sh
+++ b/library/hnbap/regen_makefile.sh
@@ -3,7 +3,3 @@
FILES="*.asn *.ttcn HNBAP_EncDec.cc"
../../regen-makefile.sh $FILES
-
-sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
-sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
-sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
diff --git a/library/ranap/RANAP_EncDec.cc b/library/ranap/RANAP_EncDec.cc
index 7626b7b..5cee694 100644
--- a/library/ranap/RANAP_EncDec.cc
+++ b/library/ranap/RANAP_EncDec.cc
@@ -1,11 +1,8 @@
-
-#include <string.h>
-#include <stdarg.h>
#include "RANAP_PDU_Descriptions.hh"
-extern "C" {
-#include <fftranscode/transcode.h>
-}
+/* 3GPP TS 25.413, section 9.4 Message transfer syntax:
+ * RANAP shall use the ASN.1 Basic Packed Encoding Rules (BASIC-PER) Aligned Variant
+ * as transfer syntax as specified in ref. ITU-T Rec. X.691 */
namespace RANAP__Types {
@@ -13,54 +10,24 @@
OCTETSTRING enc__RANAP__PDU(const RANAP__PDU__Descriptions::RANAP__PDU &pdu)
{
- uint8_t *aper_buf;
- int aper_buf_len;
- TTCN_Buffer TTCN_buf;
- TTCN_buf.clear();
+ TTCN_Buffer buf;
- /* Encode from abstract data type into BER/DER */
- pdu.encode(RANAP__PDU__Descriptions::RANAP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ENCODE_DER);
-
- aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_RANAP, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());
- if (aper_buf_len < 0) {
- TTCN_Logger::begin_event_log2str();
- TTCN_buf.log();
- TTCN_error("fftranscode_ber2aper failed: %s", (const char *) TTCN_Logger::end_event_log2str());
- }
-
- /* make octetstring from output buffer */
- OCTETSTRING ret_val(aper_buf_len, aper_buf);
-
- /* release dynamically-allocated output buffer */
- fftranscode_free(aper_buf);
-
- return ret_val;
+ buf.clear();
+ pdu.encode(RANAP__PDU__Descriptions::RANAP__PDU_descr_, buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return OCTETSTRING(buf.get_len(), buf.get_data());
}
RANAP__PDU__Descriptions::RANAP__PDU dec__RANAP__PDU(const OCTETSTRING &stream)
{
- uint8_t *ber_buf;
- int ber_buf_len;
-
- /* First, decode APER + re-encode as BER */
- ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_RANAP, &ber_buf, (const unsigned char *)stream, stream.lengthof());
- if (ber_buf_len < 0) {
- TTCN_error("fftranscode_aper2ber failed.");
- }
-
- /* Then, re-encode from BER to TITAN representation */
- RANAP__PDU__Descriptions::RANAP__PDU ret_dcc;
+ RANAP__PDU__Descriptions::RANAP__PDU pdu;
TTCN_Buffer TTCN_buf;
+
TTCN_buf.clear();
- TTCN_buf.put_s(ber_buf_len, ber_buf);
-
- ret_dcc.decode(RANAP__PDU__Descriptions::RANAP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
-
- fftranscode_free(ber_buf);
-
- return ret_dcc;
+ TTCN_buf.put_os(stream);
+ pdu.decode(RANAP__PDU__Descriptions::RANAP__PDU_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return pdu;
}
}
diff --git a/library/ranap/regen_makefile.sh b/library/ranap/regen_makefile.sh
index 0ae1cfd..2d553b7 100755
--- a/library/ranap/regen_makefile.sh
+++ b/library/ranap/regen_makefile.sh
@@ -3,7 +3,3 @@
FILES="*.asn *.ttcn RANAP_EncDec.cc"
../../regen-makefile.sh $FILES
-
-sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
-sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
-sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
diff --git a/library/rua/RUA_EncDec.cc b/library/rua/RUA_EncDec.cc
index 808e317..c702f54 100644
--- a/library/rua/RUA_EncDec.cc
+++ b/library/rua/RUA_EncDec.cc
@@ -1,11 +1,8 @@
-
-#include <string.h>
-#include <stdarg.h>
#include "RUA_PDU_Descriptions.hh"
-extern "C" {
-#include <fftranscode/transcode.h>
-}
+/* 3GPP TS 25.468, section 9.4 Message transfer syntax:
+ * RUA shall use the ASN.1 Basic Packed Encoding Rules (BASIC-PER) Aligned Variant
+ * as transfer syntax as specified in ref. ITU-T Rec. X.691 */
namespace RUA__Types {
@@ -13,52 +10,24 @@
OCTETSTRING enc__RUA__PDU(const RUA__PDU__Descriptions::RUA__PDU &pdu)
{
- uint8_t *aper_buf;
- int aper_buf_len;
- TTCN_Buffer TTCN_buf;
- TTCN_buf.clear();
+ TTCN_Buffer buf;
- /* Encode from abstract data type into BER/DER */
- pdu.encode(RUA__PDU__Descriptions::RUA__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ENCODE_DER);
-
- aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_RUA, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());
- if (aper_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* make octetstring from output buffer */
- OCTETSTRING ret_val(aper_buf_len, aper_buf);
-
- /* release dynamically-allocated output buffer */
- fftranscode_free(aper_buf);
-
- return ret_val;
+ buf.clear();
+ pdu.encode(RUA__PDU__Descriptions::RUA__PDU_descr_, buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return OCTETSTRING(buf.get_len(), buf.get_data());
}
RUA__PDU__Descriptions::RUA__PDU dec__RUA__PDU(const OCTETSTRING &stream)
{
- uint8_t *ber_buf;
- int ber_buf_len;
-
- /* First, decode APER + re-encode as BER */
- ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_RUA, &ber_buf, (const unsigned char *)stream, stream.lengthof());
- if (ber_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* Then, re-encode from BER to TITAN representation */
- RUA__PDU__Descriptions::RUA__PDU ret_dcc;
+ RUA__PDU__Descriptions::RUA__PDU pdu;
TTCN_Buffer TTCN_buf;
+
TTCN_buf.clear();
- TTCN_buf.put_s(ber_buf_len, ber_buf);
-
- ret_dcc.decode(RUA__PDU__Descriptions::RUA__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
-
- fftranscode_free(ber_buf);
-
- return ret_dcc;
+ TTCN_buf.put_os(stream);
+ pdu.decode(RUA__PDU__Descriptions::RUA__PDU_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return pdu;
}
}
diff --git a/library/rua/regen_makefile.sh b/library/rua/regen_makefile.sh
index 1f45203..b67ef8e 100755
--- a/library/rua/regen_makefile.sh
+++ b/library/rua/regen_makefile.sh
@@ -3,7 +3,3 @@
FILES="*.asn *.ttcn RUA_EncDec.cc"
../../regen-makefile.sh $FILES
-
-sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
-sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
-sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
diff --git a/library/s1ap/S1AP_EncDec.cc b/library/s1ap/S1AP_EncDec.cc
index a17f20e..6f82b2b 100644
--- a/library/s1ap/S1AP_EncDec.cc
+++ b/library/s1ap/S1AP_EncDec.cc
@@ -1,11 +1,8 @@
-
-#include <string.h>
-#include <stdarg.h>
#include "S1AP_PDU_Descriptions.hh"
-extern "C" {
-#include <fftranscode/transcode.h>
-}
+/* 3GPP TS 36.413, section 9.4 Message transfer syntax:
+ * S1AP shall use the ASN.1 Basic Packed Encoding Rules (BASIC-PER) Aligned Variant
+ * as transfer syntax as specified in ref. ITU-T Rec. X.691 */
namespace S1AP__Types {
@@ -13,52 +10,24 @@
OCTETSTRING enc__S1AP__PDU(const S1AP__PDU__Descriptions::S1AP__PDU &pdu)
{
- uint8_t *aper_buf;
- int aper_buf_len;
- TTCN_Buffer TTCN_buf;
- TTCN_buf.clear();
+ TTCN_Buffer buf;
- /* Encode from abstract data type into BER/DER */
- pdu.encode(S1AP__PDU__Descriptions::S1AP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ENCODE_DER);
-
- aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_S1AP, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());
- if (aper_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* make octetstring from output buffer */
- OCTETSTRING ret_val(aper_buf_len, aper_buf);
-
- /* release dynamically-allocated output buffer */
- fftranscode_free(aper_buf);
-
- return ret_val;
+ buf.clear();
+ pdu.encode(S1AP__PDU__Descriptions::S1AP__PDU_descr_, buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return OCTETSTRING(buf.get_len(), buf.get_data());
}
S1AP__PDU__Descriptions::S1AP__PDU dec__S1AP__PDU(const OCTETSTRING &stream)
{
- uint8_t *ber_buf;
- int ber_buf_len;
-
- /* First, decode APER + re-encode as BER */
- ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_S1AP, &ber_buf, (const unsigned char *)stream, stream.lengthof());
- if (ber_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* Then, re-encode from BER to TITAN representation */
- S1AP__PDU__Descriptions::S1AP__PDU ret_dcc;
+ S1AP__PDU__Descriptions::S1AP__PDU pdu;
TTCN_Buffer TTCN_buf;
+
TTCN_buf.clear();
- TTCN_buf.put_s(ber_buf_len, ber_buf);
-
- ret_dcc.decode(S1AP__PDU__Descriptions::S1AP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
-
- fftranscode_free(ber_buf);
-
- return ret_dcc;
+ TTCN_buf.put_os(stream);
+ pdu.decode(S1AP__PDU__Descriptions::S1AP__PDU_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return pdu;
}
}
diff --git a/library/s1ap/regen_makefile.sh b/library/s1ap/regen_makefile.sh
index fae086c..059c6b3 100755
--- a/library/s1ap/regen_makefile.sh
+++ b/library/s1ap/regen_makefile.sh
@@ -3,7 +3,3 @@
FILES="*.asn *.ttcn S1AP_EncDec.cc"
../../regen-makefile.sh $FILES
-
-sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
-sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
-sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
diff --git a/library/sabp/SABP_EncDec.cc b/library/sabp/SABP_EncDec.cc
index 3c60e82..4aa0498 100644
--- a/library/sabp/SABP_EncDec.cc
+++ b/library/sabp/SABP_EncDec.cc
@@ -1,11 +1,8 @@
-
-#include <string.h>
-#include <stdarg.h>
#include "SABP_PDU_Descriptions.hh"
-extern "C" {
-#include <fftranscode/transcode.h>
-}
+/* 3GPP TS 25.419, section 9.4 Message transfer syntax:
+ * SABP shall use the ASN.1 Basic Packed Encoding Rules (BASIC-PER) Aligned Variant
+ * as transfer syntax as specified in ref. ITU-T Rec. X.691 */
namespace SABP__Types {
@@ -13,52 +10,24 @@
OCTETSTRING enc__SABP__PDU(const SABP__PDU__Descriptions::SABP__PDU &pdu)
{
- uint8_t *aper_buf;
- int aper_buf_len;
- TTCN_Buffer TTCN_buf;
- TTCN_buf.clear();
+ TTCN_Buffer buf;
- /* Encode from abstract data type into BER/DER */
- pdu.encode(SABP__PDU__Descriptions::SABP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ENCODE_DER);
-
- aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_SABP, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());
- if (aper_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* make octetstring from output buffer */
- OCTETSTRING ret_val(aper_buf_len, aper_buf);
-
- /* release dynamically-allocated output buffer */
- fftranscode_free(aper_buf);
-
- return ret_val;
+ buf.clear();
+ pdu.encode(SABP__PDU__Descriptions::SABP__PDU_descr_, buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return OCTETSTRING(buf.get_len(), buf.get_data());
}
SABP__PDU__Descriptions::SABP__PDU dec__SABP__PDU(const OCTETSTRING &stream)
{
- uint8_t *ber_buf;
- int ber_buf_len;
-
- /* First, decode APER + re-encode as BER */
- ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_SABP, &ber_buf, (const unsigned char *)stream, stream.lengthof());
- if (ber_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* Then, re-encode from BER to TITAN representation */
- SABP__PDU__Descriptions::SABP__PDU ret_dcc;
+ SABP__PDU__Descriptions::SABP__PDU pdu;
TTCN_Buffer TTCN_buf;
+
TTCN_buf.clear();
- TTCN_buf.put_s(ber_buf_len, ber_buf);
-
- ret_dcc.decode(SABP__PDU__Descriptions::SABP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
-
- fftranscode_free(ber_buf);
-
- return ret_dcc;
+ TTCN_buf.put_os(stream);
+ pdu.decode(SABP__PDU__Descriptions::SABP__PDU_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return pdu;
}
}
diff --git a/library/sabp/regen_makefile.sh b/library/sabp/regen_makefile.sh
index 382fbd5..d53a09c 100755
--- a/library/sabp/regen_makefile.sh
+++ b/library/sabp/regen_makefile.sh
@@ -3,7 +3,3 @@
FILES="*.asn *.ttcn SABP_EncDec.cc"
../../regen-makefile.sh $FILES
-
-sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
-sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
-sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
diff --git a/library/sbcap/SBC_AP_EncDec.cc b/library/sbcap/SBC_AP_EncDec.cc
index 08ee75f..26e3364 100644
--- a/library/sbcap/SBC_AP_EncDec.cc
+++ b/library/sbcap/SBC_AP_EncDec.cc
@@ -1,11 +1,8 @@
-
-#include <string.h>
-#include <stdarg.h>
#include "SBC_AP_PDU_Descriptions.hh"
-extern "C" {
-#include <fftranscode/transcode.h>
-}
+/* 3GPP TS 29.168, section 9.4 Message transfer syntax:
+ * SBC-AP shall use the ASN.1 Basic Packed Encoding Rules (BASIC-PER) Aligned Variant
+ * as transfer syntax as specified in ref. ITU-T Rec. X.691 */
namespace SBC__AP__Types {
@@ -13,52 +10,24 @@
OCTETSTRING enc__SBC__AP__PDU(const SBC__AP__PDU__Descriptions::SBC__AP__PDU &pdu)
{
- uint8_t *aper_buf;
- int aper_buf_len;
- TTCN_Buffer TTCN_buf;
- TTCN_buf.clear();
+ TTCN_Buffer buf;
- /* Encode from abstract data type into BER/DER */
- pdu.encode(SBC__AP__PDU__Descriptions::SBC__AP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ENCODE_DER);
-
- aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_SBCAP, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());
- if (aper_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* make octetstring from output buffer */
- OCTETSTRING ret_val(aper_buf_len, aper_buf);
-
- /* release dynamically-allocated output buffer */
- fftranscode_free(aper_buf);
-
- return ret_val;
+ buf.clear();
+ pdu.encode(SBC__AP__PDU__Descriptions::SBC__AP__PDU_descr_, buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return OCTETSTRING(buf.get_len(), buf.get_data());
}
SBC__AP__PDU__Descriptions::SBC__AP__PDU dec__SBC__AP__PDU(const OCTETSTRING &stream)
{
- uint8_t *ber_buf;
- int ber_buf_len;
-
- /* First, decode APER + re-encode as BER */
- ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_SBCAP, &ber_buf, (const unsigned char *)stream, stream.lengthof());
- if (ber_buf_len < 0) {
- TTCN_error("fftranscode failed.");
- }
-
- /* Then, re-encode from BER to TITAN representation */
- SBC__AP__PDU__Descriptions::SBC__AP__PDU ret_dcc;
+ SBC__AP__PDU__Descriptions::SBC__AP__PDU pdu;
TTCN_Buffer TTCN_buf;
+
TTCN_buf.clear();
- TTCN_buf.put_s(ber_buf_len, ber_buf);
-
- ret_dcc.decode(SBC__AP__PDU__Descriptions::SBC__AP__PDU_descr_, TTCN_buf,
- TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
-
- fftranscode_free(ber_buf);
-
- return ret_dcc;
+ TTCN_buf.put_os(stream);
+ pdu.decode(SBC__AP__PDU__Descriptions::SBC__AP__PDU_descr_, TTCN_buf,
+ TTCN_EncDec::CT_PER, PER_ALIGNED);
+ return pdu;
}
}
diff --git a/library/sbcap/regen_makefile.sh b/library/sbcap/regen_makefile.sh
index 0cd6083..064979e 100755
--- a/library/sbcap/regen_makefile.sh
+++ b/library/sbcap/regen_makefile.sh
@@ -3,7 +3,3 @@
FILES="*.asn *.ttcn SBC_AP_EncDec.cc"
../../regen-makefile.sh $FILES
-
-sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
-sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
-sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
diff --git a/mme/regen_makefile.sh b/mme/regen_makefile.sh
index 6e86346..3520296 100755
--- a/mme/regen_makefile.sh
+++ b/mme/regen_makefile.sh
@@ -34,4 +34,4 @@
../regen-makefile.sh -e $NAME $FILES
-sed -i -e 's/^LINUX_LIBS = -lxml2 -lsctp/LINUX_LIBS = -lxml2 -lsctp -lfftranscode -lgnutls/' Makefile
+sed -i -e 's/^LINUX_LIBS = -lxml2 -lsctp/LINUX_LIBS = -lxml2 -lsctp -lgnutls/' Makefile
diff --git a/msc/regen_makefile.sh b/msc/regen_makefile.sh
index 081d2cb..6034e1f 100755
--- a/msc/regen_makefile.sh
+++ b/msc/regen_makefile.sh
@@ -46,4 +46,4 @@
../regen-makefile.sh -e $NAME $FILES
-sed -i -e 's/^LINUX_LIBS = -lxml2 -lsctp/LINUX_LIBS = -lxml2 -lsctp -lfftranscode -lssl/' Makefile
+sed -i -e 's/^LINUX_LIBS = -lxml2 -lsctp/LINUX_LIBS = -lxml2 -lsctp -lssl/' Makefile
diff --git a/s1gw/regen_makefile.sh b/s1gw/regen_makefile.sh
index 7eef51b..50cce0e 100755
--- a/s1gw/regen_makefile.sh
+++ b/s1gw/regen_makefile.sh
@@ -20,7 +20,3 @@
"
../regen-makefile.sh -e $NAME $FILES
-
-sed -i -e '/^CPPFLAGS/ s/$/ `pkg-config --cflags libfftranscode`/' Makefile
-sed -i -e '/^LDFLAGS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
-sed -i -e '/^LINUX_LIBS/ s/$/ `pkg-config --libs libfftranscode`/' Makefile
diff --git a/sgsn/regen_makefile.sh b/sgsn/regen_makefile.sh
index 5c9c5ea..1f89dee 100755
--- a/sgsn/regen_makefile.sh
+++ b/sgsn/regen_makefile.sh
@@ -33,5 +33,3 @@
"
../regen-makefile.sh -e $NAME $FILES
-
-sed -i -e 's/^LINUX_LIBS = -lxml2 -lsctp/LINUX_LIBS = -lxml2 -lsctp -lfftranscode/' Makefile
To view, visit change 37225. To unsubscribe, or for help writing mail filters, visit settings.