Hello Everyone
I was trying to set priority bit in paging type 1. I tried modifying the function rsl_paging_cmd in abis_rsl.c . But when i am checking the same in wireshark, I couldn't view it. Any help on this.
BR
Please kindly share your patches and related pcap traces of the resulting messages for our review and feedback. Thanks!
Hello Mr. Welte
Please find the patches:
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 5a508b207..5b45cd497 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1034,6 +1034,8 @@ int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, if (bts->type == GSM_BTS_TYPE_RBS2000 && is_gprs) msgb_tv_put(msg, RSL_IE_ERIC_PACKET_PAG_IND, 0);
+ msgb_tv_put(msg,0x8f); //just a random msg to see the P1 rest octets in wirehark + msg->dst = bts->c0->rsl_link;
return abis_rsl_sendmsg(msg); diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 09e35cce2..a7ba85744 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -2376,7 +2376,7 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) /* signal */ if (setup->fields & MNCC_F_SIGNAL) gsm48_encode_signal(msg, setup->signal); - + msgb_v_put(msg,0x8f); new_cc_state(trans, GSM_CSTATE_CALL_PRESENT);
rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]);
BR Snehasish
________________________________ From: Harald Welte laforge@gnumonks.org Sent: Wednesday, December 26, 2018 4:24 AM To: Snehasish Kar; openbsc@lists.osmocom.org Subject: Re: Adding priority for EMLPP service in paging type 1
Please kindly share your patches and related pcap traces of the resulting messages for our review and feedback. Thanks! -- Sent from a mobile device. Please excuse my brevity.
Hello Mr. Welte
Please find the updated patches:
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 5a508b207..5b45cd497 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1034,6 +1034,8 @@ int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, if (bts->type == GSM_BTS_TYPE_RBS2000 && is_gprs) msgb_tv_put(msg, RSL_IE_ERIC_PACKET_PAG_IND, 0);
+ msgb_tv_put(msg, RSL_IE_EMLPP_PRIO, 0x00); //just a random msg to see the P1 rest octets in wirehark + msg->dst = bts->c0->rsl_link;
return abis_rsl_sendmsg(msg); diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 09e35cce2..a7ba85744 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -2376,7 +2376,7 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) /* signal */ if (setup->fields & MNCC_F_SIGNAL) gsm48_encode_signal(msg, setup->signal); - + msgb_v_put(msg,0x8f); new_cc_state(trans, GSM_CSTATE_CALL_PRESENT);
rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]);
________________________________ From: Snehasish Kar snehasish.cse@live.com Sent: Wednesday, December 26, 2018 5:22 PM To: Harald Welte Cc: openbsc@lists.osmocom.org Subject: Re: Adding priority for EMLPP service in paging type 1
Hello Mr. Welte
Please find the patches:
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 5a508b207..5b45cd497 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1034,6 +1034,8 @@ int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, if (bts->type == GSM_BTS_TYPE_RBS2000 && is_gprs) msgb_tv_put(msg, RSL_IE_ERIC_PACKET_PAG_IND, 0);
+ msgb_tv_put(msg,0x8f); //just a random msg to see the P1 rest octets in wirehark + msg->dst = bts->c0->rsl_link;
return abis_rsl_sendmsg(msg); diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 09e35cce2..a7ba85744 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -2376,7 +2376,7 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) /* signal */ if (setup->fields & MNCC_F_SIGNAL) gsm48_encode_signal(msg, setup->signal); - + msgb_v_put(msg,0x8f); new_cc_state(trans, GSM_CSTATE_CALL_PRESENT);
rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]);
BR Snehasish
________________________________ From: Harald Welte laforge@gnumonks.org Sent: Wednesday, December 26, 2018 4:24 AM To: Snehasish Kar; openbsc@lists.osmocom.org Subject: Re: Adding priority for EMLPP service in paging type 1
Please kindly share your patches and related pcap traces of the resulting messages for our review and feedback. Thanks! -- Sent from a mobile device. Please excuse my brevity.
Hi Snehasish,
On Wed, Dec 26, 2018 at 02:13:38PM +0000, Snehasish Kar wrote:
Please find the updated patches:
Thanks, there were no requested related pcap traces, though.
I think you are making the wrong assumption that you can simply add a byte to the RSL message which then magically appears on the Um interface. Instead, you need to study how eMLPP is actually implemented over Abis. There's an additional information element that needs to be added to the RSL PAGING COMMAND, see Section 8.5.5 of 3GPP TS 48.058. The IE is of type TV, so you need to msgb_put_tv(...) to add it.
Furthermore, you will need to teach OsmoBTS (assuming you are using OsmoBTS) to interpret that additional IE and then construct the air interface paging rest octets from it.
Please also notice that openbsc.git is no longer maintained anymore and it is strongly suggested you switch to the new "split NITB" architecture consisting of osmo-bsc.git + osmo-msc.git + osmo-hlr.git.
We're very much looking forward to receiving your patches contributing eMLPP support to the Osmocom stack.
Regards, Harald
Snehasish Kar has shared a OneDrive file with you. To view it, click the link below.
https://1drv.ms/u/s!Ar2IfAyw5vH1gQsxLkqbowdVcPya [https://r1.res.office365.com/owa/prem/images/dc-generic_20.png]https://1drv.ms/u/s!Ar2IfAyw5vH1gQsxLkqbowdVcPya
emlpp_test.pcapnghttps://1drv.ms/u/s!Ar2IfAyw5vH1gQsxLkqbowdVcPya
Hello Harald
I have updated the abis_rsl.c. But I have a small confusion, please correct me, the IE for EMLPP is of 2 Bytes out of which the second octet contains only last 3 bits as priority and msgb_tv_put allows to set only one octet, thus on setting anything above 5 it shows call_priority as 0 and anything less than that as 4. Please let me know where I am going wrong.Below is the patch and pcap has been attached.
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 5a508b207..5b45cd497 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1034,6 +1034,8 @@ int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, if (bts->type == GSM_BTS_TYPE_RBS2000 && is_gprs) msgb_tv_put(msg, RSL_IE_ERIC_PACKET_PAG_IND, 0);
+ msgb_tv_put(msg, RSL_IE_EMLPP_PRIO, 0x00); + msg->dst = bts->c0->rsl_link;
Best Regards Snehasish
________________________________ From: Harald Welte laforge@gnumonks.org Sent: Thursday, December 27, 2018 2:28 AM To: Snehasish Kar Cc: openbsc@lists.osmocom.org Subject: Re: Adding priority for EMLPP service in paging type 1
Hi Snehasish,
On Wed, Dec 26, 2018 at 02:13:38PM +0000, Snehasish Kar wrote:
Please find the updated patches:
Thanks, there were no requested related pcap traces, though.
I think you are making the wrong assumption that you can simply add a byte to the RSL message which then magically appears on the Um interface. Instead, you need to study how eMLPP is actually implemented over Abis. There's an additional information element that needs to be added to the RSL PAGING COMMAND, see Section 8.5.5 of 3GPP TS 48.058. The IE is of type TV, so you need to msgb_put_tv(...) to add it.
Furthermore, you will need to teach OsmoBTS (assuming you are using OsmoBTS) to interpret that additional IE and then construct the air interface paging rest octets from it.
Please also notice that openbsc.git is no longer maintained anymore and it is strongly suggested you switch to the new "split NITB" architecture consisting of osmo-bsc.git + osmo-msc.git + osmo-hlr.git.
We're very much looking forward to receiving your patches contributing eMLPP support to the Osmocom stack.
Regards, Harald
-- - Harald Welte laforge@gnumonks.org http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6)
Snehasish Kar has shared a OneDrive file with you. To view it, click the link below.
https://1drv.ms/u/s!Ar2IfAyw5vH1gQwV5RARUfsedW9g [https://r1.res.office365.com/owa/prem/images/dc-generic_20.png]https://1drv.ms/u/s!Ar2IfAyw5vH1gQwV5RARUfsedW9g
emlpp_test 1.pcapnghttps://1drv.ms/u/s!Ar2IfAyw5vH1gQwV5RARUfsedW9g
Hello Harald
I have been able to add priority to the paging and setup command, though it is hard-coded now, but still please check it and let me know if I am correct or wrong.
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 5a508b207..5b45cd497 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1034,6 +1034,8 @@ int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, if (bts->type == GSM_BTS_TYPE_RBS2000 && is_gprs) msgb_tv_put(msg, RSL_IE_ERIC_PACKET_PAG_IND, 0);
+ msgb_tv_put(msg, RSL_IE_EMLPP_PRIO, 0x7f); + msg->dst = bts->c0->rsl_link;
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 09e35cce2..a7ba85744 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -2376,7 +2376,7 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) /* signal */ if (setup->fields & MNCC_F_SIGNAL) gsm48_encode_signal(msg, setup->signal); - + msgb_v_put(msg,GSM48_IE_PRIORITY_LEV | 0xf); new_cc_state(trans, GSM_CSTATE_CALL_PRESENT);
rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]);
diff --git a/src/common/paging.c b/src/common/paging.c index aa604e7..092da05 100644 --- a/src/common/paging.c +++ b/src/common/paging.c @@ -293,7 +293,7 @@ static int fill_paging_type_1(uint8_t *out_buf, const uint8_t *identity1_lv, cur = tlv_put(cur, GSM48_IE_MOBILE_ID, identity2_lv[0], identity2_lv+1);
pt1->l2_plen = L2_PLEN(cur - out_buf); - + cur = v_put(cur,/*priority*/0x7f); return cur - out_buf; }
I have attached the wireshark traces please check. Also there is a wireshark dump with airprobe to see whether the paging messages are correctly being transported or not.
BR Snehasish
________________________________ From: Harald Welte laforge@gnumonks.org Sent: Thursday, December 27, 2018 2:28 AM To: Snehasish Kar Cc: openbsc@lists.osmocom.org Subject: Re: Adding priority for EMLPP service in paging type 1
Hi Snehasish,
On Wed, Dec 26, 2018 at 02:13:38PM +0000, Snehasish Kar wrote:
Please find the updated patches:
Thanks, there were no requested related pcap traces, though.
I think you are making the wrong assumption that you can simply add a byte to the RSL message which then magically appears on the Um interface. Instead, you need to study how eMLPP is actually implemented over Abis. There's an additional information element that needs to be added to the RSL PAGING COMMAND, see Section 8.5.5 of 3GPP TS 48.058. The IE is of type TV, so you need to msgb_put_tv(...) to add it.
Furthermore, you will need to teach OsmoBTS (assuming you are using OsmoBTS) to interpret that additional IE and then construct the air interface paging rest octets from it.
Please also notice that openbsc.git is no longer maintained anymore and it is strongly suggested you switch to the new "split NITB" architecture consisting of osmo-bsc.git + osmo-msc.git + osmo-hlr.git.
We're very much looking forward to receiving your patches contributing eMLPP support to the Osmocom stack.
Regards, Harald
-- - Harald Welte laforge@gnumonks.org http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6)
Herald any update on this?
BR ________________________________ From: Snehasish Kar snehasish.cse@live.com Sent: Monday, December 31, 2018 7:04 PM To: Harald Welte Cc: openbsc@lists.osmocom.org Subject: Re: Adding priority for EMLPP service in paging type 1
Hello Harald
I have been able to add priority to the paging and setup command, though it is hard-coded now, but still please check it and let me know if I am correct or wrong.
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 5a508b207..5b45cd497 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1034,6 +1034,8 @@ int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len, if (bts->type == GSM_BTS_TYPE_RBS2000 && is_gprs) msgb_tv_put(msg, RSL_IE_ERIC_PACKET_PAG_IND, 0);
+ msgb_tv_put(msg, RSL_IE_EMLPP_PRIO, 0x7f); + msg->dst = bts->c0->rsl_link;
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 09e35cce2..a7ba85744 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -2376,7 +2376,7 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) /* signal */ if (setup->fields & MNCC_F_SIGNAL) gsm48_encode_signal(msg, setup->signal); - + msgb_v_put(msg,GSM48_IE_PRIORITY_LEV | 0xf); new_cc_state(trans, GSM_CSTATE_CALL_PRESENT);
rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]);
diff --git a/src/common/paging.c b/src/common/paging.c index aa604e7..092da05 100644 --- a/src/common/paging.c +++ b/src/common/paging.c @@ -293,7 +293,7 @@ static int fill_paging_type_1(uint8_t *out_buf, const uint8_t *identity1_lv, cur = tlv_put(cur, GSM48_IE_MOBILE_ID, identity2_lv[0], identity2_lv+1);
pt1->l2_plen = L2_PLEN(cur - out_buf); - + cur = v_put(cur,/*priority*/0x7f); return cur - out_buf; }
I have attached the wireshark traces please check. Also there is a wireshark dump with airprobe to see whether the paging messages are correctly being transported or not.
BR Snehasish
________________________________ From: Harald Welte laforge@gnumonks.org Sent: Thursday, December 27, 2018 2:28 AM To: Snehasish Kar Cc: openbsc@lists.osmocom.org Subject: Re: Adding priority for EMLPP service in paging type 1
Hi Snehasish,
On Wed, Dec 26, 2018 at 02:13:38PM +0000, Snehasish Kar wrote:
Please find the updated patches:
Thanks, there were no requested related pcap traces, though.
I think you are making the wrong assumption that you can simply add a byte to the RSL message which then magically appears on the Um interface. Instead, you need to study how eMLPP is actually implemented over Abis. There's an additional information element that needs to be added to the RSL PAGING COMMAND, see Section 8.5.5 of 3GPP TS 48.058. The IE is of type TV, so you need to msgb_put_tv(...) to add it.
Furthermore, you will need to teach OsmoBTS (assuming you are using OsmoBTS) to interpret that additional IE and then construct the air interface paging rest octets from it.
Please also notice that openbsc.git is no longer maintained anymore and it is strongly suggested you switch to the new "split NITB" architecture consisting of osmo-bsc.git + osmo-msc.git + osmo-hlr.git.
We're very much looking forward to receiving your patches contributing eMLPP support to the Osmocom stack.
Regards, Harald
-- - Harald Welte laforge@gnumonks.org http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6)