Hi,
Can someone please advice me a cheap SIM programmer and programmable
SIM cards that are compatible with pySim and can be used with OpenBSC?
I found many offers on Ebay, but I don't know if there is a
compatibility concern or anything I need to know.
Thanks!
BR,
Csaba
Rename NM_ATT_O_REDUCEPOWER to NM_ATT_OSMO_REDUCEPOWER, which
makes it more clear that this is an osmcoom specific attribute.
Also, we cannot simply overload 0x01 as an already defined OML
attribute. The problem is quite simple: When we use abis_nm_att_tlvdef
during the TLV parse, 0x01 will match to NM_ATT_ABIS_CHANNEL,
which is defined as { TLV_TYPE_FIXED, 3 }.
So instead, we need to introduce a new abis_nm_osmo_att_tlvdef[],
which has to be patched into abis_nm_att_tlvdef[] by the means of
tlv_def_patch(), exactly how we do it for bs-11 and nanobts specific
attributes.
I'm using 0xfe for the attribute, as 0xfe doesn't overlap with the IPA
specific attribues (and we might want to combine/merge the 12.21 plus
IPA plus osmocom spefici attributes)
---
include/osmocom/gsm/protocol/gsm_12_21.h | 4 +++-
src/gsm/abis_nm.c | 7 +++++++
src/gsm/libosmogsm.map | 1 +
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/include/osmocom/gsm/protocol/gsm_12_21.h b/include/osmocom/gsm/protocol/gsm_12_21.h
index b1725d5..ad0890c 100644
--- a/include/osmocom/gsm/protocol/gsm_12_21.h
+++ b/include/osmocom/gsm/protocol/gsm_12_21.h
@@ -487,7 +487,9 @@ enum abis_nm_attr {
NM_ATT_BS11_PLL_MODE = 0xfc,
NM_ATT_BS11_PASSWORD = 0xfd,
- NM_ATT_O_REDUCEPOWER = 0x01,
+ /* osmocom (osmo-bts) specific attributes, used in combination
+ * with the "org.osmocom" manufacturer identification */
+ NM_ATT_OSMO_REDUCEPOWER = 0xfe, /* TLV_TYPE_TV */
};
#define NM_ATT_BS11_FILE_DATA NM_ATT_EVENT_TYPE
diff --git a/src/gsm/abis_nm.c b/src/gsm/abis_nm.c
index 2c23a64..7a1f664 100644
--- a/src/gsm/abis_nm.c
+++ b/src/gsm/abis_nm.c
@@ -323,6 +323,13 @@ const struct tlv_definition abis_nm_att_tlvdef = {
},
};
+/*! \brief org.osmocom GSM A-bis OML TLV parser definition */
+const struct tlv_definition abis_nm_osmo_att_tlvdef = {
+ .def = {
+ [NM_ATT_OSMO_REDUCEPOWER] = { TLV_TYPE_TV },
+ },
+};
+
/*! \brief Human-readable strings for A-bis OML Object Class */
const struct value_string abis_nm_obj_class_names[] = {
{ NM_OC_SITE_MANAGER, "SITE-MANAGER" },
diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map
index 3c5025d..cab4fc4 100644
--- a/src/gsm/libosmogsm.map
+++ b/src/gsm/libosmogsm.map
@@ -10,6 +10,7 @@ abis_nm_event_type_name;
abis_nm_nack_cause_name;
abis_nm_nack_name;
abis_nm_att_tlvdef;
+abis_nm_osmo_att_tlvdef;
abis_nm_obj_class_names;
abis_nm_opstate_name;
abis_nm_nacks;
--
2.0.0.rc2
--9Ek0hoCL9XbhcSqy--
Currently, if a CTRL method does not set the reply, an error is
logged ("cmd->reply has not been set").
This patch changes the logging level from ERROR to INFO. The logging
is now only done, when the retry has not been set and the
implementation returns CTRL_CMD_ERROR or the GET has been used. This
means, every time a error is signalled or GET is used, the retry
field shall be set.
Some missing reply texts in error cases are also added.
Ticket: OW#1177
Sponsored-by: On-Waves ehf
---
openbsc/src/libbsc/bsc_ctrl_lookup.c | 11 ++++++++---
openbsc/src/osmo-bsc/osmo_bsc_ctrl.c | 4 +++-
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/openbsc/src/libbsc/bsc_ctrl_lookup.c b/openbsc/src/libbsc/bsc_ctrl_lookup.c
index 338fb11..dced8bd 100644
--- a/openbsc/src/libbsc/bsc_ctrl_lookup.c
+++ b/openbsc/src/libbsc/bsc_ctrl_lookup.c
@@ -150,10 +150,15 @@ int bsc_ctrl_cmd_handle(struct ctrl_cmd *cmd, void *data)
err:
if (!cmd->reply) {
- LOGP(DCTRL, LOGL_ERROR, "cmd->reply has not been set.\n");
- if (ret == CTRL_CMD_ERROR)
+ if (ret == CTRL_CMD_ERROR) {
cmd->reply = "An error has occured.";
- else
+ LOGP(DCTRL, LOGL_NOTICE,
+ "cmd->reply has not been set (ERROR).\n");
+ } else if (cmd->type == CTRL_TYPE_GET) {
+ LOGP(DCTRL, LOGL_NOTICE,
+ "cmd->reply has not been set (GET).\n");
+ cmd->reply = "";
+ } else
cmd->reply = "Command has been handled.";
}
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c b/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c
index e32218d..3cc704b 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_ctrl.c
@@ -72,6 +72,7 @@ static int get_msc_connection_status(struct ctrl_cmd *cmd, void *data)
static int set_msc_connection_status(struct ctrl_cmd *cmd, void *data)
{
+ cmd->reply = "Set is unimplemented";
return CTRL_CMD_ERROR;
}
@@ -128,6 +129,7 @@ static int get_bts_connection_status(struct ctrl_cmd *cmd, void *data)
static int set_bts_connection_status(struct ctrl_cmd *cmd, void *data)
{
+ cmd->reply = "Set is unimplemented";
return CTRL_CMD_ERROR;
}
@@ -522,7 +524,7 @@ static int get_bts_rf_state(struct ctrl_cmd *cmd, void *data)
static int set_bts_rf_state(struct ctrl_cmd *cmd, void *data)
{
- cmd->reply = "set is unimplemented";
+ cmd->reply = "Set is unimplemented";
return CTRL_CMD_ERROR;
}
--
1.7.9.5
Hi
I any suggestion is welcome, I am bit stuck don't know how to proceed.
regrads
I am using OpenBSC/GPRS with nanoBTS. Thanks everybody for the great work.
GPRS works well with many cell phone, but for particular cell phone its not
working.
I saw Olaf Schulz posting (subject: GPRS problems with Nokia Handsets dated
4th May 2012). Saw his pcap file and mine is similar too.
Frank Mass suggested a patch to overcome this problem in his posting
(subject gprs_llc.c foreighn TLLI is stored but not searched, dated 30
April 2012). I have implemented that patch but still not working.
Can any body suggest something.
Please find the osmo-sgsn trace
<0011> gprs_bssgp.c:376 BSSGP TLLI=0xabfafd41 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 C FCS=0x76d7d9CMD=UI DATA
<0012> gprs_llc.c:95 TLLI 0xabfafd41 is foreign, converting to local TLLI
0xebfafd41
<0012> gprs_llc.c:245 LLC RX: unknown TLLI 0xabfafd41, creating LLME on the
fly
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:376 BSSGP TLLI=0xabfafd41 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 R FCS=0x57768eCMD=XID DATA
<0011> gprs_bssgp.c:376 BSSGP TLLI=0xabfafd41 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 C FCS=0x9ab10aCMD=UI DATA
<0012> gprs_llc.c:598 TLLI=abfafd41 dropping UI, N(U=0) not in window
V(URV(UR:3).
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:376 BSSGP TLLI=0x7d3b00c1 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 C FCS=0xfd5011CMD=UI DATA
<0012> gprs_llc.c:245 LLC RX: unknown TLLI 0x7d3b00c1, creating LLME on the
fly
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:376 BSSGP TLLI=0x7d3b00c1 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 C FCS=0x11fb2fCMD=UI DATA
<0011> gprs_bssgp.c:376 BSSGP TLLI=0x7d3b00c1 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 C FCS=0xea1c55CMD=UI DATA
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:376 BSSGP TLLI=0xe23c0990 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 C FCS=0x2a6a81CMD=UI DATA
<000f> sgsn_libgtp.c:126 Create PDP Context
<000f> sgsn_libgtp.c:379 libgtp cb_conf(type=16, cause=128,
pdp=0x7feafc152320, cbp=0x6bcf50)
<000f> sgsn_libgtp.c:265 Received CREATE PDP CTX CONF, cause=128(Request
accepted)
<0013> gprs_sndcp.c:297 SNSM-ACTIVATE.ind (lle=0x6bbe60 TLLI=e23c0990,
SAPI=3, NSAPI=5)
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:753 BSSGP BVCI=2 Rx Flow Control BVC
<0011> gprs_bssgp.c:376 BSSGP TLLI=0xe23c0990 Rx UPLINK-UNITDATA
<0012> gprs_llc.c:551 LLC SAPI=1 C FCS=0x819789CMD=UI DATA
<000f> sgsn_libgtp.c:212 Delete PDP Context
<000f> sgsn_libgtp.c:402 PDP Context was deleted
<000f> sgsn_libgtp.c:379 libgtp cb_conf(type=20, cause=128, pdp=(nil),
cbp=0x6bcf50)
<000f> sgsn_libgtp.c:321 Received DELETE PDP CTX CONF, cause=128(Request
accepted)
<0013> gprs_sndcp.c:320 SNSM-DEACTIVATE.ind (lle=0x6bbe60, TLLI=e23c0990,
SAPI=3, NSAPI=5)
John