Hi Ivan,

Any reasons why this can't be done without bits hand-coding?
diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp
index 17120f9..711fb61 100644
--- a/src/gprs_rlcmac.cpp
+++ b/src/gprs_rlcmac.cpp
@@ -718,6 +718,35 @@ int write_immediate_assignment(bitvec * dest, uint8_t downlink, uint8_t ra, uint
return wp/8;
}
+int write_paging_request(bitvec * dest, uint8_t *ptmsi, uint16_t ptmsi_len)
+{
+ unsigned wp = 0;
+
+ bitvec_write_field(dest, wp,0x0,4); // Skip Indicator
+ bitvec_write_field(dest, wp,0x6,4); // Protocol Discriminator
+ bitvec_write_field(dest, wp,0x21,8); // Paging Request Message Type
+
+ bitvec_write_field(dest, wp,0x0,4); // Page Mode
+ bitvec_write_field(dest, wp,0x0,4); // Channel Needed
+
+ // Mobile Identity
+ bitvec_write_field(dest, wp,ptmsi_len+1,8); // Mobile Identity length
+ bitvec_write_field(dest, wp,0xf,4); // unused
+ bitvec_write_field(dest, wp,0x4,4); // PTMSI type
+ for (int i = 0; i < ptmsi_len; i++)
+ {
+ bitvec_write_field(dest, wp,ptmsi[i],8); // PTMSI
+ }
+ bitvec_write_field(dest, wp,0x0,1); // "L" NLN(PCH) = off
+ bitvec_write_field(dest, wp,0x0,1); // "L" Priority1 = off
+ bitvec_write_field(dest, wp,0x1,1); // "L" Priority2 = off
+ bitvec_write_field(dest, wp,0x0,1); // "L" Group Call information = off
+ bitvec_write_field(dest, wp,0x0,1); // "H" Packet Page Indication 1 = packet paging procedure
+ bitvec_write_field(dest, wp,0x1,1); // "H" Packet Page Indication 2 = packet paging procedure
+ bitvec_write_field(dest, wp,0x3,2); // spare padding
+ return wp/8;
+}
+
void write_packet_uplink_ack(RlcMacDownlink_t * block, uint8_t tfi, uint32_t tlli, uint8_t fi, uint8_t bsn)
{
// Packet Uplink Ack/Nack TS 44.060 11.2.28

On Fri, Jun 29, 2012 at 7:54 PM, git repository hosting <gitosis@osmocom.org> wrote:
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "UNNAMED PROJECT".

The branch, master has been updated
      via  c7e7f6868b6f24346424dee904f4e76d3f216ff4 (commit)
      via  bbbd79d6f1abd4e7f865f72c15878e0f32f252c3 (commit)
     from  34460b84072e7ec4c1bafe502aa9d6d859858c0a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cgit.osmocom.org/cgit/osmo-pcu/commit/?id=c7e7f6868b6f24346424dee904f4e76d3f216ff4

commit c7e7f6868b6f24346424dee904f4e76d3f216ff4
Author: Ivan Kluchnikov <kluchnikovi@gmail.com>
Date:   Fri Jun 29 22:53:15 2012 +0400

   Implemented Paging procedure on CCCH.
   Added functions:
   - gprs_bssgp_pcu_rx_paging_ps() for handling paging message from BSSGP;
   - write_paging_request() for writing paging request message;
   - gprs_rlcmac_paging_request() and pcu_l1if_tx_pch() for sending paging request message to BTS.

http://cgit.osmocom.org/cgit/osmo-pcu/commit/?id=bbbd79d6f1abd4e7f865f72c15878e0f32f252c3

commit bbbd79d6f1abd4e7f865f72c15878e0f32f252c3
Author: Ivan Kluchnikov <kluchnikovi@gmail.com>
Date:   Fri Jun 29 20:30:10 2012 +0400

   Fixed DL TBF establishment on CCCH.
   We shouldn't use paging procedure for DL TBF establishment, if we didn't receive paging message from BSSGP.

-----------------------------------------------------------------------

Summary of changes:
 src/gprs_bssgp_pcu.cpp |   34 +++++++++++++++---------------
 src/gprs_rlcmac.cpp    |   54 +++++++++++++++++++++++++++++++++++++----------
 src/gprs_rlcmac.h      |    3 +-
 src/pcu_l1_if.cpp      |   11 +++++++++
 src/pcu_l1_if.h        |    1 +
 5 files changed, 73 insertions(+), 30 deletions(-)


hooks/post-receive
--
UNNAMED PROJECT




--
Regards,
Alexander Chemeris.
CEO, Fairwaves LLC / ООО УмРадио
http://fairwaves.ru