gprs_ns2: rework frame relay load distribution function

For frame relay the traffic will be even distributed across
all NS-VCs. Do not differentiate between signalling and
data traffic.

Change-Id: I6c060941db335a7a6a555ac8d1b9269fa8fb2023
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index 5603fce..1098f22 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -350,15 +350,12 @@
 		uint32_t load_selector)
 {
 	struct gprs_ns2_vc *tmp;
-	uint32_t mod = (bvci + load_selector) % nse->nsvc_data_count;
+	uint32_t mod = (bvci + load_selector) % nse->nsvc_count;
 	uint32_t i = 0;
 
 	llist_for_each_entry(tmp, &nse->nsvc, list) {
 		if (!gprs_ns2_vc_is_unblocked(tmp))
 			continue;
-		if (tmp->data_weight == 0)
-			continue;
-
 		if (i == mod)
 			return tmp;
 		i++;
@@ -393,22 +390,20 @@
 {
 	struct gprs_ns2_vc *nsvc = NULL;
 
-	if (bvci == 0) {
-		/* signalling */
-		nsvc = ns2_load_sharing_signal(nse);
-	} else {
-		/* data with load sharing parameter */
-		if (llist_empty(&nse->nsvc))
-			return NULL;
-
-		switch (nse->ll) {
-		case GPRS_NS2_LL_FR:
-			nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector);
-			break;
-		default:
+	switch (nse->ll) {
+	case GPRS_NS2_LL_FR:
+		nsvc = ns2_load_sharing_modulor(nse, bvci, link_selector);
+		break;
+	case GPRS_NS2_LL_UDP:
+	default:
+		if (bvci == 0) {
+			/* signalling */
+			nsvc = ns2_load_sharing_signal(nse);
+		} else {
+			/* data with load sharing parameter */
 			nsvc = ns2_load_sharing_first(nse);
-			break;
 		}
+		break;
 	}
 
 	return nsvc;
@@ -1087,13 +1082,13 @@
 void ns2_nse_data_sum(struct gprs_ns2_nse *nse)
 {
 	struct gprs_ns2_vc *nsvc;
-	nse->nsvc_data_count = 0;
+	nse->nsvc_count = 0;
 
 	llist_for_each_entry(nsvc, &nse->nsvc, list) {
 		if (!gprs_ns2_vc_is_unblocked(nsvc))
 			continue;
-		if (nsvc->data_weight > 0)
-			nse->nsvc_data_count++;
+
+		nse->nsvc_count++;
 	}
 }