aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-04-01 08:47:12 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-04-01 08:47:12 +0200
commita5a4014d67a5eae045541681b94359eb4bf0bd18 (patch)
tree36318f930adc37358b36cbcec3d4086b3bbed3b4
parent9d519189aefc1a872e8388b8264f8cf9b70aca7b (diff)
nat: Allow to send MGCP messages from the BSC to the network
-rw-r--r--openbsc/src/nat/bsc_filter.c3
-rw-r--r--openbsc/tests/bsc-nat/bsc_nat_test.c12
2 files changed, 15 insertions, 0 deletions
diff --git a/openbsc/src/nat/bsc_filter.c b/openbsc/src/nat/bsc_filter.c
index 1561676c9..891d4555d 100644
--- a/openbsc/src/nat/bsc_filter.c
+++ b/openbsc/src/nat/bsc_filter.c
@@ -67,6 +67,9 @@ static struct bsc_pkt_filter black_list[] = {
static struct bsc_pkt_filter white_list[] = {
/* allow IPAC_PROTO_SCCP messages to both sides */
{ IPAC_PROTO_SCCP, ALLOW_ANY, ALLOW_ANY, ALLOW_ANY, FILTER_TO_BOTH },
+
+ /* allow MGCP messages to both sides */
+ { NAT_IPAC_PROTO_MGCP, ALLOW_ANY, ALLOW_ANY, ALLOW_ANY, FILTER_TO_BOTH },
};
struct bsc_nat_parsed* bsc_nat_parse(struct msgb *msg)
diff --git a/openbsc/tests/bsc-nat/bsc_nat_test.c b/openbsc/tests/bsc-nat/bsc_nat_test.c
index 217c4f415..c3b86c060 100644
--- a/openbsc/tests/bsc-nat/bsc_nat_test.c
+++ b/openbsc/tests/bsc-nat/bsc_nat_test.c
@@ -89,6 +89,12 @@ static const u_int8_t bssmap_release_complete[] = {
0x05, 0x01, 0x02, 0x03, 0x00, 0x00, 0x03
};
+/* MGCP wrap... */
+static const u_int8_t mgcp_msg[] = {
+ 0x00, 0x03, 0xfc,
+ 0x20, 0x20, 0x20,
+};
+
struct filter_result {
const u_int8_t *data;
const u_int16_t length;
@@ -145,6 +151,12 @@ static const struct filter_result results[] = {
.dir = DIR_BSC,
.result = 0,
},
+ {
+ .data = mgcp_msg,
+ .length = ARRAY_SIZE(mgcp_msg),
+ .dir = DIR_MSC,
+ .result = 0,
+ },
};
static void test_filter(void)