Change in osmo-pcu[master]: Update IA Rest Octets encoding

2019-03-27 Thread Max
Max has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/13245 )

Change subject: Update IA Rest Octets encoding
..

Update IA Rest Octets encoding

Write initial bits of 3GPP TS 44.018 §10.5.2.16 IA Rest Octets the same
way as  write_ia_rest_*() routines do.

This should also fix the issue addressed in
I75dd5bebc74eea85edf9582607c774d0bba0d2a6 initially by properly encoding
L/H bits.

Change-Id: I7ed5270bf95c3f6e9e026ff447eef8539f6f0314
---
M src/encoding.cpp
1 file changed, 13 insertions(+), 17 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/encoding.cpp b/src/encoding.cpp
index b460d41..1b325b4 100644
--- a/src/encoding.cpp
+++ b/src/encoding.cpp
@@ -497,41 +497,37 @@
plen = wp / 8;

/* 3GPP TS 44.018 §10.5.2.16 IA Rest Octets */
+   dest->cur_bit = wp;
if (downlink) {
if (!as_dl_tbf(tbf)) {
LOGP(DRLCMACDL, LOGL_ERROR, "Cannot encode DL IMMEDIATE 
ASSIGNMENT without TBF\n");
return -EINVAL;
}

-   dest->cur_bit = wp;
rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, polling, 
gsm48_ta_is_valid(ta), fn, alpha, gamma,
ta_idx);
} else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || (burst_type 
== GSM_L1_BURST_TYPE_ACCESS_2))) {
-   bitvec_write_field(dest, , 1, 2);/* LH */
-   bitvec_write_field(dest, , 0, 2);/* 0 EGPRS Uplink 
Assignment */
-   bitvec_write_field(dest, , ra & 0x1F, 5);/* Extended RA 
*/
-   bitvec_write_field(dest, , 0, 1);/* Access technology 
Request */
+   SET_L(dest); SET_H(dest); // "LH"
+   SET_0(dest); SET_0(dest); // "00" < EGPRS Packet Uplink 
Assignment >
+   rc = bitvec_set_u64(dest, ra & 0x1F, 5, false); // < Extended 
RA >
+   CHECK(rc);

-   if (as_ul_tbf(tbf) != NULL) {
-   dest->cur_bit = wp;
+   SET_0(dest); // No < Access Technologies Request struct >
+
+   if (as_ul_tbf(tbf) != NULL)
rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), 
dest, usf, alpha, gamma, ta_idx);
-   } else {
-   dest->cur_bit = wp;
+   else
rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, 
gamma);
-   }
} else {
OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled());

-   bitvec_write_field(dest, , 3, 2);// "HH"
-   bitvec_write_field(dest, , 0, 2);// "0" Packet Uplink 
Assignment
+   SET_H(dest); SET_H(dest); // "HH"
+   SET_0(dest); SET_0(dest); // "00" < Packet Uplink Assignment >

-   if (as_ul_tbf(tbf) != NULL) {
-   dest->cur_bit = wp;
+   if (as_ul_tbf(tbf) != NULL)
rc = write_ia_rest_uplink_mba(as_ul_tbf(tbf), dest, 
usf, alpha, gamma, ta_idx);
-   } else {
-   dest->cur_bit = wp;
+   else
rc = write_ia_rest_uplink_sba(dest, fn, alpha, gamma);
-   }
}

if (rc < 0) {

--
To view, visit https://gerrit.osmocom.org/13245
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I7ed5270bf95c3f6e9e026ff447eef8539f6f0314
Gerrit-Change-Number: 13245
Gerrit-PatchSet: 5
Gerrit-Owner: Max 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Max 


Change in osmo-pcu[master]: Update IA Rest Octets encoding

2019-03-25 Thread Max
Max has posted comments on this change. ( https://gerrit.osmocom.org/13245 )

Change subject: Update IA Rest Octets encoding
..


Patch Set 3:

This change is ready for review.


--
To view, visit https://gerrit.osmocom.org/13245
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7ed5270bf95c3f6e9e026ff447eef8539f6f0314
Gerrit-Change-Number: 13245
Gerrit-PatchSet: 3
Gerrit-Owner: Max 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Reviewer: Max 
Gerrit-Comment-Date: Mon, 25 Mar 2019 21:16:25 +
Gerrit-HasComments: No
Gerrit-HasLabels: No


Change in osmo-pcu[master]: Update IA Rest Octets encoding

2019-03-13 Thread Max
Max has uploaded this change for review. ( https://gerrit.osmocom.org/13245


Change subject: Update IA Rest Octets encoding
..

Update IA Rest Octets encoding

Write initial bits of 3GPP TS 44.018 §10.5.2.16 IA Rest Octets the same
way as  write_ia_rest_*() routines do.

This should also fix the issue addressed in
I75dd5bebc74eea85edf9582607c774d0bba0d2a6 initially by properly encoding
L/H bits.

Change-Id: I7ed5270bf95c3f6e9e026ff447eef8539f6f0314
---
M src/encoding.cpp
1 file changed, 13 insertions(+), 17 deletions(-)



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

diff --git a/src/encoding.cpp b/src/encoding.cpp
index b460d41..1b325b4 100644
--- a/src/encoding.cpp
+++ b/src/encoding.cpp
@@ -497,41 +497,37 @@
plen = wp / 8;

/* 3GPP TS 44.018 §10.5.2.16 IA Rest Octets */
+   dest->cur_bit = wp;
if (downlink) {
if (!as_dl_tbf(tbf)) {
LOGP(DRLCMACDL, LOGL_ERROR, "Cannot encode DL IMMEDIATE 
ASSIGNMENT without TBF\n");
return -EINVAL;
}

-   dest->cur_bit = wp;
rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, polling, 
gsm48_ta_is_valid(ta), fn, alpha, gamma,
ta_idx);
} else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || (burst_type 
== GSM_L1_BURST_TYPE_ACCESS_2))) {
-   bitvec_write_field(dest, , 1, 2);/* LH */
-   bitvec_write_field(dest, , 0, 2);/* 0 EGPRS Uplink 
Assignment */
-   bitvec_write_field(dest, , ra & 0x1F, 5);/* Extended RA 
*/
-   bitvec_write_field(dest, , 0, 1);/* Access technology 
Request */
+   SET_L(dest); SET_H(dest); // "LH"
+   SET_0(dest); SET_0(dest); // "00" < EGPRS Packet Uplink 
Assignment >
+   rc = bitvec_set_u64(dest, ra & 0x1F, 5, false); // < Extended 
RA >
+   CHECK(rc);

-   if (as_ul_tbf(tbf) != NULL) {
-   dest->cur_bit = wp;
+   SET_0(dest); // No < Access Technologies Request struct >
+
+   if (as_ul_tbf(tbf) != NULL)
rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), 
dest, usf, alpha, gamma, ta_idx);
-   } else {
-   dest->cur_bit = wp;
+   else
rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, 
gamma);
-   }
} else {
OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled());

-   bitvec_write_field(dest, , 3, 2);// "HH"
-   bitvec_write_field(dest, , 0, 2);// "0" Packet Uplink 
Assignment
+   SET_H(dest); SET_H(dest); // "HH"
+   SET_0(dest); SET_0(dest); // "00" < Packet Uplink Assignment >

-   if (as_ul_tbf(tbf) != NULL) {
-   dest->cur_bit = wp;
+   if (as_ul_tbf(tbf) != NULL)
rc = write_ia_rest_uplink_mba(as_ul_tbf(tbf), dest, 
usf, alpha, gamma, ta_idx);
-   } else {
-   dest->cur_bit = wp;
+   else
rc = write_ia_rest_uplink_sba(dest, fn, alpha, gamma);
-   }
}

if (rc < 0) {

--
To view, visit https://gerrit.osmocom.org/13245
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7ed5270bf95c3f6e9e026ff447eef8539f6f0314
Gerrit-Change-Number: 13245
Gerrit-PatchSet: 1
Gerrit-Owner: Max