{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      "_class" : "hudson.matrix.MatrixChildParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org laforge@gnumonks.org"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"master-osmo-sgsn\" build number 54,245",
          "upstreamBuild" : 54245,
          "upstreamProject" : "master-osmo-sgsn",
          "upstreamUrl" : "job/master-osmo-sgsn/"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 131919,
      "executingTimeMillis" : 131919,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 0,
      "waitingTimeMillis" : 0
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 54245,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
            "branch" : [
              {
                "SHA1" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
            "branch" : [
              {
                "SHA1" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
        "branch" : [
          {
            "SHA1" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/osmo-sgsn"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#54245",
  "duration" : 131919,
  "estimatedDuration" : 128142,
  "executor" : None,
  "fullDisplayName" : "master-osmo-sgsn » --disable-iu,0,a3=default,a4=default,osmocom-master #54245",
  "id" : "54245",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 54245,
  "queueId" : 1983225,
  "result" : "SUCCESS",
  "timestamp" : 1756908607116,
  "url" : "https://jenkins.osmocom.org/jenkins/job/master-osmo-sgsn/IU=--disable-iu,WITH_MANUALS=0,a3=default,a4=default,label=osmocom-master/54245/",
  "builtOn" : "build4-deb12build-ansible",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/osmocom/sgsn/iu_client.h",
          "src/sgsn/Makefile.am",
          "include/osmocom/sgsn/Makefile.am",
          "src/sgsn/sccp.c",
          "src/sgsn/sgsn_main.c",
          "include/osmocom/sgsn/sgsn.h",
          "src/sgsn/iu_rnc.c",
          "src/sgsn/sgsn.c",
          "src/sgsn/iu_client.c",
          "src/sgsn/gprs_ranap.c",
          "src/sgsn/gprs_gmm_attach.c",
          "include/osmocom/sgsn/gprs_ranap.h",
          "tests/gprs_routing_area/Makefile.am",
          "tests/sgsn/Makefile.am",
          "include/osmocom/sgsn/iu_rnc.h",
          "include/osmocom/sgsn/sccp.h"
        ],
        "commitId" : "265bc33b05d2a7459bcaf286565a6ba524ef09f2",
        "timestamp" : 1756831868000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "Split most of iu_client.{c,h} into sccp.{c,h} and iu_rnc.{c,h}\u000a\u000a* iu_rnc is easily spotted as an object class in the data domain which\u000a  can be put into its own file, handling its specific logic and data.\u000a\u000a* SCCP code can also be moved into own specific file, which eases\u000a  self-containment of the layer logic and data.\u000a\u000a* As a result, lots of RANAP Rx/Tx code in iu_client.{c,h} can also be\u000a  moved to the already existing gprs_ranap.{c,h}.\u000a\u000aAll these changes improve a lot readibility of code and makes it a lot\u000aeasier to improve/extend the different layers/objects in future patches.\u000a\u000aChange-Id: I4c792ae665720460b5a954b5c7cbfe5acbc37473\u000a",
        "date" : "2025-09-02 18:51:08 +0200",
        "id" : "265bc33b05d2a7459bcaf286565a6ba524ef09f2",
        "msg" : "Split most of iu_client.{c,h} into sccp.{c,h} and iu_rnc.{c,h}",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/sgsn.h"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/Makefile.am"
          },
          {
            "editType" : "edit",
            "file" : "tests/gprs_routing_area/Makefile.am"
          },
          {
            "editType" : "add",
            "file" : "src/sgsn/iu_rnc.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sgsn.c"
          },
          {
            "editType" : "add",
            "file" : "src/sgsn/sccp.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/Makefile.am"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_gmm_attach.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sgsn_main.c"
          },
          {
            "editType" : "edit",
            "file" : "tests/sgsn/Makefile.am"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_client.h"
          },
          {
            "editType" : "add",
            "file" : "include/osmocom/sgsn/iu_rnc.h"
          },
          {
            "editType" : "add",
            "file" : "include/osmocom/sgsn/sccp.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_client.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/osmocom/sgsn/gprs_ranap.h",
          "src/sgsn/gprs_ranap.c",
          "src/sgsn/sccp.c",
          "include/osmocom/sgsn/sccp.h"
        ],
        "commitId" : "203676d0476bd5afeae6a2c472a7fa958bfa40e7",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "sccp: Introduce helper func sgsn_scu_iups_tx_data_req()\u000a\u000aThis avoid code deduplication plus moving SCCP SAP logic into sccp.c.\u000a\u000aChange-Id: Id34f86b4f5e40ddceac4066ec18ebc60529cafab\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "203676d0476bd5afeae6a2c472a7fa958bfa40e7",
        "msg" : "sccp: Introduce helper func sgsn_scu_iups_tx_data_req()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sccp.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/sccp.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/osmocom/sgsn/iu_rnc.h",
          "src/sgsn/iu_rnc.c"
        ],
        "commitId" : "20d032bdd294ea5cc84bafc995b534c4c26439ce",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "iu_rnc: Constify function params\u000a\u000aChange-Id: I288bc21d24aa5abd3d9bd97e796ac9f8590290bd\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "20d032bdd294ea5cc84bafc995b534c4c26439ce",
        "msg" : "iu_rnc: Constify function params",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_rnc.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/gprs_ranap.c",
          "include/osmocom/sgsn/gprs_ranap.h",
          "TODO-RELEASE"
        ],
        "commitId" : "a0203ce7ffdb3d17991dde2a0e123eac6a87d75e",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "ranap: Clean up RANAP rx path param passing\u000a\u000aUse the osmo-iuh ranap_cn_rx_*_decode2() APIs directly. This\u000aallows getting rid of extra \"ctx\" temporary structs and another level of\u000acb indirection.\u000a\u000aTake the chance to update most pointers consitfying them.\u000a\u000aDepends: osmo-iuh.git Change-Id I667dc2ef377c1ceb5b11315458f00b282c143c81\u000aChange-Id: Ib3c00b5105b7ba4bb1a2dad1a14bea233a03c358\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "a0203ce7ffdb3d17991dde2a0e123eac6a87d75e",
        "msg" : "ranap: Clean up RANAP rx path param passing",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "TODO-RELEASE"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/osmocom/sgsn/mmctx.h",
          "src/sgsn/gprs_gmm.c",
          "src/sgsn/gprs_ranap.c",
          "include/osmocom/sgsn/pdpctx.h",
          "src/sgsn/pdpctx.c",
          "src/sgsn/mmctx.c",
          "src/sgsn/sgsn_libgtp.c",
          "include/osmocom/sgsn/gprs_ranap.h"
        ],
        "commitId" : "c1f2de579012e9d79d53f6f71e255bc10894563f",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "Split Iu RANAP RAB PS act/deact over different layers\u000a\u000aProperly separate logic acting on objects vs logic building and\u000agenerating RANAP msg on the wire.\u000a\u000aChange-Id: I98788468b7e50619cfd99b3aef2311bb601fb6be\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "c1f2de579012e9d79d53f6f71e255bc10894563f",
        "msg" : "Split Iu RANAP RAB PS act/deact over different layers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/mmctx.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sgsn_libgtp.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/pdpctx.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/mmctx.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/pdpctx.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_gmm.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/iu_client.c",
          "include/osmocom/sgsn/mmctx.h",
          "src/sgsn/gprs_gmm.c",
          "src/sgsn/gprs_ranap.c",
          "include/osmocom/sgsn/iu_client.h",
          "src/sgsn/gprs_mm_state_iu_fsm.c",
          "src/sgsn/mmctx.c",
          "include/osmocom/sgsn/gprs_ranap.h",
          "src/sgsn/sccp.c"
        ],
        "commitId" : "eb5959f6b91893b2b98251ed791fe7fa6e900b96",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "Split Iu RANAP conn release over different layers\u000a\u000aMove and rename functions acting on mmctx to mmctx.{c,h}.\u000aFrom there, call functions acting on ranap ue_ctx.\u000a\u000aChange-Id: I4acdbc857df36b7409c8210d364758192dfdb0bb\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "eb5959f6b91893b2b98251ed791fe7fa6e900b96",
        "msg" : "Split Iu RANAP conn release over different layers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_client.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/mmctx.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_gmm.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_mm_state_iu_fsm.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sccp.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_client.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/mmctx.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/iu_client.c",
          "src/sgsn/gprs_gmm.c",
          "src/sgsn/gprs_ranap.c",
          "include/osmocom/sgsn/gprs_ranap.h",
          "src/sgsn/gprs_gmm_attach.c"
        ],
        "commitId" : "ecaa198fa0d514068650218d3b3ef89a92a04bb2",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "Apply uniform prefix to remaining APIs in gprs_ranap.h\u000a\u000aChange-Id: I4f253f35013085bdebf80e94ab0d2f771e40dba6\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "ecaa198fa0d514068650218d3b3ef89a92a04bb2",
        "msg" : "Apply uniform prefix to remaining APIs in gprs_ranap.h",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_client.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_gmm_attach.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_gmm.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/iu_rnc.c"
        ],
        "commitId" : "202039ed0268d24ef643f4705a9123b6c39a6b2d",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "iu_rnc: Use API osmo_sccp_addr_ri_cmp() to compare addresses\u000a\u000aChange-Id: I04fb37f28b52da9eecb1f8ea40c38ee3eced1c29\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "202039ed0268d24ef643f4705a9123b6c39a6b2d",
        "msg" : "iu_rnc: Use API osmo_sccp_addr_ri_cmp() to compare addresses",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/gprs_ranap.c"
        ],
        "commitId" : "009c25f9688fc781234f9e72f5e29aec0633ab98",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "ranap: Reject InitialUE without RAC IE\u000a\u000aAccording to 3GPP TS 25.413 clauses 8.22.2 and 9.1.33,\u000aRAC IE is mandatory in PS domain.\u000a\u000aChange-Id: I7d6b996ddf1c5a7cde1bf06b500d3ed19c6090c6\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "009c25f9688fc781234f9e72f5e29aec0633ab98",
        "msg" : "ranap: Reject InitialUE without RAC IE",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/osmocom/sgsn/iu_rnc.h",
          "src/sgsn/iu_rnc.c",
          "src/sgsn/gprs_ranap.c"
        ],
        "commitId" : "dfcb514076f17b58727cae8fe3e0e156769370f8",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "iu_rnc: Split iu_rnc_register API into 2 steps\u000a\u000aSplit lookup+allocation from RAI updating.\u000aThis will be needed once we start creating iu_rnc objects upon SCCP\u000arx RANAP RESET messages, which hold Global RNC-ID but no RAI\u000ainformation.\u000a\u000aChange-Id: I3761cc539c63a7ed680b04bb8136a43d397c10aa\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "dfcb514076f17b58727cae8fe3e0e156769370f8",
        "msg" : "iu_rnc: Split iu_rnc_register API into 2 steps",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_rnc.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "include/osmocom/sgsn/gprs_ranap.h",
          "src/sgsn/gprs_ranap.c",
          "TODO-RELEASE"
        ],
        "commitId" : "b9c9271a1f7a54a22034dec80e90e29970b02aad",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "ranap: Improve error handling in Rx RESET\u000a\u000a* Verify the CN Indicator is set to PS to avoid reacting on content from\u000a  unexpected peers (eg. IuCS). If none is set, be permissive on rx and\u000a  assume PS.\u000a\u000a* If GlobalRNC-ID IE is missing, reject the RESET with an Error\u000a  Indication towards the peer to notify about the rejection.\u000a  Same if we couldn't decode properly it.\u000a\u000a* Introduce Tx helpers for generic SCCP UNITDATA.req and RANAP Error\u000a  Indication helpers to simplify code and avoid duplication.\u000a\u000aDepends: osmo-iuh.git Change-Id I58c75b3e0e0f33f48d077385ffac820a6b2be59e\u000aChange-Id: I2a53e10c3903992a42d081e3ec300fbdb9b3c34c\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "b9c9271a1f7a54a22034dec80e90e29970b02aad",
        "msg" : "ranap: Improve error handling in Rx RESET",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "TODO-RELEASE"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/gprs_ranap.c"
        ],
        "commitId" : "7673bbd7ad45bdced262e79796d1870bacb59427",
        "timestamp" : 1756831903000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "ranap: Create iu_rnc upon rx RESET\u000a\u000aRANAP RESET, the first message an SGSN usually receives from an RNC,\u000acontain the GlobalRNC-ID we can already use to register the iu_rnc\u000aobject.\u000aThis allows keeping track of peers since first message, before first\u000aInitialUE message is received.\u000aOnce we start tracking peer RNC state within osmo-sgsn (as we already do\u000ain other osmo-* programs), this will be needed.\u000a\u000aChange-Id: Iaf31271feb4d88881382ed8594d0d8e20e22b194\u000a",
        "date" : "2025-09-02 18:51:43 +0200",
        "id" : "7673bbd7ad45bdced262e79796d1870bacb59427",
        "msg" : "ranap: Create iu_rnc upon rx RESET",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/iu_client.c",
          "src/sgsn/gprs_ranap.c",
          "include/osmocom/sgsn/iu_client.h",
          "include/osmocom/sgsn/iu_rnc.h",
          "src/sgsn/sccp.c",
          "src/sgsn/iu_rnc.c"
        ],
        "commitId" : "611b32811e4458082da789a5c4eb0ae4c3943faa",
        "timestamp" : 1756831997000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "Store scu_iups in iu_rnc instead of ue_ctx\u000a\u000aAll the ue_ctx belong to a given peer RNC, which holds the SCCP User to\u000atalk to it.\u000a\u000aChange-Id: I3969af765b7b0d1375b5e6ad8f3f2e9845f939ef\u000a",
        "date" : "2025-09-02 18:53:17 +0200",
        "id" : "611b32811e4458082da789a5c4eb0ae4c3943faa",
        "msg" : "Store scu_iups in iu_rnc instead of ue_ctx",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_client.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_rnc.h"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_client.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sccp.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/iu_client.c",
          "include/osmocom/sgsn/iu_client.h",
          "include/osmocom/sgsn/iu_rnc.h",
          "include/osmocom/sgsn/sccp.h",
          "src/sgsn/sccp.c",
          "src/sgsn/iu_rnc.c"
        ],
        "commitId" : "a24ebc7051a693ee0a35775e9ec69713f6985034",
        "timestamp" : 1756832102000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "iu_rnc: Introduce helper API iu_rnc_discard_all_ue_ctx()\u000a\u000aThis is a preparation commit to introduce iu_rnc_fsm in follow-up patch.\u000aThe helper API will be used whenever the entire RNC is considered reset.\u000a\u000a* Code inside handle_notice_ind() is moved to its own function\u000a  iu_rnc_discard_all_ue_ctx().\u000a* Dependent helper ue_ctx_link_invalidated_free() API is properly\u000a  prefixed/renamed to ue_conn_ctx_link_invalidated_free(), where methods\u000a  for ue_conn_ctx object are placed.\u000a* ue_conn_ctx_find() is properly prefixed/renamed to\u000a  sgsn_scu_iups_ue_conn_ctx_find() and made available to functions in\u000a  other files.\u000a\u000aChange-Id: Ie3a4732a85a69d115dd5756bfa64b296e9e5edd2\u000a",
        "date" : "2025-09-02 18:55:02 +0200",
        "id" : "a24ebc7051a693ee0a35775e9ec69713f6985034",
        "msg" : "iu_rnc: Introduce helper API iu_rnc_discard_all_ue_ctx()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_client.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/sccp.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sccp.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_client.h"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_rnc.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "tests/osmo-sgsn_test-nodes.vty",
          "src/sgsn/Makefile.am",
          "src/sgsn/iu_rnc_fsm.c",
          "include/osmocom/sgsn/Makefile.am",
          "src/sgsn/sccp.c",
          "src/sgsn/iu_rnc.c",
          "include/osmocom/sgsn/sgsn.h",
          "src/sgsn/sgsn.c",
          "src/sgsn/gprs_ranap.c",
          "src/sgsn/sgsn_vty.c",
          "include/osmocom/sgsn/gprs_ranap.h",
          "tests/gprs_routing_area/Makefile.am",
          "include/osmocom/sgsn/iu_rnc_fsm.h",
          "include/osmocom/sgsn/iu_rnc.h",
          "tests/sgsn/Makefile.am",
          "include/osmocom/sgsn/sccp.h"
        ],
        "commitId" : "d6c29beaf334e957b2fd4c146cae88150cac8b53",
        "timestamp" : 1756832103000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "Introduce iu_rnc FSM\u000a\u000aThis FSM is similar to the already existing ran_peer_fsm in osmo-msc,\u000awhich already had better logic around SCCP and RANAP state handling.\u000aSimilarly, osmo-sgsn's struct ranap_iu_rnc maps to osmo-msc's struct ran_peer.\u000a\u000aWith this FSM we can currently track the RANAP link state towards a given\u000aRNC peer:\u000a* Reject (RANAP Error Indication) all UE-related messages until a RANAP\u000a  RESET from RNC is received first.\u000a* Tear down all subsriber connections whenever the RANAP peer sends us a\u000a  RESET message.\u000a* Tear down all subscriber connections whenever the SCCP link towards\u000a  RNC becomes unavailable.\u000a* Send a RESET towards RNC peer once the SCCP link towrdards it becomes\u000a  available again.\u000a\u000aThis commit only implements so far the Rx path of the FSM, ie. when\u000areceiving events/messages from a peer over SCCP and pushing them locally\u000aup the stack (RANAP). The Tx side will be implemented in a follow-up\u000acommit, which will allow discarding messages if the lower layers towards\u000aa given RNC are known to be down.\u000a\u000aRelated: OS#3403\u000aChange-Id: I18b7803500163e78ff6a684095194174b0fb6ee1\u000a",
        "date" : "2025-09-02 18:55:03 +0200",
        "id" : "d6c29beaf334e957b2fd4c146cae88150cac8b53",
        "msg" : "Introduce iu_rnc FSM",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "tests/gprs_routing_area/Makefile.am"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_rnc.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/Makefile.am"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sgsn_vty.c"
          },
          {
            "editType" : "edit",
            "file" : "tests/sgsn/Makefile.am"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sccp.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/Makefile.am"
          },
          {
            "editType" : "add",
            "file" : "include/osmocom/sgsn/iu_rnc_fsm.h"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/sccp.h"
          },
          {
            "editType" : "add",
            "file" : "src/sgsn/iu_rnc_fsm.c"
          },
          {
            "editType" : "edit",
            "file" : "tests/osmo-sgsn_test-nodes.vty"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/sgsn.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sgsn.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/sgsn.c",
          "src/sgsn/iu_rnc_fsm.c",
          "src/sgsn/iu_rnc.c",
          "include/osmocom/sgsn/sgsn.h"
        ],
        "commitId" : "b062c3647e0353f802d57eb4013df059358d2b46",
        "timestamp" : 1756832103000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "stats: Introduce stats sgsn.iu_peers.{total,active}\u000a\u000aChange-Id: I51b5227d92027f1251dc4debbbf59737e7c1a9ba\u000a",
        "date" : "2025-09-02 18:55:03 +0200",
        "id" : "b062c3647e0353f802d57eb4013df059358d2b46",
        "msg" : "stats: Introduce stats sgsn.iu_peers.{total,active}",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc_fsm.c"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/sgsn.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/sgsn.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/sgsn/iu_client.c",
          "src/sgsn/gprs_ranap.c",
          "src/sgsn/iu_rnc_fsm.c",
          "include/osmocom/sgsn/gprs_ranap.h",
          "include/osmocom/sgsn/iu_rnc_fsm.h",
          "include/osmocom/sgsn/iu_rnc.h",
          "src/sgsn/iu_rnc.c"
        ],
        "commitId" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
        "timestamp" : 1756832103000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "ranap: Take into account RNC availability during paging\u000a\u000aAvoid transmitting a RANAP paging message to an RNC if we already know\u000ait's not currently available over SCCP.\u000aTake into account that information when deciding/printing whether the\u000apaging could be sent or not.\u000a\u000aTake the chance to clean up the iu paging function helpers inherited\u000afrom osmo-iuh iu_client.c to better fit the data domain in osmo-sgsn\u000a(iu_rnc).\u000a\u000aChange-Id: I24e5446bcf4c958028577230b231960acea9e5b9\u000a",
        "date" : "2025-09-02 18:55:03 +0200",
        "id" : "1fd205f0b838392625303671b240aaaf7c9c4dac",
        "msg" : "ranap: Take into account RNC availability during paging",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_rnc_fsm.h"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/iu_rnc.h"
          },
          {
            "editType" : "edit",
            "file" : "include/osmocom/sgsn/gprs_ranap.h"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_rnc_fsm.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/gprs_ranap.c"
          },
          {
            "editType" : "edit",
            "file" : "src/sgsn/iu_client.c"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
      "fullName" : "Pau Espin Pedrol"
    }
  ]
}