dexter has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/18745 )


Change subject: endp: add name generator function for E1 endpoints
......................................................................

endp: add name generator function for E1 endpoints

Currently the endpoint name that is generated for an E1 endpoint is not
correct. Lets add an endpoint name generator function that derives a
full endpoint name for a given E1 index

Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57
Related: OS#2547
---
M src/libosmo-mgcp/mgcp_endp.c
1 file changed, 23 insertions(+), 4 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/18745/1

diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c
index e357010..0eeda08 100644
--- a/src/libosmo-mgcp/mgcp_endp.c
+++ b/src/libosmo-mgcp/mgcp_endp.c
@@ -41,6 +41,26 @@
                 MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK, index, domain);
 }

+/* Generate E1 endpoint name from given numeric parameters */
+static void gen_e1_epname(char *epname, uint8_t trunk_nr, uint8_t ts_nr,
+                         uint8_t ss_nr)
+{
+       static const uint8_t rates[] =
+           { 32, 32, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 8, 8 };
+       static const uint8_t offsets[] =
+           { 0, 4, 0, 2, 4, 6, 0, 1, 2, 3, 4, 5, 6, 7 };
+       unsigned int rate;
+       unsigned int offset;
+
+       OSMO_ASSERT(ss_nr < sizeof(rates));
+
+       rate = rates[ss_nr];
+       offset = offsets[ss_nr];
+
+       snprintf(epname, MGCP_ENDPOINT_MAXLEN, "%s%u/s-%u/su%u-%u",
+                MGCP_ENDPOINT_PREFIX_E1_TRUNK, trunk_nr, ts_nr, rate, offset);
+}
+
 /*! allocate an endpoint and set default values.
  *  \param[in] trunk configuration
  *  \returns endpoint on success, NULL on failure */
@@ -64,10 +84,9 @@
                gen_virtual_epname(ep_name_buf, trunk->cfg->domain, index);
                break;
        case MGCP_TRUNK_E1:
-               /* FIXME: E1 trunk implementation is work in progress, this 
endpoint
-                * name is incomplete (subslots) */
-               snprintf(ep_name_buf, sizeof(ep_name_buf), "%s-1/%x",
-                        MGCP_ENDPOINT_PREFIX_E1_TRUNK, index);
+               gen_e1_epname(ep_name_buf, trunk->trunk_nr, index / 14, index % 
14);
+
+               /* FIXME: remove this message when E1 support is complete */
                LOGP(DLMGCP, LOGL_FATAL, "E1 trunks not implemented!\n");
                break;
        default:

--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/18745
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I70e0c3f96aa3947165f9926666815ee5614c8f57
Gerrit-Change-Number: 18745
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pma...@sysmocom.de>
Gerrit-MessageType: newchange

Reply via email to