jolly has uploaded this change for review.
ASCI: Add interface for group receive/transmit mode support to RR layer
This patch includes new messages and description. The are used to bring
RR layer into group receive mode and from there in group transmit mode
and back.
Related: OS#5364
Change-Id: I1abd56c63d15af1cff8bde7589a571cb5bb5506f
---
M src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h
M src/host/layer23/src/mobile/gsm48_rr.c
2 files changed, 48 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/28/34528/1
diff --git a/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h b/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h
index fb07cc9..6bc2f28 100644
--- a/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h
+++ b/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h
@@ -23,6 +23,15 @@
#define GSM48_RR_ABORT_REQ 0x60
#define GSM48_RR_ABORT_IND 0x62
#define GSM48_RR_ACT_REQ 0x70
+/* These are non-stadard primitives, used for group receive/transmit modes. */
+#define GSM48_RR_GROUP_REQ 0x80 /* Join a group channel in group receive mode. */
+#define GSM48_RR_GROUP_CNF 0x81 /* Group channel has been joined. */
+#define GSM48_RR_GROUP_REL_REQ 0x84 /* Release group channel. */
+#define GSM48_RR_GROUP_REL_IND 0x86 /* Group channel has been released or failed. */
+#define GSM48_RR_UPLINK_REQ 0x90 /* Request uplink for group transmit mode. */
+#define GSM48_RR_UPLINK_CNF 0x91 /* Access granted. */
+#define GSM48_RR_UPLINK_REL_REQ 0x94 /* Release uplink for group receive mode. */
+#define GSM48_RR_UPLINK_REL_IND 0x96 /* Access denied or failed or uplink released. */
#define RR_EST_CAUSE_EMERGENCY 1
#define RR_EST_CAUSE_REESTAB_TCH_F 2
@@ -45,6 +54,8 @@
#define RR_REL_CAUSE_EMERGENCY_ONLY 6
#define RR_REL_CAUSE_LOST_SIGNAL 7
#define RR_REL_CAUSE_LINK_FAILURE 8
+#define RR_REL_CAUSE_UPLINK_BUSY 9
+#define RR_REL_CAUSE_UPLINK_REJECTED 10
#define RR_SYNC_CAUSE_CIPHERING 1
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c
index 76e94b4..9a23d47 100644
--- a/src/host/layer23/src/mobile/gsm48_rr.c
+++ b/src/host/layer23/src/mobile/gsm48_rr.c
@@ -34,6 +34,21 @@
* When the assignment or handover fails, the old channel is activate and the
* link is established again. Also pending messages are sent.
*
+ * New primitives are invented for group/broadcast calls. They are not
+ * specified in any recommendation. They are:
+ *
+ * GSM48_MM_EVENT_NOTIFICATION: Notify MM layer about received/ceased call.
+ * GSM48_MM_EVENT_UPLINK_BUSY: Notify MM layer about uplink becoming busy.
+ * GSM48_MM_EVENT_UPLINK_FREE: Notify MM layer about uplink becoming free.
+ *
+ * RR_GROUP_REQ: The MM layer requests group channel in receive mode.
+ * RR_GROUP_CNF: The RR confirms group channel.
+ * RR_GROUP_REL_REQ: The MM layer releases group channel.
+ * RR_GROUP_REL_IND: The RR indicates/confirms release of group channel.
+ * RR_UPLINK_REQ: The MM layer requests uplink (group transmit mode).
+ * RR_UPLINK_CNF: The RR layer confirms uplink. (Uplink was granted.)
+ * RR_UPLINK_REL_REQ: The MM layer requests release of uplink.
+ * RR_UPLINK_REL_IND: The RR layer indicates/confirms release of uplink
*/
/* Testing delayed (immediate) assignment / handover
@@ -463,6 +478,14 @@
{ GSM48_RR_ABORT_REQ, "RR_ABORT_REQ" },
{ GSM48_RR_ABORT_IND, "RR_ABORT_IND" },
{ GSM48_RR_ACT_REQ, "RR_ACT_REQ" },
+ { GSM48_RR_GROUP_REQ, "RR_GROUP_REQ" },
+ { GSM48_RR_GROUP_CNF, "RR_GROUP_CNF" },
+ { GSM48_RR_GROUP_REL_REQ, "RR_GROUP_REL_REQ" },
+ { GSM48_RR_GROUP_REL_IND, "RR_GROUP_REL_IND" },
+ { GSM48_RR_UPLINK_REQ, "RR_UPLINK_REQ" },
+ { GSM48_RR_UPLINK_CNF, "RR_UPLINK_CNF" },
+ { GSM48_RR_UPLINK_REL_REQ, "RR_UPLINK_REL_REQ" },
+ { GSM48_RR_UPLINK_REL_IND, "RR_UPLINK_REL_IND" },
{ 0, NULL }
};
To view, visit change 34528. To unsubscribe, or for help writing mail filters, visit settings.