[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-06 Thread pespin
pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..

IuUP: allow Initialization from any address if not yet set

Do not refuse IuUP Initialization messages coming in on an RTP port if
the remote IP address is not yet known.
If an IUFP conn is not yet configured (pre-Initialization), allow rx
from any remote address if the remote IP address is not yet known.

If we refuse the IuUP Initialization, a 3G RNC may fail to set up a RAB.
We will know the remote address only *after* assigning a RAB succeeded.
So the IuUP Initialization must be allowed before knowing all addresses.

At the time of writing, CRCX for IUFP are sent to osmo-mgw in either
LOOPBACK or in RECVONLY mode:
- current osmo-msc: recvonly
- osmo-msc <= v1.10.0: loopback
- osmo-hnbgw: loopback
IuUP Initialization should work regardless of that.
See also next patch I158dd046fdfcb10392cde3de8cc88dd095a05b40

IuUP is one layer below the loopback/send/recv decision for RTP; IuUP is
always terminated at the MGW, while the AMR payload carries through.

Related: alternative patch Idd833997abce46886e9664505b2776fa5dadc8db
Related: SYS#6657
Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
---
M src/libosmo-mgcp/mgcp_network.c
1 file changed, 43 insertions(+), 0 deletions(-)

Approvals:
  neels: Looks good to me, but someone else must approve
  Jenkins Builder: Verified
  osmith: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved




diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c
index b1bce97..6a726d4 100644
--- a/src/libosmo-mgcp/mgcp_network.c
+++ b/src/libosmo-mgcp/mgcp_network.c
@@ -835,6 +835,18 @@
char ipbuf[INET6_ADDRSTRLEN];

if (osmo_sockaddr_is_any(>end.addr) != 0) {
+   if (mgcp_conn_rtp_is_iuup(conn) && !conn->iuup.configured) {
+   /* Allow IuUP Initialization to get through even if we 
don't have a remote address set yet.
+* This is needed because hNodeB doesn't announce its 
IuUP remote IP addr to the MGCP client
+* (RAB Assignment Response at HNBGW) until it has gone 
through IuUP Initialization against
+* this MGW here. Hence the MGW may not yet know the 
remote IuUP address and port at the time
+* of receiving IuUP Initialization from the hNodeB.
+*/
+   LOGPCONN(conn->conn, DRTP, LOGL_INFO,
+"Rx RTP from %s: allowing unknown src for IuUP 
Initialization\n",
+osmo_sockaddr_to_str(addr));
+   return 0;
+   }
switch (conn->conn->mode) {
case MGCP_CONN_LOOPBACK:
/* HACK: for IuUP, we want to reply with an IuUP 
Initialization ACK upon the first RTP

--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 3
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter 
Gerrit-Reviewer: neels 
Gerrit-Reviewer: osmith 
Gerrit-Reviewer: pespin 
Gerrit-CC: laforge 
Gerrit-MessageType: merged


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-06 Thread pespin
Attention is currently required from: dexter, laforge, neels.

pespin has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 3: Code-Review+2


--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 3
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter 
Gerrit-Reviewer: neels 
Gerrit-Reviewer: osmith 
Gerrit-Reviewer: pespin 
Gerrit-CC: laforge 
Gerrit-Attention: neels 
Gerrit-Attention: laforge 
Gerrit-Attention: dexter 
Gerrit-Comment-Date: Wed, 06 Dec 2023 14:03:12 +
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-06 Thread osmith
Attention is currently required from: dexter, laforge, neels, pespin.

osmith has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 3: Code-Review+1

(1 comment)

Patchset:

PS3:
> This is an invitation to others to add a +1, and not be scared off by the 
> long discussions.
ack, skipped reading the long open thread. the patch looks sane.



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 3
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter 
Gerrit-Reviewer: neels 
Gerrit-Reviewer: osmith 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: neels 
Gerrit-Attention: laforge 
Gerrit-Attention: pespin 
Gerrit-Attention: dexter 
Gerrit-Comment-Date: Wed, 06 Dec 2023 13:51:09 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: neels 
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-06 Thread pespin
Attention is currently required from: laforge, neels.

pespin has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 3:

(2 comments)

File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/f6fdee5b_ff892409
PS1, Line 838:  if (mgcp_conn_rtp_is_iuup(conn) && !conn->iuup.configured) {
> Re the linked patch, I see only address and port related code in that patch, 
> nothing about codecs no […]
1) Yes, we used to always add the codec in CRCX in that scenario, but with my 
libosmo-mgcp-client in gerrit we didn't. I already changed again that patch to 
include the codec.

2) Yes we can, but since we want to send a tentative remote address in the 
first CRCX, then we need to add the SDP instead.

3) This is precisely how all this patchset started: we want to send a remote IP 
address on the RAN-side conn during first CRCX so that osmo-mgw's "ip probing" 
can potentially bind to the correct local IP address and provide it in CRCX 
ACK. osmo-hnbgw will use the remote Iuh IP address (HNB's Iuh IP addr) as a 
remote IuUP address in the first CRCX, which is usually correct. In the event 
it wasn't, during rx RAB-Ass-Resp it will send an MDCX to the MGW, and the MGW 
will update the address.

We can ofc only guess the IP address, not the port. And even the IP address may 
be wrong, hence why we neeed to accept rx of IuUP Init from any source.


File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/dcefeb85_7fe3e76f
PS2, Line 837: != 0)
> (... […]
in the resulting code execution yes, but this way also provides more info that 
errors may occur and how are they handled, eg AF_UNSPEC.



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 3
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: neels 
Gerrit-Attention: laforge 
Gerrit-Comment-Date: Wed, 06 Dec 2023 11:54:02 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels 
Comment-In-Reply-To: pespin 
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-05 Thread neels
Attention is currently required from: laforge, pespin.

neels has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 3:

(1 comment)

Patchset:

PS3:
This is an invitation to others to add a +1, and not be scared off by the long 
discussions.



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 3
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: laforge 
Gerrit-Attention: pespin 
Gerrit-Comment-Date: Wed, 06 Dec 2023 02:06:52 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-05 Thread neels
Attention is currently required from: laforge, pespin.

neels has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 3: Code-Review+1

(3 comments)

Commit Message:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/1192328b_6d1965a0
PS1, Line 28: Decided for now that it's not worth the extra effort to make this 
more
: restrictive
> "we do allow any source address to send MGCP to the MGW and actually". […]
ack

(So for early IuUP Initialization ACK, we use the sender's address somehow, for 
ip probing?)

This modified patch and the following ones do make the code more restrictive as 
requested, so resolving this


File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/d3d00eb9_a8b469c1
PS1, Line 838:  if (mgcp_conn_rtp_is_iuup(conn) && !conn->iuup.configured) {
> I updated https://gerrit.osmocom. […]
Re the linked patch, I see only address and port related code in that patch, 
nothing about codecs nor IUFP? wrong link / am i not seeing it?

i'm a bit confused with these aspects:

1) whether the conn is indicated to be IUFP from the first CRCX
2) whether SDP is sent in the first CRCX
3) whether the remote RTP IP address is known from the first CRCX

For 1), I'm pretty sure that we are always telling the MGW about IUFP codec 
right from the first CRCX. In the MGCP header's "L:" line if no SDP is present, 
and in the SDP if SDP is present. And not only since yesterday.
(May need to qualify this statement for {msc,hnbgw}x{nightly,latest})
So if you add SDP even if port=0, it does not add the IUFP information;
IUFP codec was already indicated before, only now it is in the SDP instead of 
MGCP head.

For 2), we can send IUFP codec even when there is no SDP.
SDP is needed only for address and port.

For 3), I'm pretty sure we DO NOT send the remote RTP IP address right from the 
start, nor can we always do that, AFAICT?
>From your patch I gather that it is sometimes possible to know the remote 
>address right in the first CRCX, and would like to understand it...
hnbgw knows msc's address right from the start; but cannot know RNC's address?
osmo-msc MO cannot know MT's address right from the start.
AFAICT there will always be cases where we cannot include a remote IP address 
in the first CRCX, because we don't know the remote address yet, right? I am 
asking because, if we can teach all clients to always include a remote address, 
then this patch is not needed (besides maybe for backwards compat).
We do still need/want to have that check_rtp() skipping for IuUP Init, right?


File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/60546d0c_82fe0ab5
PS2, Line 837: != 0)
> It's not a bool, it's a tristate 1, 0, -1. It's a bool + error. […]
(...which is exactly the same as handling the return val as bool)



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 3
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: laforge 
Gerrit-Attention: pespin 
Gerrit-Comment-Date: Wed, 06 Dec 2023 02:05:10 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: neels 
Comment-In-Reply-To: laforge 
Comment-In-Reply-To: pespin 
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-05 Thread pespin
Attention is currently required from: laforge, neels.

pespin has uploaded a new patch set (#3) to the change originally created by 
neels. ( https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

The following approvals got outdated and were removed:
Code-Review+1 by neels, Verified+1 by Jenkins Builder


Change subject: IuUP: allow Initialization from any address if not yet set
..

IuUP: allow Initialization from any address if not yet set

Do not refuse IuUP Initialization messages coming in on an RTP port if
the remote IP address is not yet known.
If an IUFP conn is not yet configured (pre-Initialization), allow rx
from any remote address if the remote IP address is not yet known.

If we refuse the IuUP Initialization, a 3G RNC may fail to set up a RAB.
We will know the remote address only *after* assigning a RAB succeeded.
So the IuUP Initialization must be allowed before knowing all addresses.

At the time of writing, CRCX for IUFP are sent to osmo-mgw in either
LOOPBACK or in RECVONLY mode:
- current osmo-msc: recvonly
- osmo-msc <= v1.10.0: loopback
- osmo-hnbgw: loopback
IuUP Initialization should work regardless of that.
See also next patch I158dd046fdfcb10392cde3de8cc88dd095a05b40

IuUP is one layer below the loopback/send/recv decision for RTP; IuUP is
always terminated at the MGW, while the AMR payload carries through.

Related: alternative patch Idd833997abce46886e9664505b2776fa5dadc8db
Related: SYS#6657
Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
---
M src/libosmo-mgcp/mgcp_network.c
1 file changed, 43 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/05/35205/3
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 3
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: neels 
Gerrit-Attention: laforge 
Gerrit-MessageType: newpatchset


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-05 Thread pespin
Attention is currently required from: laforge, neels.

pespin has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 2:

(1 comment)

File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/de56d40a_437eaf7b
PS1, Line 838:  if (mgcp_conn_rtp_is_iuup(conn) && !conn->iuup.configured) {
> With current master (at least from yesterday) yes, you are right. However, […]
I updated https://gerrit.osmocom.org/c/osmo-mgw/+/35152 to submit the codec 
(IUFP) even if port is not set, so that MGW knows that it has to create an IuUP 
conn.



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 2
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: neels 
Gerrit-Attention: laforge 
Gerrit-Comment-Date: Tue, 05 Dec 2023 12:41:56 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels 
Comment-In-Reply-To: pespin 
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-05 Thread pespin
Attention is currently required from: laforge, neels.

pespin has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 2:

(3 comments)

Commit Message:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/158c6533_50887307
PS1, Line 28: Decided for now that it's not worth the extra effort to make this 
more
: restrictive
> ok, I understand. […]
"we do allow any source address to send MGCP to the MGW and actually". This is 
easily constraint by selecting a proper IP address like a localhost address 
when configuring osmo-mgw local MGCP address, or binding to an IP address only 
available on a given interface.
The problem with "security" from the RTP ports comes from the fact that the 
remote IP address is selected by a 3rd entity/node connected to us, and 
osmo-mgw uses ip probing to find out how to connect.


File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/d09ff72c_2e8481ca
PS1, Line 838:  if (mgcp_conn_rtp_is_iuup(conn) && !conn->iuup.configured) {
> (There are two places to indicate codecs, one in the MGCP header which we 
> basically ignore, and the  […]
With current master (at least from yesterday) yes, you are right. However,
as I mentioned I merged a patch in osmo-hnbgw to announce a "hnb IuUP address" 
to osmo-mgw right from the first RAN-side MGCP CRCX, by using the Iuh remote IP 
address at the hnbgw, so that osmo-mgw can guess correctly its binding IuUP 
address in the assumed general case where Iuh IP address = IuUP IP address in 
HNB. See
https://gitea.osmocom.org/cellular-infrastructure/osmo-hnbgw/commit/656d1d27788a000b93f00cf9cdf659e0dacadde7

Besides that, libosmo-mgcp-client needs to be adapted in order to allow 
submitting an IP address on the wire (CRCX) even if the port is yet not known 
(port=0). This is what this osmo-mgw.git patch is accomplishing:
https://gerrit.osmocom.org/c/osmo-mgw/+/35152

As you see, with this patch the generated CRCX now contains an SDP, and hence 
it doesn't go through the add_lco() path, but through the add_sdp() (because 
it's the only way to provide an IP address to osmo-mgw so it does the ip 
probing).

Now that you processed all the above, read again my previous comment to 
understand the modifications (going back more or less to version 1 of the patch 
to send the codec in the CRCX even if the port=0).


File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/6a20a4bb_df864304
PS2, Line 837: != 0)
> (i find this really hard to read. […]
It's not a bool, it's a tristate 1, 0, -1. It's a bool + error. So in here we 
are handling error as "consider it as not set".



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 2
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: neels 
Gerrit-Attention: laforge 
Gerrit-Comment-Date: Tue, 05 Dec 2023 10:30:45 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: neels 
Comment-In-Reply-To: laforge 
Comment-In-Reply-To: pespin 
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-04 Thread neels
Attention is currently required from: laforge, pespin.

neels has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 2: Code-Review+1

(1 comment)

File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/0fd6cabe_ade0e27e
PS1, Line 843:  return 0;
> we should only avoid the check if the conn addr is not set (see 
> "osmo_sockaddr_is_any(>end. […]
Done



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 2
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: neels 
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: laforge 
Gerrit-Attention: pespin 
Gerrit-Comment-Date: Mon, 04 Dec 2023 23:49:31 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: pespin 
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-04 Thread neels
Attention is currently required from: laforge, pespin.

neels has posted comments on this change. ( 
https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

Change subject: IuUP: allow Initialization from any address if not yet set
..


Patch Set 2:

(4 comments)

Commit Message:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/b8d972c3_5d581f06
PS1, Line 28: Decided for now that it's not worth the extra effort to make this 
more
: restrictive
> I would beg to differ. […]
ok, I understand. I thought the paradigm would be to allow any path for the UDP 
of RTP, but you are instead stressing the need to validate the sender for RTP.

One last spark of doubt: we do allow any source address to send MGCP to the MGW 
and actually create and destroy entire endpoints, so it seems a bit silly to 
restrict RTP? Is it because MGCP to MGW is lateral / easy to restrict locally, 
while RTP travels up/down "the stack"?


Patchset:

PS2:
got me confused at first by uploading a new version of my patch...


File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/8befca28_81155a88
PS1, Line 838:  if (mgcp_conn_rtp_is_iuup(conn) && !conn->iuup.configured) {
> I see a problem with this, regarding SYS#6657. […]
(There are two places to indicate codecs, one in the MGCP header which we 
basically ignore, and the SDP payload.)

In my tests, both osmo-msc and osmo-hnbgw indicate IUFP in the very first CRCX 
they send out. That is done in the *MGCP* header's 'L:' line, *without* SDP. 
That is how osmo-mgw can put the conn in IUFP mode right from the start. See 
for example https://people.osmocom.org/neels/Iere6lei/3g3g.pcapng

It is actually a bit more complex in osmo-hnbgw:
osmo-hnbgw sends an 'L: ... a:VNG.3GPP.IUFP' in the first CRCX;
but for the endpoint's other conn, the second CRCX, there is no 'L:' header and 
the contained SDP indicates IUFP.

So AFAICT indicating IUFP already happens with nightly osmo-cni, right from the 
first CRCX, and does not require an IP address.
(Not so sure about latest or whatever the issue reporter has)

Which means we can safely check for conn->type == IUFP here.
Right?


File src/libosmo-mgcp/mgcp_network.c:

https://gerrit.osmocom.org/c/osmo-mgw/+/35205/comment/5ef3644d_2f2de566
PS2, Line 837: != 0)
(i find this really hard to read. the function returns essentially a bool, so 
i'd much rather just read 'if (osmo_sockaddr_is_any(..))' here. Seeing the "!= 
0" makes me think that 0 might be the success-rc and we check for NOT any 
instead.)



--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 2
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: laforge 
Gerrit-Attention: pespin 
Gerrit-Comment-Date: Mon, 04 Dec 2023 23:43:06 +
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: laforge 
Comment-In-Reply-To: pespin 
Gerrit-MessageType: comment


[S] Change in osmo-mgw[master]: IuUP: allow Initialization from any address if not yet set

2023-12-04 Thread pespin
Attention is currently required from: neels.

pespin has uploaded a new patch set (#2) to the change originally created by 
neels. ( https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email )

The following approvals got outdated and were removed:
Verified+1 by Jenkins Builder


Change subject: IuUP: allow Initialization from any address if not yet set
..

IuUP: allow Initialization from any address if not yet set

Do not refuse IuUP Initialization messages coming in on an RTP port if
the remote IP address is not yet known.
If an IUFP conn is not yet configured (pre-Initialization), allow rx
from any remote address if the remote IP address is not yet known.

If we refuse the IuUP Initialization, a 3G RNC may fail to set up a RAB.
We will know the remote address only *after* assigning a RAB succeeded.
So the IuUP Initialization must be allowed before knowing all addresses.

At the time of writing, CRCX for IUFP are sent to osmo-mgw in either
LOOPBACK or in RECVONLY mode:
- current osmo-msc: recvonly
- osmo-msc <= v1.10.0: loopback
- osmo-hnbgw: loopback
IuUP Initialization should work regardless of that.
See also next patch I158dd046fdfcb10392cde3de8cc88dd095a05b40

IuUP is one layer below the loopback/send/recv decision for RTP; IuUP is
always terminated at the MGW, while the AMR payload carries through.

Related: alternative patch Idd833997abce46886e9664505b2776fa5dadc8db
Related: SYS#6657
Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
---
M src/libosmo-mgcp/mgcp_network.c
1 file changed, 43 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/05/35205/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/35205?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I6c365559a7bd197349f0ea99f7a13b56a4bb580b
Gerrit-Change-Number: 35205
Gerrit-PatchSet: 2
Gerrit-Owner: neels 
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge 
Gerrit-CC: pespin 
Gerrit-Attention: neels 
Gerrit-MessageType: newpatchset