fixeria has submitted this change. (
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/38215?usp=email )
Change subject: pfcp_peer: do not assign SEID=0, increment properly
......................................................................
pfcp_peer: do not assign SEID=0, increment properly
Change-Id: I76b921047784e727d67cd6c6a5aeb6d827b65e56
---
M src/pfcp_peer.erl
1 file changed, 9 insertions(+), 3 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
laforge: Looks good to me, but someone else must approve
fixeria: Looks good to me, approved
diff --git a/src/pfcp_peer.erl b/src/pfcp_peer.erl
index f379e69..aa33e3a 100644
--- a/src/pfcp_peer.erl
+++ b/src/pfcp_peer.erl
@@ -54,11 +54,13 @@
%% 3GPP TS 29.244, section 4.2 "UDP Header and Port Numbers"
-define(PFCP_PORT, 8805).
+-define(PFCP_SEID_MAX, 16#ffffffffffffffff).
+
-type pfcp_session_rsp() :: ok | {error, term()}.
-type pfcp_msg_type() :: atom().
-type pfcp_seq_nr() :: 0..16#ffffff.
--type pfcp_seid() :: 0..16#ffffffffffffffff.
+-type pfcp_seid() :: 0..?PFCP_SEID_MAX.
-type pfcp_f_seid() :: #f_seid{}.
-type pfcp_ies() :: [term()] | map() | binary().
-type pfcp_msg() :: {pfcp_msg_type(), pfcp_ies()}.
@@ -139,7 +141,7 @@
{reuseaddr, true},
{active, true}]),
?LOG_INFO("PFCP peer @ ~p will talk to UPF @ ~p", [LocAddr, RemAddr]),
- {ok, connecting, #peer_state{seid = 0,
+ {ok, connecting, #peer_state{seid = 1, %% SEID=0 is special, see 7.2.2.4.2
sock = Sock,
loc_addr = LocAddr,
rem_addr = RemAddr,
@@ -288,8 +290,12 @@
Ref = erlang:monitor(process, Pid),
NReg = dict:store(SEID, {Pid, Ref}, Reg),
?LOG_DEBUG("Allocated SEID ~p to process ~p", [SEID, Pid]),
+ NSEID = case SEID of
+ ?PFCP_SEID_MAX -> 1;
+ _ -> SEID + 1
+ end,
S#peer_state{registry = NReg,
- seid = SEID + 1}.
+ seid = NSEID}.
-spec registry_del({pid(), reference()}, peer_state()) -> peer_state().
--
To view, visit
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/38215?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: I76b921047784e727d67cd6c6a5aeb6d827b65e56
Gerrit-Change-Number: 38215
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>