[GPRS] Add Frame Relay in GRE encapsulation for NS
diff --git a/openbsc/src/gprs/gb_proxy_main.c b/openbsc/src/gprs/gb_proxy_main.c
index 68d07ae..1b39a2e 100644
--- a/openbsc/src/gprs/gb_proxy_main.c
+++ b/openbsc/src/gprs/gb_proxy_main.c
@@ -238,12 +238,22 @@
 		exit(2);
 	}
 
-	rc = nsip_listen(bssgp_nsi, gbcfg.nsip_listen_port);
+	rc = nsip_listen(bssgp_nsi, gbcfg.nsip_listen_ip,
+			 gbcfg.nsip_listen_port);
 	if (rc < 0) {
 		LOGP(DGPRS, LOGL_FATAL, "Cannot bind/listen on NSIP socket\n");
 		exit(2);
 	}
 
+	if (gbcfg.frgre_enabled) {
+		rc = gprs_ns_frgre_listen(bssgp_nsi, gbcfg.nsip_listen_ip);
+		if (rc < 0) {
+			LOGP(DGPRS, LOGL_FATAL, "Cannot bind/listen GRE "
+				"socket. Do you have CAP_NET_RAW?\n");
+			exit(2);
+		}
+	}
+
 	/* Reset all the persistent NS-VCs that we've read from the config */
 	gbprox_reset_persistent_nsvcs(bssgp_nsi);