library/MNCC_EncDec: rip out MNCC version 6 support
The latest release of osmo-sip-connector (1.5.0, 23 Feb 2021) does
support MNCCv7, so there is no need to maintain MNCCv6 support.
Change-Id: Ie45158e805a62e86b9496b46f323b83a74630460
Related: I5448ff931ec33f24f4837a51376f1703fe97683b
Related: OS#5282
diff --git a/library/MNCC_EncDec.cc b/library/MNCC_EncDec.cc
index be5d01a..7d09d0a 100644
--- a/library/MNCC_EncDec.cc
+++ b/library/MNCC_EncDec.cc
@@ -9,7 +9,7 @@
BOOLEAN set__MNCC__version(INTEGER const& version)
{
- if (version != 6 && version != 7)
+ if (version != 7)
return false;
mncc_sock_version = version;
return true;
@@ -195,46 +195,27 @@
ret_val = ret_val & in.u().data().data();
break;
case MNCC__MsgUnion::ALT_rtp:
- switch (mncc_sock_version) {
- case 6:
- struct gsm_mncc_rtp_mncc6 rtp_old;
- memset(&rtp_old, 0, sizeof(rtp_old));
- rtp_old.msg_type = in.msg__type();
- rtp_old.callref = in.u().rtp().callref();
- ttcn_buffer.put_string(in.u().rtp().ip());
- if (!in.u().rtp().is__ipv6()) {
- memcpy(&rtp_old.ip, ttcn_buffer.get_data(), sizeof(struct in_addr));
- rtp_old.ip = ntohl(rtp_old.ip);
- } /* else: ipv6 not supported in MNCCv6 */
- rtp_old.port = in.u().rtp().rtp__port();
- rtp_old.payload_type = in.u().rtp().payload__type();
- rtp_old.payload_msg_type = in.u().rtp().payload__msg__type();
- ret_val = OCTETSTRING(sizeof(rtp_old), (uint8_t *) &rtp_old);
- break;
- case 7:
- struct gsm_mncc_rtp rtp;
- memset(&rtp, 0, sizeof(rtp));
- rtp.msg_type = in.msg__type();
- rtp.callref = in.u().rtp().callref();
- ttcn_buffer.put_string(in.u().rtp().ip());
- if (in.u().rtp().is__ipv6()) {
- // if(in.u().rtp().ip().lengthof() != 16) print error
- rtp.addr.ss_family = AF_INET6;
- memcpy(&((struct sockaddr_in6*)&rtp.addr)->sin6_addr, ttcn_buffer.get_data(),
- sizeof(struct in6_addr));
- ((struct sockaddr_in6*)&rtp.addr)->sin6_port = htons(in.u().rtp().rtp__port());
- } else {
- // if(in.u().rtp().ip().lengthof() != 4) print error
- rtp.addr.ss_family = AF_INET;
- memcpy(&((struct sockaddr_in*)&rtp.addr)->sin_addr, ttcn_buffer.get_data(),
- sizeof(struct in_addr));
- ((struct sockaddr_in*)&rtp.addr)->sin_port = htons(in.u().rtp().rtp__port());
- }
- rtp.payload_type = in.u().rtp().payload__type();
- rtp.payload_msg_type = in.u().rtp().payload__msg__type();
- ret_val = OCTETSTRING(sizeof(rtp), (uint8_t *) &rtp);
- break;
+ struct gsm_mncc_rtp rtp;
+ memset(&rtp, 0, sizeof(rtp));
+ rtp.msg_type = in.msg__type();
+ rtp.callref = in.u().rtp().callref();
+ ttcn_buffer.put_string(in.u().rtp().ip());
+ if (in.u().rtp().is__ipv6()) {
+ // if(in.u().rtp().ip().lengthof() != 16) print error
+ rtp.addr.ss_family = AF_INET6;
+ memcpy(&((struct sockaddr_in6*)&rtp.addr)->sin6_addr, ttcn_buffer.get_data(),
+ sizeof(struct in6_addr));
+ ((struct sockaddr_in6*)&rtp.addr)->sin6_port = htons(in.u().rtp().rtp__port());
+ } else {
+ // if(in.u().rtp().ip().lengthof() != 4) print error
+ rtp.addr.ss_family = AF_INET;
+ memcpy(&((struct sockaddr_in*)&rtp.addr)->sin_addr, ttcn_buffer.get_data(),
+ sizeof(struct in_addr));
+ ((struct sockaddr_in*)&rtp.addr)->sin_port = htons(in.u().rtp().rtp__port());
}
+ rtp.payload_type = in.u().rtp().payload__type();
+ rtp.payload_msg_type = in.u().rtp().payload__msg__type();
+ ret_val = OCTETSTRING(sizeof(rtp), (uint8_t *) &rtp);
break;
case MNCC__MsgUnion::ALT_hello:
struct gsm_mncc_hello hello;
@@ -264,7 +245,6 @@
const struct gsm_data_frame *in_data;
MNCC__PDU__Data data;
const struct gsm_mncc_rtp *in_rtp;
- const struct gsm_mncc_rtp_mncc6 *in_rtp_old;
MNCC__PDU__Rtp rtp;
MNCC__MsgUnion u;
bool is_ipv6;
@@ -303,40 +283,26 @@
case MNCC_RTP_CREATE:
case MNCC_RTP_CONNECT:
case MNCC_RTP_FREE:
- switch (mncc_sock_version) {
- case 6:
- struct in_addr inaddr;
- in_rtp_old = (const struct gsm_mncc_rtp_mncc6 *) in_mncc;
- inaddr.s_addr = htonl(in_rtp_old->ip);
- ip = OCTETSTRING(sizeof(struct in_addr),
- (const unsigned char*)&inaddr);
- rtp = MNCC__PDU__Rtp(in_rtp_old->callref, false, ip, in_rtp_old->port, in_rtp_old->payload_type,
- in_rtp_old->payload_msg_type, in_rtp_old->sdp);
- u.rtp() = rtp;
- break;
- case 7:
- in_rtp = (const struct gsm_mncc_rtp *) in_mncc;
- switch (in_rtp->addr.ss_family) {
- case AF_INET6:
- is_ipv6 = true;
- port = ntohs(((struct sockaddr_in6*)&in_rtp->addr)->sin6_port);
- ip = OCTETSTRING(sizeof(struct in6_addr),
- (const unsigned char*)&((struct sockaddr_in6*)&in_rtp->addr)->sin6_addr);
+ in_rtp = (const struct gsm_mncc_rtp *) in_mncc;
+ switch (in_rtp->addr.ss_family) {
+ case AF_INET6:
+ is_ipv6 = true;
+ port = ntohs(((struct sockaddr_in6*)&in_rtp->addr)->sin6_port);
+ ip = OCTETSTRING(sizeof(struct in6_addr),
+ (const unsigned char*)&((struct sockaddr_in6*)&in_rtp->addr)->sin6_addr);
break;
- case AF_UNSPEC: //RTP_CREATE and RTP_FREE can contain fully zeroed addr
- case AF_INET:
- is_ipv6 = false;
- port = ntohs(((struct sockaddr_in*)&in_rtp->addr)->sin_port);
- ip = OCTETSTRING(sizeof(struct in_addr),
- (const unsigned char*)&((struct sockaddr_in*)&in_rtp->addr)->sin_addr);
- break;
- }
- rtp = MNCC__PDU__Rtp(in_rtp->callref, is_ipv6, ip, port, in_rtp->payload_type,
- in_rtp->payload_msg_type, in_rtp->sdp);
- u.rtp() = rtp;
+ case AF_UNSPEC: //RTP_CREATE and RTP_FREE can contain fully zeroed addr
+ case AF_INET:
+ is_ipv6 = false;
+ port = ntohs(((struct sockaddr_in*)&in_rtp->addr)->sin_port);
+ ip = OCTETSTRING(sizeof(struct in_addr),
+ (const unsigned char*)&((struct sockaddr_in*)&in_rtp->addr)->sin_addr);
break;
}
+ rtp = MNCC__PDU__Rtp(in_rtp->callref, is_ipv6, ip, port, in_rtp->payload_type,
+ in_rtp->payload_msg_type, in_rtp->sdp);
+ u.rtp() = rtp;
break;
default:
sign.callref() = in_mncc->callref;
diff --git a/library/mncc.h b/library/mncc.h
index a55d155..1e45c37 100644
--- a/library/mncc.h
+++ b/library/mncc.h
@@ -292,18 +292,6 @@
uint32_t lchan_type_offset;
};
-/* Use this one in MNCCv6 */
-struct gsm_mncc_rtp_mncc6 {
- uint32_t msg_type;
- uint32_t callref;
- uint32_t ip;
- uint16_t port;
- uint32_t payload_type;
- uint32_t payload_msg_type;
-
- char sdp[1024];
-};
-
struct gsm_mncc_rtp {
uint32_t msg_type;
uint32_t callref;