path: root/include/osmocom/gprs/gprs_ns2.h
AgeCommit message (Collapse)AuthorFilesLines
2020-12-22gprs_ns2: add new vty2Alexander Couzens1-0/+4
Change-Id: I163279cf57e84198dc8c53e1c109f5a9474670e9
2020-12-15gprs_ns2: add gprs_ns2_fr_bind_role() to retrieve the fr roleAlexander Couzens1-0/+1
Change-Id: I277b805e588ba68536789b4a64a428ea0b31728a
2020-12-15gprs_ns2: make nsvc argument constAlexander Couzens1-1/+1
The nsvc isn't change. It can be const Change-Id: Ie5052f02781d7fdc639456c6f02515a927cee1f3
2020-12-15gprs_ns2_sns: rework IP-SNS initial remoteAlexander Couzens1-3/+6
The IP-SNS requires at least one initial remote address of the SGSN. However it should be multiple initial remote address instead of a single in case the interface might fail. Rework the SNS to support multiple initial remote addresses. Change-Id: I71cdbfb53e361e6112fed5e2712236d797ef3ab2
2020-12-15gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSEAlexander Couzens1-0/+1
Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d
2020-12-15gprs_ns2: rework gprs_ns2_fr_connect*()Alexander Couzens1-0/+4
Add gprs_ns2_fr_connect2() and change gprs_ns2_fr_connect() to be similar to gprs_ns2_ip_connect() and gprs_ns2_connect2(). This is an API break but there wasn't yet a release with NS2. Change-Id: I4e1374b0e979b3293302c5ed46a91a58f3a5a916
2020-12-15gprs_ns2: add member name to bindAlexander Couzens1-0/+7
Every bind will have a unique name. Add a name argument to all bind creating functions and require them to be unique. This is an API break but there wasn't yet a release with NS2. Change-Id: I8f1d66b7b3b12da12db8b5e6bd08c1beff085b3e
2020-12-15gprs_ns2: introduce NS dialectsAlexander Couzens1-5/+12
A NS dialect describes how the NS Entity interacts with different virtual circuits. E.g. ipaccess use reset/block on udp and is a dynamic connection. A single NS Entity can only support one dialect. This can be later used to protect a NS Entity against dynamic NS virtual circuits of a different type. It further allows a bind to support multiple dialects at the same time. Change-Id: Ia118bb6f994845d84db09de7a94856f5ca573404
2020-11-30gprs_ns2: Introduce gprs_ns2_lltype_str() for link layer nameHarald Welte1-0/+5
Change-Id: I4b257c09d9d3c97d6da04240c7a74a95c7c93675
2020-11-24ns2: remove obsolete type GPRS_NS2_LL_E1Alexander Couzens1-1/+0
There is already frame relay type GRPS_NS2_LL_FR to support frame relay. Change-Id: Iabb4608d91ccb32a07cad67519166dabfba76612
2020-11-24ns2: move link layer type into NSEAlexander Couzens1-1/+2
Even it was in theory possible to mix NS-VC ll types within a NSE. This is an unrealistic configuration. Further more to select the correct load sharing mechanism the NSE must know the correct link layer. Change-Id: I18dfd40a2429cd61b7c4a3dad5f226c64296f7d8
2020-11-24ns2: move LL into public apiAlexander Couzens1-0/+8
Also fix prefix. GPRS_NS -> GPRS_NS2. In preparation to move LL into upper layer. Change-Id: I3b5e0d51ce69b095095e5160ca0cf0d4534db1b8
2020-11-24ns2: implement link sharing selectorAlexander Couzens1-0/+1
Change-Id: I212fa1a65e8c16cf1e525d1962d5689446c7e49e
2020-11-24ns2: add support for frame relayAlexander Couzens1-0/+20
Add support for frame relay over dahdi hdlc device. It's supporting lmi by q933 and supports both SGSN and BSS. Change-Id: Id3b49f93d33c271f77cd9c9db03cde6b727a4d30
2020-11-09ns2: fixup gprs_ns2_prim_strsAlexander Couzens1-2/+2
The gprs_ns2_prim_strs was merged to early. The renaming in the last gerrit patchset wasn't done correct. Change-Id: Ie8e1e003d70af48f2d647b2c2701d4fc0f17e307
2020-11-06ns2: Send NSVC representation in NS_AFF_CAUSE_VC_* status indicationDaniel Willmann1-0/+1
NS_AFF_CAUSE_VC_* failure and recovery should indicate the NSVC in question. Use the string representation reported by gprs_ns2_ll_str() for that. NS_AFF_CAUSE_VC_RECOVERY was never sent so do that on unblock as well. Change-Id: Iad6f0dc4565a46868cbbe17c361dcd473006c83d Related: SYS#4998
2020-11-06ns2: Add gprs_ns2_nsvc_state_name() to get the current state of a VCDaniel Willmann1-0/+3
Change-Id: I4c4c5b9142d7240ed452218e263ba12e2b70d1a0 Related: SYS#4998
2020-10-27gprs_ns2: convert gprs_ns2_cause_str into an static inlineAlexander Couzens1-1/+7
Be consistent with other implementation of get_value_string() in libosomocore. Change-Id: Ic79757df8683e0461c04f7ef9279e4fe645eb821
2020-10-27ns2: add value strings for ns2_affecting_cause_prim_str & ns2_prim_strAlexander Couzens1-0/+12
Change-Id: Ibf610fbd929dddc4a4e235152447caff522d4eb2
2020-10-17ns2: More verbose comments on gprs_ns2_vc_modeHarald Welte1-2/+7
Change-Id: I647b9d883c1acc47cd352196a819a9c9bf8dc6ff
2020-10-12gprs_ns2: add gprs_ns2_ip_vc_equal()Alexander Couzens1-0/+4
Compare the NS-VC with the given parameter Change-Id: I3a0cd305fd73b3cb9ec70246ec15ac70b83e57f2
2020-10-12gprs_ns2: add gprs_ns2_nse_foreach_nsvc()Alexander Couzens1-0/+5
Allow to loop over all NSVC within a NSE via a callback Change-Id: I5a2bb95d05d06d909347e2fb084a446ead888cb3
2020-10-12gprs_ns2: gprs_ns2_ip_vc_remote() the nsvc can be also constAlexander Couzens1-1/+1
Change-Id: Ia000f535f18f21b41038f2ce7721f0fb59f6a093
2020-10-12gprs_ns2: add gprs_ns2_nse_sns_remote() returns the initial SNS addressAlexander Couzens1-0/+1
Allows the PCU to get the SNS remote address. Change-Id: I54f110acc3acccb362f6e554324d08cc42b7c328
2020-10-12gprs_ns2: add gprs_ns2_ip_vc_local() return the local sockaddrAlexander Couzens1-0/+1
Change-Id: I65a739772596015b90473045d32d4934d924e43f
2020-10-12gprs_ns2: rename gprs_ns2_ip_vc_sockaddr -> gprs_ns2_ip_vc_remoteAlexander Couzens1-1/+1
It's more clear which part of the address is returned. In preparation to add a gprs_ns2_ip_vc_local. Change-Id: I6110ff573362961c713a990da7ef3f3dbedf6c57
2020-10-12gprs_ns2: const the return value of gprs_ns2_ip_vc_sockaddr / ↵Alexander Couzens1-2/+2
gprs_ns2_ip_bind_sockaddr The sockaddr should not be changed. free and create the bind/nsvc if the address should be changed. Change-Id: I371ac2361b569e36722b02fc9cd82ec8da2fa9e3
2020-10-12gprs_ns2: add gprs_ns2_free_nses() to free all NS-EAlexander Couzens1-0/+1
Allow users to clean up most of the state (e.g. the PCU). Change-Id: Ia00753a64b7622a0864341f51ea49b6963543755
2020-10-12gprs_ns2: add gprs_ns2_free_binds() to free all bindsAlexander Couzens1-0/+1
Allow users to clean up all binds (e.g. the PCU). Change-Id: Ic8f6f8aca10da23a18fab8870be7806065a34b47
2020-10-12gprs_ns2: add gprs_ns2_nse_nsei() to get the nsei of a nseAlexander Couzens1-0/+1
Change-Id: I5f67e6a9bf4cb322bd169061fee0a528012ed54d
2020-10-12gprs_ns2: add gprs_ns2_ip_bind_by_sockaddr() to search for binds by sockaddrAlexander Couzens1-0/+2
Change-Id: I48c3f1a82574eee0a49e6941cf9e1365c2302d3b
2020-10-09gprs_ns2: make struct osmo_sockaddr pointers constVadim Yanitskiy1-9/+10
Using the 'const' qualifier allows the compiler to spot some programming errors and further optimize the code. Change-Id: I0df6a00ac1830bd64a10b9336b827e113fa772bb
2020-10-05ns2: vty: allow the users (pcu/sgsn) to set a default bindAlexander Couzens1-1/+2
The SGSN will always bind to in difference the PCU bind is depending on the info indication. Allow to the user to define a default bind address. Change-Id: I2a9dcd14f4ad16211c0f6d98812ad4a13e910c2a
2020-10-03ns2: status ind: add additional flags (first and persistent)Alexander Couzens1-0/+6
Both flags are required to allow the NS user to sent BVC RESET for persistent NSE. On persistent NSE with persistent NS alive configuration (no RESET/UNBLOCK/BLOCK) the PCU can't detect if the SGSN has restartet or crashed. Change-Id: Iaad7b53d44338e5dd81dc2202f23bdcb715af804
2020-09-25gprs_ns2: Make reason constDaniel Willmann1-1/+1
Change-Id: Ia0db18703d9fd137a5c5fe4474e2d76868a9af9d
2020-09-25ns2: refactor nsvc_by_ functionsAlexander Couzens1-5/+5
gprs_ns2_nsvc_by_sockaddr_nsei is doing the lookup within a NSE. gprs_ns2_nsvc_by_sockaddr_bind is doing the lookup within a bind. Make both function look similiar and take similiar arguments. Change-Id: Ia499fc279013668abe7348e578a0768f7d16faf9
2020-09-15Gb: add a second NS implementationAlexander Couzens1-0/+159
Reimplement NS with FSM. Change-Id: I3525beef205588dfab9d3880a34115f1a2676e48