Attention is currently required from: fixeria, laforge, neels, pespin.
20 comments:
Patchset:
Hmm, the task this patch has is actually quite difficult, for these reasons: […]
There also seems to be some other ambiguity I think concerning some of the T1-T5 timers that comes from the specs (I recall seeing different descriptions for some of the Ti for i between 1 and 5..., so some of those timer numbers may be context related. Don't know anymore where I saw it though).
Initial thoughts towards a solution:
We could switch all the remaining BTS timers that are still global to per-BTS as a first step (make the per-BTS timer then override the global one?).
Then maybe it would be good to somehow add syntax recognition for counters ('Nnnn') in the tdef API.
Introduce a counter_id field and give all counters a tdef_id of INT_MIN (?)
Might be a bit involved to implement these things without breaking older code/binaries
File include/osmocom/bsc/bts.h:
Patch Set #12, Line 323: GSM_BTS_TDEF_ID_COUNTDOWN_VALUE
These are not standard 3GPP specified timer numbers, so they should not be positive. […]
as alluded to above, I was told it'd be good to use positive values for anything coming from the specs and that negative values were reserved for extra stuff from Osmocom only.
I switched back to negative ones for now, but it appears to be wrong either way for now.
File include/osmocom/bsc/gsm_data.h:
Patch Set #16, Line 720: enum gprs_rlc_par {
I bet this is not needed anymore and can be dropped?
Done
File src/osmo-bsc/bsc_init.c:
Patch Set #16, Line 51: extern void bts_gprs_timer_groups_init(struct gsm_bts *bts);
why don't you add this to a header file?
it was only needed by `src/osmo-bsc/bsc_init.c` - apart from the file `tests/nanobts_omlattr/nanobts_omlattr_test.c`, which is for testing only, and so far my impression has been that we don't usually add stuff to header files in such a situation.
I have now moved it to `gsm_bts_alloc()`, so it only appears in `bts.c` and `bts_init.c` and isn't needed in the test file anymore
Patch Set #16, Line 240: bts_gprs_timer_groups_init(bts);
why is this put here and not in gsm_bts_alloc_register() ?
(as mentioned above:) I have moved it to `gsm_bts_alloc()`; the function description seemed like a better fit than `gsm_bts_alloc_register()`, which inits more general information than timers/counters
File src/osmo-bsc/bsc_vty.c:
Patch Set #12, Line 353: bts_write_group_timers
So once we have found the matching group, don't we want to `break` the loop?
the loop works the other way round, it continues if there is no match
File src/osmo-bsc/bsc_vty.c:
Patch Set #16, Line 346: if (bts->gprs.mode == BTS_GPRS_NONE) {
why can't I configure gprs timers if gprs is not currently enabled? I don't see a problem with it, a […]
I looked at what current code does and no or most gprs command didn't work unless we're in gprs mode - especially existing timer commands. So I extended what the bsc already did and assumed it was implemented that way for a reason
Patch Set #16, Line 354: if (bts_write_group_timers(vty, "", bts_nr, group, T_arg, false) == CMD_WARNING)
I don't really understand what are you doing here comparing against == CMD_WARNING and then doing rc […]
hm yeah looks like nonsense. I've updated this
File src/osmo-bsc/bts_init.c:
Patch Set #12, Line 41: _templates
(I think the term "template" is fine and accurate, i assume no vty edits these)
@nhofmeyr@sysmocom.de yes, the vty doesn't edit any of it.
@vyanitskiy@sysmocom.de the timer entries here are used like a template, i.e. being copy-pasted to every BTS. They're not used as reference for resetting information.
Patch Set #12, Line 56: Extended uplink TBF
This does not really explain what this timer is for. Same for DL below.
Done
I actually find this problematic. […]
(this reply is older, hadn't yet published it...)
@vyanitskiy@sysmocom.de
Using the tdef API for counters: I'm aware that there is a difference. Pau told me back when I introduced Ny1 configuration, that it should be added via the tdef API (see https://gerrit.osmocom.org/c/osmo-bsc/+/30539/comment/a3ffa35b_1a41b537/ ...), so I did the same here, because I didn't see any reason to use the tdef API for one counter, but not for others.
Concerning this patch, I was messaging with Pau on Xabber and was told that he would go for positive values for 'Nxyz' - I originally (until patchset 2) had intended to use negative values for anything that wasn't specifically mentioned as 'Tnnn' in the specs with basically the same reasoning as you mentioned...) unless there was any specific problem. Didn't see T3101, but I guess it qualifies as such a problem.
Not sure what to do with conflicting directions like these.
(new part of reply):
I have for now finished the patch series with these timers with Nnnn now being given a negative TID '-nnn'
File src/osmo-bsc/bts_init.c:
Patch Set #16, Line 88: for (gbtg = 0; gbtg < ARRAY_SIZE(bts_gprs_timer_template_groups); gbtg++)
memcpy(&bts->timer_groups[0], bts_gprs_timer_template_groups[0], ARRAY_SIZE(bts_gprs_timer_template_ […]
that looks wrong to me, I have replaced the line marked with
`memcpy(bts->timer_groups, bts_gprs_timer_template_groups, sizeof(bts_gprs_timer_template_groups));`
File src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c:
Patch Set #12, Line 253: struct abis_nm_ipacc_att_rlc_cfg
cosmetic: it's not necessary to specify the struct type here.
this wasn't my commit
File src/osmo-bsc/bts_vty.c:
Patch Set #3, Line 1706: /* TODO (BSSGP timer patch): If argument is one of BSSGP Timers strings, then translate to
So if this patch is for RLC; why are you touching BSSGP lines here?
what lines are you referring to? This is just a TODO comment for the BSSGP timer patch
In general, the tdefs API was made modular with flexible re-use in mind. […]
alright, then I'll be working on a libosmocore patch for that then.
I was tempted to adapt the existing code to remove/adapt the check about whether or not the global tdef group has been set previously
File src/osmo-bsc/bts_vty.c:
Patch Set #12, Line 56: limits.h
Ack
Done
File tests/nanobts_omlattr/nanobts_omlattr_test.c:
Patch Set #2, Line 228: 0x02, 0x00, 0x02, 0xa3, 0x00, 0x09,
I have aligned all columns vertically
Done
File tests/nanobts_omlattr/nanobts_omlattr_test.c:
Patch Set #16, Line 37: extern void bts_gprs_timer_groups_init(struct gsm_bts *bts);
don't we have headers for this?
see answer above concerning this function and its declarations
Patch Set #16, Line 38: extern void bts_grprs_tdef_groups_init(void);
typo: grprs.
Done
Patch Set #16, Line 158: bts_grprs_tdef_groups_init();
typo: grprs.
Done
To view, visit change 31878. To unsubscribe, or for help writing mail filters, visit settings.