PCU: respect the PCU-side "local port" as configured via L1 IF

This makes sure that the UDP local port of the Gb link is actually
set to what is configured via OML from OpenBSC.
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index 4f8c41e..17c3fe4 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -559,9 +559,10 @@
 }
 
 /* create BSSGP/NS layer instances */
-int gprs_bssgp_create(uint32_t sgsn_ip, uint16_t sgsn_port, uint16_t nsei,
-	uint16_t nsvci, uint16_t bvci, uint16_t mcc, uint16_t mnc, uint16_t lac,
-	uint16_t rac, uint16_t cell_id)
+int gprs_bssgp_create(uint16_t local_port, uint32_t sgsn_ip,
+	uint16_t sgsn_port, uint16_t nsei, uint16_t nsvci, uint16_t bvci,
+	uint16_t mcc, uint16_t mnc, uint16_t lac, uint16_t rac,
+	uint16_t cell_id)
 {
 	struct sockaddr_in dest;
 	int rc;
@@ -579,6 +580,7 @@
 		return -EINVAL;
 	}
 	gprs_ns_vty_init(bssgp_nsi);
+	bssgp_nsi->nsip.local_port = local_port;
 	rc = gprs_ns_nsip_listen(bssgp_nsi);
 	if (rc < 0) {
 		LOGP(DBSSGP, LOGL_ERROR, "Failed to create socket\n");
diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h
index 2d66188..d669c3a 100644
--- a/src/gprs_bssgp_pcu.h
+++ b/src/gprs_bssgp_pcu.h
@@ -51,9 +51,10 @@
 
 int gprs_bssgp_pcu_rcvmsg(struct msgb *msg);
 
-int gprs_bssgp_create(uint32_t sgsn_ip, uint16_t sgsn_port, uint16_t nsei,
-        uint16_t nsvci, uint16_t bvci, uint16_t mcc, uint16_t mnc, uint16_t lac,
-	        uint16_t rac, uint16_t cell_id);
+int gprs_bssgp_create(uint16_t local_port, uint32_t sgsn_ip, uint16_t
+		sgsn_port, uint16_t nsei, uint16_t nsvci, uint16_t bvci,
+		uint16_t mcc, uint16_t mnc, uint16_t lac, uint16_t rac,
+		uint16_t cell_id);
 
 void gprs_bssgp_destroy(void);
 
diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp
index 6b8b3fe..8d98c1e 100644
--- a/src/pcu_l1_if.cpp
+++ b/src/pcu_l1_if.cpp
@@ -420,7 +420,8 @@
 	LOGP(DL1IF, LOGL_DEBUG, " remote_port=%d\n", info_ind->remote_port[0]);
 	LOGP(DL1IF, LOGL_DEBUG, " remote_ip=%d\n", info_ind->remote_ip[0]);
 
-	rc = gprs_bssgp_create(info_ind->remote_ip[0], info_ind->remote_port[0],
+	rc = gprs_bssgp_create(info_ind->local_port[0],
+		info_ind->remote_ip[0], info_ind->remote_port[0],
 		info_ind->nsei, info_ind->nsvci[0], info_ind->bvci,
 		info_ind->mcc, info_ind->mnc, info_ind->lac, info_ind->rac,
 		info_ind->cell_id);