<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>89305</buildingDurationMillis><executingTimeMillis>89305</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>7480</queuingDurationMillis><queuingTimeMillis>7480</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>96785</totalDurationMillis><waitingDurationMillis>7478</waitingDurationMillis><waitingTimeMillis>7478</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>763</buildNumber><marked><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginosmithwip _class='hudson.plugins.git.util.Build'><buildNumber>756</buildNumber><marked><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><branch><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></marked><revision><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><branch><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></revision></refsremotesoriginosmithwip></buildsByBranchName><lastBuiltRevision><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/erlang/osmo-s1gw</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/763/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/763/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/763/testReport</testsUrl></action><building>false</building><displayName>#763</displayName><duration>89305</duration><estimatedDuration>74245</estimatedDuration><fullDisplayName>master-osmo-s1gw #763</fullDisplayName><id>763</id><inProgress>false</inProgress><keepLog>false</keepLog><number>763</number><queueId>70931</queueId><result>SUCCESS</result><timestamp>1774448167956</timestamp><url>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/763/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>priv/openapi.json</affectedPath><affectedPath>contrib/openapi.yaml</affectedPath><commitId>ee7f51f170e04e27c1332b2a800f919dbdcd35d5</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>[REST] PfcpAssocState: field 'lrts' is required

The local RTS is always known and thus always gets included regardless
of the PFCP association state.  Only the remote RTS is optional.

Change-Id: Ic766ebc56ce1810fc27cb49ddcac50bc94e539d9
Related: osmo-ttcn3-hacks.git I332e95a32935e0c8da99e600e8d30af14bd36b16
</comment><date>2026-03-25 03:32:24 +0700</date><id>ee7f51f170e04e27c1332b2a800f919dbdcd35d5</id><msg>[REST] PfcpAssocState: field 'lrts' is required</msg><path><editType>edit</editType><file>contrib/openapi.yaml</file></path><path><editType>edit</editType><file>priv/openapi.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/gtpu_kpi.erl</affectedPath><commitId>2bd212d33378f40a62ee49bd33265fbbdfcda0a4</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>gtpu_kpi: use ?ENV_DEFAULT_GTPU_KPI_{TABLE_NAME,INTERVAL}

Change-Id: Ia8194966b20da1adc26c02f416b8ec0508191d98
</comment><date>2026-03-25 03:32:24 +0700</date><id>2bd212d33378f40a62ee49bd33265fbbdfcda0a4</id><msg>gtpu_kpi: use ?ENV_DEFAULT_GTPU_KPI_{TABLE_NAME,INTERVAL}</msg><path><editType>edit</editType><file>src/gtpu_kpi.erl</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>doc/manuals/chapters/configuration.adoc</affectedPath><affectedPath>src/pfcp_peer.erl</affectedPath><affectedPath>src/rest_server.erl</affectedPath><affectedPath>config/sys.config</affectedPath><affectedPath>src/osmo_s1gw_sup.erl</affectedPath><commitId>a6a31cfd98888c783519d5e0721054455ad8b619</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>config/sys.config: group pfcp_peer params into a map

Following the same pattern as sctp_{client,server}, group the flat
pfcp_loc_addr/pfcp_rem_addr environment variables into a pfcp_peer
map.  The old flat keys are still supported for backwards compat.

Changes:
* osmo_s1gw_sup: add pfcp_cfg(), merging legacy flat keys with the new
  pfcp_peer map (new takes priority); store the resolved config back via
  set_env(pfcp_peer, ...) so all consumers see a single canonical map
* pfcp_peer: change start_link/2 to start_link/1 taking a cfg() map;
  simplify init() using sctp_common:parse_addr/1; add cfg() type
* rest_server: read pfcp laddr/raddr from the pfcp_peer map

Change-Id: Iba954746fe20e6b9eeaec3196e1f83e3fc3e7fc2
</comment><date>2026-03-25 03:32:24 +0700</date><id>a6a31cfd98888c783519d5e0721054455ad8b619</id><msg>config/sys.config: group pfcp_peer params into a map</msg><path><editType>edit</editType><file>src/rest_server.erl</file></path><path><editType>edit</editType><file>doc/manuals/chapters/configuration.adoc</file></path><path><editType>edit</editType><file>src/osmo_s1gw_sup.erl</file></path><path><editType>edit</editType><file>src/pfcp_peer.erl</file></path><path><editType>edit</editType><file>config/sys.config</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>priv/openapi.json</affectedPath><affectedPath>include/osmo_s1gw.hrl</affectedPath><affectedPath>doc/manuals/chapters/configuration.adoc</affectedPath><affectedPath>doc/manuals/chapters/rest.adoc</affectedPath><affectedPath>src/pfcp_peer.erl</affectedPath><affectedPath>src/rest_server.erl</affectedPath><affectedPath>config/sys.config</affectedPath><affectedPath>src/osmo_s1gw_sup.erl</affectedPath><affectedPath>contrib/openapi.yaml</affectedPath><commitId>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>pfcp_peer: make assoc_setup and heartbeat_req timeouts configurable

Add assoc_setup_timeout and heartbeat_req_timeout as optional fields
in the pfcp_peer config map, with 2000 ms defaults.  Store the full
cfg() map in #peer_state{} and read values from it with maps:get/3
at the point of use.

Change-Id: I58a472a3bbbbad029a2f0246b084428ab3b1905c
</comment><date>2026-03-25 03:32:24 +0700</date><id>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</id><msg>pfcp_peer: make assoc_setup and heartbeat_req timeouts configurable</msg><path><editType>edit</editType><file>contrib/openapi.yaml</file></path><path><editType>edit</editType><file>include/osmo_s1gw.hrl</file></path><path><editType>edit</editType><file>src/pfcp_peer.erl</file></path><path><editType>edit</editType><file>doc/manuals/chapters/configuration.adoc</file></path><path><editType>edit</editType><file>src/rest_server.erl</file></path><path><editType>edit</editType><file>priv/openapi.json</file></path><path><editType>edit</editType><file>src/osmo_s1gw_sup.erl</file></path><path><editType>edit</editType><file>config/sys.config</file></path><path><editType>edit</editType><file>doc/manuals/chapters/rest.adoc</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><description></description><fullName>Vadim Yanitskiy</fullName><id>fixeria</id></culprit><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-osmo-s1gw" build number 763</shortDescription><upstreamBuild>763</upstreamBuild><upstreamProject>master-osmo-s1gw</upstreamProject><upstreamUrl>job/master-osmo-s1gw/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>79250</buildingDurationMillis><executingTimeMillis>79250</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>763</buildNumber><marked><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginosmithwip _class='hudson.plugins.git.util.Build'><buildNumber>756</buildNumber><marked><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><branch><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></marked><revision><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><branch><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></revision></refsremotesoriginosmithwip></buildsByBranchName><lastBuiltRevision><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/erlang/osmo-s1gw</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#763</displayName><duration>79250</duration><estimatedDuration>71349</estimatedDuration><fullDisplayName>master-osmo-s1gw » build,a1=default,a3=default,a4=default,osmocom-master #763</fullDisplayName><id>763</id><inProgress>false</inProgress><keepLog>false</keepLog><number>763</number><queueId>70932</queueId><result>SUCCESS</result><timestamp>1774448167956</timestamp><url>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/JOB_TYPE=build,a1=default,a3=default,a4=default,label=osmocom-master/763/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>priv/openapi.json</affectedPath><affectedPath>contrib/openapi.yaml</affectedPath><commitId>ee7f51f170e04e27c1332b2a800f919dbdcd35d5</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>[REST] PfcpAssocState: field 'lrts' is required

The local RTS is always known and thus always gets included regardless
of the PFCP association state.  Only the remote RTS is optional.

Change-Id: Ic766ebc56ce1810fc27cb49ddcac50bc94e539d9
Related: osmo-ttcn3-hacks.git I332e95a32935e0c8da99e600e8d30af14bd36b16
</comment><date>2026-03-25 03:32:24 +0700</date><id>ee7f51f170e04e27c1332b2a800f919dbdcd35d5</id><msg>[REST] PfcpAssocState: field 'lrts' is required</msg><path><editType>edit</editType><file>contrib/openapi.yaml</file></path><path><editType>edit</editType><file>priv/openapi.json</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/gtpu_kpi.erl</affectedPath><commitId>2bd212d33378f40a62ee49bd33265fbbdfcda0a4</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>gtpu_kpi: use ?ENV_DEFAULT_GTPU_KPI_{TABLE_NAME,INTERVAL}

Change-Id: Ia8194966b20da1adc26c02f416b8ec0508191d98
</comment><date>2026-03-25 03:32:24 +0700</date><id>2bd212d33378f40a62ee49bd33265fbbdfcda0a4</id><msg>gtpu_kpi: use ?ENV_DEFAULT_GTPU_KPI_{TABLE_NAME,INTERVAL}</msg><path><editType>edit</editType><file>src/gtpu_kpi.erl</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>doc/manuals/chapters/configuration.adoc</affectedPath><affectedPath>src/pfcp_peer.erl</affectedPath><affectedPath>src/rest_server.erl</affectedPath><affectedPath>config/sys.config</affectedPath><affectedPath>src/osmo_s1gw_sup.erl</affectedPath><commitId>a6a31cfd98888c783519d5e0721054455ad8b619</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>config/sys.config: group pfcp_peer params into a map

Following the same pattern as sctp_{client,server}, group the flat
pfcp_loc_addr/pfcp_rem_addr environment variables into a pfcp_peer
map.  The old flat keys are still supported for backwards compat.

Changes:
* osmo_s1gw_sup: add pfcp_cfg(), merging legacy flat keys with the new
  pfcp_peer map (new takes priority); store the resolved config back via
  set_env(pfcp_peer, ...) so all consumers see a single canonical map
* pfcp_peer: change start_link/2 to start_link/1 taking a cfg() map;
  simplify init() using sctp_common:parse_addr/1; add cfg() type
* rest_server: read pfcp laddr/raddr from the pfcp_peer map

Change-Id: Iba954746fe20e6b9eeaec3196e1f83e3fc3e7fc2
</comment><date>2026-03-25 03:32:24 +0700</date><id>a6a31cfd98888c783519d5e0721054455ad8b619</id><msg>config/sys.config: group pfcp_peer params into a map</msg><path><editType>edit</editType><file>src/osmo_s1gw_sup.erl</file></path><path><editType>edit</editType><file>src/rest_server.erl</file></path><path><editType>edit</editType><file>config/sys.config</file></path><path><editType>edit</editType><file>doc/manuals/chapters/configuration.adoc</file></path><path><editType>edit</editType><file>src/pfcp_peer.erl</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>priv/openapi.json</affectedPath><affectedPath>doc/manuals/chapters/configuration.adoc</affectedPath><affectedPath>include/osmo_s1gw.hrl</affectedPath><affectedPath>doc/manuals/chapters/rest.adoc</affectedPath><affectedPath>src/pfcp_peer.erl</affectedPath><affectedPath>config/sys.config</affectedPath><affectedPath>src/rest_server.erl</affectedPath><affectedPath>src/osmo_s1gw_sup.erl</affectedPath><affectedPath>contrib/openapi.yaml</affectedPath><commitId>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>pfcp_peer: make assoc_setup and heartbeat_req timeouts configurable

Add assoc_setup_timeout and heartbeat_req_timeout as optional fields
in the pfcp_peer config map, with 2000 ms defaults.  Store the full
cfg() map in #peer_state{} and read values from it with maps:get/3
at the point of use.

Change-Id: I58a472a3bbbbad029a2f0246b084428ab3b1905c
</comment><date>2026-03-25 03:32:24 +0700</date><id>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</id><msg>pfcp_peer: make assoc_setup and heartbeat_req timeouts configurable</msg><path><editType>edit</editType><file>priv/openapi.json</file></path><path><editType>edit</editType><file>src/pfcp_peer.erl</file></path><path><editType>edit</editType><file>doc/manuals/chapters/configuration.adoc</file></path><path><editType>edit</editType><file>config/sys.config</file></path><path><editType>edit</editType><file>src/rest_server.erl</file></path><path><editType>edit</editType><file>doc/manuals/chapters/rest.adoc</file></path><path><editType>edit</editType><file>contrib/openapi.yaml</file></path><path><editType>edit</editType><file>include/osmo_s1gw.hrl</file></path><path><editType>edit</editType><file>src/osmo_s1gw_sup.erl</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-osmo-s1gw" build number 763</shortDescription><upstreamBuild>763</upstreamBuild><upstreamProject>master-osmo-s1gw</upstreamProject><upstreamUrl>job/master-osmo-s1gw/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>8714</buildingDurationMillis><executingTimeMillis>8714</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>763</buildNumber><marked><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></marked><revision><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginosmithwip _class='hudson.plugins.git.util.Build'><buildNumber>756</buildNumber><marked><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><branch><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></marked><revision><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><branch><SHA1>0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615</SHA1><name>refs/remotes/origin/osmith/wip</name></branch></revision></refsremotesoriginosmithwip></buildsByBranchName><lastBuiltRevision><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><branch><SHA1>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/erlang/osmo-s1gw</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#763</displayName><duration>8714</duration><estimatedDuration>6522</estimatedDuration><fullDisplayName>master-osmo-s1gw » manuals,a1=default,a3=default,a4=default,osmocom-master #763</fullDisplayName><id>763</id><inProgress>false</inProgress><keepLog>false</keepLog><number>763</number><queueId>70933</queueId><result>SUCCESS</result><timestamp>1774448167956</timestamp><url>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/JOB_TYPE=manuals,a1=default,a3=default,a4=default,label=osmocom-master/763/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>priv/openapi.json</affectedPath><affectedPath>contrib/openapi.yaml</affectedPath><commitId>ee7f51f170e04e27c1332b2a800f919dbdcd35d5</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>[REST] PfcpAssocState: field 'lrts' is required

The local RTS is always known and thus always gets included regardless
of the PFCP association state.  Only the remote RTS is optional.

Change-Id: Ic766ebc56ce1810fc27cb49ddcac50bc94e539d9
Related: osmo-ttcn3-hacks.git I332e95a32935e0c8da99e600e8d30af14bd36b16
</comment><date>2026-03-25 03:32:24 +0700</date><id>ee7f51f170e04e27c1332b2a800f919dbdcd35d5</id><msg>[REST] PfcpAssocState: field 'lrts' is required</msg><path><editType>edit</editType><file>priv/openapi.json</file></path><path><editType>edit</editType><file>contrib/openapi.yaml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/gtpu_kpi.erl</affectedPath><commitId>2bd212d33378f40a62ee49bd33265fbbdfcda0a4</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>gtpu_kpi: use ?ENV_DEFAULT_GTPU_KPI_{TABLE_NAME,INTERVAL}

Change-Id: Ia8194966b20da1adc26c02f416b8ec0508191d98
</comment><date>2026-03-25 03:32:24 +0700</date><id>2bd212d33378f40a62ee49bd33265fbbdfcda0a4</id><msg>gtpu_kpi: use ?ENV_DEFAULT_GTPU_KPI_{TABLE_NAME,INTERVAL}</msg><path><editType>edit</editType><file>src/gtpu_kpi.erl</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>doc/manuals/chapters/configuration.adoc</affectedPath><affectedPath>src/pfcp_peer.erl</affectedPath><affectedPath>config/sys.config</affectedPath><affectedPath>src/rest_server.erl</affectedPath><affectedPath>src/osmo_s1gw_sup.erl</affectedPath><commitId>a6a31cfd98888c783519d5e0721054455ad8b619</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>config/sys.config: group pfcp_peer params into a map

Following the same pattern as sctp_{client,server}, group the flat
pfcp_loc_addr/pfcp_rem_addr environment variables into a pfcp_peer
map.  The old flat keys are still supported for backwards compat.

Changes:
* osmo_s1gw_sup: add pfcp_cfg(), merging legacy flat keys with the new
  pfcp_peer map (new takes priority); store the resolved config back via
  set_env(pfcp_peer, ...) so all consumers see a single canonical map
* pfcp_peer: change start_link/2 to start_link/1 taking a cfg() map;
  simplify init() using sctp_common:parse_addr/1; add cfg() type
* rest_server: read pfcp laddr/raddr from the pfcp_peer map

Change-Id: Iba954746fe20e6b9eeaec3196e1f83e3fc3e7fc2
</comment><date>2026-03-25 03:32:24 +0700</date><id>a6a31cfd98888c783519d5e0721054455ad8b619</id><msg>config/sys.config: group pfcp_peer params into a map</msg><path><editType>edit</editType><file>config/sys.config</file></path><path><editType>edit</editType><file>src/rest_server.erl</file></path><path><editType>edit</editType><file>src/osmo_s1gw_sup.erl</file></path><path><editType>edit</editType><file>src/pfcp_peer.erl</file></path><path><editType>edit</editType><file>doc/manuals/chapters/configuration.adoc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>priv/openapi.json</affectedPath><affectedPath>include/osmo_s1gw.hrl</affectedPath><affectedPath>doc/manuals/chapters/configuration.adoc</affectedPath><affectedPath>doc/manuals/chapters/rest.adoc</affectedPath><affectedPath>src/pfcp_peer.erl</affectedPath><affectedPath>src/rest_server.erl</affectedPath><affectedPath>config/sys.config</affectedPath><affectedPath>src/osmo_s1gw_sup.erl</affectedPath><affectedPath>contrib/openapi.yaml</affectedPath><commitId>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</commitId><timestamp>1774384344000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>pfcp_peer: make assoc_setup and heartbeat_req timeouts configurable

Add assoc_setup_timeout and heartbeat_req_timeout as optional fields
in the pfcp_peer config map, with 2000 ms defaults.  Store the full
cfg() map in #peer_state{} and read values from it with maps:get/3
at the point of use.

Change-Id: I58a472a3bbbbad029a2f0246b084428ab3b1905c
</comment><date>2026-03-25 03:32:24 +0700</date><id>179e94d28a4e72e5f9eff4579233ba5bf6cd63e5</id><msg>pfcp_peer: make assoc_setup and heartbeat_req timeouts configurable</msg><path><editType>edit</editType><file>src/pfcp_peer.erl</file></path><path><editType>edit</editType><file>include/osmo_s1gw.hrl</file></path><path><editType>edit</editType><file>doc/manuals/chapters/rest.adoc</file></path><path><editType>edit</editType><file>src/osmo_s1gw_sup.erl</file></path><path><editType>edit</editType><file>doc/manuals/chapters/configuration.adoc</file></path><path><editType>edit</editType><file>src/rest_server.erl</file></path><path><editType>edit</editType><file>config/sys.config</file></path><path><editType>edit</editType><file>priv/openapi.json</file></path><path><editType>edit</editType><file>contrib/openapi.yaml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-osmo-s1gw" build number 751</shortDescription><upstreamBuild>751</upstreamBuild><upstreamProject>master-osmo-s1gw</upstreamProject><upstreamUrl>job/master-osmo-s1gw/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>3</buildableDurationMillis><buildableTimeMillis>3</buildableTimeMillis><buildingDurationMillis>74684</buildingDurationMillis><executingTimeMillis>74684</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>751</buildNumber><marked><SHA1>45d9eb03d0c8e401817125ce403f5833e36178b9</SHA1><branch><SHA1>45d9eb03d0c8e401817125ce403f5833e36178b9</SHA1><name>origin/master</name></branch></marked><revision><SHA1>45d9eb03d0c8e401817125ce403f5833e36178b9</SHA1><branch><SHA1>45d9eb03d0c8e401817125ce403f5833e36178b9</SHA1><name>origin/master</name></branch></revision></originmaster></buildsByBranchName><lastBuiltRevision><SHA1>45d9eb03d0c8e401817125ce403f5833e36178b9</SHA1><branch><SHA1>45d9eb03d0c8e401817125ce403f5833e36178b9</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/erlang/osmo-s1gw</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#751</displayName><duration>74684</duration><estimatedDuration>81023</estimatedDuration><fullDisplayName>master-osmo-s1gw » a1=default,default,a3=default,a4=default,osmocom-master #751</fullDisplayName><id>751</id><inProgress>false</inProgress><keepLog>false</keepLog><number>751</number><queueId>65880</queueId><result>SUCCESS</result><timestamp>1773997560775</timestamp><url>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-s1gw/a1=default,a2=default,a3=default,a4=default,label=osmocom-master/751/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet></run></matrixBuild>