Age | Commit message (Collapse) | Author | Files | Lines |
|
The start_procedure() can't be called after ns2_nse_notify_unblocked()
because ns2_nse_notify_unblocked() might free the nsvc.
Otherwise the fsm will do use-after-free on the NSVC memory.
Related: SYS#5416
Change-Id: If97dfd123eefd71fc6c3fe886a243a21784aeeb4
|
|
Related: OS#5088
Change-Id: Ic63a5884da778938197c658c5f478c23a85a4587
|
|
Let osmo_stat_item_get_next, osmo_stat_item_discard,
osmo_stat_item_discard_all consistently refer to their next_id arg as
such (and not idx or next_idx). It refers to an ID (item->values[i].id),
not an index (item->values[i]), and it is always the next one, never the
current one.
Do the same change for _index/_idx variables in stats.c, which are used
as arguments to these functions. Replace rd_ with next_id_ in
stats_test.c, too.
Related: OS#5088
Change-Id: I5dd566b08dff7174d1790f49abd2d6ac020e120e
|
|
Change-Id: Ia3579ec5599f5f5c58eebab03f1ed9e17f171177
|
|
Change-Id: I8834d3f092e6cbe4f527e95e1eebd8133a386207
|
|
Prior to this patch, we would unconditionally allocate new memory
for the local SNS IP endpoints. This results in a memory leak
on every SNS-SIZE procedure.
Let's move to talloc_realloc() which recycles any previously allocated
memory.
Change-Id: I12cb670e087c6d6190f3f5bf8483ea62008ae06f
|
|
Change-Id: Ic3bd1b8075f76d1f35499faa68fad70698ee9a00
|
|
We may very well have any number of binds configured, but which
are not part of the current NSE. When creating the "full mesh" of
NS-VCs after SNS-CONFIG, we must only iterate over those binds that
are part of the NSE (or 'ipa-sns-default bind' in cae of SGSN role),
but not over all the other binds that may exist in the system.
Closes: OS#5092
Change-Id: Ida361fa02ad1d86844d54c8f0664c996ed28e30a
|
|
Change-Id: I78d79c3bc92f0c0bebbbbe639b8406c4b188582f
|
|
Change-Id: I436dd0367e83548acfc8f8e36ae4707496a252d9
|
|
As both `show ns entities` and `show ns binds` looking similiar
correct the indention.
Change-Id: I55794188bec7e62f0341188dbf23ac04006974fe
|
|
`show ns binds` prints a count of NSVCs. Add the same line
to `show ns entities`.
Change-Id: I15c58a1c0fe94dda728afb29e7e5ca41e3fa8966
|
|
dump_nse() should only print persistant NSE when persistant_only
argument is set. A NSE can be persistant or dynamic configured.
Depending on the NSE all NS-VC must be the same as the NSE.
Change-Id: Ibd2c6962eda39a850ab61cf347063934378d2fdc
|
|
The binds also print a list of associated NSVC when
dumping the bind.
However the binds using their own representation of
printing the NSVC which is different to `show ns entities`.
Use the same function to print NS-VC.
Before:
NSVCI 00000: udp)[127.0.0.1]:23000<>[127.0.0.1]:22000
After:
NSVCI none: UNCONFIGURED DYNAMIC data_weight=1 sig_weight=1 udp)[127.0.0.1]:23000<>[127.0.0.1]:22000
Change-Id: If31ec6c1c07dc134ab1ddeb915bc89747c7be048
|
|
Introduce 2 new logging sub systems for signal and unit data.
Unify log messages so all log messages look similiar.
Log also Rx PDUs. Ensure dropped Tx packets (BLOCK/RESET on SNS)
contain *Tx*.
Change-Id: I34b8fde2955ecc010d1dcd9512e1bba9211e2c0d
|
|
This fixes some bug introduced in Change-Id I1638f04ba45fef3ba0b237948dff6022267141fb
Related: OS#3373
Change-Id: Ic0873e63f1f046b674c7898480ff070a18a7abc7
|
|
the previous commit fixed the state transition, but also caused
neither Tns-alive nor Tns-test to run
Change-Id: I07ea3fd5cec3d4acf4051930a1a3c746d6fd597c
|
|
Only when the ALIVE procedure fails, we mark a NS-VC as RECOVERING.
Change-Id: Ieb860827c2149306b135c0e6c8b3cd3bbb78851e
|
|
Change-Id: I16009a1b03d8027de2be56b7d5013b755c9550fd
|
|
In the IP-SNS SGSN role, we need to inform the BSS of our local
IP endpoints. For statically configured NSEs, those are explicitly
stated on a per-NSE level.
For dynamically created IP-SNS NSEs, we are adding a new VTY
command, using which the administrator can configure which binds
should be advertised as IP endpoints to such BSS.
Change-Id: Id01c29b07e9203c9305f2129361a4f5aaefa2c52
Related: OS#3373
|
|
Related: OS#3373
Change-Id: Ie10bb3531fae2e651da04f965d964de6eb1e7a97
|
|
Related: OS#3373
Change-Id: Ifb52cd245b10bf47d42d57d167d6d6c02b12ee12
|
|
As per 3GPP TS 48.016 section 6.2.4.1, we need to perform some
consistency checks during the SNS-SIZE procedure. Let's implement them.
Change-Id: I1638f04ba45fef3ba0b237948dff6022267141fb
Related: OS#3373
|
|
It is the SGSN's job to ensure sufficient NS-VC capacity. As the SGSN
doesn't tell the BSS, we should not make assumptions of only 4.
Change-Id: I41f493643cf51d7853959ab9c7bbc0ffae4e1f4b
|
|
The SNS-SIZE sent from BSS to SGSN contains the actual number of local
IP endpoints on the BSS side, and not the maximum number of remote IP
endpoints supported.
Change-Id: I62a8bca4a3f7c47bcb9f292b045fa867d8877a09
|
|
Change-Id: I40571e313c3332d8cead8fb4aa9768d0d083804d
|
|
In BSS role, we can clear local + remote endpoints when sending
SNS-CONFIG, as we are first.
In SGSN role, we must not clear remote endpoints when sending
SNS-CONFIG, as we are last, and the BSS has just previously told
us its IP endpoints in the BSS-originated SNS-CONFIG.
Change-Id: I58549707ac5a3a0aae5f9348ed76f16c09ad3e46
Related: OS#3373
|
|
Change-Id: I694fa6c80d04d13cb1afaae93a9ae43b6dfd2207
Related: OS#3373
|
|
gprs_ns2_create_nse() doesn't allow the caller to specify if the
BSS or the SGSN role of IP-SNS shall be implemented. Add
gprs_ns2_create_nse2() to fix that.
Change-Id: I6db8c36f7c69b592d7d0fbcf323804f7e9912be2
Related: OS#3373
|
|
Clearly separate those states that only occur on the BSS side from
those of the SGSN side (which already have a prefix)
Change-Id: Iebc97637063b2676abff4a7dce50272d9b4e336b
Related: OS#3373
|
|
Some functions are only to be called when operating in BSS role,
let's enforce that by sprinkling some OSMO_ASSERT() around.
Related: OS#3373
Change-Id: I20d1bd8df62e0bb84696e291756e2d96acf49246
|
|
This adds the core functionality of implementing the SGSN-side of IP-SNS
inside a new FSM. The SGSN-side FSM shares states, events, structures
and code with the BSS-side whenever possible.
Note that this commit does not yet use the SGSN-side FSM, that is part
of subsequent commits.
Closes: OS#3373
Change-Id: I780413ffacd9cb71f64cc38057aae781eeb59b2b
|
|
This reverts commit d290439b4afe928e7e341540cb92f1abf36a82cb, which
caused "stats values skipped" messages to appear even if they were not
skipped. Revert for now, replace with a proper version in the future.
Related: SYS#4877
Change-Id: Ib43bd53188a4d31d771feb921ea14abe1a3ec877
|
|
Let the user know when the stats were not consumed fast enough for the
given FIFO length.
Related: SYS#4877
Change-Id: If0e8ab55103007693101538fb6ea310075217774
|
|
Related: OS#3373
Change-Id: Icd40bd76df12795b4efcaf5865c6cf00da145f94
|
|
Setting the NSE dialect possibly involves the creating (or destruction)
of a IP-SNS FSM. Encapsulate that, rather than having every caller
re-implement that.
Change-Id: I24fdc26fbcfda039bd58ea166f4d5c2fd1801da1
|
|
Related: OS#3373
Change-Id: I49e5ca4a09bc772ef5a0cd5c2a76c8b200e56d1b
|
|
We should never report multiple values for a metric. It is confusing for
the log reporter and wrong for statsd. Statsd will record only one value,
but will it be the first, last, ...?
This can happen if an osmo_stat_item changes more than once within the
same reporting interval.
With this patch only one aggregate value is sent to the log reporters.
The value reported is the maximum during this interval. Other
aggregations could be possible (min, last), but reporting a (useful)
average is not because the values don't include a timestamp and most
osmo_stat_items change at unregular intervals.
Change-Id: I366ab1c66f4ae6363111ea4e41b66b7d5bcade9c
Related: SYS#4877
|
|
Let's move computing of the local IP endpoints to a separate function,
so it can not only be used when entering the SNS_SIZE state. Preparation
for SGSN-side IP-SNS.
Change-Id: I5d7ce419135a8ef538cf9abcb76a49049ed7d5f9
Related: OS#3373
|
|
Change-Id: I7d70f8cc811c2f4aabf9fc00e4e612dfc4b031d3
|
|
Change-Id: I6c431ba9e30d19425bf1cc1cc4d081949058610b
|
|
Change-Id: I66ce4b429ad2597343b48210fdcbc95a1f34cbcd
|
|
This is a preparation towards auto-creating SNS NS-VCs in SGSN role
Related: OS#3373
Change-Id: Idf92712079cd9b7e4ff2cf8df314b372d63e6e52
|
|
Related: OS#5058
Change-Id: I1f047e022a029d5f982deae0b30fec9e5a00d1ac
|
|
We don't really handle inbound SNS-ACK yet (as we don't originate
SNS ADD/DEL/CHGWEIGHT procedures yet). However, the message
receive code should already dispatch those events to the FSM,
just like we do for the (equally unimplemented) handling of inbound
SNS-SIZE which is already dispatched to the FSM.
Change-Id: If6d5f96d85e6f05534fe49376f4473d912535ad4
|
|
We already have similar log statements for all NS-{RESET,BLOCK,UNBLOCK,...}
and it's confusing that even a debug-level NS log file doesn't show
transmitting SNS messages at all.
Change-Id: I0d31c3911d3acd6ac7296c370e920d53412d8289
|
|
Change-Id: I87f76ab19d834d96a268b0d47b9dfe2424151d63
|
|
When freeing the NS-VC there are cases when the NSE is still alive.
This means that gprs_ns2_free_nsvc() calls ns2_prim_status_ind(),
which in turn calls ns2_count_transfer_cap(). The latter must deal
with such a situation rather than OSMO_ASSERT()
Change-Id: I4f32dee705c9886717339fe7cce5b4cd8d2c18f7
|
|
Makes more understandable and clear what's meant in the code.
Related: OS#3879
Change-Id: I9d0545fac0af0dcc1783040a376a9b8e65a92699
|
|
To support SGSN oriented RESET introduce a role flag to
track what's running the gprs_bssgp (local side).
Related: OS#3879
Change-Id: Ibcbaffa94cbdc4296a8a7c372304ac11d50d9559
|