Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 193 insertions(+), 36 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 9e30f62..0cb24c5 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -93,6 +93,8 @@ { 0, NULL } }; +#define GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER (void *) 1 + enum sns_procedure { SNS_PROC_NONE, /*!< used as invalid/idle value */ SNS_PROC_ADD, @@ -1473,6 +1475,12 @@ /* also takes care of retransmitting */ switch (gss->current_procedure->procedure) { + case SNS_PROC_ADD: + if (gss->family == AF_INET) + ns2_tx_sns_add(gss->sns_nsvc, gss->current_procedure->trans_id, >current_procedure->ip4, 1, NULL, 0); + else + ns2_tx_sns_add(gss->sns_nsvc, gss->current_procedure->trans_id, NULL, 0, >current_procedure->ip6, 1); + break; case SNS_PROC_CHANGE_WEIGHT: if (gss->family == AF_INET) ns2_tx_sns_change_weight(gss->sns_nsvc, gss->current_procedure->trans_id, >current_procedure->ip4, 1, NULL, 0); @@ -1484,6 +1492,65 @@ } } +static void create_nsvc_for_new_sbind(struct ns2_sns_state *gss, struct ns2_sns_bind *sbind) +{ + struct gprs_ns2_nse *nse = gss->nse; + struct gprs_ns2_vc_bind *bind = sbind->bind; + struct gprs_ns2_vc *nsvc; + struct osmo_sockaddr remote = { }; + unsigned int i; + + /* iterate over all remote IPv4 endpoints */ + for (i = 0; i < gss->remote.num_ip4; i++) { + const struct gprs_ns_ie_ip4_elem *ip4 = >remote.ip4[i]; + + remote.u.sin.sin_family = AF_INET; + remote.u.sin.sin_addr.s_addr = ip4->ip_addr; + remote.u.sin.sin_port = ip4->udp_port; + /* we only care about UDP binds */ + if (bind->ll != GPRS_NS2_LL_UDP) + continue; + + nsvc = nsvc_for_bind_and_remote(nse, bind, ); + if (!nsvc) { + nsvc = gprs_ns2_ip_connect_inactive(bind, , nse, 0); + if (!nsvc) { + /* TODO: add to a list to send back a NS-STATUS */ + continue; + } + } + + /* update data / signalling weight */ + nsvc->data_weight = ip4->data_weight; + nsvc->sig_weight = ip4->sig_weight; + nsvc->sns_only = false; + } + + /* iterate over all remote IPv4 endpoints */ + for (i = 0; i < gss->remote.num_ip6; i++) { + const struct gprs_ns_ie_ip6_elem *ip6 = >remote.ip6[i]; + + remote.u.sin6.sin6_family = AF_INET6; + remote.u.sin6.sin6_addr = ip6->ip_addr; + remote.u.sin6.sin6_port = ip6->udp_port; + + /* we only care about UDP binds */ + nsvc = nsvc_for_bind_and_remote(nse, bind, ); + if (!nsvc) { + nsvc = gprs_ns2_ip_connect_inactive(bind, , nse, 0); + if (!nsvc) { + /* TODO: add to a list to send back a NS-STATUS */ + continue; + } + } + + /* update data / signalling weight */ + nsvc->data_weight = ip6->data_weight; + nsvc->sig_weight = ip6->sig_weight; + nsvc->sns_only = false; + } +} + static void ns2_sns_st_local_procedure(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; @@ -1523,6 +1590,18 @@ } switch (gss->current_procedure->procedure) { + case SNS_PROC_ADD: + switch (gss->family) { + case AF_INET: + add_ip4_elem(gss, >local, >current_procedure->ip4); + break; + case AF_INET6: + add_ip6_elem(gss, >local, >current_procedure->ip6); + break; + } + create_nsvc_for_new_sbind(gss, gss->current_procedure->sbind); + gprs_ns2_start_alive_all_nsvcs(nse); + break; case
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. Patch Set 14: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 14 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Sat, 04 Sep 2021 19:28:19 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#13). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 193 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/13 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. Patch Set 12: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 03 Sep 2021 09:34:04 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#10). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 193 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/10 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. Patch Set 9: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c@1968 PS7, Line 1968: OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS); > Not sure if this really holds true, we should ensure that we don't > accidentally abort here. Done https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c@1976 PS7, Line 1976: (void *) 1 > Can we have a #define for this so it's clear what the 1 actually means? […] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 02 Sep 2021 16:59:07 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#9). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 191 insertions(+), 37 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/9 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Mon, 09 Aug 2021 06:36:12 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#8). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 191 insertions(+), 37 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. Patch Set 7: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c@1968 PS7, Line 1968: OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS); Not sure if this really holds true, we should ensure that we don't accidentally abort here. https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c@1976 PS7, Line 1976: (void *) 1 Can we have a #define for this so it's clear what the 1 actually means? Same in AF_INET6 below -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 15 Jun 2021 12:17:58 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 14 Jun 2021 08:37:00 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#7). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 190 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#6). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 190 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 07 Jun 2021 09:30:34 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#5). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures .. gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 190 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset