aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/include/openbsc/ipaccess.h11
-rw-r--r--openbsc/src/bsc/osmo_bsc_msc.c4
-rw-r--r--openbsc/src/nat/bsc_filter.c2
-rw-r--r--openbsc/src/nat/bsc_mgcp_utils.c4
-rw-r--r--openbsc/src/nat/bsc_nat.c2
-rw-r--r--openbsc/src/nat/bsc_nat_utils.c2
-rw-r--r--openbsc/src/nat/bsc_ussd.c2
7 files changed, 17 insertions, 10 deletions
diff --git a/openbsc/include/openbsc/ipaccess.h b/openbsc/include/openbsc/ipaccess.h
index b37022038..1d00d9792 100644
--- a/openbsc/include/openbsc/ipaccess.h
+++ b/openbsc/include/openbsc/ipaccess.h
@@ -14,14 +14,21 @@ struct ipaccess_head {
u_int8_t data[0];
} __attribute__ ((packed));
+struct ipaccess_head_ext {
+ uint8_t proto;
+ uint8_t data[0];
+} __attribute__ ((packed));
+
enum ipaccess_proto {
IPAC_PROTO_RSL = 0x00,
IPAC_PROTO_IPACCESS = 0xfe,
IPAC_PROTO_SCCP = 0xfd,
IPAC_PROTO_OML = 0xff,
+
/* OpenBSC extensions */
- IPAC_PROTO_MGCP = 0xfc,
+ IPAC_PROTO_OSMO = 0xee,
+ IPAC_PROTO_MGCP_OLD = 0xfc,
};
enum ipaccess_msgtype {
@@ -32,7 +39,7 @@ enum ipaccess_msgtype {
IPAC_MSGT_ID_ACK = 0x06,
/* OpenBSC extension */
- IPAC_MSGT_SCCP_STATE = 0xff,
+ IPAC_MSGT_SCCP_OLD = 0xff,
};
enum ipaccess_id_tags {
diff --git a/openbsc/src/bsc/osmo_bsc_msc.c b/openbsc/src/bsc/osmo_bsc_msc.c
index 8b23c6f4a..b0c00444b 100644
--- a/openbsc/src/bsc/osmo_bsc_msc.c
+++ b/openbsc/src/bsc/osmo_bsc_msc.c
@@ -67,7 +67,7 @@ static int mgcp_do_read(struct bsc_fd *fd)
}
mgcp->l2h = msgb_put(mgcp, ret);
- msc_queue_write(data->msc_con, mgcp, IPAC_PROTO_MGCP);
+ msc_queue_write(data->msc_con, mgcp, IPAC_PROTO_MGCP_OLD);
return 0;
}
@@ -223,7 +223,7 @@ static int ipaccess_a_fd_cb(struct bsc_fd *bfd)
}
} else if (hh->proto == IPAC_PROTO_SCCP) {
sccp_system_incoming(msg);
- } else if (hh->proto == IPAC_PROTO_MGCP) {
+ } else if (hh->proto == IPAC_PROTO_MGCP_OLD) {
mgcp_forward(data, msg);
}
diff --git a/openbsc/src/nat/bsc_filter.c b/openbsc/src/nat/bsc_filter.c
index f22f5bee1..73e987893 100644
--- a/openbsc/src/nat/bsc_filter.c
+++ b/openbsc/src/nat/bsc_filter.c
@@ -69,7 +69,7 @@ static struct bsc_pkt_filter white_list[] = {
{ IPAC_PROTO_SCCP, ALLOW_ANY, ALLOW_ANY, ALLOW_ANY, FILTER_TO_BOTH },
/* allow MGCP messages to both sides */
- { IPAC_PROTO_MGCP, ALLOW_ANY, ALLOW_ANY, ALLOW_ANY, FILTER_TO_BOTH },
+ { IPAC_PROTO_MGCP_OLD, ALLOW_ANY, ALLOW_ANY, ALLOW_ANY, FILTER_TO_BOTH },
};
struct bsc_nat_parsed *bsc_nat_parse(struct msgb *msg)
diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c
index dc8cd81b6..aacfce6eb 100644
--- a/openbsc/src/nat/bsc_mgcp_utils.c
+++ b/openbsc/src/nat/bsc_mgcp_utils.c
@@ -303,7 +303,7 @@ int bsc_mgcp_policy_cb(struct mgcp_config *cfg, int endpoint, int state, const c
}
/* send the message and a fake MDCX to force sending of a dummy packet */
- bsc_write(sccp->bsc, bsc_msg, IPAC_PROTO_MGCP);
+ bsc_write(sccp->bsc, bsc_msg, IPAC_PROTO_MGCP_OLD);
bsc_mgcp_send_mdcx(sccp->bsc, sccp->bsc_endp, mgcp_endp);
return MGCP_POLICY_DEFER;
} else if (state == MGCP_ENDP_DLCX) {
@@ -312,7 +312,7 @@ int bsc_mgcp_policy_cb(struct mgcp_config *cfg, int endpoint, int state, const c
bsc_mgcp_dlcx(sccp);
return MGCP_POLICY_CONT;
} else {
- bsc_write(sccp->bsc, bsc_msg, IPAC_PROTO_MGCP);
+ bsc_write(sccp->bsc, bsc_msg, IPAC_PROTO_MGCP_OLD);
return MGCP_POLICY_DEFER;
}
}
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 046f38c11..a0bebf13b 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -958,7 +958,7 @@ static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg)
goto exit2;
break;
}
- } else if (parsed->ipa_proto == IPAC_PROTO_MGCP) {
+ } else if (parsed->ipa_proto == IPAC_PROTO_MGCP_OLD) {
bsc_mgcp_forward(bsc, msg);
goto exit2;
} else {
diff --git a/openbsc/src/nat/bsc_nat_utils.c b/openbsc/src/nat/bsc_nat_utils.c
index 05868f947..aba082d4d 100644
--- a/openbsc/src/nat/bsc_nat_utils.c
+++ b/openbsc/src/nat/bsc_nat_utils.c
@@ -262,7 +262,7 @@ int bsc_write_mgcp(struct bsc_connection *bsc, const uint8_t *data, unsigned int
msg->l3h = msgb_put(msg, length);
memcpy(msg->l3h, data, length);
- return bsc_write(bsc, msg, IPAC_PROTO_MGCP);
+ return bsc_write(bsc, msg, IPAC_PROTO_MGCP_OLD);
}
int bsc_write(struct bsc_connection *bsc, struct msgb *msg, int proto)
diff --git a/openbsc/src/nat/bsc_ussd.c b/openbsc/src/nat/bsc_ussd.c
index 378fbc50f..c121abe5d 100644
--- a/openbsc/src/nat/bsc_ussd.c
+++ b/openbsc/src/nat/bsc_ussd.c
@@ -281,7 +281,7 @@ static int forward_ussd(struct sccp_connections *con, const struct ussd_request
memcpy(copy->l2h, input->l2h, msgb_l2len(input));
msg->l2h = msgb_put(msg, 1);
- msg->l2h[0] = IPAC_MSGT_SCCP_STATE;
+ msg->l2h[0] = IPAC_MSGT_SCCP_OLD;
/* fill out the data */
state = (struct ipac_msgt_sccp_state *) msgb_put(msg, sizeof(*state));