diff --git a/.github/ISSUE_TEMPLATE/bugreport.yaml b/.github/ISSUE_TEMPLATE/bugreport.yaml
index bdfb0a30d2..81c5256d84 100644
--- a/.github/ISSUE_TEMPLATE/bugreport.yaml
+++ b/.github/ISSUE_TEMPLATE/bugreport.yaml
@@ -18,7 +18,7 @@ body:
attributes:
label: Open5GS Release, Revision, or Tag
description: Please check if your issue has been resolved in the latest release.
- placeholder: v2.6.0
+ placeholder: v2.7.1
validations:
required: true
- type: textarea
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml
deleted file mode 100644
index 6c739b053c..0000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: Feature request
-description: Propose an enhancement to Open5GS
-labels: ['Enhancement', 'triage']
-body:
- - type: markdown
- attributes:
- value: >
- ## Feature request
- Please submit your feature request using the form. If your proposal is not sufficiently
- well formed, we may request further clarification and expansion. If you're unsure about
- how to formulate your request, please start a [discussion instead](https://github.com/open5gs/open5gs/dicsussions/).
-
- - type: input
- attributes:
- label: Open5GS Release, Revision, or Tag
- placeholder: v2.6.0
- validations:
- required: true
-
- - type: input
- attributes:
- label: Components and subsystems
- description: Which subsystems and components would this feature be relevant to?
- validations:
- required: true
-
- - type: textarea
- attributes:
- label: Proposed functionality
- description: >
- Provide a detailed description of the feature or behaviour you are proposing. Please include any
- Please include any relevant 3GPP standards and references and include any specific changes to
- current protocols, processing pipelines, DIAMETER requests/responses, and interfaces. The more detail
- you provide, the greater the chance your proposal has of being discussed.
-
- If your feature request does not include anything actionable or sufficient details, you may be asked
- to provide further clarification or your request may be rejected.
- validations:
- required: true
-
- - type: textarea
- attributes:
- label: External dependencies
- description: >
- Please detail any new dependencies or implementations that this feature might introduce. e.g. Does the
- proposal require the installation of additional packages? Are there further external nodes which may be
- required for integration testing? (Not all feature requests will introduce new dependencies)
-
diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml
index 924041942d..adf547d37e 100644
--- a/.github/workflows/cifuzz.yml
+++ b/.github/workflows/cifuzz.yml
@@ -19,14 +19,14 @@ jobs:
fuzz-seconds: 300
output-sarif: true
- name: Upload Crash
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
path: ./out/artifacts
- name: Upload Sarif
if: always() && steps.build.outcome == 'success'
- uses: github/codeql-action/upload-sarif@v2
+ uses: github/codeql-action/upload-sarif@v3
with:
# Path to SARIF file relative to the root of the repository
sarif_file: cifuzz-sarif/results.sarif
diff --git a/.github/workflows/meson-ci.yml b/.github/workflows/meson-ci.yml
index 971850c5b0..bea92d2291 100644
--- a/.github/workflows/meson-ci.yml
+++ b/.github/workflows/meson-ci.yml
@@ -2,51 +2,51 @@ name: Meson Continuous Integration
on: [push, pull_request]
jobs:
- macos-latest:
- name: Build and Test on MacOS Latest
- runs-on: macos-latest
- steps:
-# - name: Install MongoDB with Package Manager
+# macos-latest:
+# name: Build and Test on MacOS Latest
+# runs-on: macos-latest
+# steps:
+## - name: Install MongoDB with Package Manager
+## run: |
+## brew tap mongodb/brew
+## brew install mongodb-community
+## brew services start mongodb-community
+# - name: Create the TUN device with the interface name `ogstun`.
# run: |
-# brew tap mongodb/brew
-# brew install mongodb-community
-# brew services start mongodb-community
- - name: Create the TUN device with the interface name `ogstun`.
- run: |
- sudo ifconfig lo0 alias 127.0.0.2 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.3 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.4 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.5 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.5 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.6 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.7 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.8 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.9 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.10 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.11 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.12 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.13 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.14 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.15 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.16 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.17 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
- sudo ifconfig lo0 alias 127.0.1.10 netmask 255.255.255.255
- - name: Install the dependencies for building the source code.
- run: brew install mongo-c-driver libidn libmicrohttpd nghttp2 bison libusrsctp libtins talloc meson
- - name: Check out repository code
- uses: actions/checkout@main
- - name: Setup Meson Build
- run: PATH="/usr/local/opt/bison/bin:$PATH" PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" meson setup build
- env:
- CC: gcc
- - name : Build Open5GS
- run: ninja -C build
- - name: Test Open5GS
- run: sudo meson test -C build -v crypt unit
-
+# sudo ifconfig lo0 alias 127.0.0.2 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.3 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.4 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.5 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.5 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.6 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.7 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.8 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.9 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.10 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.11 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.12 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.13 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.14 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.15 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.16 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.17 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
+# sudo ifconfig lo0 alias 127.0.1.10 netmask 255.255.255.255
+# - name: Install the dependencies for building the source code.
+# run: brew install mongo-c-driver libidn libmicrohttpd nghttp2 bison libusrsctp libtins talloc meson
+# - name: Check out repository code
+# uses: actions/checkout@main
+# - name: Setup Meson Build
+# run: PATH="/usr/local/opt/bison/bin:$PATH" PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" meson setup build
+# env:
+# CC: gcc
+# - name : Build Open5GS
+# run: ninja -C build
+# - name: Test Open5GS
+# run: sudo meson test -C build -v crypt unit
+#
ubuntu-latest:
name: Build and Test on Ubuntu Latest
runs-on: ubuntu-latest
diff --git a/README.md b/README.md
index 7d7637c5cf..f930db6207 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,16 @@ Please follow the [documentation](https://open5gs.org/open5gs/docs/) at [open5gs
If you find Open5GS useful for work, please consider supporting this Open Source project by [Becoming a sponsor](https://github.com/sponsors/acetcom). To manage the funding transactions transparently, you can donate through [OpenCollective](https://opencollective.com/open5gs).
+
+
Special Sponsor
+
+
+
+
+
+
+
+
@@ -27,4 +37,8 @@ If you're contributing through a pull request to Open5GS project on GitHub, plea
## License
- Open5GS Open Source files are made available under the terms of the GNU Affero General Public License ([GNU AGPL v3.0](https://www.gnu.org/licenses/agpl-3.0.html)).
-- [Commercial licenses](https://open5gs.org/open5gs/support/) are also available from [NeoPlane](https://neoplane.io/)
+- [Commercial licenses](https://open5gs.org/open5gs/support/) are also available from [NewPlane](https://newplane.io/) at [sales@newplane.io](mailto:sales@newplane.io).
+
+## Support
+
+Technical support and customized services for Open5GS are provided by [NewPlane](https://newplane.io/) at [support@newplane.io](mailto:support@newplane.io).
diff --git a/configs/310014.yaml.in b/configs/310014.yaml.in
index 4dfdf030b6..6299ad4ea3 100644
--- a/configs/310014.yaml.in
+++ b/configs/310014.yaml.in
@@ -109,8 +109,10 @@ smf:
server:
- address: 127.0.0.4
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -189,8 +191,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/csfb.yaml.in b/configs/csfb.yaml.in
index d32047148c..53f19af8df 100644
--- a/configs/csfb.yaml.in
+++ b/configs/csfb.yaml.in
@@ -59,7 +59,7 @@ mme:
smf:
- address: 127.0.0.4
sgsap:
- server:
+ client:
- address: 127.0.0.2
map:
tai:
@@ -142,8 +142,10 @@ smf:
server:
- address: 127.0.0.4
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -219,8 +221,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/5gc-sepp1-999-70.yaml.in b/configs/examples/5gc-sepp1-999-70.yaml.in
index c0e1312af3..536fec39ba 100644
--- a/configs/examples/5gc-sepp1-999-70.yaml.in
+++ b/configs/examples/5gc-sepp1-999-70.yaml.in
@@ -112,8 +112,10 @@ smf:
- address: 127.0.1.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -207,8 +209,10 @@ upf:
server:
- address: 127.0.1.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.1.7
@@ -346,87 +350,9 @@ pcf:
- address: 127.0.1.13
port: 9090
policy:
- - plmn_id:
- mcc: 001
- mnc: 01
- slice:
- - sst: 1 # 1,2,3,4
- default_indicator: true
- session:
- - name: internet
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3
- qos:
- index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- - name: ims
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- qos:
- index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- pcc_rule:
- - qos:
- index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - qos:
- index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
- pre_emption_capability: 2 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - plmn_id:
- mcc: 315
- mnc: 010
+ - supi_range:
+ - 001010000000001-001019999999999
+ - 315010000000001-315010999999999
slice:
- sst: 1 # 1,2,3,4
default_indicator: true
@@ -502,7 +428,6 @@ pcf:
uplink:
value: 802
unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-
nssf:
sbi:
server:
diff --git a/configs/examples/5gc-sepp2-001-01.yaml.in b/configs/examples/5gc-sepp2-001-01.yaml.in
index 46e26d8a57..5637ae6ac8 100644
--- a/configs/examples/5gc-sepp2-001-01.yaml.in
+++ b/configs/examples/5gc-sepp2-001-01.yaml.in
@@ -112,8 +112,10 @@ smf:
- address: 127.0.2.4
port: 9090
session:
- - subnet: 10.46.0.1/16
- - subnet: 2001:db8:babe::1/48
+ - subnet: 10.46.0.0/16
+ gateway: 10.46.0.1
+ - subnet: 2001:db8:babe::/48
+ gateway: 2001:db8:babe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -207,9 +209,11 @@ upf:
server:
- address: 127.0.2.7
session:
- - subnet: 10.46.0.1/16
+ - subnet: 10.46.0.0/16
+ gateway: 10.46.0.1
dev: ogstun2
- - subnet: 2001:db8:babe::1/48
+ - subnet: 2001:db8:babe::/48
+ gateway: 2001:db8:babe::1
dev: ogstun2
metrics:
server:
@@ -347,87 +351,9 @@ pcf:
- address: 127.0.2.13
port: 9090
policy:
- - plmn_id:
- mcc: 999
- mnc: 70
- slice:
- - sst: 1 # 1,2,3,4
- default_indicator: true
- session:
- - name: internet
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3
- qos:
- index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- - name: ims
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- qos:
- index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- pcc_rule:
- - qos:
- index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - qos:
- index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
- pre_emption_capability: 2 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - plmn_id:
- mcc: 315
- mnc: 010
+ - supi_range:
+ - 999700000000001-999709999999999
+ - 315010000000001-315010999999999
slice:
- sst: 1 # 1,2,3,4
default_indicator: true
@@ -503,7 +429,6 @@ pcf:
uplink:
value: 802
unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-
nssf:
sbi:
server:
diff --git a/configs/examples/5gc-sepp3-315-010.yaml.in b/configs/examples/5gc-sepp3-315-010.yaml.in
index 8915574e31..7f6bd606e7 100644
--- a/configs/examples/5gc-sepp3-315-010.yaml.in
+++ b/configs/examples/5gc-sepp3-315-010.yaml.in
@@ -112,8 +112,10 @@ smf:
- address: 127.0.3.4
port: 9090
session:
- - subnet: 10.47.0.1/16
- - subnet: 2001:db8:face::1/48
+ - subnet: 10.47.0.0/16
+ gateway: 10.47.0.1
+ - subnet: 2001:db8:face::/48
+ gateway: 2001:db8:face::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -207,9 +209,11 @@ upf:
server:
- address: 127.0.3.7
session:
- - subnet: 10.47.0.1/16
+ - subnet: 10.47.0.0/16
+ gateway: 10.47.0.1
dev: ogstun3
- - subnet: 2001:db8:face::1/48
+ - subnet: 2001:db8:face::/48
+ gateway: 2001:db8:face::1
dev: ogstun3
metrics:
server:
@@ -347,87 +351,9 @@ pcf:
- address: 127.0.3.13
port: 9090
policy:
- - plmn_id:
- mcc: 999
- mnc: 70
- slice:
- - sst: 1 # 1,2,3,4
- default_indicator: true
- session:
- - name: internet
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3
- qos:
- index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- - name: ims
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- qos:
- index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- pcc_rule:
- - qos:
- index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - qos:
- index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
- pre_emption_capability: 2 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - plmn_id:
- mcc: 001
- mnc: 01
+ - supi_range:
+ - 999700000000001-999709999999999
+ - 001010000000001-001019999999999
slice:
- sst: 1 # 1,2,3,4
default_indicator: true
@@ -503,7 +429,6 @@ pcf:
uplink:
value: 802
unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-
nssf:
sbi:
server:
diff --git a/configs/examples/5gc-tls-sepp1-999-70.yaml.in b/configs/examples/5gc-tls-sepp1-999-70.yaml.in
index 1edd26b7c9..dd35d4cb76 100644
--- a/configs/examples/5gc-tls-sepp1-999-70.yaml.in
+++ b/configs/examples/5gc-tls-sepp1-999-70.yaml.in
@@ -113,8 +113,10 @@ smf:
- address: 127.0.1.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -208,8 +210,10 @@ upf:
server:
- address: 127.0.1.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.1.7
@@ -351,87 +355,9 @@ pcf:
- address: 127.0.1.13
port: 9090
policy:
- - plmn_id:
- mcc: 001
- mnc: 01
- slice:
- - sst: 1 # 1,2,3,4
- default_indicator: true
- session:
- - name: internet
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3
- qos:
- index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- - name: ims
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- qos:
- index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- pcc_rule:
- - qos:
- index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - qos:
- index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
- pre_emption_capability: 2 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - plmn_id:
- mcc: 315
- mnc: 010
+ - supi_range:
+ - 001010000000001-001019999999999
+ - 315010000000001-315010999999999
slice:
- sst: 1 # 1,2,3,4
default_indicator: true
@@ -507,7 +433,6 @@ pcf:
uplink:
value: 802
unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-
nssf:
sbi:
server:
diff --git a/configs/examples/5gc-tls-sepp2-001-01.yaml.in b/configs/examples/5gc-tls-sepp2-001-01.yaml.in
index 9170cd726f..dfaa87bc8c 100644
--- a/configs/examples/5gc-tls-sepp2-001-01.yaml.in
+++ b/configs/examples/5gc-tls-sepp2-001-01.yaml.in
@@ -113,8 +113,10 @@ smf:
- address: 127.0.2.4
port: 9090
session:
- - subnet: 10.46.0.1/16
- - subnet: 2001:db8:babe::1/48
+ - subnet: 10.46.0.0/16
+ gateway: 10.46.0.1
+ - subnet: 2001:db8:babe::/48
+ gateway: 2001:db8:babe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -208,9 +210,11 @@ upf:
server:
- address: 127.0.2.7
session:
- - subnet: 10.46.0.1/16
+ - subnet: 10.46.0.0/16
+ gateway: 10.46.0.1
dev: ogstun2
- - subnet: 2001:db8:babe::1/48
+ - subnet: 2001:db8:babe::/48
+ gateway: 2001:db8:babe::1
dev: ogstun2
metrics:
server:
@@ -352,87 +356,9 @@ pcf:
- address: 127.0.2.13
port: 9090
policy:
- - plmn_id:
- mcc: 999
- mnc: 70
- slice:
- - sst: 1 # 1,2,3,4
- default_indicator: true
- session:
- - name: internet
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3
- qos:
- index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- - name: ims
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- qos:
- index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- pcc_rule:
- - qos:
- index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - qos:
- index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
- pre_emption_capability: 2 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - plmn_id:
- mcc: 315
- mnc: 010
+ - supi_range:
+ - 999700000000001-999709999999999
+ - 315010000000001-315010999999999
slice:
- sst: 1 # 1,2,3,4
default_indicator: true
@@ -508,7 +434,6 @@ pcf:
uplink:
value: 802
unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-
nssf:
sbi:
server:
diff --git a/configs/examples/5gc-tls-sepp3-315-010.yaml.in b/configs/examples/5gc-tls-sepp3-315-010.yaml.in
index 945b2b4c72..82183cc698 100644
--- a/configs/examples/5gc-tls-sepp3-315-010.yaml.in
+++ b/configs/examples/5gc-tls-sepp3-315-010.yaml.in
@@ -113,8 +113,10 @@ smf:
- address: 127.0.3.4
port: 9090
session:
- - subnet: 10.47.0.1/16
- - subnet: 2001:db8:face::1/48
+ - subnet: 10.47.0.0/16
+ gateway: 10.47.0.1
+ - subnet: 2001:db8:face::/48
+ gateway: 2001:db8:face::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -208,9 +210,11 @@ upf:
server:
- address: 127.0.3.7
session:
- - subnet: 10.47.0.1/16
+ - subnet: 10.47.0.0/16
+ gateway: 10.47.0.1
dev: ogstun3
- - subnet: 2001:db8:face::1/48
+ - subnet: 2001:db8:face::/48
+ gateway: 2001:db8:face::1
dev: ogstun3
metrics:
server:
@@ -352,87 +356,9 @@ pcf:
- address: 127.0.3.13
port: 9090
policy:
- - plmn_id:
- mcc: 999
- mnc: 70
- slice:
- - sst: 1 # 1,2,3,4
- default_indicator: true
- session:
- - name: internet
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3
- qos:
- index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- - name: ims
- type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
- ambr:
- downlink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 1
- unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- qos:
- index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- pcc_rule:
- - qos:
- index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
- pre_emption_capability: 1 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 82
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - qos:
- index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
- arp:
- priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
- pre_emption_capability: 2 # 1: Disabled, 2:Enabled
- mbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- gbr:
- downlink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- uplink:
- value: 802
- unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
- - plmn_id:
- mcc: 001
- mnc: 01
+ - supi_range:
+ - 999700000000001-999709999999999
+ - 001010000000001-001010999999999
slice:
- sst: 1 # 1,2,3,4
default_indicator: true
@@ -508,7 +434,6 @@ pcf:
uplink:
value: 802
unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-
nssf:
sbi:
server:
diff --git a/configs/examples/gnb-001-01-ue-001-01.yaml.in b/configs/examples/gnb-001-01-ue-001-01.yaml.in
index 5f132056e9..6775c45a53 100644
--- a/configs/examples/gnb-001-01-ue-001-01.yaml.in
+++ b/configs/examples/gnb-001-01-ue-001-01.yaml.in
@@ -118,8 +118,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -203,8 +205,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-001-01-ue-315-010.yaml.in b/configs/examples/gnb-001-01-ue-315-010.yaml.in
index 20f8756d64..7f8a9bd79d 100644
--- a/configs/examples/gnb-001-01-ue-315-010.yaml.in
+++ b/configs/examples/gnb-001-01-ue-315-010.yaml.in
@@ -118,8 +118,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -203,8 +205,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-001-01-ue-999-70.yaml.in b/configs/examples/gnb-001-01-ue-999-70.yaml.in
index 16e2c65ac9..2237b90f29 100644
--- a/configs/examples/gnb-001-01-ue-999-70.yaml.in
+++ b/configs/examples/gnb-001-01-ue-999-70.yaml.in
@@ -116,8 +116,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -198,8 +200,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-315-010-ue-001-01.yaml.in b/configs/examples/gnb-315-010-ue-001-01.yaml.in
index f970f2b8be..678c4d4c8f 100644
--- a/configs/examples/gnb-315-010-ue-001-01.yaml.in
+++ b/configs/examples/gnb-315-010-ue-001-01.yaml.in
@@ -118,8 +118,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -203,8 +205,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-315-010-ue-315-010.yaml.in b/configs/examples/gnb-315-010-ue-315-010.yaml.in
index 30c681a5da..a902e02bd0 100644
--- a/configs/examples/gnb-315-010-ue-315-010.yaml.in
+++ b/configs/examples/gnb-315-010-ue-315-010.yaml.in
@@ -116,8 +116,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -198,8 +200,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-315-010-ue-999-70.yaml.in b/configs/examples/gnb-315-010-ue-999-70.yaml.in
index ff0cbcdef6..c8e511d913 100644
--- a/configs/examples/gnb-315-010-ue-999-70.yaml.in
+++ b/configs/examples/gnb-315-010-ue-999-70.yaml.in
@@ -118,8 +118,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -203,8 +205,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-999-70-ue-001-01.yaml.in b/configs/examples/gnb-999-70-ue-001-01.yaml.in
index 202a5f02c3..57012a6e30 100644
--- a/configs/examples/gnb-999-70-ue-001-01.yaml.in
+++ b/configs/examples/gnb-999-70-ue-001-01.yaml.in
@@ -118,8 +118,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -203,8 +205,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-999-70-ue-315-010.yaml.in b/configs/examples/gnb-999-70-ue-315-010.yaml.in
index dea839c0d9..e1e1f79870 100644
--- a/configs/examples/gnb-999-70-ue-315-010.yaml.in
+++ b/configs/examples/gnb-999-70-ue-315-010.yaml.in
@@ -118,8 +118,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -203,8 +205,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/examples/gnb-999-70-ue-999-70.yaml.in b/configs/examples/gnb-999-70-ue-999-70.yaml.in
index b1bd3534ba..a28f11a66f 100644
--- a/configs/examples/gnb-999-70-ue-999-70.yaml.in
+++ b/configs/examples/gnb-999-70-ue-999-70.yaml.in
@@ -116,8 +116,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -198,8 +200,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/logrotate/open5gs.in b/configs/logrotate/open5gs.in
index 113b12a2cd..73cf7abce1 100644
--- a/configs/logrotate/open5gs.in
+++ b/configs/logrotate/open5gs.in
@@ -8,7 +8,9 @@
postrotate
for i in nrfd scpd seppd pcrfd hssd ausfd udmd udrd upfd sgwcd sgwud smfd mmed amfd; do
- systemctl reload open5gs-$i
+ if systemctl --quiet is-active open5gs-$i; then
+ systemctl reload open5gs-$i
+ fi
done
endscript
}
diff --git a/configs/meson.build b/configs/meson.build
index 570b49542a..dd31e810e9 100644
--- a/configs/meson.build
+++ b/configs/meson.build
@@ -39,6 +39,7 @@ example_conf = '''
slice.yaml
srsenb.yaml
non3gpp.yaml
+ transfer.yaml
'''.split()
foreach file : example_conf
diff --git a/configs/non3gpp.yaml.in b/configs/non3gpp.yaml.in
index ac0477777f..cb053eeda0 100644
--- a/configs/non3gpp.yaml.in
+++ b/configs/non3gpp.yaml.in
@@ -110,8 +110,10 @@ smf:
server:
- address: 127.0.0.4
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -192,8 +194,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/open5gs/amf.yaml.in b/configs/open5gs/amf.yaml.in
index 4f9dbf5441..3919c5c2c5 100644
--- a/configs/open5gs/amf.yaml.in
+++ b/configs/open5gs/amf.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/amf.log
+ file:
+ path: @localstatedir@/log/open5gs/amf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -58,43 +59,83 @@ amf:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-amf.svc.local
# sbi:
# server:
# - dev:eth0
# advertise: open5gs-amf.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: amf.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.5 and advertise as open5gs-amf.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.5
+# port: 7777
+# advertise: open5gs-amf.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.5
+# port: 7777
+# advertise: open5gs-amf.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication by Delegating to SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
+#
+# o Indirect Communication with Delegated Discovery
# sbi:
# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
#
-# o Indirect communication without delegated discovery
+# o Default delegation: all communications are delegated to the SCP
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -116,6 +157,27 @@ amf:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/amf.key
+# cert: @sysconfdir@/open5gs/tls/amf.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/amf-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/amf-client-sslkeylog.log
+# sbi:
+# server:
+# - address: amf.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/ausf.yaml.in b/configs/open5gs/ausf.yaml.in
index a7330403a4..52291fdf72 100644
--- a/configs/open5gs/ausf.yaml.in
+++ b/configs/open5gs/ausf.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/ausf.log
+ file:
+ path: @localstatedir@/log/open5gs/ausf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -21,43 +22,83 @@ ausf:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-ausf.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-ausf.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: ausf.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.11 and advertise as open5gs-ausf.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.11
+# port: 7777
+# advertise: open5gs-ausf.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.11
+# port: 7777
+# advertise: open5gs-ausf.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication by Delegating to SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
+#
+# o Indirect Communication with Delegated Discovery
# sbi:
# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
#
-# o Indirect communication without delegated discovery
+# o Default delegation: all communications are delegated to the SCP
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -79,6 +120,27 @@ ausf:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/ausf.key
+# cert: @sysconfdir@/open5gs/tls/ausf.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/ausf-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/ausf-client-sslkeylog.log
+# sbi:
+# server:
+# - address: ausf.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/bsf.yaml.in b/configs/open5gs/bsf.yaml.in
index 95a6d93dad..12bc11433f 100644
--- a/configs/open5gs/bsf.yaml.in
+++ b/configs/open5gs/bsf.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/bsf.log
+ file:
+ path: @localstatedir@/log/open5gs/bsf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -21,43 +22,83 @@ bsf:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-bsf.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-bsf.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: bsf.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.15 and advertise as open5gs-bsf.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.15
+# port: 7777
+# advertise: open5gs-bsf.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.15
+# port: 7777
+# advertise: open5gs-bsf.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication by Delegating to SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
+#
+# o Indirect Communication with Delegated Discovery
# sbi:
# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
#
-# o Indirect communication without delegated discovery
+# o Default delegation: all communications are delegated to the SCP
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -79,6 +120,27 @@ bsf:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/bsf.key
+# cert: @sysconfdir@/open5gs/tls/bsf.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/bsf-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/bsf-client-sslkeylog.log
+# sbi:
+# server:
+# - address: bsf.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/hss.yaml.in b/configs/open5gs/hss.yaml.in
index 2e304c0211..861e8163c2 100644
--- a/configs/open5gs/hss.yaml.in
+++ b/configs/open5gs/hss.yaml.in
@@ -1,6 +1,7 @@
db_uri: mongodb://localhost/open5gs
logger:
- file: @localstatedir@/log/open5gs/hss.log
+ file:
+ path: @localstatedir@/log/open5gs/hss.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -10,5 +11,9 @@ global:
hss:
freeDiameter: @sysconfdir@/freeDiameter/hss.conf
+ metrics:
+ server:
+ - address: 127.0.0.8
+ port: 9090
# sms_over_ims: "sip:smsc.mnc001.mcc001.3gppnetwork.org:7060;transport=tcp"
# use_mongodb_change_stream: true
diff --git a/configs/open5gs/mme.yaml.in b/configs/open5gs/mme.yaml.in
index 5acf05fdc7..39b2a00713 100644
--- a/configs/open5gs/mme.yaml.in
+++ b/configs/open5gs/mme.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/mme.log
+ file:
+ path: @localstatedir@/log/open5gs/mme.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -163,8 +164,9 @@ mme:
################################################################################
# o MSC/VLR
# sgsap:
-# server:
-# - address: 127.0.0.2
+# client:
+# - address: msc.open5gs.org # SCTP server address configured on the MSC/VLR
+# local_address: 127.0.0.2 # SCTP local IP addresses to be bound in the MME
# map:
# tai:
# plmn_id:
@@ -187,7 +189,15 @@ mme:
# mcc: 002
# mnc: 02
# lac: 43692
-# - address: msc.open5gs.org
+# - address: # SCTP server address configured on the MSC/VLR
+# - 127.0.0.88
+# - 10.0.0.88
+# - 172.16.0.88
+# - 2001:db8:babe::88
+# local_address: # SCTP local IP addresses to be bound in the MME
+# - 127.0.0.2
+# - 192.168.1.4
+# - 2001:db8:cafe::2
# map:
# tai:
# plmn_id:
@@ -276,5 +286,23 @@ mme:
# mcc: 999
# mnc: 70
#
+# o HSS Selection
+# o realm and host are optional
+# o realm will be generated from plmn_id if not provided
+# o host will not be used if not provided
+# hss_map:
+# - plmn_id:
+# mcc: 001
+# mnc: 01
+# - plmn_id:
+# mcc: 002
+# mnc: 02
+# realm: epc.mnc002.mcc002.3gppnetwork.org
+# - plmn_id:
+# mcc: 999
+# mnc: 70
+# realm: localdomain
+# host: hss.localdomain
+#
# o Relative Capacity
# relative_capacity: 100
diff --git a/configs/open5gs/nrf.yaml.in b/configs/open5gs/nrf.yaml.in
index cd9e45febe..c69f8c40cd 100644
--- a/configs/open5gs/nrf.yaml.in
+++ b/configs/open5gs/nrf.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/nrf.log
+ file:
+ path: @localstatedir@/log/open5gs/nrf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -20,18 +21,31 @@ nrf:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-nrf.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-nrf.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: nrf.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.10 and advertise as open5gs-nrf.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.10
+# port: 7777
+# advertise: open5gs-nrf.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.10
+# port: 7777
+# advertise: open5gs-nrf.svc.local:8888
#
################################################################################
# HTTPS scheme with TLS
@@ -50,6 +64,24 @@ nrf:
# server:
# - address: nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/nrf.key
+# cert: @sysconfdir@/open5gs/tls/nrf.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/nrf-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/nrf-client-sslkeylog.log
+# sbi:
+# server:
+# - address: nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/nssf.yaml.in b/configs/open5gs/nssf.yaml.in
index d185be250d..015085f566 100644
--- a/configs/open5gs/nssf.yaml.in
+++ b/configs/open5gs/nssf.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/nssf.log
+ file:
+ path: @localstatedir@/log/open5gs/nssf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -24,18 +25,31 @@ nssf:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-nssf.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-nssf.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: nssf.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.14 and advertise as open5gs-nssf.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.14
+# port: 7777
+# advertise: open5gs-nssf.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.14
+# port: 7777
+# advertise: open5gs-nssf.svc.local:8888
#
################################################################################
# SBI Client
@@ -63,27 +77,55 @@ nssf:
# sst: 1
# sd: 009000
#
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+#
+# o Indirect Communication by Delegating to SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication with Delegated Discovery
# sbi:
# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
#
-# o Indirect communication without delegated discovery
+# o Default delegation: all communications are delegated to the SCP
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# # No 'delegated' section; defaults to AUTO delegation
+#
#
################################################################################
# HTTPS scheme with TLS
@@ -109,6 +151,31 @@ nssf:
# s_nssai:
# sst: 1
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/nssf.key
+# cert: @sysconfdir@/open5gs/tls/nssf.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/nssf-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/nssf-client-sslkeylog.log
+# sbi:
+# server:
+# - address: nssf.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+# nsi:
+# - uri: https://nrf.localdomain
+# s_nssai:
+# sst: 1
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/pcf.yaml.in b/configs/open5gs/pcf.yaml.in
index 2df2e9a36f..4c5d103f9e 100644
--- a/configs/open5gs/pcf.yaml.in
+++ b/configs/open5gs/pcf.yaml.in
@@ -1,6 +1,7 @@
db_uri: mongodb://localhost/open5gs
logger:
- file: @localstatedir@/log/open5gs/pcf.log
+ file:
+ path: @localstatedir@/log/open5gs/pcf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -24,73 +25,85 @@ pcf:
port: 9090
################################################################################
-# Locally configured policy
-# - The PCF in the VPLMN uses locally configured policies
-# according to the roaming agreement with the HPLMN operator
-# as input for PCC Rule generation.
+# PCF Policy Configuration: UE Home PLMN and SUPI Range Based Policies
################################################################################
#
-# o You don't have to use MongoDB if you use the policy configuration as below.
+# This configuration applies policies based on the UE's home PLMN ID and
+# SUPI range. When both supi_range and plmn_id are specified in a policy,
+# the policy is applied only if both conditions are met.
+#
+# supi_range: Specifies one or more ranges of SUPIs. A maximum of 16 ranges
+# can be defined.
+# plmn_id : Specifies the UE's home PLMN using MCC and MNC.
+#
+# Example:
#
# policy:
-# - plmn_id:
+# - supi_range: # Filter policies by SUPI
+# - 999700000000001-999709999999999
+# - 315010000000001-315010999999999
+# plmn_id: # Filter policies by home PLMN-ID
# mcc: 999
# mnc: 70
-# slice:
-# - sst: 1 # 1,2,3,4
+# slice: # Specify slice configuration
+# - sst: 1 # Allowed values: 1, 2, 3, 4
# default_indicator: true
-# session:
+# session: # Define session based on DNN
# - name: internet
-# type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
+# type: 3 # 1: IPv4, 2: IPv6, 3: IPv4v6
# ambr:
# downlink:
# value: 1
-# unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 3 # 0: bps, 1: Kbps, 2: Mbps, 3: Gbps, 4: Tbps
# uplink:
# value: 1
# unit: 3
# qos:
-# index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
+# index: 9 # Allowed values: 1,2,3,4,65,66,67,75,71,72,
+# # 73,74,76,5,6,7,8,9,69,70,79,80,82,83,
+# # 84,85,86
# arp:
-# priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 1 # 1: Disabled, 2:Enabled
+# priority_level: 8 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 1 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 1 # 1: Disabled, 2: Enabled
# - name: ims
-# type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
+# type: 3 # 1: IPv4, 2: IPv6, 3: IPv4v6
# ambr:
# downlink:
# value: 1
-# unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 3 # 0: bps, 1: Kbps, 2: Mbps, 3: Gbps, 4: Tbps
# uplink:
# value: 1
-# unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 3
# qos:
-# index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
+# index: 5 # Allowed values: 1,2,3,4,65,66,67,75,71,72,
+# # 73,74,76,5,6,7,8,9,69,70,79,80,82,83,
+# # 84,85,86
# arp:
-# priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 1 # 1: Disabled, 2:Enabled
+# priority_level: 1 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 1 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 1 # 1: Disabled, 2: Enabled
# pcc_rule:
# - qos:
-# index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
+# index: 1 # Allowed values as above
# arp:
-# priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 1 # 1: Disabled, 2:Enabled
+# priority_level: 1 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 1 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 1 # 1: Disabled, 2: Enabled
# mbr:
# downlink:
# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 1 # 0: bps, 1: Kbps, 2: Mbps, 3: Gbps, 4: Tbps
# uplink:
# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 1
# gbr:
# downlink:
# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 1
# uplink:
# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 1
# flow:
# - direction: 2
# description: "permit out icmp from any to assigned"
@@ -101,89 +114,129 @@ pcf:
# - direction: 1
# description: "permit out udp from 10.200.136.98/32 1-65535 to assigned 50021"
# - qos:
-# index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
+# index: 2 # Allowed values as above
# arp:
-# priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 2 # 1: Disabled, 2:Enabled
+# priority_level: 4 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 2 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 2 # 1: Disabled, 2: Enabled
# mbr:
# downlink:
# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 1
# uplink:
# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 1
# gbr:
# downlink:
# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 1
# uplink:
# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# - plmn_id:
-# mcc: 001
-# mnc: 01
-# slice:
-# - sst: 1 # 1,2,3,4
+# unit: 1
+#
+# - supi_range: # Filter policies by SUPI only
+# - 001010000000001-001019999999999
+# slice: # Specify slice configuration
+# - sst: 1 # Allowed values: 1, 2, 3, 4
# sd: 000001
# default_indicator: true
-# session:
+# session: # Define session based on DNN
# - name: internet
-# type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
+# type: 3 # 1: IPv4, 2: IPv6, 3: IPv4v6
# ambr:
# downlink:
# value: 1
-# unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# unit: 3 # 0: bps, 1: Kbps, 2: Mbps, 3: Gbps, 4: Tbps
# uplink:
# value: 1
# unit: 3
# qos:
-# index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
+# index: 9 # Allowed values as above
# arp:
-# priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 1 # 1: Disabled, 2:Enabled
+# priority_level: 8 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 1 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 1 # 1: Disabled, 2: Enabled
#
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-pcf.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-pcf.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: pcf.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.13 and advertise as open5gs-pcf.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.13
+# port: 7777
+# advertise: open5gs-pcf.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.13
+# port: 7777
+# advertise: open5gs-pcf.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+#
+# o Indirect Communication by Delegating to SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication with Delegated Discovery
# sbi:
# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
#
-# o Indirect communication without delegated discovery
+# o Default delegation: all communications are delegated to the SCP
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -205,6 +258,27 @@ pcf:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/pcf.key
+# cert: @sysconfdir@/open5gs/tls/pcf.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/pcf-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/pcf-client-sslkeylog.log
+# sbi:
+# server:
+# - address: pcf.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/pcrf.yaml.in b/configs/open5gs/pcrf.yaml.in
index 4cf913ab65..f9afb314ca 100644
--- a/configs/open5gs/pcrf.yaml.in
+++ b/configs/open5gs/pcrf.yaml.in
@@ -1,6 +1,7 @@
db_uri: mongodb://localhost/open5gs
logger:
- file: @localstatedir@/log/open5gs/pcrf.log
+ file:
+ path: @localstatedir@/log/open5gs/pcrf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -9,92 +10,125 @@ global:
# peer: 64
pcrf:
freeDiameter: @sysconfdir@/freeDiameter/pcrf.conf
+ metrics:
+ server:
+ - address: 127.0.0.9
+ port: 9090
################################################################################
-# Locally configured policy
+# PCRF Policy Configuration: SUPI Range Based Policies
################################################################################
#
-# o You don't have to use MongoDB if you use the policy configuration as below.
+# This configuration applies policies based solely on the UE's SUPI range.
#
-# session:
-# - name: internet
-# type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
-# ambr:
-# downlink:
-# value: 1
-# unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# uplink:
-# value: 1
-# unit: 3
-# qos:
-# index: 9 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
-# arp:
-# priority_level: 8 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 1 # 1: Disabled, 2:Enabled
-# - name: ims
-# type: 3 # 1:IPv4, 2:IPv6, 3:IPv4v6
-# ambr:
-# downlink:
-# value: 1
-# unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# uplink:
-# value: 1
-# unit: 3 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# qos:
-# index: 5 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
-# arp:
-# priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 1 # 1: Disabled, 2:Enabled
-# pcc_rule:
-# - qos:
-# index: 1 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
+# supi_range: Specifies one or more ranges of SUPIs.
+# session: Defines the session configuration for each DNN.
+#
+# Example:
+#
+# policy:
+# - supi_range: # Filter policies by SUPI
+# - 999700000000001-999709999999999
+# - 315010000000001-315010999999999
+# session: # Define session based on DNN
+# - name: internet
+# type: 3 # 1: IPv4, 2: IPv6, 3: IPv4v6
+# ambr:
+# downlink:
+# value: 1
+# unit: 3 # 0: bps, 1: Kbps, 2: Mbps, 3: Gbps, 4: Tbps
+# uplink:
+# value: 1
+# unit: 3
+# qos:
+# index: 9 # Allowed values: 1,2,3,4,65,66,67,75,71,72,
+# # 73,74,76,5,6,7,8,9,69,70,79,80,82,83,
+# # 84,85,86
# arp:
-# priority_level: 1 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 1 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 1 # 1: Disabled, 2:Enabled
-# mbr:
-# downlink:
-# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# uplink:
-# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# gbr:
-# downlink:
-# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# uplink:
-# value: 82
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# flow:
-# - direction: 2
-# description: "permit out icmp from any to assigned"
-# - direction: 1
-# description: "permit out icmp from any to assigned"
-# - direction: 2
-# description: "permit out udp from 10.200.136.98/32 23455 to assigned 1-65535"
-# - direction: 1
-# description: "permit out udp from 10.200.136.98/32 1-65535 to assigned 50021"
-# - qos:
-# index: 2 # 1, 2, 3, 4, 65, 66, 67, 75, 71, 72, 73, 74, 76, 5, 6, 7, 8, 9, 69, 70, 79, 80, 82, 83, 84, 85, 86
+# priority_level: 8 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 1 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 1 # 1: Disabled, 2: Enabled
+# - name: ims
+# type: 3 # 1: IPv4, 2: IPv6, 3: IPv4v6
+# ambr:
+# downlink:
+# value: 1
+# unit: 3
+# uplink:
+# value: 1
+# unit: 3
+# qos:
+# index: 5 # Allowed values as above
# arp:
-# priority_level: 4 # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
-# pre_emption_vulnerability: 2 # 1: Disabled, 2:Enabled
-# pre_emption_capability: 2 # 1: Disabled, 2:Enabled
-# mbr:
-# downlink:
-# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# uplink:
-# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# gbr:
-# downlink:
-# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
-# uplink:
-# value: 802
-# unit: 1 # 0:bps, 1:Kbps, 2:Mbps, 3:Gbps, 4:Tbps
+# priority_level: 1 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 1 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 1 # 1: Disabled, 2: Enabled
+# pcc_rule:
+# - qos:
+# index: 1 # Allowed values as above
+# arp:
+# priority_level: 1
+# pre_emption_vulnerability: 1
+# pre_emption_capability: 1
+# mbr:
+# downlink:
+# value: 82
+# unit: 1 # 0: bps, 1: Kbps, 2: Mbps, 3: Gbps, 4: Tbps
+# uplink:
+# value: 82
+# unit: 1
+# gbr:
+# downlink:
+# value: 82
+# unit: 1
+# uplink:
+# value: 82
+# unit: 1
+# flow:
+# - direction: 2
+# description: "permit out icmp from any to assigned"
+# - direction: 1
+# description: "permit out icmp from any to assigned"
+# - direction: 2
+# description: "permit out udp from 10.200.136.98/32 23455 to assigned 1-65535"
+# - direction: 1
+# description: "permit out udp from 10.200.136.98/32 1-65535 to assigned 50021"
+# - qos:
+# index: 2 # Allowed values as above
+# arp:
+# priority_level: 4 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 2 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 2 # 1: Disabled, 2: Enabled
+# mbr:
+# downlink:
+# value: 802
+# unit: 1
+# uplink:
+# value: 802
+# unit: 1
+# gbr:
+# downlink:
+# value: 802
+# unit: 1
+# uplink:
+# value: 802
+# unit: 1
#
+# - supi_range: # Filter policies by SUPI only
+# - 001010000000001-001019999999999
+# session: # Define session based on DNN
+# - name: internet
+# type: 3 # 1: IPv4, 2: IPv6, 3: IPv4v6
+# ambr:
+# downlink:
+# value: 1
+# unit: 3
+# uplink:
+# value: 1
+# unit: 3
+# qos:
+# index: 9 # Allowed values as above
+# arp:
+# priority_level: 8 # Allowed values: 1 to 15
+# pre_emption_vulnerability: 1 # 1: Disabled, 2: Enabled
+# pre_emption_capability: 1 # 1: Disabled, 2: Enabled
diff --git a/configs/open5gs/scp.yaml.in b/configs/open5gs/scp.yaml.in
index 3388d8b053..b2d4795d04 100644
--- a/configs/open5gs/scp.yaml.in
+++ b/configs/open5gs/scp.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/scp.log
+ file:
+ path: @localstatedir@/log/open5gs/scp.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -62,27 +63,77 @@ scp:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-scp.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-scp.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: scp.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.200 and advertise as open5gs-scp.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.200
+# port: 7777
+# advertise: open5gs-scp.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.200
+# port: 7777
+# advertise: open5gs-scp.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+#
+# o Indirect Communication by Delegating to Next-SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# scp:
+# next: no # Do not delegate to SCP for next-hop
+#
+# o Indirect Communication with Delegation
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
+#
+# o Default delegation: all communications are delegated to the Next-SCP
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -104,6 +155,27 @@ scp:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/scp.key
+# cert: @sysconfdir@/open5gs/tls/scp.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/scp-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/scp-client-sslkeylog.log
+# sbi:
+# server:
+# - address: scp.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/sepp1.yaml.in b/configs/open5gs/sepp1.yaml.in
index 7ff9dde81f..46d774ca5d 100644
--- a/configs/open5gs/sepp1.yaml.in
+++ b/configs/open5gs/sepp1.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/sepp1.log
+ file:
+ path: @localstatedir@/log/open5gs/sepp1.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -147,6 +148,36 @@ sepp:
# uri: https://sepp2.localdomain
# resolve: 127.0.2.251
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# private_key: @sysconfdir@/open5gs/tls/sepp1.key
+# cert: @sysconfdir@/open5gs/tls/sepp1.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/sepp1-server-sslkeylog.log
+# client:
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/sepp1-client-sslkeylog.log
+# sbi:
+# server:
+# - address: 127.0.1.250
+# port: 7777
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+# n32:
+# server:
+# - sender: sepp1.localdomain
+# scheme: https
+# address: 127.0.1.251
+# client:
+# sepp:
+# - receiver: sepp2.localdomain
+# uri: https://sepp2.localdomain
+# resolve: 127.0.2.251
+#
# o Add client TLS verification to N32 interface
# default:
# tls:
diff --git a/configs/open5gs/sepp2.yaml.in b/configs/open5gs/sepp2.yaml.in
index 9a381ca5d1..2b67f3f35c 100644
--- a/configs/open5gs/sepp2.yaml.in
+++ b/configs/open5gs/sepp2.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/sepp2.log
+ file:
+ path: @localstatedir@/log/open5gs/sepp2.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -13,8 +14,10 @@ sepp:
server:
private_key: @sysconfdir@/open5gs/tls/sepp2.key
cert: @sysconfdir@/open5gs/tls/sepp2.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/sepp2-server-sslkeylog.log
client:
cacert: @sysconfdir@/open5gs/tls/ca.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/sepp2-client-sslkeylog.log
sbi:
server:
- address: 127.0.2.250
@@ -147,6 +150,36 @@ sepp:
# uri: https://sepp1.localdomain
# resolve: 127.0.1.251
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# private_key: @sysconfdir@/open5gs/tls/sepp2.key
+# cert: @sysconfdir@/open5gs/tls/sepp2.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/sepp2-server-sslkeylog.log
+# client:
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/sepp2-client-sslkeylog.log
+# sbi:
+# server:
+# - address: 127.0.2.250
+# port: 7777
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+# n32:
+# server:
+# - sender: sepp2.localdomain
+# scheme: https
+# address: 127.0.2.251
+# client:
+# sepp:
+# - receiver: sepp1.localdomain
+# uri: https://sepp1.localdomain
+# resolve: 127.0.1.251
+#
# o Add client TLS verification to N32 interface
# default:
# tls:
diff --git a/configs/open5gs/sgwc.yaml.in b/configs/open5gs/sgwc.yaml.in
index 9ccdaa0e84..bb8fee70e9 100644
--- a/configs/open5gs/sgwc.yaml.in
+++ b/configs/open5gs/sgwc.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/sgwc.log
+ file:
+ path: @localstatedir@/log/open5gs/sgwc.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
diff --git a/configs/open5gs/sgwu.yaml.in b/configs/open5gs/sgwu.yaml.in
index 9d72c92f85..dc9054260b 100644
--- a/configs/open5gs/sgwu.yaml.in
+++ b/configs/open5gs/sgwu.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/sgwu.log
+ file:
+ path: @localstatedir@/log/open5gs/sgwu.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in
index 96f641bd16..e47752393f 100644
--- a/configs/open5gs/smf.yaml.in
+++ b/configs/open5gs/smf.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/smf.log
+ file:
+ path: @localstatedir@/log/open5gs/smf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -34,8 +35,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -183,43 +186,83 @@ smf:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-smf.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-smf.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
+# sbi:
+# server:
+# - address: smf.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.4 and advertise as open5gs-smf.svc.local
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: 127.0.0.4
+# port: 7777
+# advertise: open5gs-smf.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.4
+# port: 7777
+# advertise: open5gs-smf.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication by Delegating to SCP
# sbi:
# client:
# scp:
# - uri: http://127.0.0.200:7777
#
-# o Indirect communication without delegated discovery
+# o Indirect Communication without Delegation
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
+#
+# o Indirect Communication with Delegated Discovery
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
+#
+# o Default delegation: all communications are delegated to the SCP
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -241,6 +284,27 @@ smf:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/smf.key
+# cert: @sysconfdir@/open5gs/tls/smf.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/smf-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/smf-client-sslkeylog.log
+# sbi:
+# server:
+# - address: smf.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
@@ -327,23 +391,26 @@ smf:
# o Specific DNN/APN(e.g 'ims') uses 10.46.0.1/16, 2001:db8:babe::1/48
# (If the UE has unknown DNN/APN(not internet/ims), SMF/UPF will crash.)
# session:
-# - subnet: 10.45.0.1/16
+# - subnet: 10.45.0.0/16
+# gateway: 10.45.0.1
# dnn: internet
-# - subnet: 2001:db8:cafe::1/48
+# - subnet: 2001:db8:cafe::/48
# dnn: internet
-# - subnet: 10.46.0.1/16
+# - subnet: 10.46.0.0/16
+# gateway: 10.46.0.1
# dnn: ims
-# - subnet: 2001:db8:babe::1/48
+# - subnet: 2001:db8:babe::/48
# dnn: ims
#
# o Pool Range
# session:
-# - subnet: 10.45.0.1/16
+# - subnet: 10.45.0.0/16
+# gateway: 10.45.0.1
# range:
# - 10.45.0.100-10.45.0.200
# - 10.45.1.100-
# - -10.45.0.200
-# - subnet: 2001:db8:cafe::1/48
+# - subnet: 2001:db8:cafe::/48
# range:
# - 2001:db8:cafe:a0::0-2001:db8:cafe:b0::0
# - 2001:db8:cafe:c0::0-2001:db8:cafe:d0::0
diff --git a/configs/open5gs/udm.yaml.in b/configs/open5gs/udm.yaml.in
index 9af015c00c..395d041f69 100644
--- a/configs/open5gs/udm.yaml.in
+++ b/configs/open5gs/udm.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/udm.log
+ file:
+ path: @localstatedir@/log/open5gs/udm.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -37,7 +38,6 @@ udm:
scp:
- uri: http://127.0.0.200:7777
-#
################################################################################
# Home Network Public Key
################################################################################
@@ -81,43 +81,83 @@ udm:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-udm.svc.local
+# sbi:
+# server:
+# - dev:eth0
+# advertise: open5gs-udm.svc.local
+#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - dev: eth0
+# - address: udm.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.12 and advertise as open5gs-udm.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.12
+# port: 7777
# advertise: open5gs-udm.svc.local
#
+# o Bind to port 7777 but advertise with a different port number 8888
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: 127.0.0.12
+# port: 7777
+# advertise: open5gs-udm.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication by Delegating to SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
# sbi:
# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
#
-# o Indirect communication without delegated discovery
+# o Indirect Communication with Delegated Discovery
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
+#
+# o Default delegation: all communications are delegated to the SCP
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -139,6 +179,27 @@ udm:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/udm.key
+# cert: @sysconfdir@/open5gs/tls/udm.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/udm-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/udm-client-sslkeylog.log
+# sbi:
+# server:
+# - address: udm.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/udr.yaml.in b/configs/open5gs/udr.yaml.in
index 2c2e57bee9..cfc41286cb 100644
--- a/configs/open5gs/udr.yaml.in
+++ b/configs/open5gs/udr.yaml.in
@@ -1,6 +1,7 @@
db_uri: mongodb://localhost/open5gs
logger:
- file: @localstatedir@/log/open5gs/udr.log
+ file:
+ path: @localstatedir@/log/open5gs/udr.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -22,43 +23,83 @@ udr:
################################################################################
# SBI Server
################################################################################
-# o Override SBI address to be advertised to NRF
+# o Bind to the address on the eth0 and advertise as open5gs-udr.svc.local
# sbi:
# server:
-# - dev: eth0
+# - dev:eth0
# advertise: open5gs-udr.svc.local
#
+# o Specify a custom port number 7777 while binding to the given address
# sbi:
# server:
-# - address: localhost
-# advertise:
-# - 127.0.0.99
-# - ::1
+# - address: udr.localdomain
+# port: 7777
+#
+# o Bind to 127.0.0.20 and advertise as open5gs-udr.svc.local
+# sbi:
+# server:
+# - address: 127.0.0.20
+# port: 7777
+# advertise: open5gs-udr.svc.local
+#
+# o Bind to port 7777 but advertise with a different port number 8888
+# sbi:
+# server:
+# - address: 127.0.0.20
+# port: 7777
+# advertise: open5gs-udr.svc.local:8888
#
################################################################################
# SBI Client
################################################################################
-# o Direct communication with NRF interaction
+# o Direct Communication with NRF
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
#
-# o Indirect communication with delegated discovery
+# o Indirect Communication by Delegating to SCP
+# sbi:
+# client:
+# scp:
+# - uri: http://127.0.0.200:7777
+#
+# o Indirect Communication without Delegation
+# sbi:
+# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
+# scp:
+# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: no # Directly communicate NRF discovery
+# scp:
+# next: no # Do not delegate to SCP for next-hop
+#
+# o Indirect Communication with Delegated Discovery
# sbi:
# client:
+# nrf:
+# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
+# delegated:
+# nrf:
+# nfm: no # Directly communicate NRF management functions
+# disc: yes # Delegate discovery to SCP
+# scp:
+# next: yes # Delegate to SCP for next-hop communications
#
-# o Indirect communication without delegated discovery
+# o Default delegation: all communications are delegated to the SCP
# sbi:
# client:
# nrf:
# - uri: http://127.0.0.10:7777
# scp:
# - uri: http://127.0.0.200:7777
-# discovery:
-# delegated: no
+# # No 'delegated' section; defaults to AUTO delegation
#
################################################################################
# HTTPS scheme with TLS
@@ -80,6 +121,27 @@ udr:
# nrf:
# - uri: https://nrf.localdomain
#
+# o Enable SSL key logging for Wireshark
+# - This configuration allows capturing SSL/TLS session keys
+# for debugging or analysis purposes using Wireshark.
+# default:
+# tls:
+# server:
+# scheme: https
+# private_key: @sysconfdir@/open5gs/tls/udr.key
+# cert: @sysconfdir@/open5gs/tls/udr.crt
+# sslkeylogfile: @localstatedir@/log/open5gs/tls/udr-server-sslkeylog.log
+# client:
+# scheme: https
+# cacert: @sysconfdir@/open5gs/tls/ca.crt
+# client_sslkeylogfile: @localstatedir@/log/open5gs/tls/udr-client-sslkeylog.log
+# sbi:
+# server:
+# - address: udr.localdomain
+# client:
+# nrf:
+# - uri: https://nrf.localdomain
+#
# o Add client TLS verification
# default:
# tls:
diff --git a/configs/open5gs/upf.yaml.in b/configs/open5gs/upf.yaml.in
index 353d7bb642..d7c6d56487 100644
--- a/configs/open5gs/upf.yaml.in
+++ b/configs/open5gs/upf.yaml.in
@@ -1,5 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/upf.log
+ file:
+ path: @localstatedir@/log/open5gs/upf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -18,8 +19,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
@@ -70,14 +73,16 @@ upf:
# $ sudo ip addr add 2001:db8:babe::1/48 dev ogstun3
#
# session:
-# - subnet: 10.45.0.1/16
+# - subnet: 10.45.0.0/16
+# gateway: 10.45.0.1
# dnn: internet
-# - subnet: 2001:db8:cafe::1/48
+# - subnet: 2001:db8:cafe::/48
# dnn: internet
# dev: ogstun2
-# - subnet: 10.46.0.1/16
+# - subnet: 10.46.0.0/16
+# gateway: 10.46.0.1
# dnn: ims
# dev: ogstun3
-# - subnet: 2001:db8:babe::1/48
+# - subnet: 2001:db8:babe::/48
# dnn: ims
# dev: ogstun3
diff --git a/configs/sample.yaml.in b/configs/sample.yaml.in
index 2e7cfb8bd5..12f3f68594 100644
--- a/configs/sample.yaml.in
+++ b/configs/sample.yaml.in
@@ -118,8 +118,10 @@ smf:
- address: 127.0.0.4
port: 9090
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -203,8 +205,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/slice.yaml.in b/configs/slice.yaml.in
index 87a2731335..b8ca7e1bfb 100644
--- a/configs/slice.yaml.in
+++ b/configs/slice.yaml.in
@@ -110,8 +110,10 @@ smf:
server:
- address: 127.0.0.4
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -194,8 +196,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/srsenb.yaml.in b/configs/srsenb.yaml.in
index 113c2177e6..9f2185dcde 100644
--- a/configs/srsenb.yaml.in
+++ b/configs/srsenb.yaml.in
@@ -67,7 +67,7 @@ mme:
tai:
- plmn_id:
mcc: 901
- mnc: 70
+ mnc: 70
tac: 7
security:
integrity_order : [ EIA2, EIA1, EIA0 ]
@@ -107,8 +107,10 @@ smf:
server:
- address: 127.0.0.4
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -184,8 +186,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/systemd/99-open5gs.network b/configs/systemd/99-open5gs.network
index eed7ce116c..215eb362f6 100644
--- a/configs/systemd/99-open5gs.network
+++ b/configs/systemd/99-open5gs.network
@@ -5,6 +5,14 @@ Name=ogstun
Address=10.45.0.1/16
Address=2001:db8:cafe::1/48
+[Route]
+Gateway=0.0.0.0
+Destination=10.45.0.0/16
+
+[Route]
+Gateway=::
+Destination=2001:db8:cafe::0/48
+
[Link]
MTUBytes=1400
RequiredForOnline=false
diff --git a/configs/transfer.yaml.in b/configs/transfer.yaml.in
new file mode 100644
index 0000000000..d91c0bdbcf
--- /dev/null
+++ b/configs/transfer.yaml.in
@@ -0,0 +1,271 @@
+db_uri: mongodb://localhost/open5gs
+
+logger:
+
+test:
+ serving:
+ - plmn_id:
+ mcc: 999
+ mnc: 70
+
+global:
+ parameter:
+# no_nrf: true
+# no_scp: true
+ no_sepp: true
+# no_amf: true
+# no_smf: true
+# no_upf: true
+# no_ausf: true
+# no_udm: true
+# no_pcf: true
+# no_nssf: true
+# no_bsf: true
+# no_udr: true
+ no_mme: true
+ no_sgwc: true
+ no_sgwu: true
+ no_pcrf: true
+ no_hss: true
+
+smf:
+ sbi:
+ server:
+ - address: 127.0.0.4
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+ pfcp:
+ server:
+ - address: 127.0.0.4
+ client:
+ upf:
+ - address: 127.0.0.7
+ gtpc:
+ server:
+ - address: 127.0.0.4
+ gtpu:
+ server:
+ - address: 127.0.0.4
+ metrics:
+ server:
+ - address: 127.0.0.4
+ port: 9090
+ session:
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+ - 2001:4860:4860::8888
+ - 2001:4860:4860::8844
+ mtu: 1400
+ freeDiameter:
+ identity: smf.localdomain
+ realm: localdomain
+ listen_on: 127.0.0.4
+ no_fwd: true
+ load_extension:
+ - module: @build_subprojects_freeDiameter_extensions_dir@/dbg_msg_dumps.fdx
+ conf: 0x8888
+ - module: @build_subprojects_freeDiameter_extensions_dir@/dict_rfc5777.fdx
+ - module: @build_subprojects_freeDiameter_extensions_dir@/dict_mip6i.fdx
+ - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nasreq.fdx
+ - module: @build_subprojects_freeDiameter_extensions_dir@/dict_nas_mipv6.fdx
+ - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca.fdx
+ - module: @build_subprojects_freeDiameter_extensions_dir@/dict_dcca_3gpp/dict_dcca_3gpp.fdx
+ connect:
+ - identity: pcrf.localdomain
+ address: 127.0.0.9
+
+amf:
+ sbi:
+ server:
+ - address: 127.0.0.5
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+ ngap:
+ server:
+ - address: 127.0.0.5
+ metrics:
+ server:
+ - address: 127.0.0.5
+ port: 9090
+ guami:
+ - plmn_id:
+ mcc: 999
+ mnc: 70
+ amf_id:
+ region: 2
+ set: 1
+ pointer: 31
+ tai:
+ - plmn_id:
+ mcc: 999
+ mnc: 70
+ tac: 1
+ plmn_support:
+ - plmn_id:
+ mcc: 999
+ mnc: 70
+ s_nssai:
+ - sst: 1
+ security:
+ integrity_order : [ NIA2, NIA1, NIA0 ]
+ ciphering_order : [ NEA0, NEA1, NEA2 ]
+ network_name:
+ full: Open5GS
+ amf_name: open5gs-amf0
+ time:
+ t3512:
+ value: 540 # 9 mintues * 60 = 540 seconds
+
+# amf #2
+amf:
+ sbi:
+ server:
+ - address: 127.0.0.50
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+ ngap:
+ server:
+ - address: 127.0.0.50
+ metrics:
+ server:
+ - address: 127.0.0.50
+ port: 9090
+ guami:
+ - plmn_id:
+ mcc: 999
+ mnc: 70
+ amf_id:
+ region: 2
+ set: 1
+ pointer: 30
+ tai:
+ - plmn_id:
+ mcc: 999
+ mnc: 70
+ tac: 1
+ plmn_support:
+ - plmn_id:
+ mcc: 999
+ mnc: 70
+ s_nssai:
+ - sst: 1
+ security:
+ integrity_order : [ NIA2, NIA1, NIA0 ]
+ ciphering_order : [ NEA0, NEA1, NEA2 ]
+ network_name:
+ full: Open5GS
+ amf_name: open5gs-amf1
+ time:
+ t3512:
+ value: 540 # 9 mintues * 60 = 540 seconds
+
+upf:
+ pfcp:
+ server:
+ - address: 127.0.0.7
+ gtpu:
+ server:
+ - address: 127.0.0.7
+ session:
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
+ metrics:
+ server:
+ - address: 127.0.0.7
+ port: 9090
+
+nrf:
+ sbi:
+ server:
+ - address: 127.0.0.10
+ port: 7777
+
+scp:
+ sbi:
+ server:
+ - address: 127.0.0.200
+ port: 7777
+ client:
+ nrf:
+ - uri: http://127.0.0.10:7777
+
+ausf:
+ sbi:
+ server:
+ - address: 127.0.0.11
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+
+udm:
+ hnet:
+ - id: 1
+ scheme: 1
+ key: @build_configs_dir@/open5gs/hnet/curve25519-1.key
+ - id: 2
+ scheme: 2
+ key: @build_configs_dir@/open5gs/hnet/secp256r1-2.key
+ sbi:
+ server:
+ - address: 127.0.0.12
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+
+pcf:
+ sbi:
+ server:
+ - address: 127.0.0.13
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+ metrics:
+ server:
+ - address: 127.0.0.13
+ port: 9090
+
+nssf:
+ sbi:
+ server:
+ - address: 127.0.0.14
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+ nsi:
+ - uri: http://127.0.0.10:7777
+ s_nssai:
+ sst: 1
+bsf:
+ sbi:
+ server:
+ - address: 127.0.0.15
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
+
+udr:
+ sbi:
+ server:
+ - address: 127.0.0.20
+ port: 7777
+ client:
+ scp:
+ - uri: http://127.0.0.200:7777
diff --git a/configs/volte.yaml.in b/configs/volte.yaml.in
index a2f1106dca..bad3225da8 100644
--- a/configs/volte.yaml.in
+++ b/configs/volte.yaml.in
@@ -107,8 +107,10 @@ smf:
server:
- address: 127.0.0.4
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
dns:
- 8.8.8.8
- 8.8.4.4
@@ -187,8 +189,10 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
+ gateway: 2001:db8:cafe::1
metrics:
server:
- address: 127.0.0.7
diff --git a/configs/vonr.yaml.in b/configs/vonr.yaml.in
index 9108f0bcca..070b9d3657 100644
--- a/configs/vonr.yaml.in
+++ b/configs/vonr.yaml.in
@@ -110,8 +110,9 @@ smf:
server:
- address: 127.0.0.4
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
dns:
- 8.8.8.8
- 8.8.4.4
@@ -193,8 +194,9 @@ upf:
server:
- address: 127.0.0.7
session:
- - subnet: 10.45.0.1/16
- - subnet: 2001:db8:cafe::1/48
+ - subnet: 10.45.0.0/16
+ gateway: 10.45.0.1
+ - subnet: 2001:db8:cafe::/48
metrics:
server:
- address: 127.0.0.7
diff --git a/debian/changelog b/debian/changelog
index c21a99277b..8983f34e31 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,63 @@
+open5gs (2.7.2) unstable; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Sun, 04 Aug 2024 21:03:45 +0900
+
+open5gs (2.7.2~jammy1) jammy; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Sun, 04 Aug 2024 21:02:06 +0900
+
+open5gs (2.7.2~focal1) focal; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Sun, 04 Aug 2024 21:00:24 +0900
+
+open5gs (2.7.2~noble1) noble; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Sun, 04 Aug 2024 20:58:44 +0900
+
+open5gs (2.7.2~bionic1) bionic; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Sun, 04 Aug 2024 20:56:49 +0900
+
+open5gs (2.7.1) unstable; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Fri, 19 Apr 2024 21:21:46 +0900
+
+open5gs (2.7.1~mantic) mantic; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Fri, 19 Apr 2024 21:18:53 +0900
+
+open5gs (2.7.1~bionic) bionic; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Fri, 19 Apr 2024 21:16:21 +0900
+
+open5gs (2.7.1~jammy) jammy; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Fri, 19 Apr 2024 21:11:30 +0900
+
+open5gs (2.7.1~focal) focal; urgency=medium
+
+ * Bug Fixed
+
+ -- Sukchan Lee Fri, 19 Apr 2024 21:08:46 +0900
+
open5gs (2.7.0) unstable; urgency=medium
* 5G Roaming with SEPP
diff --git a/debian/control b/debian/control
index 8cb84efbdb..d8c28b9ea2 100644
--- a/debian/control
+++ b/debian/control
@@ -13,7 +13,7 @@ Build-Depends: debhelper (>= 11),
libgnutls28-dev,
libgcrypt-dev,
libssl-dev,
- libidn11-dev,
+ libidn-dev | libidn11-dev,
libmongoc-dev,
libbson-dev,
libsctp-dev,
diff --git a/debian/open5gs-common.dirs b/debian/open5gs-common.dirs
index d5b197ccfa..be7656f72e 100644
--- a/debian/open5gs-common.dirs
+++ b/debian/open5gs-common.dirs
@@ -1 +1 @@
-var/log/open5gs
+var/log/open5gs/tls
diff --git a/docker/alpine/latest/dev/Dockerfile b/docker/alpine/latest/dev/Dockerfile
index 9c97df3392..b0c74303a9 100644
--- a/docker/alpine/latest/dev/Dockerfile
+++ b/docker/alpine/latest/dev/Dockerfile
@@ -13,7 +13,7 @@ RUN apk update && \
sudo
ARG username=acetcom
-RUN adduser -u 1000 acetcom -D && \
+RUN adduser -u 2000 acetcom -D && \
echo "${username} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${username} && \
chmod 0440 /etc/sudoers.d/${username}
diff --git a/docker/debian/bookworm b/docker/debian/bookworm
new file mode 120000
index 0000000000..b9bc2fdcb1
--- /dev/null
+++ b/docker/debian/bookworm
@@ -0,0 +1 @@
+latest
\ No newline at end of file
diff --git a/docker/debian/latest/base/Dockerfile b/docker/debian/latest/base/Dockerfile
index 072628d163..bac24f0b58 100644
--- a/docker/debian/latest/base/Dockerfile
+++ b/docker/debian/latest/base/Dockerfile
@@ -22,7 +22,6 @@ RUN apt-get update && \
libgnutls28-dev \
libgcrypt-dev \
libssl-dev \
- libidn11-dev \
libmongoc-dev \
libbson-dev \
libyaml-dev \
@@ -35,4 +34,9 @@ RUN apt-get update && \
ca-certificates \
netbase \
pkg-config && \
- apt-get clean
+ if apt-cache show libidn-dev > /dev/null 2>&1; then \
+ apt-get install -y --no-install-recommends libidn-dev; \
+ else \
+ apt-get install -y --no-install-recommends libidn11-dev; \
+ fi && \
+ apt-get clean && rm -rf /var/lib/apt/lists/*
diff --git a/docker/debian/latest/dev/Dockerfile b/docker/debian/latest/dev/Dockerfile
index d076975451..cc80b0dfeb 100644
--- a/docker/debian/latest/dev/Dockerfile
+++ b/docker/debian/latest/dev/Dockerfile
@@ -27,7 +27,7 @@ RUN apt-get update && \
COPY setup.sh /root
ARG username=acetcom
-RUN useradd -m --uid=1000 ${username} && \
+RUN useradd -m --uid=2000 ${username} && \
echo "${username} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${username} && \
chmod 0440 /etc/sudoers.d/${username}
diff --git a/docker/fedora/latest/dev/Dockerfile b/docker/fedora/latest/dev/Dockerfile
index 337f05af80..66b1283fdc 100644
--- a/docker/fedora/latest/dev/Dockerfile
+++ b/docker/fedora/latest/dev/Dockerfile
@@ -16,7 +16,7 @@ RUN dnf -y install \
COPY setup.sh /root
ARG username=acetcom
-RUN useradd -m --uid=1000 ${username} && \
+RUN useradd -m --uid=2000 ${username} && \
echo "${username} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${username} && \
chmod 0440 /etc/sudoers.d/${username}
diff --git a/docker/i386/debian b/docker/i386/debian
new file mode 120000
index 0000000000..3863e7488e
--- /dev/null
+++ b/docker/i386/debian
@@ -0,0 +1 @@
+../debian
\ No newline at end of file
diff --git a/docker/i386/ubuntu b/docker/i386/ubuntu
new file mode 120000
index 0000000000..47aec456ec
--- /dev/null
+++ b/docker/i386/ubuntu
@@ -0,0 +1 @@
+../ubuntu
\ No newline at end of file
diff --git a/docker/ubuntu/latest/base/Dockerfile b/docker/ubuntu/latest/base/Dockerfile
index 072628d163..bac24f0b58 100644
--- a/docker/ubuntu/latest/base/Dockerfile
+++ b/docker/ubuntu/latest/base/Dockerfile
@@ -22,7 +22,6 @@ RUN apt-get update && \
libgnutls28-dev \
libgcrypt-dev \
libssl-dev \
- libidn11-dev \
libmongoc-dev \
libbson-dev \
libyaml-dev \
@@ -35,4 +34,9 @@ RUN apt-get update && \
ca-certificates \
netbase \
pkg-config && \
- apt-get clean
+ if apt-cache show libidn-dev > /dev/null 2>&1; then \
+ apt-get install -y --no-install-recommends libidn-dev; \
+ else \
+ apt-get install -y --no-install-recommends libidn11-dev; \
+ fi && \
+ apt-get clean && rm -rf /var/lib/apt/lists/*
diff --git a/docker/ubuntu/latest/dev/Dockerfile b/docker/ubuntu/latest/dev/Dockerfile
index 970dddb72a..d599439bdf 100644
--- a/docker/ubuntu/latest/dev/Dockerfile
+++ b/docker/ubuntu/latest/dev/Dockerfile
@@ -33,7 +33,7 @@ RUN apt-get update && \
COPY setup.sh /root
ARG username=acetcom
-RUN useradd -m --uid=1000 ${username} && \
+RUN useradd -m --uid=2000 ${username} && \
echo "${username} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${username} && \
chmod 0440 /etc/sudoers.d/${username}
diff --git a/docker/ubuntu/lunar b/docker/ubuntu/lunar
new file mode 120000
index 0000000000..b9bc2fdcb1
--- /dev/null
+++ b/docker/ubuntu/lunar
@@ -0,0 +1 @@
+latest
\ No newline at end of file
diff --git a/docker/ubuntu/noble b/docker/ubuntu/noble
new file mode 120000
index 0000000000..b9bc2fdcb1
--- /dev/null
+++ b/docker/ubuntu/noble
@@ -0,0 +1 @@
+latest
\ No newline at end of file
diff --git a/docs/_docs/guide/01-quickstart.md b/docs/_docs/guide/01-quickstart.md
index c5ec59db1b..05ad59b28c 100644
--- a/docs/_docs/guide/01-quickstart.md
+++ b/docs/_docs/guide/01-quickstart.md
@@ -233,7 +233,7 @@ MME-frDi = 127.0.0.2 :3868 for S6a
SGWC-gtpc = 127.0.0.3 :2123 for S11
SGWC-pfcp = 127.0.0.3 :8805 for Sxa
-SMF-gtpc = 127.0.0.4 :2123 for S5c, N11
+SMF-gtpc = 127.0.0.4 :2123 for S5c
SMF-gtpu = 127.0.0.4 :2152 for N4u (Sxu)
SMF-pfcp = 127.0.0.4 :8805 for N4 (Sxb)
SMF-frDi = 127.0.0.4 :3868 for Gx auth
@@ -335,10 +335,29 @@ $ sudo systemctl restart open5gs-sgwud
#### Setup a 5G Core
-You will need to modify your 5G AMF config to support your PLMN and TAC. The international test PLMN is 001/01, and the international private network PLMN is 999/99. You should stick to using either of these PLMNs unless you have been issued a PLMN by your national regulator. (This PLMN will need to be configured in your gNB).
+You will need to modify the PLMN in your NRF and AMF config, and in case of AMF, further modify the TAC information. The international test PLMN is 001/01, and the international private network PLMN is 999/99. You should stick to using either of these PLMNs unless you have been issued a PLMN by your national regulator. (This PLMN will need to be configured in your gNB).
If you are aiming to connect an external gNB to your core, you will also need to change the NGAP bind address of the AMF **and** the GTPU bind address of the UPF. If you are running an gNB stack locally, you will not need to make these changes.
+Modify [/etc/open5gs/nrf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/nrf.yaml.in) to set the Serving PLMN ID.
+
+```diff
+$ diff --git a/configs/open5gs/nrf.yaml.in b/configs/open5gs/nrf.yaml.in
+index cd9e45feb..58e8cbbce 100644
+--- a/configs/open5gs/nrf.yaml.in
++++ b/configs/open5gs/nrf.yaml.in
+@@ -10,8 +10,8 @@ global:
+ nrf:
+ serving: # 5G roaming requires PLMN in NRF
+ - plmn_id:
+- mcc: 999
+- mnc: 70
++ mcc: 001
++ mnc: 01
+ sbi:
+ server:
+ - address: 127.0.0.10
+```
Modify [/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
@@ -404,15 +423,44 @@ index e78b018f1..35a54419e 100644
After changing config files, please restart Open5GS daemons.
```bash
+$ sudo systemctl restart open5gs-nrfd
$ sudo systemctl restart open5gs-amfd
$ sudo systemctl restart open5gs-upfd
```
+#### Configure logging
+
+The Open5GS components log to `/var/log/open5gs/*.log` and to `stderr` by
+default.
+
+##### Avoid duplicate timestamps in journalctl
+
+Open5GS adds timestamps to each log line in the log file, and on `stderr`. If
+you run Open5GS with systemd and prefer looking at the logs with `journalctl`,
+then each line will have two timestamps. To fix this, disable the timestamp for
+`stderr` with the following configuration change:
+
+```diff
+diff --git a/configs/open5gs/mme.yaml.in b/configs/open5gs/mme.yaml.in
+index 87c251b9d..599032b8a 100644
+--- a/configs/open5gs/mme.yaml.in
++++ b/configs/open5gs/mme.yaml.in
+@@ -1,6 +1,9 @@
+ logger:
++ default:
++ timestamp: false
+ file:
+ path: /var/log/open5gs/mme.log
++ timestamp: true
+ # level: info # fatal|error|warn|info(default)|debug|trace
+
+ global:
+```
#### Register Subscriber Information
---
-Connect to `http://localhost:3000` and login with **admin** account.
+Connect to `http://localhost:9999` and login with **admin** account.
> Username : admin
> Password : 1423
diff --git a/docs/_docs/guide/02-building-open5gs-from-sources.md b/docs/_docs/guide/02-building-open5gs-from-sources.md
index 34154ce38a..6b5de348f0 100644
--- a/docs/_docs/guide/02-building-open5gs-from-sources.md
+++ b/docs/_docs/guide/02-building-open5gs-from-sources.md
@@ -58,10 +58,19 @@ $ sudo ip link set ogstun up
### Building Open5GS
---
-Install the dependencies for building the source code.
+Install the common dependencies for building the source code.
```bash
-$ sudo apt install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison git cmake libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson
+$ sudo apt install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison git cmake libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson
+```
+
+Install libidn-dev or libidn11-dev depending on your system
+```bash
+$ if apt-cache show libidn-dev > /dev/null 2>&1; then
+ sudo apt-get install -y --no-install-recommends libidn-dev
+else
+ sudo apt-get install -y --no-install-recommends libidn11-dev
+fi
```
Git clone.
@@ -110,6 +119,26 @@ $ cd ../
##### 5G Core
+Modify [install/etc/open5gs/nrf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/nrf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
+
+```diff
+$ diff --git a/configs/open5gs/nrf.yaml.in b/configs/open5gs/nrf.yaml.in
+index cd9e45feb..58e8cbbce 100644
+--- a/configs/open5gs/nrf.yaml.in
++++ b/configs/open5gs/nrf.yaml.in
+@@ -10,8 +10,8 @@ global:
+ nrf:
+ serving: # 5G roaming requires PLMN in NRF
+ - plmn_id:
+- mcc: 999
+- mnc: 70
++ mcc: 001
++ mnc: 01
+ sbi:
+ server:
+ - address: 127.0.0.10
+```
+
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
```diff
@@ -427,7 +456,7 @@ $ cp open5gs* /usr/bin/
For convenience, you can execute all NFs at once by using the following command.
```bash
$ ./build/tests/app/5gc ## 5G Core Only with ./build/configs/sample.yaml
-$ ./build/tests/app/epc -c ./build/configs/srslte.yaml ## EPC Only with ./build/configs/srslte.yaml
+$ ./build/tests/app/epc -c ./build/configs/srsenb.yaml ## EPC Only with ./build/configs/srsenb.yaml
$ ./build/tests/app/app ## Both 5G Core and EPC with ./build/configs/sample.yaml
```
@@ -475,7 +504,7 @@ $ PORT=7777 npm run dev
### Register Subscriber Information
---
-Connect to `http://127.0.0.1:3000` and login with **admin** account.
+Connect to `http://127.0.0.1:9999` and login with **admin** account.
> Username : admin
> Password : 1423
diff --git a/docs/_docs/platform/07-freebsd.md b/docs/_docs/platform/07-freebsd.md
index 26ec88cc53..ca9ec2aa0f 100644
--- a/docs/_docs/platform/07-freebsd.md
+++ b/docs/_docs/platform/07-freebsd.md
@@ -3,10 +3,10 @@ title: FreeBSD
head_inline: ""
---
-This guide is based on **FreeBSD-13.1-STABLE**.
+This guide is based on **FreeBSD-14.1-STABLE**.
{: .blue}
-## Install **FreeBSD-13.1-STABLE** from Vagrant box (optional)
+## Install **FreeBSD-14.1-STABLE** from Vagrant box (optional)
---
Vagrant provides a simple way to create and deploy Virtual Machines from
pre-built images using VirtualBox, libvirt, or VMWare as a hypervisor engine.
@@ -20,13 +20,13 @@ The instructions to install Vagrant are provided at
[vagrantup.com](https://www.vagrantup.com/).
-### Create a FreeBSD-13.1-STABLE Virtual Machine using Vagrant
+### Create a FreeBSD-14.1-STABLE Virtual Machine using Vagrant
---
Use the supplied `Vagrantfile` in the `vagrant` directory to create the
virtual machine.
-Note that this Vagrantfile is identical to the base FreeBSD 13 box, with
+Note that this Vagrantfile is identical to the base FreeBSD 14 box, with
the exception that the amount of virtual memory has been increased to 1GB:
```bash
@@ -37,7 +37,7 @@ vagrant up --provider virtualbox
### Log into the newly created FreeBSD VM
---
-Use SSH to log into the FreeBSD 13 VM:
+Use SSH to log into the FreeBSD 14 VM:
```bash
vagrant ssh
@@ -45,10 +45,10 @@ vagrant ssh
Note that the Open5GS source is *not* copied into the VM. The instructions
below provide the step by step instructions for setting up Open5GS for
-either a bare metal or virtual FreeBSD 13 system.
+either a bare metal or virtual FreeBSD 14 system.
The rest of the commands below are performed inside the FreeBSD VM as the
-user 'vagrant', or on your bare metal FreeBSD 13 system as any normal user.
+user 'vagrant', or on your bare metal FreeBSD 14 system as any normal user.
### Getting MongoDB
---
@@ -171,7 +171,7 @@ $ meson build --prefix=`pwd`/install
$ ninja -C build
```
-**Note:** No source code changes are required for FreeBSD 11.x version. However, in FreeBSD 12.x/13.x version, we'll getting a crash with segmentation fault when calling basename(3). To avoid this, you need to change the freeDiameter source code as below.
+**Note:** No source code changes are required for FreeBSD 11.x version. However, in FreeBSD 12.x/13.x/14.x version, we'll getting a crash with segmentation fault when calling basename(3). To avoid this, you need to change the freeDiameter source code as below.
{: .blue}
```diff
diff --git a/docs/_docs/troubleshoot/01-simple-issues.md b/docs/_docs/troubleshoot/01-simple-issues.md
index bed0d10cae..c8a7d9018b 100644
--- a/docs/_docs/troubleshoot/01-simple-issues.md
+++ b/docs/_docs/troubleshoot/01-simple-issues.md
@@ -169,7 +169,8 @@ index a70143f08..e0dba560c 100644
+++ b/configs/open5gs/amf.yaml.in
@@ -1,6 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/amf.log
+ file:
+ path: @localstatedir@/log/open5gs/amf.log
-# level: info # fatal|error|warn|info(default)|debug|trace
+ level: debug
diff --git a/docs/_docs/troubleshoot/02-now-in-github-issues.md b/docs/_docs/troubleshoot/02-now-in-github-issues.md
index 31e0ccbad8..11b1b84fca 100644
--- a/docs/_docs/troubleshoot/02-now-in-github-issues.md
+++ b/docs/_docs/troubleshoot/02-now-in-github-issues.md
@@ -10,6 +10,175 @@ head_inline: ""
}
+#### How to run wireshark from within Docker?
+
+In the following, I will explain how to run wireshark on Ubuntu 32bit.
+
+First, make the following modifications to get wireshark working.
+
+```diff
+$ diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
+index 01925303b..8d5e23a4f 100644
+--- a/docker/docker-compose.yml
++++ b/docker/docker-compose.yml
+@@ -105,7 +105,7 @@ services:
+ volumes:
+ - home:/home/${USER}
+ - ${HOME}:/mnt
+- # - /tmp/.X11-unix:/tmp/.X11-unix
++ - /tmp/.X11-unix:/tmp/.X11-unix
+ # - /etc/localtime:/etc/localtime:ro
+ # - /usr/share/zoneinfo/Europe/Helsinki:/etc/localtime:ro
+ hostname: open5gs-dev
+
+$ diff --git a/docker/ubuntu/latest/dev/Dockerfile b/docker/ubuntu/latest/dev/Dockerfile
+index 970dddb72..6902fc59c 100644
+--- a/docker/ubuntu/latest/dev/Dockerfile
++++ b/docker/ubuntu/latest/dev/Dockerfile
+@@ -23,12 +23,12 @@ RUN apt-get update && \
+ net-tools && \
+ apt-get clean
+
+-#RUN apt-get update && \
+-# apt-get install -y software-properties-common && \
+-# sudo add-apt-repository ppa:wireshark-dev/stable -y && \
+-# apt-get update && \
+-# DEBIAN_FRONTEND=noninteractive \
+-# apt-get install -y wireshark
++RUN apt-get update && \
++ apt-get install -y software-properties-common && \
++ sudo add-apt-repository ppa:wireshark-dev/stable -y && \
++ apt-get update && \
++ DEBIAN_FRONTEND=noninteractive \
++ apt-get install -y wireshark
+
+ COPY setup.sh /root
+```
+
+It allows any program run by the docker user to communicate with X windows.
+```
+$ xhost +local:docker
+```
+
+And run 32bit ubuntu like below.
+```
+$ cd docker
+$ DIST=i386/ubuntu docker compose run dev
+```
+
+#### What to do if a FATAL occurs?
+
+You may occasionally encounter a FATAL like the one below.
+
+```
+FATAL: s1ap_build_initial_context_setup_request: Assertion `E_RABToBeSetupListCtxtSUReq->list.count' failed. (../src/mme/s1ap-build.c:577)
+01/19 22:01:49.169: [core] FATAL: backtrace() returned 10 addresses (../lib/core/ogs-abort.c:37)
+./src/mme/open5gs-mmed(+0x8ef5e) [0x55f6f8a78f5e]
+./src/mme/open5gs-mmed(+0x5910b) [0x55f6f8a4310b]
+./src/mme/open5gs-mmed(+0xa4ea5) [0x55f6f8a8eea5]
+./src/mme/open5gs-mmed(+0x88b65) [0x55f6f8a72b65]
+/home/acetcom/Documents/git/open5gs/build/src/mme/../../lib/core/libogscore.so.2(ogs_fsm_dispatch+0x119) [0x7fc2362f4c2f]
+./src/mme/open5gs-mmed(+0x9e99) [0x55f6f89f3e99]
+/home/acetcom/Documents/git/open5gs/build/src/mme/../../lib/core/libogscore.so.2(+0x1199d) [0x7fc2362e599d]
+/lib/x86_64-linux-gnu/libc.so.6(+0x94ac3) [0x7fc235a94ac3]
+/lib/x86_64-linux-gnu/libc.so.6(+0x126850) [0x7fc235b26850]
+[1] 41823 IOT instruction (core dumped) ./src/mme/open5gs-mmed
+```
+
+When a FATAL occurs, Open5GS automatically calls backtrace(), and from the address information it outputs, we can see in which source code this happened. Note the addresses 0x8ef5e, 0x5910b, 0xa4ea5, 0x88b65 in the output below. You can find those addresses in the following places.
+
+```
+./src/mme/open5gs-mmed(+0x8ef5e)
+./src/mme/open5gs-mmed(+0x5910b)
+./src/mme/open5gs-mmed(+0xa4ea5)
+./src/mme/open5gs-mmed(+0x88b65)
+```
+
+And you can use the GDB tool to provide additional information. If you are in a Ubuntu environment, you can install GDB as shown below.
+```
+$ sudo apt install gdb
+```
+
+Then run gdb like below.
+
+```
+$ gdb ./src/mme/open5gs-mmed
+GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1
+Copyright (C) 2022 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+Type "show copying" and "show warranty" for details.
+This GDB was configured as "x86_64-linux-gnu".
+Type "show configuration" for configuration details.
+For bug reporting instructions, please see:
+.
+Find the GDB manual and other documentation resources online at:
+ .
+
+For help, type "help".
+Type "apropos word" to search for commands related to "word"...
+Reading symbols from ./src/mme/open5gs-mmed...
+(gdb)
+```
+
+With the address 0x8ef5e, 0x5910b, 0xa4ea5, 0x88b65 that you remembered from above and the `list` command within the GDB prompt, you can find out in which source code the problem is occurring.
+
+```
+(gdb) list *0x8ef5e
+0x8ef5e is in s1ap_build_initial_context_setup_request (../src/mme/s1ap-build.c:579).
+574 emmbuf = NULL;
+575 }
+576
+577 ogs_assert(E_RABToBeSetupListCtxtSUReq->list.count);
+578
+579 ie = CALLOC(1, sizeof(S1AP_InitialContextSetupRequestIEs_t));
+580 ASN_SEQUENCE_ADD(&InitialContextSetupRequest->protocolIEs, ie);
+581
+582 ie->id = S1AP_ProtocolIE_ID_id_UESecurityCapabilities;
+583 ie->criticality = S1AP_Criticality_reject;
+(gdb) list *0x5910b
+0x5910b is in nas_eps_send_attach_accept (../src/mme/nas-path.c:171).
+166 * the MME shall delete the stored UE radio capability information
+167 * or the UE radio capability ID, if any.
+168 */
+169 OGS_ASN_CLEAR_DATA(&mme_ue->ueRadioCapability);
+170
+171 s1apbuf = s1ap_build_initial_context_setup_request(mme_ue, emmbuf);
+172 if (!s1apbuf) {
+173 ogs_error("s1ap_build_initial_context_setup_request() failed");
+174 return OGS_ERROR;
+175 }
+(gdb) list *0xa4ea5
+0xa4ea5 is in mme_s11_handle_create_session_response (../src/mme/mme-s11-handler.c:436).
+431 ogs_assert(OGS_OK ==
+432 sgsap_send_location_update_request(mme_ue));
+433 } else {
+434 ogs_assert(OGS_PDU_SESSION_TYPE_IS_VALID(
+435 session->paa.session_type));
+436 r = nas_eps_send_attach_accept(mme_ue);
+437 ogs_expect(r == OGS_OK);
+438 ogs_assert(r != OGS_ERROR);
+439 }
+440
+(gdb) list *0x88b65
+0x88b65 is in mme_state_operational (../src/mme/mme-sm.c:552).
+547 break;
+548 case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE:
+549 if (!gtp_message.h.teid_presence) ogs_error("No TEID");
+550 mme_s11_handle_create_session_response(
+551 xact, mme_ue, >p_message.create_session_response);
+552 break;
+553 case OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE:
+554 if (!gtp_message.h.teid_presence) ogs_error("No TEID");
+555 mme_s11_handle_modify_bearer_response(
+556 xact, mme_ue, >p_message.modify_bearer_response);
+(gdb)
+```
+
+Reporting this information to a github issue or discussion will help others troubleshoot the issue.
+
+
#### MME sends Attach reject(EMM-Cause:15) with Diameter error(Result-Code:3002)
If you see the Attach reject(EMM-Cause:15] with Diameter error(Result-Code:3002), it means that HSS is not running.
@@ -316,7 +485,8 @@ index a70143f08..e0dba560c 100644
+++ b/configs/open5gs/amf.yaml.in
@@ -1,6 +1,6 @@
logger:
- file: @localstatedir@/log/open5gs/amf.log
+ file:
+ path: @localstatedir@/log/open5gs/amf.log
-# level: info # fatal|error|warn|info(default)|debug|trace
+ level: debug
@@ -1186,7 +1356,7 @@ $ DIST=debian TAG=stretch docker-compose run dev
```bash
$ sudo dpkg --add-architecture armel
$ sudo apt update
-$ sudo apt install libsctp-dev:armel libyaml-dev:armel libgnutls28-dev:armel libgcrypt-dev:armel libidn11-dev:armel libssl-dev:armel libmongoc-dev:armel libbson-dev:armel
+$ sudo apt install libsctp-dev:armel libyaml-dev:armel libgnutls28-dev:armel libgcrypt-dev:armel libidn-dev:armel libssl-dev:armel libmongoc-dev:armel libbson-dev:armel
$ sudo apt install crossbuild-essential-armel
$ sudo apt install qemu
$ git clone https://github.com/{{ site.github_username }}/open5gs
diff --git a/docs/_docs/tutorial/01-your-first-lte.md b/docs/_docs/tutorial/01-your-first-lte.md
index fc7e98c58b..29c8584cb4 100644
--- a/docs/_docs/tutorial/01-your-first-lte.md
+++ b/docs/_docs/tutorial/01-your-first-lte.md
@@ -229,7 +229,7 @@ K : 82E9053A1882085FF2C020359938DAE9
OPc : BFD5771AAF4F6728E9BC6EF2C2533BDB
```
-Connect to `http://localhost:3000` and login with **admin** account.
+Connect to `http://localhost:9999` and login with **admin** account.
> Username : admin
> Password : 1423
@@ -334,7 +334,7 @@ Change back to the srsRAN source directory and copy the main config example as w
```bash
$ cp srsenb/enb.conf.example srsenb/enb.conf
$ cp srsenb/rr.conf.example srsenb/rr.conf
-$ cp srsenb/drb.conf.example srsenb/drb.conf
+$ cp srsenb/rb.conf.example srsenb/rb.conf
$ cp srsenb/sib.conf.example srsenb/sib.conf
```
diff --git a/docs/_docs/tutorial/03-VoLTE-dockerized.md b/docs/_docs/tutorial/03-VoLTE-dockerized.md
index 33b33a5169..c3fcb859bd 100644
--- a/docs/_docs/tutorial/03-VoLTE-dockerized.md
+++ b/docs/_docs/tutorial/03-VoLTE-dockerized.md
@@ -147,7 +147,7 @@ If there is a need to change the Core Network component configuration, then corr
- Provision SIM details in open5gs HSS
-Open (http://:3000) in a web browser, where is the IP of the machine/VM running the open5gs containers. Login with following credentials
+Open (http://:9999) in a web browser, where is the IP of the machine/VM running the open5gs containers. Login with following credentials
```
Username : admin
diff --git a/docs/_docs/tutorial/05-roaming.md b/docs/_docs/tutorial/05-roaming.md
index 108d4d4217..e9f0b3a698 100644
--- a/docs/_docs/tutorial/05-roaming.md
+++ b/docs/_docs/tutorial/05-roaming.md
@@ -92,7 +92,8 @@ NRF shall follow TS23.003(28.3.2.3.2 Format of NRF FQDN) for routing.
```bash
$ sh -c 'cat << EOF > ./install/etc/open5gs/h-nrf.yaml
logger:
- file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/h-nrf.log
+ file:
+ path: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/h-nrf.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -116,7 +117,8 @@ EOF'
```bash
$ sh -c 'cat << EOF > ./install/etc/open5gs/h-scp.yaml
logger:
- file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/h-scp.log
+ file:
+ path: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/h-scp.log
# level: info # fatal|error|warn|info(default)|debug|trace
global:
@@ -302,7 +304,8 @@ $ diff -u ./install/etc/open5gs/pcf.yaml.old ./install/etc/open5gs/pcf.yaml
@@ -1,4 +1,3 @@
-db_uri: mongodb://localhost/open5gs
logger:
- file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcf.log
+ file:
+ path: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcf.log
# level: info # fatal|error|warn|info(default)|debug|trace
@@ -22,6 +21,29 @@
server:
@@ -646,7 +649,8 @@ For now we will set up SEPP without using TLS.
```bash
$ sh -c 'cat << EOF > ./install/etc/open5gs/sepp.yaml
logger:
- file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sepp.log
+ file:
+ path: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sepp.log
# level: info # fatal|error|warn|info(default)|debug|trace
max:
@@ -966,7 +970,8 @@ For now we will set up SEPP without using TLS.
```bash
$ sh -c 'cat << EOF > ./install/etc/open5gs/sepp.yaml
logger:
- file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sepp.log
+ file:
+ path: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sepp.log
# level: info # fatal|error|warn|info(default)|debug|trace
max:
@@ -1286,7 +1291,8 @@ For now we will set up SEPP without using TLS.
```bash
$ sh -c 'cat << EOF > ./install/etc/open5gs/sepp.yaml
logger:
- file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sepp.log
+ file:
+ path: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sepp.log
# level: info # fatal|error|warn|info(default)|debug|trace
max:
diff --git a/docs/_pages/docs.md b/docs/_pages/docs.md
index aa4f34394e..65d3b364a1 100644
--- a/docs/_pages/docs.md
+++ b/docs/_pages/docs.md
@@ -18,9 +18,9 @@ head_inline: ""
- [Dockerized VoLTE Setup](tutorial/03-VoLTE-dockerized)
- [Roaming](tutorial/05-roaming)
-- Inside Source Code
- - [UPF Code Explanation](https://medium.com/@aditya.koranga/open5gs-upf-code-explanation-with-flow-c-79c50f253dd1)
- - [SMF Code Explanation](https://medium.com/@aditya.koranga/open5gs-smf-code-explanation-with-flow-charts-a3b3cd38c991)
+- In the lab
+ - [A Demonstration of 30 Gbps Load Testing for Accelerated UPF with Open5gs](https://nextepc.com/technology)
+ - [Measurement of UPF Performance](https://github.com/s5uishida/sample_config_misc_for_mobile_network#performance_measurement)
- Troubleshooting
- [Simple Issues](troubleshoot/01-simple-issues)
@@ -38,7 +38,12 @@ head_inline: ""
- Hardware Specific Notes
- [eNodeBs/gNodeBs tested on Open5GS](hardware/01-genodebs)
+- Inside Source Code
+ - [UPF Code Explanation](https://medium.com/@aditya.koranga/open5gs-upf-code-explanation-with-flow-c-79c50f253dd1)
+ - [SMF Code Explanation](https://medium.com/@aditya.koranga/open5gs-smf-code-explanation-with-flow-charts-a3b3cd38c991)
+
- @infinitydon
+ - [OAI's O-RAN Integration With Open5gs 5G Core](https://futuredon.medium.com/integrating-disaggregated-openairinterface-o-ran-components-with-open5gs-5g-core-76e5deac1730)
- [Open5GS on Amazon Elastic Kubernetes Service](https://aws.amazon.com/blogs/opensource/open-source-mobile-core-network-implementation-on-amazon-elastic-kubernetes-service/)
- [Kubernetes Open5GS Deployment](https://dev.to/infinitydon/virtual-4g-simulation-using-kubernetes-and-gns3-3b7k?fbclid=IwAR1p99h13a-mCfejanbBQe0H0-jp5grXkn5mWf1WrTHf47UtegB2-UHGGZQ)
- [5G Core SBI mTLS Using External Certificate PKI](https://futuredon.medium.com/5g-core-sbi-mtls-using-external-certificate-pki-4ffc02ac7728)
@@ -69,11 +74,16 @@ head_inline: ""
- [VPP-UPF with DPDK](https://github.com/s5uishida/open5gs_5gc_ueransim_vpp_upf_dpdk_sample_config)
- [UERANSIM with eUPF(eBPF/XDP UPF)](https://github.com/s5uishida/open5gs_5gc_ueransim_eupf_sample_config)
- [srsRAN with eUPF(eBPF/XDP UPF)](https://github.com/s5uishida/open5gs_epc_srsran_eupf_sample_config)
- - [Measurement of UPF Performance](https://github.com/s5uishida/simple_measurement_of_upf_performance)
- @gradiant helm charts
- - [Open5GS EPC and SRS LTE in kubernetes](https://gradiant.github.io/openverso-charts/open5gs-srslte.html)
- - [Open5GS NGC and UERANSIM in kubernetes](https://gradiant.github.io/openverso-charts/open5gs-ueransim-gnb.html)
- - [Open5GS NGC and OpenAirInterface GNB with ettus USRP in kubernetes](https://gradiant.github.io/openverso-charts/open5gs-oaignb.html)
- - [Open5GS EPC and SRS ENB with ettus USRP in kubernetes](https://gradiant.github.io/openverso-charts/open5gs-srsenb.html)
- - [Open5GS with Service Communication Proxy in kubernetes](https://gradiant.github.io/openverso-charts/open5gs-scp.html)
+ - [Open5GS and srsRAN-5G in kubernetes](https://gradiant.github.io/5g-charts/open5gs-srsran-5g-zmq.html)
+ - [Open5GS and srsLTE in kubernetes](https://gradiant.github.io/5g-charts/open5gs-srslte.html)
+ - [Open5GS and UERANSIM](https://gradiant.github.io/5g-charts/open5gs-ueransim-gnb.html)
+ - [Open5GS and PacketRusher](https://gradiant.github.io/5g-charts/open5gs-packetrusher.html)
+ - [Open5GS and OAI-GNB](https://gradiant.github.io/5g-charts/open5gs-oaignb.html)
+ - [Open5GS and srsenb](https://gradiant.github.io/5g-charts/open5gs-srsenb.html)
+ - [Open5GS with SCP(Service Communication Proxy](https://gradiant.github.io/5g-charts/open5gs-scp.html)
+
+- @loxilb
+ - [Exploring 5G SCP with Open5GS and LoxiLB](https://dev.to/nikhilmalik/5g-service-communication-proxy-with-loxilb-4242)
+ - [NGAP Load Balancing with Open5GS and LoxiLB](https://www.loxilb.io/post/ngap-load-balancing-with-loxilb)
diff --git a/docs/_pages/support.md b/docs/_pages/support.md
index a71d757479..d572556123 100644
--- a/docs/_pages/support.md
+++ b/docs/_pages/support.md
@@ -5,18 +5,18 @@ subject: Support
permalink: /support/
---
-###### Updated Sep, 2022
+Open5GS receives strong and ongoing support from [NewPlane Inc.](https://newplane.io), which proudly backs the project and contributes to its continuous development and success.
-### Open5GS Licensing
+### Licensing Options:
-Open5GS is licensed under a dual licensing model designed to meet the development and distribution needs of both commercial and open source projects.
+- **Commercial License**: Available for those who wish to develop and distribute their software without adhering to open-source license requirements. This option allows for full utilization of Open5GS capabilities and involves a strategic partnership with NewPlane. For more information, reach out to NewPlane at
+[sales@newplane.io](mailto:sales@newplane.io).
-The commercial Open5GS license gives you the full rights to create and distribute software on your own terms without any open source license obligations. You can grow with Open5GS by establishing a close strategic relationship with [NeoPlane](https://neoplane.io).
+- **AGPL-3.0 License**: Ideal for open-source projects, academic research, and internal use where compliance with AGPL-3.0 is feasible. This license supports the open-source ethos and is suitable for a wide range of uses. If you have concerns about AGPL compliance, consider the commercial licensing option instead.
+### Support and Customization:
-Open5GS is also available under AGPL-3.0 open source licenses. The Open5GS open source licensing is ideal for use cases such as open source projects with open source distribution, student/academic purposes, hobby projects, internal research projects without external distribution, or other projects where all AGPL-3.0 obligations can be met.
-
-If your legal department has policies regarding use of software licensed under the AGPL, you may prefer to have a commercial license. Contact [Sukchan Lee \](mailto:sales@neoplane.io) for more information on commercial licenses.
+NewPlane offers comprehensive support and customization services to enhance your experience with Open5GS. Their team is equipped to assist with troubleshooting, address specific issues, and implement customized solutions. For support and customization inquiries, please contact NewPlane at [support@newplane.io](mailto:support@newplane.io).
### Our Partners
diff --git a/docs/_posts/2020-03-25-release-v1.2.2.md b/docs/_posts/2020-03-25-release-v1.2.2.md
index 7d82e8fa71..a540d51cee 100644
--- a/docs/_posts/2020-03-25-release-v1.2.2.md
+++ b/docs/_posts/2020-03-25-release-v1.2.2.md
@@ -25,7 +25,8 @@ Example of sgw.yaml to use this feature:
```
logger:
- file: /var/log/open5gs/sgw.log
+ file:
+ path: /var/log/open5gs/sgw.log
level: debug
parameter:
diff --git a/docs/_posts/2024-04-19-release-v2.7.1.md b/docs/_posts/2024-04-19-release-v2.7.1.md
new file mode 100644
index 0000000000..3f001cc086
--- /dev/null
+++ b/docs/_posts/2024-04-19-release-v2.7.1.md
@@ -0,0 +1,15 @@
+---
+title: "v2.7.1 - Bug Fixed"
+date: 2024-04-19 21:23:00 +0900
+categories:
+ - Release
+tags:
+ - News
+ - Release
+head_inline: ""
+---
+
+See [Release Note](https://github.com/open5gs/open5gs/releases/tag/v2.7.1)
+
+Download -- [v2.7.1.tar.gz](https://github.com/open5gs/open5gs/archive/v2.7.1.tar.gz)
+{: .notice--info}
diff --git a/docs/_posts/2024-08-04-release-v2.7.2.md b/docs/_posts/2024-08-04-release-v2.7.2.md
new file mode 100644
index 0000000000..6190b5b019
--- /dev/null
+++ b/docs/_posts/2024-08-04-release-v2.7.2.md
@@ -0,0 +1,15 @@
+---
+title: "v2.7.2 - ogs_pool_cycle() removed"
+date: 2024-08-04 21:13:00 +0900
+categories:
+ - Release
+tags:
+ - News
+ - Release
+head_inline: ""
+---
+
+See [Release Note](https://github.com/open5gs/open5gs/releases/tag/v2.7.2)
+
+Download -- [v2.7.2.tar.gz](https://github.com/open5gs/open5gs/archive/v2.7.2.tar.gz)
+{: .notice--info}
diff --git a/lib/app/ogs-config.c b/lib/app/ogs-config.c
index a4ccb95825..d9a970b04e 100644
--- a/lib/app/ogs-config.c
+++ b/lib/app/ogs-config.c
@@ -105,7 +105,7 @@ ogs_app_local_conf_t *ogs_local_conf(void)
return &local_conf;
}
-static int global_conf_prepare(void)
+int ogs_app_global_conf_prepare(void)
{
global_conf.sockopt.no_delay = true;
@@ -134,6 +134,30 @@ static int global_conf_validation(void)
return OGS_OK;
}
+int ogs_app_count_nf_conf_sections(const char *conf_section)
+{
+ if (!strcmp(conf_section, "amf"))
+ global_conf.parameter.amf_count++;
+ else if (!strcmp(conf_section, "smf"))
+ global_conf.parameter.smf_count++;
+ else if (!strcmp(conf_section, "upf"))
+ global_conf.parameter.upf_count++;
+ else if (!strcmp(conf_section, "ausf"))
+ global_conf.parameter.ausf_count++;
+ else if (!strcmp(conf_section, "udm"))
+ global_conf.parameter.udm_count++;
+ else if (!strcmp(conf_section, "pcf"))
+ global_conf.parameter.pcf_count++;
+ else if (!strcmp(conf_section, "nssf"))
+ global_conf.parameter.nssf_count++;
+ else if (!strcmp(conf_section, "bsf"))
+ global_conf.parameter.bsf_count++;
+ else if (!strcmp(conf_section, "udr"))
+ global_conf.parameter.udr_count++;
+
+ return OGS_OK;
+}
+
int ogs_app_parse_global_conf(ogs_yaml_iter_t *parent)
{
int rv;
@@ -141,9 +165,6 @@ int ogs_app_parse_global_conf(ogs_yaml_iter_t *parent)
ogs_assert(parent);
- rv = global_conf_prepare();
- if (rv != OGS_OK) return rv;
-
ogs_yaml_iter_recurse(parent, &global_iter);
while (ogs_yaml_iter_next(&global_iter)) {
const char *global_key = ogs_yaml_iter_key(&global_iter);
@@ -226,6 +247,12 @@ int ogs_app_parse_global_conf(ogs_yaml_iter_t *parent)
} else if (!strcmp(parameter_key, "use_openair")) {
global_conf.parameter.use_openair =
ogs_yaml_iter_bool(¶meter_iter);
+ } else if (!strcmp(parameter_key, "use_upg_vpp")) {
+ global_conf.parameter.use_upg_vpp =
+ ogs_yaml_iter_bool(¶meter_iter);
+ } else if (!strcmp(parameter_key, "fake_csfb")) {
+ global_conf.parameter.fake_csfb =
+ ogs_yaml_iter_bool(¶meter_iter);
} else if (!strcmp(parameter_key,
"no_ipv4v6_local_addr_in_packet_filter")) {
global_conf.parameter.
@@ -408,8 +435,8 @@ static int local_conf_prepare(void)
* Heartbeat Interval(e.g: 10 seconds) + No Heartbeat Margin(1 second) */
local_conf.time.nf_instance.no_heartbeat_margin = 1;
- /* 3600 seconds = 1 hour */
- local_conf.time.nf_instance.validity_duration = 3600;
+ /* 30 seconds */
+ local_conf.time.nf_instance.validity_duration = 30;
/* 86400 seconds = 1 day */
local_conf.time.subscription.validity_duration = 86400;
@@ -459,6 +486,7 @@ int ogs_app_parse_local_conf(const char *local)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -470,7 +498,8 @@ int ogs_app_parse_local_conf(const char *local)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, local)) {
+ if (!strcmp(root_key, local) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t local_iter;
ogs_yaml_iter_recurse(&root_iter, &local_iter);
while (ogs_yaml_iter_next(&local_iter)) {
@@ -724,9 +753,83 @@ int ogs_app_parse_sockopt_config(
return OGS_OK;
}
+/*----------------------------------------------------------------------
+ * Function: ogs_app_parse_supi_range_conf
+ *
+ * Parse the supi_range configuration from a YAML iterator.
+ *
+ * The expected YAML format is:
+ *
+ * supi_range:
+ * - 999700000000001-999700000099999
+ * - 310789000000005-310789000000888
+ *
+ * Both start and end must be provided.
+ *
+ * Returns:
+ * OGS_OK on success, OGS_ERROR on failure.
+ *----------------------------------------------------------------------*/
+int ogs_app_parse_supi_range_conf(
+ ogs_yaml_iter_t *parent, ogs_supi_range_t *supi_range)
+{
+ ogs_yaml_iter_t range_iter;
+
+ ogs_assert(parent);
+ ogs_assert(supi_range);
+
+ memset(supi_range, 0, sizeof(ogs_supi_range_t));
+
+ /* Recurse into the supi_range array node */
+ ogs_yaml_iter_recurse(parent, &range_iter);
+ ogs_assert(ogs_yaml_iter_type(&range_iter) != YAML_MAPPING_NODE);
+
+ do {
+ char *v = NULL;
+ char *start_str = NULL, *end_str = NULL;
+
+ if (ogs_yaml_iter_type(&range_iter) == YAML_SEQUENCE_NODE) {
+ if (!ogs_yaml_iter_next(&range_iter))
+ break;
+ }
+
+ v = (char *)ogs_yaml_iter_value(&range_iter);
+
+ if (v) {
+ ogs_assert(supi_range->num < OGS_MAX_NUM_OF_SUPI_RANGE);
+
+ /* Split the string on '-' */
+ start_str = strsep(&v, "-");
+ if (start_str == NULL || strlen(start_str) == 0) {
+ ogs_error("Invalid supi_range starter bound: %s", v);
+ return OGS_ERROR;
+ }
+
+ end_str = v;
+ if (end_str == NULL || strlen(end_str) == 0) {
+ ogs_error("Invalid supi_range upper bound: %s", v);
+ return OGS_ERROR;
+ }
+
+ supi_range->start[supi_range->num] =
+ ogs_uint64_from_string_decimal(start_str);
+ supi_range->end[supi_range->num] =
+ ogs_uint64_from_string_decimal(end_str);
+
+ supi_range->num++;
+ }
+
+ } while (ogs_yaml_iter_type(&range_iter) == YAML_SEQUENCE_NODE);
+
+ return OGS_OK;
+}
+
static int parse_br_conf(ogs_yaml_iter_t *parent, ogs_bitrate_t *br)
{
ogs_yaml_iter_t br_iter;
+
+ ogs_assert(parent);
+ ogs_assert(br);
+
ogs_yaml_iter_recurse(parent, &br_iter);
while (ogs_yaml_iter_next(&br_iter)) {
@@ -1162,11 +1265,12 @@ int ogs_app_parse_session_conf(
return OGS_OK;
}
-ogs_app_policy_conf_t *ogs_app_policy_conf_add(ogs_plmn_id_t *plmn_id)
+ogs_app_policy_conf_t *ogs_app_policy_conf_add(
+ ogs_supi_range_t *supi_range, ogs_plmn_id_t *plmn_id)
{
ogs_app_policy_conf_t *policy_conf = NULL;
- ogs_assert(plmn_id);
+ ogs_assert(supi_range || plmn_id);
ogs_pool_alloc(&policy_conf_pool, &policy_conf);
if (!policy_conf) {
@@ -1176,7 +1280,25 @@ ogs_app_policy_conf_t *ogs_app_policy_conf_add(ogs_plmn_id_t *plmn_id)
}
memset(policy_conf, 0, sizeof *policy_conf);
- memcpy(&policy_conf->plmn_id, plmn_id, sizeof(ogs_plmn_id_t));
+ if (supi_range) {
+ int i;
+
+ memcpy(&policy_conf->supi_range, supi_range, sizeof(ogs_supi_range_t));
+
+ ogs_info("SUPI[%d]", policy_conf->supi_range.num);
+ for (i = 0; i < policy_conf->supi_range.num; i++)
+ ogs_info(" START[%lld]-END[%lld]",
+ (long long)policy_conf->supi_range.start[i],
+ (long long)policy_conf->supi_range.end[i]);
+
+ }
+ if (plmn_id) {
+ policy_conf->plmn_id_valid = true;
+ memcpy(&policy_conf->plmn_id, plmn_id, sizeof(ogs_plmn_id_t));
+ ogs_info("PLMN_ID[MCC:%03d.MNC:%03d]",
+ ogs_plmn_id_mcc(&policy_conf->plmn_id),
+ ogs_plmn_id_mnc(&policy_conf->plmn_id));
+ }
ogs_list_init(&policy_conf->slice_list);
@@ -1187,19 +1309,60 @@ ogs_app_policy_conf_t *ogs_app_policy_conf_add(ogs_plmn_id_t *plmn_id)
return policy_conf;
}
-ogs_app_policy_conf_t *ogs_app_policy_conf_find_by_plmn_id(
- ogs_plmn_id_t *plmn_id)
+ogs_app_policy_conf_t *ogs_app_policy_conf_find(
+ char *supi, ogs_plmn_id_t *plmn_id)
{
- ogs_app_policy_conf_t *policy_conf = NULL;
+ ogs_app_policy_conf_t *policy_conf;
+ int i;
+
+ char *supi_type = NULL;
+ char *supi_id = NULL;
+ uint64_t supi_decimal;
- ogs_assert(plmn_id);
+ ogs_assert(supi);
+
+ supi_type = ogs_id_get_type(supi);
+ ogs_assert(supi_type);
+ supi_id = ogs_id_get_value(supi);
+ ogs_assert(supi_id);
+
+ supi_decimal = ogs_uint64_from_string_decimal(supi_id);
+
+ ogs_free(supi_type);
+ ogs_free(supi_id);
ogs_list_for_each(&local_conf.policy_list, policy_conf) {
- if (memcmp(&policy_conf->plmn_id, plmn_id, sizeof(ogs_plmn_id_t)) == 0)
- break;
+ /* If supi_range is set, check if supi_decimal falls within
+ * any of the defined ranges.
+ */
+ if (policy_conf->supi_range.num > 0) {
+ int in_range = 0;
+ for (i = 0; i < policy_conf->supi_range.num; i++) {
+ if ((supi_decimal >= policy_conf->supi_range.start[i]) &&
+ (supi_decimal <= policy_conf->supi_range.end[i])) {
+ in_range = 1;
+ break;
+ }
+ }
+ if (!in_range) {
+ continue;
+ }
+ }
+
+ /* If a plmn_id is set and it does not match the
+ * current policy's plmn_id, skip this policy.
+ */
+ if (policy_conf->plmn_id_valid &&
+ memcmp(&policy_conf->plmn_id, plmn_id,
+ sizeof(ogs_plmn_id_t)) != 0) {
+ continue;
+ }
+
+ /* Both conditions met; return this policy configuration */
+ return policy_conf;
}
- return policy_conf;
+ return NULL;
}
void ogs_app_policy_conf_remove(ogs_app_policy_conf_t *policy_conf)
{
@@ -1229,7 +1392,6 @@ ogs_app_slice_conf_t *ogs_app_slice_conf_add(
ogs_assert(policy_conf);
ogs_assert(s_nssai);
- ogs_assert(s_nssai->sst);
ogs_pool_alloc(&slice_conf_pool, &slice_conf);
if (!slice_conf) {
@@ -1260,7 +1422,6 @@ ogs_app_slice_conf_t *ogs_app_slice_conf_find_by_s_nssai(
ogs_assert(policy_conf);
ogs_assert(s_nssai);
- ogs_assert(s_nssai->sst);
ogs_list_for_each(&policy_conf->slice_list, slice_conf) {
if (slice_conf->data.s_nssai.sst == s_nssai->sst &&
@@ -1400,29 +1561,26 @@ void ogs_app_session_conf_remove_all(ogs_app_slice_conf_t *slice_conf)
}
int ogs_app_config_session_data(
- ogs_plmn_id_t *plmn_id, ogs_s_nssai_t *s_nssai, char *dnn,
+ char *supi, ogs_plmn_id_t *plmn_id, ogs_s_nssai_t *s_nssai, char *dnn,
ogs_session_data_t *session_data)
{
ogs_app_policy_conf_t *policy_conf = NULL;
ogs_app_slice_conf_t *slice_conf = NULL;
ogs_app_session_conf_t *session_conf = NULL;
+ ogs_assert(supi);
ogs_assert(dnn);
ogs_assert(session_data);
- if (plmn_id) {
- policy_conf = ogs_app_policy_conf_find_by_plmn_id(plmn_id);
- if (!policy_conf) {
- ogs_error("No POLICY [MCC:%03d,MNC:%03d]",
- ogs_plmn_id_mcc(plmn_id), ogs_plmn_id_mnc(plmn_id));
- return OGS_ERROR;
- }
- } else {
- policy_conf = ogs_list_first(&ogs_local_conf()->policy_list);
- if (!policy_conf) {
- ogs_error("No default POLICY for EPC");
- return OGS_ERROR;
- }
+ policy_conf = ogs_app_policy_conf_find(supi, plmn_id);
+ if (!policy_conf) {
+ if (plmn_id)
+ ogs_error("No POLICY [SUPI:%s] [MCC:%03d,MNC:%03d]",
+ supi, ogs_plmn_id_mcc(plmn_id), ogs_plmn_id_mnc(plmn_id));
+ else
+ ogs_error("No POLICY [SUPI:%s]", supi);
+
+ return OGS_ERROR;
}
if (s_nssai) {
diff --git a/lib/app/ogs-config.h b/lib/app/ogs-config.h
index 3085943a2e..13c30b8c45 100644
--- a/lib/app/ogs-config.h
+++ b/lib/app/ogs-config.h
@@ -52,6 +52,16 @@ typedef struct ogs_global_conf_s {
int no_scp;
int no_nrf;
+ int amf_count;
+ int smf_count;
+ int upf_count;
+ int ausf_count;
+ int udm_count;
+ int pcf_count;
+ int nssf_count;
+ int bsf_count;
+ int udr_count;
+
/* Network */
int no_ipv4;
int no_ipv6;
@@ -59,6 +69,8 @@ typedef struct ogs_global_conf_s {
int multicast;
int use_openair;
+ int fake_csfb;
+ int use_upg_vpp;
int no_ipv4v6_local_addr_in_packet_filter;
int no_pfcp_rr_select;
@@ -132,9 +144,24 @@ typedef struct ogs_local_conf_s {
} ogs_app_local_conf_t;
+/* Structure for SUPI-range */
+typedef struct {
+ int num;
+#define OGS_MAX_NUM_OF_SUPI_RANGE 16
+ uint64_t start[OGS_MAX_NUM_OF_SUPI_RANGE];
+ uint64_t end[OGS_MAX_NUM_OF_SUPI_RANGE];
+} ogs_supi_range_t;
+
+
+/* Policy configuration structure. In a real system, additional fields
+ * (e.g., for plmn_id, slice list, etc.) would be added.
+ */
typedef struct ogs_app_policy_conf_s {
ogs_lnode_t lnode;
+ ogs_supi_range_t supi_range;
+
+ bool plmn_id_valid;
ogs_plmn_id_t plmn_id;
ogs_list_t slice_list;
@@ -163,19 +190,25 @@ void ogs_app_config_final(void);
ogs_app_global_conf_t *ogs_global_conf(void);
ogs_app_local_conf_t *ogs_local_conf(void);
+int ogs_app_count_nf_conf_sections(const char *conf_section);
+int ogs_app_global_conf_prepare(void);
int ogs_app_parse_global_conf(ogs_yaml_iter_t *parent);
int ogs_app_parse_local_conf(const char *local);
int ogs_app_parse_sockopt_config(
ogs_yaml_iter_t *parent, ogs_sockopt_t *option);
+int ogs_app_parse_supi_range_conf(
+ ogs_yaml_iter_t *parent, ogs_supi_range_t *supi_range);
+
int ogs_app_check_policy_conf(void);
int ogs_app_parse_session_conf(
ogs_yaml_iter_t *parent, ogs_app_slice_conf_t *slice_conf);
-ogs_app_policy_conf_t *ogs_app_policy_conf_add(ogs_plmn_id_t *plmn_id);
-ogs_app_policy_conf_t *ogs_app_policy_conf_find_by_plmn_id(
- ogs_plmn_id_t *plmn_id);
+ogs_app_policy_conf_t *ogs_app_policy_conf_add(
+ ogs_supi_range_t *supi_range, ogs_plmn_id_t *plmn_id);
+ogs_app_policy_conf_t *ogs_app_policy_conf_find(
+ char *supi, ogs_plmn_id_t *plmn_id);
void ogs_app_policy_conf_remove(ogs_app_policy_conf_t *policy_conf);
void ogs_app_policy_conf_remove_all(void);
@@ -195,7 +228,7 @@ void ogs_app_session_conf_remove_all(
ogs_app_slice_conf_t *slice_conf);
int ogs_app_config_session_data(
- ogs_plmn_id_t *plmn_id, ogs_s_nssai_t *s_nssai, char *dnn,
+ char *supi, ogs_plmn_id_t *plmn_id, ogs_s_nssai_t *s_nssai, char *dnn,
ogs_session_data_t *session_data);
#ifdef __cplusplus
diff --git a/lib/app/ogs-context.h b/lib/app/ogs-context.h
index 3e8e11bea5..e0f3e0df9a 100644
--- a/lib/app/ogs-context.h
+++ b/lib/app/ogs-context.h
@@ -36,10 +36,15 @@ typedef struct ogs_app_context_s {
const char *db_uri;
+ struct {
+ ogs_log_ts_e timestamp;
+ } logger_default;
+
struct {
const char *file;
const char *level;
const char *domain;
+ ogs_log_ts_e timestamp;
} logger;
ogs_queue_t *queue;
@@ -80,6 +85,8 @@ typedef struct ogs_app_context_s {
uint64_t max_specs;
} metrics;
+ int config_section_id;
+
} ogs_app_context_t;
int ogs_app_context_init(void);
diff --git a/lib/app/ogs-init.c b/lib/app/ogs-init.c
index 2c117a4ff4..7beb2b3df9 100644
--- a/lib/app/ogs-init.c
+++ b/lib/app/ogs-init.c
@@ -35,6 +35,7 @@ int ogs_app_initialize(
char *log_file;
char *log_level;
char *domain_mask;
+ char *config_section_id;
} optarg;
ogs_core_initialize();
@@ -50,7 +51,7 @@ int ogs_app_initialize(
memset(&optarg, 0, sizeof(optarg));
ogs_getopt_init(&options, (char**)argv);
- while ((opt = ogs_getopt(&options, "c:l:e:m:")) != -1) {
+ while ((opt = ogs_getopt(&options, "c:l:e:m:k:")) != -1) {
switch (opt) {
case 'c':
optarg.config_file = options.optarg;
@@ -64,6 +65,9 @@ int ogs_app_initialize(
case 'm':
optarg.domain_mask = options.optarg;
break;
+ case 'k':
+ optarg.config_section_id = options.optarg;
+ break;
case '?':
default:
ogs_assert_if_reached();
@@ -114,6 +118,9 @@ int ogs_app_initialize(
ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
+ ogs_log_set_timestamp(ogs_app()->logger_default.timestamp,
+ ogs_app()->logger.timestamp);
+
/**************************************************************************
* Stage 5 : Setup Database Module
*/
@@ -121,7 +128,14 @@ int ogs_app_initialize(
ogs_app()->db_uri = ogs_env_get("DB_URI");
/**************************************************************************
- * Stage 6 : Print Banner
+ * Stage 6 : Setup configuration section ID for running multiple NF from
+ * same config file
+ */
+ if (optarg.config_section_id)
+ ogs_app()->config_section_id = atoi(optarg.config_section_id);
+
+ /**************************************************************************
+ * Stage 7 : Print Banner
*/
if (ogs_app()->version) {
ogs_log_print(OGS_LOG_INFO,
@@ -141,7 +155,7 @@ int ogs_app_initialize(
}
/**************************************************************************
- * Stage 7 : Queue, Timer and Poll
+ * Stage 8 : Queue, Timer and Poll
*/
ogs_app()->queue = ogs_queue_create(ogs_app()->pool.event);
ogs_assert(ogs_app()->queue);
@@ -243,9 +257,14 @@ static int read_config(void)
static int context_prepare(void)
{
+ int rv;
+
#define USRSCTP_LOCAL_UDP_PORT 9899
ogs_app()->usrsctp.udp_port = USRSCTP_LOCAL_UDP_PORT;
+ rv = ogs_app_global_conf_prepare();
+ if (rv != OGS_OK) return rv;
+
return OGS_OK;
}
@@ -254,6 +273,57 @@ static int context_validation(void)
return OGS_OK;
}
+static void parse_config_logger_file(ogs_yaml_iter_t *logger_iter,
+ const char *logger_key)
+{
+ ogs_yaml_iter_t iter;
+
+ /* Legacy format:
+ * logger:
+ * file: /var/log/open5gs/mme.log */
+ if (!strcmp(logger_key, "file") && ogs_yaml_iter_has_value(logger_iter)) {
+ ogs_app()->logger.file = ogs_yaml_iter_value(logger_iter);
+
+ ogs_warn("Please change the configuration file as below.");
+ ogs_log_print(OGS_LOG_WARN, "\n\n");
+ ogs_log_print(OGS_LOG_WARN, "logger:\n");
+ ogs_log_print(OGS_LOG_WARN, " file: %s\n", ogs_app()->logger.file);
+ ogs_log_print(OGS_LOG_WARN, "\n\n");
+ ogs_log_print(OGS_LOG_WARN, "logger:\n");
+ ogs_log_print(OGS_LOG_WARN, " file:\n");
+ ogs_log_print(OGS_LOG_WARN, " path: %s\n", ogs_app()->logger.file);
+ ogs_log_print(OGS_LOG_WARN, "\n\n\n");
+ return;
+ }
+
+ /* Current format:
+ * logger:
+ * default:
+ * timestamp: false
+ * file:
+ * path: /var/log/open5gs/mme.log
+ * timestamp: true */
+ ogs_yaml_iter_recurse(logger_iter, &iter);
+ while (ogs_yaml_iter_next(&iter)) {
+ const char *key = ogs_yaml_iter_key(&iter);
+ ogs_assert(key);
+ if (!strcmp(key, "timestamp")) {
+ ogs_log_ts_e ts = ogs_yaml_iter_bool(&iter)
+ ? OGS_LOG_TS_ENABLED
+ : OGS_LOG_TS_DISABLED;
+ if (!strcmp(logger_key, "default")) {
+ ogs_app()->logger_default.timestamp = ts;
+ } else if (!strcmp(logger_key, "file")) {
+ ogs_app()->logger.timestamp = ts;
+ }
+ } else if (!strcmp(key, "path")) {
+ if (!strcmp(logger_key, "file")) {
+ ogs_app()->logger.file = ogs_yaml_iter_value(&iter);
+ }
+ }
+ }
+}
+
static int parse_config(void)
{
int rv;
@@ -278,9 +348,8 @@ static int parse_config(void)
while (ogs_yaml_iter_next(&logger_iter)) {
const char *logger_key = ogs_yaml_iter_key(&logger_iter);
ogs_assert(logger_key);
- if (!strcmp(logger_key, "file")) {
- ogs_app()->logger.file = ogs_yaml_iter_value(&logger_iter);
- } else if (!strcmp(logger_key, "level")) {
+ parse_config_logger_file(&logger_iter, logger_key);
+ if (!strcmp(logger_key, "level")) {
ogs_app()->logger.level =
ogs_yaml_iter_value(&logger_iter);
} else if (!strcmp(logger_key, "domain")) {
@@ -294,6 +363,12 @@ static int parse_config(void)
ogs_error("ogs_global_conf_parse_config() failed");
return rv;
}
+ } else {
+ rv = ogs_app_count_nf_conf_sections(root_key);
+ if (rv != OGS_OK) {
+ ogs_error("ogs_app_count_nf_conf_sections() failed");
+ return rv;
+ }
}
}
diff --git a/lib/app/ogs-yaml.c b/lib/app/ogs-yaml.c
index 168ec50e82..7853b704ef 100644
--- a/lib/app/ogs-yaml.c
+++ b/lib/app/ogs-yaml.c
@@ -178,6 +178,34 @@ const char *ogs_yaml_iter_value(ogs_yaml_iter_t *iter)
return NULL;
}
+int ogs_yaml_iter_has_value(ogs_yaml_iter_t *iter)
+{
+ ogs_assert(iter);
+ ogs_assert(iter->document);
+ ogs_assert(iter->node);
+
+ if (iter->node->type == YAML_SCALAR_NODE) {
+ return 1;
+ } else if (iter->node->type == YAML_MAPPING_NODE) {
+ yaml_node_t *node = NULL;
+
+ ogs_assert(iter->pair);
+ node = yaml_document_get_node(iter->document, iter->pair->value);
+ ogs_assert(node);
+ return node->type == YAML_SCALAR_NODE;
+ } else if (iter->node->type == YAML_SEQUENCE_NODE) {
+ yaml_node_t *node = NULL;
+
+ ogs_assert(iter->item);
+ node = yaml_document_get_node(iter->document, *iter->item);
+ ogs_assert(node);
+ return node->type == YAML_SCALAR_NODE;
+ }
+
+ ogs_assert_if_reached();
+ return 0;
+}
+
int ogs_yaml_iter_bool(ogs_yaml_iter_t *iter)
{
const char *v = ogs_yaml_iter_value(iter);
diff --git a/lib/app/ogs-yaml.h b/lib/app/ogs-yaml.h
index 0fbd8646a6..ac23bead04 100644
--- a/lib/app/ogs-yaml.h
+++ b/lib/app/ogs-yaml.h
@@ -59,6 +59,7 @@ void ogs_yaml_iter_recurse(ogs_yaml_iter_t *parent, ogs_yaml_iter_t *iter);
int ogs_yaml_iter_type(ogs_yaml_iter_t *iter);
const char *ogs_yaml_iter_key(ogs_yaml_iter_t *iter);
const char *ogs_yaml_iter_value(ogs_yaml_iter_t *iter);
+int ogs_yaml_iter_has_value(ogs_yaml_iter_t *iter);
int ogs_yaml_iter_bool(ogs_yaml_iter_t *iter);
#ifdef __cplusplus
diff --git a/lib/asn1c/common/ANY.c b/lib/asn1c/common/ANY.c
index bf988dbda0..3cbe1e272b 100644
--- a/lib/asn1c/common/ANY.c
+++ b/lib/asn1c/common/ANY.c
@@ -18,6 +18,7 @@ asn_TYPE_operation_t asn_OP_ANY = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare,
+ OCTET_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber,
OCTET_STRING_encode_der,
@@ -33,9 +34,11 @@ asn_TYPE_operation_t asn_OP_ANY = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_hex,
ANY_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
diff --git a/lib/asn1c/common/ANY.h b/lib/asn1c/common/ANY.h
index 871ed5ed39..6434aab71a 100644
--- a/lib/asn1c/common/ANY.h
+++ b/lib/asn1c/common/ANY.h
@@ -29,6 +29,7 @@ extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define ANY_compare OCTET_STRING_compare
+#define ANY_copy OCTET_STRING_copy
#define ANY_constraint asn_generic_no_constraint
@@ -43,6 +44,7 @@ xer_type_encoder_f ANY_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f ANY_decode_jer;
jer_type_encoder_f ANY_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/BIT_STRING.c b/lib/asn1c/common/BIT_STRING.c
index b5ba94017c..208ac14c78 100644
--- a/lib/asn1c/common/BIT_STRING.c
+++ b/lib/asn1c/common/BIT_STRING.c
@@ -24,6 +24,7 @@ asn_TYPE_operation_t asn_OP_BIT_STRING = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
BIT_STRING_compare,
+ BIT_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der, /* Implemented in terms of OCTET STRING */
@@ -39,9 +40,11 @@ asn_TYPE_operation_t asn_OP_BIT_STRING = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_hex,
BIT_STRING_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
BIT_STRING_decode_oer,
@@ -211,3 +214,37 @@ BIT_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
return 1;
}
}
+
+int
+BIT_STRING_copy(const asn_TYPE_descriptor_t *td, void **aptr,
+ const void *bptr) {
+ const asn_OCTET_STRING_specifics_t *specs = td->specifics;
+ BIT_STRING_t *a = (BIT_STRING_t *)*aptr;
+ const BIT_STRING_t *b = (const BIT_STRING_t *)bptr;
+
+ if(!b) {
+ if(a) {
+ FREEMEM(a->buf);
+ FREEMEM(a);
+ *aptr = 0;
+ }
+ return 0;
+ }
+
+ if(!a) {
+ a = *aptr = CALLOC(1, specs->struct_size);
+ if(!a) return -1;
+ }
+
+ uint8_t* buf = MALLOC(b->size + 1);
+ if(!buf) return -1;
+ memcpy(buf, b->buf, b->size);
+ buf[b->size] = 0;
+
+ FREEMEM(a->buf);
+ a->buf = buf;
+ a->size = b->size;
+ a->bits_unused = b->bits_unused;
+
+ return 0;
+}
diff --git a/lib/asn1c/common/BIT_STRING.h b/lib/asn1c/common/BIT_STRING.h
index e755fe9f5c..0b71feb7b4 100644
--- a/lib/asn1c/common/BIT_STRING.h
+++ b/lib/asn1c/common/BIT_STRING.h
@@ -31,6 +31,7 @@ asn_struct_print_f BIT_STRING_print; /* Human-readable output */
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f BIT_STRING_compare;
+asn_struct_copy_f BIT_STRING_copy;
asn_constr_check_f BIT_STRING_constraint;
@@ -45,6 +46,7 @@ xer_type_encoder_f BIT_STRING_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#define BIT_STRING_decode_jer OCTET_STRING_decode_jer_binary
jer_type_encoder_f BIT_STRING_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/ENUMERATED.c b/lib/asn1c/common/ENUMERATED.c
new file mode 100644
index 0000000000..97bc9b1ebc
--- /dev/null
+++ b/lib/asn1c/common/ENUMERATED.c
@@ -0,0 +1,92 @@
+/*-
+ * Copyright (c) 2003, 2005, 2006 Lev Walkin .
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include
+#include
+
+/*
+ * ENUMERATED basic type description.
+ */
+static const ber_tlv_tag_t asn_DEF_ENUMERATED_tags[] = {
+ (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
+};
+asn_TYPE_operation_t asn_OP_ENUMERATED = {
+ ASN__PRIMITIVE_TYPE_free,
+#if !defined(ASN_DISABLE_PRINT_SUPPORT)
+ INTEGER_print, /* Implemented in terms of INTEGER */
+#else
+ 0,
+#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
+ INTEGER_compare, /* Implemented in terms of INTEGER */
+ INTEGER_copy, /* Implemented in terms of INTEGER */
+#if !defined(ASN_DISABLE_BER_SUPPORT)
+ ber_decode_primitive,
+ INTEGER_encode_der, /* Implemented in terms of INTEGER */
+#else
+ 0,
+ 0,
+#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */
+#if !defined(ASN_DISABLE_XER_SUPPORT)
+ INTEGER_decode_xer, /* This is temporary! */
+ INTEGER_encode_xer,
+#else
+ 0,
+ 0,
+#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
+#if !defined(ASN_DISABLE_JER_SUPPORT)
+ ENUMERATED_decode_jer,
+ INTEGER_encode_jer,
+#else
+ 0,
+ 0,
+#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
+#if !defined(ASN_DISABLE_OER_SUPPORT)
+ ENUMERATED_decode_oer,
+ ENUMERATED_encode_oer,
+#else
+ 0,
+ 0,
+#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
+#if !defined(ASN_DISABLE_UPER_SUPPORT)
+ ENUMERATED_decode_uper, /* Unaligned PER decoder */
+ ENUMERATED_encode_uper, /* Unaligned PER encoder */
+#else
+ 0,
+ 0,
+#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */
+#if !defined(ASN_DISABLE_APER_SUPPORT)
+ ENUMERATED_decode_aper, /* Aligned PER decoder */
+ ENUMERATED_encode_aper, /* Aligned PER encoder */
+#else
+ 0,
+ 0,
+#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */
+#if !defined(ASN_DISABLE_RFILL_SUPPORT)
+ ENUMERATED_random_fill,
+#else
+ 0,
+#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */
+ 0 /* Use generic outmost tag fetcher */
+};
+asn_TYPE_descriptor_t asn_DEF_ENUMERATED = {
+ "ENUMERATED",
+ "ENUMERATED",
+ &asn_OP_ENUMERATED,
+ asn_DEF_ENUMERATED_tags,
+ sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]),
+ asn_DEF_ENUMERATED_tags, /* Same as above */
+ sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]),
+ {
+#if !defined(ASN_DISABLE_OER_SUPPORT)
+ 0,
+#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
+#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
+ 0,
+#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
+ asn_generic_no_constraint
+ },
+ 0, 0, /* No members */
+ 0 /* No specifics */
+};
diff --git a/lib/asn1c/common/ENUMERATED.h b/lib/asn1c/common/ENUMERATED.h
new file mode 100644
index 0000000000..b1519030bb
--- /dev/null
+++ b/lib/asn1c/common/ENUMERATED.h
@@ -0,0 +1,67 @@
+/*-
+ * Copyright (c) 2003-2017 Lev Walkin . All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef _ENUMERATED_H_
+#define _ENUMERATED_H_
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef INTEGER_t ENUMERATED_t; /* Implemented via INTEGER */
+
+extern asn_TYPE_descriptor_t asn_DEF_ENUMERATED;
+extern asn_TYPE_operation_t asn_OP_ENUMERATED;
+
+#define ENUMERATED_free ASN__PRIMITIVE_TYPE_free
+
+#if !defined(ASN_DISABLE_PRINT_SUPPORT)
+#define ENUMERATED_print INTEGER_print
+#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
+
+#define ENUMERATED_compare INTEGER_compare
+#define ENUMERATED_copy INTEGER_copy
+
+#define ENUMERATED_constraint asn_generic_no_constraint
+
+#if !defined(ASN_DISABLE_BER_SUPPORT)
+#define ENUMERATED_decode_ber ber_decode_primitive
+#define ENUMERATED_encode_der INTEGER_encode_der
+#endif /* !defined(ASN_DISABLE_BER_SUPPORT) */
+
+#if !defined(ASN_DISABLE_XER_SUPPORT)
+#define ENUMERATED_decode_xer INTEGER_decode_xer
+#define ENUMERATED_encode_xer INTEGER_encode_xer
+#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
+
+#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f ENUMERATED_decode_jer;
+#define ENUMERATED_encode_jer INTEGER_encode_jer
+#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
+
+#if !defined(ASN_DISABLE_OER_SUPPORT)
+oer_type_decoder_f ENUMERATED_decode_oer;
+oer_type_encoder_f ENUMERATED_encode_oer;
+#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
+
+#if !defined(ASN_DISABLE_UPER_SUPPORT)
+per_type_decoder_f ENUMERATED_decode_uper;
+per_type_encoder_f ENUMERATED_encode_uper;
+#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */
+#if !defined(ASN_DISABLE_APER_SUPPORT)
+per_type_decoder_f ENUMERATED_decode_aper;
+per_type_encoder_f ENUMERATED_encode_aper;
+#endif /* !defined(ASN_DISABLE_APER_SUPPORT) */
+
+#if !defined(ASN_DISABLE_RFILL_SUPPORT)
+#define ENUMERATED_random_fill INTEGER_random_fill
+#endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ENUMERATED_H_ */
diff --git a/lib/asn1c/common/ENUMERATED_aper.c b/lib/asn1c/common/ENUMERATED_aper.c
new file mode 100644
index 0000000000..58911a4038
--- /dev/null
+++ b/lib/asn1c/common/ENUMERATED_aper.c
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2017 Lev Walkin .
+ * All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#include
+#include
+#include
+
+asn_dec_rval_t
+ENUMERATED_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
+ const asn_TYPE_descriptor_t *td,
+ const asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd) {
+ asn_dec_rval_t rval;
+ ENUMERATED_t *st = (ENUMERATED_t *)*sptr;
+ long value;
+ void *vptr = &value;
+
+ if(!st) {
+ st = (ENUMERATED_t *)(*sptr = CALLOC(1, sizeof(*st)));
+ if(!st) ASN__DECODE_FAILED;
+ }
+
+ rval = NativeEnumerated_decode_aper(opt_codec_ctx, td, constraints,
+ (void **)&vptr, pd);
+ if(rval.code == RC_OK)
+ if(asn_long2INTEGER(st, value))
+ rval.code = RC_FAIL;
+ return rval;
+}
+
+asn_enc_rval_t
+ENUMERATED_encode_aper(const asn_TYPE_descriptor_t *td,
+ const asn_per_constraints_t *constraints,
+ const void *sptr, asn_per_outp_t *po) {
+ const ENUMERATED_t *st = (const ENUMERATED_t *)sptr;
+ long value;
+
+ if(asn_INTEGER2long(st, &value))
+ ASN__ENCODE_FAILED;
+
+ return NativeEnumerated_encode_aper(td, constraints, &value, po);
+}
diff --git a/lib/asn1c/common/GraphicString.c b/lib/asn1c/common/GraphicString.c
index b76118710a..0f2fc39bad 100644
--- a/lib/asn1c/common/GraphicString.c
+++ b/lib/asn1c/common/GraphicString.c
@@ -20,6 +20,7 @@ asn_TYPE_operation_t asn_OP_GraphicString = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare,
+ OCTET_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,
@@ -35,9 +36,11 @@ asn_TYPE_operation_t asn_OP_GraphicString = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_hex,
OCTET_STRING_encode_jer, /* Can't expect it to be ASCII/UTF8 */
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OCTET_STRING_decode_oer,
diff --git a/lib/asn1c/common/GraphicString.h b/lib/asn1c/common/GraphicString.h
index 807e9d6b01..9368e507b2 100644
--- a/lib/asn1c/common/GraphicString.h
+++ b/lib/asn1c/common/GraphicString.h
@@ -23,6 +23,7 @@ extern asn_TYPE_operation_t asn_OP_GraphicString;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define GraphicString_compare OCTET_STRING_compare
+#define GraphicString_copy OCTET_STRING_copy
#define GraphicString_constraint asn_generic_unknown_constraint
@@ -37,6 +38,7 @@ extern asn_TYPE_operation_t asn_OP_GraphicString;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#define GraphicString_decode_jer OCTET_STRING_decode_jer
#define GraphicString_encode_jer OCTET_STRING_encode_jer
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/INTEGER.c b/lib/asn1c/common/INTEGER.c
index 095063fefd..8ea2fffdbd 100644
--- a/lib/asn1c/common/INTEGER.c
+++ b/lib/asn1c/common/INTEGER.c
@@ -22,6 +22,7 @@ asn_TYPE_operation_t asn_OP_INTEGER = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
INTEGER_compare,
+ INTEGER_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
ber_decode_primitive,
INTEGER_encode_der,
@@ -37,9 +38,11 @@ asn_TYPE_operation_t asn_OP_INTEGER = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ INTEGER_decode_jer,
INTEGER_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
INTEGER_decode_oer, /* OER decoder */
@@ -411,6 +414,33 @@ asn_ulong2INTEGER(INTEGER_t *st, unsigned long value) {
return asn_imax2INTEGER(st, value);
}
+int asn_INTEGER2int64(const INTEGER_t *st, int64_t *value) {
+ intmax_t v;
+ if(asn_INTEGER2imax(st, &v) == 0) {
+ if(v < INT64_MIN || v > INT64_MAX) {
+ errno = ERANGE;
+ return -1;
+ }
+ *value = v;
+ return 0;
+ } else {
+ return -1;
+ }
+}
+
+int asn_INTEGER2uint64(const INTEGER_t *st, uint64_t *value) {
+ uintmax_t v;
+ if(asn_INTEGER2umax(st, &v) == 0) {
+ if(v > UINT64_MAX) {
+ errno = ERANGE;
+ return -1;
+ }
+ *value = v;
+ return 0;
+ } else {
+ return -1;
+ }
+}
int
asn_uint642INTEGER(INTEGER_t *st, uint64_t value) {
@@ -736,3 +766,40 @@ INTEGER_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
}
}
+
+int
+INTEGER_copy(const asn_TYPE_descriptor_t *td, void **aptr,
+ const void *bptr) {
+ (void)td;
+ INTEGER_t *a = *aptr;
+ const INTEGER_t *b = bptr;
+
+ if(!b) {
+ if(a) {
+ FREEMEM(a->buf);
+ FREEMEM(a);
+ *aptr = 0;
+ }
+ return 0;
+ }
+
+ if(!a) {
+ a = *aptr = CALLOC(1, sizeof(*a));
+ if(!a) return -1;
+ }
+
+ if(b->size) {
+ uint8_t* buf = MALLOC(b->size);
+ if(!buf) return -1;
+ memcpy(buf, b->buf, b->size);
+ FREEMEM(a->buf);
+ a->buf = buf;
+ a->size = b->size;
+ } else {
+ FREEMEM(a->buf);
+ a->buf = 0;
+ a->size = 0;
+ }
+
+ return 0;
+}
diff --git a/lib/asn1c/common/INTEGER.h b/lib/asn1c/common/INTEGER.h
index 1666e0bce4..5fa1c7b8d1 100644
--- a/lib/asn1c/common/INTEGER.h
+++ b/lib/asn1c/common/INTEGER.h
@@ -47,6 +47,7 @@ asn_struct_print_f INTEGER_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f INTEGER_compare;
+asn_struct_copy_f INTEGER_copy;
#define INTEGER_constraint asn_generic_no_constraint
@@ -61,6 +62,7 @@ xer_type_encoder_f INTEGER_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f INTEGER_decode_jer;
jer_type_encoder_f INTEGER_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
@@ -106,6 +108,8 @@ int asn_INTEGER2long(const INTEGER_t *i, long *l);
int asn_INTEGER2ulong(const INTEGER_t *i, unsigned long *l);
int asn_long2INTEGER(INTEGER_t *i, long l);
int asn_ulong2INTEGER(INTEGER_t *i, unsigned long l);
+int asn_INTEGER2int64(const INTEGER_t *i, int64_t *l);
+int asn_INTEGER2uint64(const INTEGER_t *i, uint64_t *l);
int asn_int642INTEGER(INTEGER_t *i, int64_t l);
int asn_uint642INTEGER(INTEGER_t *i, uint64_t l);
diff --git a/lib/asn1c/common/INTEGER_aper.c b/lib/asn1c/common/INTEGER_aper.c
index fc88268ef2..009c441c82 100644
--- a/lib/asn1c/common/INTEGER_aper.c
+++ b/lib/asn1c/common/INTEGER_aper.c
@@ -57,7 +57,7 @@ INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
int max_range_bytes = (ct->range_bits >> 3) +
(((ct->range_bits % 8) > 0) ? 1 : 0);
int length = 0, i;
- long value = 0;
+ intmax_t value = 0;
for (i = 1; ; i++) {
int upper = 1 << i;
@@ -79,18 +79,18 @@ INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
int buf = per_get_few_bits(pd, 8);
if (buf < 0)
ASN__DECODE_FAILED;
- value += (((long)buf) << (8 * length));
+ value += (((intmax_t)buf) << (8 * length));
}
value += ct->lower_bound;
if((specs && specs->field_unsigned)
- ? asn_uint642INTEGER(st, (unsigned long)value)
- : asn_int642INTEGER(st, value))
+ ? asn_umax2INTEGER(st, (uintmax_t)value)
+ : asn_imax2INTEGER(st, value))
ASN__DECODE_FAILED;
ASN_DEBUG("Got value %ld + low %lld",
- value, (long long int)ct->lower_bound);
+ value, (intmax_t)ct->lower_bound);
} else {
- long value = 0;
+ intmax_t value = 0;
if (ct->range_bits < 8) {
value = per_get_few_bits(pd, ct->range_bits);
if(value < 0) ASN__DECODE_STARVED;
@@ -108,11 +108,11 @@ INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
}
value += ct->lower_bound;
if((specs && specs->field_unsigned)
- ? asn_ulong2INTEGER(st, value)
- : asn_long2INTEGER(st, value))
+ ? asn_umax2INTEGER(st, (uintmax_t)value)
+ : asn_imax2INTEGER(st, value))
ASN__DECODE_FAILED;
ASN_DEBUG("Got value %ld + low %lld",
- value, (long long int)ct->lower_bound);
+ value, (intmax_t)ct->lower_bound);
}
return rval;
} else {
@@ -167,7 +167,7 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
const uint8_t *buf;
const uint8_t *end;
const asn_per_constraint_t *ct;
- long value = 0;
+ intmax_t value = 0;
if(!st || st->size == 0) ASN__ENCODE_FAILED;
@@ -179,26 +179,26 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
if(ct) {
int inext = 0;
if(specs && specs->field_unsigned) {
- unsigned long uval;
- if(asn_INTEGER2ulong(st, &uval))
+ uintmax_t uval;
+ if(asn_INTEGER2umax(st, &uval))
ASN__ENCODE_FAILED;
/* Check proper range */
if(ct->flags & APC_SEMI_CONSTRAINED) {
- if(uval < (unsigned long)ct->lower_bound)
+ if(uval < (uintmax_t)ct->lower_bound)
inext = 1;
} else if(ct->range_bits >= 0) {
- if(uval < (unsigned long)ct->lower_bound
- || uval > (unsigned long)ct->upper_bound)
+ if(uval < (uintmax_t)ct->lower_bound
+ || uval > (uintmax_t)ct->upper_bound)
inext = 1;
}
ASN_DEBUG("Value %lu (%02x/%zu) lb %lld ub %lld %s",
uval, st->buf[0], st->size,
- (long long int)ct->lower_bound,
- (long long int)ct->upper_bound,
+ (intmax_t)ct->lower_bound,
+ (intmax_t)ct->upper_bound,
inext ? "ext" : "fix");
value = uval;
} else {
- if(asn_INTEGER2long(st, &value)) ASN__ENCODE_FAILED;
+ if(asn_INTEGER2imax(st, &value)) ASN__ENCODE_FAILED;
/* Check proper range */
if(ct->flags & APC_SEMI_CONSTRAINED) {
if(value < ct->lower_bound)
@@ -210,8 +210,8 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
}
ASN_DEBUG("Value %lu (%02x/%zu) lb %lld ub %lld %s",
value, st->buf[0], st->size,
- (long long int)ct->lower_bound,
- (long long int)ct->upper_bound,
+ (intmax_t)ct->lower_bound,
+ (intmax_t)ct->upper_bound,
inext ? "ext" : "fix");
}
if(ct->flags & APC_EXTENSIBLE) {
@@ -225,11 +225,11 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
/* X.691, #12.2.2 */
if(ct && ct->range_bits >= 0) {
- unsigned long v;
+ uintmax_t v;
/* #10.5.6 */
ASN_DEBUG("Encoding integer %ld (%lld) with range %d bits",
- value, (long long int)(value - ct->lower_bound),
+ value, (intmax_t)(value - ct->lower_bound),
ct->range_bits);
v = value - ct->lower_bound;
@@ -287,7 +287,7 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
}
if(ct && ct->lower_bound) {
- ASN_DEBUG("Adjust lower bound to %lld", (long long int)ct->lower_bound);
+ ASN_DEBUG("Adjust lower bound to %lld", (intmax_t)ct->lower_bound);
/* TODO: adjust lower bound */
ASN__ENCODE_FAILED;
}
diff --git a/lib/asn1c/common/NULL.c b/lib/asn1c/common/NULL.c
index d160e695f4..3729291471 100644
--- a/lib/asn1c/common/NULL.c
+++ b/lib/asn1c/common/NULL.c
@@ -19,6 +19,7 @@ asn_TYPE_operation_t asn_OP_NULL = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
NULL_compare,
+ NULL_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
NULL_decode_ber,
NULL_encode_der, /* Special handling of DER encoding */
@@ -34,9 +35,11 @@ asn_TYPE_operation_t asn_OP_NULL = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ NULL_decode_jer,
NULL_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
NULL_decode_oer,
@@ -111,3 +114,15 @@ NULL_compare(const asn_TYPE_descriptor_t *td, const void *a, const void *b) {
(void)b;
return 0;
}
+
+int
+NULL_copy(const asn_TYPE_descriptor_t *td, void **a, const void *b) {
+ (void)td;
+
+ if(b && !*a) {
+ *a = CALLOC(1, sizeof(NULL_t));
+ if (!*a) return -1;
+ }
+
+ return 0;
+}
diff --git a/lib/asn1c/common/NULL.h b/lib/asn1c/common/NULL.h
index 726447569a..ca9d6fab9b 100644
--- a/lib/asn1c/common/NULL.h
+++ b/lib/asn1c/common/NULL.h
@@ -27,6 +27,7 @@ asn_struct_print_f NULL_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f NULL_compare;
+asn_struct_copy_f NULL_copy;
#define NULL_constraint asn_generic_no_constraint
@@ -41,6 +42,7 @@ xer_type_encoder_f NULL_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f NULL_decode_jer;
jer_type_encoder_f NULL_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/NativeEnumerated.c b/lib/asn1c/common/NativeEnumerated.c
index aee450c17f..148cb8fb48 100644
--- a/lib/asn1c/common/NativeEnumerated.c
+++ b/lib/asn1c/common/NativeEnumerated.c
@@ -26,6 +26,7 @@ asn_TYPE_operation_t asn_OP_NativeEnumerated = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
NativeInteger_compare,
+ NativeInteger_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
NativeInteger_decode_ber,
NativeInteger_encode_der,
@@ -41,9 +42,11 @@ asn_TYPE_operation_t asn_OP_NativeEnumerated = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ NativeEnumerated_decode_jer,
NativeEnumerated_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
NativeEnumerated_decode_oer,
diff --git a/lib/asn1c/common/NativeEnumerated.h b/lib/asn1c/common/NativeEnumerated.h
index 0c711e3fe4..8c045e5245 100644
--- a/lib/asn1c/common/NativeEnumerated.h
+++ b/lib/asn1c/common/NativeEnumerated.h
@@ -13,6 +13,7 @@
#define _NativeEnumerated_H_
#include
+#include
#ifdef __cplusplus
extern "C" {
@@ -28,6 +29,7 @@ extern asn_TYPE_operation_t asn_OP_NativeEnumerated;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define NativeEnumerated_compare NativeInteger_compare
+#define NativeEnumerated_copy NativeInteger_copy
#define NativeEnumerated_constraint asn_generic_no_constraint
@@ -42,6 +44,7 @@ xer_type_encoder_f NativeEnumerated_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f NativeEnumerated_decode_jer;
jer_type_encoder_f NativeEnumerated_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/NativeEnumerated_aper.c b/lib/asn1c/common/NativeEnumerated_aper.c
index 5c4c2561d4..bd205b1b03 100644
--- a/lib/asn1c/common/NativeEnumerated_aper.c
+++ b/lib/asn1c/common/NativeEnumerated_aper.c
@@ -64,7 +64,7 @@ NativeEnumerated_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
*/
/* XXX handle indefinite index length > 64k */
- value = aper_get_nsnnwn(pd, 65537);
+ value = aper_get_nsnnwn(pd);
if(value < 0) ASN__DECODE_STARVED;
value += specs->extension - 1;
//if(value >= specs->map_count)
@@ -148,9 +148,7 @@ NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td,
ASN_DEBUG("value = %ld, ext = %d, inext = %d, res = %ld",
value, specs->extension, inext,
value - (inext ? (specs->extension - 1) : 0));
- if(aper_put_nsnnwn(po,
- ct->upper_bound - ct->lower_bound + 1,
- value - (inext ? (specs->extension - 1) : 0)))
+ if(aper_put_nsnnwn(po, value - (inext ? (specs->extension - 1) : 0)))
ASN__ENCODE_FAILED;
ASN__ENCODED_OK(er);
diff --git a/lib/asn1c/common/NativeInteger.c b/lib/asn1c/common/NativeInteger.c
index f0309b0d2d..8957b65c34 100644
--- a/lib/asn1c/common/NativeInteger.c
+++ b/lib/asn1c/common/NativeInteger.c
@@ -27,6 +27,7 @@ asn_TYPE_operation_t asn_OP_NativeInteger = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
NativeInteger_compare,
+ NativeInteger_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
NativeInteger_decode_ber,
NativeInteger_encode_der,
@@ -42,9 +43,11 @@ asn_TYPE_operation_t asn_OP_NativeInteger = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ NativeInteger_decode_jer,
NativeInteger_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
NativeInteger_decode_oer, /* OER decoder */
@@ -150,3 +153,30 @@ NativeInteger_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const v
return 1;
}
}
+
+int
+NativeInteger_copy(const asn_TYPE_descriptor_t *td, void **aptr, const void *bptr) {
+ unsigned long *a = *aptr;
+ const unsigned long *b = bptr;
+
+ (void)td;
+
+ /* Check if source has data */
+ if(!b) {
+ /* Clear destination */
+ if(a) {
+ FREEMEM(a);
+ *aptr = 0;
+ }
+ return 0;
+ }
+
+ if(!a) {
+ a = *aptr = MALLOC(sizeof(*a));
+ if(!a) return -1;
+ }
+
+ *a = *b;
+
+ return 0;
+}
diff --git a/lib/asn1c/common/NativeInteger.h b/lib/asn1c/common/NativeInteger.h
index 3a47c11a0a..352926b412 100644
--- a/lib/asn1c/common/NativeInteger.h
+++ b/lib/asn1c/common/NativeInteger.h
@@ -29,6 +29,7 @@ asn_struct_print_f NativeInteger_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f NativeInteger_compare;
+asn_struct_copy_f NativeInteger_copy;
#define NativeInteger_constraint asn_generic_no_constraint
@@ -43,6 +44,7 @@ xer_type_encoder_f NativeInteger_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f NativeInteger_decode_jer;
jer_type_encoder_f NativeInteger_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/NativeInteger_rfill.c b/lib/asn1c/common/NativeInteger_rfill.c
index 0e2cee8e45..fddd149689 100644
--- a/lib/asn1c/common/NativeInteger_rfill.c
+++ b/lib/asn1c/common/NativeInteger_rfill.c
@@ -63,8 +63,10 @@ NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
0, sizeof(variants) / sizeof(variants[0]) - 1)];
}
- if(!constraints) constraints = &td->encoding_constraints;
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
+ if(!constraints || !constraints->per_constraints)
+ constraints = &td->encoding_constraints;
+
const asn_per_constraints_t *ct;
ct = constraints ? constraints->per_constraints : 0;
@@ -74,6 +76,8 @@ NativeInteger_random_fill(const asn_TYPE_descriptor_t *td, void **sptr,
ct->value.upper_bound);
}
}
+#else
+ if(!constraints) constraints = &td->encoding_constraints;
#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
}
diff --git a/lib/asn1c/common/OBJECT_IDENTIFIER.c b/lib/asn1c/common/OBJECT_IDENTIFIER.c
index 5cf2d6066f..c5ab38ea3e 100644
--- a/lib/asn1c/common/OBJECT_IDENTIFIER.c
+++ b/lib/asn1c/common/OBJECT_IDENTIFIER.c
@@ -24,6 +24,7 @@ asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare, /* Implemented in terms of a string comparison */
+ OCTET_STRING_copy, /* Implemented in terms of a string copy */
#if !defined(ASN_DISABLE_BER_SUPPORT)
ber_decode_primitive,
der_encode_primitive,
@@ -39,9 +40,11 @@ asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OBJECT_IDENTIFIER_decode_jer,
OBJECT_IDENTIFIER_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OBJECT_IDENTIFIER_decode_oer,
diff --git a/lib/asn1c/common/OBJECT_IDENTIFIER.h b/lib/asn1c/common/OBJECT_IDENTIFIER.h
index f878055c60..cef8c6cde1 100644
--- a/lib/asn1c/common/OBJECT_IDENTIFIER.h
+++ b/lib/asn1c/common/OBJECT_IDENTIFIER.h
@@ -32,6 +32,7 @@ asn_struct_print_f OBJECT_IDENTIFIER_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define OBJECT_IDENTIFIER_compare OCTET_STRING_compare
+#define OBJECT_IDENTIFIER_copy OCTET_STRING_copy
asn_constr_check_f OBJECT_IDENTIFIER_constraint;
@@ -46,6 +47,7 @@ xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f OBJECT_IDENTIFIER_decode_jer;
jer_type_encoder_f OBJECT_IDENTIFIER_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/OCTET_STRING.c b/lib/asn1c/common/OCTET_STRING.c
index d0bdeade72..fc983b4e2e 100644
--- a/lib/asn1c/common/OCTET_STRING.c
+++ b/lib/asn1c/common/OCTET_STRING.c
@@ -26,6 +26,7 @@ asn_TYPE_operation_t asn_OP_OCTET_STRING = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare,
+ OCTET_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber,
OCTET_STRING_encode_der,
@@ -41,9 +42,11 @@ asn_TYPE_operation_t asn_OP_OCTET_STRING = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_hex,
OCTET_STRING_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OCTET_STRING_decode_oer,
@@ -247,6 +250,43 @@ OCTET_STRING_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
}
+int
+OCTET_STRING_copy(const asn_TYPE_descriptor_t *td, void **aptr,
+ const void *bptr) {
+ const asn_OCTET_STRING_specifics_t *specs =
+ td->specifics ? (const asn_OCTET_STRING_specifics_t *)td->specifics
+ : &asn_SPC_OCTET_STRING_specs;
+ OCTET_STRING_t *a = *aptr;
+ const OCTET_STRING_t *b = bptr;
+
+ if(!b) {
+ if(a) {
+ FREEMEM(a->buf);
+ a->buf = 0;
+ a->size = 0;
+ FREEMEM(a);
+ }
+ *aptr = 0;
+ return 0;
+ }
+
+ if(!a) {
+ a = *aptr = (OCTET_STRING_t *)CALLOC(1, specs->struct_size);
+ if(!a) return -1;
+ }
+
+ void *buf = MALLOC(b->size + 1);
+ if(!buf) return -1;
+ memcpy(buf, b->buf, b->size);
+ ((uint8_t *)buf)[b->size] = '\0';
+
+ FREEMEM(a->buf);
+ a->buf = (uint8_t *)buf;
+ a->size = b->size;
+
+ return 0;
+}
+
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
int
OCTET_STRING_per_get_characters(asn_per_data_t *po, uint8_t *buf,
diff --git a/lib/asn1c/common/OCTET_STRING.h b/lib/asn1c/common/OCTET_STRING.h
index b1ace1409e..1340865da3 100644
--- a/lib/asn1c/common/OCTET_STRING.h
+++ b/lib/asn1c/common/OCTET_STRING.h
@@ -29,6 +29,7 @@ asn_struct_print_f OCTET_STRING_print_utf8;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f OCTET_STRING_compare;
+asn_struct_copy_f OCTET_STRING_copy;
#define OCTET_STRING_constraint asn_generic_no_constraint
@@ -46,6 +47,8 @@ xer_type_encoder_f OCTET_STRING_encode_xer_utf8;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f OCTET_STRING_decode_jer_hex; /* Hexadecimal */
+jer_type_decoder_f OCTET_STRING_decode_jer_utf8; /* ASCII/UTF-8 */
jer_type_encoder_f OCTET_STRING_encode_jer;
jer_type_encoder_f OCTET_STRING_encode_jer_utf8;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/OCTET_STRING_aper.c b/lib/asn1c/common/OCTET_STRING_aper.c
index 0373fe6ad5..2601383194 100644
--- a/lib/asn1c/common/OCTET_STRING_aper.c
+++ b/lib/asn1c/common/OCTET_STRING_aper.c
@@ -179,7 +179,6 @@ OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
raw_len = aper_get_length(pd, csiz->lower_bound, csiz->upper_bound,
csiz->effective_bits, &repeat);
if(raw_len < 0) RETURN(RC_WMORE);
- raw_len += csiz->lower_bound;
ASN_DEBUG("Got PER length eb %ld, len %ld, %s (%s)",
(long)csiz->effective_bits, (long)raw_len,
diff --git a/lib/asn1c/common/OPEN_TYPE.c b/lib/asn1c/common/OPEN_TYPE.c
index c9afecffed..75f9b95851 100644
--- a/lib/asn1c/common/OPEN_TYPE.c
+++ b/lib/asn1c/common/OPEN_TYPE.c
@@ -14,6 +14,7 @@ asn_TYPE_operation_t asn_OP_OPEN_TYPE = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OPEN_TYPE_compare,
+ OPEN_TYPE_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OPEN_TYPE_decode_ber,
OPEN_TYPE_encode_der,
@@ -29,9 +30,11 @@ asn_TYPE_operation_t asn_OP_OPEN_TYPE = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OPEN_TYPE_decode_jer,
OPEN_TYPE_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OPEN_TYPE_decode_oer,
diff --git a/lib/asn1c/common/OPEN_TYPE.h b/lib/asn1c/common/OPEN_TYPE.h
index 5e979773e0..c4b5d1b815 100644
--- a/lib/asn1c/common/OPEN_TYPE.h
+++ b/lib/asn1c/common/OPEN_TYPE.h
@@ -33,6 +33,7 @@ extern "C" {
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define OPEN_TYPE_compare CHOICE_compare
+#define OPEN_TYPE_copy CHOICE_copy
#define OPEN_TYPE_constraint CHOICE_constraint
@@ -59,6 +60,13 @@ asn_dec_rval_t OPEN_TYPE_xer_get(
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+asn_dec_rval_t OPEN_TYPE_jer_get(
+ const asn_codec_ctx_t *opt_codec_ctx,
+ const asn_TYPE_descriptor_t *parent_type,
+ void *parent_structure,
+ const asn_TYPE_member_t *element,
+ const void *ptr, size_t size);
+#define OPEN_TYPE_decode_jer NULL
#define OPEN_TYPE_encode_jer CHOICE_encode_jer
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
@@ -70,7 +78,10 @@ asn_dec_rval_t OPEN_TYPE_oer_get(
asn_TYPE_member_t *element, const void *ptr,
size_t size);
#define OPEN_TYPE_decode_oer NULL
-#define OPEN_TYPE_encode_oer CHOICE_encode_oer
+asn_enc_rval_t OPEN_TYPE_encode_oer(
+ const asn_TYPE_descriptor_t *type_descriptor,
+ const asn_oer_constraints_t *constraints, const void *struct_ptr,
+ asn_app_consume_bytes_f *consume_bytes_cb, void *app_key);
#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
#if !defined(ASN_DISABLE_UPER_SUPPORT)
diff --git a/lib/asn1c/common/OPEN_TYPE_aper.c b/lib/asn1c/common/OPEN_TYPE_aper.c
index 3e2ab18881..78799ff6d2 100644
--- a/lib/asn1c/common/OPEN_TYPE_aper.c
+++ b/lib/asn1c/common/OPEN_TYPE_aper.c
@@ -53,7 +53,8 @@ OPEN_TYPE_aper_get(const asn_codec_ctx_t *opt_codec_ctx,
(char *)*memb_ptr2
+ elm->type->elements[selected.presence_index - 1].memb_offset;
- rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor, NULL,
+ rv = aper_open_type_get(opt_codec_ctx, selected.type_descriptor,
+ elm->type->elements[selected.presence_index - 1].encoding_constraints.per_constraints,
&inner_value, pd);
switch(rv.code) {
case RC_OK:
@@ -110,7 +111,7 @@ OPEN_TYPE_encode_aper(const asn_TYPE_descriptor_t *td,
memb_ptr = (const char *)sptr + elm->memb_offset;
}
- if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) {
+ if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints, memb_ptr, po) < 0) {
ASN__ENCODE_FAILED;
}
diff --git a/lib/asn1c/common/ObjectDescriptor.c b/lib/asn1c/common/ObjectDescriptor.c
index c311a9291d..4b3560af19 100644
--- a/lib/asn1c/common/ObjectDescriptor.c
+++ b/lib/asn1c/common/ObjectDescriptor.c
@@ -20,6 +20,7 @@ asn_TYPE_operation_t asn_OP_ObjectDescriptor = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare,
+ OCTET_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,
@@ -35,9 +36,11 @@ asn_TYPE_operation_t asn_OP_ObjectDescriptor = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_utf8,
OCTET_STRING_encode_jer_utf8,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
0,
diff --git a/lib/asn1c/common/ObjectDescriptor.h b/lib/asn1c/common/ObjectDescriptor.h
index 852c45d036..b70c0cbaf0 100644
--- a/lib/asn1c/common/ObjectDescriptor.h
+++ b/lib/asn1c/common/ObjectDescriptor.h
@@ -35,6 +35,7 @@ extern asn_TYPE_operation_t asn_OP_ObjectDescriptor;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#define ObjectDescriptor_decode_jer OCTET_STRING_decode_jer_utf8
#define ObjectDescriptor_encode_jer OCTET_STRING_encode_jer_utf8
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/PrintableString.c b/lib/asn1c/common/PrintableString.c
index f046f12e18..da4dabc727 100644
--- a/lib/asn1c/common/PrintableString.c
+++ b/lib/asn1c/common/PrintableString.c
@@ -57,6 +57,7 @@ asn_TYPE_operation_t asn_OP_PrintableString = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare,
+ OCTET_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,
@@ -72,9 +73,11 @@ asn_TYPE_operation_t asn_OP_PrintableString = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_utf8,
OCTET_STRING_encode_jer_utf8,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OCTET_STRING_decode_oer,
diff --git a/lib/asn1c/common/PrintableString.h b/lib/asn1c/common/PrintableString.h
index c24861d5c6..aa37f39a3f 100644
--- a/lib/asn1c/common/PrintableString.h
+++ b/lib/asn1c/common/PrintableString.h
@@ -23,6 +23,7 @@ extern asn_TYPE_operation_t asn_OP_PrintableString;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define PrintableString_compare OCTET_STRING_compare
+#define PrintableString_copy OCTET_STRING_copy
asn_constr_check_f PrintableString_constraint;
@@ -37,6 +38,7 @@ asn_constr_check_f PrintableString_constraint;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#define PrintableString_decode_jer OCTET_STRING_decode_jer_utf8
#define PrintableString_encode_jer OCTET_STRING_encode_jer_utf8
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/UTF8String.c b/lib/asn1c/common/UTF8String.c
index 51923b7610..bb627d9882 100644
--- a/lib/asn1c/common/UTF8String.c
+++ b/lib/asn1c/common/UTF8String.c
@@ -21,6 +21,7 @@ asn_TYPE_operation_t asn_OP_UTF8String = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare,
+ OCTET_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,
@@ -36,9 +37,11 @@ asn_TYPE_operation_t asn_OP_UTF8String = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_utf8,
OCTET_STRING_encode_jer_utf8,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OCTET_STRING_decode_oer,
diff --git a/lib/asn1c/common/UTF8String.h b/lib/asn1c/common/UTF8String.h
index 3a31def822..e1fefeee64 100644
--- a/lib/asn1c/common/UTF8String.h
+++ b/lib/asn1c/common/UTF8String.h
@@ -23,6 +23,7 @@ asn_struct_print_f UTF8String_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define UTF8String_compare OCTET_STRING_compare
+#define UTF8String_copy OCTET_STRING_copy
asn_constr_check_f UTF8String_constraint;
@@ -37,6 +38,7 @@ asn_constr_check_f UTF8String_constraint;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#define UTF8String_decode_jer OCTET_STRING_decode_jer_utf8
#define UTF8String_encode_jer OCTET_STRING_encode_jer_utf8
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/VisibleString.c b/lib/asn1c/common/VisibleString.c
index ea4c43bd58..f583b6203d 100644
--- a/lib/asn1c/common/VisibleString.c
+++ b/lib/asn1c/common/VisibleString.c
@@ -27,6 +27,7 @@ asn_TYPE_operation_t asn_OP_VisibleString = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
OCTET_STRING_compare,
+ OCTET_STRING_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */
OCTET_STRING_encode_der,
@@ -42,9 +43,11 @@ asn_TYPE_operation_t asn_OP_VisibleString = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ OCTET_STRING_decode_jer_utf8,
OCTET_STRING_encode_jer_utf8,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
OCTET_STRING_decode_oer,
diff --git a/lib/asn1c/common/VisibleString.h b/lib/asn1c/common/VisibleString.h
index 4ed5763ecc..013f12f0c9 100644
--- a/lib/asn1c/common/VisibleString.h
+++ b/lib/asn1c/common/VisibleString.h
@@ -23,6 +23,7 @@ extern asn_TYPE_operation_t asn_OP_VisibleString;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
#define VisibleString_compare OCTET_STRING_compare
+#define VisibleString_copy OCTET_STRING_copy
asn_constr_check_f VisibleString_constraint;
@@ -37,6 +38,7 @@ asn_constr_check_f VisibleString_constraint;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#define VisibleString_decode_jer OCTET_STRING_decode_jer_hex
#define VisibleString_encode_jer OCTET_STRING_encode_jer
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/aper_support.c b/lib/asn1c/common/aper_support.c
index 1f34c60d6b..6731c1c766 100644
--- a/lib/asn1c/common/aper_support.c
+++ b/lib/asn1c/common/aper_support.c
@@ -25,8 +25,7 @@ aper_get_length(asn_per_data_t *pd, ssize_t lb, ssize_t ub,
*repeat = 0;
if (constrained && ub < 65536) {
- int range = ub - lb + 1;
- return aper_get_nsnnwn(pd, range);
+ return aper_get_constrained_whole_number(pd, lb, ub);
}
if (aper_get_align(pd) < 0)
@@ -70,55 +69,117 @@ aper_get_nslength(asn_per_data_t *pd) {
}
ssize_t
-aper_get_nsnnwn(asn_per_data_t *pd, int range) {
- ssize_t value;
- int bytes = 0;
+aper_get_nsnnwn(asn_per_data_t *pd) {
+ int b;
+ int length;
- ASN_DEBUG("getting nsnnwn with range %d", range);
+ ASN_DEBUG("getting nsnnwn");
- if(range <= 255) {
- int i;
+ b = per_get_few_bits(pd, 1);
+ if (b == -1)
+ return -1;
- if (range < 0) return -1;
- /* 1 -> 8 bits */
- for (i = 1; i <= 8; i++) {
- int upper = 1 << i;
- if (upper >= range)
- break;
- }
- value = per_get_few_bits(pd, i);
- return value;
- } else if (range == 256){
- /* 1 byte */
- bytes = 1;
- } else if (range <= 65536) {
- /* 2 bytes */
- bytes = 2;
- } else {
- //return -1;
- int length;
+ /* X.691 2002 10.6.1 */
+ if (b == 0)
+ return per_get_few_bits(pd, 6);
+
+ if (aper_get_align(pd) < 0)
+ return -1;
- /* handle indefinite range */
- length = per_get_few_bits(pd, 1);
- if (length == 0)
- return per_get_few_bits(pd, 6);
+ /* X.691 2002 10.6.2 */
+ /* X.691 2002 10.9.3.5 */
+ b = per_get_few_bits(pd, 1);
+ if (b == -1)
+ return -1;
+
+ if (b == 1) {
+ /* other 10.9.3.x cases not handled, it's doubtful we reach them in practice */
+ ASN_DEBUG("todo: X.691 2002 10.9.3.x");
+ return -1;
+ }
+
+ /* X.691 2002 10.9.3.6 */
+ length = per_get_few_bits(pd, 7);
+ if (length > 4) {
+ /* todo */
+ ASN_DEBUG("todo: X.691 2002 10.9.3.6 for length > 4");
+ return -1;
+ }
+ ASN_DEBUG("length %d\n", length);
+
+ /* todo: 0xffffffff will be seen as -1 and will lead to decoding failure */
+ return per_get_few_bits(pd, length * 8);
+}
- if (aper_get_align(pd) < 0)
+/* X.691 2002 10.5 - Decoding of a constrained whole number */
+long
+aper_get_constrained_whole_number(asn_per_data_t *pd, long lb, long ub) {
+ assert(ub >= lb);
+ long range = ub - lb + 1;
+ int range_len;
+ int value_len;
+ long value;
+
+ ASN_DEBUG("aper get constrained_whole_number with lb %ld and ub %ld", lb, ub);
+
+ /* X.691 2002 10.5.4 */
+ if (range == 1)
+ return lb;
+
+ /* X.691 2002 10.5.7.1 - The bit-field case. */
+ if (range <= 255) {
+ int bitfield_size = 8;
+ for (bitfield_size = 8; bitfield_size >= 2; bitfield_size--)
+ if ((range - 1) & (1 << (bitfield_size-1)))
+ break;
+ value = per_get_few_bits(pd, bitfield_size);
+ if (value < 0 || value >= range)
return -1;
+ return value + lb;
+ }
- length = per_get_few_bits(pd, 8);
- /* the length is not likely to be that big */
- if (length > 4)
+ /* X.691 2002 10.5.7.2 - The one-octet case. */
+ if (range == 256) {
+ if (aper_get_align(pd))
return -1;
- value = 0;
- if (per_get_many_bits(pd, (uint8_t *)&value, 0, length * 8) < 0)
+ value = per_get_few_bits(pd, 8);
+ if (value < 0 || value >= range)
return -1;
- return value;
+ return value + lb;
}
- if (aper_get_align(pd) < 0)
+
+ /* X.691 2002 10.5.7.3 - The two-octet case. */
+ if (range <= 65536) {
+ if (aper_get_align(pd))
+ return -1;
+ value = per_get_few_bits(pd, 16);
+ if (value < 0 || value >= range)
+ return -1;
+ return value + lb;
+ }
+
+ /* X.691 2002 10.5.7.4 - The indefinite length case. */
+ /* since we limit input to be 'long' we don't handle all numbers */
+ /* and so length determinant is retrieved as X.691 2002 10.9.3.3 */
+ /* number of bytes to store the range */
+ for (range_len = 3; ; range_len++) {
+ long bits = ((long)1) << (8 * range_len);
+ if (range - 1 < bits)
+ break;
+ }
+ value_len = aper_get_constrained_whole_number(pd, 1, range_len);
+ if (value_len == -1)
+ return -1;
+ if (value_len > 4) {
+ ASN_DEBUG("todo: aper_get_constrained_whole_number: value_len > 4");
+ return -1;
+ }
+ if (aper_get_align(pd))
+ return -1;
+ value = per_get_few_bits(pd, value_len * 8);
+ if (value < 0 || value >= range)
return -1;
- value = per_get_few_bits(pd, 8 * bytes);
- return value;
+ return value + lb;
}
int aper_put_align(asn_per_outp_t *po) {
@@ -142,11 +203,9 @@ aper_put_length(asn_per_outp_t *po, ssize_t lb, ssize_t ub, size_t n, int *need_
ASN_DEBUG("APER put length %zu with range (%zd..%zd)", n, lb, ub);
- /* 11.9 X.691 Note 2 */
- if (constrained && ub < 65536) {
- int range = ub - lb + 1;
- return aper_put_nsnnwn(po, range, n) ? -1 : (ssize_t)n;
- }
+ /* X.691 2002 10.9.3.3 */
+ if (constrained && ub < 65536)
+ return aper_put_constrained_whole_number(po, lb, ub, n + lb) ? -1 : (ssize_t)n;
if (aper_put_align(po) < 0)
return -1;
@@ -189,51 +248,113 @@ aper_put_nslength(asn_per_outp_t *po, size_t length) {
}
int
-aper_put_nsnnwn(asn_per_outp_t *po, int range, int number) {
- int bytes;
+aper_put_nsnnwn(asn_per_outp_t *po, int number) {
+ int len;
+
+ ASN_DEBUG("aper put nsnnwn %d", number);
+
+ if (number <= 63) {
+ if (per_put_few_bits(po, 0, 1))
+ return -1;
+ return per_put_few_bits(po, number, 6);
+ }
- ASN_DEBUG("aper put nsnnwn %d with range %d", number, range);
- /* 10.5.7.1 X.691 */
- if(range < 0) {
+ if (per_put_few_bits(po, 1, 1))
+ return -1;
+
+ if (number < 256) {
+ len = 1;
+ } else if (number < 65536) {
+ len = 2;
+ } else { /* number > 64K */
int i;
- for (i = 1; ; i++) {
+ for (i = 3; ; i++) {
int bits = 1 << (8 * i);
- if (number <= bits)
+ if (number < bits)
break;
}
- bytes = i;
- assert(i <= 4);
+ len = i;
}
- if(range <= 255) {
- int i;
- for (i = 1; i <= 8; i++) {
- int bits = 1 << i;
- if (range <= bits)
- break;
- }
- return per_put_few_bits(po, number, i);
- } else if(range == 256) {
- if (number >= range)
+
+ if (aper_put_align(po) < 0)
+ return -1;
+
+ /* put the length which is a non-constrained whole number */
+ if (len <= 127) {
+ if(per_put_few_bits(po, 0, 1))
return -1;
- bytes = 1;
- } else if(range <= 65536) {
- if (number >= range)
+ if(per_put_few_bits(po, len, 7))
return -1;
- bytes = 2;
- } else { /* Ranges > 64K */
- int i;
- for (i = 1; ; i++) {
- int bits = 1 << (8 * i);
- if (range <= bits)
- break;
- }
- assert(i <= 4);
- bytes = i;
+ } else {
+ /* todo but not big problem, it's very doubtful that the
+ * number of bytes to encode 'number' will be > 127
+ */
+ return -1;
}
if(aper_put_align(po) < 0) /* Aligning on octet */
return -1;
-/* if(per_put_few_bits(po, bytes, 8))
+ return per_put_few_bits(po, number, 8 * len);
+}
+
+/* X.691 2002 10.5 - Encoding of a constrained whole number */
+int
+aper_put_constrained_whole_number(asn_per_outp_t *po, long lb, long ub, long number) {
+ assert(ub >= lb);
+ long range = ub - lb + 1;
+ long value = number - lb;
+ int range_len;
+ int value_len;
+
+ ASN_DEBUG("aper put constrained_whole_number %ld with lb %ld and ub %ld", number, lb, ub);
+
+ if (number < lb || number > ub)
+ return -1;
+
+ /* X.691 2002 10.5.4 */
+ if (range == 1)
+ return 0;
+
+ /* X.691 2002 10.5.7.1 - The bit-field case. */
+ if (range <= 255) {
+ int bitfield_size = 8;
+ for (bitfield_size = 8; bitfield_size >= 2; bitfield_size--)
+ if ((range - 1) & (1 << (bitfield_size-1)))
+ break;
+ return per_put_few_bits(po, value, bitfield_size);
+ }
+
+ /* X.691 2002 10.5.7.2 - The one-octet case. */
+ if (range == 256) {
+ if (aper_put_align(po))
+ return -1;
+ return per_put_few_bits(po, value, 8);
+ }
+
+ /* X.691 2002 10.5.7.3 - The two-octet case. */
+ if (range <= 65536) {
+ if (aper_put_align(po))
+ return -1;
+ return per_put_few_bits(po, value, 16);
+ }
+
+ /* X.691 2002 10.5.7.4 - The indefinite length case. */
+ /* since we limit input to be 'long' we don't handle all numbers */
+ /* and so length determinant is stored as X.691 2002 10.9.3.3 */
+ /* number of bytes to store the range */
+ for (range_len = 3; ; range_len++) {
+ int bits = 1 << (8 * range_len);
+ if (range - 1 < bits)
+ break;
+ }
+ /* number of bytes to store the value */
+ for (value_len = 1; ; value_len++) {
+ long bits = ((long)1) << (8 * value_len);
+ if (value < bits)
+ break;
+ }
+ if (aper_put_constrained_whole_number(po, 1, range_len, value_len))
+ return -1;
+ if (aper_put_align(po))
return -1;
-*/
- return per_put_few_bits(po, number, 8 * bytes);
+ return per_put_few_bits(po, value, value_len * 8);
}
diff --git a/lib/asn1c/common/aper_support.h b/lib/asn1c/common/aper_support.h
index a3724455c8..62d37905e7 100644
--- a/lib/asn1c/common/aper_support.h
+++ b/lib/asn1c/common/aper_support.h
@@ -27,7 +27,12 @@ ssize_t aper_get_nslength(asn_per_data_t *pd);
/*
* Get the normally small non-negative whole number.
*/
-ssize_t aper_get_nsnnwn(asn_per_data_t *pd, int range);
+ssize_t aper_get_nsnnwn(asn_per_data_t *pd);
+
+/*
+ * Get the constrained whole number.
+ */
+long aper_get_constrained_whole_number(asn_per_data_t *po, long lb, long ub);
/*
* X.691 (08/2015) #11.9 "General rules for encoding a length determinant"
@@ -54,7 +59,12 @@ int aper_put_nslength(asn_per_outp_t *po, size_t length);
/*
* Put the normally small non-negative whole number.
*/
-int aper_put_nsnnwn(asn_per_outp_t *po, int range, int number);
+int aper_put_nsnnwn(asn_per_outp_t *po, int number);
+
+/*
+ * Put the constrained whole number.
+ */
+int aper_put_constrained_whole_number(asn_per_outp_t *po, long lb, long ub, long number);
#ifdef __cplusplus
}
diff --git a/lib/asn1c/common/asn_application.c b/lib/asn1c/common/asn_application.c
index 7992185b5f..4309593d07 100644
--- a/lib/asn1c/common/asn_application.c
+++ b/lib/asn1c/common/asn_application.c
@@ -229,6 +229,9 @@ asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx,
#if !defined(ASN_DISABLE_XER_SUPPORT)
enum xer_encoder_flags_e xer_flags = XER_F_CANONICAL;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
+#if !defined(ASN_DISABLE_JER_SUPPORT)
+ enum jer_encoder_flags_e jer_flags = JER_F;
+#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
(void)opt_codec_ctx; /* Parameters are not checked on encode yet. */
@@ -432,9 +435,15 @@ asn_encode_internal(const asn_codec_ctx_t *opt_codec_ctx,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ case ATS_JER_MINIFIED:
+ /* Currently JER_F and JER_F_MINIFIED have opposite purposes
+ * so we just flip the flag. */
+ jer_flags &= ~JER_F;
+ jer_flags |= JER_F_MINIFIED;
+ /* Fall through. */
case ATS_JER:
if(td->op->jer_encoder) {
- er = jer_encode(td, sptr, callback, callback_key);
+ er = jer_encode(td, sptr, jer_flags, callback, callback_key);
if(er.encoded == -1) {
if(er.failed_type && er.failed_type->op->jer_encoder) {
errno = EBADF; /* Structure has incorrect form. */
@@ -533,6 +542,15 @@ asn_decode(const asn_codec_ctx_t *opt_codec_ctx,
errno = ENOENT;
ASN__DECODE_FAILED;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
+
+ case ATS_JER:
+ case ATS_JER_MINIFIED:
+#if !defined(ASN_DISABLE_JER_SUPPORT)
+ return jer_decode(opt_codec_ctx, td, sptr, buffer, size);
+#else
+ errno = ENOENT;
+ ASN__DECODE_FAILED;
+#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
}
}
diff --git a/lib/asn1c/common/asn_application.h b/lib/asn1c/common/asn_application.h
index bf10cd3e2d..355bc84583 100644
--- a/lib/asn1c/common/asn_application.h
+++ b/lib/asn1c/common/asn_application.h
@@ -61,7 +61,13 @@ enum asn_transfer_syntax {
*/
ATS_BASIC_XER,
ATS_CANONICAL_XER,
+ /*
+ * X.697:
+ * JER: JSON Encoding Rules.
+ * MINIFIED produces a whitespace-free JSON.
+ */
ATS_JER,
+ ATS_JER_MINIFIED,
};
/*
diff --git a/lib/asn1c/common/asn_codecs_prim.h b/lib/asn1c/common/asn_codecs_prim.h
index 5bbd9cfbc8..8647ab9f71 100644
--- a/lib/asn1c/common/asn_codecs_prim.h
+++ b/lib/asn1c/common/asn_codecs_prim.h
@@ -49,6 +49,32 @@ asn_dec_rval_t xer_decode_primitive(
xer_primitive_body_decoder_f *prim_body_decoder);
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
+#if !defined(ASN_DISABLE_JER_SUPPORT)
+/*
+ * A callback specification for the jer_decode_primitive() function below.
+ */
+enum jer_pbd_rval {
+ JPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */
+ JPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */
+ JPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */
+ JPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */
+ JPBD_BODY_CONSUMED /* Body is recognized and consumed */
+};
+typedef enum jer_pbd_rval(jer_primitive_body_decoder_f)(
+ const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf,
+ size_t chunk_size);
+
+/*
+ * Specific function to decode simple primitive types.
+ * Also see jer_decode_general() in jer_decoder.h
+ */
+asn_dec_rval_t jer_decode_primitive(
+ const asn_codec_ctx_t *opt_codec_ctx,
+ const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr,
+ size_t struct_size, const void *buf_ptr, size_t size,
+ jer_primitive_body_decoder_f *prim_body_decoder);
+#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/asn1c/common/asn_config.h b/lib/asn1c/common/asn_config.h
index 7c3befe479..dd73c7e9ec 100644
--- a/lib/asn1c/common/asn_config.h
+++ b/lib/asn1c/common/asn_config.h
@@ -4,3 +4,4 @@
#define ASN_DISABLE_XER_SUPPORT 1
#define ASN_DISABLE_OER_SUPPORT 1
#define ASN_DISABLE_UPER_SUPPORT 1
+#define ASN_DISABLE_JER_SUPPORT 1
diff --git a/lib/asn1c/common/asn_internal.c b/lib/asn1c/common/asn_internal.c
index c2a8108e79..1b282661dc 100644
--- a/lib/asn1c/common/asn_internal.c
+++ b/lib/asn1c/common/asn_internal.c
@@ -26,7 +26,9 @@ asn__format_to_callback(int (*cb)(const void *, size_t, void *key), void *key,
buf_size <<= 1;
if(buf == scratch) {
buf = MALLOC(buf_size);
- if(!buf) return -1;
+ if(!buf) {
+ return -1;
+ }
} else {
void *p = REALLOC(buf, buf_size);
if(!p) {
diff --git a/lib/asn1c/common/asn_random_fill.c b/lib/asn1c/common/asn_random_fill.c
index 15771b6c7c..4d14cbfdc2 100644
--- a/lib/asn1c/common/asn_random_fill.c
+++ b/lib/asn1c/common/asn_random_fill.c
@@ -6,6 +6,7 @@
#include
#include
#include
+#include
int
asn_random_fill(const struct asn_TYPE_descriptor_s *td, void **struct_ptr,
diff --git a/lib/asn1c/common/constr_CHOICE.c b/lib/asn1c/common/constr_CHOICE.c
index 5f52e3d8bf..2a20583a1d 100644
--- a/lib/asn1c/common/constr_CHOICE.c
+++ b/lib/asn1c/common/constr_CHOICE.c
@@ -13,6 +13,7 @@ asn_TYPE_operation_t asn_OP_CHOICE = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
CHOICE_compare,
+ CHOICE_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
CHOICE_decode_ber,
CHOICE_encode_der,
@@ -28,9 +29,11 @@ asn_TYPE_operation_t asn_OP_CHOICE = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ CHOICE_decode_jer,
CHOICE_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
CHOICE_decode_oer,
@@ -154,13 +157,14 @@ CHOICE_constraint(const asn_TYPE_descriptor_t *td, const void *sptr,
void
CHOICE_free(const asn_TYPE_descriptor_t *td, void *ptr,
enum asn_struct_free_method method) {
- const asn_CHOICE_specifics_t *specs =
- (const asn_CHOICE_specifics_t *)td->specifics;
+ const asn_CHOICE_specifics_t *specs;
unsigned present;
if(!td || !ptr)
return;
+ specs = (const asn_CHOICE_specifics_t *)td->specifics;
+
ASN_DEBUG("Freeing %s as CHOICE", td->name);
/*
@@ -311,6 +315,59 @@ CHOICE_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bp
}
}
+int
+CHOICE_copy(const asn_TYPE_descriptor_t *td, void **aptr, const void *bptr) {
+ if(!td) return -1;
+
+ void *st = *aptr;
+ const asn_CHOICE_specifics_t *specs =
+ (const asn_CHOICE_specifics_t *)td->specifics;
+ const asn_TYPE_member_t *elm; /* CHOICE's element */
+ int present;
+ int ret;
+ void *amemb;
+ void **amembp;
+ const void *bmemb;
+
+ if(!bptr) {
+ if(st) {
+ ASN_STRUCT_FREE(*td, st);
+ *aptr = NULL;
+ }
+ return 0;
+ }
+
+ if(!st) {
+ st = *aptr = CALLOC(1, specs->struct_size);
+ if(!st) return -1;
+ }
+
+ present = _fetch_present_idx(bptr,
+ specs->pres_offset, specs->pres_size);
+
+ if(present <= 0 && (unsigned)present > td->elements_count) return -1;
+ --present;
+
+ elm = &td->elements[present];
+ if(elm->flags & ATF_POINTER) {
+ /* Member is a pointer to another structure */
+ amembp = (void **)((char *)st + elm->memb_offset);
+ bmemb = *(const void* const*)((const char*)bptr + elm->memb_offset);
+ } else {
+ amemb = (char *)st + elm->memb_offset;
+ amembp = &amemb;
+ bmemb = (const void*)((const char*)bptr + elm->memb_offset);
+ }
+ ret = elm->type->op->copy_struct(elm->type, amembp, bmemb);
+ if (ret != 0) return ret;
+
+ _set_present_idx(st,
+ specs->pres_offset,
+ specs->pres_size, present + 1);
+
+ return 0;
+}
+
/*
* Return the 1-based choice variant presence index.
* Returns 0 in case of error.
diff --git a/lib/asn1c/common/constr_CHOICE.h b/lib/asn1c/common/constr_CHOICE.h
index 03d606c88c..1bec3cab88 100644
--- a/lib/asn1c/common/constr_CHOICE.h
+++ b/lib/asn1c/common/constr_CHOICE.h
@@ -46,6 +46,7 @@ asn_struct_print_f CHOICE_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f CHOICE_compare;
+asn_struct_copy_f CHOICE_copy;
asn_constr_check_f CHOICE_constraint;
@@ -60,6 +61,7 @@ xer_type_encoder_f CHOICE_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f CHOICE_decode_jer;
jer_type_encoder_f CHOICE_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/constr_CHOICE_aper.c b/lib/asn1c/common/constr_CHOICE_aper.c
index 0d356f7f9f..0f07423339 100644
--- a/lib/asn1c/common/constr_CHOICE_aper.c
+++ b/lib/asn1c/common/constr_CHOICE_aper.c
@@ -55,8 +55,8 @@ CHOICE_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
if(specs->ext_start == -1)
ASN__DECODE_FAILED;
- if(specs && specs->tag2el_count > specs->ext_start) {
- value = aper_get_nsnnwn(pd, specs->tag2el_count - specs->ext_start); /* extension elements range */
+ if(specs && specs->tag2el_count > (unsigned)specs->ext_start) {
+ value = aper_get_nsnnwn(pd); /* extension elements range */
if(value < 0) ASN__DECODE_STARVED;
value += specs->ext_start;
if((unsigned)value >= td->elements_count)
@@ -168,11 +168,7 @@ CHOICE_encode_aper(const asn_TYPE_descriptor_t *td,
asn_enc_rval_t rval = {0,0,0};
if(specs->ext_start == -1)
ASN__ENCODE_FAILED;
- int n = present - specs->ext_start;
- if(n <= 63) {
- if(n < 0) ASN__ENCODE_FAILED;
- if(per_put_few_bits(po, n, 7)) ASN__ENCODE_FAILED;
- } else
+ if(aper_put_nsnnwn(po, present - specs->ext_start))
ASN__ENCODE_FAILED;
if(aper_open_type_put(elm->type, elm->encoding_constraints.per_constraints,
memb_ptr, po))
diff --git a/lib/asn1c/common/constr_SEQUENCE.c b/lib/asn1c/common/constr_SEQUENCE.c
index 8397d0c1bd..a77b68faca 100644
--- a/lib/asn1c/common/constr_SEQUENCE.c
+++ b/lib/asn1c/common/constr_SEQUENCE.c
@@ -14,6 +14,7 @@ asn_TYPE_operation_t asn_OP_SEQUENCE = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
SEQUENCE_compare,
+ SEQUENCE_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
SEQUENCE_decode_ber,
SEQUENCE_encode_der,
@@ -29,9 +30,11 @@ asn_TYPE_operation_t asn_OP_SEQUENCE = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ SEQUENCE_decode_jer,
SEQUENCE_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
SEQUENCE_decode_oer,
@@ -66,13 +69,14 @@ void
SEQUENCE_free(const asn_TYPE_descriptor_t *td, void *sptr,
enum asn_struct_free_method method) {
size_t edx;
- const asn_SEQUENCE_specifics_t *specs =
- (const asn_SEQUENCE_specifics_t *)td->specifics;
+ const asn_SEQUENCE_specifics_t *specs;
asn_struct_ctx_t *ctx; /* Decoder context */
if(!td || !sptr)
return;
+ specs = (const asn_SEQUENCE_specifics_t *)td->specifics;
+
ASN_DEBUG("Freeing %s as SEQUENCE", td->name);
for(edx = 0; edx < td->elements_count; edx++) {
@@ -195,3 +199,53 @@ SEQUENCE_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
return 0;
}
+
+int
+SEQUENCE_copy(const asn_TYPE_descriptor_t *td, void **aptr,
+ const void *bptr) {
+ if(!td) return -1;
+
+ const asn_SEQUENCE_specifics_t *specs =
+ (const asn_SEQUENCE_specifics_t *)td->specifics;
+ size_t edx;
+ void *st = *aptr; /* Target structure */
+
+ if(!bptr) {
+ if(st) {
+ SEQUENCE_free(td, st, 0);
+ *aptr = 0;
+ }
+ return 0;
+ }
+
+ /*
+ * Create the target structure if it is not present already.
+ */
+ if(st == 0) {
+ st = *aptr = CALLOC(1, specs->struct_size);
+ if(st == 0) return -1;
+ }
+
+ for(edx = 0; edx < td->elements_count; edx++) {
+ asn_TYPE_member_t *elm = &td->elements[edx];
+ void *amemb;
+ void **amembp;
+ const void *bmemb;
+ int ret;
+
+ if(elm->flags & ATF_POINTER) {
+ /* Member is a pointer to another structure */
+ amembp = (void **)((char *)st + elm->memb_offset);
+ bmemb = *(const void* const*)((const char*)bptr + elm->memb_offset);
+ } else {
+ amemb = (char *)st + elm->memb_offset;
+ amembp = &amemb;
+ bmemb = (const void*)((const char*)bptr + elm->memb_offset);
+ }
+
+ ret = elm->type->op->copy_struct(elm->type, amembp, bmemb);
+ if(ret != 0) return ret;
+ }
+
+ return 0;
+}
diff --git a/lib/asn1c/common/constr_SEQUENCE.h b/lib/asn1c/common/constr_SEQUENCE.h
index 5ecfd8f22f..a3f50d1126 100644
--- a/lib/asn1c/common/constr_SEQUENCE.h
+++ b/lib/asn1c/common/constr_SEQUENCE.h
@@ -51,6 +51,7 @@ asn_struct_print_f SEQUENCE_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f SEQUENCE_compare;
+asn_struct_copy_f SEQUENCE_copy;
asn_constr_check_f SEQUENCE_constraint;
@@ -65,6 +66,7 @@ xer_type_encoder_f SEQUENCE_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f SEQUENCE_decode_jer;
jer_type_encoder_f SEQUENCE_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/constr_SEQUENCE_OF.c b/lib/asn1c/common/constr_SEQUENCE_OF.c
index 9c5d6cded3..6ec3888579 100644
--- a/lib/asn1c/common/constr_SEQUENCE_OF.c
+++ b/lib/asn1c/common/constr_SEQUENCE_OF.c
@@ -15,6 +15,7 @@ asn_TYPE_operation_t asn_OP_SEQUENCE_OF = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
SEQUENCE_OF_compare,
+ SEQUENCE_OF_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
SEQUENCE_OF_decode_ber,
SEQUENCE_OF_encode_der,
@@ -30,9 +31,11 @@ asn_TYPE_operation_t asn_OP_SEQUENCE_OF = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ SEQUENCE_OF_decode_jer,
SEQUENCE_OF_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
SEQUENCE_OF_decode_oer, /* Same as SET OF decoder. */
diff --git a/lib/asn1c/common/constr_SEQUENCE_OF.h b/lib/asn1c/common/constr_SEQUENCE_OF.h
index 1768582bf1..978ad8e2a3 100644
--- a/lib/asn1c/common/constr_SEQUENCE_OF.h
+++ b/lib/asn1c/common/constr_SEQUENCE_OF.h
@@ -23,6 +23,7 @@ extern "C" {
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f SEQUENCE_OF_compare;
+#define SEQUENCE_OF_copy SET_OF_copy
#define SEQUENCE_OF_constraint SET_OF_constraint
@@ -37,6 +38,7 @@ xer_type_encoder_f SEQUENCE_OF_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#define SEQUENCE_OF_decode_jer SET_OF_decode_jer
jer_type_encoder_f SEQUENCE_OF_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/constr_SET_OF.c b/lib/asn1c/common/constr_SET_OF.c
index 97a7cac0cc..f5cc3bac99 100644
--- a/lib/asn1c/common/constr_SET_OF.c
+++ b/lib/asn1c/common/constr_SET_OF.c
@@ -14,6 +14,7 @@ asn_TYPE_operation_t asn_OP_SET_OF = {
0,
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
SET_OF_compare,
+ SET_OF_copy,
#if !defined(ASN_DISABLE_BER_SUPPORT)
SET_OF_decode_ber,
SET_OF_encode_der,
@@ -29,9 +30,11 @@ asn_TYPE_operation_t asn_OP_SET_OF = {
0,
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+ SET_OF_decode_jer,
SET_OF_encode_jer,
#else
0,
+ 0,
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
#if !defined(ASN_DISABLE_OER_SUPPORT)
SET_OF_decode_oer,
@@ -369,3 +372,58 @@ SET_OF_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
return 0;
}
+
+int
+SET_OF_copy(const asn_TYPE_descriptor_t *td, void **aptr,
+ const void *bptr) {
+ if(!td) return -1;
+
+ const asn_SET_OF_specifics_t *specs =
+ (const asn_SET_OF_specifics_t *)td->specifics;
+ void *st = *aptr;
+
+ if(!bptr) {
+ if(*aptr) {
+ asn_set_empty(_A_SET_FROM_VOID(*aptr));
+ *aptr = 0;
+ }
+ return 0;
+ }
+
+ if(st == 0) {
+ st = *aptr = CALLOC(1, specs->struct_size);
+ if(st == 0) return -1;
+ }
+
+ asn_anonymous_set_ *a = _A_SET_FROM_VOID(*aptr);
+ const asn_anonymous_set_ *b = _A_CSET_FROM_VOID(bptr);
+
+ if(b->size) {
+ void *_new_arr;
+ _new_arr = REALLOC(a->array, b->size * sizeof(b->array[0]));
+ if(_new_arr) {
+ a->array = (void **)_new_arr;
+ a->size = b->size;
+ } else {
+ return -1;
+ }
+ a->count = b->count;
+
+ for(int i = 0; i < b->count; i++) {
+ void *bmemb = b->array[i];
+ if(bmemb) {
+ void *amemb = 0;
+ int ret;
+ ret = td->elements->type->op->copy_struct(
+ td->elements->type,
+ &amemb, bmemb);
+ if(ret != 0) return ret;
+ a->array[i] = amemb;
+ } else {
+ a->array[i] = 0;
+ }
+ }
+ }
+
+ return 0;
+}
diff --git a/lib/asn1c/common/constr_SET_OF.h b/lib/asn1c/common/constr_SET_OF.h
index 0e9dd39a19..82ead586b6 100644
--- a/lib/asn1c/common/constr_SET_OF.h
+++ b/lib/asn1c/common/constr_SET_OF.h
@@ -33,6 +33,7 @@ asn_struct_print_f SET_OF_print;
#endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
asn_struct_compare_f SET_OF_compare;
+asn_struct_copy_f SET_OF_copy;
asn_constr_check_f SET_OF_constraint;
@@ -47,6 +48,7 @@ xer_type_encoder_f SET_OF_encode_xer;
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+jer_type_decoder_f SET_OF_decode_jer;
jer_type_encoder_f SET_OF_encode_jer;
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
diff --git a/lib/asn1c/common/constr_SET_OF_aper.c b/lib/asn1c/common/constr_SET_OF_aper.c
index 87c341e0f0..f959b1735c 100644
--- a/lib/asn1c/common/constr_SET_OF_aper.c
+++ b/lib/asn1c/common/constr_SET_OF_aper.c
@@ -129,13 +129,12 @@ SET_OF_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
if(value) ct = 0; /* Not restricted! */
}
- if(ct && ct->effective_bits >= 0) {
+ if(ct && ct->upper_bound >= 1 && ct->upper_bound <= 65535
+ && ct->upper_bound == ct->lower_bound) {
/* X.691, #19.5: No length determinant */
- nelems = aper_get_nsnnwn(pd, ct->upper_bound - ct->lower_bound + 1);
- ASN_DEBUG("Preparing to fetch %ld+%lld elements from %s",
- (long)nelems, (long long int)ct->lower_bound, td->name);
- if(nelems < 0) ASN__DECODE_STARVED;
- nelems += ct->lower_bound;
+ nelems = ct->upper_bound;
+ ASN_DEBUG("Preparing to fetch %ld elements from %s",
+ (long)nelems, td->name);
} else {
nelems = -1;
}
diff --git a/lib/asn1c/common/constr_TYPE.c b/lib/asn1c/common/constr_TYPE.c
index e634e750fd..a9e6d0974d 100644
--- a/lib/asn1c/common/constr_TYPE.c
+++ b/lib/asn1c/common/constr_TYPE.c
@@ -54,6 +54,26 @@ asn_fprint(FILE *stream, const asn_TYPE_descriptor_t *td,
return fflush(stream);
}
+/*
+ * Copy a structuture.
+ */
+int
+asn_copy(const asn_TYPE_descriptor_t *td,
+ void **struct_dst, const void *struct_src) {
+
+ if(!td || !struct_dst || !struct_src) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if(!td->op) {
+ errno = ENOSYS;
+ return -1;
+ }
+
+ return td->op->copy_struct(td, struct_dst, struct_src);
+}
+
/* Dump the data into the specified stdio stream */
static int
_print2fp(const void *buffer, size_t size, void *app_key) {
diff --git a/lib/asn1c/common/constr_TYPE.h b/lib/asn1c/common/constr_TYPE.h
index 55c2574a19..b64d5b5ea1 100644
--- a/lib/asn1c/common/constr_TYPE.h
+++ b/lib/asn1c/common/constr_TYPE.h
@@ -51,8 +51,10 @@ typedef void (xer_type_encoder_f)(void);
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
#if !defined(ASN_DISABLE_JER_SUPPORT)
+#include /* Decoder of JER (JSON, text) */
#include /* Encoder into JER (JSON, text) */
#else
+typedef void (jer_type_decoder_f)(void);
typedef void (jer_type_encoder_f)(void);
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
@@ -141,6 +143,16 @@ typedef int (asn_struct_compare_f)(
const void *struct_A,
const void *struct_B);
+/*
+ * Copies struct B into struct A.
+ * Allocates memory for struct A, if necessary.
+ */
+typedef int (asn_struct_copy_f)(
+ const struct asn_TYPE_descriptor_s *type_descriptor,
+ void **struct_A,
+ const void *struct_B
+ );
+
/*
* Return the outmost tag of the type.
* If the type is untagged CHOICE, the dynamic operation is performed.
@@ -173,10 +185,12 @@ typedef struct asn_TYPE_operation_s {
asn_struct_free_f *free_struct; /* Free the structure */
asn_struct_print_f *print_struct; /* Human readable output */
asn_struct_compare_f *compare_struct; /* Compare two structures */
+ asn_struct_copy_f *copy_struct; /* Copy method */
ber_type_decoder_f *ber_decoder; /* Generic BER decoder */
der_type_encoder_f *der_encoder; /* Canonical DER encoder */
xer_type_decoder_f *xer_decoder; /* Generic XER decoder */
xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */
+ jer_type_decoder_f *jer_decoder; /* Generic JER encoder */
jer_type_encoder_f *jer_encoder; /* Generic JER encoder */
oer_type_decoder_f *oer_decoder; /* Generic OER decoder */
oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */
@@ -288,6 +302,17 @@ int asn_fprint(FILE *stream, /* Destination stream descriptor */
const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */
const void *struct_ptr); /* Structure to be printed */
+/*
+ * Copies a source structure (struct_src) into destination structure
+ * (struct_dst). Allocates memory for the destination structure, if necessary.
+ * RETURN VALUES:
+ * 0: Copy OK.
+ * -1: Problem copying the structure.
+ */
+int asn_copy(const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */
+ void **struct_dst, /* Structure to be populated */
+ const void *struct_src); /* Structure to be copied */
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/asn1c/common/meson.build b/lib/asn1c/common/meson.build
index c984ecd6ba..a695df6782 100644
--- a/lib/asn1c/common/meson.build
+++ b/lib/asn1c/common/meson.build
@@ -22,6 +22,8 @@ libasn1c_common_sources = files('''
OPEN_TYPE.h
OPEN_TYPE.c
constr_CHOICE.h
+ ENUMERATED.h
+ ENUMERATED.c
GraphicString.h
GraphicString.c
INTEGER.h
@@ -92,6 +94,7 @@ libasn1c_common_sources = files('''
aper_support.c
aper_opentype.c
ANY_aper.c
+ ENUMERATED_aper.c
INTEGER_aper.c
NULL_aper.c
NativeEnumerated_aper.c
@@ -124,26 +127,13 @@ libasn1c_common_sources = files('''
constr_CHOICE_rfill.c
constr_SEQUENCE_rfill.c
constr_SET_OF_rfill.c
- ANY_jer.c
- BIT_STRING_jer.c
- INTEGER_jer.c
- NULL_jer.c
- NativeEnumerated_jer.c
- NativeInteger_jer.c
- OBJECT_IDENTIFIER_jer.c
- OCTET_STRING_jer.c
- jer_encoder.c
- jer_encoder.h
- constr_CHOICE_jer.c
- constr_SEQUENCE_OF_jer.c
- constr_SEQUENCE_jer.c
- constr_SET_OF_jer.c
'''.split())
libasn1c_common_cc_flags = ['-DASN_DISABLE_BER_SUPPORT',
'-DASN_DISABLE_XER_SUPPORT',
'-DASN_DISABLE_OER_SUPPORT',
- '-DASN_DISABLE_UPER_SUPPORT']
+ '-DASN_DISABLE_UPER_SUPPORT',
+ '-DASN_DISABLE_JER_SUPPORT']
#libasn1c_common_cc_flags += cc.get_supported_arguments([
# '-Wno-parentheses-equality',
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.c
index 61cc0c3f66..b5bb6137dd 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationSetupItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.h
index 766004889d..7dd86fb4c9 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationSetupItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.c
index 9e2d3ed3b3..bd485aa390 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationSetupList.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.h
index bbc62a3fe6..af2fc66d48 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationSetupList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationSetupList_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.c
index 757d218f4e..d524a17f76 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationToAddItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.h
index ed31a73711..26acb87224 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationToAddItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.c
index 2dd5d4c812..8e4b529043 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationToAddList.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.h
index 672ceea855..ce1a7a9ad3 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToAddList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationToAddList_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.c
index 3dac81e870..e7c814a58e 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationToRemoveItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.h
index 92f1711b73..d4b89b7bcc 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationToRemoveItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.c
index f60887d2fb..2216d64b94 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationToRemoveList.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.h
index f24544333b..1153f9ec1c 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToRemoveList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationToRemoveList_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.c
index 075e98d53f..190c9c9e9a 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationToUpdateItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.h
index 9a7b3eefe0..5e3eb35ecd 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationToUpdateItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.c b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.c
index 5a2166b6b3..61ad8c0ccc 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.c
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-TNLAssociationToUpdateList.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.h b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.h
index 4313de62b8..692908c865 100644
--- a/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.h
+++ b/lib/asn1c/ngap/NGAP_AMF-TNLAssociationToUpdateList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_TNLAssociationToUpdateList_H_
diff --git a/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.c b/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.c
index ed44159850..21defbe31e 100644
--- a/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.c
+++ b/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMF-UE-NGAP-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.h b/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.h
index b9712407c9..abb0b488a3 100644
--- a/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.h
+++ b/lib/asn1c/ngap/NGAP_AMF-UE-NGAP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMF_UE_NGAP_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AMF_UE_NGAP_ID;
asn_struct_free_f NGAP_AMF_UE_NGAP_ID_free;
asn_struct_print_f NGAP_AMF_UE_NGAP_ID_print;
asn_constr_check_f NGAP_AMF_UE_NGAP_ID_constraint;
-jer_type_encoder_f NGAP_AMF_UE_NGAP_ID_encode_jer;
per_type_decoder_f NGAP_AMF_UE_NGAP_ID_decode_aper;
per_type_encoder_f NGAP_AMF_UE_NGAP_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.c b/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.c
index 3a2ee4652c..1ded81d1a2 100644
--- a/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.c
+++ b/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFCPRelocationIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.h b/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.h
index 0d8ebd4ada..2ffcfb0711 100644
--- a/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.h
+++ b/lib/asn1c/ngap/NGAP_AMFCPRelocationIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFCPRelocationIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.c b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.c
index 5d9f7a0d8e..77e480644b 100644
--- a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.c
+++ b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFConfigurationUpdate.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.h b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.h
index b46963a29f..9dc15707a4 100644
--- a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.h
+++ b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFConfigurationUpdate_H_
diff --git a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.c b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.c
index 78d549141e..1a8be0dedf 100644
--- a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.c
+++ b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFConfigurationUpdateAcknowledge.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.h b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.h
index 8f117b1e8e..a6c6006b9c 100644
--- a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.h
+++ b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFConfigurationUpdateAcknowledge_H_
diff --git a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.c b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.c
index f027e8c50a..7e27596217 100644
--- a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.c
+++ b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFConfigurationUpdateFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.h b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.h
index 0329d7b0a2..d433f52553 100644
--- a/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.h
+++ b/lib/asn1c/ngap/NGAP_AMFConfigurationUpdateFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFConfigurationUpdateFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_AMFName.c b/lib/asn1c/ngap/NGAP_AMFName.c
index 6c135a9d04..603e5999a8 100644
--- a/lib/asn1c/ngap/NGAP_AMFName.c
+++ b/lib/asn1c/ngap/NGAP_AMFName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFName.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFName.h b/lib/asn1c/ngap/NGAP_AMFName.h
index 68f508ff8b..115cf602d5 100644
--- a/lib/asn1c/ngap/NGAP_AMFName.h
+++ b/lib/asn1c/ngap/NGAP_AMFName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFName_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AMFName;
asn_struct_free_f NGAP_AMFName_free;
asn_struct_print_f NGAP_AMFName_print;
asn_constr_check_f NGAP_AMFName_constraint;
-jer_type_encoder_f NGAP_AMFName_encode_jer;
per_type_decoder_f NGAP_AMFName_decode_aper;
per_type_encoder_f NGAP_AMFName_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AMFNameUTF8String.c b/lib/asn1c/ngap/NGAP_AMFNameUTF8String.c
index 1cea5b5fbb..077e4dd465 100644
--- a/lib/asn1c/ngap/NGAP_AMFNameUTF8String.c
+++ b/lib/asn1c/ngap/NGAP_AMFNameUTF8String.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFNameUTF8String.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFNameUTF8String.h b/lib/asn1c/ngap/NGAP_AMFNameUTF8String.h
index 2395559003..a4341f1798 100644
--- a/lib/asn1c/ngap/NGAP_AMFNameUTF8String.h
+++ b/lib/asn1c/ngap/NGAP_AMFNameUTF8String.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFNameUTF8String_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AMFNameUTF8String;
asn_struct_free_f NGAP_AMFNameUTF8String_free;
asn_struct_print_f NGAP_AMFNameUTF8String_print;
asn_constr_check_f NGAP_AMFNameUTF8String_constraint;
-jer_type_encoder_f NGAP_AMFNameUTF8String_encode_jer;
per_type_decoder_f NGAP_AMFNameUTF8String_decode_aper;
per_type_encoder_f NGAP_AMFNameUTF8String_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AMFNameVisibleString.c b/lib/asn1c/ngap/NGAP_AMFNameVisibleString.c
index 00116ef0f9..7206f1f27a 100644
--- a/lib/asn1c/ngap/NGAP_AMFNameVisibleString.c
+++ b/lib/asn1c/ngap/NGAP_AMFNameVisibleString.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFNameVisibleString.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFNameVisibleString.h b/lib/asn1c/ngap/NGAP_AMFNameVisibleString.h
index 04323248f0..b6205f52ee 100644
--- a/lib/asn1c/ngap/NGAP_AMFNameVisibleString.h
+++ b/lib/asn1c/ngap/NGAP_AMFNameVisibleString.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFNameVisibleString_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AMFNameVisibleString;
asn_struct_free_f NGAP_AMFNameVisibleString_free;
asn_struct_print_f NGAP_AMFNameVisibleString_print;
asn_constr_check_f NGAP_AMFNameVisibleString_constraint;
-jer_type_encoder_f NGAP_AMFNameVisibleString_encode_jer;
per_type_decoder_f NGAP_AMFNameVisibleString_decode_aper;
per_type_encoder_f NGAP_AMFNameVisibleString_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AMFPagingTarget.c b/lib/asn1c/ngap/NGAP_AMFPagingTarget.c
index c9437c3541..ba4e5ee982 100644
--- a/lib/asn1c/ngap/NGAP_AMFPagingTarget.c
+++ b/lib/asn1c/ngap/NGAP_AMFPagingTarget.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFPagingTarget.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFPagingTarget.h b/lib/asn1c/ngap/NGAP_AMFPagingTarget.h
index 44c97c422f..a8eba29d49 100644
--- a/lib/asn1c/ngap/NGAP_AMFPagingTarget.h
+++ b/lib/asn1c/ngap/NGAP_AMFPagingTarget.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFPagingTarget_H_
diff --git a/lib/asn1c/ngap/NGAP_AMFPointer.c b/lib/asn1c/ngap/NGAP_AMFPointer.c
index 5b43062d0e..5f56026ed4 100644
--- a/lib/asn1c/ngap/NGAP_AMFPointer.c
+++ b/lib/asn1c/ngap/NGAP_AMFPointer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFPointer.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFPointer.h b/lib/asn1c/ngap/NGAP_AMFPointer.h
index 428ee0c72a..764154a157 100644
--- a/lib/asn1c/ngap/NGAP_AMFPointer.h
+++ b/lib/asn1c/ngap/NGAP_AMFPointer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFPointer_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AMFPointer;
asn_struct_free_f NGAP_AMFPointer_free;
asn_struct_print_f NGAP_AMFPointer_print;
asn_constr_check_f NGAP_AMFPointer_constraint;
-jer_type_encoder_f NGAP_AMFPointer_encode_jer;
per_type_decoder_f NGAP_AMFPointer_decode_aper;
per_type_encoder_f NGAP_AMFPointer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AMFRegionID.c b/lib/asn1c/ngap/NGAP_AMFRegionID.c
index b9524fc67c..967e59366c 100644
--- a/lib/asn1c/ngap/NGAP_AMFRegionID.c
+++ b/lib/asn1c/ngap/NGAP_AMFRegionID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFRegionID.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFRegionID.h b/lib/asn1c/ngap/NGAP_AMFRegionID.h
index 17409da65e..0a5a0c3330 100644
--- a/lib/asn1c/ngap/NGAP_AMFRegionID.h
+++ b/lib/asn1c/ngap/NGAP_AMFRegionID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFRegionID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AMFRegionID;
asn_struct_free_f NGAP_AMFRegionID_free;
asn_struct_print_f NGAP_AMFRegionID_print;
asn_constr_check_f NGAP_AMFRegionID_constraint;
-jer_type_encoder_f NGAP_AMFRegionID_encode_jer;
per_type_decoder_f NGAP_AMFRegionID_decode_aper;
per_type_encoder_f NGAP_AMFRegionID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AMFSetID.c b/lib/asn1c/ngap/NGAP_AMFSetID.c
index 0ba54503a7..e7a550d7d1 100644
--- a/lib/asn1c/ngap/NGAP_AMFSetID.c
+++ b/lib/asn1c/ngap/NGAP_AMFSetID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFSetID.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFSetID.h b/lib/asn1c/ngap/NGAP_AMFSetID.h
index 7daf0d0033..64b9367632 100644
--- a/lib/asn1c/ngap/NGAP_AMFSetID.h
+++ b/lib/asn1c/ngap/NGAP_AMFSetID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFSetID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AMFSetID;
asn_struct_free_f NGAP_AMFSetID_free;
asn_struct_print_f NGAP_AMFSetID_print;
asn_constr_check_f NGAP_AMFSetID_constraint;
-jer_type_encoder_f NGAP_AMFSetID_encode_jer;
per_type_decoder_f NGAP_AMFSetID_decode_aper;
per_type_encoder_f NGAP_AMFSetID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AMFStatusIndication.c b/lib/asn1c/ngap/NGAP_AMFStatusIndication.c
index d3a6cb1aa4..8e332c6228 100644
--- a/lib/asn1c/ngap/NGAP_AMFStatusIndication.c
+++ b/lib/asn1c/ngap/NGAP_AMFStatusIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AMFStatusIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_AMFStatusIndication.h b/lib/asn1c/ngap/NGAP_AMFStatusIndication.h
index 8679b32b07..1071d4564a 100644
--- a/lib/asn1c/ngap/NGAP_AMFStatusIndication.h
+++ b/lib/asn1c/ngap/NGAP_AMFStatusIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AMFStatusIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_ActivatedCellList.c b/lib/asn1c/ngap/NGAP_ActivatedCellList.c
index 5dd0a1df81..635651c1d5 100644
--- a/lib/asn1c/ngap/NGAP_ActivatedCellList.c
+++ b/lib/asn1c/ngap/NGAP_ActivatedCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ActivatedCellList.h"
diff --git a/lib/asn1c/ngap/NGAP_ActivatedCellList.h b/lib/asn1c/ngap/NGAP_ActivatedCellList.h
index 37179c57f6..a3e1cda759 100644
--- a/lib/asn1c/ngap/NGAP_ActivatedCellList.h
+++ b/lib/asn1c/ngap/NGAP_ActivatedCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ActivatedCellList_H_
diff --git a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.c b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.c
index cd7ff4537b..6b8ae4737e 100644
--- a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.c
+++ b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AdditionalDLUPTNLInformationForHOItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.h b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.h
index e45b57f88c..f75846a1ef 100644
--- a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.h
+++ b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AdditionalDLUPTNLInformationForHOItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.c b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.c
index 3bcb6b2d7f..c8b63ba6b6 100644
--- a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.c
+++ b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AdditionalDLUPTNLInformationForHOList.h"
diff --git a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.h b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.h
index fcaf4a02c3..fb889de4db 100644
--- a/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.h
+++ b/lib/asn1c/ngap/NGAP_AdditionalDLUPTNLInformationForHOList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AdditionalDLUPTNLInformationForHOList_H_
diff --git a/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.c b/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.c
index fafacb0b87..3ff337c815 100644
--- a/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.c
+++ b/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AdditionalQosFlowInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.h b/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.h
index 6d7513de59..ca3e4d534a 100644
--- a/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.h
+++ b/lib/asn1c/ngap/NGAP_AdditionalQosFlowInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AdditionalQosFlowInformation_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_AdditionalQosFlowInformation_s
asn_struct_free_f NGAP_AdditionalQosFlowInformation_free;
asn_struct_print_f NGAP_AdditionalQosFlowInformation_print;
asn_constr_check_f NGAP_AdditionalQosFlowInformation_constraint;
-jer_type_encoder_f NGAP_AdditionalQosFlowInformation_encode_jer;
per_type_decoder_f NGAP_AdditionalQosFlowInformation_decode_aper;
per_type_encoder_f NGAP_AdditionalQosFlowInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.c b/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.c
index dc474c36d8..4427fc1c97 100644
--- a/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.c
+++ b/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AllocationAndRetentionPriority.h"
diff --git a/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.h b/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.h
index 3031c6ea9b..79e802cc4f 100644
--- a/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.h
+++ b/lib/asn1c/ngap/NGAP_AllocationAndRetentionPriority.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AllocationAndRetentionPriority_H_
diff --git a/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.c b/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.c
index bec56c096f..a4733d31ad 100644
--- a/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.c
+++ b/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Allowed-CAG-List-per-PLMN.h"
diff --git a/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.h b/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.h
index fad9539d24..39908ed913 100644
--- a/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.h
+++ b/lib/asn1c/ngap/NGAP_Allowed-CAG-List-per-PLMN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Allowed_CAG_List_per_PLMN_H_
diff --git a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.c b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.c
index 2b83b4f1ee..17e048131a 100644
--- a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.c
+++ b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Allowed-PNI-NPN-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.h b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.h
index e0be24e2ae..1ff273b90b 100644
--- a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.h
+++ b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Allowed_PNI_NPN_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.c b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.c
index 87f896263d..bcc0111c49 100644
--- a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.c
+++ b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Allowed-PNI-NPN-List.h"
diff --git a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.h b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.h
index 78058b6d19..fc01c63246 100644
--- a/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.h
+++ b/lib/asn1c/ngap/NGAP_Allowed-PNI-NPN-List.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Allowed_PNI_NPN_List_H_
diff --git a/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.c b/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.c
index 6053d6289c..315c219003 100644
--- a/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.c
+++ b/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AllowedNSSAI-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.h b/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.h
index cd9afbcfef..784d46c945 100644
--- a/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.h
+++ b/lib/asn1c/ngap/NGAP_AllowedNSSAI-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AllowedNSSAI_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_AllowedNSSAI.c b/lib/asn1c/ngap/NGAP_AllowedNSSAI.c
index c1272391b2..7bc02d1eed 100644
--- a/lib/asn1c/ngap/NGAP_AllowedNSSAI.c
+++ b/lib/asn1c/ngap/NGAP_AllowedNSSAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AllowedNSSAI.h"
diff --git a/lib/asn1c/ngap/NGAP_AllowedNSSAI.h b/lib/asn1c/ngap/NGAP_AllowedNSSAI.h
index 299ddcf801..d49752d8ee 100644
--- a/lib/asn1c/ngap/NGAP_AllowedNSSAI.h
+++ b/lib/asn1c/ngap/NGAP_AllowedNSSAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AllowedNSSAI_H_
diff --git a/lib/asn1c/ngap/NGAP_AllowedTACs.c b/lib/asn1c/ngap/NGAP_AllowedTACs.c
index 6081b9859f..c84c5077c9 100644
--- a/lib/asn1c/ngap/NGAP_AllowedTACs.c
+++ b/lib/asn1c/ngap/NGAP_AllowedTACs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AllowedTACs.h"
diff --git a/lib/asn1c/ngap/NGAP_AllowedTACs.h b/lib/asn1c/ngap/NGAP_AllowedTACs.h
index 2a845d310f..56dbc5980c 100644
--- a/lib/asn1c/ngap/NGAP_AllowedTACs.h
+++ b/lib/asn1c/ngap/NGAP_AllowedTACs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AllowedTACs_H_
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.c b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.c
index d80f75ac57..bdc9fe80ac 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.c
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AlternativeQoSParaSetIndex.h"
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.h b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.h
index 4dd5d8d597..8c7f275715 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.h
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetIndex.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AlternativeQoSParaSetIndex_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AlternativeQoSParaSetIndex;
asn_struct_free_f NGAP_AlternativeQoSParaSetIndex_free;
asn_struct_print_f NGAP_AlternativeQoSParaSetIndex_print;
asn_constr_check_f NGAP_AlternativeQoSParaSetIndex_constraint;
-jer_type_encoder_f NGAP_AlternativeQoSParaSetIndex_encode_jer;
per_type_decoder_f NGAP_AlternativeQoSParaSetIndex_decode_aper;
per_type_encoder_f NGAP_AlternativeQoSParaSetIndex_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.c b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.c
index 3c7f25d963..4d51c7aecf 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.c
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AlternativeQoSParaSetItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.h b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.h
index a57d3d2ccd..fc3a59d1a6 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.h
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AlternativeQoSParaSetItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.c b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.c
index f88fe393eb..8665c7c142 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.c
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AlternativeQoSParaSetList.h"
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.h b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.h
index 4644559be4..b7a8049162 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.h
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AlternativeQoSParaSetList_H_
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.c b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.c
index 77609e5163..5e0f00c814 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.c
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AlternativeQoSParaSetNotifyIndex.h"
diff --git a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.h b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.h
index a5fa9c6f00..ad2f922877 100644
--- a/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.h
+++ b/lib/asn1c/ngap/NGAP_AlternativeQoSParaSetNotifyIndex.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AlternativeQoSParaSetNotifyIndex_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AlternativeQoSParaSetNotifyIndex;
asn_struct_free_f NGAP_AlternativeQoSParaSetNotifyIndex_free;
asn_struct_print_f NGAP_AlternativeQoSParaSetNotifyIndex_print;
asn_constr_check_f NGAP_AlternativeQoSParaSetNotifyIndex_constraint;
-jer_type_encoder_f NGAP_AlternativeQoSParaSetNotifyIndex_encode_jer;
per_type_decoder_f NGAP_AlternativeQoSParaSetNotifyIndex_decode_aper;
per_type_encoder_f NGAP_AlternativeQoSParaSetNotifyIndex_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterest.c b/lib/asn1c/ngap/NGAP_AreaOfInterest.c
index b9b16a08d3..b10d31aa12 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterest.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterest.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterest.h b/lib/asn1c/ngap/NGAP_AreaOfInterest.h
index 52a8d47a82..b1dfafb91d 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterest.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterest_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.c b/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.c
index d9d1e8297c..73d3d83185 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestCellItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.h b/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.h
index 4230882b0e..71b42af7be 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestCellItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestCellItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.c b/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.c
index 0733f8ee19..af133b854c 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestCellList.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.h b/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.h
index ba4666de43..100f393502 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestCellList_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestItem.c b/lib/asn1c/ngap/NGAP_AreaOfInterestItem.c
index 8de51c0c6f..6918df790c 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestItem.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestItem.h b/lib/asn1c/ngap/NGAP_AreaOfInterestItem.h
index da30244e09..f096eda46d 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestItem.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestList.c b/lib/asn1c/ngap/NGAP_AreaOfInterestList.c
index 378c41ec78..d38ff24551 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestList.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestList.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestList.h b/lib/asn1c/ngap/NGAP_AreaOfInterestList.h
index 485874a2c9..9b73c64f96 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestList.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestList_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.c b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.c
index 6c87e9baec..40a95ad9b1 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestRANNodeItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.h b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.h
index 79873d27fe..aa7e0df408 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestRANNodeItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.c b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.c
index c38cf1d0c1..f456bf8cce 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestRANNodeList.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.h b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.h
index 6cc13a44a4..bdb6fe3bb5 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestRANNodeList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestRANNodeList_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.c b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.c
index 86b25f9661..e05f4bc683 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestTAIItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.h b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.h
index 6e5a170b23..f934edb355 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestTAIItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.c b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.c
index ace5aa857c..dee5a3ecaa 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.c
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaOfInterestTAIList.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.h b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.h
index e6d6bed1ae..24cec33f2e 100644
--- a/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.h
+++ b/lib/asn1c/ngap/NGAP_AreaOfInterestTAIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaOfInterestTAIList_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.c b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.c
index d1595c5246..bed02b0ac0 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaScopeOfMDT-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.h b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.h
index 33a3e32b07..559f30cdc4 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaScopeOfMDT_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.c b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.c
index 869cb36c8c..251f2a5952 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.c
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaScopeOfMDT-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.h b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.h
index 5ba3294e59..91c18e2b2e 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.h
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfMDT-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaScopeOfMDT_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.c b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.c
index 892f92a244..8c5cffe01a 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.c
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaScopeOfNeighCellsItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.h b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.h
index 2b7067fa52..da10071813 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.h
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaScopeOfNeighCellsItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.c b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.c
index 7e2c88aa3d..a6cefb2b64 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.c
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaScopeOfNeighCellsList.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.h b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.h
index 080ff60094..d25e92c951 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.h
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfNeighCellsList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaScopeOfNeighCellsList_H_
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.c b/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.c
index 1197676827..c771071984 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.c
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AreaScopeOfQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.h b/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.h
index 32fb0724b5..100b24da48 100644
--- a/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.h
+++ b/lib/asn1c/ngap/NGAP_AreaScopeOfQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AreaScopeOfQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.c b/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.c
index d04d2b4cf2..120f5ccbc2 100644
--- a/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.c
+++ b/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssistanceDataForPaging.h"
diff --git a/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.h b/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.h
index b2bf8e0d28..00ebc6f41a 100644
--- a/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.h
+++ b/lib/asn1c/ngap/NGAP_AssistanceDataForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssistanceDataForPaging_H_
diff --git a/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.c b/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.c
index ac17ef4c18..856c0cce69 100644
--- a/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.c
+++ b/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssistanceDataForRecommendedCells.h"
diff --git a/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.h b/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.h
index 8243160c85..7de03ef79e 100644
--- a/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.h
+++ b/lib/asn1c/ngap/NGAP_AssistanceDataForRecommendedCells.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssistanceDataForRecommendedCells_H_
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.c b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.c
index 95f765ccae..e20686eca0 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssociatedMBSQosFlowSetupRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.h b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.h
index a373d98903..0e0ea32730 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssociatedMBSQosFlowSetupRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.c b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.c
index 1697efa9d1..d5e6134263 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.c
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssociatedMBSQosFlowSetupRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.h b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.h
index b8c7cfc155..1286a08647 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.h
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetupRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssociatedMBSQosFlowSetupRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c
index 3aeb147922..6dae42a05a 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h
index 3b179b54e6..bd342a0fc3 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssociatedMBSQosFlowSetuporModifyRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c
index 1af8a42893..4dcad15329 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h
index 966b3e7559..9494a3f9b1 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h
+++ b/lib/asn1c/ngap/NGAP_AssociatedMBSQosFlowSetuporModifyRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssociatedMBSQosFlowSetuporModifyRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.c b/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.c
index e59d1371fa..77c735f35a 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.c
+++ b/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssociatedQosFlowItem.h"
diff --git a/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.h b/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.h
index a128adb24d..9d951938b2 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.h
+++ b/lib/asn1c/ngap/NGAP_AssociatedQosFlowItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssociatedQosFlowItem_H_
diff --git a/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.c b/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.c
index 469ca4c28b..153be3ac0f 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.c
+++ b/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AssociatedQosFlowList.h"
diff --git a/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.h b/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.h
index 6778e93a50..f610a1554c 100644
--- a/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.h
+++ b/lib/asn1c/ngap/NGAP_AssociatedQosFlowList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AssociatedQosFlowList_H_
diff --git a/lib/asn1c/ngap/NGAP_AuthenticatedIndication.c b/lib/asn1c/ngap/NGAP_AuthenticatedIndication.c
index fd12dabbc7..72d8902d70 100644
--- a/lib/asn1c/ngap/NGAP_AuthenticatedIndication.c
+++ b/lib/asn1c/ngap/NGAP_AuthenticatedIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AuthenticatedIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_AuthenticatedIndication.h b/lib/asn1c/ngap/NGAP_AuthenticatedIndication.h
index b1c35918c9..e7197382fe 100644
--- a/lib/asn1c/ngap/NGAP_AuthenticatedIndication.h
+++ b/lib/asn1c/ngap/NGAP_AuthenticatedIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AuthenticatedIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_AuthenticatedIndication_specs_
asn_struct_free_f NGAP_AuthenticatedIndication_free;
asn_struct_print_f NGAP_AuthenticatedIndication_print;
asn_constr_check_f NGAP_AuthenticatedIndication_constraint;
-jer_type_encoder_f NGAP_AuthenticatedIndication_encode_jer;
per_type_decoder_f NGAP_AuthenticatedIndication_decode_aper;
per_type_encoder_f NGAP_AuthenticatedIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.c b/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.c
index 053ea6e3b8..fb7d3efaf8 100644
--- a/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.c
+++ b/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AvailableRANVisibleQoEMetrics.h"
diff --git a/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.h b/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.h
index ddfb08eaf8..b01385a505 100644
--- a/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.h
+++ b/lib/asn1c/ngap/NGAP_AvailableRANVisibleQoEMetrics.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AvailableRANVisibleQoEMetrics_H_
diff --git a/lib/asn1c/ngap/NGAP_AveragingWindow.c b/lib/asn1c/ngap/NGAP_AveragingWindow.c
index ae1c60daca..861523614c 100644
--- a/lib/asn1c/ngap/NGAP_AveragingWindow.c
+++ b/lib/asn1c/ngap/NGAP_AveragingWindow.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_AveragingWindow.h"
diff --git a/lib/asn1c/ngap/NGAP_AveragingWindow.h b/lib/asn1c/ngap/NGAP_AveragingWindow.h
index a099809edb..81df5b4558 100644
--- a/lib/asn1c/ngap/NGAP_AveragingWindow.h
+++ b/lib/asn1c/ngap/NGAP_AveragingWindow.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_AveragingWindow_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_AveragingWindow;
asn_struct_free_f NGAP_AveragingWindow_free;
asn_struct_print_f NGAP_AveragingWindow_print;
asn_constr_check_f NGAP_AveragingWindow_constraint;
-jer_type_encoder_f NGAP_AveragingWindow_encode_jer;
per_type_decoder_f NGAP_AveragingWindow_decode_aper;
per_type_encoder_f NGAP_AveragingWindow_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.c b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.c
index 62aaa2d592..9e43dc3ba7 100644
--- a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.c
+++ b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BeamMeasurementsReportConfiguration.h"
diff --git a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.h b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.h
index c47f2e73b7..e8011e9026 100644
--- a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.h
+++ b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BeamMeasurementsReportConfiguration_H_
diff --git a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.c b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.c
index 33a1b485aa..2739cadce8 100644
--- a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.c
+++ b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BeamMeasurementsReportQuantity.h"
diff --git a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.h b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.h
index 67d7119bb7..04306c7adc 100644
--- a/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.h
+++ b/lib/asn1c/ngap/NGAP_BeamMeasurementsReportQuantity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BeamMeasurementsReportQuantity_H_
diff --git a/lib/asn1c/ngap/NGAP_BitRate.c b/lib/asn1c/ngap/NGAP_BitRate.c
index 379e9b4670..3f06cf7bfc 100644
--- a/lib/asn1c/ngap/NGAP_BitRate.c
+++ b/lib/asn1c/ngap/NGAP_BitRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BitRate.h"
diff --git a/lib/asn1c/ngap/NGAP_BitRate.h b/lib/asn1c/ngap/NGAP_BitRate.h
index 8af2ab1d08..a2acb56a13 100644
--- a/lib/asn1c/ngap/NGAP_BitRate.h
+++ b/lib/asn1c/ngap/NGAP_BitRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BitRate_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_BitRate;
asn_struct_free_f NGAP_BitRate_free;
asn_struct_print_f NGAP_BitRate_print;
asn_constr_check_f NGAP_BitRate_constraint;
-jer_type_encoder_f NGAP_BitRate_encode_jer;
per_type_decoder_f NGAP_BitRate_decode_aper;
per_type_encoder_f NGAP_BitRate_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.c b/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.c
index d5a7783b23..f65ef35ff4 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.c
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BluetoothMeasConfig.h"
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.h b/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.h
index 64cda2f5d8..8dea8f3311 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.h
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BluetoothMeasConfig_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_BluetoothMeasConfig_specs_1;
asn_struct_free_f NGAP_BluetoothMeasConfig_free;
asn_struct_print_f NGAP_BluetoothMeasConfig_print;
asn_constr_check_f NGAP_BluetoothMeasConfig_constraint;
-jer_type_encoder_f NGAP_BluetoothMeasConfig_encode_jer;
per_type_decoder_f NGAP_BluetoothMeasConfig_decode_aper;
per_type_encoder_f NGAP_BluetoothMeasConfig_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.c b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.c
index 4efcc8a58b..dd8aff58c5 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.c
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BluetoothMeasConfigNameItem.h"
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.h b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.h
index a815d2486c..4bcb61bbfb 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.h
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BluetoothMeasConfigNameItem_H_
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.c b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.c
index b01c4c0085..af4b986c8f 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.c
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BluetoothMeasConfigNameList.h"
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.h b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.h
index 3b5606e71d..f1a838e622 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.h
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasConfigNameList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BluetoothMeasConfigNameList_H_
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.c b/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.c
index de6f7bf241..c85ffdeda1 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.c
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BluetoothMeasurementConfiguration.h"
diff --git a/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.h b/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.h
index f54b705f22..8a37ba5ef0 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.h
+++ b/lib/asn1c/ngap/NGAP_BluetoothMeasurementConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BluetoothMeasurementConfiguration_H_
diff --git a/lib/asn1c/ngap/NGAP_BluetoothName.c b/lib/asn1c/ngap/NGAP_BluetoothName.c
index 94ae44f3d1..2c884c341f 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothName.c
+++ b/lib/asn1c/ngap/NGAP_BluetoothName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BluetoothName.h"
diff --git a/lib/asn1c/ngap/NGAP_BluetoothName.h b/lib/asn1c/ngap/NGAP_BluetoothName.h
index c4ebf18832..1e65b4c6e1 100644
--- a/lib/asn1c/ngap/NGAP_BluetoothName.h
+++ b/lib/asn1c/ngap/NGAP_BluetoothName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BluetoothName_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_BluetoothName;
asn_struct_free_f NGAP_BluetoothName_free;
asn_struct_print_f NGAP_BluetoothName_print;
asn_constr_check_f NGAP_BluetoothName_constraint;
-jer_type_encoder_f NGAP_BluetoothName_encode_jer;
per_type_decoder_f NGAP_BluetoothName_decode_aper;
per_type_encoder_f NGAP_BluetoothName_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.c b/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.c
index ff423ebc90..fa44659500 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastCancelledAreaList.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.h b/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.h
index d5eccbdd8c..97509e0ae5 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastCancelledAreaList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastCancelledAreaList_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.c b/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.c
index 0d234efd33..810111c3f6 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastCompletedAreaList.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.h b/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.h
index d92c8760f8..bc77568684 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastCompletedAreaList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastCompletedAreaList_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.c b/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.c
index ba513a881e..a59293ad69 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastPLMNItem.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.h b/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.h
index fd6f1197f0..b9811fbd35 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastPLMNItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastPLMNItem_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastPLMNList.c b/lib/asn1c/ngap/NGAP_BroadcastPLMNList.c
index d971709824..dd3f7f17b1 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastPLMNList.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastPLMNList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastPLMNList.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastPLMNList.h b/lib/asn1c/ngap/NGAP_BroadcastPLMNList.h
index 120f31ee98..cdaa8397af 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastPLMNList.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastPLMNList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastPLMNList_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.c b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.c
index 9482dde45a..da360670ec 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionModificationFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.h b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.h
index eead253e43..a24c90de1d 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionModificationFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.c b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.c
index 19c1f4446e..5c68c0af95 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionModificationRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.h b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.h
index f28ca8b331..117227a292 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionModificationRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.c b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.c
index 823f28d51f..d989d0c39c 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionModificationResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.h b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.h
index bc56f4bd61..d1f4bda232 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionModificationResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionModificationResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.c b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.c
index f234fbe176..0c26ea41fc 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionReleaseRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.h b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.h
index 59a1d36039..dc9347920d 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionReleaseRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.c b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.c
index a7bc71ae3a..de15da6fbb 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionReleaseRequired.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.h b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.h
index 8438db1653..e44f0b07d2 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseRequired.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionReleaseRequired_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.c b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.c
index 7d538208c7..b6237afd01 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionReleaseResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.h b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.h
index 2749f4b231..5b7a585b17 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionReleaseResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionReleaseResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.c b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.c
index 2c3fb71edf..05bbd5116e 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionSetupFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.h b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.h
index 2b1ede5823..1f4eeeadac 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionSetupFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.c b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.c
index 10eccafbb0..ff20dffa3e 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionSetupRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.h b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.h
index 8854427765..82a74c09ec 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionSetupRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.c b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.c
index e4fc72c7a1..52a498390c 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.c
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BroadcastSessionSetupResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.h b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.h
index 1d16c730ae..8a08d4eb4a 100644
--- a/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.h
+++ b/lib/asn1c/ngap/NGAP_BroadcastSessionSetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BroadcastSessionSetupResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_BurstArrivalTime.c b/lib/asn1c/ngap/NGAP_BurstArrivalTime.c
index 106d47f52e..340972b42a 100644
--- a/lib/asn1c/ngap/NGAP_BurstArrivalTime.c
+++ b/lib/asn1c/ngap/NGAP_BurstArrivalTime.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_BurstArrivalTime.h"
diff --git a/lib/asn1c/ngap/NGAP_BurstArrivalTime.h b/lib/asn1c/ngap/NGAP_BurstArrivalTime.h
index 3fb8c76259..df37f41735 100644
--- a/lib/asn1c/ngap/NGAP_BurstArrivalTime.h
+++ b/lib/asn1c/ngap/NGAP_BurstArrivalTime.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_BurstArrivalTime_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_BurstArrivalTime;
asn_struct_free_f NGAP_BurstArrivalTime_free;
asn_struct_print_f NGAP_BurstArrivalTime_print;
asn_constr_check_f NGAP_BurstArrivalTime_constraint;
-jer_type_encoder_f NGAP_BurstArrivalTime_encode_jer;
per_type_decoder_f NGAP_BurstArrivalTime_decode_aper;
per_type_encoder_f NGAP_BurstArrivalTime_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CAG-ID.c b/lib/asn1c/ngap/NGAP_CAG-ID.c
index 25ac4b1b2a..66149ff3d4 100644
--- a/lib/asn1c/ngap/NGAP_CAG-ID.c
+++ b/lib/asn1c/ngap/NGAP_CAG-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CAG-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_CAG-ID.h b/lib/asn1c/ngap/NGAP_CAG-ID.h
index 8d04d0d476..40eda73f69 100644
--- a/lib/asn1c/ngap/NGAP_CAG-ID.h
+++ b/lib/asn1c/ngap/NGAP_CAG-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CAG_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_CAG_ID;
asn_struct_free_f NGAP_CAG_ID_free;
asn_struct_print_f NGAP_CAG_ID_print;
asn_constr_check_f NGAP_CAG_ID_constraint;
-jer_type_encoder_f NGAP_CAG_ID_encode_jer;
per_type_decoder_f NGAP_CAG_ID_decode_aper;
per_type_encoder_f NGAP_CAG_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.c b/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.c
index 069e32298f..5e64770ca1 100644
--- a/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.c
+++ b/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CEmodeBSupport-Indicator.h"
diff --git a/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.h b/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.h
index 9f3a1d5afd..42da41e936 100644
--- a/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.h
+++ b/lib/asn1c/ngap/NGAP_CEmodeBSupport-Indicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CEmodeBSupport_Indicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CEmodeBSupport_Indicator_specs
asn_struct_free_f NGAP_CEmodeBSupport_Indicator_free;
asn_struct_print_f NGAP_CEmodeBSupport_Indicator_print;
asn_constr_check_f NGAP_CEmodeBSupport_Indicator_constraint;
-jer_type_encoder_f NGAP_CEmodeBSupport_Indicator_encode_jer;
per_type_decoder_f NGAP_CEmodeBSupport_Indicator_decode_aper;
per_type_encoder_f NGAP_CEmodeBSupport_Indicator_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CEmodeBrestricted.c b/lib/asn1c/ngap/NGAP_CEmodeBrestricted.c
index a5f6084697..e520edad81 100644
--- a/lib/asn1c/ngap/NGAP_CEmodeBrestricted.c
+++ b/lib/asn1c/ngap/NGAP_CEmodeBrestricted.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CEmodeBrestricted.h"
diff --git a/lib/asn1c/ngap/NGAP_CEmodeBrestricted.h b/lib/asn1c/ngap/NGAP_CEmodeBrestricted.h
index 1769d80b6b..d839abbeb2 100644
--- a/lib/asn1c/ngap/NGAP_CEmodeBrestricted.h
+++ b/lib/asn1c/ngap/NGAP_CEmodeBrestricted.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CEmodeBrestricted_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CEmodeBrestricted_specs_1;
asn_struct_free_f NGAP_CEmodeBrestricted_free;
asn_struct_print_f NGAP_CEmodeBrestricted_print;
asn_constr_check_f NGAP_CEmodeBrestricted_constraint;
-jer_type_encoder_f NGAP_CEmodeBrestricted_encode_jer;
per_type_decoder_f NGAP_CEmodeBrestricted_decode_aper;
per_type_encoder_f NGAP_CEmodeBrestricted_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.c b/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.c
index d5d059b152..ebf2320682 100644
--- a/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.c
+++ b/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CNAssistedRANTuning.h"
diff --git a/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.h b/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.h
index b562b3c7a6..f720691865 100644
--- a/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.h
+++ b/lib/asn1c/ngap/NGAP_CNAssistedRANTuning.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CNAssistedRANTuning_H_
diff --git a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.c b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.c
index 33529a9eb2..8789436359 100644
--- a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.c
+++ b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CNTypeRestrictionsForEquivalent.h"
diff --git a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.h b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.h
index dfbfec7f53..251c8bbb92 100644
--- a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.h
+++ b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalent.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CNTypeRestrictionsForEquivalent_H_
diff --git a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.c b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.c
index 3bc52e6bff..9d692586d1 100644
--- a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.c
+++ b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CNTypeRestrictionsForEquivalentItem.h"
diff --git a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.h b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.h
index 187f67a6c0..f673d17430 100644
--- a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.h
+++ b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForEquivalentItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CNTypeRestrictionsForEquivalentItem_H_
diff --git a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.c b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.c
index 7064a0ff41..2058dc310d 100644
--- a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.c
+++ b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CNTypeRestrictionsForServing.h"
diff --git a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.h b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.h
index 5d7c69f27b..4494f3991c 100644
--- a/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.h
+++ b/lib/asn1c/ngap/NGAP_CNTypeRestrictionsForServing.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CNTypeRestrictionsForServing_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CNTypeRestrictionsForServing_s
asn_struct_free_f NGAP_CNTypeRestrictionsForServing_free;
asn_struct_print_f NGAP_CNTypeRestrictionsForServing_print;
asn_constr_check_f NGAP_CNTypeRestrictionsForServing_constraint;
-jer_type_encoder_f NGAP_CNTypeRestrictionsForServing_encode_jer;
per_type_decoder_f NGAP_CNTypeRestrictionsForServing_decode_aper;
per_type_encoder_f NGAP_CNTypeRestrictionsForServing_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CNsubgroupID.c b/lib/asn1c/ngap/NGAP_CNsubgroupID.c
index f83c6ef2f3..1efff8bfcd 100644
--- a/lib/asn1c/ngap/NGAP_CNsubgroupID.c
+++ b/lib/asn1c/ngap/NGAP_CNsubgroupID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CNsubgroupID.h"
diff --git a/lib/asn1c/ngap/NGAP_CNsubgroupID.h b/lib/asn1c/ngap/NGAP_CNsubgroupID.h
index 9db8771bb0..d91342e032 100644
--- a/lib/asn1c/ngap/NGAP_CNsubgroupID.h
+++ b/lib/asn1c/ngap/NGAP_CNsubgroupID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CNsubgroupID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_CNsubgroupID;
asn_struct_free_f NGAP_CNsubgroupID_free;
asn_struct_print_f NGAP_CNsubgroupID_print;
asn_constr_check_f NGAP_CNsubgroupID_constraint;
-jer_type_encoder_f NGAP_CNsubgroupID_encode_jer;
per_type_decoder_f NGAP_CNsubgroupID_decode_aper;
per_type_encoder_f NGAP_CNsubgroupID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.c b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.c
index 124bcf686e..c2af6a3f7b 100644
--- a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.c
+++ b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_COUNTValueForPDCP-SN12.h"
diff --git a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.h b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.h
index 11e4d9e5b9..a6d268f4dc 100644
--- a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.h
+++ b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN12.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_COUNTValueForPDCP_SN12_H_
diff --git a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.c b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.c
index c01e70fd38..0bcdce6ba8 100644
--- a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.c
+++ b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_COUNTValueForPDCP-SN18.h"
diff --git a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.h b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.h
index b03e6ace81..086e2c87bc 100644
--- a/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.h
+++ b/lib/asn1c/ngap/NGAP_COUNTValueForPDCP-SN18.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_COUNTValueForPDCP_SN18_H_
diff --git a/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.c b/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.c
index 79aa6ad491..af37219f44 100644
--- a/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.c
+++ b/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CPTransportLayerInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.h b/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.h
index f6711f4cdb..d26dddcf6b 100644
--- a/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.h
+++ b/lib/asn1c/ngap/NGAP_CPTransportLayerInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CPTransportLayerInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.c b/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.c
index ed9c1be15c..c7c1fb0681 100644
--- a/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.c
+++ b/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelAllWarningMessages.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.h b/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.h
index 31c9b55f14..8815f0a34e 100644
--- a/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.h
+++ b/lib/asn1c/ngap/NGAP_CancelAllWarningMessages.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelAllWarningMessages_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CancelAllWarningMessages_specs
asn_struct_free_f NGAP_CancelAllWarningMessages_free;
asn_struct_print_f NGAP_CancelAllWarningMessages_print;
asn_constr_check_f NGAP_CancelAllWarningMessages_constraint;
-jer_type_encoder_f NGAP_CancelAllWarningMessages_encode_jer;
per_type_decoder_f NGAP_CancelAllWarningMessages_decode_aper;
per_type_encoder_f NGAP_CancelAllWarningMessages_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.c b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.c
index 81a2db6889..49effb51f6 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInEAI-EUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.h b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.h
index 47e4c4923f..a639146f77 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInEAI_EUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.c b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.c
index b0f900f884..70446404f5 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInEAI-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.h b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.h
index 432d3fd6b5..787237f9fe 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInEAI_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.c b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.c
index 281826cf89..64de778c02 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInEAI-NR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.h b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.h
index 451c7aa619..749ca585b3 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInEAI_NR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.c b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.c
index fad6e8e9dd..8f74513f84 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInEAI-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.h b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.h
index cd4c3b4f81..a3e8a88d40 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInEAI-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInEAI_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.c b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.c
index 2e5a03bdf2..2a33d40518 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInTAI-EUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.h b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.h
index 12aaeefbe3..a5e86f8919 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInTAI_EUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.c b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.c
index 1742eecd71..97923577f3 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInTAI-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.h b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.h
index 41dc6aec12..9a899dd32b 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInTAI_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.c b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.c
index 293ed4f5e3..dd824cb1c4 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInTAI-NR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.h b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.h
index 32ff006d2b..6252fd5aef 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInTAI_NR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.c b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.c
index 5021b5dad0..63aba6b645 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.c
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CancelledCellsInTAI-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.h b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.h
index 20e76aa6c2..d8db293ca8 100644
--- a/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.h
+++ b/lib/asn1c/ngap/NGAP_CancelledCellsInTAI-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CancelledCellsInTAI_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_CandidateCell.c b/lib/asn1c/ngap/NGAP_CandidateCell.c
index ef7fa5fbd2..d83a1cae73 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCell.c
+++ b/lib/asn1c/ngap/NGAP_CandidateCell.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CandidateCell.h"
diff --git a/lib/asn1c/ngap/NGAP_CandidateCell.h b/lib/asn1c/ngap/NGAP_CandidateCell.h
index 329cfd8690..6eee28a580 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCell.h
+++ b/lib/asn1c/ngap/NGAP_CandidateCell.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CandidateCell_H_
diff --git a/lib/asn1c/ngap/NGAP_CandidateCellID.c b/lib/asn1c/ngap/NGAP_CandidateCellID.c
index c7c85a56a7..b085f1866d 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCellID.c
+++ b/lib/asn1c/ngap/NGAP_CandidateCellID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CandidateCellID.h"
diff --git a/lib/asn1c/ngap/NGAP_CandidateCellID.h b/lib/asn1c/ngap/NGAP_CandidateCellID.h
index 3d2ebb7e05..ac074ce7cb 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCellID.h
+++ b/lib/asn1c/ngap/NGAP_CandidateCellID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CandidateCellID_H_
diff --git a/lib/asn1c/ngap/NGAP_CandidateCellItem.c b/lib/asn1c/ngap/NGAP_CandidateCellItem.c
index ff0391e859..e3bd5e5036 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCellItem.c
+++ b/lib/asn1c/ngap/NGAP_CandidateCellItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CandidateCellItem.h"
diff --git a/lib/asn1c/ngap/NGAP_CandidateCellItem.h b/lib/asn1c/ngap/NGAP_CandidateCellItem.h
index 6fd5ca0141..30d6a48359 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCellItem.h
+++ b/lib/asn1c/ngap/NGAP_CandidateCellItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CandidateCellItem_H_
diff --git a/lib/asn1c/ngap/NGAP_CandidateCellList.c b/lib/asn1c/ngap/NGAP_CandidateCellList.c
index 3d45f6050c..3dae7cc650 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCellList.c
+++ b/lib/asn1c/ngap/NGAP_CandidateCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CandidateCellList.h"
diff --git a/lib/asn1c/ngap/NGAP_CandidateCellList.h b/lib/asn1c/ngap/NGAP_CandidateCellList.h
index e7106fd8c5..b8352ac692 100644
--- a/lib/asn1c/ngap/NGAP_CandidateCellList.h
+++ b/lib/asn1c/ngap/NGAP_CandidateCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CandidateCellList_H_
diff --git a/lib/asn1c/ngap/NGAP_CandidatePCI.c b/lib/asn1c/ngap/NGAP_CandidatePCI.c
index 68012a2233..04a232f547 100644
--- a/lib/asn1c/ngap/NGAP_CandidatePCI.c
+++ b/lib/asn1c/ngap/NGAP_CandidatePCI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CandidatePCI.h"
diff --git a/lib/asn1c/ngap/NGAP_CandidatePCI.h b/lib/asn1c/ngap/NGAP_CandidatePCI.h
index fd465413c6..3f4298ac24 100644
--- a/lib/asn1c/ngap/NGAP_CandidatePCI.h
+++ b/lib/asn1c/ngap/NGAP_CandidatePCI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CandidatePCI_H_
diff --git a/lib/asn1c/ngap/NGAP_Cause.c b/lib/asn1c/ngap/NGAP_Cause.c
index c3fcad9577..9f9d91010c 100644
--- a/lib/asn1c/ngap/NGAP_Cause.c
+++ b/lib/asn1c/ngap/NGAP_Cause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Cause.h"
diff --git a/lib/asn1c/ngap/NGAP_Cause.h b/lib/asn1c/ngap/NGAP_Cause.h
index 0e708d22ea..e7ef694c25 100644
--- a/lib/asn1c/ngap/NGAP_Cause.h
+++ b/lib/asn1c/ngap/NGAP_Cause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Cause_H_
diff --git a/lib/asn1c/ngap/NGAP_CauseMisc.c b/lib/asn1c/ngap/NGAP_CauseMisc.c
index e44f827e57..13f91be17e 100644
--- a/lib/asn1c/ngap/NGAP_CauseMisc.c
+++ b/lib/asn1c/ngap/NGAP_CauseMisc.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CauseMisc.h"
diff --git a/lib/asn1c/ngap/NGAP_CauseMisc.h b/lib/asn1c/ngap/NGAP_CauseMisc.h
index 2e64f8bd9e..0a4f1cca98 100644
--- a/lib/asn1c/ngap/NGAP_CauseMisc.h
+++ b/lib/asn1c/ngap/NGAP_CauseMisc.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CauseMisc_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CauseMisc_specs_1;
asn_struct_free_f NGAP_CauseMisc_free;
asn_struct_print_f NGAP_CauseMisc_print;
asn_constr_check_f NGAP_CauseMisc_constraint;
-jer_type_encoder_f NGAP_CauseMisc_encode_jer;
per_type_decoder_f NGAP_CauseMisc_decode_aper;
per_type_encoder_f NGAP_CauseMisc_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CauseNas.c b/lib/asn1c/ngap/NGAP_CauseNas.c
index b00df47932..0721f17eb9 100644
--- a/lib/asn1c/ngap/NGAP_CauseNas.c
+++ b/lib/asn1c/ngap/NGAP_CauseNas.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CauseNas.h"
diff --git a/lib/asn1c/ngap/NGAP_CauseNas.h b/lib/asn1c/ngap/NGAP_CauseNas.h
index a7819ff423..bae0949d50 100644
--- a/lib/asn1c/ngap/NGAP_CauseNas.h
+++ b/lib/asn1c/ngap/NGAP_CauseNas.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CauseNas_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CauseNas_specs_1;
asn_struct_free_f NGAP_CauseNas_free;
asn_struct_print_f NGAP_CauseNas_print;
asn_constr_check_f NGAP_CauseNas_constraint;
-jer_type_encoder_f NGAP_CauseNas_encode_jer;
per_type_decoder_f NGAP_CauseNas_decode_aper;
per_type_encoder_f NGAP_CauseNas_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CauseProtocol.c b/lib/asn1c/ngap/NGAP_CauseProtocol.c
index ecfd154f64..5f46c60386 100644
--- a/lib/asn1c/ngap/NGAP_CauseProtocol.c
+++ b/lib/asn1c/ngap/NGAP_CauseProtocol.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CauseProtocol.h"
diff --git a/lib/asn1c/ngap/NGAP_CauseProtocol.h b/lib/asn1c/ngap/NGAP_CauseProtocol.h
index 5fa01da45c..2b92b97181 100644
--- a/lib/asn1c/ngap/NGAP_CauseProtocol.h
+++ b/lib/asn1c/ngap/NGAP_CauseProtocol.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CauseProtocol_H_
@@ -42,7 +42,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CauseProtocol_specs_1;
asn_struct_free_f NGAP_CauseProtocol_free;
asn_struct_print_f NGAP_CauseProtocol_print;
asn_constr_check_f NGAP_CauseProtocol_constraint;
-jer_type_encoder_f NGAP_CauseProtocol_encode_jer;
per_type_decoder_f NGAP_CauseProtocol_decode_aper;
per_type_encoder_f NGAP_CauseProtocol_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CauseRadioNetwork.c b/lib/asn1c/ngap/NGAP_CauseRadioNetwork.c
index 4445a684bd..0397dba238 100644
--- a/lib/asn1c/ngap/NGAP_CauseRadioNetwork.c
+++ b/lib/asn1c/ngap/NGAP_CauseRadioNetwork.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CauseRadioNetwork.h"
diff --git a/lib/asn1c/ngap/NGAP_CauseRadioNetwork.h b/lib/asn1c/ngap/NGAP_CauseRadioNetwork.h
index 87103881c9..cd33d7130b 100644
--- a/lib/asn1c/ngap/NGAP_CauseRadioNetwork.h
+++ b/lib/asn1c/ngap/NGAP_CauseRadioNetwork.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CauseRadioNetwork_H_
@@ -92,7 +92,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CauseRadioNetwork_specs_1;
asn_struct_free_f NGAP_CauseRadioNetwork_free;
asn_struct_print_f NGAP_CauseRadioNetwork_print;
asn_constr_check_f NGAP_CauseRadioNetwork_constraint;
-jer_type_encoder_f NGAP_CauseRadioNetwork_encode_jer;
per_type_decoder_f NGAP_CauseRadioNetwork_decode_aper;
per_type_encoder_f NGAP_CauseRadioNetwork_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CauseTransport.c b/lib/asn1c/ngap/NGAP_CauseTransport.c
index 436f15ad32..afeaa6a216 100644
--- a/lib/asn1c/ngap/NGAP_CauseTransport.c
+++ b/lib/asn1c/ngap/NGAP_CauseTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CauseTransport.h"
diff --git a/lib/asn1c/ngap/NGAP_CauseTransport.h b/lib/asn1c/ngap/NGAP_CauseTransport.h
index 083273184b..023812ad39 100644
--- a/lib/asn1c/ngap/NGAP_CauseTransport.h
+++ b/lib/asn1c/ngap/NGAP_CauseTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CauseTransport_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CauseTransport_specs_1;
asn_struct_free_f NGAP_CauseTransport_free;
asn_struct_print_f NGAP_CauseTransport_print;
asn_constr_check_f NGAP_CauseTransport_constraint;
-jer_type_encoder_f NGAP_CauseTransport_encode_jer;
per_type_decoder_f NGAP_CauseTransport_decode_aper;
per_type_encoder_f NGAP_CauseTransport_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Cell-CAGInformation.c b/lib/asn1c/ngap/NGAP_Cell-CAGInformation.c
index 9b0bcd06be..ad2808d42f 100644
--- a/lib/asn1c/ngap/NGAP_Cell-CAGInformation.c
+++ b/lib/asn1c/ngap/NGAP_Cell-CAGInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Cell-CAGInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_Cell-CAGInformation.h b/lib/asn1c/ngap/NGAP_Cell-CAGInformation.h
index 099f58d177..b20eab4752 100644
--- a/lib/asn1c/ngap/NGAP_Cell-CAGInformation.h
+++ b/lib/asn1c/ngap/NGAP_Cell-CAGInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Cell_CAGInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.c b/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.c
index dacea3c127..788adbbe62 100644
--- a/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellBasedMDT-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.h b/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.h
index b8b7a77028..773b13cda9 100644
--- a/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CellBasedMDT-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellBasedMDT_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.c b/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.c
index 2479029e15..54b76ae3e5 100644
--- a/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.c
+++ b/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellBasedMDT-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.h b/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.h
index a6877af82a..fdbfe5b2eb 100644
--- a/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.h
+++ b/lib/asn1c/ngap/NGAP_CellBasedMDT-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellBasedMDT_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_CellBasedQMC.c b/lib/asn1c/ngap/NGAP_CellBasedQMC.c
index 7599250b7c..c1d90b18de 100644
--- a/lib/asn1c/ngap/NGAP_CellBasedQMC.c
+++ b/lib/asn1c/ngap/NGAP_CellBasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellBasedQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_CellBasedQMC.h b/lib/asn1c/ngap/NGAP_CellBasedQMC.h
index 5612f911ff..2f6f73d9f0 100644
--- a/lib/asn1c/ngap/NGAP_CellBasedQMC.h
+++ b/lib/asn1c/ngap/NGAP_CellBasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellBasedQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_CellCAGList.c b/lib/asn1c/ngap/NGAP_CellCAGList.c
index bc097796ec..5245d6a3f5 100644
--- a/lib/asn1c/ngap/NGAP_CellCAGList.c
+++ b/lib/asn1c/ngap/NGAP_CellCAGList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellCAGList.h"
diff --git a/lib/asn1c/ngap/NGAP_CellCAGList.h b/lib/asn1c/ngap/NGAP_CellCAGList.h
index da56687901..b839b6cc25 100644
--- a/lib/asn1c/ngap/NGAP_CellCAGList.h
+++ b/lib/asn1c/ngap/NGAP_CellCAGList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellCAGList_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.c b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.c
index c4ad8a55c0..184e93839e 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDBroadcastEUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.h b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.h
index 83dd2ecdff..ae5ca50c7c 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDBroadcastEUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.c b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.c
index 3aee83fe75..440647316d 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDBroadcastEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.h b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.h
index e8f4a3f27e..3d7eedd4a6 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDBroadcastEUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.c b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.c
index 3f3873e6da..c816a6d30d 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.c
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDBroadcastNR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.h b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.h
index 141577fc88..3774bbbdb7 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.h
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDBroadcastNR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.c b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.c
index 079953a1dd..546ba7114a 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.c
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDBroadcastNR.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.h b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.h
index 38a5ca06f4..44ff1b8d7c 100644
--- a/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.h
+++ b/lib/asn1c/ngap/NGAP_CellIDBroadcastNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDBroadcastNR_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.c b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.c
index 1e74c46650..921e94a585 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDCancelledEUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.h b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.h
index a8edead779..e01d7b4e14 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDCancelledEUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.c b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.c
index 571fdca102..50906b43b6 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDCancelledEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.h b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.h
index 09316ddf55..88a02d3b6f 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDCancelledEUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.c b/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.c
index 9bc1db6ff4..4bfd561176 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.c
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDCancelledNR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.h b/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.h
index 90fd1d5d9e..6b8f3f76e2 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.h
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledNR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDCancelledNR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledNR.c b/lib/asn1c/ngap/NGAP_CellIDCancelledNR.c
index 0f0bf943a2..59ce409fe4 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledNR.c
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDCancelledNR.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDCancelledNR.h b/lib/asn1c/ngap/NGAP_CellIDCancelledNR.h
index fa9f4d8be4..6d147083df 100644
--- a/lib/asn1c/ngap/NGAP_CellIDCancelledNR.h
+++ b/lib/asn1c/ngap/NGAP_CellIDCancelledNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDCancelledNR_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIDListForRestart.c b/lib/asn1c/ngap/NGAP_CellIDListForRestart.c
index 17ca4ecc84..f455336876 100644
--- a/lib/asn1c/ngap/NGAP_CellIDListForRestart.c
+++ b/lib/asn1c/ngap/NGAP_CellIDListForRestart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIDListForRestart.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIDListForRestart.h b/lib/asn1c/ngap/NGAP_CellIDListForRestart.h
index a017657439..6c80bb5746 100644
--- a/lib/asn1c/ngap/NGAP_CellIDListForRestart.h
+++ b/lib/asn1c/ngap/NGAP_CellIDListForRestart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIDListForRestart_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.c b/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.c
index 147c85e79a..a03312dc18 100644
--- a/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIdListforMDT-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.h b/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.h
index 963aa00a76..c4ad9c3aec 100644
--- a/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CellIdListforMDT-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIdListforMDT_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.c b/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.c
index eea565d336..d2a152591d 100644
--- a/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.c
+++ b/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIdListforMDT-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.h b/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.h
index ed41de9566..e2f750ae19 100644
--- a/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.h
+++ b/lib/asn1c/ngap/NGAP_CellIdListforMDT-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIdListforMDT_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_CellIdListforQMC.c b/lib/asn1c/ngap/NGAP_CellIdListforQMC.c
index fe9212978e..df1d150855 100644
--- a/lib/asn1c/ngap/NGAP_CellIdListforQMC.c
+++ b/lib/asn1c/ngap/NGAP_CellIdListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellIdListforQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_CellIdListforQMC.h b/lib/asn1c/ngap/NGAP_CellIdListforQMC.h
index 34c729de9b..cf53633d75 100644
--- a/lib/asn1c/ngap/NGAP_CellIdListforQMC.h
+++ b/lib/asn1c/ngap/NGAP_CellIdListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellIdListforQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_CellSize.c b/lib/asn1c/ngap/NGAP_CellSize.c
index 3f8ef82f63..34c39d68a2 100644
--- a/lib/asn1c/ngap/NGAP_CellSize.c
+++ b/lib/asn1c/ngap/NGAP_CellSize.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellSize.h"
diff --git a/lib/asn1c/ngap/NGAP_CellSize.h b/lib/asn1c/ngap/NGAP_CellSize.h
index d7f691060c..af7eb0f58e 100644
--- a/lib/asn1c/ngap/NGAP_CellSize.h
+++ b/lib/asn1c/ngap/NGAP_CellSize.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellSize_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_CellSize_specs_1;
asn_struct_free_f NGAP_CellSize_free;
asn_struct_print_f NGAP_CellSize_print;
asn_constr_check_f NGAP_CellSize_constraint;
-jer_type_encoder_f NGAP_CellSize_encode_jer;
per_type_decoder_f NGAP_CellSize_decode_aper;
per_type_encoder_f NGAP_CellSize_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CellTrafficTrace.c b/lib/asn1c/ngap/NGAP_CellTrafficTrace.c
index 163e562118..c4ed3c18ba 100644
--- a/lib/asn1c/ngap/NGAP_CellTrafficTrace.c
+++ b/lib/asn1c/ngap/NGAP_CellTrafficTrace.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellTrafficTrace.h"
diff --git a/lib/asn1c/ngap/NGAP_CellTrafficTrace.h b/lib/asn1c/ngap/NGAP_CellTrafficTrace.h
index 4a63d6f744..f08b7c362f 100644
--- a/lib/asn1c/ngap/NGAP_CellTrafficTrace.h
+++ b/lib/asn1c/ngap/NGAP_CellTrafficTrace.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellTrafficTrace_H_
diff --git a/lib/asn1c/ngap/NGAP_CellType.c b/lib/asn1c/ngap/NGAP_CellType.c
index 4abf8d3846..c4f2ed0b73 100644
--- a/lib/asn1c/ngap/NGAP_CellType.c
+++ b/lib/asn1c/ngap/NGAP_CellType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellType.h"
diff --git a/lib/asn1c/ngap/NGAP_CellType.h b/lib/asn1c/ngap/NGAP_CellType.h
index 98d96d5682..b605d4f473 100644
--- a/lib/asn1c/ngap/NGAP_CellType.h
+++ b/lib/asn1c/ngap/NGAP_CellType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellType_H_
diff --git a/lib/asn1c/ngap/NGAP_CellsToActivateList.c b/lib/asn1c/ngap/NGAP_CellsToActivateList.c
index bd96df461a..f49b3192fa 100644
--- a/lib/asn1c/ngap/NGAP_CellsToActivateList.c
+++ b/lib/asn1c/ngap/NGAP_CellsToActivateList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CellsToActivateList.h"
diff --git a/lib/asn1c/ngap/NGAP_CellsToActivateList.h b/lib/asn1c/ngap/NGAP_CellsToActivateList.h
index e70f1356b2..1f4af5f04e 100644
--- a/lib/asn1c/ngap/NGAP_CellsToActivateList.h
+++ b/lib/asn1c/ngap/NGAP_CellsToActivateList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CellsToActivateList_H_
diff --git a/lib/asn1c/ngap/NGAP_CommonNetworkInstance.c b/lib/asn1c/ngap/NGAP_CommonNetworkInstance.c
index 6649f623bc..f873ea65aa 100644
--- a/lib/asn1c/ngap/NGAP_CommonNetworkInstance.c
+++ b/lib/asn1c/ngap/NGAP_CommonNetworkInstance.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CommonNetworkInstance.h"
diff --git a/lib/asn1c/ngap/NGAP_CommonNetworkInstance.h b/lib/asn1c/ngap/NGAP_CommonNetworkInstance.h
index c5b5d3e2b8..50757d4857 100644
--- a/lib/asn1c/ngap/NGAP_CommonNetworkInstance.h
+++ b/lib/asn1c/ngap/NGAP_CommonNetworkInstance.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CommonNetworkInstance_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_CommonNetworkInstance;
asn_struct_free_f NGAP_CommonNetworkInstance_free;
asn_struct_print_f NGAP_CommonNetworkInstance_print;
asn_constr_check_f NGAP_CommonNetworkInstance_constraint;
-jer_type_encoder_f NGAP_CommonNetworkInstance_encode_jer;
per_type_decoder_f NGAP_CommonNetworkInstance_decode_aper;
per_type_encoder_f NGAP_CommonNetworkInstance_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.c b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.c
index db3d04e1a8..341c5e5475 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInEAI-EUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.h b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.h
index 9c473695cc..43187f2933 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInEAI_EUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.c b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.c
index e9f937b2d4..69916623f9 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInEAI-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.h b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.h
index 85cc65075a..8874d0c5d5 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInEAI_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.c b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.c
index ab15c6815e..6b57af2fa2 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInEAI-NR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.h b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.h
index b48f99fceb..411be428ff 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInEAI_NR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.c b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.c
index 2687ea7047..e87df03f63 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInEAI-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.h b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.h
index 0c1a1f7ee1..60bce8bc5a 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInEAI-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInEAI_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.c b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.c
index 88d596931f..fc02e42acf 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInTAI-EUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.h b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.h
index 871fe774f7..c402b79650 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInTAI_EUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.c b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.c
index e95bbccd8d..2d0eab472d 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInTAI-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.h b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.h
index b7e9413ad8..935c80d49c 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInTAI_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.c b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.c
index 13c87a9eef..99cc094ea7 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInTAI-NR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.h b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.h
index 7fcb411f7d..34d6fb08fb 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInTAI_NR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.c b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.c
index 392bcee99a..6006cdfeaa 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.c
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompletedCellsInTAI-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.h b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.h
index 39ea0f8680..302533ef68 100644
--- a/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.h
+++ b/lib/asn1c/ngap/NGAP_CompletedCellsInTAI-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompletedCellsInTAI_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.c b/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.c
index c71aa24dcb..b7253bc4c3 100644
--- a/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.c
+++ b/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CompositeAvailableCapacity.h"
diff --git a/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.h b/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.h
index 5e46930548..3b7ca41072 100644
--- a/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.h
+++ b/lib/asn1c/ngap/NGAP_CompositeAvailableCapacity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CompositeAvailableCapacity_H_
diff --git a/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.c b/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.c
index d168036666..3db3c40df9 100644
--- a/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.c
+++ b/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ConcurrentWarningMessageInd.h"
diff --git a/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.h b/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.h
index 85c9140f00..34611865b4 100644
--- a/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.h
+++ b/lib/asn1c/ngap/NGAP_ConcurrentWarningMessageInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ConcurrentWarningMessageInd_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ConcurrentWarningMessageInd_sp
asn_struct_free_f NGAP_ConcurrentWarningMessageInd_free;
asn_struct_print_f NGAP_ConcurrentWarningMessageInd_print;
asn_constr_check_f NGAP_ConcurrentWarningMessageInd_constraint;
-jer_type_encoder_f NGAP_ConcurrentWarningMessageInd_encode_jer;
per_type_decoder_f NGAP_ConcurrentWarningMessageInd_decode_aper;
per_type_encoder_f NGAP_ConcurrentWarningMessageInd_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.c b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.c
index a3d9c6dc9e..bab0d87f8a 100644
--- a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.c
+++ b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ConfidentialityProtectionIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.h b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.h
index 3d4eea3ce4..6b69d98417 100644
--- a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.h
+++ b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ConfidentialityProtectionIndication_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ConfidentialityProtectionIndic
asn_struct_free_f NGAP_ConfidentialityProtectionIndication_free;
asn_struct_print_f NGAP_ConfidentialityProtectionIndication_print;
asn_constr_check_f NGAP_ConfidentialityProtectionIndication_constraint;
-jer_type_encoder_f NGAP_ConfidentialityProtectionIndication_encode_jer;
per_type_decoder_f NGAP_ConfidentialityProtectionIndication_decode_aper;
per_type_encoder_f NGAP_ConfidentialityProtectionIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.c b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.c
index 55110939f8..12d4aadd44 100644
--- a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.c
+++ b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ConfidentialityProtectionResult.h"
diff --git a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.h b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.h
index 628bcc70a5..0fc041631e 100644
--- a/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.h
+++ b/lib/asn1c/ngap/NGAP_ConfidentialityProtectionResult.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ConfidentialityProtectionResult_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ConfidentialityProtectionResul
asn_struct_free_f NGAP_ConfidentialityProtectionResult_free;
asn_struct_print_f NGAP_ConfidentialityProtectionResult_print;
asn_constr_check_f NGAP_ConfidentialityProtectionResult_constraint;
-jer_type_encoder_f NGAP_ConfidentialityProtectionResult_encode_jer;
per_type_decoder_f NGAP_ConfidentialityProtectionResult_decode_aper;
per_type_encoder_f NGAP_ConfidentialityProtectionResult_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.c b/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.c
index 612ad59f26..f15bbe145c 100644
--- a/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.c
+++ b/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ConfiguredNSSAI.h"
diff --git a/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.h b/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.h
index 9fcb64f8db..6becdf2adb 100644
--- a/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.h
+++ b/lib/asn1c/ngap/NGAP_ConfiguredNSSAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ConfiguredNSSAI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ConfiguredNSSAI;
asn_struct_free_f NGAP_ConfiguredNSSAI_free;
asn_struct_print_f NGAP_ConfiguredNSSAI_print;
asn_constr_check_f NGAP_ConfiguredNSSAI_constraint;
-jer_type_encoder_f NGAP_ConfiguredNSSAI_encode_jer;
per_type_decoder_f NGAP_ConfiguredNSSAI_decode_aper;
per_type_encoder_f NGAP_ConfiguredNSSAI_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.c b/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.c
index 0cf2d708d0..c0e3d9f6bc 100644
--- a/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.c
+++ b/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ConfiguredTACIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.h b/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.h
index 27a1d00f8d..c11c764925 100644
--- a/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.h
+++ b/lib/asn1c/ngap/NGAP_ConfiguredTACIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ConfiguredTACIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ConfiguredTACIndication_specs_
asn_struct_free_f NGAP_ConfiguredTACIndication_free;
asn_struct_print_f NGAP_ConfiguredTACIndication_print;
asn_constr_check_f NGAP_ConfiguredTACIndication_constraint;
-jer_type_encoder_f NGAP_ConfiguredTACIndication_encode_jer;
per_type_decoder_f NGAP_ConfiguredTACIndication_decode_aper;
per_type_encoder_f NGAP_ConfiguredTACIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.c b/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.c
index f0e7fabd69..ad4dd60bd5 100644
--- a/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.c
+++ b/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ConnectionEstablishmentIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.h b/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.h
index f6680aa2f3..e740c1e65f 100644
--- a/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.h
+++ b/lib/asn1c/ngap/NGAP_ConnectionEstablishmentIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ConnectionEstablishmentIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.c b/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.c
index 7489207e62..19e8b0f20d 100644
--- a/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.c
+++ b/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CoreNetworkAssistanceInformationForInactive.h"
diff --git a/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.h b/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.h
index 520311562f..5769883f27 100644
--- a/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.h
+++ b/lib/asn1c/ngap/NGAP_CoreNetworkAssistanceInformationForInactive.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CoreNetworkAssistanceInformationForInactive_H_
diff --git a/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.c b/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.c
index 34b982781c..9af9c280a5 100644
--- a/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.c
+++ b/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CoverageEnhancementLevel.h"
diff --git a/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.h b/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.h
index 3f19247c62..96e67f6c5a 100644
--- a/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.h
+++ b/lib/asn1c/ngap/NGAP_CoverageEnhancementLevel.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CoverageEnhancementLevel_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_CoverageEnhancementLevel;
asn_struct_free_f NGAP_CoverageEnhancementLevel_free;
asn_struct_print_f NGAP_CoverageEnhancementLevel_print;
asn_constr_check_f NGAP_CoverageEnhancementLevel_constraint;
-jer_type_encoder_f NGAP_CoverageEnhancementLevel_encode_jer;
per_type_decoder_f NGAP_CoverageEnhancementLevel_decode_aper;
per_type_encoder_f NGAP_CoverageEnhancementLevel_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Criticality.c b/lib/asn1c/ngap/NGAP_Criticality.c
index 40da795898..cbf38ff418 100644
--- a/lib/asn1c/ngap/NGAP_Criticality.c
+++ b/lib/asn1c/ngap/NGAP_Criticality.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Criticality.h"
diff --git a/lib/asn1c/ngap/NGAP_Criticality.h b/lib/asn1c/ngap/NGAP_Criticality.h
index 623e17c56f..1d363b2ae4 100644
--- a/lib/asn1c/ngap/NGAP_Criticality.h
+++ b/lib/asn1c/ngap/NGAP_Criticality.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Criticality_H_
@@ -35,7 +35,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Criticality_specs_1;
asn_struct_free_f NGAP_Criticality_free;
asn_struct_print_f NGAP_Criticality_print;
asn_constr_check_f NGAP_Criticality_constraint;
-jer_type_encoder_f NGAP_Criticality_encode_jer;
per_type_decoder_f NGAP_Criticality_decode_aper;
per_type_encoder_f NGAP_Criticality_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.c b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.c
index 91678a3a65..0d29770c28 100644
--- a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.c
+++ b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CriticalityDiagnostics-IE-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.h b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.h
index b57816c2cd..8c6450c476 100644
--- a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.h
+++ b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CriticalityDiagnostics_IE_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.c b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.c
index 0d0f445ecc..66e30ad238 100644
--- a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.c
+++ b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CriticalityDiagnostics-IE-List.h"
diff --git a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.h b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.h
index 30579e7374..33ac59d6cb 100644
--- a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.h
+++ b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics-IE-List.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CriticalityDiagnostics_IE_List_H_
diff --git a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.c b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.c
index 9f488c5ba7..8848048bd6 100644
--- a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.c
+++ b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_CriticalityDiagnostics.h"
diff --git a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.h b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.h
index cdd2ffd06c..1fdd2dc72d 100644
--- a/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.h
+++ b/lib/asn1c/ngap/NGAP_CriticalityDiagnostics.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_CriticalityDiagnostics_H_
diff --git a/lib/asn1c/ngap/NGAP_DAPSRequestInfo.c b/lib/asn1c/ngap/NGAP_DAPSRequestInfo.c
index 6c3dc1f300..0cbcbae776 100644
--- a/lib/asn1c/ngap/NGAP_DAPSRequestInfo.c
+++ b/lib/asn1c/ngap/NGAP_DAPSRequestInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DAPSRequestInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_DAPSRequestInfo.h b/lib/asn1c/ngap/NGAP_DAPSRequestInfo.h
index b71a246609..2cb21f23bb 100644
--- a/lib/asn1c/ngap/NGAP_DAPSRequestInfo.h
+++ b/lib/asn1c/ngap/NGAP_DAPSRequestInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DAPSRequestInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_DAPSResponseInfo.c b/lib/asn1c/ngap/NGAP_DAPSResponseInfo.c
index cca68b0839..053065a323 100644
--- a/lib/asn1c/ngap/NGAP_DAPSResponseInfo.c
+++ b/lib/asn1c/ngap/NGAP_DAPSResponseInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DAPSResponseInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_DAPSResponseInfo.h b/lib/asn1c/ngap/NGAP_DAPSResponseInfo.h
index 0a286dfdbb..7c1325662d 100644
--- a/lib/asn1c/ngap/NGAP_DAPSResponseInfo.h
+++ b/lib/asn1c/ngap/NGAP_DAPSResponseInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DAPSResponseInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.c b/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.c
index c10e26a003..6e6d91ec6d 100644
--- a/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.c
+++ b/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DAPSResponseInfoItem.h"
diff --git a/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.h b/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.h
index 0cb5bb8d15..1efdb8b5e0 100644
--- a/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.h
+++ b/lib/asn1c/ngap/NGAP_DAPSResponseInfoItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DAPSResponseInfoItem_H_
diff --git a/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.c b/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.c
index 2ae2536092..d8c97bc776 100644
--- a/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.c
+++ b/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DAPSResponseInfoList.h"
diff --git a/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.h b/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.h
index 4d23d7bc11..dba651df52 100644
--- a/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.h
+++ b/lib/asn1c/ngap/NGAP_DAPSResponseInfoList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DAPSResponseInfoList_H_
diff --git a/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.c b/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.c
index 6b9af2817c..9899139521 100644
--- a/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.c
+++ b/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DL-CP-SecurityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.h b/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.h
index e3bad80939..85ab29e948 100644
--- a/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.h
+++ b/lib/asn1c/ngap/NGAP_DL-CP-SecurityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DL_CP_SecurityInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_DL-NAS-MAC.c b/lib/asn1c/ngap/NGAP_DL-NAS-MAC.c
index f4b78612c5..6a656b8be5 100644
--- a/lib/asn1c/ngap/NGAP_DL-NAS-MAC.c
+++ b/lib/asn1c/ngap/NGAP_DL-NAS-MAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DL-NAS-MAC.h"
diff --git a/lib/asn1c/ngap/NGAP_DL-NAS-MAC.h b/lib/asn1c/ngap/NGAP_DL-NAS-MAC.h
index 8bc28e883c..21ad0ca82f 100644
--- a/lib/asn1c/ngap/NGAP_DL-NAS-MAC.h
+++ b/lib/asn1c/ngap/NGAP_DL-NAS-MAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DL_NAS_MAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_DL_NAS_MAC;
asn_struct_free_f NGAP_DL_NAS_MAC_free;
asn_struct_print_f NGAP_DL_NAS_MAC_print;
asn_constr_check_f NGAP_DL_NAS_MAC_constraint;
-jer_type_encoder_f NGAP_DL_NAS_MAC_encode_jer;
per_type_decoder_f NGAP_DL_NAS_MAC_decode_aper;
per_type_encoder_f NGAP_DL_NAS_MAC_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.c b/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.c
index f428c3fed9..8941b939bf 100644
--- a/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.c
+++ b/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DL-NGU-TNLInformationReused.h"
diff --git a/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.h b/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.h
index 2d521923b3..64fb18ab93 100644
--- a/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.h
+++ b/lib/asn1c/ngap/NGAP_DL-NGU-TNLInformationReused.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DL_NGU_TNLInformationReused_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_DL_NGU_TNLInformationReused_sp
asn_struct_free_f NGAP_DL_NGU_TNLInformationReused_free;
asn_struct_print_f NGAP_DL_NGU_TNLInformationReused_print;
asn_constr_check_f NGAP_DL_NGU_TNLInformationReused_constraint;
-jer_type_encoder_f NGAP_DL_NGU_TNLInformationReused_encode_jer;
per_type_decoder_f NGAP_DL_NGU_TNLInformationReused_decode_aper;
per_type_encoder_f NGAP_DL_NGU_TNLInformationReused_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DLForwarding.c b/lib/asn1c/ngap/NGAP_DLForwarding.c
index 4000c59586..0a9cff1d23 100644
--- a/lib/asn1c/ngap/NGAP_DLForwarding.c
+++ b/lib/asn1c/ngap/NGAP_DLForwarding.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DLForwarding.h"
diff --git a/lib/asn1c/ngap/NGAP_DLForwarding.h b/lib/asn1c/ngap/NGAP_DLForwarding.h
index 48c8e17cc0..a1df32d6a3 100644
--- a/lib/asn1c/ngap/NGAP_DLForwarding.h
+++ b/lib/asn1c/ngap/NGAP_DLForwarding.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DLForwarding_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_DLForwarding_specs_1;
asn_struct_free_f NGAP_DLForwarding_free;
asn_struct_print_f NGAP_DLForwarding_print;
asn_constr_check_f NGAP_DLForwarding_constraint;
-jer_type_encoder_f NGAP_DLForwarding_encode_jer;
per_type_decoder_f NGAP_DLForwarding_decode_aper;
per_type_encoder_f NGAP_DLForwarding_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DRB-ID.c b/lib/asn1c/ngap/NGAP_DRB-ID.c
index 6ef11cfbbf..7a75ddc406 100644
--- a/lib/asn1c/ngap/NGAP_DRB-ID.c
+++ b/lib/asn1c/ngap/NGAP_DRB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_DRB-ID.h b/lib/asn1c/ngap/NGAP_DRB-ID.h
index deec953516..5a2bcaccef 100644
--- a/lib/asn1c/ngap/NGAP_DRB-ID.h
+++ b/lib/asn1c/ngap/NGAP_DRB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRB_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_DRB_ID;
asn_struct_free_f NGAP_DRB_ID_free;
asn_struct_print_f NGAP_DRB_ID_print;
asn_constr_check_f NGAP_DRB_ID_constraint;
-jer_type_encoder_f NGAP_DRB_ID_encode_jer;
per_type_decoder_f NGAP_DRB_ID_decode_aper;
per_type_encoder_f NGAP_DRB_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusDL.c b/lib/asn1c/ngap/NGAP_DRBStatusDL.c
index 2ecfc44af2..4170930a15 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusDL.c
+++ b/lib/asn1c/ngap/NGAP_DRBStatusDL.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBStatusDL.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusDL.h b/lib/asn1c/ngap/NGAP_DRBStatusDL.h
index a2a4d82a0b..5bd2be2853 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusDL.h
+++ b/lib/asn1c/ngap/NGAP_DRBStatusDL.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBStatusDL_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusDL12.c b/lib/asn1c/ngap/NGAP_DRBStatusDL12.c
index 7df9d07bd5..fc0dd785db 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusDL12.c
+++ b/lib/asn1c/ngap/NGAP_DRBStatusDL12.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBStatusDL12.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusDL12.h b/lib/asn1c/ngap/NGAP_DRBStatusDL12.h
index befe90a712..0726d5a73b 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusDL12.h
+++ b/lib/asn1c/ngap/NGAP_DRBStatusDL12.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBStatusDL12_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusDL18.c b/lib/asn1c/ngap/NGAP_DRBStatusDL18.c
index 9eead3bde5..905d8431b2 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusDL18.c
+++ b/lib/asn1c/ngap/NGAP_DRBStatusDL18.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBStatusDL18.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusDL18.h b/lib/asn1c/ngap/NGAP_DRBStatusDL18.h
index 558026393b..4bcc8730a9 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusDL18.h
+++ b/lib/asn1c/ngap/NGAP_DRBStatusDL18.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBStatusDL18_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusUL.c b/lib/asn1c/ngap/NGAP_DRBStatusUL.c
index 619001ce27..c46ae606a5 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusUL.c
+++ b/lib/asn1c/ngap/NGAP_DRBStatusUL.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBStatusUL.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusUL.h b/lib/asn1c/ngap/NGAP_DRBStatusUL.h
index 95fbc73e90..28d5baea8f 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusUL.h
+++ b/lib/asn1c/ngap/NGAP_DRBStatusUL.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBStatusUL_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusUL12.c b/lib/asn1c/ngap/NGAP_DRBStatusUL12.c
index 9ddfcb6a44..a4e90d0f33 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusUL12.c
+++ b/lib/asn1c/ngap/NGAP_DRBStatusUL12.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBStatusUL12.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusUL12.h b/lib/asn1c/ngap/NGAP_DRBStatusUL12.h
index 5154e93474..5d21c69bfa 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusUL12.h
+++ b/lib/asn1c/ngap/NGAP_DRBStatusUL12.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBStatusUL12_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusUL18.c b/lib/asn1c/ngap/NGAP_DRBStatusUL18.c
index 0cab3a9ae9..5bf18b221c 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusUL18.c
+++ b/lib/asn1c/ngap/NGAP_DRBStatusUL18.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBStatusUL18.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBStatusUL18.h b/lib/asn1c/ngap/NGAP_DRBStatusUL18.h
index f2c9ca25fd..103bdd5f53 100644
--- a/lib/asn1c/ngap/NGAP_DRBStatusUL18.h
+++ b/lib/asn1c/ngap/NGAP_DRBStatusUL18.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBStatusUL18_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c
index e069a17f3d..766c27b997 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h
index f0456efef3..df7e9fc57a 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBsSubjectToEarlyStatusTransfer_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.c b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.c
index 889852099d..38145a027d 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.c
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBsSubjectToEarlyStatusTransfer-List.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.h b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.h
index 9e788a3919..d98f996eb4 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.h
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToEarlyStatusTransfer-List.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBsSubjectToEarlyStatusTransfer_List_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.c b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.c
index 9ab6a385a0..49e1630537 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.c
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBsSubjectToStatusTransferItem.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.h b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.h
index 494debd4ad..5261a49ff0 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.h
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBsSubjectToStatusTransferItem_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.c b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.c
index 1cd8a8bb2c..0ffb69d4c8 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.c
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBsSubjectToStatusTransferList.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.h b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.h
index c9b6316108..f1b9afc169 100644
--- a/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.h
+++ b/lib/asn1c/ngap/NGAP_DRBsSubjectToStatusTransferList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBsSubjectToStatusTransferList_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.c b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.c
index a4a7646c2a..486000ff3f 100644
--- a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.c
+++ b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBsToQosFlowsMappingItem.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.h b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.h
index 79a4f9c3d2..ec87b3a4de 100644
--- a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.h
+++ b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBsToQosFlowsMappingItem_H_
diff --git a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.c b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.c
index f7bcf7b660..db61c285d5 100644
--- a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.c
+++ b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DRBsToQosFlowsMappingList.h"
diff --git a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.h b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.h
index c1632df06b..bd6ceecc15 100644
--- a/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.h
+++ b/lib/asn1c/ngap/NGAP_DRBsToQosFlowsMappingList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DRBsToQosFlowsMappingList_H_
diff --git a/lib/asn1c/ngap/NGAP_DataCodingScheme.c b/lib/asn1c/ngap/NGAP_DataCodingScheme.c
index 503bc8182b..9efe488c07 100644
--- a/lib/asn1c/ngap/NGAP_DataCodingScheme.c
+++ b/lib/asn1c/ngap/NGAP_DataCodingScheme.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DataCodingScheme.h"
diff --git a/lib/asn1c/ngap/NGAP_DataCodingScheme.h b/lib/asn1c/ngap/NGAP_DataCodingScheme.h
index b2e3ad8414..bb1770f64f 100644
--- a/lib/asn1c/ngap/NGAP_DataCodingScheme.h
+++ b/lib/asn1c/ngap/NGAP_DataCodingScheme.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DataCodingScheme_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_DataCodingScheme;
asn_struct_free_f NGAP_DataCodingScheme_free;
asn_struct_print_f NGAP_DataCodingScheme_print;
asn_constr_check_f NGAP_DataCodingScheme_constraint;
-jer_type_encoder_f NGAP_DataCodingScheme_encode_jer;
per_type_decoder_f NGAP_DataCodingScheme_decode_aper;
per_type_encoder_f NGAP_DataCodingScheme_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingAccepted.c b/lib/asn1c/ngap/NGAP_DataForwardingAccepted.c
index f3d6973851..d77d755ecf 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingAccepted.c
+++ b/lib/asn1c/ngap/NGAP_DataForwardingAccepted.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DataForwardingAccepted.h"
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingAccepted.h b/lib/asn1c/ngap/NGAP_DataForwardingAccepted.h
index 5ebe0e39d3..cd730186e0 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingAccepted.h
+++ b/lib/asn1c/ngap/NGAP_DataForwardingAccepted.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DataForwardingAccepted_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_DataForwardingAccepted_specs_1
asn_struct_free_f NGAP_DataForwardingAccepted_free;
asn_struct_print_f NGAP_DataForwardingAccepted_print;
asn_constr_check_f NGAP_DataForwardingAccepted_constraint;
-jer_type_encoder_f NGAP_DataForwardingAccepted_encode_jer;
per_type_decoder_f NGAP_DataForwardingAccepted_decode_aper;
per_type_encoder_f NGAP_DataForwardingAccepted_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.c b/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.c
index ad4ba539c3..43c29395f8 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.c
+++ b/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DataForwardingNotPossible.h"
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.h b/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.h
index 4c82fb9d6f..fb3420b475 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.h
+++ b/lib/asn1c/ngap/NGAP_DataForwardingNotPossible.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DataForwardingNotPossible_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_DataForwardingNotPossible_spec
asn_struct_free_f NGAP_DataForwardingNotPossible_free;
asn_struct_print_f NGAP_DataForwardingNotPossible_print;
asn_constr_check_f NGAP_DataForwardingNotPossible_constraint;
-jer_type_encoder_f NGAP_DataForwardingNotPossible_encode_jer;
per_type_decoder_f NGAP_DataForwardingNotPossible_decode_aper;
per_type_encoder_f NGAP_DataForwardingNotPossible_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.c b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.c
index f4d26e2a4a..cdcf010851 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.c
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DataForwardingResponseDRBItem.h"
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.h b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.h
index 5c40ec156e..ddf620b5e7 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.h
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DataForwardingResponseDRBItem_H_
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.c b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.c
index 103345e410..fa91e9fec6 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.c
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DataForwardingResponseDRBList.h"
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.h b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.h
index bcd531e757..cb60cf21d7 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.h
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseDRBList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DataForwardingResponseDRBList_H_
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.c b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.c
index 12ddc7469e..735a765b6e 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.c
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DataForwardingResponseERABList.h"
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.h b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.h
index 4afacf074b..d67a56c601 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.h
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DataForwardingResponseERABList_H_
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.c b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.c
index efe07bd376..3bbde887a0 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.c
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DataForwardingResponseERABListItem.h"
diff --git a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.h b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.h
index c66d579a7a..68f4fedd1b 100644
--- a/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.h
+++ b/lib/asn1c/ngap/NGAP_DataForwardingResponseERABListItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DataForwardingResponseERABListItem_H_
diff --git a/lib/asn1c/ngap/NGAP_DeactivateTrace.c b/lib/asn1c/ngap/NGAP_DeactivateTrace.c
index 0d41370b0c..f23a9080bb 100644
--- a/lib/asn1c/ngap/NGAP_DeactivateTrace.c
+++ b/lib/asn1c/ngap/NGAP_DeactivateTrace.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DeactivateTrace.h"
diff --git a/lib/asn1c/ngap/NGAP_DeactivateTrace.h b/lib/asn1c/ngap/NGAP_DeactivateTrace.h
index 37ee0c3de4..b9f294cb43 100644
--- a/lib/asn1c/ngap/NGAP_DeactivateTrace.h
+++ b/lib/asn1c/ngap/NGAP_DeactivateTrace.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DeactivateTrace_H_
diff --git a/lib/asn1c/ngap/NGAP_DelayCritical.c b/lib/asn1c/ngap/NGAP_DelayCritical.c
index 8823e7e573..02e826b503 100644
--- a/lib/asn1c/ngap/NGAP_DelayCritical.c
+++ b/lib/asn1c/ngap/NGAP_DelayCritical.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DelayCritical.h"
diff --git a/lib/asn1c/ngap/NGAP_DelayCritical.h b/lib/asn1c/ngap/NGAP_DelayCritical.h
index 5e9ad96728..7d364f9382 100644
--- a/lib/asn1c/ngap/NGAP_DelayCritical.h
+++ b/lib/asn1c/ngap/NGAP_DelayCritical.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DelayCritical_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_DelayCritical_specs_1;
asn_struct_free_f NGAP_DelayCritical_free;
asn_struct_print_f NGAP_DelayCritical_print;
asn_constr_check_f NGAP_DelayCritical_constraint;
-jer_type_encoder_f NGAP_DelayCritical_encode_jer;
per_type_decoder_f NGAP_DelayCritical_decode_aper;
per_type_encoder_f NGAP_DelayCritical_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.c b/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.c
index 261e37da9e..87fac0931f 100644
--- a/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.c
+++ b/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DirectForwardingPathAvailability.h"
diff --git a/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.h b/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.h
index d598f2f9e0..b6b779e240 100644
--- a/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.h
+++ b/lib/asn1c/ngap/NGAP_DirectForwardingPathAvailability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DirectForwardingPathAvailability_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_DirectForwardingPathAvailabili
asn_struct_free_f NGAP_DirectForwardingPathAvailability_free;
asn_struct_print_f NGAP_DirectForwardingPathAvailability_print;
asn_constr_check_f NGAP_DirectForwardingPathAvailability_constraint;
-jer_type_encoder_f NGAP_DirectForwardingPathAvailability_encode_jer;
per_type_decoder_f NGAP_DirectForwardingPathAvailability_decode_aper;
per_type_encoder_f NGAP_DirectForwardingPathAvailability_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.c b/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.c
index 14169922e3..31407cbd42 100644
--- a/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.c
+++ b/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DistributionReleaseRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.h b/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.h
index 0ff79f2932..371ea7d78a 100644
--- a/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.h
+++ b/lib/asn1c/ngap/NGAP_DistributionReleaseRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DistributionReleaseRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.c b/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.c
index df0f3d924a..1061a0758c 100644
--- a/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.c
+++ b/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DistributionReleaseResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.h b/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.h
index d4c7eeccc5..31754c3daf 100644
--- a/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.h
+++ b/lib/asn1c/ngap/NGAP_DistributionReleaseResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DistributionReleaseResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_DistributionSetupFailure.c b/lib/asn1c/ngap/NGAP_DistributionSetupFailure.c
index 08ca76949f..96a39940cc 100644
--- a/lib/asn1c/ngap/NGAP_DistributionSetupFailure.c
+++ b/lib/asn1c/ngap/NGAP_DistributionSetupFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DistributionSetupFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_DistributionSetupFailure.h b/lib/asn1c/ngap/NGAP_DistributionSetupFailure.h
index fb16087588..7533a649ea 100644
--- a/lib/asn1c/ngap/NGAP_DistributionSetupFailure.h
+++ b/lib/asn1c/ngap/NGAP_DistributionSetupFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DistributionSetupFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_DistributionSetupRequest.c b/lib/asn1c/ngap/NGAP_DistributionSetupRequest.c
index a31e9e5850..365d0d9d1a 100644
--- a/lib/asn1c/ngap/NGAP_DistributionSetupRequest.c
+++ b/lib/asn1c/ngap/NGAP_DistributionSetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DistributionSetupRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_DistributionSetupRequest.h b/lib/asn1c/ngap/NGAP_DistributionSetupRequest.h
index e346741018..4438299923 100644
--- a/lib/asn1c/ngap/NGAP_DistributionSetupRequest.h
+++ b/lib/asn1c/ngap/NGAP_DistributionSetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DistributionSetupRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_DistributionSetupResponse.c b/lib/asn1c/ngap/NGAP_DistributionSetupResponse.c
index 1895183230..cabbd4f66d 100644
--- a/lib/asn1c/ngap/NGAP_DistributionSetupResponse.c
+++ b/lib/asn1c/ngap/NGAP_DistributionSetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DistributionSetupResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_DistributionSetupResponse.h b/lib/asn1c/ngap/NGAP_DistributionSetupResponse.h
index bd5316fe2b..835b5b953c 100644
--- a/lib/asn1c/ngap/NGAP_DistributionSetupResponse.h
+++ b/lib/asn1c/ngap/NGAP_DistributionSetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DistributionSetupResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_DownlinkNASTransport.c b/lib/asn1c/ngap/NGAP_DownlinkNASTransport.c
index 0b97962f77..fa3504b45b 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkNASTransport.c
+++ b/lib/asn1c/ngap/NGAP_DownlinkNASTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DownlinkNASTransport.h"
diff --git a/lib/asn1c/ngap/NGAP_DownlinkNASTransport.h b/lib/asn1c/ngap/NGAP_DownlinkNASTransport.h
index b3483397d5..9e9252f97e 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkNASTransport.h
+++ b/lib/asn1c/ngap/NGAP_DownlinkNASTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DownlinkNASTransport_H_
diff --git a/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.c b/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.c
index 4de1ef1d4a..d2d4d0704d 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.c
+++ b/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DownlinkNonUEAssociatedNRPPaTransport.h"
diff --git a/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.h b/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.h
index 5c047ed569..3d628dddaa 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.h
+++ b/lib/asn1c/ngap/NGAP_DownlinkNonUEAssociatedNRPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DownlinkNonUEAssociatedNRPPaTransport_H_
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.c b/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.c
index 48c12945d7..ac149c3cf0 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DownlinkRANConfigurationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.h b/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.h
index 64df7005b8..a756b22e1e 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_DownlinkRANConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DownlinkRANConfigurationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.c b/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.c
index 29ee37f146..20ac061a4b 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.c
+++ b/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DownlinkRANEarlyStatusTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.h b/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.h
index 305112f5ba..3e441f8de2 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.h
+++ b/lib/asn1c/ngap/NGAP_DownlinkRANEarlyStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DownlinkRANEarlyStatusTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.c b/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.c
index 499985ef3e..4d1025ec0a 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.c
+++ b/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DownlinkRANStatusTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.h b/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.h
index a844848de4..df8f9643d6 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.h
+++ b/lib/asn1c/ngap/NGAP_DownlinkRANStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DownlinkRANStatusTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.c b/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.c
index 9219d94a84..0032d5c8e7 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DownlinkRIMInformationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.h b/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.h
index bb93d34759..73ae152286 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_DownlinkRIMInformationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DownlinkRIMInformationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.c b/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.c
index 2816e6f5ca..4dc0553438 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.c
+++ b/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_DownlinkUEAssociatedNRPPaTransport.h"
diff --git a/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.h b/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.h
index ca99b6ca83..293bb1ff8d 100644
--- a/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.h
+++ b/lib/asn1c/ngap/NGAP_DownlinkUEAssociatedNRPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_DownlinkUEAssociatedNRPPaTransport_H_
diff --git a/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.c b/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.c
index 62c8574ee5..75738d0a33 100644
--- a/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.c
+++ b/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Dynamic5QIDescriptor.h"
diff --git a/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.h b/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.h
index 9ffc2a868b..185b0a8783 100644
--- a/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.h
+++ b/lib/asn1c/ngap/NGAP_Dynamic5QIDescriptor.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Dynamic5QIDescriptor_H_
diff --git a/lib/asn1c/ngap/NGAP_E-RAB-ID.c b/lib/asn1c/ngap/NGAP_E-RAB-ID.c
index 2e6e9e6a16..1b5110225e 100644
--- a/lib/asn1c/ngap/NGAP_E-RAB-ID.c
+++ b/lib/asn1c/ngap/NGAP_E-RAB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_E-RAB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_E-RAB-ID.h b/lib/asn1c/ngap/NGAP_E-RAB-ID.h
index bc5a5a1bf7..80b7cba371 100644
--- a/lib/asn1c/ngap/NGAP_E-RAB-ID.h
+++ b/lib/asn1c/ngap/NGAP_E-RAB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_E_RAB_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_E_RAB_ID;
asn_struct_free_f NGAP_E_RAB_ID_free;
asn_struct_print_f NGAP_E_RAB_ID_print;
asn_constr_check_f NGAP_E_RAB_ID_constraint;
-jer_type_encoder_f NGAP_E_RAB_ID_encode_jer;
per_type_decoder_f NGAP_E_RAB_ID_decode_aper;
per_type_encoder_f NGAP_E_RAB_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_E-RABInformationItem.c b/lib/asn1c/ngap/NGAP_E-RABInformationItem.c
index e369a0632b..c9c65c8456 100644
--- a/lib/asn1c/ngap/NGAP_E-RABInformationItem.c
+++ b/lib/asn1c/ngap/NGAP_E-RABInformationItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_E-RABInformationItem.h"
diff --git a/lib/asn1c/ngap/NGAP_E-RABInformationItem.h b/lib/asn1c/ngap/NGAP_E-RABInformationItem.h
index f11b41ddda..c438fc0b70 100644
--- a/lib/asn1c/ngap/NGAP_E-RABInformationItem.h
+++ b/lib/asn1c/ngap/NGAP_E-RABInformationItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_E_RABInformationItem_H_
diff --git a/lib/asn1c/ngap/NGAP_E-RABInformationList.c b/lib/asn1c/ngap/NGAP_E-RABInformationList.c
index 71e7baf69e..681232e4cd 100644
--- a/lib/asn1c/ngap/NGAP_E-RABInformationList.c
+++ b/lib/asn1c/ngap/NGAP_E-RABInformationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_E-RABInformationList.h"
diff --git a/lib/asn1c/ngap/NGAP_E-RABInformationList.h b/lib/asn1c/ngap/NGAP_E-RABInformationList.h
index 8de8449092..0d1e02e9f9 100644
--- a/lib/asn1c/ngap/NGAP_E-RABInformationList.h
+++ b/lib/asn1c/ngap/NGAP_E-RABInformationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_E_RABInformationList_H_
diff --git a/lib/asn1c/ngap/NGAP_EDT-Session.c b/lib/asn1c/ngap/NGAP_EDT-Session.c
index 8b065e74ed..6f8d63cc65 100644
--- a/lib/asn1c/ngap/NGAP_EDT-Session.c
+++ b/lib/asn1c/ngap/NGAP_EDT-Session.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EDT-Session.h"
diff --git a/lib/asn1c/ngap/NGAP_EDT-Session.h b/lib/asn1c/ngap/NGAP_EDT-Session.h
index 79577af16a..9a161f75bb 100644
--- a/lib/asn1c/ngap/NGAP_EDT-Session.h
+++ b/lib/asn1c/ngap/NGAP_EDT-Session.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EDT_Session_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EDT_Session_specs_1;
asn_struct_free_f NGAP_EDT_Session_free;
asn_struct_print_f NGAP_EDT_Session_print;
asn_constr_check_f NGAP_EDT_Session_constraint;
-jer_type_encoder_f NGAP_EDT_Session_encode_jer;
per_type_decoder_f NGAP_EDT_Session_decode_aper;
per_type_encoder_f NGAP_EDT_Session_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.c b/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.c
index 09396f4bcf..90db9b5032 100644
--- a/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EN-DCSONConfigurationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.h b/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.h
index cecbbde9d1..8b2fff8674 100644
--- a/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_EN-DCSONConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EN_DCSONConfigurationTransfer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_EN_DCSONConfigurationTransfer;
asn_struct_free_f NGAP_EN_DCSONConfigurationTransfer_free;
asn_struct_print_f NGAP_EN_DCSONConfigurationTransfer_print;
asn_constr_check_f NGAP_EN_DCSONConfigurationTransfer_constraint;
-jer_type_encoder_f NGAP_EN_DCSONConfigurationTransfer_encode_jer;
per_type_decoder_f NGAP_EN_DCSONConfigurationTransfer_decode_aper;
per_type_encoder_f NGAP_EN_DCSONConfigurationTransfer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ENB-ID.c b/lib/asn1c/ngap/NGAP_ENB-ID.c
index 019cbc6801..80f2e33e48 100644
--- a/lib/asn1c/ngap/NGAP_ENB-ID.c
+++ b/lib/asn1c/ngap/NGAP_ENB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ENB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_ENB-ID.h b/lib/asn1c/ngap/NGAP_ENB-ID.h
index 9173bcce51..074860e3ac 100644
--- a/lib/asn1c/ngap/NGAP_ENB-ID.h
+++ b/lib/asn1c/ngap/NGAP_ENB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ENB_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_EPS-TAC.c b/lib/asn1c/ngap/NGAP_EPS-TAC.c
index 69b521e8a0..b360a3e8be 100644
--- a/lib/asn1c/ngap/NGAP_EPS-TAC.c
+++ b/lib/asn1c/ngap/NGAP_EPS-TAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EPS-TAC.h"
diff --git a/lib/asn1c/ngap/NGAP_EPS-TAC.h b/lib/asn1c/ngap/NGAP_EPS-TAC.h
index 10074fd87e..1a08634336 100644
--- a/lib/asn1c/ngap/NGAP_EPS-TAC.h
+++ b/lib/asn1c/ngap/NGAP_EPS-TAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EPS_TAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_EPS_TAC;
asn_struct_free_f NGAP_EPS_TAC_free;
asn_struct_print_f NGAP_EPS_TAC_print;
asn_constr_check_f NGAP_EPS_TAC_constraint;
-jer_type_encoder_f NGAP_EPS_TAC_encode_jer;
per_type_decoder_f NGAP_EPS_TAC_decode_aper;
per_type_encoder_f NGAP_EPS_TAC_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EPS-TAI.c b/lib/asn1c/ngap/NGAP_EPS-TAI.c
index 4f8f9cd05c..b732b724f1 100644
--- a/lib/asn1c/ngap/NGAP_EPS-TAI.c
+++ b/lib/asn1c/ngap/NGAP_EPS-TAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EPS-TAI.h"
diff --git a/lib/asn1c/ngap/NGAP_EPS-TAI.h b/lib/asn1c/ngap/NGAP_EPS-TAI.h
index 6daa5ea8e5..c6b1719097 100644
--- a/lib/asn1c/ngap/NGAP_EPS-TAI.h
+++ b/lib/asn1c/ngap/NGAP_EPS-TAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EPS_TAI_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-CGI.c b/lib/asn1c/ngap/NGAP_EUTRA-CGI.c
index 03b8b5c189..b762219d9e 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-CGI.c
+++ b/lib/asn1c/ngap/NGAP_EUTRA-CGI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRA-CGI.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-CGI.h b/lib/asn1c/ngap/NGAP_EUTRA-CGI.h
index bd0835a337..2d6e17eb52 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-CGI.h
+++ b/lib/asn1c/ngap/NGAP_EUTRA-CGI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRA_CGI_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-CGIList.c b/lib/asn1c/ngap/NGAP_EUTRA-CGIList.c
index 8bfe3e9511..9156f25383 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-CGIList.c
+++ b/lib/asn1c/ngap/NGAP_EUTRA-CGIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRA-CGIList.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-CGIList.h b/lib/asn1c/ngap/NGAP_EUTRA-CGIList.h
index 12be907dd9..d6d3cdbbeb 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-CGIList.h
+++ b/lib/asn1c/ngap/NGAP_EUTRA-CGIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRA_CGIList_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.c b/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.c
index 26ae59b86c..e52e5f9d16 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.c
+++ b/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRA-CGIListForWarning.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.h b/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.h
index d1f8a61343..6a1daa3b0c 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.h
+++ b/lib/asn1c/ngap/NGAP_EUTRA-CGIListForWarning.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRA_CGIListForWarning_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.c b/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.c
index dba2ac12ae..d7e0547797 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.c
+++ b/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRA-Paging-Time-Window.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.h b/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.h
index ace82b84ce..4430d4762b 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.h
+++ b/lib/asn1c/ngap/NGAP_EUTRA-Paging-Time-Window.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRA_Paging_Time_Window_H_
@@ -51,7 +51,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EUTRA_Paging_Time_Window_specs
asn_struct_free_f NGAP_EUTRA_Paging_Time_Window_free;
asn_struct_print_f NGAP_EUTRA_Paging_Time_Window_print;
asn_constr_check_f NGAP_EUTRA_Paging_Time_Window_constraint;
-jer_type_encoder_f NGAP_EUTRA_Paging_Time_Window_encode_jer;
per_type_decoder_f NGAP_EUTRA_Paging_Time_Window_decode_aper;
per_type_encoder_f NGAP_EUTRA_Paging_Time_Window_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.c b/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.c
index 8ca5626dfb..32ea6f33a5 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.c
+++ b/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRA-Paging-eDRX-Cycle.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.h b/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.h
index 2d9c246a9c..2682398bbe 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.h
+++ b/lib/asn1c/ngap/NGAP_EUTRA-Paging-eDRX-Cycle.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRA_Paging_eDRX_Cycle_H_
@@ -49,7 +49,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EUTRA_Paging_eDRX_Cycle_specs_
asn_struct_free_f NGAP_EUTRA_Paging_eDRX_Cycle_free;
asn_struct_print_f NGAP_EUTRA_Paging_eDRX_Cycle_print;
asn_constr_check_f NGAP_EUTRA_Paging_eDRX_Cycle_constraint;
-jer_type_encoder_f NGAP_EUTRA_Paging_eDRX_Cycle_encode_jer;
per_type_decoder_f NGAP_EUTRA_Paging_eDRX_Cycle_decode_aper;
per_type_encoder_f NGAP_EUTRA_Paging_eDRX_Cycle_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.c b/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.c
index df859f30c4..46e75f8a39 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.c
+++ b/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRA-PagingeDRXInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.h b/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.h
index b323b6f9ac..1e8855b39a 100644
--- a/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.h
+++ b/lib/asn1c/ngap/NGAP_EUTRA-PagingeDRXInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRA_PagingeDRXInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRACellIdentity.c b/lib/asn1c/ngap/NGAP_EUTRACellIdentity.c
index a4d817737e..d634fb5fce 100644
--- a/lib/asn1c/ngap/NGAP_EUTRACellIdentity.c
+++ b/lib/asn1c/ngap/NGAP_EUTRACellIdentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRACellIdentity.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRACellIdentity.h b/lib/asn1c/ngap/NGAP_EUTRACellIdentity.h
index bb4b948db0..969a0278c5 100644
--- a/lib/asn1c/ngap/NGAP_EUTRACellIdentity.h
+++ b/lib/asn1c/ngap/NGAP_EUTRACellIdentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRACellIdentity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_EUTRACellIdentity;
asn_struct_free_f NGAP_EUTRACellIdentity_free;
asn_struct_print_f NGAP_EUTRACellIdentity_print;
asn_constr_check_f NGAP_EUTRACellIdentity_constraint;
-jer_type_encoder_f NGAP_EUTRACellIdentity_encode_jer;
per_type_decoder_f NGAP_EUTRACellIdentity_decode_aper;
per_type_encoder_f NGAP_EUTRACellIdentity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.c b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.c
index a997b39617..8b9e7f0485 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-CellReportItem.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.h b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.h
index cde4168ad8..2385bb5121 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_CellReportItem_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.c b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.c
index 4ed415f302..4076e963cb 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-CellReportList.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.h b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.h
index 57e37a5506..fe4ca19ff7 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_CellReportList_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.c b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.c
index 94c3d2415a..c1ad18fa86 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-CellToReportItem.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.h b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.h
index 0f78ded8f8..69f1adc830 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_CellToReportItem_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.c b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.c
index e637572271..6d6d2b50e6 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-CellToReportList.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.h b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.h
index 0d93e579c0..7fc1fca440 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CellToReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_CellToReportList_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.c b/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.c
index d75c820d09..a36d442fdc 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-CompositeAvailableCapacityGroup.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.h b/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.h
index 05289100b1..c8d9cd58c1 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-CompositeAvailableCapacityGroup.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_CompositeAvailableCapacityGroup_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.c b/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.c
index 34488173df..e0d584faba 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-NumberOfActiveUEs.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.h b/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.h
index b0425e60d2..bdefea7299 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-NumberOfActiveUEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_NumberOfActiveUEs_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_EUTRAN_NumberOfActiveUEs;
asn_struct_free_f NGAP_EUTRAN_NumberOfActiveUEs_free;
asn_struct_print_f NGAP_EUTRAN_NumberOfActiveUEs_print;
asn_constr_check_f NGAP_EUTRAN_NumberOfActiveUEs_constraint;
-jer_type_encoder_f NGAP_EUTRAN_NumberOfActiveUEs_encode_jer;
per_type_decoder_f NGAP_EUTRAN_NumberOfActiveUEs_decode_aper;
per_type_encoder_f NGAP_EUTRAN_NumberOfActiveUEs_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.c b/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.c
index d3a43643e2..718d582274 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-RadioResourceStatus.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.h b/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.h
index af5907eb1c..a52d8c7adc 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-RadioResourceStatus.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_RadioResourceStatus_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.c b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.c
index 33e899bf28..8214ce56e2 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-ReportingStatusIEs.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.h b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.h
index 04c2cca3cc..8a07389f14 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingStatusIEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_ReportingStatusIEs_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.c b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.c
index dff211c4bf..d10252c271 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAN-ReportingSystemIEs.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.h b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.h
index 4105b1afd4..7d6bbd153d 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAN-ReportingSystemIEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAN_ReportingSystemIEs_H_
diff --git a/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.c b/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.c
index 502e8081d5..c557444080 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAencryptionAlgorithms.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.h b/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.h
index 19eddde0cc..e80377ab4d 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAencryptionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAencryptionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_EUTRAencryptionAlgorithms;
asn_struct_free_f NGAP_EUTRAencryptionAlgorithms_free;
asn_struct_print_f NGAP_EUTRAencryptionAlgorithms_print;
asn_constr_check_f NGAP_EUTRAencryptionAlgorithms_constraint;
-jer_type_encoder_f NGAP_EUTRAencryptionAlgorithms_encode_jer;
per_type_decoder_f NGAP_EUTRAencryptionAlgorithms_decode_aper;
per_type_encoder_f NGAP_EUTRAencryptionAlgorithms_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.c b/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.c
index f5b88a7fa5..1be869ef75 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.c
+++ b/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EUTRAintegrityProtectionAlgorithms.h"
diff --git a/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.h b/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.h
index aa497e1b8a..30fe39c501 100644
--- a/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.h
+++ b/lib/asn1c/ngap/NGAP_EUTRAintegrityProtectionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EUTRAintegrityProtectionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_EUTRAintegrityProtectionAlgorithms;
asn_struct_free_f NGAP_EUTRAintegrityProtectionAlgorithms_free;
asn_struct_print_f NGAP_EUTRAintegrityProtectionAlgorithms_print;
asn_constr_check_f NGAP_EUTRAintegrityProtectionAlgorithms_constraint;
-jer_type_encoder_f NGAP_EUTRAintegrityProtectionAlgorithms_encode_jer;
per_type_decoder_f NGAP_EUTRAintegrityProtectionAlgorithms_decode_aper;
per_type_encoder_f NGAP_EUTRAintegrityProtectionAlgorithms_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EXTERNAL.c b/lib/asn1c/ngap/NGAP_EXTERNAL.c
index 43143af99f..5844eea5bc 100644
--- a/lib/asn1c/ngap/NGAP_EXTERNAL.c
+++ b/lib/asn1c/ngap/NGAP_EXTERNAL.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "ASN1C-UsefulInformationObjectClasses"
* found in "../../../../my/asn1c/asn1c/../skeletons/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EXTERNAL.h"
diff --git a/lib/asn1c/ngap/NGAP_EXTERNAL.h b/lib/asn1c/ngap/NGAP_EXTERNAL.h
index cb3063c288..dad8d0acd1 100644
--- a/lib/asn1c/ngap/NGAP_EXTERNAL.h
+++ b/lib/asn1c/ngap/NGAP_EXTERNAL.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "ASN1C-UsefulInformationObjectClasses"
* found in "../../../../my/asn1c/asn1c/../skeletons/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EXTERNAL_H_
diff --git a/lib/asn1c/ngap/NGAP_EarlyMeasurement.c b/lib/asn1c/ngap/NGAP_EarlyMeasurement.c
index 2678d0a606..22c9df19ca 100644
--- a/lib/asn1c/ngap/NGAP_EarlyMeasurement.c
+++ b/lib/asn1c/ngap/NGAP_EarlyMeasurement.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EarlyMeasurement.h"
diff --git a/lib/asn1c/ngap/NGAP_EarlyMeasurement.h b/lib/asn1c/ngap/NGAP_EarlyMeasurement.h
index fa06338751..55f30361e1 100644
--- a/lib/asn1c/ngap/NGAP_EarlyMeasurement.h
+++ b/lib/asn1c/ngap/NGAP_EarlyMeasurement.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EarlyMeasurement_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EarlyMeasurement_specs_1;
asn_struct_free_f NGAP_EarlyMeasurement_free;
asn_struct_print_f NGAP_EarlyMeasurement_print;
asn_constr_check_f NGAP_EarlyMeasurement_constraint;
-jer_type_encoder_f NGAP_EarlyMeasurement_encode_jer;
per_type_decoder_f NGAP_EarlyMeasurement_decode_aper;
per_type_encoder_f NGAP_EarlyMeasurement_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.c b/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.c
index 592eb29d88..a86e0ef4a1 100644
--- a/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EarlyStatusTransfer-TransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.h b/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.h
index a8e3e740ab..51fe4dbb4d 100644
--- a/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_EarlyStatusTransfer-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EarlyStatusTransfer_TransparentContainer_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaID.c b/lib/asn1c/ngap/NGAP_EmergencyAreaID.c
index 2e872c48eb..a80869061a 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaID.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaID.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaID.h b/lib/asn1c/ngap/NGAP_EmergencyAreaID.h
index 6c341bb09f..4f68b14a37 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaID.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_EmergencyAreaID;
asn_struct_free_f NGAP_EmergencyAreaID_free;
asn_struct_print_f NGAP_EmergencyAreaID_print;
asn_constr_check_f NGAP_EmergencyAreaID_constraint;
-jer_type_encoder_f NGAP_EmergencyAreaID_encode_jer;
per_type_decoder_f NGAP_EmergencyAreaID_decode_aper;
per_type_encoder_f NGAP_EmergencyAreaID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c
index c77a83bf44..5a777724c4 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h
index 480ffefc41..36982b1052 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDBroadcastEUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.c
index fd6d8b5b74..597acd5851 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDBroadcastEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.h
index d5eaa32ea8..ccdd91a791 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDBroadcastEUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.c
index c410a7f508..cc761064b6 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDBroadcastNR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.h
index 65dfb1453e..d0fe4ecf51 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDBroadcastNR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.c
index fae3cf61e4..10532ccb5a 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDBroadcastNR.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.h
index 294d0d28c0..0f4e1904ff 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDBroadcastNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDBroadcastNR_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.c
index c229a03185..b340c7ecc9 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDCancelledEUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.h
index a479ddb403..f35005345a 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDCancelledEUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.c
index f3e1eeafa5..684d0bc879 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDCancelledEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.h
index 26f3475602..83990213da 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDCancelledEUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.c
index d8f8d94dec..21a20921bc 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDCancelledNR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.h
index b2b8a5bdc6..3b43570171 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDCancelledNR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.c
index 3aa9a26e5c..a934dea95e 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDCancelledNR.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.h
index c3e2740a4b..f03450100a 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDCancelledNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDCancelledNR_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.c
index 818037a42c..8e75fa2c63 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDList.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.h
index f32f93e609..8fceb2f057 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDList_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.c b/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.c
index 5b1c036b6c..eb121d3753 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyAreaIDListForRestart.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.h b/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.h
index 54c0d37c29..1bd4d56885 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyAreaIDListForRestart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyAreaIDListForRestart_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.c b/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.c
index cd7115e180..30dce0f086 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyFallbackIndicator.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.h b/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.h
index 235bf594fc..c62837a33e 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyFallbackIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyFallbackIndicator_H_
diff --git a/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.c b/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.c
index 0c70e1b2f8..5f58608367 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyFallbackRequestIndicator.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.h b/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.h
index 2a16a747b1..8473c8b8aa 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyFallbackRequestIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyFallbackRequestIndicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EmergencyFallbackRequestIndica
asn_struct_free_f NGAP_EmergencyFallbackRequestIndicator_free;
asn_struct_print_f NGAP_EmergencyFallbackRequestIndicator_print;
asn_constr_check_f NGAP_EmergencyFallbackRequestIndicator_constraint;
-jer_type_encoder_f NGAP_EmergencyFallbackRequestIndicator_encode_jer;
per_type_decoder_f NGAP_EmergencyFallbackRequestIndicator_decode_aper;
per_type_encoder_f NGAP_EmergencyFallbackRequestIndicator_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.c b/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.c
index fdf1516eba..3272edc6ea 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.c
+++ b/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EmergencyServiceTargetCN.h"
diff --git a/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.h b/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.h
index 5b58f64b3b..9cb22e5fa9 100644
--- a/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.h
+++ b/lib/asn1c/ngap/NGAP_EmergencyServiceTargetCN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EmergencyServiceTargetCN_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EmergencyServiceTargetCN_specs
asn_struct_free_f NGAP_EmergencyServiceTargetCN_free;
asn_struct_print_f NGAP_EmergencyServiceTargetCN_print;
asn_constr_check_f NGAP_EmergencyServiceTargetCN_constraint;
-jer_type_encoder_f NGAP_EmergencyServiceTargetCN_encode_jer;
per_type_decoder_f NGAP_EmergencyServiceTargetCN_decode_aper;
per_type_encoder_f NGAP_EmergencyServiceTargetCN_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EndIndication.c b/lib/asn1c/ngap/NGAP_EndIndication.c
index 50fffeecdd..7d9b8ffc2a 100644
--- a/lib/asn1c/ngap/NGAP_EndIndication.c
+++ b/lib/asn1c/ngap/NGAP_EndIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EndIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_EndIndication.h b/lib/asn1c/ngap/NGAP_EndIndication.h
index 30cfc35aa3..be4ca8fc57 100644
--- a/lib/asn1c/ngap/NGAP_EndIndication.h
+++ b/lib/asn1c/ngap/NGAP_EndIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EndIndication_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EndIndication_specs_1;
asn_struct_free_f NGAP_EndIndication_free;
asn_struct_print_f NGAP_EndIndication_print;
asn_constr_check_f NGAP_EndIndication_constraint;
-jer_type_encoder_f NGAP_EndIndication_encode_jer;
per_type_decoder_f NGAP_EndIndication_decode_aper;
per_type_encoder_f NGAP_EndIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.c b/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.c
index 7d7cbfd6aa..4cc3e7ee7c 100644
--- a/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.c
+++ b/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EndpointIPAddressAndPort.h"
diff --git a/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.h b/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.h
index 36fe18b6b5..db0be0e180 100644
--- a/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.h
+++ b/lib/asn1c/ngap/NGAP_EndpointIPAddressAndPort.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EndpointIPAddressAndPort_H_
diff --git a/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.c b/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.c
index cadf6e77e6..7ecd2ecd34 100644
--- a/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.c
+++ b/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Enhanced-CoverageRestriction.h"
diff --git a/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.h b/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.h
index 0f16258501..80727d8913 100644
--- a/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.h
+++ b/lib/asn1c/ngap/NGAP_Enhanced-CoverageRestriction.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Enhanced_CoverageRestriction_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Enhanced_CoverageRestriction_s
asn_struct_free_f NGAP_Enhanced_CoverageRestriction_free;
asn_struct_print_f NGAP_Enhanced_CoverageRestriction_print;
asn_constr_check_f NGAP_Enhanced_CoverageRestriction_constraint;
-jer_type_encoder_f NGAP_Enhanced_CoverageRestriction_encode_jer;
per_type_decoder_f NGAP_Enhanced_CoverageRestriction_decode_aper;
per_type_encoder_f NGAP_Enhanced_CoverageRestriction_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_EquivalentPLMNs.c b/lib/asn1c/ngap/NGAP_EquivalentPLMNs.c
index 367d6da3a0..a24124231c 100644
--- a/lib/asn1c/ngap/NGAP_EquivalentPLMNs.c
+++ b/lib/asn1c/ngap/NGAP_EquivalentPLMNs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EquivalentPLMNs.h"
diff --git a/lib/asn1c/ngap/NGAP_EquivalentPLMNs.h b/lib/asn1c/ngap/NGAP_EquivalentPLMNs.h
index 0336693018..1588aa5660 100644
--- a/lib/asn1c/ngap/NGAP_EquivalentPLMNs.h
+++ b/lib/asn1c/ngap/NGAP_EquivalentPLMNs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EquivalentPLMNs_H_
diff --git a/lib/asn1c/ngap/NGAP_ErrorIndication.c b/lib/asn1c/ngap/NGAP_ErrorIndication.c
index 4947bbe1f3..1b5eb4f566 100644
--- a/lib/asn1c/ngap/NGAP_ErrorIndication.c
+++ b/lib/asn1c/ngap/NGAP_ErrorIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ErrorIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_ErrorIndication.h b/lib/asn1c/ngap/NGAP_ErrorIndication.h
index 9fc5431acb..34c9663358 100644
--- a/lib/asn1c/ngap/NGAP_ErrorIndication.h
+++ b/lib/asn1c/ngap/NGAP_ErrorIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ErrorIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.c b/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.c
index f1fa02be71..a17fc15991 100644
--- a/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.c
+++ b/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EventBasedReportingIEs.h"
diff --git a/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.h b/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.h
index 49b73dbaf1..2561081191 100644
--- a/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.h
+++ b/lib/asn1c/ngap/NGAP_EventBasedReportingIEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EventBasedReportingIEs_H_
diff --git a/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.c b/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.c
index c7cda2b883..a26ffa9114 100644
--- a/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.c
+++ b/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EventL1LoggedMDTConfig.h"
diff --git a/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.h b/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.h
index 72bbeaa41e..1d1461b9f4 100644
--- a/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.h
+++ b/lib/asn1c/ngap/NGAP_EventL1LoggedMDTConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EventL1LoggedMDTConfig_H_
diff --git a/lib/asn1c/ngap/NGAP_EventTrigger.c b/lib/asn1c/ngap/NGAP_EventTrigger.c
index e4a1473965..57c664ce52 100644
--- a/lib/asn1c/ngap/NGAP_EventTrigger.c
+++ b/lib/asn1c/ngap/NGAP_EventTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EventTrigger.h"
diff --git a/lib/asn1c/ngap/NGAP_EventTrigger.h b/lib/asn1c/ngap/NGAP_EventTrigger.h
index 993245de82..eb3401df9c 100644
--- a/lib/asn1c/ngap/NGAP_EventTrigger.h
+++ b/lib/asn1c/ngap/NGAP_EventTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EventTrigger_H_
diff --git a/lib/asn1c/ngap/NGAP_EventType.c b/lib/asn1c/ngap/NGAP_EventType.c
index a70bbd5680..6dbaea2fad 100644
--- a/lib/asn1c/ngap/NGAP_EventType.c
+++ b/lib/asn1c/ngap/NGAP_EventType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_EventType.h"
diff --git a/lib/asn1c/ngap/NGAP_EventType.h b/lib/asn1c/ngap/NGAP_EventType.h
index ad87fda67b..8fc760ddc5 100644
--- a/lib/asn1c/ngap/NGAP_EventType.h
+++ b/lib/asn1c/ngap/NGAP_EventType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_EventType_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_EventType_specs_1;
asn_struct_free_f NGAP_EventType_free;
asn_struct_print_f NGAP_EventType_print;
asn_constr_check_f NGAP_EventType_constraint;
-jer_type_encoder_f NGAP_EventType_encode_jer;
per_type_decoder_f NGAP_EventType_decode_aper;
per_type_encoder_f NGAP_EventType_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.c b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.c
index 6ad4a6d093..ff0b45c2d6 100644
--- a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.c
+++ b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExcessPacketDelayThresholdConfiguration.h"
diff --git a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.h b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.h
index 35a825caf6..7e2cc0e4dd 100644
--- a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.h
+++ b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExcessPacketDelayThresholdConfiguration_H_
diff --git a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.c b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.c
index 7df64bb624..7a05971b9b 100644
--- a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.c
+++ b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExcessPacketDelayThresholdItem.h"
diff --git a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.h b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.h
index dcb6d4aa69..174601cfdc 100644
--- a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.h
+++ b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExcessPacketDelayThresholdItem_H_
diff --git a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.c b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.c
index 8944236e1d..3583c10e45 100644
--- a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.c
+++ b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExcessPacketDelayThresholdValue.h"
diff --git a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.h b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.h
index 67cc123883..7d958b1833 100644
--- a/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.h
+++ b/lib/asn1c/ngap/NGAP_ExcessPacketDelayThresholdValue.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExcessPacketDelayThresholdValue_H_
@@ -54,7 +54,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ExcessPacketDelayThresholdValu
asn_struct_free_f NGAP_ExcessPacketDelayThresholdValue_free;
asn_struct_print_f NGAP_ExcessPacketDelayThresholdValue_print;
asn_constr_check_f NGAP_ExcessPacketDelayThresholdValue_constraint;
-jer_type_encoder_f NGAP_ExcessPacketDelayThresholdValue_encode_jer;
per_type_decoder_f NGAP_ExcessPacketDelayThresholdValue_decode_aper;
per_type_encoder_f NGAP_ExcessPacketDelayThresholdValue_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.c b/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.c
index ad7fc98ab1..bd69913512 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedActivityPeriod.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.h b/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.h
index 6e1dc94927..4f05227f70 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedActivityPeriod.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedActivityPeriod_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ExpectedActivityPeriod;
asn_struct_free_f NGAP_ExpectedActivityPeriod_free;
asn_struct_print_f NGAP_ExpectedActivityPeriod_print;
asn_constr_check_f NGAP_ExpectedActivityPeriod_constraint;
-jer_type_encoder_f NGAP_ExpectedActivityPeriod_encode_jer;
per_type_decoder_f NGAP_ExpectedActivityPeriod_decode_aper;
per_type_encoder_f NGAP_ExpectedActivityPeriod_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExpectedHOInterval.c b/lib/asn1c/ngap/NGAP_ExpectedHOInterval.c
index 9cf2ca724c..cd6587f761 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedHOInterval.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedHOInterval.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedHOInterval.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedHOInterval.h b/lib/asn1c/ngap/NGAP_ExpectedHOInterval.h
index f331c45d7a..ea03f5cbaa 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedHOInterval.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedHOInterval.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedHOInterval_H_
@@ -42,7 +42,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ExpectedHOInterval_specs_1;
asn_struct_free_f NGAP_ExpectedHOInterval_free;
asn_struct_print_f NGAP_ExpectedHOInterval_print;
asn_constr_check_f NGAP_ExpectedHOInterval_constraint;
-jer_type_encoder_f NGAP_ExpectedHOInterval_encode_jer;
per_type_decoder_f NGAP_ExpectedHOInterval_decode_aper;
per_type_encoder_f NGAP_ExpectedHOInterval_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.c b/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.c
index fbda5afcf6..3113fe21d1 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedIdlePeriod.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.h b/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.h
index 0b4f116107..0ab4c0ed85 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedIdlePeriod.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedIdlePeriod_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ExpectedIdlePeriod;
asn_struct_free_f NGAP_ExpectedIdlePeriod_free;
asn_struct_print_f NGAP_ExpectedIdlePeriod_print;
asn_constr_check_f NGAP_ExpectedIdlePeriod_constraint;
-jer_type_encoder_f NGAP_ExpectedIdlePeriod_encode_jer;
per_type_decoder_f NGAP_ExpectedIdlePeriod_decode_aper;
per_type_encoder_f NGAP_ExpectedIdlePeriod_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.c b/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.c
index 9654d17565..d2c39b022d 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedUEActivityBehaviour.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.h b/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.h
index dc7f4d1610..33f05f35e8 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEActivityBehaviour.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedUEActivityBehaviour_H_
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.c b/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.c
index 6bf7f23e82..a5ee288f90 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedUEBehaviour.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.h b/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.h
index 91246d19a7..4c82582cd7 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEBehaviour.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedUEBehaviour_H_
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEMobility.c b/lib/asn1c/ngap/NGAP_ExpectedUEMobility.c
index 32166a764c..d5776393d7 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEMobility.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEMobility.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedUEMobility.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEMobility.h b/lib/asn1c/ngap/NGAP_ExpectedUEMobility.h
index 42bdda5012..dafd994106 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEMobility.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEMobility.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedUEMobility_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ExpectedUEMobility_specs_1;
asn_struct_free_f NGAP_ExpectedUEMobility_free;
asn_struct_print_f NGAP_ExpectedUEMobility_print;
asn_constr_check_f NGAP_ExpectedUEMobility_constraint;
-jer_type_encoder_f NGAP_ExpectedUEMobility_encode_jer;
per_type_decoder_f NGAP_ExpectedUEMobility_decode_aper;
per_type_encoder_f NGAP_ExpectedUEMobility_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.c b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.c
index f4eefa230b..89d8b248d5 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedUEMovingTrajectory.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.h b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.h
index b8704f5b1b..0ff2ad7cb6 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectory.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedUEMovingTrajectory_H_
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.c b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.c
index 78460c16ef..8b722cca35 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.c
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExpectedUEMovingTrajectoryItem.h"
diff --git a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.h b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.h
index a5d2c9d3a3..ab837c9b43 100644
--- a/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.h
+++ b/lib/asn1c/ngap/NGAP_ExpectedUEMovingTrajectoryItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExpectedUEMovingTrajectoryItem_H_
diff --git a/lib/asn1c/ngap/NGAP_Extended-AMFName.c b/lib/asn1c/ngap/NGAP_Extended-AMFName.c
index e1792e4670..c215b8fb42 100644
--- a/lib/asn1c/ngap/NGAP_Extended-AMFName.c
+++ b/lib/asn1c/ngap/NGAP_Extended-AMFName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Extended-AMFName.h"
diff --git a/lib/asn1c/ngap/NGAP_Extended-AMFName.h b/lib/asn1c/ngap/NGAP_Extended-AMFName.h
index e6a12fe810..6b4c510618 100644
--- a/lib/asn1c/ngap/NGAP_Extended-AMFName.h
+++ b/lib/asn1c/ngap/NGAP_Extended-AMFName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Extended_AMFName_H_
diff --git a/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.c b/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.c
index d0aba8d0e8..5c1b3a8e46 100644
--- a/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.c
+++ b/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Extended-ConnectedTime.h"
diff --git a/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.h b/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.h
index d1b45462e9..3c7d1a18a3 100644
--- a/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.h
+++ b/lib/asn1c/ngap/NGAP_Extended-ConnectedTime.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Extended_ConnectedTime_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_Extended_ConnectedTime;
asn_struct_free_f NGAP_Extended_ConnectedTime_free;
asn_struct_print_f NGAP_Extended_ConnectedTime_print;
asn_constr_check_f NGAP_Extended_ConnectedTime_constraint;
-jer_type_encoder_f NGAP_Extended_ConnectedTime_encode_jer;
per_type_decoder_f NGAP_Extended_ConnectedTime_decode_aper;
per_type_encoder_f NGAP_Extended_ConnectedTime_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Extended-RANNodeName.c b/lib/asn1c/ngap/NGAP_Extended-RANNodeName.c
index 04ec013518..caf75dc26e 100644
--- a/lib/asn1c/ngap/NGAP_Extended-RANNodeName.c
+++ b/lib/asn1c/ngap/NGAP_Extended-RANNodeName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Extended-RANNodeName.h"
diff --git a/lib/asn1c/ngap/NGAP_Extended-RANNodeName.h b/lib/asn1c/ngap/NGAP_Extended-RANNodeName.h
index 1e6a390cf0..9b8a3dc0db 100644
--- a/lib/asn1c/ngap/NGAP_Extended-RANNodeName.h
+++ b/lib/asn1c/ngap/NGAP_Extended-RANNodeName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Extended_RANNodeName_H_
diff --git a/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.c b/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.c
index c13049bbe8..9d8b8d9323 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.c
+++ b/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExtendedPacketDelayBudget.h"
diff --git a/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.h b/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.h
index 81b98eb6b0..5432fc7b2a 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.h
+++ b/lib/asn1c/ngap/NGAP_ExtendedPacketDelayBudget.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExtendedPacketDelayBudget_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ExtendedPacketDelayBudget;
asn_struct_free_f NGAP_ExtendedPacketDelayBudget_free;
asn_struct_print_f NGAP_ExtendedPacketDelayBudget_print;
asn_constr_check_f NGAP_ExtendedPacketDelayBudget_constraint;
-jer_type_encoder_f NGAP_ExtendedPacketDelayBudget_encode_jer;
per_type_decoder_f NGAP_ExtendedPacketDelayBudget_decode_aper;
per_type_encoder_f NGAP_ExtendedPacketDelayBudget_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.c b/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.c
index 509f50ac21..76b9d88314 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.c
+++ b/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExtendedRATRestrictionInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.h b/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.h
index 430060b8ae..1e3e039866 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.h
+++ b/lib/asn1c/ngap/NGAP_ExtendedRATRestrictionInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExtendedRATRestrictionInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.c b/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.c
index c9e3c8bf6a..34ab8d49d8 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.c
+++ b/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExtendedRNC-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.h b/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.h
index 3e2046cbc4..c9bd8b5308 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.h
+++ b/lib/asn1c/ngap/NGAP_ExtendedRNC-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExtendedRNC_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ExtendedRNC_ID;
asn_struct_free_f NGAP_ExtendedRNC_ID_free;
asn_struct_print_f NGAP_ExtendedRNC_ID_print;
asn_constr_check_f NGAP_ExtendedRNC_ID_constraint;
-jer_type_encoder_f NGAP_ExtendedRNC_ID_encode_jer;
per_type_decoder_f NGAP_ExtendedRNC_ID_decode_aper;
per_type_encoder_f NGAP_ExtendedRNC_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.c b/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.c
index 272b0cf123..d9afc73db9 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.c
+++ b/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExtendedReportIntervalMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.h b/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.h
index 44f9011691..26f36d2f67 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.h
+++ b/lib/asn1c/ngap/NGAP_ExtendedReportIntervalMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExtendedReportIntervalMDT_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ExtendedReportIntervalMDT_spec
asn_struct_free_f NGAP_ExtendedReportIntervalMDT_free;
asn_struct_print_f NGAP_ExtendedReportIntervalMDT_print;
asn_constr_check_f NGAP_ExtendedReportIntervalMDT_constraint;
-jer_type_encoder_f NGAP_ExtendedReportIntervalMDT_encode_jer;
per_type_decoder_f NGAP_ExtendedReportIntervalMDT_decode_aper;
per_type_encoder_f NGAP_ExtendedReportIntervalMDT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.c b/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.c
index d56547c2fa..1bad66ada2 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.c
+++ b/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExtendedSliceSupportList.h"
diff --git a/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.h b/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.h
index ba03af1ff4..eb28ae9ce1 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.h
+++ b/lib/asn1c/ngap/NGAP_ExtendedSliceSupportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExtendedSliceSupportList_H_
diff --git a/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.c b/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.c
index 9ab593fdcd..860d697c72 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.c
+++ b/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ExtendedUEIdentityIndexValue.h"
diff --git a/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.h b/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.h
index c391c7f271..1829c33a22 100644
--- a/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.h
+++ b/lib/asn1c/ngap/NGAP_ExtendedUEIdentityIndexValue.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ExtendedUEIdentityIndexValue_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ExtendedUEIdentityIndexValue;
asn_struct_free_f NGAP_ExtendedUEIdentityIndexValue_free;
asn_struct_print_f NGAP_ExtendedUEIdentityIndexValue_print;
asn_constr_check_f NGAP_ExtendedUEIdentityIndexValue_constraint;
-jer_type_encoder_f NGAP_ExtendedUEIdentityIndexValue_encode_jer;
per_type_decoder_f NGAP_ExtendedUEIdentityIndexValue_decode_aper;
per_type_encoder_f NGAP_ExtendedUEIdentityIndexValue_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_FailureIndication.c b/lib/asn1c/ngap/NGAP_FailureIndication.c
index ca1b59113e..3032cb984f 100644
--- a/lib/asn1c/ngap/NGAP_FailureIndication.c
+++ b/lib/asn1c/ngap/NGAP_FailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FailureIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_FailureIndication.h b/lib/asn1c/ngap/NGAP_FailureIndication.h
index 39db0cdf41..e81c6b394c 100644
--- a/lib/asn1c/ngap/NGAP_FailureIndication.h
+++ b/lib/asn1c/ngap/NGAP_FailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FailureIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_FirstDLCount.c b/lib/asn1c/ngap/NGAP_FirstDLCount.c
index e1e3a53fd9..a3fb3544a8 100644
--- a/lib/asn1c/ngap/NGAP_FirstDLCount.c
+++ b/lib/asn1c/ngap/NGAP_FirstDLCount.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FirstDLCount.h"
diff --git a/lib/asn1c/ngap/NGAP_FirstDLCount.h b/lib/asn1c/ngap/NGAP_FirstDLCount.h
index 60f41776fe..ee736c8c33 100644
--- a/lib/asn1c/ngap/NGAP_FirstDLCount.h
+++ b/lib/asn1c/ngap/NGAP_FirstDLCount.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FirstDLCount_H_
diff --git a/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.c b/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.c
index 209b82dda4..1573c0fad5 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.c
+++ b/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveG-ProSeAuthorized.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.h b/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.h
index 978647de04..e57b0b0fcb 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.h
+++ b/lib/asn1c/ngap/NGAP_FiveG-ProSeAuthorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveG_ProSeAuthorized_H_
diff --git a/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.c b/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.c
index aa8ef16d12..b7a45f1a11 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.c
+++ b/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveG-ProSePC5QoSParameters.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.h b/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.h
index 87f4fe5f50..160cecdea6 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.h
+++ b/lib/asn1c/ngap/NGAP_FiveG-ProSePC5QoSParameters.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveG_ProSePC5QoSParameters_H_
diff --git a/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.c b/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.c
index 6f029e346d..fd6b95f59a 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.c
+++ b/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveG-S-TMSI.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.h b/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.h
index bac04eef6d..a75e18b018 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.h
+++ b/lib/asn1c/ngap/NGAP_FiveG-S-TMSI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveG_S_TMSI_H_
diff --git a/lib/asn1c/ngap/NGAP_FiveG-TMSI.c b/lib/asn1c/ngap/NGAP_FiveG-TMSI.c
index d7e320d3d8..ed40df7f32 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-TMSI.c
+++ b/lib/asn1c/ngap/NGAP_FiveG-TMSI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveG-TMSI.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveG-TMSI.h b/lib/asn1c/ngap/NGAP_FiveG-TMSI.h
index cfade20819..6ebfb7491b 100644
--- a/lib/asn1c/ngap/NGAP_FiveG-TMSI.h
+++ b/lib/asn1c/ngap/NGAP_FiveG-TMSI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveG_TMSI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_FiveG_TMSI;
asn_struct_free_f NGAP_FiveG_TMSI_free;
asn_struct_print_f NGAP_FiveG_TMSI_print;
asn_constr_check_f NGAP_FiveG_TMSI_constraint;
-jer_type_encoder_f NGAP_FiveG_TMSI_encode_jer;
per_type_decoder_f NGAP_FiveG_TMSI_decode_aper;
per_type_encoder_f NGAP_FiveG_TMSI_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.c b/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.c
index 684a66fd71..227621762e 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSeDirectCommunication.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.h b/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.h
index 3846e52f87..b5ad4e2cbc 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeDirectCommunication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSeDirectCommunication_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_FiveGProSeDirectCommunication_
asn_struct_free_f NGAP_FiveGProSeDirectCommunication_free;
asn_struct_print_f NGAP_FiveGProSeDirectCommunication_print;
asn_constr_check_f NGAP_FiveGProSeDirectCommunication_constraint;
-jer_type_encoder_f NGAP_FiveGProSeDirectCommunication_encode_jer;
per_type_decoder_f NGAP_FiveGProSeDirectCommunication_decode_aper;
per_type_encoder_f NGAP_FiveGProSeDirectCommunication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.c b/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.c
index dead88dbd8..9b1ca97b41 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSeDirectDiscovery.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.h b/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.h
index 17655729e8..bc452c232d 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeDirectDiscovery.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSeDirectDiscovery_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_FiveGProSeDirectDiscovery_spec
asn_struct_free_f NGAP_FiveGProSeDirectDiscovery_free;
asn_struct_print_f NGAP_FiveGProSeDirectDiscovery_print;
asn_constr_check_f NGAP_FiveGProSeDirectDiscovery_constraint;
-jer_type_encoder_f NGAP_FiveGProSeDirectDiscovery_encode_jer;
per_type_decoder_f NGAP_FiveGProSeDirectDiscovery_decode_aper;
per_type_encoder_f NGAP_FiveGProSeDirectDiscovery_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.c b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.c
index c05bd7476c..8f8e4bd256 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSeLayer2RemoteUE.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.h b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.h
index 990a7e8a91..a40bf88b7c 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2RemoteUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSeLayer2RemoteUE_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_FiveGProSeLayer2RemoteUE_specs
asn_struct_free_f NGAP_FiveGProSeLayer2RemoteUE_free;
asn_struct_print_f NGAP_FiveGProSeLayer2RemoteUE_print;
asn_constr_check_f NGAP_FiveGProSeLayer2RemoteUE_constraint;
-jer_type_encoder_f NGAP_FiveGProSeLayer2RemoteUE_encode_jer;
per_type_decoder_f NGAP_FiveGProSeLayer2RemoteUE_decode_aper;
per_type_encoder_f NGAP_FiveGProSeLayer2RemoteUE_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.c b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.c
index d4e6b1e0d4..543ee325c0 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSeLayer2UEtoNetworkRelay.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.h b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.h
index 8eb4cf325a..51f2d37345 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeLayer2UEtoNetworkRelay.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSeLayer2UEtoNetworkRelay_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_FiveGProSeLayer2UEtoNetworkRel
asn_struct_free_f NGAP_FiveGProSeLayer2UEtoNetworkRelay_free;
asn_struct_print_f NGAP_FiveGProSeLayer2UEtoNetworkRelay_print;
asn_constr_check_f NGAP_FiveGProSeLayer2UEtoNetworkRelay_constraint;
-jer_type_encoder_f NGAP_FiveGProSeLayer2UEtoNetworkRelay_encode_jer;
per_type_decoder_f NGAP_FiveGProSeLayer2UEtoNetworkRelay_decode_aper;
per_type_encoder_f NGAP_FiveGProSeLayer2UEtoNetworkRelay_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.c b/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.c
index d8b1543623..7f683ac158 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSeLayer3UEtoNetworkRelay.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.h b/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.h
index 42561ba300..fad59d6d68 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSeLayer3UEtoNetworkRelay.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSeLayer3UEtoNetworkRelay_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_FiveGProSeLayer3UEtoNetworkRel
asn_struct_free_f NGAP_FiveGProSeLayer3UEtoNetworkRelay_free;
asn_struct_print_f NGAP_FiveGProSeLayer3UEtoNetworkRelay_print;
asn_constr_check_f NGAP_FiveGProSeLayer3UEtoNetworkRelay_constraint;
-jer_type_encoder_f NGAP_FiveGProSeLayer3UEtoNetworkRelay_encode_jer;
per_type_decoder_f NGAP_FiveGProSeLayer3UEtoNetworkRelay_decode_aper;
per_type_encoder_f NGAP_FiveGProSeLayer3UEtoNetworkRelay_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.c b/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.c
index eb947b41d4..bdea8d6d96 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSePC5FlowBitRates.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.h b/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.h
index 69f24ed89d..b03d364093 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSePC5FlowBitRates.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSePC5FlowBitRates_H_
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.c b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.c
index b856ac84f8..98011e68aa 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSePC5QoSFlowItem.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.h b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.h
index 6b077ab315..352c0a3b69 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSePC5QoSFlowItem_H_
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.c b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.c
index 2a11ebcf23..338ee6c48d 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.c
+++ b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveGProSePC5QoSFlowList.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.h b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.h
index e8cf17e67b..394c19bbf0 100644
--- a/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.h
+++ b/lib/asn1c/ngap/NGAP_FiveGProSePC5QoSFlowList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveGProSePC5QoSFlowList_H_
diff --git a/lib/asn1c/ngap/NGAP_FiveQI.c b/lib/asn1c/ngap/NGAP_FiveQI.c
index b2bc32e6df..325f20d54f 100644
--- a/lib/asn1c/ngap/NGAP_FiveQI.c
+++ b/lib/asn1c/ngap/NGAP_FiveQI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FiveQI.h"
diff --git a/lib/asn1c/ngap/NGAP_FiveQI.h b/lib/asn1c/ngap/NGAP_FiveQI.h
index 539ed42012..9425e5dee7 100644
--- a/lib/asn1c/ngap/NGAP_FiveQI.h
+++ b/lib/asn1c/ngap/NGAP_FiveQI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FiveQI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_FiveQI;
asn_struct_free_f NGAP_FiveQI_free;
asn_struct_print_f NGAP_FiveQI_print;
asn_constr_check_f NGAP_FiveQI_constraint;
-jer_type_encoder_f NGAP_FiveQI_encode_jer;
per_type_decoder_f NGAP_FiveQI_decode_aper;
per_type_encoder_f NGAP_FiveQI_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.c b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.c
index 9ca12d56e6..ccf511c47e 100644
--- a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.c
+++ b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ForbiddenAreaInformation-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.h b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.h
index a189031432..a9b66524cf 100644
--- a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.h
+++ b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ForbiddenAreaInformation_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.c b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.c
index d199f58202..d0e480109a 100644
--- a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.c
+++ b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ForbiddenAreaInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.h b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.h
index 1561f8070f..4ebd61b84d 100644
--- a/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.h
+++ b/lib/asn1c/ngap/NGAP_ForbiddenAreaInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ForbiddenAreaInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_ForbiddenTACs.c b/lib/asn1c/ngap/NGAP_ForbiddenTACs.c
index b32943666b..eabc2e4126 100644
--- a/lib/asn1c/ngap/NGAP_ForbiddenTACs.c
+++ b/lib/asn1c/ngap/NGAP_ForbiddenTACs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ForbiddenTACs.h"
diff --git a/lib/asn1c/ngap/NGAP_ForbiddenTACs.h b/lib/asn1c/ngap/NGAP_ForbiddenTACs.h
index 4eecee66bb..0494d79aac 100644
--- a/lib/asn1c/ngap/NGAP_ForbiddenTACs.h
+++ b/lib/asn1c/ngap/NGAP_ForbiddenTACs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ForbiddenTACs_H_
diff --git a/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.c b/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.c
index af86677a3d..3524a1733d 100644
--- a/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.c
+++ b/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FromEUTRANtoNGRAN.h"
diff --git a/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.h b/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.h
index f36550c5ea..69f74e2b5c 100644
--- a/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.h
+++ b/lib/asn1c/ngap/NGAP_FromEUTRANtoNGRAN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FromEUTRANtoNGRAN_H_
diff --git a/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.c b/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.c
index 5705adfbc7..9225215019 100644
--- a/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.c
+++ b/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_FromNGRANtoEUTRAN.h"
diff --git a/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.h b/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.h
index 63cf223c2e..34cb6f213b 100644
--- a/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.h
+++ b/lib/asn1c/ngap/NGAP_FromNGRANtoEUTRAN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_FromNGRANtoEUTRAN_H_
diff --git a/lib/asn1c/ngap/NGAP_GBR-QosInformation.c b/lib/asn1c/ngap/NGAP_GBR-QosInformation.c
index 0d7343679b..f7e4e845e2 100644
--- a/lib/asn1c/ngap/NGAP_GBR-QosInformation.c
+++ b/lib/asn1c/ngap/NGAP_GBR-QosInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GBR-QosInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_GBR-QosInformation.h b/lib/asn1c/ngap/NGAP_GBR-QosInformation.h
index 93e43bb55f..18e4735a0f 100644
--- a/lib/asn1c/ngap/NGAP_GBR-QosInformation.h
+++ b/lib/asn1c/ngap/NGAP_GBR-QosInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GBR_QosInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_GNB-ID.c b/lib/asn1c/ngap/NGAP_GNB-ID.c
index 329b211986..97e9335269 100644
--- a/lib/asn1c/ngap/NGAP_GNB-ID.c
+++ b/lib/asn1c/ngap/NGAP_GNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GNB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GNB-ID.h b/lib/asn1c/ngap/NGAP_GNB-ID.h
index 8bcf2327af..03185ef78a 100644
--- a/lib/asn1c/ngap/NGAP_GNB-ID.h
+++ b/lib/asn1c/ngap/NGAP_GNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GNB_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GNBSetID.c b/lib/asn1c/ngap/NGAP_GNBSetID.c
index 820cdd19eb..e84bee935e 100644
--- a/lib/asn1c/ngap/NGAP_GNBSetID.c
+++ b/lib/asn1c/ngap/NGAP_GNBSetID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GNBSetID.h"
diff --git a/lib/asn1c/ngap/NGAP_GNBSetID.h b/lib/asn1c/ngap/NGAP_GNBSetID.h
index c836638cba..e0bedf0e59 100644
--- a/lib/asn1c/ngap/NGAP_GNBSetID.h
+++ b/lib/asn1c/ngap/NGAP_GNBSetID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GNBSetID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_GNBSetID;
asn_struct_free_f NGAP_GNBSetID_free;
asn_struct_print_f NGAP_GNBSetID_print;
asn_constr_check_f NGAP_GNBSetID_constraint;
-jer_type_encoder_f NGAP_GNBSetID_encode_jer;
per_type_decoder_f NGAP_GNBSetID_decode_aper;
per_type_encoder_f NGAP_GNBSetID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_GTP-TEID.c b/lib/asn1c/ngap/NGAP_GTP-TEID.c
index 0647a41893..1a0064160e 100644
--- a/lib/asn1c/ngap/NGAP_GTP-TEID.c
+++ b/lib/asn1c/ngap/NGAP_GTP-TEID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GTP-TEID.h"
diff --git a/lib/asn1c/ngap/NGAP_GTP-TEID.h b/lib/asn1c/ngap/NGAP_GTP-TEID.h
index e31ebe4e2e..7b747d97d9 100644
--- a/lib/asn1c/ngap/NGAP_GTP-TEID.h
+++ b/lib/asn1c/ngap/NGAP_GTP-TEID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GTP_TEID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_GTP_TEID;
asn_struct_free_f NGAP_GTP_TEID_free;
asn_struct_print_f NGAP_GTP_TEID_print;
asn_constr_check_f NGAP_GTP_TEID_constraint;
-jer_type_encoder_f NGAP_GTP_TEID_encode_jer;
per_type_decoder_f NGAP_GTP_TEID_decode_aper;
per_type_encoder_f NGAP_GTP_TEID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_GTPTunnel.c b/lib/asn1c/ngap/NGAP_GTPTunnel.c
index 782944e401..388cf3e790 100644
--- a/lib/asn1c/ngap/NGAP_GTPTunnel.c
+++ b/lib/asn1c/ngap/NGAP_GTPTunnel.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GTPTunnel.h"
diff --git a/lib/asn1c/ngap/NGAP_GTPTunnel.h b/lib/asn1c/ngap/NGAP_GTPTunnel.h
index 2d7b13def0..9c675cb9b2 100644
--- a/lib/asn1c/ngap/NGAP_GTPTunnel.h
+++ b/lib/asn1c/ngap/NGAP_GTPTunnel.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GTPTunnel_H_
diff --git a/lib/asn1c/ngap/NGAP_GUAMI.c b/lib/asn1c/ngap/NGAP_GUAMI.c
index a5c42cf9c3..eb76493940 100644
--- a/lib/asn1c/ngap/NGAP_GUAMI.c
+++ b/lib/asn1c/ngap/NGAP_GUAMI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GUAMI.h"
diff --git a/lib/asn1c/ngap/NGAP_GUAMI.h b/lib/asn1c/ngap/NGAP_GUAMI.h
index aa741ed727..ff6a3a8eef 100644
--- a/lib/asn1c/ngap/NGAP_GUAMI.h
+++ b/lib/asn1c/ngap/NGAP_GUAMI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GUAMI_H_
diff --git a/lib/asn1c/ngap/NGAP_GUAMIType.c b/lib/asn1c/ngap/NGAP_GUAMIType.c
index 3c1660f326..2e043c4ec6 100644
--- a/lib/asn1c/ngap/NGAP_GUAMIType.c
+++ b/lib/asn1c/ngap/NGAP_GUAMIType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GUAMIType.h"
diff --git a/lib/asn1c/ngap/NGAP_GUAMIType.h b/lib/asn1c/ngap/NGAP_GUAMIType.h
index 6fb710069a..61d63516ef 100644
--- a/lib/asn1c/ngap/NGAP_GUAMIType.h
+++ b/lib/asn1c/ngap/NGAP_GUAMIType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GUAMIType_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_GUAMIType_specs_1;
asn_struct_free_f NGAP_GUAMIType_free;
asn_struct_print_f NGAP_GUAMIType_print;
asn_constr_check_f NGAP_GUAMIType_constraint;
-jer_type_encoder_f NGAP_GUAMIType_encode_jer;
per_type_decoder_f NGAP_GUAMIType_decode_aper;
per_type_encoder_f NGAP_GUAMIType_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_GlobalCable-ID.c b/lib/asn1c/ngap/NGAP_GlobalCable-ID.c
index a1782ad27b..c2d6a04f2a 100644
--- a/lib/asn1c/ngap/NGAP_GlobalCable-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalCable-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalCable-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalCable-ID.h b/lib/asn1c/ngap/NGAP_GlobalCable-ID.h
index eccd4915e8..23b90f98a1 100644
--- a/lib/asn1c/ngap/NGAP_GlobalCable-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalCable-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalCable_ID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_GlobalCable_ID;
asn_struct_free_f NGAP_GlobalCable_ID_free;
asn_struct_print_f NGAP_GlobalCable_ID_print;
asn_constr_check_f NGAP_GlobalCable_ID_constraint;
-jer_type_encoder_f NGAP_GlobalCable_ID_encode_jer;
per_type_decoder_f NGAP_GlobalCable_ID_decode_aper;
per_type_encoder_f NGAP_GlobalCable_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_GlobalENB-ID.c b/lib/asn1c/ngap/NGAP_GlobalENB-ID.c
index e1a5921c08..3ac2e96524 100644
--- a/lib/asn1c/ngap/NGAP_GlobalENB-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalENB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalENB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalENB-ID.h b/lib/asn1c/ngap/NGAP_GlobalENB-ID.h
index 7c0edee09c..35329f8240 100644
--- a/lib/asn1c/ngap/NGAP_GlobalENB-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalENB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalENB_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalGNB-ID.c b/lib/asn1c/ngap/NGAP_GlobalGNB-ID.c
index c2150e1d7d..38b26877f4 100644
--- a/lib/asn1c/ngap/NGAP_GlobalGNB-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalGNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalGNB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalGNB-ID.h b/lib/asn1c/ngap/NGAP_GlobalGNB-ID.h
index 9081ce7c94..68984677d3 100644
--- a/lib/asn1c/ngap/NGAP_GlobalGNB-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalGNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalGNB_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalLine-ID.c b/lib/asn1c/ngap/NGAP_GlobalLine-ID.c
index 7c7f7c0d2e..01a4823c2a 100644
--- a/lib/asn1c/ngap/NGAP_GlobalLine-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalLine-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalLine-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalLine-ID.h b/lib/asn1c/ngap/NGAP_GlobalLine-ID.h
index 078318d1dd..a271dab103 100644
--- a/lib/asn1c/ngap/NGAP_GlobalLine-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalLine-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalLine_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalLineIdentity.c b/lib/asn1c/ngap/NGAP_GlobalLineIdentity.c
index cb69bf3a3a..16107e1dd0 100644
--- a/lib/asn1c/ngap/NGAP_GlobalLineIdentity.c
+++ b/lib/asn1c/ngap/NGAP_GlobalLineIdentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalLineIdentity.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalLineIdentity.h b/lib/asn1c/ngap/NGAP_GlobalLineIdentity.h
index 728f9b2927..d733cf98a6 100644
--- a/lib/asn1c/ngap/NGAP_GlobalLineIdentity.h
+++ b/lib/asn1c/ngap/NGAP_GlobalLineIdentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalLineIdentity_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_GlobalLineIdentity;
asn_struct_free_f NGAP_GlobalLineIdentity_free;
asn_struct_print_f NGAP_GlobalLineIdentity_print;
asn_constr_check_f NGAP_GlobalLineIdentity_constraint;
-jer_type_encoder_f NGAP_GlobalLineIdentity_encode_jer;
per_type_decoder_f NGAP_GlobalLineIdentity_decode_aper;
per_type_encoder_f NGAP_GlobalLineIdentity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.c b/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.c
index a49d8bdc4a..1769d46c53 100644
--- a/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalN3IWF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.h b/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.h
index 3b4c18a4ab..559b95a53b 100644
--- a/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalN3IWF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalN3IWF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.c b/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.c
index a0671049e0..004cd44102 100644
--- a/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalNgENB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.h b/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.h
index 6ee4efc550..0b42aa8e94 100644
--- a/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalNgENB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalNgENB_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalRANNodeID.c b/lib/asn1c/ngap/NGAP_GlobalRANNodeID.c
index 6ec1563f01..7d5baa3b6d 100644
--- a/lib/asn1c/ngap/NGAP_GlobalRANNodeID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalRANNodeID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalRANNodeID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalRANNodeID.h b/lib/asn1c/ngap/NGAP_GlobalRANNodeID.h
index 2387692b39..77af07c14b 100644
--- a/lib/asn1c/ngap/NGAP_GlobalRANNodeID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalRANNodeID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalRANNodeID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.c b/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.c
index 09b5adba87..011d259ffd 100644
--- a/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalTNGF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.h b/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.h
index ff711fbf74..658be793e5 100644
--- a/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalTNGF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalTNGF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.c b/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.c
index 1db36c173b..e16e08ffe2 100644
--- a/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalTWIF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.h b/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.h
index 6a8e17523b..5a756f4a9d 100644
--- a/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalTWIF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalTWIF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.c b/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.c
index 6de540e28b..3c924c0b6f 100644
--- a/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.c
+++ b/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_GlobalW-AGF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.h b/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.h
index 32c9ffcc9c..38dbea2881 100644
--- a/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.h
+++ b/lib/asn1c/ngap/NGAP_GlobalW-AGF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_GlobalW_AGF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_HFCNode-ID.c b/lib/asn1c/ngap/NGAP_HFCNode-ID.c
index cd4a478cfd..1e9c524448 100644
--- a/lib/asn1c/ngap/NGAP_HFCNode-ID.c
+++ b/lib/asn1c/ngap/NGAP_HFCNode-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HFCNode-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_HFCNode-ID.h b/lib/asn1c/ngap/NGAP_HFCNode-ID.h
index ac6f25e774..1862bc2922 100644
--- a/lib/asn1c/ngap/NGAP_HFCNode-ID.h
+++ b/lib/asn1c/ngap/NGAP_HFCNode-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HFCNode_ID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_HFCNode_ID;
asn_struct_free_f NGAP_HFCNode_ID_free;
asn_struct_print_f NGAP_HFCNode_ID_print;
asn_constr_check_f NGAP_HFCNode_ID_constraint;
-jer_type_encoder_f NGAP_HFCNode_ID_encode_jer;
per_type_decoder_f NGAP_HFCNode_ID_decode_aper;
per_type_encoder_f NGAP_HFCNode_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_HOReport.c b/lib/asn1c/ngap/NGAP_HOReport.c
index a9e4833f82..f81f58e830 100644
--- a/lib/asn1c/ngap/NGAP_HOReport.c
+++ b/lib/asn1c/ngap/NGAP_HOReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HOReport.h"
diff --git a/lib/asn1c/ngap/NGAP_HOReport.h b/lib/asn1c/ngap/NGAP_HOReport.h
index 8dc0af0240..93fb66722f 100644
--- a/lib/asn1c/ngap/NGAP_HOReport.h
+++ b/lib/asn1c/ngap/NGAP_HOReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HOReport_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverCancel.c b/lib/asn1c/ngap/NGAP_HandoverCancel.c
index 97fa4df0ef..e648be8b7c 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCancel.c
+++ b/lib/asn1c/ngap/NGAP_HandoverCancel.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverCancel.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverCancel.h b/lib/asn1c/ngap/NGAP_HandoverCancel.h
index cccb9540cb..1932326fd3 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCancel.h
+++ b/lib/asn1c/ngap/NGAP_HandoverCancel.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverCancel_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.c b/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.c
index 33aed8d66c..a9f507cb8a 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.c
+++ b/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverCancelAcknowledge.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.h b/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.h
index cff20e9f8b..9d5724a430 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.h
+++ b/lib/asn1c/ngap/NGAP_HandoverCancelAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverCancelAcknowledge_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverCommand.c b/lib/asn1c/ngap/NGAP_HandoverCommand.c
index e2f64cdc4f..4bef283d89 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCommand.c
+++ b/lib/asn1c/ngap/NGAP_HandoverCommand.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverCommand.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverCommand.h b/lib/asn1c/ngap/NGAP_HandoverCommand.h
index aac8c4026c..968c7f5470 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCommand.h
+++ b/lib/asn1c/ngap/NGAP_HandoverCommand.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverCommand_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.c b/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.c
index 075973b2bd..e5db7d0f67 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.c
+++ b/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverCommandTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.h b/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.h
index ee999f0e92..9a14791b30 100644
--- a/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.h
+++ b/lib/asn1c/ngap/NGAP_HandoverCommandTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverCommandTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverFailure.c b/lib/asn1c/ngap/NGAP_HandoverFailure.c
index d819bca85b..c7a244ef47 100644
--- a/lib/asn1c/ngap/NGAP_HandoverFailure.c
+++ b/lib/asn1c/ngap/NGAP_HandoverFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverFailure.h b/lib/asn1c/ngap/NGAP_HandoverFailure.h
index 153fcf4b2b..7a195e6007 100644
--- a/lib/asn1c/ngap/NGAP_HandoverFailure.h
+++ b/lib/asn1c/ngap/NGAP_HandoverFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverFlag.c b/lib/asn1c/ngap/NGAP_HandoverFlag.c
index 563a0f7c45..282284a65d 100644
--- a/lib/asn1c/ngap/NGAP_HandoverFlag.c
+++ b/lib/asn1c/ngap/NGAP_HandoverFlag.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverFlag.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverFlag.h b/lib/asn1c/ngap/NGAP_HandoverFlag.h
index 1e6b7e45db..3a9ad4b41c 100644
--- a/lib/asn1c/ngap/NGAP_HandoverFlag.h
+++ b/lib/asn1c/ngap/NGAP_HandoverFlag.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverFlag_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_HandoverFlag_specs_1;
asn_struct_free_f NGAP_HandoverFlag_free;
asn_struct_print_f NGAP_HandoverFlag_print;
asn_constr_check_f NGAP_HandoverFlag_constraint;
-jer_type_encoder_f NGAP_HandoverFlag_encode_jer;
per_type_decoder_f NGAP_HandoverFlag_decode_aper;
per_type_encoder_f NGAP_HandoverFlag_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_HandoverNotify.c b/lib/asn1c/ngap/NGAP_HandoverNotify.c
index 6d0c63cbe1..754d82843b 100644
--- a/lib/asn1c/ngap/NGAP_HandoverNotify.c
+++ b/lib/asn1c/ngap/NGAP_HandoverNotify.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverNotify.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverNotify.h b/lib/asn1c/ngap/NGAP_HandoverNotify.h
index 15da5569b2..f41adfc79c 100644
--- a/lib/asn1c/ngap/NGAP_HandoverNotify.h
+++ b/lib/asn1c/ngap/NGAP_HandoverNotify.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverNotify_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.c b/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.c
index 0b6c165de1..f3e46ad751 100644
--- a/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.c
+++ b/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverPreparationFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.h b/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.h
index 5b26fd7c0a..4ed4b69d46 100644
--- a/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.h
+++ b/lib/asn1c/ngap/NGAP_HandoverPreparationFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverPreparationFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.c b/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.c
index 643eb2ee1c..408b75a066 100644
--- a/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.c
+++ b/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverPreparationUnsuccessfulTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.h b/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.h
index fe1001000c..c8b5ab1b99 100644
--- a/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.h
+++ b/lib/asn1c/ngap/NGAP_HandoverPreparationUnsuccessfulTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverPreparationUnsuccessfulTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequest.c b/lib/asn1c/ngap/NGAP_HandoverRequest.c
index 62be0b6b40..9b3f5c1341 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequest.c
+++ b/lib/asn1c/ngap/NGAP_HandoverRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequest.h b/lib/asn1c/ngap/NGAP_HandoverRequest.h
index 1cf0b86acd..4c371d5c09 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequest.h
+++ b/lib/asn1c/ngap/NGAP_HandoverRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.c b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.c
index 6962fc8bd1..7de51d027b 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.c
+++ b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverRequestAcknowledge.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.h b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.h
index 11354b6cc8..013834584a 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.h
+++ b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverRequestAcknowledge_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.c b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.c
index 20790ddd7a..d78c4a03e4 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.c
+++ b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverRequestAcknowledgeTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.h b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.h
index 6e0520d112..ec9311f639 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.h
+++ b/lib/asn1c/ngap/NGAP_HandoverRequestAcknowledgeTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverRequestAcknowledgeTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequired.c b/lib/asn1c/ngap/NGAP_HandoverRequired.c
index c44613e810..ea1db9f48a 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequired.c
+++ b/lib/asn1c/ngap/NGAP_HandoverRequired.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverRequired.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequired.h b/lib/asn1c/ngap/NGAP_HandoverRequired.h
index 2e4a7558da..073d637e91 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequired.h
+++ b/lib/asn1c/ngap/NGAP_HandoverRequired.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverRequired_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.c b/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.c
index 00a5ec8751..4a20092062 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.c
+++ b/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverRequiredTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.h b/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.h
index 6636541e3d..d60154f95d 100644
--- a/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.h
+++ b/lib/asn1c/ngap/NGAP_HandoverRequiredTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverRequiredTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c b/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c
index 1044239cfc..803e084aed 100644
--- a/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c
+++ b/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h b/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h
index 8493b5ba24..0c3cc4abae 100644
--- a/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h
+++ b/lib/asn1c/ngap/NGAP_HandoverResourceAllocationUnsuccessfulTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverResourceAllocationUnsuccessfulTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverSuccess.c b/lib/asn1c/ngap/NGAP_HandoverSuccess.c
index 3cf9792cd4..f648800605 100644
--- a/lib/asn1c/ngap/NGAP_HandoverSuccess.c
+++ b/lib/asn1c/ngap/NGAP_HandoverSuccess.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverSuccess.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverSuccess.h b/lib/asn1c/ngap/NGAP_HandoverSuccess.h
index 551c21566c..b756104854 100644
--- a/lib/asn1c/ngap/NGAP_HandoverSuccess.h
+++ b/lib/asn1c/ngap/NGAP_HandoverSuccess.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverSuccess_H_
diff --git a/lib/asn1c/ngap/NGAP_HandoverType.c b/lib/asn1c/ngap/NGAP_HandoverType.c
index 356c41e0fa..ba374a3404 100644
--- a/lib/asn1c/ngap/NGAP_HandoverType.c
+++ b/lib/asn1c/ngap/NGAP_HandoverType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_HandoverType.h"
diff --git a/lib/asn1c/ngap/NGAP_HandoverType.h b/lib/asn1c/ngap/NGAP_HandoverType.h
index dbffdc1674..c905e784ec 100644
--- a/lib/asn1c/ngap/NGAP_HandoverType.h
+++ b/lib/asn1c/ngap/NGAP_HandoverType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_HandoverType_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_HandoverType_specs_1;
asn_struct_free_f NGAP_HandoverType_free;
asn_struct_print_f NGAP_HandoverType_print;
asn_constr_check_f NGAP_HandoverType_constraint;
-jer_type_encoder_f NGAP_HandoverType_encode_jer;
per_type_decoder_f NGAP_HandoverType_decode_aper;
per_type_encoder_f NGAP_HandoverType_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Hysteresis.c b/lib/asn1c/ngap/NGAP_Hysteresis.c
index a91c08078a..ec61161186 100644
--- a/lib/asn1c/ngap/NGAP_Hysteresis.c
+++ b/lib/asn1c/ngap/NGAP_Hysteresis.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Hysteresis.h"
diff --git a/lib/asn1c/ngap/NGAP_Hysteresis.h b/lib/asn1c/ngap/NGAP_Hysteresis.h
index 2c62042e94..89e09e1235 100644
--- a/lib/asn1c/ngap/NGAP_Hysteresis.h
+++ b/lib/asn1c/ngap/NGAP_Hysteresis.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Hysteresis_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_Hysteresis;
asn_struct_free_f NGAP_Hysteresis_free;
asn_struct_print_f NGAP_Hysteresis_print;
asn_constr_check_f NGAP_Hysteresis_constraint;
-jer_type_encoder_f NGAP_Hysteresis_encode_jer;
per_type_decoder_f NGAP_Hysteresis_decode_aper;
per_type_encoder_f NGAP_Hysteresis_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IAB-Authorized.c b/lib/asn1c/ngap/NGAP_IAB-Authorized.c
index 3778af2e05..8bc8d41be2 100644
--- a/lib/asn1c/ngap/NGAP_IAB-Authorized.c
+++ b/lib/asn1c/ngap/NGAP_IAB-Authorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IAB-Authorized.h"
diff --git a/lib/asn1c/ngap/NGAP_IAB-Authorized.h b/lib/asn1c/ngap/NGAP_IAB-Authorized.h
index 48d90df618..35634c495b 100644
--- a/lib/asn1c/ngap/NGAP_IAB-Authorized.h
+++ b/lib/asn1c/ngap/NGAP_IAB-Authorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IAB_Authorized_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_IAB_Authorized_specs_1;
asn_struct_free_f NGAP_IAB_Authorized_free;
asn_struct_print_f NGAP_IAB_Authorized_print;
asn_constr_check_f NGAP_IAB_Authorized_constraint;
-jer_type_encoder_f NGAP_IAB_Authorized_encode_jer;
per_type_decoder_f NGAP_IAB_Authorized_decode_aper;
per_type_encoder_f NGAP_IAB_Authorized_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IAB-Supported.c b/lib/asn1c/ngap/NGAP_IAB-Supported.c
index e821804b4d..ab60724fb9 100644
--- a/lib/asn1c/ngap/NGAP_IAB-Supported.c
+++ b/lib/asn1c/ngap/NGAP_IAB-Supported.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IAB-Supported.h"
diff --git a/lib/asn1c/ngap/NGAP_IAB-Supported.h b/lib/asn1c/ngap/NGAP_IAB-Supported.h
index f2315a3a8d..17234af524 100644
--- a/lib/asn1c/ngap/NGAP_IAB-Supported.h
+++ b/lib/asn1c/ngap/NGAP_IAB-Supported.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IAB_Supported_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_IAB_Supported_specs_1;
asn_struct_free_f NGAP_IAB_Supported_free;
asn_struct_print_f NGAP_IAB_Supported_print;
asn_constr_check_f NGAP_IAB_Supported_constraint;
-jer_type_encoder_f NGAP_IAB_Supported_encode_jer;
per_type_decoder_f NGAP_IAB_Supported_decode_aper;
per_type_encoder_f NGAP_IAB_Supported_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IABNodeIndication.c b/lib/asn1c/ngap/NGAP_IABNodeIndication.c
index c651da9946..9497b8bf0d 100644
--- a/lib/asn1c/ngap/NGAP_IABNodeIndication.c
+++ b/lib/asn1c/ngap/NGAP_IABNodeIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IABNodeIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_IABNodeIndication.h b/lib/asn1c/ngap/NGAP_IABNodeIndication.h
index 52699f4b27..261e36c3d0 100644
--- a/lib/asn1c/ngap/NGAP_IABNodeIndication.h
+++ b/lib/asn1c/ngap/NGAP_IABNodeIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IABNodeIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_IABNodeIndication_specs_1;
asn_struct_free_f NGAP_IABNodeIndication_free;
asn_struct_print_f NGAP_IABNodeIndication_print;
asn_constr_check_f NGAP_IABNodeIndication_constraint;
-jer_type_encoder_f NGAP_IABNodeIndication_encode_jer;
per_type_decoder_f NGAP_IABNodeIndication_decode_aper;
per_type_encoder_f NGAP_IABNodeIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.c b/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.c
index 684b9964f3..e2911949d4 100644
--- a/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.c
+++ b/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IMSVoiceSupportIndicator.h"
diff --git a/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.h b/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.h
index 8404844754..a2f3ef4cbb 100644
--- a/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.h
+++ b/lib/asn1c/ngap/NGAP_IMSVoiceSupportIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IMSVoiceSupportIndicator_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_IMSVoiceSupportIndicator_specs
asn_struct_free_f NGAP_IMSVoiceSupportIndicator_free;
asn_struct_print_f NGAP_IMSVoiceSupportIndicator_print;
asn_constr_check_f NGAP_IMSVoiceSupportIndicator_constraint;
-jer_type_encoder_f NGAP_IMSVoiceSupportIndicator_encode_jer;
per_type_decoder_f NGAP_IMSVoiceSupportIndicator_decode_aper;
per_type_encoder_f NGAP_IMSVoiceSupportIndicator_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ImmediateMDTNr.c b/lib/asn1c/ngap/NGAP_ImmediateMDTNr.c
index 0c48174ae0..d4982a258f 100644
--- a/lib/asn1c/ngap/NGAP_ImmediateMDTNr.c
+++ b/lib/asn1c/ngap/NGAP_ImmediateMDTNr.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ImmediateMDTNr.h"
diff --git a/lib/asn1c/ngap/NGAP_ImmediateMDTNr.h b/lib/asn1c/ngap/NGAP_ImmediateMDTNr.h
index 512d8e32bf..88857cf8e3 100644
--- a/lib/asn1c/ngap/NGAP_ImmediateMDTNr.h
+++ b/lib/asn1c/ngap/NGAP_ImmediateMDTNr.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ImmediateMDTNr_H_
diff --git a/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.c b/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.c
index 74af52747a..2a72ef063d 100644
--- a/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.c
+++ b/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IncludeBeamMeasurementsIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.h b/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.h
index d7a2d0bef3..ea3f0de0b6 100644
--- a/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.h
+++ b/lib/asn1c/ngap/NGAP_IncludeBeamMeasurementsIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IncludeBeamMeasurementsIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_IncludeBeamMeasurementsIndicat
asn_struct_free_f NGAP_IncludeBeamMeasurementsIndication_free;
asn_struct_print_f NGAP_IncludeBeamMeasurementsIndication_print;
asn_constr_check_f NGAP_IncludeBeamMeasurementsIndication_constraint;
-jer_type_encoder_f NGAP_IncludeBeamMeasurementsIndication_encode_jer;
per_type_decoder_f NGAP_IncludeBeamMeasurementsIndication_decode_aper;
per_type_encoder_f NGAP_IncludeBeamMeasurementsIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IndexToRFSP.c b/lib/asn1c/ngap/NGAP_IndexToRFSP.c
index 81d17e7817..674c160ce9 100644
--- a/lib/asn1c/ngap/NGAP_IndexToRFSP.c
+++ b/lib/asn1c/ngap/NGAP_IndexToRFSP.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IndexToRFSP.h"
diff --git a/lib/asn1c/ngap/NGAP_IndexToRFSP.h b/lib/asn1c/ngap/NGAP_IndexToRFSP.h
index 135b771c32..705d3b696a 100644
--- a/lib/asn1c/ngap/NGAP_IndexToRFSP.h
+++ b/lib/asn1c/ngap/NGAP_IndexToRFSP.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IndexToRFSP_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_IndexToRFSP;
asn_struct_free_f NGAP_IndexToRFSP_free;
asn_struct_print_f NGAP_IndexToRFSP_print;
asn_constr_check_f NGAP_IndexToRFSP_constraint;
-jer_type_encoder_f NGAP_IndexToRFSP_encode_jer;
per_type_decoder_f NGAP_IndexToRFSP_decode_aper;
per_type_encoder_f NGAP_IndexToRFSP_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c b/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c
index eef8293b8d..50a1281e53 100644
--- a/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c
+++ b/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h"
diff --git a/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h b/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h
index 3a6289fcfa..4c8a204e6d 100644
--- a/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h
+++ b/lib/asn1c/ngap/NGAP_InfoOnRecommendedCellsAndRANNodesForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InfoOnRecommendedCellsAndRANNodesForPaging_H_
diff --git a/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.c b/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.c
index 75d5804c70..20af432216 100644
--- a/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.c
+++ b/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InitialContextSetupFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.h b/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.h
index 604e1f141e..de33a29f06 100644
--- a/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.h
+++ b/lib/asn1c/ngap/NGAP_InitialContextSetupFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InitialContextSetupFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.c b/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.c
index 001c153099..6d5fd0a119 100644
--- a/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.c
+++ b/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InitialContextSetupRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.h b/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.h
index 356fe62483..63a3e8d692 100644
--- a/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.h
+++ b/lib/asn1c/ngap/NGAP_InitialContextSetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InitialContextSetupRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.c b/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.c
index 445bbb236b..1046c4618f 100644
--- a/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.c
+++ b/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InitialContextSetupResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.h b/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.h
index 182095f980..597f94187f 100644
--- a/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.h
+++ b/lib/asn1c/ngap/NGAP_InitialContextSetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InitialContextSetupResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_InitialUEMessage.c b/lib/asn1c/ngap/NGAP_InitialUEMessage.c
index 256d6801d6..24593ff7f9 100644
--- a/lib/asn1c/ngap/NGAP_InitialUEMessage.c
+++ b/lib/asn1c/ngap/NGAP_InitialUEMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InitialUEMessage.h"
diff --git a/lib/asn1c/ngap/NGAP_InitialUEMessage.h b/lib/asn1c/ngap/NGAP_InitialUEMessage.h
index efd2bbf5a0..6fd9a4d0ca 100644
--- a/lib/asn1c/ngap/NGAP_InitialUEMessage.h
+++ b/lib/asn1c/ngap/NGAP_InitialUEMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InitialUEMessage_H_
diff --git a/lib/asn1c/ngap/NGAP_InitiatingMessage.c b/lib/asn1c/ngap/NGAP_InitiatingMessage.c
index 9ef07f6345..d620d6e60a 100644
--- a/lib/asn1c/ngap/NGAP_InitiatingMessage.c
+++ b/lib/asn1c/ngap/NGAP_InitiatingMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InitiatingMessage.h"
diff --git a/lib/asn1c/ngap/NGAP_InitiatingMessage.h b/lib/asn1c/ngap/NGAP_InitiatingMessage.h
index 8ba325ce44..838004a0d2 100644
--- a/lib/asn1c/ngap/NGAP_InitiatingMessage.h
+++ b/lib/asn1c/ngap/NGAP_InitiatingMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InitiatingMessage_H_
diff --git a/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.c b/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.c
index 4914defe9f..781329fa6e 100644
--- a/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.c
+++ b/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntegrityProtectionIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.h b/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.h
index acfae746f9..e77efd026f 100644
--- a/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.h
+++ b/lib/asn1c/ngap/NGAP_IntegrityProtectionIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntegrityProtectionIndication_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_IntegrityProtectionIndication_
asn_struct_free_f NGAP_IntegrityProtectionIndication_free;
asn_struct_print_f NGAP_IntegrityProtectionIndication_print;
asn_constr_check_f NGAP_IntegrityProtectionIndication_constraint;
-jer_type_encoder_f NGAP_IntegrityProtectionIndication_encode_jer;
per_type_decoder_f NGAP_IntegrityProtectionIndication_decode_aper;
per_type_encoder_f NGAP_IntegrityProtectionIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.c b/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.c
index 128a61a780..25350198a2 100644
--- a/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.c
+++ b/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntegrityProtectionResult.h"
diff --git a/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.h b/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.h
index e1891974f8..d22d0978ed 100644
--- a/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.h
+++ b/lib/asn1c/ngap/NGAP_IntegrityProtectionResult.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntegrityProtectionResult_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_IntegrityProtectionResult_spec
asn_struct_free_f NGAP_IntegrityProtectionResult_free;
asn_struct_print_f NGAP_IntegrityProtectionResult_print;
asn_constr_check_f NGAP_IntegrityProtectionResult_constraint;
-jer_type_encoder_f NGAP_IntegrityProtectionResult_encode_jer;
per_type_decoder_f NGAP_IntegrityProtectionResult_decode_aper;
per_type_encoder_f NGAP_IntegrityProtectionResult_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.c b/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.c
index 2a02e36444..7d4885bd21 100644
--- a/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.c
+++ b/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntendedNumberOfPagingAttempts.h"
diff --git a/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.h b/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.h
index 5f368903b2..b00c9a1f68 100644
--- a/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.h
+++ b/lib/asn1c/ngap/NGAP_IntendedNumberOfPagingAttempts.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntendedNumberOfPagingAttempts_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_IntendedNumberOfPagingAttempts;
asn_struct_free_f NGAP_IntendedNumberOfPagingAttempts_free;
asn_struct_print_f NGAP_IntendedNumberOfPagingAttempts_print;
asn_constr_check_f NGAP_IntendedNumberOfPagingAttempts_constraint;
-jer_type_encoder_f NGAP_IntendedNumberOfPagingAttempts_encode_jer;
per_type_decoder_f NGAP_IntendedNumberOfPagingAttempts_decode_aper;
per_type_encoder_f NGAP_IntendedNumberOfPagingAttempts_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.c b/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.c
index a63bd9947c..271b377143 100644
--- a/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.c
+++ b/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InterSystemFailureIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.h b/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.h
index d1fe894951..636ab0d41c 100644
--- a/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.h
+++ b/lib/asn1c/ngap/NGAP_InterSystemFailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InterSystemFailureIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_InterSystemHOReport.c b/lib/asn1c/ngap/NGAP_InterSystemHOReport.c
index df5e31a47c..d24fa3d0bb 100644
--- a/lib/asn1c/ngap/NGAP_InterSystemHOReport.c
+++ b/lib/asn1c/ngap/NGAP_InterSystemHOReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InterSystemHOReport.h"
diff --git a/lib/asn1c/ngap/NGAP_InterSystemHOReport.h b/lib/asn1c/ngap/NGAP_InterSystemHOReport.h
index 46ecf33840..397f086aae 100644
--- a/lib/asn1c/ngap/NGAP_InterSystemHOReport.h
+++ b/lib/asn1c/ngap/NGAP_InterSystemHOReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InterSystemHOReport_H_
diff --git a/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.c b/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.c
index 68b4c53138..50339c7232 100644
--- a/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.c
+++ b/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InterSystemHandoverReportType.h"
diff --git a/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.h b/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.h
index ab6650f29b..a82865eb21 100644
--- a/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.h
+++ b/lib/asn1c/ngap/NGAP_InterSystemHandoverReportType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InterSystemHandoverReportType_H_
diff --git a/lib/asn1c/ngap/NGAP_InterfacesToTrace.c b/lib/asn1c/ngap/NGAP_InterfacesToTrace.c
index 8be44725d3..0f288d12fb 100644
--- a/lib/asn1c/ngap/NGAP_InterfacesToTrace.c
+++ b/lib/asn1c/ngap/NGAP_InterfacesToTrace.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_InterfacesToTrace.h"
diff --git a/lib/asn1c/ngap/NGAP_InterfacesToTrace.h b/lib/asn1c/ngap/NGAP_InterfacesToTrace.h
index 13851beb96..1f6280e391 100644
--- a/lib/asn1c/ngap/NGAP_InterfacesToTrace.h
+++ b/lib/asn1c/ngap/NGAP_InterfacesToTrace.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_InterfacesToTrace_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_InterfacesToTrace;
asn_struct_free_f NGAP_InterfacesToTrace_free;
asn_struct_print_f NGAP_InterfacesToTrace_print;
asn_constr_check_f NGAP_InterfacesToTrace_constraint;
-jer_type_encoder_f NGAP_InterfacesToTrace_encode_jer;
per_type_decoder_f NGAP_InterfacesToTrace_decode_aper;
per_type_encoder_f NGAP_InterfacesToTrace_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.c b/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.c
index 00c41d4ec8..2cf9916518 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemCellActivationReply.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.h b/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.h
index b9da9ee489..0e39c5e3ed 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemCellActivationReply.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemCellActivationReply_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.c b/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.c
index 0344d7ab5d..2a108b09fe 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemCellActivationRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.h b/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.h
index 001c9fc245..5920d22c35 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemCellActivationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemCellActivationRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.c b/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.c
index 13a6b7fef8..8dcb2457c6 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemCellStateIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.h b/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.h
index 7788c9d959..e27c601e84 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemCellStateIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemCellStateIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.c b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.c
index 379ff9f7bf..0d3b3759c6 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemResourceStatusReply.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.h b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.h
index 85a77a965d..0ba4ce4ba1 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReply.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemResourceStatusReply_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.c b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.c
index dd4afbea69..461fc838f4 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemResourceStatusReport.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.h b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.h
index a726f3eeb5..65ea117b22 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemResourceStatusReport_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.c b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.c
index de15f408c7..239f62cd47 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemResourceStatusRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.h b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.h
index f6861a048b..8689dc9022 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceStatusRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemResourceStatusRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.c b/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.c
index 2b9e95de5f..bf38f5e867 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemResourceThreshold.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.h b/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.h
index ef4f343731..215d32e048 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemResourceThreshold.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemResourceThreshold_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_IntersystemResourceThreshold;
asn_struct_free_f NGAP_IntersystemResourceThreshold_free;
asn_struct_print_f NGAP_IntersystemResourceThreshold_print;
asn_constr_check_f NGAP_IntersystemResourceThreshold_constraint;
-jer_type_encoder_f NGAP_IntersystemResourceThreshold_encode_jer;
per_type_decoder_f NGAP_IntersystemResourceThreshold_decode_aper;
per_type_encoder_f NGAP_IntersystemResourceThreshold_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.c b/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.c
index 07223f5e93..215d131861 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONConfigurationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.h b/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.h
index 0fa2e0d65a..3763548953 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONConfigurationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformation.c b/lib/asn1c/ngap/NGAP_IntersystemSONInformation.c
index ad03ed4590..6626a55dab 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformation.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformation.h b/lib/asn1c/ngap/NGAP_IntersystemSONInformation.h
index b0e7c37db6..e6816b3c00 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformation.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.c b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.c
index d3b0902261..aefb55a4b3 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONInformationReply.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.h b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.h
index 835a379878..89ca6d30bb 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReply.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONInformationReply_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.c b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.c
index 85d4cd8f6d..418420dcd3 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONInformationReport.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.h b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.h
index a092e1d5e6..dc23cc3008 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformationReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONInformationReport_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.c b/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.c
index 77bec774d4..34c139715e 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONInformationRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.h b/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.h
index e29ecc7ae6..bce2f77b0f 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONInformationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONInformationRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.c b/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.c
index 639487ea05..c8068d61fb 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONNGRANnodeID.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.h b/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.h
index 80a604a8c2..303394eb89 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONNGRANnodeID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONNGRANnodeID_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.c b/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.c
index c300920759..5b025e5257 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONTransferType.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.h b/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.h
index b415ca2cfc..1257da6b56 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONTransferType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONTransferType_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.c b/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.c
index 30e97d96bc..a4bd6367e5 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemSONeNBID.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.h b/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.h
index a9844ed50a..95082f3ab8 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemSONeNBID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemSONeNBID_H_
diff --git a/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.c b/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.c
index eb186c4001..223db080bb 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.c
+++ b/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_IntersystemUnnecessaryHO.h"
diff --git a/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.h b/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.h
index 93f2571006..2149b70552 100644
--- a/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.h
+++ b/lib/asn1c/ngap/NGAP_IntersystemUnnecessaryHO.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_IntersystemUnnecessaryHO_H_
diff --git a/lib/asn1c/ngap/NGAP_LAC.c b/lib/asn1c/ngap/NGAP_LAC.c
index bbe34efb53..197d99dafc 100644
--- a/lib/asn1c/ngap/NGAP_LAC.c
+++ b/lib/asn1c/ngap/NGAP_LAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LAC.h"
diff --git a/lib/asn1c/ngap/NGAP_LAC.h b/lib/asn1c/ngap/NGAP_LAC.h
index 3efc47126a..d6c1c0cfc1 100644
--- a/lib/asn1c/ngap/NGAP_LAC.h
+++ b/lib/asn1c/ngap/NGAP_LAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_LAC;
asn_struct_free_f NGAP_LAC_free;
asn_struct_print_f NGAP_LAC_print;
asn_constr_check_f NGAP_LAC_constraint;
-jer_type_encoder_f NGAP_LAC_encode_jer;
per_type_decoder_f NGAP_LAC_decode_aper;
per_type_encoder_f NGAP_LAC_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LAI.c b/lib/asn1c/ngap/NGAP_LAI.c
index 5f8f323174..8f9586f6aa 100644
--- a/lib/asn1c/ngap/NGAP_LAI.c
+++ b/lib/asn1c/ngap/NGAP_LAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LAI.h"
diff --git a/lib/asn1c/ngap/NGAP_LAI.h b/lib/asn1c/ngap/NGAP_LAI.h
index 7989b4e85c..b016e73bbc 100644
--- a/lib/asn1c/ngap/NGAP_LAI.h
+++ b/lib/asn1c/ngap/NGAP_LAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LAI_H_
diff --git a/lib/asn1c/ngap/NGAP_LTEM-Indication.c b/lib/asn1c/ngap/NGAP_LTEM-Indication.c
index 7adebc0080..165f2ea23e 100644
--- a/lib/asn1c/ngap/NGAP_LTEM-Indication.c
+++ b/lib/asn1c/ngap/NGAP_LTEM-Indication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LTEM-Indication.h"
diff --git a/lib/asn1c/ngap/NGAP_LTEM-Indication.h b/lib/asn1c/ngap/NGAP_LTEM-Indication.h
index 971d4301ca..667ec09408 100644
--- a/lib/asn1c/ngap/NGAP_LTEM-Indication.h
+++ b/lib/asn1c/ngap/NGAP_LTEM-Indication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LTEM_Indication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_LTEM_Indication_specs_1;
asn_struct_free_f NGAP_LTEM_Indication_free;
asn_struct_print_f NGAP_LTEM_Indication_print;
asn_constr_check_f NGAP_LTEM_Indication_constraint;
-jer_type_encoder_f NGAP_LTEM_Indication_encode_jer;
per_type_decoder_f NGAP_LTEM_Indication_decode_aper;
per_type_encoder_f NGAP_LTEM_Indication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.c b/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.c
index ca2229b7ec..04bc3ad1b2 100644
--- a/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.c
+++ b/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LTEUERLFReportContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.h b/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.h
index 1307035be2..76c1258ae4 100644
--- a/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.h
+++ b/lib/asn1c/ngap/NGAP_LTEUERLFReportContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LTEUERLFReportContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_LTEUERLFReportContainer;
asn_struct_free_f NGAP_LTEUERLFReportContainer_free;
asn_struct_print_f NGAP_LTEUERLFReportContainer_print;
asn_constr_check_f NGAP_LTEUERLFReportContainer_constraint;
-jer_type_encoder_f NGAP_LTEUERLFReportContainer_encode_jer;
per_type_decoder_f NGAP_LTEUERLFReportContainer_decode_aper;
per_type_encoder_f NGAP_LTEUERLFReportContainer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.c b/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.c
index 75d8b0e312..8d7969dae1 100644
--- a/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.c
+++ b/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LTEUESidelinkAggregateMaximumBitrate.h"
diff --git a/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.h b/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.h
index 093f8ed369..c2c7078f1e 100644
--- a/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.h
+++ b/lib/asn1c/ngap/NGAP_LTEUESidelinkAggregateMaximumBitrate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LTEUESidelinkAggregateMaximumBitrate_H_
diff --git a/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.c b/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.c
index d31cf7a96f..20a6744876 100644
--- a/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.c
+++ b/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LTEV2XServicesAuthorized.h"
diff --git a/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.h b/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.h
index cfd6d22cea..f4ffdd7568 100644
--- a/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.h
+++ b/lib/asn1c/ngap/NGAP_LTEV2XServicesAuthorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LTEV2XServicesAuthorized_H_
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.c b/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.c
index 89fa271c8e..a456bd2e46 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedCellInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.h b/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.h
index 4c47c247f4..d98615a630 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedCellInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedCellItem.c b/lib/asn1c/ngap/NGAP_LastVisitedCellItem.c
index b47930dd7a..162ed13a63 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedCellItem.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedCellItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedCellItem.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedCellItem.h b/lib/asn1c/ngap/NGAP_LastVisitedCellItem.h
index 7d2f1a2cd1..21ef33d509 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedCellItem.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedCellItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedCellItem_H_
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.c b/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.c
index e3ed3e9b4f..d8b505fb8f 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedEUTRANCellInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.h b/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.h
index f1c038955d..9fd29a17f3 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedEUTRANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedEUTRANCellInformation_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_LastVisitedEUTRANCellInformation;
asn_struct_free_f NGAP_LastVisitedEUTRANCellInformation_free;
asn_struct_print_f NGAP_LastVisitedEUTRANCellInformation_print;
asn_constr_check_f NGAP_LastVisitedEUTRANCellInformation_constraint;
-jer_type_encoder_f NGAP_LastVisitedEUTRANCellInformation_encode_jer;
per_type_decoder_f NGAP_LastVisitedEUTRANCellInformation_decode_aper;
per_type_encoder_f NGAP_LastVisitedEUTRANCellInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.c b/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.c
index f44ea46ca1..f02df4aa9f 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedGERANCellInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.h b/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.h
index d38f730ba1..f176444def 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedGERANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedGERANCellInformation_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_LastVisitedGERANCellInformation;
asn_struct_free_f NGAP_LastVisitedGERANCellInformation_free;
asn_struct_print_f NGAP_LastVisitedGERANCellInformation_print;
asn_constr_check_f NGAP_LastVisitedGERANCellInformation_constraint;
-jer_type_encoder_f NGAP_LastVisitedGERANCellInformation_encode_jer;
per_type_decoder_f NGAP_LastVisitedGERANCellInformation_decode_aper;
per_type_encoder_f NGAP_LastVisitedGERANCellInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.c b/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.c
index c965b8d42b..766bdd67da 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedNGRANCellInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.h b/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.h
index 83eca25473..6a2d9ed196 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedNGRANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedNGRANCellInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.c b/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.c
index 4670eec412..a03efc1cf6 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedPSCellInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.h b/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.h
index 6b2f4eba4d..bbd67f55f7 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedPSCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedPSCellInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.c b/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.c
index eff6e40ea2..379741fd09 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedPSCellList.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.h b/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.h
index e731375fd3..f8a0990627 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedPSCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedPSCellList_H_
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.c b/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.c
index fec6d9f857..7b7877bc38 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.c
+++ b/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LastVisitedUTRANCellInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.h b/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.h
index a48a48dd95..4fbb01de75 100644
--- a/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.h
+++ b/lib/asn1c/ngap/NGAP_LastVisitedUTRANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LastVisitedUTRANCellInformation_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_LastVisitedUTRANCellInformation;
asn_struct_free_f NGAP_LastVisitedUTRANCellInformation_free;
asn_struct_print_f NGAP_LastVisitedUTRANCellInformation_print;
asn_constr_check_f NGAP_LastVisitedUTRANCellInformation_constraint;
-jer_type_encoder_f NGAP_LastVisitedUTRANCellInformation_encode_jer;
per_type_decoder_f NGAP_LastVisitedUTRANCellInformation_decode_aper;
per_type_encoder_f NGAP_LastVisitedUTRANCellInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LineType.c b/lib/asn1c/ngap/NGAP_LineType.c
index 12145bb62c..08bf46f5cc 100644
--- a/lib/asn1c/ngap/NGAP_LineType.c
+++ b/lib/asn1c/ngap/NGAP_LineType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LineType.h"
diff --git a/lib/asn1c/ngap/NGAP_LineType.h b/lib/asn1c/ngap/NGAP_LineType.h
index bede91f90a..45f2f4b762 100644
--- a/lib/asn1c/ngap/NGAP_LineType.h
+++ b/lib/asn1c/ngap/NGAP_LineType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LineType_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_LineType_specs_1;
asn_struct_free_f NGAP_LineType_free;
asn_struct_print_f NGAP_LineType_print;
asn_constr_check_f NGAP_LineType_constraint;
-jer_type_encoder_f NGAP_LineType_encode_jer;
per_type_decoder_f NGAP_LineType_decode_aper;
per_type_encoder_f NGAP_LineType_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Links-to-log.c b/lib/asn1c/ngap/NGAP_Links-to-log.c
index a40d4e8302..026f8470ea 100644
--- a/lib/asn1c/ngap/NGAP_Links-to-log.c
+++ b/lib/asn1c/ngap/NGAP_Links-to-log.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Links-to-log.h"
diff --git a/lib/asn1c/ngap/NGAP_Links-to-log.h b/lib/asn1c/ngap/NGAP_Links-to-log.h
index 8afb8683ec..0588ed7773 100644
--- a/lib/asn1c/ngap/NGAP_Links-to-log.h
+++ b/lib/asn1c/ngap/NGAP_Links-to-log.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Links_to_log_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Links_to_log_specs_1;
asn_struct_free_f NGAP_Links_to_log_free;
asn_struct_print_f NGAP_Links_to_log_print;
asn_constr_check_f NGAP_Links_to_log_constraint;
-jer_type_encoder_f NGAP_Links_to_log_encode_jer;
per_type_decoder_f NGAP_Links_to_log_decode_aper;
per_type_encoder_f NGAP_Links_to_log_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LocationReport.c b/lib/asn1c/ngap/NGAP_LocationReport.c
index d2abb64f3c..d0710ebded 100644
--- a/lib/asn1c/ngap/NGAP_LocationReport.c
+++ b/lib/asn1c/ngap/NGAP_LocationReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LocationReport.h"
diff --git a/lib/asn1c/ngap/NGAP_LocationReport.h b/lib/asn1c/ngap/NGAP_LocationReport.h
index 02cba4a854..dfe3043e56 100644
--- a/lib/asn1c/ngap/NGAP_LocationReport.h
+++ b/lib/asn1c/ngap/NGAP_LocationReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LocationReport_H_
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.c b/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.c
index 874c35ee2c..2d63f106aa 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.c
+++ b/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LocationReportingAdditionalInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.h b/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.h
index af8f35a2bd..ee20fc39e0 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.h
+++ b/lib/asn1c/ngap/NGAP_LocationReportingAdditionalInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LocationReportingAdditionalInfo_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_LocationReportingAdditionalInf
asn_struct_free_f NGAP_LocationReportingAdditionalInfo_free;
asn_struct_print_f NGAP_LocationReportingAdditionalInfo_print;
asn_constr_check_f NGAP_LocationReportingAdditionalInfo_constraint;
-jer_type_encoder_f NGAP_LocationReportingAdditionalInfo_encode_jer;
per_type_decoder_f NGAP_LocationReportingAdditionalInfo_decode_aper;
per_type_encoder_f NGAP_LocationReportingAdditionalInfo_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingControl.c b/lib/asn1c/ngap/NGAP_LocationReportingControl.c
index 3c5570805f..5cadb2bbb1 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingControl.c
+++ b/lib/asn1c/ngap/NGAP_LocationReportingControl.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LocationReportingControl.h"
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingControl.h b/lib/asn1c/ngap/NGAP_LocationReportingControl.h
index 6f701b3227..df423b7b93 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingControl.h
+++ b/lib/asn1c/ngap/NGAP_LocationReportingControl.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LocationReportingControl_H_
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.c b/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.c
index 9941ea4622..735b3936c1 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.c
+++ b/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LocationReportingFailureIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.h b/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.h
index 461d7347b5..c3e814b70e 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.h
+++ b/lib/asn1c/ngap/NGAP_LocationReportingFailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LocationReportingFailureIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.c b/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.c
index 74c16272f9..0293c10bca 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.c
+++ b/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LocationReportingReferenceID.h"
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.h b/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.h
index 11463c2b1f..aa58a5d6b0 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.h
+++ b/lib/asn1c/ngap/NGAP_LocationReportingReferenceID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LocationReportingReferenceID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_LocationReportingReferenceID;
asn_struct_free_f NGAP_LocationReportingReferenceID_free;
asn_struct_print_f NGAP_LocationReportingReferenceID_print;
asn_constr_check_f NGAP_LocationReportingReferenceID_constraint;
-jer_type_encoder_f NGAP_LocationReportingReferenceID_encode_jer;
per_type_decoder_f NGAP_LocationReportingReferenceID_decode_aper;
per_type_encoder_f NGAP_LocationReportingReferenceID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingRequestType.c b/lib/asn1c/ngap/NGAP_LocationReportingRequestType.c
index 71d92ef3d1..6c7dbbb952 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingRequestType.c
+++ b/lib/asn1c/ngap/NGAP_LocationReportingRequestType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LocationReportingRequestType.h"
diff --git a/lib/asn1c/ngap/NGAP_LocationReportingRequestType.h b/lib/asn1c/ngap/NGAP_LocationReportingRequestType.h
index 6be447a6c6..bf08246962 100644
--- a/lib/asn1c/ngap/NGAP_LocationReportingRequestType.h
+++ b/lib/asn1c/ngap/NGAP_LocationReportingRequestType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LocationReportingRequestType_H_
diff --git a/lib/asn1c/ngap/NGAP_LoggedMDTNr.c b/lib/asn1c/ngap/NGAP_LoggedMDTNr.c
index e3439de56b..7002978667 100644
--- a/lib/asn1c/ngap/NGAP_LoggedMDTNr.c
+++ b/lib/asn1c/ngap/NGAP_LoggedMDTNr.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LoggedMDTNr.h"
diff --git a/lib/asn1c/ngap/NGAP_LoggedMDTNr.h b/lib/asn1c/ngap/NGAP_LoggedMDTNr.h
index 234e850c49..a52913b588 100644
--- a/lib/asn1c/ngap/NGAP_LoggedMDTNr.h
+++ b/lib/asn1c/ngap/NGAP_LoggedMDTNr.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LoggedMDTNr_H_
diff --git a/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.c b/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.c
index d8f9467082..c3b5e0dc1d 100644
--- a/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.c
+++ b/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LoggedMDTTrigger.h"
diff --git a/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.h b/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.h
index a11a811908..a395c9bef4 100644
--- a/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.h
+++ b/lib/asn1c/ngap/NGAP_LoggedMDTTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LoggedMDTTrigger_H_
diff --git a/lib/asn1c/ngap/NGAP_LoggingDuration.c b/lib/asn1c/ngap/NGAP_LoggingDuration.c
index bf9b92e50b..85e1ed840e 100644
--- a/lib/asn1c/ngap/NGAP_LoggingDuration.c
+++ b/lib/asn1c/ngap/NGAP_LoggingDuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LoggingDuration.h"
diff --git a/lib/asn1c/ngap/NGAP_LoggingDuration.h b/lib/asn1c/ngap/NGAP_LoggingDuration.h
index fed4153c9a..f432c246be 100644
--- a/lib/asn1c/ngap/NGAP_LoggingDuration.h
+++ b/lib/asn1c/ngap/NGAP_LoggingDuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LoggingDuration_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_LoggingDuration_specs_1;
asn_struct_free_f NGAP_LoggingDuration_free;
asn_struct_print_f NGAP_LoggingDuration_print;
asn_constr_check_f NGAP_LoggingDuration_constraint;
-jer_type_encoder_f NGAP_LoggingDuration_encode_jer;
per_type_decoder_f NGAP_LoggingDuration_decode_aper;
per_type_encoder_f NGAP_LoggingDuration_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_LoggingInterval.c b/lib/asn1c/ngap/NGAP_LoggingInterval.c
index 1b0f55696c..6129abec9d 100644
--- a/lib/asn1c/ngap/NGAP_LoggingInterval.c
+++ b/lib/asn1c/ngap/NGAP_LoggingInterval.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_LoggingInterval.h"
diff --git a/lib/asn1c/ngap/NGAP_LoggingInterval.h b/lib/asn1c/ngap/NGAP_LoggingInterval.h
index 0b1cd42131..d5c58423c9 100644
--- a/lib/asn1c/ngap/NGAP_LoggingInterval.h
+++ b/lib/asn1c/ngap/NGAP_LoggingInterval.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_LoggingInterval_H_
@@ -46,7 +46,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_LoggingInterval_specs_1;
asn_struct_free_f NGAP_LoggingInterval_free;
asn_struct_print_f NGAP_LoggingInterval_print;
asn_constr_check_f NGAP_LoggingInterval_constraint;
-jer_type_encoder_f NGAP_LoggingInterval_encode_jer;
per_type_decoder_f NGAP_LoggingInterval_decode_aper;
per_type_encoder_f NGAP_LoggingInterval_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M1Configuration.c b/lib/asn1c/ngap/NGAP_M1Configuration.c
index 91fed92df0..9ae1d20e58 100644
--- a/lib/asn1c/ngap/NGAP_M1Configuration.c
+++ b/lib/asn1c/ngap/NGAP_M1Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M1Configuration.h"
diff --git a/lib/asn1c/ngap/NGAP_M1Configuration.h b/lib/asn1c/ngap/NGAP_M1Configuration.h
index ad8bcabdfd..9403ed0865 100644
--- a/lib/asn1c/ngap/NGAP_M1Configuration.h
+++ b/lib/asn1c/ngap/NGAP_M1Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M1Configuration_H_
diff --git a/lib/asn1c/ngap/NGAP_M1PeriodicReporting.c b/lib/asn1c/ngap/NGAP_M1PeriodicReporting.c
index 3048114002..bdb57d6a35 100644
--- a/lib/asn1c/ngap/NGAP_M1PeriodicReporting.c
+++ b/lib/asn1c/ngap/NGAP_M1PeriodicReporting.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M1PeriodicReporting.h"
diff --git a/lib/asn1c/ngap/NGAP_M1PeriodicReporting.h b/lib/asn1c/ngap/NGAP_M1PeriodicReporting.h
index 0a7ea4edf8..8ea51f7ed6 100644
--- a/lib/asn1c/ngap/NGAP_M1PeriodicReporting.h
+++ b/lib/asn1c/ngap/NGAP_M1PeriodicReporting.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M1PeriodicReporting_H_
diff --git a/lib/asn1c/ngap/NGAP_M1ReportingTrigger.c b/lib/asn1c/ngap/NGAP_M1ReportingTrigger.c
index 751de64a47..93562140f9 100644
--- a/lib/asn1c/ngap/NGAP_M1ReportingTrigger.c
+++ b/lib/asn1c/ngap/NGAP_M1ReportingTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M1ReportingTrigger.h"
diff --git a/lib/asn1c/ngap/NGAP_M1ReportingTrigger.h b/lib/asn1c/ngap/NGAP_M1ReportingTrigger.h
index d5a95ecd09..d854164f62 100644
--- a/lib/asn1c/ngap/NGAP_M1ReportingTrigger.h
+++ b/lib/asn1c/ngap/NGAP_M1ReportingTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M1ReportingTrigger_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M1ReportingTrigger_specs_1;
asn_struct_free_f NGAP_M1ReportingTrigger_free;
asn_struct_print_f NGAP_M1ReportingTrigger_print;
asn_constr_check_f NGAP_M1ReportingTrigger_constraint;
-jer_type_encoder_f NGAP_M1ReportingTrigger_encode_jer;
per_type_decoder_f NGAP_M1ReportingTrigger_decode_aper;
per_type_encoder_f NGAP_M1ReportingTrigger_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.c b/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.c
index a1f1b42597..30aa12f4d3 100644
--- a/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.c
+++ b/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M1ThresholdEventA2.h"
diff --git a/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.h b/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.h
index 8d9bd75d8e..488cf31655 100644
--- a/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.h
+++ b/lib/asn1c/ngap/NGAP_M1ThresholdEventA2.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M1ThresholdEventA2_H_
diff --git a/lib/asn1c/ngap/NGAP_M1ThresholdType.c b/lib/asn1c/ngap/NGAP_M1ThresholdType.c
index b2e9c6a244..0c3a717ecd 100644
--- a/lib/asn1c/ngap/NGAP_M1ThresholdType.c
+++ b/lib/asn1c/ngap/NGAP_M1ThresholdType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M1ThresholdType.h"
diff --git a/lib/asn1c/ngap/NGAP_M1ThresholdType.h b/lib/asn1c/ngap/NGAP_M1ThresholdType.h
index b5d3a4f8c7..8f0500398f 100644
--- a/lib/asn1c/ngap/NGAP_M1ThresholdType.h
+++ b/lib/asn1c/ngap/NGAP_M1ThresholdType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M1ThresholdType_H_
diff --git a/lib/asn1c/ngap/NGAP_M4Configuration.c b/lib/asn1c/ngap/NGAP_M4Configuration.c
index 698c1733c7..e90bee60b2 100644
--- a/lib/asn1c/ngap/NGAP_M4Configuration.c
+++ b/lib/asn1c/ngap/NGAP_M4Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M4Configuration.h"
diff --git a/lib/asn1c/ngap/NGAP_M4Configuration.h b/lib/asn1c/ngap/NGAP_M4Configuration.h
index 4cfff72597..d41c76a713 100644
--- a/lib/asn1c/ngap/NGAP_M4Configuration.h
+++ b/lib/asn1c/ngap/NGAP_M4Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M4Configuration_H_
diff --git a/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.c b/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.c
index fc6c5c089f..cc9482f6de 100644
--- a/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.c
+++ b/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M4ReportAmountMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.h b/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.h
index 93ed809c9e..1b58b2c934 100644
--- a/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.h
+++ b/lib/asn1c/ngap/NGAP_M4ReportAmountMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M4ReportAmountMDT_H_
@@ -43,7 +43,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M4ReportAmountMDT_specs_1;
asn_struct_free_f NGAP_M4ReportAmountMDT_free;
asn_struct_print_f NGAP_M4ReportAmountMDT_print;
asn_constr_check_f NGAP_M4ReportAmountMDT_constraint;
-jer_type_encoder_f NGAP_M4ReportAmountMDT_encode_jer;
per_type_decoder_f NGAP_M4ReportAmountMDT_decode_aper;
per_type_encoder_f NGAP_M4ReportAmountMDT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M4period.c b/lib/asn1c/ngap/NGAP_M4period.c
index c64eb7cc7c..ba87d29275 100644
--- a/lib/asn1c/ngap/NGAP_M4period.c
+++ b/lib/asn1c/ngap/NGAP_M4period.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M4period.h"
diff --git a/lib/asn1c/ngap/NGAP_M4period.h b/lib/asn1c/ngap/NGAP_M4period.h
index b6ef85161c..5ce24c133e 100644
--- a/lib/asn1c/ngap/NGAP_M4period.h
+++ b/lib/asn1c/ngap/NGAP_M4period.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M4period_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M4period_specs_1;
asn_struct_free_f NGAP_M4period_free;
asn_struct_print_f NGAP_M4period_print;
asn_constr_check_f NGAP_M4period_constraint;
-jer_type_encoder_f NGAP_M4period_encode_jer;
per_type_decoder_f NGAP_M4period_decode_aper;
per_type_encoder_f NGAP_M4period_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M5Configuration.c b/lib/asn1c/ngap/NGAP_M5Configuration.c
index d86de42777..ef9b44a43b 100644
--- a/lib/asn1c/ngap/NGAP_M5Configuration.c
+++ b/lib/asn1c/ngap/NGAP_M5Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M5Configuration.h"
diff --git a/lib/asn1c/ngap/NGAP_M5Configuration.h b/lib/asn1c/ngap/NGAP_M5Configuration.h
index 495ed1d1af..d00b15491b 100644
--- a/lib/asn1c/ngap/NGAP_M5Configuration.h
+++ b/lib/asn1c/ngap/NGAP_M5Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M5Configuration_H_
diff --git a/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.c b/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.c
index f620fab99c..870b4840c3 100644
--- a/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.c
+++ b/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M5ReportAmountMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.h b/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.h
index 8594b14d2f..d0a7246ffa 100644
--- a/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.h
+++ b/lib/asn1c/ngap/NGAP_M5ReportAmountMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M5ReportAmountMDT_H_
@@ -43,7 +43,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M5ReportAmountMDT_specs_1;
asn_struct_free_f NGAP_M5ReportAmountMDT_free;
asn_struct_print_f NGAP_M5ReportAmountMDT_print;
asn_constr_check_f NGAP_M5ReportAmountMDT_constraint;
-jer_type_encoder_f NGAP_M5ReportAmountMDT_encode_jer;
per_type_decoder_f NGAP_M5ReportAmountMDT_decode_aper;
per_type_encoder_f NGAP_M5ReportAmountMDT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M5period.c b/lib/asn1c/ngap/NGAP_M5period.c
index 9a8bfce3b5..465ea88717 100644
--- a/lib/asn1c/ngap/NGAP_M5period.c
+++ b/lib/asn1c/ngap/NGAP_M5period.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M5period.h"
diff --git a/lib/asn1c/ngap/NGAP_M5period.h b/lib/asn1c/ngap/NGAP_M5period.h
index d94e1c4414..29803458be 100644
--- a/lib/asn1c/ngap/NGAP_M5period.h
+++ b/lib/asn1c/ngap/NGAP_M5period.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M5period_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M5period_specs_1;
asn_struct_free_f NGAP_M5period_free;
asn_struct_print_f NGAP_M5period_print;
asn_constr_check_f NGAP_M5period_constraint;
-jer_type_encoder_f NGAP_M5period_encode_jer;
per_type_decoder_f NGAP_M5period_decode_aper;
per_type_encoder_f NGAP_M5period_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M6Configuration.c b/lib/asn1c/ngap/NGAP_M6Configuration.c
index e1fc94dd47..ce125ca27e 100644
--- a/lib/asn1c/ngap/NGAP_M6Configuration.c
+++ b/lib/asn1c/ngap/NGAP_M6Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M6Configuration.h"
diff --git a/lib/asn1c/ngap/NGAP_M6Configuration.h b/lib/asn1c/ngap/NGAP_M6Configuration.h
index bf4e332f2d..35488bec14 100644
--- a/lib/asn1c/ngap/NGAP_M6Configuration.h
+++ b/lib/asn1c/ngap/NGAP_M6Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M6Configuration_H_
diff --git a/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.c b/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.c
index 4019b8e6d1..fab8f523de 100644
--- a/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.c
+++ b/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M6ReportAmountMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.h b/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.h
index 3fd0d85ce4..4e632ed894 100644
--- a/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.h
+++ b/lib/asn1c/ngap/NGAP_M6ReportAmountMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M6ReportAmountMDT_H_
@@ -43,7 +43,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M6ReportAmountMDT_specs_1;
asn_struct_free_f NGAP_M6ReportAmountMDT_free;
asn_struct_print_f NGAP_M6ReportAmountMDT_print;
asn_constr_check_f NGAP_M6ReportAmountMDT_constraint;
-jer_type_encoder_f NGAP_M6ReportAmountMDT_encode_jer;
per_type_decoder_f NGAP_M6ReportAmountMDT_decode_aper;
per_type_encoder_f NGAP_M6ReportAmountMDT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M6report-Interval.c b/lib/asn1c/ngap/NGAP_M6report-Interval.c
index f4b7ee4c1d..de4f0dbbef 100644
--- a/lib/asn1c/ngap/NGAP_M6report-Interval.c
+++ b/lib/asn1c/ngap/NGAP_M6report-Interval.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M6report-Interval.h"
diff --git a/lib/asn1c/ngap/NGAP_M6report-Interval.h b/lib/asn1c/ngap/NGAP_M6report-Interval.h
index e76bd269b3..27f7515868 100644
--- a/lib/asn1c/ngap/NGAP_M6report-Interval.h
+++ b/lib/asn1c/ngap/NGAP_M6report-Interval.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M6report_Interval_H_
@@ -49,7 +49,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M6report_Interval_specs_1;
asn_struct_free_f NGAP_M6report_Interval_free;
asn_struct_print_f NGAP_M6report_Interval_print;
asn_constr_check_f NGAP_M6report_Interval_constraint;
-jer_type_encoder_f NGAP_M6report_Interval_encode_jer;
per_type_decoder_f NGAP_M6report_Interval_decode_aper;
per_type_encoder_f NGAP_M6report_Interval_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M7Configuration.c b/lib/asn1c/ngap/NGAP_M7Configuration.c
index 8576bbe9e1..da4cbacfa5 100644
--- a/lib/asn1c/ngap/NGAP_M7Configuration.c
+++ b/lib/asn1c/ngap/NGAP_M7Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M7Configuration.h"
diff --git a/lib/asn1c/ngap/NGAP_M7Configuration.h b/lib/asn1c/ngap/NGAP_M7Configuration.h
index a92cad20f8..e62567ef62 100644
--- a/lib/asn1c/ngap/NGAP_M7Configuration.h
+++ b/lib/asn1c/ngap/NGAP_M7Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M7Configuration_H_
diff --git a/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.c b/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.c
index 4290ba42aa..0bc1dc824b 100644
--- a/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.c
+++ b/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M7ReportAmountMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.h b/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.h
index 334aeba35c..5a44df2a4e 100644
--- a/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.h
+++ b/lib/asn1c/ngap/NGAP_M7ReportAmountMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M7ReportAmountMDT_H_
@@ -43,7 +43,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_M7ReportAmountMDT_specs_1;
asn_struct_free_f NGAP_M7ReportAmountMDT_free;
asn_struct_print_f NGAP_M7ReportAmountMDT_print;
asn_constr_check_f NGAP_M7ReportAmountMDT_constraint;
-jer_type_encoder_f NGAP_M7ReportAmountMDT_encode_jer;
per_type_decoder_f NGAP_M7ReportAmountMDT_decode_aper;
per_type_encoder_f NGAP_M7ReportAmountMDT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_M7period.c b/lib/asn1c/ngap/NGAP_M7period.c
index be92a89459..0c7b30555f 100644
--- a/lib/asn1c/ngap/NGAP_M7period.c
+++ b/lib/asn1c/ngap/NGAP_M7period.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_M7period.h"
diff --git a/lib/asn1c/ngap/NGAP_M7period.h b/lib/asn1c/ngap/NGAP_M7period.h
index e4ba184203..b849f790bd 100644
--- a/lib/asn1c/ngap/NGAP_M7period.h
+++ b/lib/asn1c/ngap/NGAP_M7period.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_M7period_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_M7period;
asn_struct_free_f NGAP_M7period_free;
asn_struct_print_f NGAP_M7period_print;
asn_constr_check_f NGAP_M7period_constraint;
-jer_type_encoder_f NGAP_M7period_encode_jer;
per_type_decoder_f NGAP_M7period_decode_aper;
per_type_encoder_f NGAP_M7period_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c
index ec8ea83a2d..fbdcece7fb 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h
index 9684b67260..40b58e3877 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ActiveSessionInformation_SourcetoTargetItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c
index fb458da153..7ece5ea3fb 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h
index 69129e64bd..257aa4ece2 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-SourcetoTargetList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ActiveSessionInformation_SourcetoTargetList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c
index f63c76dda2..ccffff0521 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h
index f83ea4c346..4a1486b273 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ActiveSessionInformation_TargettoSourceItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c
index 70ae3c46ec..26c1d4ac09 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h
index 1b2c734f2a..411ef09318 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ActiveSessionInformation-TargettoSourceList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ActiveSessionInformation_TargettoSourceList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.c b/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.c
index 3246d58b7a..8ada331c23 100644
--- a/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.c
+++ b/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-AreaSessionID.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.h b/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.h
index 72abe7fb90..9b7b3a5dc1 100644
--- a/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.h
+++ b/lib/asn1c/ngap/NGAP_MBS-AreaSessionID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_AreaSessionID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MBS_AreaSessionID;
asn_struct_free_f NGAP_MBS_AreaSessionID_free;
asn_struct_print_f NGAP_MBS_AreaSessionID_print;
asn_constr_check_f NGAP_MBS_AreaSessionID_constraint;
-jer_type_encoder_f NGAP_MBS_AreaSessionID_encode_jer;
per_type_decoder_f NGAP_MBS_AreaSessionID_decode_aper;
per_type_encoder_f NGAP_MBS_AreaSessionID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.c b/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.c
index 7c24954d87..b68e7cc88f 100644
--- a/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-AreaTAIList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.h b/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.h
index f1cb8f664f..a8e00a7dca 100644
--- a/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-AreaTAIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_AreaTAIList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.c b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.c
index fb0090da29..0add649410 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-DataForwardingResponseMRBItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.h b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.h
index 476d418d9e..e44ab56fc1 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_DataForwardingResponseMRBItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.c b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.c
index f8799f43c5..89c4f97de5 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-DataForwardingResponseMRBList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.h b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.h
index c67c165e00..07e367ab62 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-DataForwardingResponseMRBList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_DataForwardingResponseMRBList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.c b/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.c
index 381d9634db..2843430d1b 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-DistributionReleaseRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.h b/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.h
index 0b8d7f4736..03c94faa99 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionReleaseRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_DistributionReleaseRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.c b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.c
index a11377f62f..141dd68f47 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-DistributionSetupRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.h b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.h
index 7c2d154ec2..416fc37960 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_DistributionSetupRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.c b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.c
index f9c7e9842f..3bd05d88fb 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-DistributionSetupResponseTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.h b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.h
index 8269f1d0d6..5ebf31eee7 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupResponseTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_DistributionSetupResponseTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c
index ba249e5698..1633a15614 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h
index 6b916fce3f..c9bca5dc2e 100644
--- a/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBS-DistributionSetupUnsuccessfulTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_DistributionSetupUnsuccessfulTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.c b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.c
index 056ddeb865..7a3eef878e 100644
--- a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-MappingandDataForwardingRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.h b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.h
index 48b8f81bea..7cce4906f8 100644
--- a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_MappingandDataForwardingRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.c b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.c
index 87707fe8be..d46057f504 100644
--- a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-MappingandDataForwardingRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.h b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.h
index f77bfeb64c..6b27a29360 100644
--- a/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-MappingandDataForwardingRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_MappingandDataForwardingRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.c b/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.c
index eaf32333ba..3579391b35 100644
--- a/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-QoSFlowList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.h b/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.h
index 041e4a899e..345a5c22fe 100644
--- a/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-QoSFlowList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_QoSFlowList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.c b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.c
index c9c2807cf4..2daafcb621 100644
--- a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-QoSFlowsToBeSetupItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.h b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.h
index 98cdf7d244..9e7cd13dee 100644
--- a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_QoSFlowsToBeSetupItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.c b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.c
index e3779da3ce..282e022bf2 100644
--- a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-QoSFlowsToBeSetupList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.h b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.h
index 3555ad5af8..bdbb7bd69d 100644
--- a/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-QoSFlowsToBeSetupList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_QoSFlowsToBeSetupList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceArea.c b/lib/asn1c/ngap/NGAP_MBS-ServiceArea.c
index 5b52a0d300..115e26cdca 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceArea.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceArea.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ServiceArea.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceArea.h b/lib/asn1c/ngap/NGAP_MBS-ServiceArea.h
index 6d3fdec3d1..5aadb909c7 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceArea.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceArea.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ServiceArea_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.c b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.c
index e56a8a4183..b377839ab4 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ServiceAreaCellList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.h b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.h
index ebdcdd31e9..9ca0ef6793 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ServiceAreaCellList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.c b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.c
index e2fee39586..a5ca54fd89 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ServiceAreaInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.h b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.h
index a8dfda4ac2..18f0e0fe55 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ServiceAreaInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.c b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.c
index 5ccb342986..cc14d7ea96 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ServiceAreaInformationItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.h b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.h
index 5eb58504d1..22e6b1603d 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ServiceAreaInformationItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.c b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.c
index d8dfa1a78e..dcb8650564 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ServiceAreaInformationList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.h b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.h
index b186702887..1be7762f57 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaInformationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ServiceAreaInformationList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.c b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.c
index f6c832d9fa..97b0451867 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-ServiceAreaTAIList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.h b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.h
index fe3d3f0e3a..d37e1f7266 100644
--- a/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-ServiceAreaTAIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_ServiceAreaTAIList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.c b/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.c
index 2e3e9b048e..d8b7dab40f 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionFSAID.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.h b/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.h
index bb37e4a580..1335509e4b 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionFSAID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionFSAID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MBS_SessionFSAID;
asn_struct_free_f NGAP_MBS_SessionFSAID_free;
asn_struct_print_f NGAP_MBS_SessionFSAID_print;
asn_constr_check_f NGAP_MBS_SessionFSAID_constraint;
-jer_type_encoder_f NGAP_MBS_SessionFSAID_encode_jer;
per_type_decoder_f NGAP_MBS_SessionFSAID_decode_aper;
per_type_encoder_f NGAP_MBS_SessionFSAID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.c b/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.c
index 72158ef054..5fa555d02c 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionFSAIDList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.h b/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.h
index 2bf4c20a60..9ca6552f98 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionFSAIDList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionFSAIDList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionID.c b/lib/asn1c/ngap/NGAP_MBS-SessionID.c
index 12e265e16b..2738ca4fe4 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionID.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionID.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionID.h b/lib/asn1c/ngap/NGAP_MBS-SessionID.h
index 4ddda78897..8804104b31 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionID.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionID_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.c b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.c
index 3843088b2a..31f53dc2f9 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionTNLInfo5GC.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.h b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.h
index 829ed1772a..6d4e3c66c5 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionTNLInfo5GC_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.c b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.c
index 5dd0b8c623..fd25cdc67f 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionTNLInfo5GCItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.h b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.h
index 407e6e93f3..13ae09ee5d 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionTNLInfo5GCItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.c b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.c
index db176da4c7..6572112228 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionTNLInfo5GCList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.h b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.h
index e4b6fa0423..23a9aa1aac 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfo5GCList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionTNLInfo5GCList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.c b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.c
index 8091e725be..f5affec394 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionTNLInfoNGRAN.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.h b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.h
index dd00428f54..af9fe73ed7 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRAN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionTNLInfoNGRAN_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.c b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.c
index 5aa982d298..414eab3ecf 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionTNLInfoNGRANItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.h b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.h
index d10804d0bc..fd78fc80df 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionTNLInfoNGRANItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.c b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.c
index a07e2e5b04..4271c7d817 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SessionTNLInfoNGRANList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.h b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.h
index d83b25fe1e..ba7820b1f8 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SessionTNLInfoNGRANList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SessionTNLInfoNGRANList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.c b/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.c
index 54872bd5b0..e596a1fc13 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.c
+++ b/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBS-SupportIndicator.h"
diff --git a/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.h b/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.h
index 2386b747b7..ae66cbb7f5 100644
--- a/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.h
+++ b/lib/asn1c/ngap/NGAP_MBS-SupportIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBS_SupportIndicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_MBS_SupportIndicator_specs_1;
asn_struct_free_f NGAP_MBS_SupportIndicator_free;
asn_struct_print_f NGAP_MBS_SupportIndicator_print;
asn_constr_check_f NGAP_MBS_SupportIndicator_constraint;
-jer_type_encoder_f NGAP_MBS_SupportIndicator_encode_jer;
per_type_decoder_f NGAP_MBS_SupportIndicator_decode_aper;
per_type_encoder_f NGAP_MBS_SupportIndicator_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.c b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.c
index 454b4a2f0c..b644dd6493 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionFailedtoSetupItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.h b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.h
index 090ab94e80..00d484e69d 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionFailedtoSetupItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.c b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.c
index 8682737775..f058be305a 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionFailedtoSetupList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.h b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.h
index fd849c1ffb..b484ee76e3 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionFailedtoSetupList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionFailedtoSetupList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.c b/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.c
index 2c799f09d4..4ce87ae0b8 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionReleaseResponseTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.h b/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.h
index cda6696d2e..0e414bb138 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionReleaseResponseTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionReleaseResponseTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.c b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.c
index 0a7df02338..26cdc4dd69 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetupOrModFailureTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.h b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.h
index e1e6405045..f167bb4c39 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModFailureTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetupOrModFailureTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.c b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.c
index dd0dfb3e8b..5af62f99e8 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetupOrModRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.h b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.h
index aa127493c5..5b3c3807e1 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetupOrModRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.c b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.c
index 4c9eab9518..9e0868e10d 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetupOrModResponseTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.h b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.h
index 65eb697715..27099da42d 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupOrModResponseTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetupOrModResponseTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.c b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.c
index 046fd2435f..e378a24fb5 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetupRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.h b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.h
index c7fa7339d2..3dcdfffdc0 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetupRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.c b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.c
index 424afdb527..83f706db0b 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetupRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.h b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.h
index 72bccedb87..ed1dff8854 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetupRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.c b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.c
index acd5edc414..12e72b5a08 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetupResponseItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.h b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.h
index eb5a3ec334..d3516387c7 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetupResponseItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.c b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.c
index 07cbb2cccc..0ed5ac3a5a 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetupResponseList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.h b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.h
index ef9e99f29f..e473261a84 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetupResponseList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetupResponseList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.c b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.c
index fe8c8c2d73..356ce4d342 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetuporModifyRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.h b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.h
index 1710020098..b1f4a226bc 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetuporModifyRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.c b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.c
index 983412575c..4968e96165 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionSetuporModifyRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.h b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.h
index 54b06c53bc..c31f6ab350 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionSetuporModifyRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionSetuporModifyRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionStatus.c b/lib/asn1c/ngap/NGAP_MBSSessionStatus.c
index c494b76935..5d68e81198 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionStatus.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionStatus.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionStatus.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionStatus.h b/lib/asn1c/ngap/NGAP_MBSSessionStatus.h
index 558493efe7..815d32add6 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionStatus.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionStatus.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionStatus_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_MBSSessionStatus_specs_1;
asn_struct_free_f NGAP_MBSSessionStatus_free;
asn_struct_print_f NGAP_MBSSessionStatus_print;
asn_constr_check_f NGAP_MBSSessionStatus_constraint;
-jer_type_encoder_f NGAP_MBSSessionStatus_encode_jer;
per_type_decoder_f NGAP_MBSSessionStatus_decode_aper;
per_type_encoder_f NGAP_MBSSessionStatus_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.c b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.c
index 850ac1d61a..09f952841f 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionToReleaseItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.h b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.h
index 3922536217..94fa886a7c 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionToReleaseItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.c b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.c
index 365c44cf61..b738bc4259 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.c
+++ b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MBSSessionToReleaseList.h"
diff --git a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.h b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.h
index ace7907b71..0c0ea4505c 100644
--- a/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.h
+++ b/lib/asn1c/ngap/NGAP_MBSSessionToReleaseList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MBSSessionToReleaseList_H_
diff --git a/lib/asn1c/ngap/NGAP_MDT-Activation.c b/lib/asn1c/ngap/NGAP_MDT-Activation.c
index a449e94725..4e3344a23c 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Activation.c
+++ b/lib/asn1c/ngap/NGAP_MDT-Activation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDT-Activation.h"
diff --git a/lib/asn1c/ngap/NGAP_MDT-Activation.h b/lib/asn1c/ngap/NGAP_MDT-Activation.h
index 6ca783b1a1..ca2d1a398a 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Activation.h
+++ b/lib/asn1c/ngap/NGAP_MDT-Activation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDT_Activation_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_MDT_Activation_specs_1;
asn_struct_free_f NGAP_MDT_Activation_free;
asn_struct_print_f NGAP_MDT_Activation_print;
asn_constr_check_f NGAP_MDT_Activation_constraint;
-jer_type_encoder_f NGAP_MDT_Activation_encode_jer;
per_type_decoder_f NGAP_MDT_Activation_decode_aper;
per_type_encoder_f NGAP_MDT_Activation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.c b/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.c
index 876683c681..3c0e598acc 100644
--- a/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.c
+++ b/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDT-AlignmentInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.h b/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.h
index 4b5de56c23..5b9fb8c77e 100644
--- a/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.h
+++ b/lib/asn1c/ngap/NGAP_MDT-AlignmentInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDT_AlignmentInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.c b/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.c
index 2919a98e4b..5daa5dd488 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.c
+++ b/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDT-Configuration-EUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.h b/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.h
index aa6d94498a..375a22ab84 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.h
+++ b/lib/asn1c/ngap/NGAP_MDT-Configuration-EUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDT_Configuration_EUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.c b/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.c
index 528ae763aa..d0d7c497cb 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.c
+++ b/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDT-Configuration-NR.h"
diff --git a/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.h b/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.h
index 22eaaa23c0..6f02d296df 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.h
+++ b/lib/asn1c/ngap/NGAP_MDT-Configuration-NR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDT_Configuration_NR_H_
diff --git a/lib/asn1c/ngap/NGAP_MDT-Configuration.c b/lib/asn1c/ngap/NGAP_MDT-Configuration.c
index 66dedb8a2b..0013aa7f99 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Configuration.c
+++ b/lib/asn1c/ngap/NGAP_MDT-Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDT-Configuration.h"
diff --git a/lib/asn1c/ngap/NGAP_MDT-Configuration.h b/lib/asn1c/ngap/NGAP_MDT-Configuration.h
index b5ef9c5334..316956e37e 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Configuration.h
+++ b/lib/asn1c/ngap/NGAP_MDT-Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDT_Configuration_H_
diff --git a/lib/asn1c/ngap/NGAP_MDT-Location-Info.c b/lib/asn1c/ngap/NGAP_MDT-Location-Info.c
index 4f668a78d4..9bb3c9cf72 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Location-Info.c
+++ b/lib/asn1c/ngap/NGAP_MDT-Location-Info.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDT-Location-Info.h"
diff --git a/lib/asn1c/ngap/NGAP_MDT-Location-Info.h b/lib/asn1c/ngap/NGAP_MDT-Location-Info.h
index 0407048c0f..f45315bb75 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Location-Info.h
+++ b/lib/asn1c/ngap/NGAP_MDT-Location-Info.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDT_Location_Info_H_
diff --git a/lib/asn1c/ngap/NGAP_MDT-Location-Information.c b/lib/asn1c/ngap/NGAP_MDT-Location-Information.c
index 1c9cba1615..6ce80b3281 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Location-Information.c
+++ b/lib/asn1c/ngap/NGAP_MDT-Location-Information.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDT-Location-Information.h"
diff --git a/lib/asn1c/ngap/NGAP_MDT-Location-Information.h b/lib/asn1c/ngap/NGAP_MDT-Location-Information.h
index f2fc74e2c0..e0b31b57d9 100644
--- a/lib/asn1c/ngap/NGAP_MDT-Location-Information.h
+++ b/lib/asn1c/ngap/NGAP_MDT-Location-Information.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDT_Location_Information_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MDT_Location_Information;
asn_struct_free_f NGAP_MDT_Location_Information_free;
asn_struct_print_f NGAP_MDT_Location_Information_print;
asn_constr_check_f NGAP_MDT_Location_Information_constraint;
-jer_type_encoder_f NGAP_MDT_Location_Information_encode_jer;
per_type_decoder_f NGAP_MDT_Location_Information_decode_aper;
per_type_encoder_f NGAP_MDT_Location_Information_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MDTModeEutra.c b/lib/asn1c/ngap/NGAP_MDTModeEutra.c
index 0c2861d3b7..fcdbc46e53 100644
--- a/lib/asn1c/ngap/NGAP_MDTModeEutra.c
+++ b/lib/asn1c/ngap/NGAP_MDTModeEutra.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDTModeEutra.h"
diff --git a/lib/asn1c/ngap/NGAP_MDTModeEutra.h b/lib/asn1c/ngap/NGAP_MDTModeEutra.h
index 0fbcd21348..46ae1acd38 100644
--- a/lib/asn1c/ngap/NGAP_MDTModeEutra.h
+++ b/lib/asn1c/ngap/NGAP_MDTModeEutra.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDTModeEutra_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MDTModeEutra;
asn_struct_free_f NGAP_MDTModeEutra_free;
asn_struct_print_f NGAP_MDTModeEutra_print;
asn_constr_check_f NGAP_MDTModeEutra_constraint;
-jer_type_encoder_f NGAP_MDTModeEutra_encode_jer;
per_type_decoder_f NGAP_MDTModeEutra_decode_aper;
per_type_encoder_f NGAP_MDTModeEutra_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MDTModeNr.c b/lib/asn1c/ngap/NGAP_MDTModeNr.c
index f66e43a4d3..d1cbd06ada 100644
--- a/lib/asn1c/ngap/NGAP_MDTModeNr.c
+++ b/lib/asn1c/ngap/NGAP_MDTModeNr.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDTModeNr.h"
diff --git a/lib/asn1c/ngap/NGAP_MDTModeNr.h b/lib/asn1c/ngap/NGAP_MDTModeNr.h
index 8f40f21645..e94516078d 100644
--- a/lib/asn1c/ngap/NGAP_MDTModeNr.h
+++ b/lib/asn1c/ngap/NGAP_MDTModeNr.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDTModeNr_H_
diff --git a/lib/asn1c/ngap/NGAP_MDTPLMNList.c b/lib/asn1c/ngap/NGAP_MDTPLMNList.c
index 9cd0dc4f96..4ae532d9f8 100644
--- a/lib/asn1c/ngap/NGAP_MDTPLMNList.c
+++ b/lib/asn1c/ngap/NGAP_MDTPLMNList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDTPLMNList.h"
diff --git a/lib/asn1c/ngap/NGAP_MDTPLMNList.h b/lib/asn1c/ngap/NGAP_MDTPLMNList.h
index c3d18700e0..f97cd73060 100644
--- a/lib/asn1c/ngap/NGAP_MDTPLMNList.h
+++ b/lib/asn1c/ngap/NGAP_MDTPLMNList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDTPLMNList_H_
diff --git a/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.c b/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.c
index 4d8e11fa59..47dd6d2f08 100644
--- a/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.c
+++ b/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MDTPLMNModificationList.h"
diff --git a/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.h b/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.h
index 257b7ffbf7..c024bbca11 100644
--- a/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.h
+++ b/lib/asn1c/ngap/NGAP_MDTPLMNModificationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MDTPLMNModificationList_H_
diff --git a/lib/asn1c/ngap/NGAP_MICOModeIndication.c b/lib/asn1c/ngap/NGAP_MICOModeIndication.c
index 98bb1d6880..1f52e2c70c 100644
--- a/lib/asn1c/ngap/NGAP_MICOModeIndication.c
+++ b/lib/asn1c/ngap/NGAP_MICOModeIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MICOModeIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_MICOModeIndication.h b/lib/asn1c/ngap/NGAP_MICOModeIndication.h
index b6611a3312..a5b28be7c9 100644
--- a/lib/asn1c/ngap/NGAP_MICOModeIndication.h
+++ b/lib/asn1c/ngap/NGAP_MICOModeIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MICOModeIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_MICOModeIndication_specs_1;
asn_struct_free_f NGAP_MICOModeIndication_free;
asn_struct_print_f NGAP_MICOModeIndication_print;
asn_constr_check_f NGAP_MICOModeIndication_constraint;
-jer_type_encoder_f NGAP_MICOModeIndication_encode_jer;
per_type_decoder_f NGAP_MICOModeIndication_decode_aper;
per_type_encoder_f NGAP_MICOModeIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MRB-ID.c b/lib/asn1c/ngap/NGAP_MRB-ID.c
index c7ce0b706c..14b8c25a15 100644
--- a/lib/asn1c/ngap/NGAP_MRB-ID.c
+++ b/lib/asn1c/ngap/NGAP_MRB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MRB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_MRB-ID.h b/lib/asn1c/ngap/NGAP_MRB-ID.h
index 6096a5efa0..51987de5c7 100644
--- a/lib/asn1c/ngap/NGAP_MRB-ID.h
+++ b/lib/asn1c/ngap/NGAP_MRB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MRB_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MRB_ID;
asn_struct_free_f NGAP_MRB_ID_free;
asn_struct_print_f NGAP_MRB_ID_print;
asn_constr_check_f NGAP_MRB_ID_constraint;
-jer_type_encoder_f NGAP_MRB_ID_encode_jer;
per_type_decoder_f NGAP_MRB_ID_decode_aper;
per_type_encoder_f NGAP_MRB_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.c b/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.c
index a35aae205b..be4affa7c4 100644
--- a/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.c
+++ b/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MRB-ProgressInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.h b/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.h
index 90d2d33bf9..a23546bf88 100644
--- a/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.h
+++ b/lib/asn1c/ngap/NGAP_MRB-ProgressInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MRB_ProgressInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_MaskedIMEISV.c b/lib/asn1c/ngap/NGAP_MaskedIMEISV.c
index 54fa9cb5a9..f2fa63abc1 100644
--- a/lib/asn1c/ngap/NGAP_MaskedIMEISV.c
+++ b/lib/asn1c/ngap/NGAP_MaskedIMEISV.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MaskedIMEISV.h"
diff --git a/lib/asn1c/ngap/NGAP_MaskedIMEISV.h b/lib/asn1c/ngap/NGAP_MaskedIMEISV.h
index b484d5521b..79be000a0b 100644
--- a/lib/asn1c/ngap/NGAP_MaskedIMEISV.h
+++ b/lib/asn1c/ngap/NGAP_MaskedIMEISV.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MaskedIMEISV_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MaskedIMEISV;
asn_struct_free_f NGAP_MaskedIMEISV_free;
asn_struct_print_f NGAP_MaskedIMEISV_print;
asn_constr_check_f NGAP_MaskedIMEISV_constraint;
-jer_type_encoder_f NGAP_MaskedIMEISV_encode_jer;
per_type_decoder_f NGAP_MaskedIMEISV_decode_aper;
per_type_encoder_f NGAP_MaskedIMEISV_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.c b/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.c
index 2e1bc7f0e3..ce16179d7c 100644
--- a/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.c
+++ b/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MaxNrofRS-IndexesToReport.h"
diff --git a/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.h b/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.h
index 8fe5c1f04f..1ac85ff0db 100644
--- a/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.h
+++ b/lib/asn1c/ngap/NGAP_MaxNrofRS-IndexesToReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MaxNrofRS_IndexesToReport_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MaxNrofRS_IndexesToReport;
asn_struct_free_f NGAP_MaxNrofRS_IndexesToReport_free;
asn_struct_print_f NGAP_MaxNrofRS_IndexesToReport_print;
asn_constr_check_f NGAP_MaxNrofRS_IndexesToReport_constraint;
-jer_type_encoder_f NGAP_MaxNrofRS_IndexesToReport_encode_jer;
per_type_decoder_f NGAP_MaxNrofRS_IndexesToReport_decode_aper;
per_type_encoder_f NGAP_MaxNrofRS_IndexesToReport_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.c b/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.c
index fcaf593b65..4d467d117f 100644
--- a/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.c
+++ b/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MaximumDataBurstVolume.h"
diff --git a/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.h b/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.h
index 507b7b832f..32dc5009d1 100644
--- a/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.h
+++ b/lib/asn1c/ngap/NGAP_MaximumDataBurstVolume.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MaximumDataBurstVolume_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MaximumDataBurstVolume;
asn_struct_free_f NGAP_MaximumDataBurstVolume_free;
asn_struct_print_f NGAP_MaximumDataBurstVolume_print;
asn_constr_check_f NGAP_MaximumDataBurstVolume_constraint;
-jer_type_encoder_f NGAP_MaximumDataBurstVolume_encode_jer;
per_type_decoder_f NGAP_MaximumDataBurstVolume_decode_aper;
per_type_encoder_f NGAP_MaximumDataBurstVolume_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.c b/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.c
index a79808be00..27e20cd202 100644
--- a/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.c
+++ b/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MaximumIntegrityProtectedDataRate.h"
diff --git a/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.h b/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.h
index d3cdd0a7e2..5efbaf4372 100644
--- a/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.h
+++ b/lib/asn1c/ngap/NGAP_MaximumIntegrityProtectedDataRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MaximumIntegrityProtectedDataRate_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_MaximumIntegrityProtectedDataR
asn_struct_free_f NGAP_MaximumIntegrityProtectedDataRate_free;
asn_struct_print_f NGAP_MaximumIntegrityProtectedDataRate_print;
asn_constr_check_f NGAP_MaximumIntegrityProtectedDataRate_constraint;
-jer_type_encoder_f NGAP_MaximumIntegrityProtectedDataRate_encode_jer;
per_type_decoder_f NGAP_MaximumIntegrityProtectedDataRate_decode_aper;
per_type_encoder_f NGAP_MaximumIntegrityProtectedDataRate_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.c b/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.c
index cd25e719c4..63402da9e4 100644
--- a/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.c
+++ b/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MeasurementThresholdL1LoggedMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.h b/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.h
index 8db9b7b3da..4492e3f2a8 100644
--- a/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.h
+++ b/lib/asn1c/ngap/NGAP_MeasurementThresholdL1LoggedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MeasurementThresholdL1LoggedMDT_H_
diff --git a/lib/asn1c/ngap/NGAP_MeasurementsToActivate.c b/lib/asn1c/ngap/NGAP_MeasurementsToActivate.c
index e388120172..0544df68cf 100644
--- a/lib/asn1c/ngap/NGAP_MeasurementsToActivate.c
+++ b/lib/asn1c/ngap/NGAP_MeasurementsToActivate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MeasurementsToActivate.h"
diff --git a/lib/asn1c/ngap/NGAP_MeasurementsToActivate.h b/lib/asn1c/ngap/NGAP_MeasurementsToActivate.h
index bd9a186b82..c1c22c513a 100644
--- a/lib/asn1c/ngap/NGAP_MeasurementsToActivate.h
+++ b/lib/asn1c/ngap/NGAP_MeasurementsToActivate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MeasurementsToActivate_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MeasurementsToActivate;
asn_struct_free_f NGAP_MeasurementsToActivate_free;
asn_struct_print_f NGAP_MeasurementsToActivate_print;
asn_constr_check_f NGAP_MeasurementsToActivate_constraint;
-jer_type_encoder_f NGAP_MeasurementsToActivate_encode_jer;
per_type_decoder_f NGAP_MeasurementsToActivate_decode_aper;
per_type_encoder_f NGAP_MeasurementsToActivate_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MessageIdentifier.c b/lib/asn1c/ngap/NGAP_MessageIdentifier.c
index 34fe29eae3..7fd4c44d41 100644
--- a/lib/asn1c/ngap/NGAP_MessageIdentifier.c
+++ b/lib/asn1c/ngap/NGAP_MessageIdentifier.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MessageIdentifier.h"
diff --git a/lib/asn1c/ngap/NGAP_MessageIdentifier.h b/lib/asn1c/ngap/NGAP_MessageIdentifier.h
index 9a554f1fe9..e571c13f5a 100644
--- a/lib/asn1c/ngap/NGAP_MessageIdentifier.h
+++ b/lib/asn1c/ngap/NGAP_MessageIdentifier.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MessageIdentifier_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MessageIdentifier;
asn_struct_free_f NGAP_MessageIdentifier_free;
asn_struct_print_f NGAP_MessageIdentifier_print;
asn_constr_check_f NGAP_MessageIdentifier_constraint;
-jer_type_encoder_f NGAP_MessageIdentifier_encode_jer;
per_type_decoder_f NGAP_MessageIdentifier_decode_aper;
per_type_encoder_f NGAP_MessageIdentifier_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MicoAllPLMN.c b/lib/asn1c/ngap/NGAP_MicoAllPLMN.c
index a538c07964..9098fc8831 100644
--- a/lib/asn1c/ngap/NGAP_MicoAllPLMN.c
+++ b/lib/asn1c/ngap/NGAP_MicoAllPLMN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MicoAllPLMN.h"
diff --git a/lib/asn1c/ngap/NGAP_MicoAllPLMN.h b/lib/asn1c/ngap/NGAP_MicoAllPLMN.h
index 49cd6c54ea..d77feffadd 100644
--- a/lib/asn1c/ngap/NGAP_MicoAllPLMN.h
+++ b/lib/asn1c/ngap/NGAP_MicoAllPLMN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MicoAllPLMN_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_MicoAllPLMN_specs_1;
asn_struct_free_f NGAP_MicoAllPLMN_free;
asn_struct_print_f NGAP_MicoAllPLMN_print;
asn_constr_check_f NGAP_MicoAllPLMN_constraint;
-jer_type_encoder_f NGAP_MicoAllPLMN_encode_jer;
per_type_decoder_f NGAP_MicoAllPLMN_decode_aper;
per_type_encoder_f NGAP_MicoAllPLMN_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MobilityInformation.c b/lib/asn1c/ngap/NGAP_MobilityInformation.c
index dc405ecd4b..b63a1d3a7e 100644
--- a/lib/asn1c/ngap/NGAP_MobilityInformation.c
+++ b/lib/asn1c/ngap/NGAP_MobilityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MobilityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_MobilityInformation.h b/lib/asn1c/ngap/NGAP_MobilityInformation.h
index a6b2b01a3d..41e984206a 100644
--- a/lib/asn1c/ngap/NGAP_MobilityInformation.h
+++ b/lib/asn1c/ngap/NGAP_MobilityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MobilityInformation_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_MobilityInformation;
asn_struct_free_f NGAP_MobilityInformation_free;
asn_struct_print_f NGAP_MobilityInformation_print;
asn_constr_check_f NGAP_MobilityInformation_constraint;
-jer_type_encoder_f NGAP_MobilityInformation_encode_jer;
per_type_decoder_f NGAP_MobilityInformation_decode_aper;
per_type_encoder_f NGAP_MobilityInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_MobilityRestrictionList.c b/lib/asn1c/ngap/NGAP_MobilityRestrictionList.c
index dceb25bd91..6d2baa8845 100644
--- a/lib/asn1c/ngap/NGAP_MobilityRestrictionList.c
+++ b/lib/asn1c/ngap/NGAP_MobilityRestrictionList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MobilityRestrictionList.h"
diff --git a/lib/asn1c/ngap/NGAP_MobilityRestrictionList.h b/lib/asn1c/ngap/NGAP_MobilityRestrictionList.h
index 3fdf26799c..9d5706f1df 100644
--- a/lib/asn1c/ngap/NGAP_MobilityRestrictionList.h
+++ b/lib/asn1c/ngap/NGAP_MobilityRestrictionList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MobilityRestrictionList_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPaging.c b/lib/asn1c/ngap/NGAP_MulticastGroupPaging.c
index d009537cc2..f26953c04f 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPaging.c
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastGroupPaging.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPaging.h b/lib/asn1c/ngap/NGAP_MulticastGroupPaging.h
index 91a59b1e64..609d79f540 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPaging.h
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastGroupPaging_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.c b/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.c
index 3047e8d242..97a4421dca 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.c
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastGroupPagingArea.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.h b/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.h
index 85e51323ba..ba59516b31 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.h
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPagingArea.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastGroupPagingArea_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.c b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.c
index 5e019be516..a876ddb1f0 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.c
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastGroupPagingAreaItem.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.h b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.h
index 2cd67ac5f2..0853ad8e7c 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.h
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastGroupPagingAreaItem_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.c b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.c
index bc1b21e40f..4e4d0e8ed2 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.c
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastGroupPagingAreaList.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.h b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.h
index 9cf4a39179..271d851523 100644
--- a/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.h
+++ b/lib/asn1c/ngap/NGAP_MulticastGroupPagingAreaList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastGroupPagingAreaList_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.c b/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.c
index b9f79b0820..04fa108b53 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionActivationFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.h b/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.h
index e303b45737..390821888a 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionActivationFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.c b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.c
index baabdae157..64b8e3d8b2 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionActivationRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.h b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.h
index 49ce6a2c0e..ea29966acc 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionActivationRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.c b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.c
index 0966797e74..69ba04809e 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionActivationRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.h b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.h
index 73798bbb37..b732d4efae 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionActivationRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.c b/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.c
index bf4532f622..adcf53ab5b 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionActivationResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.h b/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.h
index 9a2d101af6..b4fd7e352a 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionActivationResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionActivationResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.c b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.c
index de7c26127e..ee9c61c168 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionDeactivationRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.h b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.h
index dc62426fcf..e11442672b 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionDeactivationRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.c b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.c
index b4ecc425c9..2ea0fd5bae 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionDeactivationRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.h b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.h
index 77c5e56e3b..d572009fbf 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionDeactivationRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.c b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.c
index 8b08cf438a..3ff0604ee2 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionDeactivationResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.h b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.h
index 640f140061..bbd49e7871 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionDeactivationResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionDeactivationResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.c b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.c
index 7383530c5c..63a2465a40 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionUpdateFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.h b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.h
index 99cb40c55d..1f81362b4f 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionUpdateFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.c b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.c
index b40582328e..958b3dc368 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionUpdateRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.h b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.h
index 5add9aa070..7329aca95e 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionUpdateRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.c b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.c
index 27d321ce11..b542f456eb 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionUpdateRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.h b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.h
index 60e6e2342e..696cf26bee 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionUpdateRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.c b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.c
index 79f20e8e14..3d205413c6 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.c
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_MulticastSessionUpdateResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.h b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.h
index b147fb6354..35d0858a9c 100644
--- a/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.h
+++ b/lib/asn1c/ngap/NGAP_MulticastSessionUpdateResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_MulticastSessionUpdateResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_N3IWF-ID.c b/lib/asn1c/ngap/NGAP_N3IWF-ID.c
index e27d1a1423..4342de5a54 100644
--- a/lib/asn1c/ngap/NGAP_N3IWF-ID.c
+++ b/lib/asn1c/ngap/NGAP_N3IWF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_N3IWF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_N3IWF-ID.h b/lib/asn1c/ngap/NGAP_N3IWF-ID.h
index be20e193a9..75135c647d 100644
--- a/lib/asn1c/ngap/NGAP_N3IWF-ID.h
+++ b/lib/asn1c/ngap/NGAP_N3IWF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_N3IWF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_NAS-PDU.c b/lib/asn1c/ngap/NGAP_NAS-PDU.c
index 817008aeeb..2a4bbbdcfe 100644
--- a/lib/asn1c/ngap/NGAP_NAS-PDU.c
+++ b/lib/asn1c/ngap/NGAP_NAS-PDU.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NAS-PDU.h"
diff --git a/lib/asn1c/ngap/NGAP_NAS-PDU.h b/lib/asn1c/ngap/NGAP_NAS-PDU.h
index 3489ab2f90..0ccf2380a1 100644
--- a/lib/asn1c/ngap/NGAP_NAS-PDU.h
+++ b/lib/asn1c/ngap/NGAP_NAS-PDU.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NAS_PDU_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NAS_PDU;
asn_struct_free_f NGAP_NAS_PDU_free;
asn_struct_print_f NGAP_NAS_PDU_print;
asn_constr_check_f NGAP_NAS_PDU_constraint;
-jer_type_encoder_f NGAP_NAS_PDU_encode_jer;
per_type_decoder_f NGAP_NAS_PDU_decode_aper;
per_type_encoder_f NGAP_NAS_PDU_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.c b/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.c
index b8b28126df..5e06ba3912 100644
--- a/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.c
+++ b/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NASNonDeliveryIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.h b/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.h
index eb44456f6b..567f911bd6 100644
--- a/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.h
+++ b/lib/asn1c/ngap/NGAP_NASNonDeliveryIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NASNonDeliveryIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.c b/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.c
index 3292065738..73075b4286 100644
--- a/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.c
+++ b/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NASSecurityParametersFromNGRAN.h"
diff --git a/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.h b/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.h
index 6513b0fe88..dc7df5f0d0 100644
--- a/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.h
+++ b/lib/asn1c/ngap/NGAP_NASSecurityParametersFromNGRAN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NASSecurityParametersFromNGRAN_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NASSecurityParametersFromNGRAN;
asn_struct_free_f NGAP_NASSecurityParametersFromNGRAN_free;
asn_struct_print_f NGAP_NASSecurityParametersFromNGRAN_print;
asn_constr_check_f NGAP_NASSecurityParametersFromNGRAN_constraint;
-jer_type_encoder_f NGAP_NASSecurityParametersFromNGRAN_encode_jer;
per_type_decoder_f NGAP_NASSecurityParametersFromNGRAN_decode_aper;
per_type_encoder_f NGAP_NASSecurityParametersFromNGRAN_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.c b/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.c
index fd14559645..e839ed4024 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.c
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NB-IoT-DefaultPagingDRX.h"
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.h b/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.h
index 336b5bae9b..05cb2306d2 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.h
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-DefaultPagingDRX.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NB_IoT_DefaultPagingDRX_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NB_IoT_DefaultPagingDRX_specs_
asn_struct_free_f NGAP_NB_IoT_DefaultPagingDRX_free;
asn_struct_print_f NGAP_NB_IoT_DefaultPagingDRX_print;
asn_constr_check_f NGAP_NB_IoT_DefaultPagingDRX_constraint;
-jer_type_encoder_f NGAP_NB_IoT_DefaultPagingDRX_encode_jer;
per_type_decoder_f NGAP_NB_IoT_DefaultPagingDRX_decode_aper;
per_type_encoder_f NGAP_NB_IoT_DefaultPagingDRX_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.c b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.c
index c53c4a47a3..4b55613fa5 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.c
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NB-IoT-Paging-TimeWindow.h"
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.h b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.h
index 6419b2179c..a9f792f4c7 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.h
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-TimeWindow.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NB_IoT_Paging_TimeWindow_H_
@@ -51,7 +51,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NB_IoT_Paging_TimeWindow_specs
asn_struct_free_f NGAP_NB_IoT_Paging_TimeWindow_free;
asn_struct_print_f NGAP_NB_IoT_Paging_TimeWindow_print;
asn_constr_check_f NGAP_NB_IoT_Paging_TimeWindow_constraint;
-jer_type_encoder_f NGAP_NB_IoT_Paging_TimeWindow_encode_jer;
per_type_decoder_f NGAP_NB_IoT_Paging_TimeWindow_decode_aper;
per_type_encoder_f NGAP_NB_IoT_Paging_TimeWindow_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.c b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.c
index 13e453a1a8..4423c8225f 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.c
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NB-IoT-Paging-eDRXCycle.h"
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.h b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.h
index 4d2b6c2b48..5fac174fee 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.h
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXCycle.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NB_IoT_Paging_eDRXCycle_H_
@@ -49,7 +49,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NB_IoT_Paging_eDRXCycle_specs_
asn_struct_free_f NGAP_NB_IoT_Paging_eDRXCycle_free;
asn_struct_print_f NGAP_NB_IoT_Paging_eDRXCycle_print;
asn_constr_check_f NGAP_NB_IoT_Paging_eDRXCycle_constraint;
-jer_type_encoder_f NGAP_NB_IoT_Paging_eDRXCycle_encode_jer;
per_type_decoder_f NGAP_NB_IoT_Paging_eDRXCycle_decode_aper;
per_type_encoder_f NGAP_NB_IoT_Paging_eDRXCycle_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.c b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.c
index 109f433d86..0fa8078dfc 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.c
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NB-IoT-Paging-eDRXInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.h b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.h
index 4d2838654b..476a80ddea 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.h
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-Paging-eDRXInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NB_IoT_Paging_eDRXInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.c b/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.c
index d08012b467..6cd2d71821 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.c
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NB-IoT-PagingDRX.h"
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.h b/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.h
index 8e42da7359..2f251fa9ed 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.h
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-PagingDRX.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NB_IoT_PagingDRX_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NB_IoT_PagingDRX_specs_1;
asn_struct_free_f NGAP_NB_IoT_PagingDRX_free;
asn_struct_print_f NGAP_NB_IoT_PagingDRX_print;
asn_constr_check_f NGAP_NB_IoT_PagingDRX_constraint;
-jer_type_encoder_f NGAP_NB_IoT_PagingDRX_encode_jer;
per_type_decoder_f NGAP_NB_IoT_PagingDRX_decode_aper;
per_type_encoder_f NGAP_NB_IoT_PagingDRX_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.c b/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.c
index a20e81c88f..c9a2d39c1a 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.c
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NB-IoT-UEPriority.h"
diff --git a/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.h b/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.h
index eebed39a6f..bb0bb8bb14 100644
--- a/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.h
+++ b/lib/asn1c/ngap/NGAP_NB-IoT-UEPriority.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NB_IoT_UEPriority_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NB_IoT_UEPriority;
asn_struct_free_f NGAP_NB_IoT_UEPriority_free;
asn_struct_print_f NGAP_NB_IoT_UEPriority_print;
asn_constr_check_f NGAP_NB_IoT_UEPriority_constraint;
-jer_type_encoder_f NGAP_NB_IoT_UEPriority_encode_jer;
per_type_decoder_f NGAP_NB_IoT_UEPriority_decode_aper;
per_type_encoder_f NGAP_NB_IoT_UEPriority_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NGAP-PDU.c b/lib/asn1c/ngap/NGAP_NGAP-PDU.c
index 02f6e4e295..7929f5a6bc 100644
--- a/lib/asn1c/ngap/NGAP_NGAP-PDU.c
+++ b/lib/asn1c/ngap/NGAP_NGAP-PDU.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGAP-PDU.h"
diff --git a/lib/asn1c/ngap/NGAP_NGAP-PDU.h b/lib/asn1c/ngap/NGAP_NGAP-PDU.h
index dad3aebba5..260899d44c 100644
--- a/lib/asn1c/ngap/NGAP_NGAP-PDU.h
+++ b/lib/asn1c/ngap/NGAP_NGAP-PDU.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGAP_PDU_H_
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.c b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.c
index 23de89c4c0..c51c0e34bc 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGAPIESupportInformationRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.h b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.h
index 31cebdcfe9..8230089fcf 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGAPIESupportInformationRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.c b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.c
index 3d68df4595..2df52cc3b4 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.c
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGAPIESupportInformationRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.h b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.h
index 92f8b35677..cc3ff764d0 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.h
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGAPIESupportInformationRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.c b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.c
index dd677e3186..2a13e42b77 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.c
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGAPIESupportInformationResponseItem.h"
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.h b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.h
index b695594620..775f474e63 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.h
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGAPIESupportInformationResponseItem_H_
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.c b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.c
index b5962455a1..81f847f7e4 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.c
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGAPIESupportInformationResponseList.h"
diff --git a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.h b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.h
index 9b1827089d..95280b72f4 100644
--- a/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.h
+++ b/lib/asn1c/ngap/NGAP_NGAPIESupportInformationResponseList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGAPIESupportInformationResponseList_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CGI.c b/lib/asn1c/ngap/NGAP_NGRAN-CGI.c
index c40e64407b..6754c0955f 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CGI.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CGI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-CGI.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CGI.h b/lib/asn1c/ngap/NGAP_NGRAN-CGI.h
index 87aa207a09..5830bc6223 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CGI.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CGI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_CGI_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.c b/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.c
index b1cae79718..89902183bc 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-CellReportItem.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.h b/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.h
index da482e8553..89ebeddb92 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellReportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_CellReportItem_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.c b/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.c
index e6f8e61e1e..de27576510 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-CellReportList.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.h b/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.h
index 70131f240c..2c528cc3ef 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_CellReportList_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.c b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.c
index 50e2af943a..1c88614825 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-CellToReportItem.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.h b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.h
index 60ff6e5422..cf0934c051 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_CellToReportItem_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.c b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.c
index 1da413ecc3..8e4cc31a4f 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-CellToReportList.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.h b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.h
index 3944ee8f77..85c4987960 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-CellToReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_CellToReportList_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.c b/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.c
index fd96d6d159..47ee853f6e 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-NoofRRCConnections.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.h b/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.h
index 7f904393e1..f8467502be 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-NoofRRCConnections.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_NoofRRCConnections_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NGRAN_NoofRRCConnections;
asn_struct_free_f NGAP_NGRAN_NoofRRCConnections_free;
asn_struct_print_f NGAP_NGRAN_NoofRRCConnections_print;
asn_constr_check_f NGAP_NGRAN_NoofRRCConnections_constraint;
-jer_type_encoder_f NGAP_NGRAN_NoofRRCConnections_encode_jer;
per_type_decoder_f NGAP_NGRAN_NoofRRCConnections_decode_aper;
per_type_encoder_f NGAP_NGRAN_NoofRRCConnections_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.c b/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.c
index bb2dd02c15..2b86eabe07 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-NumberOfActiveUEs.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.h b/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.h
index d3c25ed10e..45a7186abe 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-NumberOfActiveUEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_NumberOfActiveUEs_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NGRAN_NumberOfActiveUEs;
asn_struct_free_f NGAP_NGRAN_NumberOfActiveUEs_free;
asn_struct_print_f NGAP_NGRAN_NumberOfActiveUEs_print;
asn_constr_check_f NGAP_NGRAN_NumberOfActiveUEs_constraint;
-jer_type_encoder_f NGAP_NGRAN_NumberOfActiveUEs_encode_jer;
per_type_decoder_f NGAP_NGRAN_NumberOfActiveUEs_decode_aper;
per_type_encoder_f NGAP_NGRAN_NumberOfActiveUEs_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.c b/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.c
index c81e7c2f00..990b3117e1 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-RadioResourceStatus.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.h b/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.h
index cd14e41c93..52b659b87d 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-RadioResourceStatus.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_RadioResourceStatus_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.c b/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.c
index 937e5fbbc0..7f9e9b2c38 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-ReportingStatusIEs.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.h b/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.h
index d9300835cb..2218816529 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-ReportingStatusIEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_ReportingStatusIEs_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.c b/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.c
index 44bd113eb7..c264e7bbd7 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-ReportingSystemIEs.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.h b/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.h
index b3441b9d08..b830be1ee1 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-ReportingSystemIEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_ReportingSystemIEs_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.c b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.c
index abd9761c9d..d8483a9841 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-TNLAssociationToRemoveItem.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.h b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.h
index 5214fb732f..470fc52986 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_TNLAssociationToRemoveItem_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.c b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.c
index 564eb0379e..3dd1e46b40 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.c
+++ b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRAN-TNLAssociationToRemoveList.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.h b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.h
index 1c31dcfcb2..73dd045b9e 100644
--- a/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.h
+++ b/lib/asn1c/ngap/NGAP_NGRAN-TNLAssociationToRemoveList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRAN_TNLAssociationToRemoveList_H_
diff --git a/lib/asn1c/ngap/NGAP_NGRANTraceID.c b/lib/asn1c/ngap/NGAP_NGRANTraceID.c
index a0dacf803b..5bd7732087 100644
--- a/lib/asn1c/ngap/NGAP_NGRANTraceID.c
+++ b/lib/asn1c/ngap/NGAP_NGRANTraceID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGRANTraceID.h"
diff --git a/lib/asn1c/ngap/NGAP_NGRANTraceID.h b/lib/asn1c/ngap/NGAP_NGRANTraceID.h
index 2db783a4f8..b7fb56f06a 100644
--- a/lib/asn1c/ngap/NGAP_NGRANTraceID.h
+++ b/lib/asn1c/ngap/NGAP_NGRANTraceID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGRANTraceID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NGRANTraceID;
asn_struct_free_f NGAP_NGRANTraceID_free;
asn_struct_print_f NGAP_NGRANTraceID_print;
asn_constr_check_f NGAP_NGRANTraceID_constraint;
-jer_type_encoder_f NGAP_NGRANTraceID_encode_jer;
per_type_decoder_f NGAP_NGRANTraceID_decode_aper;
per_type_encoder_f NGAP_NGRANTraceID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NGReset.c b/lib/asn1c/ngap/NGAP_NGReset.c
index bb6b4e7c22..c4dda7f9d1 100644
--- a/lib/asn1c/ngap/NGAP_NGReset.c
+++ b/lib/asn1c/ngap/NGAP_NGReset.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGReset.h"
diff --git a/lib/asn1c/ngap/NGAP_NGReset.h b/lib/asn1c/ngap/NGAP_NGReset.h
index 7ece3b1902..833715394c 100644
--- a/lib/asn1c/ngap/NGAP_NGReset.h
+++ b/lib/asn1c/ngap/NGAP_NGReset.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGReset_H_
diff --git a/lib/asn1c/ngap/NGAP_NGResetAcknowledge.c b/lib/asn1c/ngap/NGAP_NGResetAcknowledge.c
index 8008e33bf0..9af6918144 100644
--- a/lib/asn1c/ngap/NGAP_NGResetAcknowledge.c
+++ b/lib/asn1c/ngap/NGAP_NGResetAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGResetAcknowledge.h"
diff --git a/lib/asn1c/ngap/NGAP_NGResetAcknowledge.h b/lib/asn1c/ngap/NGAP_NGResetAcknowledge.h
index 8eed00f74c..6b1cfb967d 100644
--- a/lib/asn1c/ngap/NGAP_NGResetAcknowledge.h
+++ b/lib/asn1c/ngap/NGAP_NGResetAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGResetAcknowledge_H_
diff --git a/lib/asn1c/ngap/NGAP_NGSetupFailure.c b/lib/asn1c/ngap/NGAP_NGSetupFailure.c
index 4b0bb54207..d5252b7f3e 100644
--- a/lib/asn1c/ngap/NGAP_NGSetupFailure.c
+++ b/lib/asn1c/ngap/NGAP_NGSetupFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGSetupFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_NGSetupFailure.h b/lib/asn1c/ngap/NGAP_NGSetupFailure.h
index 8d0eb6c51d..1b513b466f 100644
--- a/lib/asn1c/ngap/NGAP_NGSetupFailure.h
+++ b/lib/asn1c/ngap/NGAP_NGSetupFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGSetupFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_NGSetupRequest.c b/lib/asn1c/ngap/NGAP_NGSetupRequest.c
index 2eb3da5215..d6881038ad 100644
--- a/lib/asn1c/ngap/NGAP_NGSetupRequest.c
+++ b/lib/asn1c/ngap/NGAP_NGSetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGSetupRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_NGSetupRequest.h b/lib/asn1c/ngap/NGAP_NGSetupRequest.h
index 3086f7ad3b..65d4531544 100644
--- a/lib/asn1c/ngap/NGAP_NGSetupRequest.h
+++ b/lib/asn1c/ngap/NGAP_NGSetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGSetupRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_NGSetupResponse.c b/lib/asn1c/ngap/NGAP_NGSetupResponse.c
index c621e0d9e3..a70033227c 100644
--- a/lib/asn1c/ngap/NGAP_NGSetupResponse.c
+++ b/lib/asn1c/ngap/NGAP_NGSetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NGSetupResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_NGSetupResponse.h b/lib/asn1c/ngap/NGAP_NGSetupResponse.h
index 1f4765a587..b700e8f486 100644
--- a/lib/asn1c/ngap/NGAP_NGSetupResponse.h
+++ b/lib/asn1c/ngap/NGAP_NGSetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NGSetupResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_NID.c b/lib/asn1c/ngap/NGAP_NID.c
index ad16a61b60..64b6d07409 100644
--- a/lib/asn1c/ngap/NGAP_NID.c
+++ b/lib/asn1c/ngap/NGAP_NID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NID.h"
diff --git a/lib/asn1c/ngap/NGAP_NID.h b/lib/asn1c/ngap/NGAP_NID.h
index c7fe80e46a..4410b9894a 100644
--- a/lib/asn1c/ngap/NGAP_NID.h
+++ b/lib/asn1c/ngap/NGAP_NID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NID;
asn_struct_free_f NGAP_NID_free;
asn_struct_print_f NGAP_NID_print;
asn_constr_check_f NGAP_NID_constraint;
-jer_type_encoder_f NGAP_NID_encode_jer;
per_type_decoder_f NGAP_NID_decode_aper;
per_type_encoder_f NGAP_NID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NPN-AccessInformation.c b/lib/asn1c/ngap/NGAP_NPN-AccessInformation.c
index 339825c47e..bea6939c18 100644
--- a/lib/asn1c/ngap/NGAP_NPN-AccessInformation.c
+++ b/lib/asn1c/ngap/NGAP_NPN-AccessInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NPN-AccessInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_NPN-AccessInformation.h b/lib/asn1c/ngap/NGAP_NPN-AccessInformation.h
index 390d4ef92b..0203b09052 100644
--- a/lib/asn1c/ngap/NGAP_NPN-AccessInformation.h
+++ b/lib/asn1c/ngap/NGAP_NPN-AccessInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NPN_AccessInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.c b/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.c
index 61c3f8196e..07b3b9ce61 100644
--- a/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.c
+++ b/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NPN-MobilityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.h b/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.h
index b78d3d433b..a7828c7e81 100644
--- a/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.h
+++ b/lib/asn1c/ngap/NGAP_NPN-MobilityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NPN_MobilityInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.c b/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.c
index 664d942223..61004dab15 100644
--- a/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.c
+++ b/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NPN-PagingAssistanceInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.h b/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.h
index 6b60560fa8..10e747f5c3 100644
--- a/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.h
+++ b/lib/asn1c/ngap/NGAP_NPN-PagingAssistanceInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NPN_PagingAssistanceInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_NPN-Support.c b/lib/asn1c/ngap/NGAP_NPN-Support.c
index b7a4507053..33221f0f90 100644
--- a/lib/asn1c/ngap/NGAP_NPN-Support.c
+++ b/lib/asn1c/ngap/NGAP_NPN-Support.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NPN-Support.h"
diff --git a/lib/asn1c/ngap/NGAP_NPN-Support.h b/lib/asn1c/ngap/NGAP_NPN-Support.h
index 3e4d9ecf31..2fcc357259 100644
--- a/lib/asn1c/ngap/NGAP_NPN-Support.h
+++ b/lib/asn1c/ngap/NGAP_NPN-Support.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NPN_Support_H_
diff --git a/lib/asn1c/ngap/NGAP_NR-CGI.c b/lib/asn1c/ngap/NGAP_NR-CGI.c
index b429736ef1..5c27eda53e 100644
--- a/lib/asn1c/ngap/NGAP_NR-CGI.c
+++ b/lib/asn1c/ngap/NGAP_NR-CGI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NR-CGI.h"
diff --git a/lib/asn1c/ngap/NGAP_NR-CGI.h b/lib/asn1c/ngap/NGAP_NR-CGI.h
index 358ebcf725..b32cf021a2 100644
--- a/lib/asn1c/ngap/NGAP_NR-CGI.h
+++ b/lib/asn1c/ngap/NGAP_NR-CGI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NR_CGI_H_
diff --git a/lib/asn1c/ngap/NGAP_NR-CGIList.c b/lib/asn1c/ngap/NGAP_NR-CGIList.c
index 266c964b1f..43c84c63de 100644
--- a/lib/asn1c/ngap/NGAP_NR-CGIList.c
+++ b/lib/asn1c/ngap/NGAP_NR-CGIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NR-CGIList.h"
diff --git a/lib/asn1c/ngap/NGAP_NR-CGIList.h b/lib/asn1c/ngap/NGAP_NR-CGIList.h
index be2f085c1a..34c781e0cf 100644
--- a/lib/asn1c/ngap/NGAP_NR-CGIList.h
+++ b/lib/asn1c/ngap/NGAP_NR-CGIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NR_CGIList_H_
diff --git a/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.c b/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.c
index 2c23904138..f0886e5cee 100644
--- a/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.c
+++ b/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NR-CGIListForWarning.h"
diff --git a/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.h b/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.h
index 5752d3211b..582f2cdb3e 100644
--- a/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.h
+++ b/lib/asn1c/ngap/NGAP_NR-CGIListForWarning.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NR_CGIListForWarning_H_
diff --git a/lib/asn1c/ngap/NGAP_NR-PCI.c b/lib/asn1c/ngap/NGAP_NR-PCI.c
index 6d24dbf3f1..6388cb8db8 100644
--- a/lib/asn1c/ngap/NGAP_NR-PCI.c
+++ b/lib/asn1c/ngap/NGAP_NR-PCI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NR-PCI.h"
diff --git a/lib/asn1c/ngap/NGAP_NR-PCI.h b/lib/asn1c/ngap/NGAP_NR-PCI.h
index 5898546484..1330ac60dc 100644
--- a/lib/asn1c/ngap/NGAP_NR-PCI.h
+++ b/lib/asn1c/ngap/NGAP_NR-PCI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NR_PCI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NR_PCI;
asn_struct_free_f NGAP_NR_PCI_free;
asn_struct_print_f NGAP_NR_PCI_print;
asn_constr_check_f NGAP_NR_PCI_constraint;
-jer_type_encoder_f NGAP_NR_PCI_encode_jer;
per_type_decoder_f NGAP_NR_PCI_decode_aper;
per_type_encoder_f NGAP_NR_PCI_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.c b/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.c
index 3c1535ec83..06e5911028 100644
--- a/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.c
+++ b/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NR-Paging-Time-Window.h"
diff --git a/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.h b/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.h
index 60f6f2f496..b573f7cb67 100644
--- a/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.h
+++ b/lib/asn1c/ngap/NGAP_NR-Paging-Time-Window.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NR_Paging_Time_Window_H_
@@ -67,7 +67,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NR_Paging_Time_Window_specs_1;
asn_struct_free_f NGAP_NR_Paging_Time_Window_free;
asn_struct_print_f NGAP_NR_Paging_Time_Window_print;
asn_constr_check_f NGAP_NR_Paging_Time_Window_constraint;
-jer_type_encoder_f NGAP_NR_Paging_Time_Window_encode_jer;
per_type_decoder_f NGAP_NR_Paging_Time_Window_decode_aper;
per_type_encoder_f NGAP_NR_Paging_Time_Window_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.c b/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.c
index 211bc1a939..5303d3fcce 100644
--- a/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.c
+++ b/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NR-Paging-eDRX-Cycle.h"
diff --git a/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.h b/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.h
index a16118a990..a1755b45ca 100644
--- a/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.h
+++ b/lib/asn1c/ngap/NGAP_NR-Paging-eDRX-Cycle.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NR_Paging_eDRX_Cycle_H_
@@ -48,7 +48,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NR_Paging_eDRX_Cycle_specs_1;
asn_struct_free_f NGAP_NR_Paging_eDRX_Cycle_free;
asn_struct_print_f NGAP_NR_Paging_eDRX_Cycle_print;
asn_constr_check_f NGAP_NR_Paging_eDRX_Cycle_constraint;
-jer_type_encoder_f NGAP_NR_Paging_eDRX_Cycle_encode_jer;
per_type_decoder_f NGAP_NR_Paging_eDRX_Cycle_decode_aper;
per_type_encoder_f NGAP_NR_Paging_eDRX_Cycle_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.c b/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.c
index 8db0efd6b5..a41a2bc5b7 100644
--- a/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.c
+++ b/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NR-PagingeDRXInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.h b/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.h
index 583f684212..ad59b26a2b 100644
--- a/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.h
+++ b/lib/asn1c/ngap/NGAP_NR-PagingeDRXInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NR_PagingeDRXInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_NRARFCN.c b/lib/asn1c/ngap/NGAP_NRARFCN.c
index 3c303ea123..6356708390 100644
--- a/lib/asn1c/ngap/NGAP_NRARFCN.c
+++ b/lib/asn1c/ngap/NGAP_NRARFCN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRARFCN.h"
diff --git a/lib/asn1c/ngap/NGAP_NRARFCN.h b/lib/asn1c/ngap/NGAP_NRARFCN.h
index b4da47c798..afb737499d 100644
--- a/lib/asn1c/ngap/NGAP_NRARFCN.h
+++ b/lib/asn1c/ngap/NGAP_NRARFCN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRARFCN_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRARFCN;
asn_struct_free_f NGAP_NRARFCN_free;
asn_struct_print_f NGAP_NRARFCN_print;
asn_constr_check_f NGAP_NRARFCN_constraint;
-jer_type_encoder_f NGAP_NRARFCN_encode_jer;
per_type_decoder_f NGAP_NRARFCN_decode_aper;
per_type_encoder_f NGAP_NRARFCN_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NRCellIdentity.c b/lib/asn1c/ngap/NGAP_NRCellIdentity.c
index 86a039f77c..574bd28aff 100644
--- a/lib/asn1c/ngap/NGAP_NRCellIdentity.c
+++ b/lib/asn1c/ngap/NGAP_NRCellIdentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRCellIdentity.h"
diff --git a/lib/asn1c/ngap/NGAP_NRCellIdentity.h b/lib/asn1c/ngap/NGAP_NRCellIdentity.h
index 7186602e84..60a510c014 100644
--- a/lib/asn1c/ngap/NGAP_NRCellIdentity.h
+++ b/lib/asn1c/ngap/NGAP_NRCellIdentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRCellIdentity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRCellIdentity;
asn_struct_free_f NGAP_NRCellIdentity_free;
asn_struct_print_f NGAP_NRCellIdentity_print;
asn_constr_check_f NGAP_NRCellIdentity_constraint;
-jer_type_encoder_f NGAP_NRCellIdentity_encode_jer;
per_type_decoder_f NGAP_NRCellIdentity_decode_aper;
per_type_encoder_f NGAP_NRCellIdentity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.c b/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.c
index 94330879ec..3125f6bd98 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.c
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRFrequencyBand-List.h"
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.h b/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.h
index bf56e4c52d..eb4a5bb71e 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.h
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyBand-List.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRFrequencyBand_List_H_
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyBand.c b/lib/asn1c/ngap/NGAP_NRFrequencyBand.c
index bc564d4ccb..2a72121461 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyBand.c
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyBand.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRFrequencyBand.h"
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyBand.h b/lib/asn1c/ngap/NGAP_NRFrequencyBand.h
index 911a8ed108..5f5d10f809 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyBand.h
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyBand.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRFrequencyBand_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRFrequencyBand;
asn_struct_free_f NGAP_NRFrequencyBand_free;
asn_struct_print_f NGAP_NRFrequencyBand_print;
asn_constr_check_f NGAP_NRFrequencyBand_constraint;
-jer_type_encoder_f NGAP_NRFrequencyBand_encode_jer;
per_type_decoder_f NGAP_NRFrequencyBand_decode_aper;
per_type_encoder_f NGAP_NRFrequencyBand_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.c b/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.c
index c1059c9db5..20d825101d 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.c
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRFrequencyBandItem.h"
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.h b/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.h
index d0d0ad22a4..7d742ccda1 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.h
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyBandItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRFrequencyBandItem_H_
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyInfo.c b/lib/asn1c/ngap/NGAP_NRFrequencyInfo.c
index a14f2735bd..e4d49a0a67 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyInfo.c
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRFrequencyInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_NRFrequencyInfo.h b/lib/asn1c/ngap/NGAP_NRFrequencyInfo.h
index a0775cc71f..ba4b24f3d6 100644
--- a/lib/asn1c/ngap/NGAP_NRFrequencyInfo.h
+++ b/lib/asn1c/ngap/NGAP_NRFrequencyInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRFrequencyInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.c b/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.c
index a3edade7b5..43d5c630aa 100644
--- a/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.c
+++ b/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRMobilityHistoryReport.h"
diff --git a/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.h b/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.h
index 3c43ffa893..15e02e3360 100644
--- a/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.h
+++ b/lib/asn1c/ngap/NGAP_NRMobilityHistoryReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRMobilityHistoryReport_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRMobilityHistoryReport;
asn_struct_free_f NGAP_NRMobilityHistoryReport_free;
asn_struct_print_f NGAP_NRMobilityHistoryReport_print;
asn_constr_check_f NGAP_NRMobilityHistoryReport_constraint;
-jer_type_encoder_f NGAP_NRMobilityHistoryReport_encode_jer;
per_type_decoder_f NGAP_NRMobilityHistoryReport_decode_aper;
per_type_encoder_f NGAP_NRMobilityHistoryReport_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.c b/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.c
index 34e9d5e250..09914c8d53 100644
--- a/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.c
+++ b/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRNTNTAIInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.h b/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.h
index 6412cd40ee..862101ab2d 100644
--- a/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.h
+++ b/lib/asn1c/ngap/NGAP_NRNTNTAIInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRNTNTAIInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_NRPPa-PDU.c b/lib/asn1c/ngap/NGAP_NRPPa-PDU.c
index 9b70c097a1..37ed70697e 100644
--- a/lib/asn1c/ngap/NGAP_NRPPa-PDU.c
+++ b/lib/asn1c/ngap/NGAP_NRPPa-PDU.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRPPa-PDU.h"
diff --git a/lib/asn1c/ngap/NGAP_NRPPa-PDU.h b/lib/asn1c/ngap/NGAP_NRPPa-PDU.h
index 966052ca2f..d6d9811f8a 100644
--- a/lib/asn1c/ngap/NGAP_NRPPa-PDU.h
+++ b/lib/asn1c/ngap/NGAP_NRPPa-PDU.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRPPa_PDU_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRPPa_PDU;
asn_struct_free_f NGAP_NRPPa_PDU_free;
asn_struct_print_f NGAP_NRPPa_PDU_print;
asn_constr_check_f NGAP_NRPPa_PDU_constraint;
-jer_type_encoder_f NGAP_NRPPa_PDU_encode_jer;
per_type_decoder_f NGAP_NRPPa_PDU_decode_aper;
per_type_encoder_f NGAP_NRPPa_PDU_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.c b/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.c
index 5a9e2193ef..31ef68de1a 100644
--- a/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.c
+++ b/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRUERLFReportContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.h b/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.h
index e6e98be354..e0398149dd 100644
--- a/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.h
+++ b/lib/asn1c/ngap/NGAP_NRUERLFReportContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRUERLFReportContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRUERLFReportContainer;
asn_struct_free_f NGAP_NRUERLFReportContainer_free;
asn_struct_print_f NGAP_NRUERLFReportContainer_print;
asn_constr_check_f NGAP_NRUERLFReportContainer_constraint;
-jer_type_encoder_f NGAP_NRUERLFReportContainer_encode_jer;
per_type_decoder_f NGAP_NRUERLFReportContainer_decode_aper;
per_type_encoder_f NGAP_NRUERLFReportContainer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.c b/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.c
index 69001f7e89..440f1305f3 100644
--- a/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.c
+++ b/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRUESidelinkAggregateMaximumBitrate.h"
diff --git a/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.h b/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.h
index 88bce21141..dbedf1d323 100644
--- a/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.h
+++ b/lib/asn1c/ngap/NGAP_NRUESidelinkAggregateMaximumBitrate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRUESidelinkAggregateMaximumBitrate_H_
diff --git a/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.c b/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.c
index 0f2950a36e..1002c92b50 100644
--- a/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.c
+++ b/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRV2XServicesAuthorized.h"
diff --git a/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.h b/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.h
index 12d214e911..aa661b613b 100644
--- a/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.h
+++ b/lib/asn1c/ngap/NGAP_NRV2XServicesAuthorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRV2XServicesAuthorized_H_
diff --git a/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.c b/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.c
index cd86de3d9d..a4dfc8c063 100644
--- a/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.c
+++ b/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRencryptionAlgorithms.h"
diff --git a/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.h b/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.h
index ff09f2705d..f8cd1e46b6 100644
--- a/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.h
+++ b/lib/asn1c/ngap/NGAP_NRencryptionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRencryptionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRencryptionAlgorithms;
asn_struct_free_f NGAP_NRencryptionAlgorithms_free;
asn_struct_print_f NGAP_NRencryptionAlgorithms_print;
asn_constr_check_f NGAP_NRencryptionAlgorithms_constraint;
-jer_type_encoder_f NGAP_NRencryptionAlgorithms_encode_jer;
per_type_decoder_f NGAP_NRencryptionAlgorithms_decode_aper;
per_type_encoder_f NGAP_NRencryptionAlgorithms_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.c b/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.c
index 2aafca7693..f493c9bb13 100644
--- a/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.c
+++ b/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NRintegrityProtectionAlgorithms.h"
diff --git a/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.h b/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.h
index 43730e6d74..510311b06a 100644
--- a/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.h
+++ b/lib/asn1c/ngap/NGAP_NRintegrityProtectionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NRintegrityProtectionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NRintegrityProtectionAlgorithms;
asn_struct_free_f NGAP_NRintegrityProtectionAlgorithms_free;
asn_struct_print_f NGAP_NRintegrityProtectionAlgorithms_print;
asn_constr_check_f NGAP_NRintegrityProtectionAlgorithms_constraint;
-jer_type_encoder_f NGAP_NRintegrityProtectionAlgorithms_encode_jer;
per_type_decoder_f NGAP_NRintegrityProtectionAlgorithms_decode_aper;
per_type_encoder_f NGAP_NRintegrityProtectionAlgorithms_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NSAG-ID.c b/lib/asn1c/ngap/NGAP_NSAG-ID.c
index 3539890f5c..805680b8ab 100644
--- a/lib/asn1c/ngap/NGAP_NSAG-ID.c
+++ b/lib/asn1c/ngap/NGAP_NSAG-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NSAG-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_NSAG-ID.h b/lib/asn1c/ngap/NGAP_NSAG-ID.h
index d412be2879..cf01907df9 100644
--- a/lib/asn1c/ngap/NGAP_NSAG-ID.h
+++ b/lib/asn1c/ngap/NGAP_NSAG-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NSAG_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NSAG_ID;
asn_struct_free_f NGAP_NSAG_ID_free;
asn_struct_print_f NGAP_NSAG_ID_print;
asn_constr_check_f NGAP_NSAG_ID_constraint;
-jer_type_encoder_f NGAP_NSAG_ID_encode_jer;
per_type_decoder_f NGAP_NSAG_ID_decode_aper;
per_type_encoder_f NGAP_NSAG_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NetworkInstance.c b/lib/asn1c/ngap/NGAP_NetworkInstance.c
index 1c1689a572..c594e76e03 100644
--- a/lib/asn1c/ngap/NGAP_NetworkInstance.c
+++ b/lib/asn1c/ngap/NGAP_NetworkInstance.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NetworkInstance.h"
diff --git a/lib/asn1c/ngap/NGAP_NetworkInstance.h b/lib/asn1c/ngap/NGAP_NetworkInstance.h
index a1e07b308d..e097ab68ca 100644
--- a/lib/asn1c/ngap/NGAP_NetworkInstance.h
+++ b/lib/asn1c/ngap/NGAP_NetworkInstance.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NetworkInstance_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NetworkInstance;
asn_struct_free_f NGAP_NetworkInstance_free;
asn_struct_print_f NGAP_NetworkInstance_print;
asn_constr_check_f NGAP_NetworkInstance_constraint;
-jer_type_encoder_f NGAP_NetworkInstance_encode_jer;
per_type_decoder_f NGAP_NetworkInstance_decode_aper;
per_type_encoder_f NGAP_NetworkInstance_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NewSecurityContextInd.c b/lib/asn1c/ngap/NGAP_NewSecurityContextInd.c
index abb8a90433..e313b34aa7 100644
--- a/lib/asn1c/ngap/NGAP_NewSecurityContextInd.c
+++ b/lib/asn1c/ngap/NGAP_NewSecurityContextInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NewSecurityContextInd.h"
diff --git a/lib/asn1c/ngap/NGAP_NewSecurityContextInd.h b/lib/asn1c/ngap/NGAP_NewSecurityContextInd.h
index 4b1abd24d8..92570219a5 100644
--- a/lib/asn1c/ngap/NGAP_NewSecurityContextInd.h
+++ b/lib/asn1c/ngap/NGAP_NewSecurityContextInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NewSecurityContextInd_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NewSecurityContextInd_specs_1;
asn_struct_free_f NGAP_NewSecurityContextInd_free;
asn_struct_print_f NGAP_NewSecurityContextInd_print;
asn_constr_check_f NGAP_NewSecurityContextInd_constraint;
-jer_type_encoder_f NGAP_NewSecurityContextInd_encode_jer;
per_type_decoder_f NGAP_NewSecurityContextInd_decode_aper;
per_type_encoder_f NGAP_NewSecurityContextInd_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NextHopChainingCount.c b/lib/asn1c/ngap/NGAP_NextHopChainingCount.c
index c3e10282bc..aae102e51e 100644
--- a/lib/asn1c/ngap/NGAP_NextHopChainingCount.c
+++ b/lib/asn1c/ngap/NGAP_NextHopChainingCount.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NextHopChainingCount.h"
diff --git a/lib/asn1c/ngap/NGAP_NextHopChainingCount.h b/lib/asn1c/ngap/NGAP_NextHopChainingCount.h
index ee1a032430..08aac541e0 100644
--- a/lib/asn1c/ngap/NGAP_NextHopChainingCount.h
+++ b/lib/asn1c/ngap/NGAP_NextHopChainingCount.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NextHopChainingCount_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NextHopChainingCount;
asn_struct_free_f NGAP_NextHopChainingCount_free;
asn_struct_print_f NGAP_NextHopChainingCount_print;
asn_constr_check_f NGAP_NextHopChainingCount_constraint;
-jer_type_encoder_f NGAP_NextHopChainingCount_encode_jer;
per_type_decoder_f NGAP_NextHopChainingCount_decode_aper;
per_type_encoder_f NGAP_NextHopChainingCount_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NextPagingAreaScope.c b/lib/asn1c/ngap/NGAP_NextPagingAreaScope.c
index 5284fbe9cb..a4f69ebb11 100644
--- a/lib/asn1c/ngap/NGAP_NextPagingAreaScope.c
+++ b/lib/asn1c/ngap/NGAP_NextPagingAreaScope.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NextPagingAreaScope.h"
diff --git a/lib/asn1c/ngap/NGAP_NextPagingAreaScope.h b/lib/asn1c/ngap/NGAP_NextPagingAreaScope.h
index 224184fdc3..5633963572 100644
--- a/lib/asn1c/ngap/NGAP_NextPagingAreaScope.h
+++ b/lib/asn1c/ngap/NGAP_NextPagingAreaScope.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NextPagingAreaScope_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NextPagingAreaScope_specs_1;
asn_struct_free_f NGAP_NextPagingAreaScope_free;
asn_struct_print_f NGAP_NextPagingAreaScope_print;
asn_constr_check_f NGAP_NextPagingAreaScope_constraint;
-jer_type_encoder_f NGAP_NextPagingAreaScope_encode_jer;
per_type_decoder_f NGAP_NextPagingAreaScope_decode_aper;
per_type_encoder_f NGAP_NextPagingAreaScope_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NgENB-ID.c b/lib/asn1c/ngap/NGAP_NgENB-ID.c
index 73f6cae5e3..8b57db6d9e 100644
--- a/lib/asn1c/ngap/NGAP_NgENB-ID.c
+++ b/lib/asn1c/ngap/NGAP_NgENB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NgENB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_NgENB-ID.h b/lib/asn1c/ngap/NGAP_NgENB-ID.h
index 45ccd3c72c..e7836fa0e4 100644
--- a/lib/asn1c/ngap/NGAP_NgENB-ID.h
+++ b/lib/asn1c/ngap/NGAP_NgENB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NgENB_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.c b/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.c
index 9bc9d51346..652670f663 100644
--- a/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.c
+++ b/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NonDynamic5QIDescriptor.h"
diff --git a/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.h b/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.h
index 58f724bc42..008d64f423 100644
--- a/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.h
+++ b/lib/asn1c/ngap/NGAP_NonDynamic5QIDescriptor.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NonDynamic5QIDescriptor_H_
diff --git a/lib/asn1c/ngap/NGAP_NotAllowedTACs.c b/lib/asn1c/ngap/NGAP_NotAllowedTACs.c
index edcd9befcd..e3a2b0da8d 100644
--- a/lib/asn1c/ngap/NGAP_NotAllowedTACs.c
+++ b/lib/asn1c/ngap/NGAP_NotAllowedTACs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NotAllowedTACs.h"
diff --git a/lib/asn1c/ngap/NGAP_NotAllowedTACs.h b/lib/asn1c/ngap/NGAP_NotAllowedTACs.h
index 3ed78a0b75..2eb3170b30 100644
--- a/lib/asn1c/ngap/NGAP_NotAllowedTACs.h
+++ b/lib/asn1c/ngap/NGAP_NotAllowedTACs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NotAllowedTACs_H_
diff --git a/lib/asn1c/ngap/NGAP_NotificationCause.c b/lib/asn1c/ngap/NGAP_NotificationCause.c
index 46e07b2181..5bd962ca33 100644
--- a/lib/asn1c/ngap/NGAP_NotificationCause.c
+++ b/lib/asn1c/ngap/NGAP_NotificationCause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NotificationCause.h"
diff --git a/lib/asn1c/ngap/NGAP_NotificationCause.h b/lib/asn1c/ngap/NGAP_NotificationCause.h
index a4100ffe17..f4b9ddcf6f 100644
--- a/lib/asn1c/ngap/NGAP_NotificationCause.h
+++ b/lib/asn1c/ngap/NGAP_NotificationCause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NotificationCause_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NotificationCause_specs_1;
asn_struct_free_f NGAP_NotificationCause_free;
asn_struct_print_f NGAP_NotificationCause_print;
asn_constr_check_f NGAP_NotificationCause_constraint;
-jer_type_encoder_f NGAP_NotificationCause_encode_jer;
per_type_decoder_f NGAP_NotificationCause_decode_aper;
per_type_encoder_f NGAP_NotificationCause_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NotificationCell-Item.c b/lib/asn1c/ngap/NGAP_NotificationCell-Item.c
index 3c18a2f4d9..150afd38d8 100644
--- a/lib/asn1c/ngap/NGAP_NotificationCell-Item.c
+++ b/lib/asn1c/ngap/NGAP_NotificationCell-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NotificationCell-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_NotificationCell-Item.h b/lib/asn1c/ngap/NGAP_NotificationCell-Item.h
index 0cce0a579c..c82cd3f94f 100644
--- a/lib/asn1c/ngap/NGAP_NotificationCell-Item.h
+++ b/lib/asn1c/ngap/NGAP_NotificationCell-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NotificationCell_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_NotificationCellList.c b/lib/asn1c/ngap/NGAP_NotificationCellList.c
index 6eafaeacfc..28cb9586a0 100644
--- a/lib/asn1c/ngap/NGAP_NotificationCellList.c
+++ b/lib/asn1c/ngap/NGAP_NotificationCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NotificationCellList.h"
diff --git a/lib/asn1c/ngap/NGAP_NotificationCellList.h b/lib/asn1c/ngap/NGAP_NotificationCellList.h
index cefcdea8e2..3e122d1131 100644
--- a/lib/asn1c/ngap/NGAP_NotificationCellList.h
+++ b/lib/asn1c/ngap/NGAP_NotificationCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NotificationCellList_H_
diff --git a/lib/asn1c/ngap/NGAP_NotificationControl.c b/lib/asn1c/ngap/NGAP_NotificationControl.c
index 063e10ad39..7836947d9a 100644
--- a/lib/asn1c/ngap/NGAP_NotificationControl.c
+++ b/lib/asn1c/ngap/NGAP_NotificationControl.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NotificationControl.h"
diff --git a/lib/asn1c/ngap/NGAP_NotificationControl.h b/lib/asn1c/ngap/NGAP_NotificationControl.h
index c22c92cafc..19b33d7656 100644
--- a/lib/asn1c/ngap/NGAP_NotificationControl.h
+++ b/lib/asn1c/ngap/NGAP_NotificationControl.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NotificationControl_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NotificationControl_specs_1;
asn_struct_free_f NGAP_NotificationControl_free;
asn_struct_print_f NGAP_NotificationControl_print;
asn_constr_check_f NGAP_NotificationControl_constraint;
-jer_type_encoder_f NGAP_NotificationControl_encode_jer;
per_type_decoder_f NGAP_NotificationControl_decode_aper;
per_type_encoder_f NGAP_NotificationControl_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.c b/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.c
index ab41532b0a..6299a8b595 100644
--- a/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.c
+++ b/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NotifySourceNGRANNode.h"
diff --git a/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.h b/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.h
index b62ad1b284..ac4c9877d4 100644
--- a/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.h
+++ b/lib/asn1c/ngap/NGAP_NotifySourceNGRANNode.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NotifySourceNGRANNode_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NotifySourceNGRANNode_specs_1;
asn_struct_free_f NGAP_NotifySourceNGRANNode_free;
asn_struct_print_f NGAP_NotifySourceNGRANNode_print;
asn_constr_check_f NGAP_NotifySourceNGRANNode_constraint;
-jer_type_encoder_f NGAP_NotifySourceNGRANNode_encode_jer;
per_type_decoder_f NGAP_NotifySourceNGRANNode_decode_aper;
per_type_encoder_f NGAP_NotifySourceNGRANNode_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.c b/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.c
index 611aeb5cbc..3b122ed92f 100644
--- a/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.c
+++ b/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NumberOfBroadcasts.h"
diff --git a/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.h b/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.h
index 8eef484e33..e24744c4a1 100644
--- a/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.h
+++ b/lib/asn1c/ngap/NGAP_NumberOfBroadcasts.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NumberOfBroadcasts_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NumberOfBroadcasts;
asn_struct_free_f NGAP_NumberOfBroadcasts_free;
asn_struct_print_f NGAP_NumberOfBroadcasts_print;
asn_constr_check_f NGAP_NumberOfBroadcasts_constraint;
-jer_type_encoder_f NGAP_NumberOfBroadcasts_encode_jer;
per_type_decoder_f NGAP_NumberOfBroadcasts_decode_aper;
per_type_encoder_f NGAP_NumberOfBroadcasts_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.c b/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.c
index e6d4ff94a8..8f406726e1 100644
--- a/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.c
+++ b/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NumberOfBroadcastsRequested.h"
diff --git a/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.h b/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.h
index 3caa1c0945..d9ab4526b2 100644
--- a/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.h
+++ b/lib/asn1c/ngap/NGAP_NumberOfBroadcastsRequested.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NumberOfBroadcastsRequested_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_NumberOfBroadcastsRequested;
asn_struct_free_f NGAP_NumberOfBroadcastsRequested_free;
asn_struct_print_f NGAP_NumberOfBroadcastsRequested_print;
asn_constr_check_f NGAP_NumberOfBroadcastsRequested_constraint;
-jer_type_encoder_f NGAP_NumberOfBroadcastsRequested_encode_jer;
per_type_decoder_f NGAP_NumberOfBroadcastsRequested_decode_aper;
per_type_encoder_f NGAP_NumberOfBroadcastsRequested_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.c b/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.c
index b981e3b240..72fefb107a 100644
--- a/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.c
+++ b/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_NumberOfMeasurementReportingLevels.h"
diff --git a/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.h b/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.h
index 4a7db4a4e9..e854bc0cd5 100644
--- a/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.h
+++ b/lib/asn1c/ngap/NGAP_NumberOfMeasurementReportingLevels.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_NumberOfMeasurementReportingLevels_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_NumberOfMeasurementReportingLe
asn_struct_free_f NGAP_NumberOfMeasurementReportingLevels_free;
asn_struct_print_f NGAP_NumberOfMeasurementReportingLevels_print;
asn_constr_check_f NGAP_NumberOfMeasurementReportingLevels_constraint;
-jer_type_encoder_f NGAP_NumberOfMeasurementReportingLevels_encode_jer;
per_type_decoder_f NGAP_NumberOfMeasurementReportingLevels_decode_aper;
per_type_encoder_f NGAP_NumberOfMeasurementReportingLevels_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_OnboardingSupport.c b/lib/asn1c/ngap/NGAP_OnboardingSupport.c
index 3ecb4e82d0..3d494af591 100644
--- a/lib/asn1c/ngap/NGAP_OnboardingSupport.c
+++ b/lib/asn1c/ngap/NGAP_OnboardingSupport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_OnboardingSupport.h"
diff --git a/lib/asn1c/ngap/NGAP_OnboardingSupport.h b/lib/asn1c/ngap/NGAP_OnboardingSupport.h
index 78a55b51e3..8507f3eb0c 100644
--- a/lib/asn1c/ngap/NGAP_OnboardingSupport.h
+++ b/lib/asn1c/ngap/NGAP_OnboardingSupport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_OnboardingSupport_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_OnboardingSupport_specs_1;
asn_struct_free_f NGAP_OnboardingSupport_free;
asn_struct_print_f NGAP_OnboardingSupport_print;
asn_constr_check_f NGAP_OnboardingSupport_constraint;
-jer_type_encoder_f NGAP_OnboardingSupport_encode_jer;
per_type_decoder_f NGAP_OnboardingSupport_decode_aper;
per_type_encoder_f NGAP_OnboardingSupport_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_OverloadAction.c b/lib/asn1c/ngap/NGAP_OverloadAction.c
index 1d3c7e464f..9f5f94d59c 100644
--- a/lib/asn1c/ngap/NGAP_OverloadAction.c
+++ b/lib/asn1c/ngap/NGAP_OverloadAction.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_OverloadAction.h"
diff --git a/lib/asn1c/ngap/NGAP_OverloadAction.h b/lib/asn1c/ngap/NGAP_OverloadAction.h
index 121f6b349a..467ac0d442 100644
--- a/lib/asn1c/ngap/NGAP_OverloadAction.h
+++ b/lib/asn1c/ngap/NGAP_OverloadAction.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_OverloadAction_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_OverloadAction_specs_1;
asn_struct_free_f NGAP_OverloadAction_free;
asn_struct_print_f NGAP_OverloadAction_print;
asn_constr_check_f NGAP_OverloadAction_constraint;
-jer_type_encoder_f NGAP_OverloadAction_encode_jer;
per_type_decoder_f NGAP_OverloadAction_decode_aper;
per_type_encoder_f NGAP_OverloadAction_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_OverloadResponse.c b/lib/asn1c/ngap/NGAP_OverloadResponse.c
index 1b9f9f5662..22b4fcc890 100644
--- a/lib/asn1c/ngap/NGAP_OverloadResponse.c
+++ b/lib/asn1c/ngap/NGAP_OverloadResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_OverloadResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_OverloadResponse.h b/lib/asn1c/ngap/NGAP_OverloadResponse.h
index 35a8e11273..2568dc91b2 100644
--- a/lib/asn1c/ngap/NGAP_OverloadResponse.h
+++ b/lib/asn1c/ngap/NGAP_OverloadResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_OverloadResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_OverloadStart.c b/lib/asn1c/ngap/NGAP_OverloadStart.c
index 16e8805b0d..a8491fd792 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStart.c
+++ b/lib/asn1c/ngap/NGAP_OverloadStart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_OverloadStart.h"
diff --git a/lib/asn1c/ngap/NGAP_OverloadStart.h b/lib/asn1c/ngap/NGAP_OverloadStart.h
index ce432f5de8..8a70f0b206 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStart.h
+++ b/lib/asn1c/ngap/NGAP_OverloadStart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_OverloadStart_H_
diff --git a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.c b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.c
index afc6cef78d..9c0ed639e7 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.c
+++ b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_OverloadStartNSSAIItem.h"
diff --git a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.h b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.h
index 3408da93ac..60eacc36d2 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.h
+++ b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_OverloadStartNSSAIItem_H_
diff --git a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.c b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.c
index 99c298d27e..fabd7ae2ff 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.c
+++ b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_OverloadStartNSSAIList.h"
diff --git a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.h b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.h
index 9dacb9f7d5..bdbd0b61ed 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.h
+++ b/lib/asn1c/ngap/NGAP_OverloadStartNSSAIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_OverloadStartNSSAIList_H_
diff --git a/lib/asn1c/ngap/NGAP_OverloadStop.c b/lib/asn1c/ngap/NGAP_OverloadStop.c
index b9890acc20..d160b901e2 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStop.c
+++ b/lib/asn1c/ngap/NGAP_OverloadStop.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_OverloadStop.h"
diff --git a/lib/asn1c/ngap/NGAP_OverloadStop.h b/lib/asn1c/ngap/NGAP_OverloadStop.h
index 850dac1dfa..0b451e3852 100644
--- a/lib/asn1c/ngap/NGAP_OverloadStop.h
+++ b/lib/asn1c/ngap/NGAP_OverloadStop.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_OverloadStop_H_
diff --git a/lib/asn1c/ngap/NGAP_PC5FlowBitRates.c b/lib/asn1c/ngap/NGAP_PC5FlowBitRates.c
index 1a26301a49..7419ad2043 100644
--- a/lib/asn1c/ngap/NGAP_PC5FlowBitRates.c
+++ b/lib/asn1c/ngap/NGAP_PC5FlowBitRates.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PC5FlowBitRates.h"
diff --git a/lib/asn1c/ngap/NGAP_PC5FlowBitRates.h b/lib/asn1c/ngap/NGAP_PC5FlowBitRates.h
index fbf494ad83..45b70e684d 100644
--- a/lib/asn1c/ngap/NGAP_PC5FlowBitRates.h
+++ b/lib/asn1c/ngap/NGAP_PC5FlowBitRates.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PC5FlowBitRates_H_
diff --git a/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.c b/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.c
index f424b7c256..18a6001232 100644
--- a/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.c
+++ b/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PC5QoSFlowItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.h b/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.h
index bf941aa396..c487b26ec1 100644
--- a/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.h
+++ b/lib/asn1c/ngap/NGAP_PC5QoSFlowItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PC5QoSFlowItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PC5QoSFlowList.c b/lib/asn1c/ngap/NGAP_PC5QoSFlowList.c
index 26f44fa6a6..bcbf5bae30 100644
--- a/lib/asn1c/ngap/NGAP_PC5QoSFlowList.c
+++ b/lib/asn1c/ngap/NGAP_PC5QoSFlowList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PC5QoSFlowList.h"
diff --git a/lib/asn1c/ngap/NGAP_PC5QoSFlowList.h b/lib/asn1c/ngap/NGAP_PC5QoSFlowList.h
index bcc8f68b30..5227de9560 100644
--- a/lib/asn1c/ngap/NGAP_PC5QoSFlowList.h
+++ b/lib/asn1c/ngap/NGAP_PC5QoSFlowList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PC5QoSFlowList_H_
diff --git a/lib/asn1c/ngap/NGAP_PC5QoSParameters.c b/lib/asn1c/ngap/NGAP_PC5QoSParameters.c
index ef0a7f3e81..4c3e04d7f3 100644
--- a/lib/asn1c/ngap/NGAP_PC5QoSParameters.c
+++ b/lib/asn1c/ngap/NGAP_PC5QoSParameters.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PC5QoSParameters.h"
diff --git a/lib/asn1c/ngap/NGAP_PC5QoSParameters.h b/lib/asn1c/ngap/NGAP_PC5QoSParameters.h
index 5c833ff5e0..ee6c302709 100644
--- a/lib/asn1c/ngap/NGAP_PC5QoSParameters.h
+++ b/lib/asn1c/ngap/NGAP_PC5QoSParameters.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PC5QoSParameters_H_
diff --git a/lib/asn1c/ngap/NGAP_PCIListForMDT.c b/lib/asn1c/ngap/NGAP_PCIListForMDT.c
index db87125fa1..e2d46ed40a 100644
--- a/lib/asn1c/ngap/NGAP_PCIListForMDT.c
+++ b/lib/asn1c/ngap/NGAP_PCIListForMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PCIListForMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_PCIListForMDT.h b/lib/asn1c/ngap/NGAP_PCIListForMDT.h
index 49564b90a4..1e599d7bed 100644
--- a/lib/asn1c/ngap/NGAP_PCIListForMDT.h
+++ b/lib/asn1c/ngap/NGAP_PCIListForMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PCIListForMDT_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.c b/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.c
index 3870cd3291..21ea37447d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionAggregateMaximumBitRate.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.h b/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.h
index 270aea6c3e..40ff7afc9d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionAggregateMaximumBitRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionAggregateMaximumBitRate_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionID.c b/lib/asn1c/ngap/NGAP_PDUSessionID.c
index dbef1c7c37..8e518d1b48 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionID.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionID.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionID.h b/lib/asn1c/ngap/NGAP_PDUSessionID.h
index 86d61b9d09..9ec78570df 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionID.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PDUSessionID;
asn_struct_free_f NGAP_PDUSessionID_free;
asn_struct_print_f NGAP_PDUSessionID_print;
asn_constr_check_f NGAP_PDUSessionID_constraint;
-jer_type_encoder_f NGAP_PDUSessionID_encode_jer;
per_type_decoder_f NGAP_PDUSessionID_decode_aper;
per_type_encoder_f NGAP_PDUSessionID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionPairID.c b/lib/asn1c/ngap/NGAP_PDUSessionPairID.c
index 13ad58373d..2d07429434 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionPairID.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionPairID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionPairID.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionPairID.h b/lib/asn1c/ngap/NGAP_PDUSessionPairID.h
index 060e21a8dd..235f471561 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionPairID.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionPairID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionPairID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PDUSessionPairID;
asn_struct_free_f NGAP_PDUSessionPairID_free;
asn_struct_print_f NGAP_PDUSessionPairID_print;
asn_constr_check_f NGAP_PDUSessionPairID_constraint;
-jer_type_encoder_f NGAP_PDUSessionPairID_encode_jer;
per_type_decoder_f NGAP_PDUSessionPairID_decode_aper;
per_type_encoder_f NGAP_PDUSessionPairID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.c
index e148c87340..e7bb088a56 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceAdmittedItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.h
index bdacc506be..85a24fa2a3 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceAdmittedItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.c
index c4627912b5..0762df95af 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceAdmittedList.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.h
index 3e60fd2597..d8271f4992 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceAdmittedList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceAdmittedList_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.c
index d69b753fec..bc34134d56 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToModifyItemModCfm.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.h
index 0657fd0182..fab36f3733 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModCfm.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToModifyItemModCfm_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.c
index 12fd360769..e2eafbfe1d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToModifyItemModRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.h
index 656af9f95a..8c3805b71b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyItemModRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToModifyItemModRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.c
index 0a3a1c451c..4eaa0d6272 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToModifyListModCfm.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.h
index 6f7001281b..c60ba1673d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModCfm.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToModifyListModCfm_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.c
index 69c3724890..b59c350d15 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToModifyListModRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.h
index 4bb489d7c9..1a70cc4d6c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToModifyListModRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToModifyListModRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.c
index 3100941521..f3cca30479 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToResumeItemRESReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.h
index 68b39f9c67..d055c7c065 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToResumeItemRESReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.c
index 33cba36390..b7307778e4 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToResumeItemRESRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.h
index f2fb6b7adf..8d315ddcda 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeItemRESRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToResumeItemRESRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.c
index 68b1305ba6..366e8bbcca 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToResumeListRESReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.h
index d1d3ab6f99..91dcaa02c6 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToResumeListRESReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.c
index f099ae698c..a8c9a05d1a 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToResumeListRESRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.h
index 6cb72431ad..1420ec5310 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToResumeListRESRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToResumeListRESRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c
index 6a366eff08..6d71e5c2ed 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h
index 6271f3b0c1..8abfd5867a 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtFail.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupItemCxtFail_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c
index d2f2f3d4d7..e62c98bb2b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h
index 4d9d64430c..e51f238016 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemCxtRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupItemCxtRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.c
index 8004599fc2..2cccb8708d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupItemHOAck.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.h
index fb9d7f6b8c..922c661e5b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemHOAck.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupItemHOAck_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.c
index 8e246b515b..d903cbbaa9 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupItemPSReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.h
index 0921d56d6d..2c2209663f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemPSReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupItemPSReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.c
index 3a9776d35f..2b0ca4acd0 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupItemSURes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.h
index c6d89288a5..2e2793702c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupItemSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupItemSURes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.c
index 66e283748f..8418a8c147 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupListCxtFail.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.h
index 28056a2924..ecee9041fe 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtFail.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupListCxtFail_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.c
index 645d7de573..52a6c534d8 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupListCxtRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.h
index 2be9425d55..8be85e4dc2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListCxtRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupListCxtRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.c
index 317ba655a8..4c0d62c498 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupListHOAck.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.h
index 9eddcc17f8..cc3f0e86b3 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListHOAck.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupListHOAck_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.c
index b3a393e0ca..f66101fab5 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupListPSReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.h
index 8979c24e0b..0fd08d42eb 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListPSReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupListPSReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.c
index 5d9cd6ae50..ccebbaaf8e 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceFailedToSetupListSURes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.h
index eb287f2d13..34f38c532f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceFailedToSetupListSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceFailedToSetupListSURes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.c
index b6912bf995..35a19a46f5 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceHandoverItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.h
index 2c4174f0e0..97f5ab3113 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceHandoverItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.c
index 2021c7b5ba..366d0e2088 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceHandoverList.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.h
index 1da91b1c3f..a09c3dfee0 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceHandoverList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceHandoverList_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.c
index f3bc3374b0..06e3652368 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceInformationItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.h
index cff45dffe8..7ca367bc26 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceInformationItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.c
index ae7a62a955..17f97dcb49 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceInformationList.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.h
index e1f11f1f63..4172eabcca 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceInformationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceInformationList_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.c
index 08495b4c41..0eda45ba29 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceItemCxtRelCpl.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.h
index b231e44813..d4fe5bc142 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelCpl.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceItemCxtRelCpl_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.c
index 75239f30b4..430309c714 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceItemCxtRelReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.h
index af29a45dc2..fbc5a76107 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemCxtRelReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceItemCxtRelReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.c
index 06a091439f..2b62e88092 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceItemHORqd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.h
index 874660292d..6a6a225b31 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceItemHORqd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceItemHORqd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.c
index 5fce3b0cb6..f8c3a6b880 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceListCxtRelCpl.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.h
index 138873899c..b03a8d4382 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelCpl.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceListCxtRelCpl_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.c
index a74098962d..40896b1ec6 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceListCxtRelReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.h
index de8e4c125d..0788d442df 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceListCxtRelReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceListCxtRelReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.c
index e03bc545ed..6585a63683 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceListHORqd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.h
index f52a478488..8c6bbada30 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceListHORqd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceListHORqd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.c
index b740757a63..f560b8a07a 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyConfirm.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.h
index 34809c5852..f4194f3465 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirm.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyConfirm_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.c
index 10f02b681f..0088086497 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyConfirmTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.h
index 6ecbdf5262..0ecf831a6f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyConfirmTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyConfirmTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.c
index 7723ecbca3..4c3df4e576 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.h
index ed290d5e31..b97bd141b2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.c
index b3cc49c37a..94f9b3d228 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyIndicationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.h
index 76dd028d73..7438187c5a 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyIndicationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c
index e4117d0205..49f03f2b98 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h
index f53d4daf85..8b707daa53 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyIndicationUnsuccessfulTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.c
index a14c8ca076..8da98b0aa9 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyItemModCfm.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.h
index f483b962e9..883ef17ed7 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModCfm.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyItemModCfm_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.c
index 589c3018d4..61ded96c53 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyItemModInd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.h
index 9787836b8e..ebe520e770 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyItemModInd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.c
index d7fa1fed50..c503520402 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyItemModReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.h
index a090c48eee..5ce3dbd187 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyItemModReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.c
index 1e93960b18..f5551077a3 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyItemModRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.h
index af64736014..0b23f91e44 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyItemModRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyItemModRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.c
index 33ea96e55b..1b8b045455 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyListModCfm.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.h
index 81ba357bbc..ba65606fb2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModCfm.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyListModCfm_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.c
index 46e54a61d9..53d9748880 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyListModInd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.h
index 2ffb0520f3..6bb1e29fa7 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyListModInd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.c
index 804df2424c..80497ba03f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyListModReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.h
index be3ff07732..e58351f595 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyListModReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.c
index 2c48fcc9a6..8670bca227 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyListModRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.h
index 75a1e5bc9b..a188b878eb 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyListModRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyListModRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.c
index 501402f99e..9a813c10fb 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.h
index 2b5c975a49..53f4416302 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.c
index da68e1e754..beacb27d6c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.h
index e125098123..6b9aad7487 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.c
index cf6f7008ea..f21ee42491 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.h
index d691b0bb11..65cfe45eae 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.c
index 4f65150209..34018cd41f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyResponseTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.h
index dea005a576..e9df8f0128 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyResponseTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyResponseTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c
index 14955b68d3..51092e07a3 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h
index 8b7832b858..ef30f6f1d7 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceModifyUnsuccessfulTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceModifyUnsuccessfulTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.c
index 6d2930fb6e..7eb4e4668f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceNotify.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.h
index d662c37fff..e74ff04682 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotify.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceNotify_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.c
index 7aea6f23db..aa8bd32d69 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceNotifyItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.h
index 14b3ddce34..4d13b7a5c1 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceNotifyItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.c
index ca52d93fc2..739e888c50 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceNotifyList.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.h
index f980f39efc..15eae2e622 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceNotifyList_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.c
index b8e4ca9b74..d1b995733b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceNotifyReleasedTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.h
index 8bafdf5f72..1809e61fd7 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyReleasedTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceNotifyReleasedTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.c
index e6546d4597..0a51434c47 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceNotifyTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.h
index 283c31666d..cdaed2e532 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceNotifyTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceNotifyTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.c
index 280f919689..46f6c9ea29 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleaseCommand.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.h
index e1054a2cb1..aca5306082 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommand.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleaseCommand_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.c
index cea1a01776..1884f0ae7f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleaseCommandTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.h
index 28f8fda76e..4aef02b167 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseCommandTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleaseCommandTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.c
index 262cabc869..2dccd4c7d2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleaseResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.h
index 4b799824e6..54db50d08b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleaseResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.c
index adb5d4138f..8cff08a22b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleaseResponseTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.h
index 388bdb172b..ee96df2181 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleaseResponseTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleaseResponseTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.c
index 74a9e0ea79..0742b05b10 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedItemNot.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.h
index f1649e5c35..42d1691a09 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemNot.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedItemNot_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.c
index 6c79e66283..8b19c253d2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedItemPSAck.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.h
index e9fbeee2aa..961bef02b8 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSAck.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedItemPSAck_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.c
index a5e774d9ab..f65be6f997 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedItemPSFail.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.h
index 7603ea3349..0aaec3cdf2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemPSFail.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedItemPSFail_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.c
index c647ee04b8..1b2b7eca49 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedItemRelRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.h
index 1858600209..1b584e99c7 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedItemRelRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedItemRelRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.c
index ef09f9607e..19c1db6f62 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedListNot.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.h
index 570dd295e4..4c02ab887b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListNot.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedListNot_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.c
index 202bde101d..4c1c44272f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedListPSAck.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.h
index c562ebe2d8..6ca9eca6da 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSAck.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedListPSAck_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.c
index f20a37d283..f08f757bda 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedListPSFail.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.h
index 5d29724481..cc8d38e039 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListPSFail.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedListPSFail_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.c
index ae4af2a239..125c6ecdd9 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceReleasedListRelRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.h
index cf57a52474..2ae9f104bd 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceReleasedListRelRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceReleasedListRelRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.c
index cc2d57028d..998e57740c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceResumeItemRESReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.h
index 9a36a32516..e1f34628fb 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceResumeItemRESReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.c
index d4591f6212..7d0b2d97f8 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceResumeItemRESRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.h
index 3ecbd5007f..58b7e30205 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeItemRESRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceResumeItemRESRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.c
index 9f0b4a07a5..3d5f04b1d9 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceResumeListRESReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.h
index bb85599d46..14ab1bf78b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceResumeListRESReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.c
index b021fff426..ad82faf71b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceResumeListRESRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.h
index deb4f42d1e..e51fb0547c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceResumeListRESRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceResumeListRESRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.c
index 5ceaa8ac76..324005fbb3 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSecondaryRATUsageItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.h
index 05d1d021f2..105e12a836 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSecondaryRATUsageItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.c
index 5c670c07ea..8742ffd7ab 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSecondaryRATUsageList.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.h
index a80e0e1d72..4988220ace 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSecondaryRATUsageList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSecondaryRATUsageList_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.c
index 4a2363f205..9d2d67455e 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupItemCxtReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.h
index bd3ea3ef5e..fa0bdb46f2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupItemCxtReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.c
index b79530b7bf..3fa5c80d02 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupItemCxtRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.h
index 80e0aeaca1..d2b088be3d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemCxtRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupItemCxtRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.c
index ae3f006d12..071f0c9fb2 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupItemHOReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.h
index 6b63f6e43e..4240a19a2d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemHOReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupItemHOReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.c
index 0b8fcea8fd..2a6b260e57 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupItemSUReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.h
index 8635018a92..f2d38c68af 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSUReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupItemSUReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.c
index b407440fbc..21a732a1ba 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupItemSURes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.h
index 745a8542fb..23ab3f1594 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupItemSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupItemSURes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.c
index 8a518a7d64..ec645a6140 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupListCxtReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.h
index a9720e59bd..2afbc518c5 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupListCxtReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.c
index e720ff2c3d..6682b042a7 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupListCxtRes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.h
index 0e01954328..15d8307531 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListCxtRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupListCxtRes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.c
index e9d202e4db..d784881a2f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupListHOReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.h
index 189862c4bd..0b9544d3c8 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListHOReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupListHOReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.c
index 0a2989066b..7d64712e91 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupListSUReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.h
index 71dcaaed4c..6abbbca4d7 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSUReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupListSUReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.c
index ca8353c55b..1d0e8b8ff3 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupListSURes.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.h
index a1a01802e3..d97b9d49a4 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupListSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupListSURes_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.c
index 1e967709ff..1dec84647c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.h
index 0e65258d7b..50fc751f23 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.c
index b9b6475dca..97bfd3f39b 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.h
index f8d1ddc260..6527251c99 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.c
index c3b0f7be89..86d33272f9 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.h
index 4de7ea2c5e..2fa5f2c917 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.c
index 1ab70ed6e4..a448438c8f 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupResponseTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.h
index a998891c71..2be0b94e61 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupResponseTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupResponseTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c
index 852176cfd7..2fc5878627 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h
index 05d4ce32cf..82139b937a 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSetupUnsuccessfulTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSetupUnsuccessfulTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.c
index 3edcb82799..889e224c7c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSuspendItemSUSReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.h
index f96c20ff0a..bc78e495c4 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendItemSUSReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSuspendItemSUSReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.c
index 6ec4df07af..cccac3f423 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSuspendListSUSReq.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.h
index 69b19d1257..ede8113685 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSuspendListSUSReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSuspendListSUSReq_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.c
index f972a46f28..d161573695 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSwitchedItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.h
index d400879a47..d94f3db935 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSwitchedItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.c
index 98342f6965..22eea3df14 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceSwitchedList.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.h
index f125090d65..0655df110c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceSwitchedList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceSwitchedList_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.c
index 0786a1f940..b622b01ff6 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceToBeSwitchedDLItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.h
index 610f290191..f42b70c83a 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceToBeSwitchedDLItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.c
index 70c38f235f..118eaa3fdf 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceToBeSwitchedDLList.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.h
index 604308918d..833c8b69bf 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToBeSwitchedDLList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceToBeSwitchedDLList_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.c
index 3f34438647..56dad6994d 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceToReleaseItemHOCmd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.h
index 5872a862ef..3807233a1e 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemHOCmd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceToReleaseItemHOCmd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.c
index 3eb4618545..20674c4635 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceToReleaseItemRelCmd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.h
index 3d0d42f17a..c4626cb788 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseItemRelCmd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceToReleaseItemRelCmd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.c
index cf18bffb60..c34d470e73 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceToReleaseListHOCmd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.h
index af1b1b413f..684aea1c41 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListHOCmd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceToReleaseListHOCmd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.c b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.c
index b263a4b2f7..734aee3434 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionResourceToReleaseListRelCmd.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.h b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.h
index b3c5221719..3679c976a8 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionResourceToReleaseListRelCmd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionResourceToReleaseListRelCmd_H_
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionType.c b/lib/asn1c/ngap/NGAP_PDUSessionType.c
index 77d8a8f05e..c59622b57e 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionType.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionType.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionType.h b/lib/asn1c/ngap/NGAP_PDUSessionType.h
index f872cb33b8..b68e44d714 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionType.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionType_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PDUSessionType_specs_1;
asn_struct_free_f NGAP_PDUSessionType_free;
asn_struct_print_f NGAP_PDUSessionType_print;
asn_constr_check_f NGAP_PDUSessionType_constraint;
-jer_type_encoder_f NGAP_PDUSessionType_encode_jer;
per_type_decoder_f NGAP_PDUSessionType_decode_aper;
per_type_encoder_f NGAP_PDUSessionType_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.c b/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.c
index 42c0b2f70a..c0f210393c 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.c
+++ b/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PDUSessionUsageReport.h"
diff --git a/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.h b/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.h
index f0e5990799..6070f9e36e 100644
--- a/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.h
+++ b/lib/asn1c/ngap/NGAP_PDUSessionUsageReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PDUSessionUsageReport_H_
diff --git a/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.c b/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.c
index 3a923b24cd..9b99507c92 100644
--- a/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.c
+++ b/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PEIPSassistanceInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.h b/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.h
index a202a31af4..8ed6530744 100644
--- a/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.h
+++ b/lib/asn1c/ngap/NGAP_PEIPSassistanceInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PEIPSassistanceInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.c b/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.c
index f8364d07ae..a810fef132 100644
--- a/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.c
+++ b/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PLMNAreaBasedQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.h b/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.h
index db584d4759..425f662621 100644
--- a/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.h
+++ b/lib/asn1c/ngap/NGAP_PLMNAreaBasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PLMNAreaBasedQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_PLMNIdentity.c b/lib/asn1c/ngap/NGAP_PLMNIdentity.c
index 97e4a6a5d1..fdaa43d142 100644
--- a/lib/asn1c/ngap/NGAP_PLMNIdentity.c
+++ b/lib/asn1c/ngap/NGAP_PLMNIdentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PLMNIdentity.h"
diff --git a/lib/asn1c/ngap/NGAP_PLMNIdentity.h b/lib/asn1c/ngap/NGAP_PLMNIdentity.h
index 99ef10e290..ec739c8daf 100644
--- a/lib/asn1c/ngap/NGAP_PLMNIdentity.h
+++ b/lib/asn1c/ngap/NGAP_PLMNIdentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PLMNIdentity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PLMNIdentity;
asn_struct_free_f NGAP_PLMNIdentity_free;
asn_struct_print_f NGAP_PLMNIdentity_print;
asn_constr_check_f NGAP_PLMNIdentity_constraint;
-jer_type_encoder_f NGAP_PLMNIdentity_encode_jer;
per_type_decoder_f NGAP_PLMNIdentity_decode_aper;
per_type_encoder_f NGAP_PLMNIdentity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PLMNListforQMC.c b/lib/asn1c/ngap/NGAP_PLMNListforQMC.c
index ea670627c8..0896caf405 100644
--- a/lib/asn1c/ngap/NGAP_PLMNListforQMC.c
+++ b/lib/asn1c/ngap/NGAP_PLMNListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PLMNListforQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_PLMNListforQMC.h b/lib/asn1c/ngap/NGAP_PLMNListforQMC.h
index fc7fa3520e..77bc7b0971 100644
--- a/lib/asn1c/ngap/NGAP_PLMNListforQMC.h
+++ b/lib/asn1c/ngap/NGAP_PLMNListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PLMNListforQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_PLMNSupportItem.c b/lib/asn1c/ngap/NGAP_PLMNSupportItem.c
index 7c2594ca74..70db097236 100644
--- a/lib/asn1c/ngap/NGAP_PLMNSupportItem.c
+++ b/lib/asn1c/ngap/NGAP_PLMNSupportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PLMNSupportItem.h"
diff --git a/lib/asn1c/ngap/NGAP_PLMNSupportItem.h b/lib/asn1c/ngap/NGAP_PLMNSupportItem.h
index 76d71f8cc7..a3668e3f2a 100644
--- a/lib/asn1c/ngap/NGAP_PLMNSupportItem.h
+++ b/lib/asn1c/ngap/NGAP_PLMNSupportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PLMNSupportItem_H_
diff --git a/lib/asn1c/ngap/NGAP_PLMNSupportList.c b/lib/asn1c/ngap/NGAP_PLMNSupportList.c
index c5e8dcbee8..4368068a1b 100644
--- a/lib/asn1c/ngap/NGAP_PLMNSupportList.c
+++ b/lib/asn1c/ngap/NGAP_PLMNSupportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PLMNSupportList.h"
diff --git a/lib/asn1c/ngap/NGAP_PLMNSupportList.h b/lib/asn1c/ngap/NGAP_PLMNSupportList.h
index bdd4836624..937da8b500 100644
--- a/lib/asn1c/ngap/NGAP_PLMNSupportList.h
+++ b/lib/asn1c/ngap/NGAP_PLMNSupportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PLMNSupportList_H_
diff --git a/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.c b/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.c
index cdf618b6aa..b066d57297 100644
--- a/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.c
+++ b/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PNI-NPN-MobilityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.h b/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.h
index c11af62715..6d315d1a3f 100644
--- a/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.h
+++ b/lib/asn1c/ngap/NGAP_PNI-NPN-MobilityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PNI_NPN_MobilityInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_PWSCancelRequest.c b/lib/asn1c/ngap/NGAP_PWSCancelRequest.c
index 28935db253..176fdbf81d 100644
--- a/lib/asn1c/ngap/NGAP_PWSCancelRequest.c
+++ b/lib/asn1c/ngap/NGAP_PWSCancelRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PWSCancelRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_PWSCancelRequest.h b/lib/asn1c/ngap/NGAP_PWSCancelRequest.h
index c8f7ff5020..ebd93fd940 100644
--- a/lib/asn1c/ngap/NGAP_PWSCancelRequest.h
+++ b/lib/asn1c/ngap/NGAP_PWSCancelRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PWSCancelRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_PWSCancelResponse.c b/lib/asn1c/ngap/NGAP_PWSCancelResponse.c
index 39ea24ec4e..49f1802d76 100644
--- a/lib/asn1c/ngap/NGAP_PWSCancelResponse.c
+++ b/lib/asn1c/ngap/NGAP_PWSCancelResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PWSCancelResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_PWSCancelResponse.h b/lib/asn1c/ngap/NGAP_PWSCancelResponse.h
index 5594817d2b..6ca313b06d 100644
--- a/lib/asn1c/ngap/NGAP_PWSCancelResponse.h
+++ b/lib/asn1c/ngap/NGAP_PWSCancelResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PWSCancelResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.c b/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.c
index 18a6d03b56..a588a65c7b 100644
--- a/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.c
+++ b/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PWSFailedCellIDList.h"
diff --git a/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.h b/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.h
index e65e420114..4dba6f641e 100644
--- a/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.h
+++ b/lib/asn1c/ngap/NGAP_PWSFailedCellIDList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PWSFailedCellIDList_H_
diff --git a/lib/asn1c/ngap/NGAP_PWSFailureIndication.c b/lib/asn1c/ngap/NGAP_PWSFailureIndication.c
index a1210d729a..d247204e25 100644
--- a/lib/asn1c/ngap/NGAP_PWSFailureIndication.c
+++ b/lib/asn1c/ngap/NGAP_PWSFailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PWSFailureIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_PWSFailureIndication.h b/lib/asn1c/ngap/NGAP_PWSFailureIndication.h
index 04ee737b82..05ca5bb198 100644
--- a/lib/asn1c/ngap/NGAP_PWSFailureIndication.h
+++ b/lib/asn1c/ngap/NGAP_PWSFailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PWSFailureIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_PWSRestartIndication.c b/lib/asn1c/ngap/NGAP_PWSRestartIndication.c
index fe72e16918..3af2a6392f 100644
--- a/lib/asn1c/ngap/NGAP_PWSRestartIndication.c
+++ b/lib/asn1c/ngap/NGAP_PWSRestartIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PWSRestartIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_PWSRestartIndication.h b/lib/asn1c/ngap/NGAP_PWSRestartIndication.h
index 8bda3810a0..895f718e5f 100644
--- a/lib/asn1c/ngap/NGAP_PWSRestartIndication.h
+++ b/lib/asn1c/ngap/NGAP_PWSRestartIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PWSRestartIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_PacketDelayBudget.c b/lib/asn1c/ngap/NGAP_PacketDelayBudget.c
index f813c5c5e9..2c34e4f5d4 100644
--- a/lib/asn1c/ngap/NGAP_PacketDelayBudget.c
+++ b/lib/asn1c/ngap/NGAP_PacketDelayBudget.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PacketDelayBudget.h"
diff --git a/lib/asn1c/ngap/NGAP_PacketDelayBudget.h b/lib/asn1c/ngap/NGAP_PacketDelayBudget.h
index 325bd0d603..28d695e864 100644
--- a/lib/asn1c/ngap/NGAP_PacketDelayBudget.h
+++ b/lib/asn1c/ngap/NGAP_PacketDelayBudget.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PacketDelayBudget_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PacketDelayBudget;
asn_struct_free_f NGAP_PacketDelayBudget_free;
asn_struct_print_f NGAP_PacketDelayBudget_print;
asn_constr_check_f NGAP_PacketDelayBudget_constraint;
-jer_type_encoder_f NGAP_PacketDelayBudget_encode_jer;
per_type_decoder_f NGAP_PacketDelayBudget_decode_aper;
per_type_encoder_f NGAP_PacketDelayBudget_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PacketErrorRate.c b/lib/asn1c/ngap/NGAP_PacketErrorRate.c
index 6a0097f420..5421fbd922 100644
--- a/lib/asn1c/ngap/NGAP_PacketErrorRate.c
+++ b/lib/asn1c/ngap/NGAP_PacketErrorRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PacketErrorRate.h"
diff --git a/lib/asn1c/ngap/NGAP_PacketErrorRate.h b/lib/asn1c/ngap/NGAP_PacketErrorRate.h
index 19b901f92f..17e95a2da7 100644
--- a/lib/asn1c/ngap/NGAP_PacketErrorRate.h
+++ b/lib/asn1c/ngap/NGAP_PacketErrorRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PacketErrorRate_H_
diff --git a/lib/asn1c/ngap/NGAP_PacketLossRate.c b/lib/asn1c/ngap/NGAP_PacketLossRate.c
index c2adb3869f..60749af319 100644
--- a/lib/asn1c/ngap/NGAP_PacketLossRate.c
+++ b/lib/asn1c/ngap/NGAP_PacketLossRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PacketLossRate.h"
diff --git a/lib/asn1c/ngap/NGAP_PacketLossRate.h b/lib/asn1c/ngap/NGAP_PacketLossRate.h
index c528bd965c..56582b42e7 100644
--- a/lib/asn1c/ngap/NGAP_PacketLossRate.h
+++ b/lib/asn1c/ngap/NGAP_PacketLossRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PacketLossRate_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PacketLossRate;
asn_struct_free_f NGAP_PacketLossRate_free;
asn_struct_print_f NGAP_PacketLossRate_print;
asn_constr_check_f NGAP_PacketLossRate_constraint;
-jer_type_encoder_f NGAP_PacketLossRate_encode_jer;
per_type_decoder_f NGAP_PacketLossRate_decode_aper;
per_type_encoder_f NGAP_PacketLossRate_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Paging.c b/lib/asn1c/ngap/NGAP_Paging.c
index 7fbd6d0ae1..73437e2cd7 100644
--- a/lib/asn1c/ngap/NGAP_Paging.c
+++ b/lib/asn1c/ngap/NGAP_Paging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Paging.h"
diff --git a/lib/asn1c/ngap/NGAP_Paging.h b/lib/asn1c/ngap/NGAP_Paging.h
index 399bef6c71..e0571d4551 100644
--- a/lib/asn1c/ngap/NGAP_Paging.h
+++ b/lib/asn1c/ngap/NGAP_Paging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Paging_H_
diff --git a/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.c b/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.c
index 6ee7411bde..89c684669d 100644
--- a/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.c
+++ b/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingAssisDataforCEcapabUE.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.h b/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.h
index e47d7993c9..4b7dee9d40 100644
--- a/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.h
+++ b/lib/asn1c/ngap/NGAP_PagingAssisDataforCEcapabUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingAssisDataforCEcapabUE_H_
diff --git a/lib/asn1c/ngap/NGAP_PagingAttemptCount.c b/lib/asn1c/ngap/NGAP_PagingAttemptCount.c
index 796e1af721..4fab5ebf12 100644
--- a/lib/asn1c/ngap/NGAP_PagingAttemptCount.c
+++ b/lib/asn1c/ngap/NGAP_PagingAttemptCount.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingAttemptCount.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingAttemptCount.h b/lib/asn1c/ngap/NGAP_PagingAttemptCount.h
index ebc5340bd4..cea2c539a5 100644
--- a/lib/asn1c/ngap/NGAP_PagingAttemptCount.h
+++ b/lib/asn1c/ngap/NGAP_PagingAttemptCount.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingAttemptCount_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PagingAttemptCount;
asn_struct_free_f NGAP_PagingAttemptCount_free;
asn_struct_print_f NGAP_PagingAttemptCount_print;
asn_constr_check_f NGAP_PagingAttemptCount_constraint;
-jer_type_encoder_f NGAP_PagingAttemptCount_encode_jer;
per_type_decoder_f NGAP_PagingAttemptCount_decode_aper;
per_type_encoder_f NGAP_PagingAttemptCount_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PagingAttemptInformation.c b/lib/asn1c/ngap/NGAP_PagingAttemptInformation.c
index e0b074a9ed..971545d97e 100644
--- a/lib/asn1c/ngap/NGAP_PagingAttemptInformation.c
+++ b/lib/asn1c/ngap/NGAP_PagingAttemptInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingAttemptInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingAttemptInformation.h b/lib/asn1c/ngap/NGAP_PagingAttemptInformation.h
index 1c2370eb48..d6e7f0c5c4 100644
--- a/lib/asn1c/ngap/NGAP_PagingAttemptInformation.h
+++ b/lib/asn1c/ngap/NGAP_PagingAttemptInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingAttemptInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_PagingCause.c b/lib/asn1c/ngap/NGAP_PagingCause.c
index e43df75ad9..787e829d22 100644
--- a/lib/asn1c/ngap/NGAP_PagingCause.c
+++ b/lib/asn1c/ngap/NGAP_PagingCause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingCause.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingCause.h b/lib/asn1c/ngap/NGAP_PagingCause.h
index d24dc18220..a61d10cb2e 100644
--- a/lib/asn1c/ngap/NGAP_PagingCause.h
+++ b/lib/asn1c/ngap/NGAP_PagingCause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingCause_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PagingCause_specs_1;
asn_struct_free_f NGAP_PagingCause_free;
asn_struct_print_f NGAP_PagingCause_print;
asn_constr_check_f NGAP_PagingCause_constraint;
-jer_type_encoder_f NGAP_PagingCause_encode_jer;
per_type_decoder_f NGAP_PagingCause_decode_aper;
per_type_encoder_f NGAP_PagingCause_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.c b/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.c
index e6e3ae016f..9f94f34468 100644
--- a/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.c
+++ b/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingCauseIndicationForVoiceService.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.h b/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.h
index d291b0af95..cadfdd67ad 100644
--- a/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.h
+++ b/lib/asn1c/ngap/NGAP_PagingCauseIndicationForVoiceService.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingCauseIndicationForVoiceService_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PagingCauseIndicationForVoiceS
asn_struct_free_f NGAP_PagingCauseIndicationForVoiceService_free;
asn_struct_print_f NGAP_PagingCauseIndicationForVoiceService_print;
asn_constr_check_f NGAP_PagingCauseIndicationForVoiceService_constraint;
-jer_type_encoder_f NGAP_PagingCauseIndicationForVoiceService_encode_jer;
per_type_decoder_f NGAP_PagingCauseIndicationForVoiceService_decode_aper;
per_type_encoder_f NGAP_PagingCauseIndicationForVoiceService_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PagingDRX.c b/lib/asn1c/ngap/NGAP_PagingDRX.c
index be82fe14aa..dfc6b1bfde 100644
--- a/lib/asn1c/ngap/NGAP_PagingDRX.c
+++ b/lib/asn1c/ngap/NGAP_PagingDRX.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingDRX.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingDRX.h b/lib/asn1c/ngap/NGAP_PagingDRX.h
index 7c8fe37550..56a2f9b556 100644
--- a/lib/asn1c/ngap/NGAP_PagingDRX.h
+++ b/lib/asn1c/ngap/NGAP_PagingDRX.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingDRX_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PagingDRX_specs_1;
asn_struct_free_f NGAP_PagingDRX_free;
asn_struct_print_f NGAP_PagingDRX_print;
asn_constr_check_f NGAP_PagingDRX_constraint;
-jer_type_encoder_f NGAP_PagingDRX_encode_jer;
per_type_decoder_f NGAP_PagingDRX_decode_aper;
per_type_encoder_f NGAP_PagingDRX_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PagingOrigin.c b/lib/asn1c/ngap/NGAP_PagingOrigin.c
index 4ee791559c..053a1918b4 100644
--- a/lib/asn1c/ngap/NGAP_PagingOrigin.c
+++ b/lib/asn1c/ngap/NGAP_PagingOrigin.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingOrigin.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingOrigin.h b/lib/asn1c/ngap/NGAP_PagingOrigin.h
index 4fbbb2688e..0212104e80 100644
--- a/lib/asn1c/ngap/NGAP_PagingOrigin.h
+++ b/lib/asn1c/ngap/NGAP_PagingOrigin.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingOrigin_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PagingOrigin_specs_1;
asn_struct_free_f NGAP_PagingOrigin_free;
asn_struct_print_f NGAP_PagingOrigin_print;
asn_constr_check_f NGAP_PagingOrigin_constraint;
-jer_type_encoder_f NGAP_PagingOrigin_encode_jer;
per_type_decoder_f NGAP_PagingOrigin_decode_aper;
per_type_encoder_f NGAP_PagingOrigin_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PagingPriority.c b/lib/asn1c/ngap/NGAP_PagingPriority.c
index e99317e2d0..b9a6613537 100644
--- a/lib/asn1c/ngap/NGAP_PagingPriority.c
+++ b/lib/asn1c/ngap/NGAP_PagingPriority.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingPriority.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingPriority.h b/lib/asn1c/ngap/NGAP_PagingPriority.h
index 1957ee7cea..aef1238714 100644
--- a/lib/asn1c/ngap/NGAP_PagingPriority.h
+++ b/lib/asn1c/ngap/NGAP_PagingPriority.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingPriority_H_
@@ -43,7 +43,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PagingPriority_specs_1;
asn_struct_free_f NGAP_PagingPriority_free;
asn_struct_print_f NGAP_PagingPriority_print;
asn_constr_check_f NGAP_PagingPriority_constraint;
-jer_type_encoder_f NGAP_PagingPriority_encode_jer;
per_type_decoder_f NGAP_PagingPriority_decode_aper;
per_type_encoder_f NGAP_PagingPriority_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.c b/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.c
index 4fe979f6ab..a4349092de 100644
--- a/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.c
+++ b/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PagingProbabilityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.h b/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.h
index e6eec31c7f..6f86bd3f7f 100644
--- a/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.h
+++ b/lib/asn1c/ngap/NGAP_PagingProbabilityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PagingProbabilityInformation_H_
@@ -56,7 +56,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PagingProbabilityInformation_s
asn_struct_free_f NGAP_PagingProbabilityInformation_free;
asn_struct_print_f NGAP_PagingProbabilityInformation_print;
asn_constr_check_f NGAP_PagingProbabilityInformation_constraint;
-jer_type_encoder_f NGAP_PagingProbabilityInformation_encode_jer;
per_type_decoder_f NGAP_PagingProbabilityInformation_decode_aper;
per_type_encoder_f NGAP_PagingProbabilityInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequest.c b/lib/asn1c/ngap/NGAP_PathSwitchRequest.c
index 037b139781..d95ce33bfb 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequest.c
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PathSwitchRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequest.h b/lib/asn1c/ngap/NGAP_PathSwitchRequest.h
index a419719bde..bd42b0f7be 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequest.h
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PathSwitchRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.c b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.c
index 8a8b5ff766..fa615d40df 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.c
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PathSwitchRequestAcknowledge.h"
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.h b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.h
index ec042af835..6d43e02212 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.h
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PathSwitchRequestAcknowledge_H_
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.c b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.c
index 4ead1e1d6b..24e19c9461 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PathSwitchRequestAcknowledgeTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.h b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.h
index d8efb22028..5e9c9396e1 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestAcknowledgeTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PathSwitchRequestAcknowledgeTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.c b/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.c
index abf45a3a36..8d138c40a3 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.c
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PathSwitchRequestFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.h b/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.h
index fcf886081e..58b3f4e010 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.h
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PathSwitchRequestFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.c b/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.c
index ac8f191d2e..9af28544ad 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PathSwitchRequestSetupFailedTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.h b/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.h
index 82a2b72c79..575b305fdf 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestSetupFailedTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PathSwitchRequestSetupFailedTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.c b/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.c
index 27cf2ae42f..2baf5b9b1c 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PathSwitchRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.h b/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.h
index a2e2c6bc7b..4c461960ec 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PathSwitchRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.c b/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.c
index 6232a69f0b..c4353f2d58 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.c
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PathSwitchRequestUnsuccessfulTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.h b/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.h
index f981770119..ad30522e5d 100644
--- a/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.h
+++ b/lib/asn1c/ngap/NGAP_PathSwitchRequestUnsuccessfulTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PathSwitchRequestUnsuccessfulTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_PedestrianUE.c b/lib/asn1c/ngap/NGAP_PedestrianUE.c
index ff71f73285..89be6bbe44 100644
--- a/lib/asn1c/ngap/NGAP_PedestrianUE.c
+++ b/lib/asn1c/ngap/NGAP_PedestrianUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PedestrianUE.h"
diff --git a/lib/asn1c/ngap/NGAP_PedestrianUE.h b/lib/asn1c/ngap/NGAP_PedestrianUE.h
index 4988320404..a178eb1954 100644
--- a/lib/asn1c/ngap/NGAP_PedestrianUE.h
+++ b/lib/asn1c/ngap/NGAP_PedestrianUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PedestrianUE_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PedestrianUE_specs_1;
asn_struct_free_f NGAP_PedestrianUE_free;
asn_struct_print_f NGAP_PedestrianUE_print;
asn_constr_check_f NGAP_PedestrianUE_constraint;
-jer_type_encoder_f NGAP_PedestrianUE_encode_jer;
per_type_decoder_f NGAP_PedestrianUE_decode_aper;
per_type_encoder_f NGAP_PedestrianUE_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.c b/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.c
index fe34e5a610..c7b0253b35 100644
--- a/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.c
+++ b/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PeriodicRegistrationUpdateTimer.h"
diff --git a/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.h b/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.h
index 438f63a36a..ad8e56202c 100644
--- a/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.h
+++ b/lib/asn1c/ngap/NGAP_PeriodicRegistrationUpdateTimer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PeriodicRegistrationUpdateTimer_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PeriodicRegistrationUpdateTimer;
asn_struct_free_f NGAP_PeriodicRegistrationUpdateTimer_free;
asn_struct_print_f NGAP_PeriodicRegistrationUpdateTimer_print;
asn_constr_check_f NGAP_PeriodicRegistrationUpdateTimer_constraint;
-jer_type_encoder_f NGAP_PeriodicRegistrationUpdateTimer_encode_jer;
per_type_decoder_f NGAP_PeriodicRegistrationUpdateTimer_decode_aper;
per_type_encoder_f NGAP_PeriodicRegistrationUpdateTimer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.c b/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.c
index c2eb016cc0..ccc6b69c00 100644
--- a/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.c
+++ b/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PeriodicReportingIEs.h"
diff --git a/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.h b/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.h
index 0d28bc65ce..d3e864e687 100644
--- a/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.h
+++ b/lib/asn1c/ngap/NGAP_PeriodicReportingIEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PeriodicReportingIEs_H_
diff --git a/lib/asn1c/ngap/NGAP_Periodicity.c b/lib/asn1c/ngap/NGAP_Periodicity.c
index 6d9787cd27..b785374951 100644
--- a/lib/asn1c/ngap/NGAP_Periodicity.c
+++ b/lib/asn1c/ngap/NGAP_Periodicity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Periodicity.h"
diff --git a/lib/asn1c/ngap/NGAP_Periodicity.h b/lib/asn1c/ngap/NGAP_Periodicity.h
index 3bf5f4b36a..ccea904c39 100644
--- a/lib/asn1c/ngap/NGAP_Periodicity.h
+++ b/lib/asn1c/ngap/NGAP_Periodicity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Periodicity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_Periodicity;
asn_struct_free_f NGAP_Periodicity_free;
asn_struct_print_f NGAP_Periodicity_print;
asn_constr_check_f NGAP_Periodicity_constraint;
-jer_type_encoder_f NGAP_Periodicity_encode_jer;
per_type_decoder_f NGAP_Periodicity_decode_aper;
per_type_encoder_f NGAP_Periodicity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PortNumber.c b/lib/asn1c/ngap/NGAP_PortNumber.c
index 359e5494c9..2e036c7683 100644
--- a/lib/asn1c/ngap/NGAP_PortNumber.c
+++ b/lib/asn1c/ngap/NGAP_PortNumber.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PortNumber.h"
diff --git a/lib/asn1c/ngap/NGAP_PortNumber.h b/lib/asn1c/ngap/NGAP_PortNumber.h
index 0a868f0c92..49598acf84 100644
--- a/lib/asn1c/ngap/NGAP_PortNumber.h
+++ b/lib/asn1c/ngap/NGAP_PortNumber.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PortNumber_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PortNumber;
asn_struct_free_f NGAP_PortNumber_free;
asn_struct_print_f NGAP_PortNumber_print;
asn_constr_check_f NGAP_PortNumber_constraint;
-jer_type_encoder_f NGAP_PortNumber_encode_jer;
per_type_decoder_f NGAP_PortNumber_decode_aper;
per_type_encoder_f NGAP_PortNumber_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Pre-emptionCapability.c b/lib/asn1c/ngap/NGAP_Pre-emptionCapability.c
index bcecf5e885..ef2d14fd50 100644
--- a/lib/asn1c/ngap/NGAP_Pre-emptionCapability.c
+++ b/lib/asn1c/ngap/NGAP_Pre-emptionCapability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Pre-emptionCapability.h"
diff --git a/lib/asn1c/ngap/NGAP_Pre-emptionCapability.h b/lib/asn1c/ngap/NGAP_Pre-emptionCapability.h
index 5d997cfa79..022ec4b080 100644
--- a/lib/asn1c/ngap/NGAP_Pre-emptionCapability.h
+++ b/lib/asn1c/ngap/NGAP_Pre-emptionCapability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Pre_emptionCapability_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Pre_emptionCapability_specs_1;
asn_struct_free_f NGAP_Pre_emptionCapability_free;
asn_struct_print_f NGAP_Pre_emptionCapability_print;
asn_constr_check_f NGAP_Pre_emptionCapability_constraint;
-jer_type_encoder_f NGAP_Pre_emptionCapability_encode_jer;
per_type_decoder_f NGAP_Pre_emptionCapability_decode_aper;
per_type_encoder_f NGAP_Pre_emptionCapability_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.c b/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.c
index bc5d17d525..f549d12e10 100644
--- a/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.c
+++ b/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Pre-emptionVulnerability.h"
diff --git a/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.h b/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.h
index 0925195a6d..2510689513 100644
--- a/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.h
+++ b/lib/asn1c/ngap/NGAP_Pre-emptionVulnerability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Pre_emptionVulnerability_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Pre_emptionVulnerability_specs
asn_struct_free_f NGAP_Pre_emptionVulnerability_free;
asn_struct_print_f NGAP_Pre_emptionVulnerability_print;
asn_constr_check_f NGAP_Pre_emptionVulnerability_constraint;
-jer_type_encoder_f NGAP_Pre_emptionVulnerability_encode_jer;
per_type_decoder_f NGAP_Pre_emptionVulnerability_decode_aper;
per_type_encoder_f NGAP_Pre_emptionVulnerability_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Presence.c b/lib/asn1c/ngap/NGAP_Presence.c
index 79f91052f2..6f1f890488 100644
--- a/lib/asn1c/ngap/NGAP_Presence.c
+++ b/lib/asn1c/ngap/NGAP_Presence.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Presence.h"
diff --git a/lib/asn1c/ngap/NGAP_Presence.h b/lib/asn1c/ngap/NGAP_Presence.h
index 2e0f8e94e6..50abd7f0b0 100644
--- a/lib/asn1c/ngap/NGAP_Presence.h
+++ b/lib/asn1c/ngap/NGAP_Presence.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Presence_H_
@@ -35,7 +35,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Presence_specs_1;
asn_struct_free_f NGAP_Presence_free;
asn_struct_print_f NGAP_Presence_print;
asn_constr_check_f NGAP_Presence_constraint;
-jer_type_encoder_f NGAP_Presence_encode_jer;
per_type_decoder_f NGAP_Presence_decode_aper;
per_type_encoder_f NGAP_Presence_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PriorityLevelARP.c b/lib/asn1c/ngap/NGAP_PriorityLevelARP.c
index d5f4c62a35..edc399857c 100644
--- a/lib/asn1c/ngap/NGAP_PriorityLevelARP.c
+++ b/lib/asn1c/ngap/NGAP_PriorityLevelARP.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PriorityLevelARP.h"
diff --git a/lib/asn1c/ngap/NGAP_PriorityLevelARP.h b/lib/asn1c/ngap/NGAP_PriorityLevelARP.h
index 80de03242b..21fa1a5e83 100644
--- a/lib/asn1c/ngap/NGAP_PriorityLevelARP.h
+++ b/lib/asn1c/ngap/NGAP_PriorityLevelARP.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PriorityLevelARP_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PriorityLevelARP;
asn_struct_free_f NGAP_PriorityLevelARP_free;
asn_struct_print_f NGAP_PriorityLevelARP_print;
asn_constr_check_f NGAP_PriorityLevelARP_constraint;
-jer_type_encoder_f NGAP_PriorityLevelARP_encode_jer;
per_type_decoder_f NGAP_PriorityLevelARP_decode_aper;
per_type_encoder_f NGAP_PriorityLevelARP_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PriorityLevelQos.c b/lib/asn1c/ngap/NGAP_PriorityLevelQos.c
index 3950e37da0..0c0a4d786a 100644
--- a/lib/asn1c/ngap/NGAP_PriorityLevelQos.c
+++ b/lib/asn1c/ngap/NGAP_PriorityLevelQos.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PriorityLevelQos.h"
diff --git a/lib/asn1c/ngap/NGAP_PriorityLevelQos.h b/lib/asn1c/ngap/NGAP_PriorityLevelQos.h
index 9d0466e9a7..020cada14a 100644
--- a/lib/asn1c/ngap/NGAP_PriorityLevelQos.h
+++ b/lib/asn1c/ngap/NGAP_PriorityLevelQos.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PriorityLevelQos_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_PriorityLevelQos;
asn_struct_free_f NGAP_PriorityLevelQos_free;
asn_struct_print_f NGAP_PriorityLevelQos_print;
asn_constr_check_f NGAP_PriorityLevelQos_constraint;
-jer_type_encoder_f NGAP_PriorityLevelQos_encode_jer;
per_type_decoder_f NGAP_PriorityLevelQos_decode_aper;
per_type_encoder_f NGAP_PriorityLevelQos_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PrivacyIndicator.c b/lib/asn1c/ngap/NGAP_PrivacyIndicator.c
index 44f3c4fc52..9664890324 100644
--- a/lib/asn1c/ngap/NGAP_PrivacyIndicator.c
+++ b/lib/asn1c/ngap/NGAP_PrivacyIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PrivacyIndicator.h"
diff --git a/lib/asn1c/ngap/NGAP_PrivacyIndicator.h b/lib/asn1c/ngap/NGAP_PrivacyIndicator.h
index 92982045c9..5f31cb9dff 100644
--- a/lib/asn1c/ngap/NGAP_PrivacyIndicator.h
+++ b/lib/asn1c/ngap/NGAP_PrivacyIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PrivacyIndicator_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_PrivacyIndicator_specs_1;
asn_struct_free_f NGAP_PrivacyIndicator_free;
asn_struct_print_f NGAP_PrivacyIndicator_print;
asn_constr_check_f NGAP_PrivacyIndicator_constraint;
-jer_type_encoder_f NGAP_PrivacyIndicator_encode_jer;
per_type_decoder_f NGAP_PrivacyIndicator_decode_aper;
per_type_encoder_f NGAP_PrivacyIndicator_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_PrivateIE-Container.c b/lib/asn1c/ngap/NGAP_PrivateIE-Container.c
index 78f517250e..e8d1a26abf 100644
--- a/lib/asn1c/ngap/NGAP_PrivateIE-Container.c
+++ b/lib/asn1c/ngap/NGAP_PrivateIE-Container.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PrivateIE-Container.h"
diff --git a/lib/asn1c/ngap/NGAP_PrivateIE-Container.h b/lib/asn1c/ngap/NGAP_PrivateIE-Container.h
index 4a313d8b27..810f855102 100644
--- a/lib/asn1c/ngap/NGAP_PrivateIE-Container.h
+++ b/lib/asn1c/ngap/NGAP_PrivateIE-Container.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PrivateIE_Container_H_
diff --git a/lib/asn1c/ngap/NGAP_PrivateIE-Field.c b/lib/asn1c/ngap/NGAP_PrivateIE-Field.c
index 26947f009f..e1ef632b02 100644
--- a/lib/asn1c/ngap/NGAP_PrivateIE-Field.c
+++ b/lib/asn1c/ngap/NGAP_PrivateIE-Field.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PrivateIE-Field.h"
diff --git a/lib/asn1c/ngap/NGAP_PrivateIE-Field.h b/lib/asn1c/ngap/NGAP_PrivateIE-Field.h
index dd44aa8f45..49a5baf1e7 100644
--- a/lib/asn1c/ngap/NGAP_PrivateIE-Field.h
+++ b/lib/asn1c/ngap/NGAP_PrivateIE-Field.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PrivateIE_Field_H_
diff --git a/lib/asn1c/ngap/NGAP_PrivateIE-ID.c b/lib/asn1c/ngap/NGAP_PrivateIE-ID.c
index 509373275e..065f4c816b 100644
--- a/lib/asn1c/ngap/NGAP_PrivateIE-ID.c
+++ b/lib/asn1c/ngap/NGAP_PrivateIE-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PrivateIE-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_PrivateIE-ID.h b/lib/asn1c/ngap/NGAP_PrivateIE-ID.h
index d16decc894..05d9345b98 100644
--- a/lib/asn1c/ngap/NGAP_PrivateIE-ID.h
+++ b/lib/asn1c/ngap/NGAP_PrivateIE-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PrivateIE_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_PrivateMessage.c b/lib/asn1c/ngap/NGAP_PrivateMessage.c
index d66a3308b5..02c5f9cb36 100644
--- a/lib/asn1c/ngap/NGAP_PrivateMessage.c
+++ b/lib/asn1c/ngap/NGAP_PrivateMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_PrivateMessage.h"
diff --git a/lib/asn1c/ngap/NGAP_PrivateMessage.h b/lib/asn1c/ngap/NGAP_PrivateMessage.h
index 27a2824818..ab61293b8b 100644
--- a/lib/asn1c/ngap/NGAP_PrivateMessage.h
+++ b/lib/asn1c/ngap/NGAP_PrivateMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_PrivateMessage_H_
diff --git a/lib/asn1c/ngap/NGAP_ProcedureCode.c b/lib/asn1c/ngap/NGAP_ProcedureCode.c
index 3d0aa5d7ce..0d185538e4 100644
--- a/lib/asn1c/ngap/NGAP_ProcedureCode.c
+++ b/lib/asn1c/ngap/NGAP_ProcedureCode.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProcedureCode.h"
diff --git a/lib/asn1c/ngap/NGAP_ProcedureCode.h b/lib/asn1c/ngap/NGAP_ProcedureCode.h
index d36b1df99a..331368ce41 100644
--- a/lib/asn1c/ngap/NGAP_ProcedureCode.h
+++ b/lib/asn1c/ngap/NGAP_ProcedureCode.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProcedureCode_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProcedureCode;
asn_struct_free_f NGAP_ProcedureCode_free;
asn_struct_print_f NGAP_ProcedureCode_print;
asn_constr_check_f NGAP_ProcedureCode_constraint;
-jer_type_encoder_f NGAP_ProcedureCode_encode_jer;
per_type_decoder_f NGAP_ProcedureCode_decode_aper;
per_type_encoder_f NGAP_ProcedureCode_encode_aper;
#define NGAP_ProcedureCode_id_AMFConfigurationUpdate ((NGAP_ProcedureCode_t)0)
diff --git a/lib/asn1c/ngap/NGAP_ProcedureStageChoice.c b/lib/asn1c/ngap/NGAP_ProcedureStageChoice.c
index 219f79a04c..e627f9aa46 100644
--- a/lib/asn1c/ngap/NGAP_ProcedureStageChoice.c
+++ b/lib/asn1c/ngap/NGAP_ProcedureStageChoice.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProcedureStageChoice.h"
diff --git a/lib/asn1c/ngap/NGAP_ProcedureStageChoice.h b/lib/asn1c/ngap/NGAP_ProcedureStageChoice.h
index 25ebb7597d..a6387ef51f 100644
--- a/lib/asn1c/ngap/NGAP_ProcedureStageChoice.h
+++ b/lib/asn1c/ngap/NGAP_ProcedureStageChoice.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProcedureStageChoice_H_
diff --git a/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.c b/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.c
index 5e981d7fe6..ff5d49f67e 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolExtensionContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.h b/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.h
index 8bdfe3cff3..053c339950 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolExtensionContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolExtensionContainer_H_
diff --git a/lib/asn1c/ngap/NGAP_ProtocolExtensionField.c b/lib/asn1c/ngap/NGAP_ProtocolExtensionField.c
index 7e968807aa..147a4ba832 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolExtensionField.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolExtensionField.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolExtensionField.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolExtensionField.h b/lib/asn1c/ngap/NGAP_ProtocolExtensionField.h
index ff03981b57..ece52c8a45 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolExtensionField.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolExtensionField.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolExtensionField_H_
diff --git a/lib/asn1c/ngap/NGAP_ProtocolExtensionID.c b/lib/asn1c/ngap/NGAP_ProtocolExtensionID.c
index d5f6e5e6b4..0be06dee51 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolExtensionID.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolExtensionID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolExtensionID.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolExtensionID.h b/lib/asn1c/ngap/NGAP_ProtocolExtensionID.h
index cc739ac763..f4e79d861a 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolExtensionID.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolExtensionID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolExtensionID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolExtensionID;
asn_struct_free_f NGAP_ProtocolExtensionID_free;
asn_struct_print_f NGAP_ProtocolExtensionID_print;
asn_constr_check_f NGAP_ProtocolExtensionID_constraint;
-jer_type_encoder_f NGAP_ProtocolExtensionID_encode_jer;
per_type_decoder_f NGAP_ProtocolExtensionID_decode_aper;
per_type_encoder_f NGAP_ProtocolExtensionID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-Container.c b/lib/asn1c/ngap/NGAP_ProtocolIE-Container.c
index bbf27aff31..ac7cd8762a 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-Container.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-Container.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolIE-Container.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-Container.h b/lib/asn1c/ngap/NGAP_ProtocolIE-Container.h
index e98e9a6c01..299ea005a4 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-Container.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-Container.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolIE_Container_H_
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.c b/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.c
index 6b2abcaf71..7a88ffa386 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolIE-ContainerList.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.h b/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.h
index 42fbcd72fd..7bb522c292 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-ContainerList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolIE_ContainerList_H_
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-Field.c b/lib/asn1c/ngap/NGAP_ProtocolIE-Field.c
index 639bd22140..1227fa6b90 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-Field.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-Field.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolIE-Field.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-Field.h b/lib/asn1c/ngap/NGAP_ProtocolIE-Field.h
index cf940bcaca..44ad4897da 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-Field.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-Field.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolIE_Field_H_
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-ID.c b/lib/asn1c/ngap/NGAP_ProtocolIE-ID.c
index 699a1e190d..f59870c636 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-ID.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolIE-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-ID.h b/lib/asn1c/ngap/NGAP_ProtocolIE-ID.h
index ef6c09d8c8..e74545aa54 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-ID.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolIE_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_ID;
asn_struct_free_f NGAP_ProtocolIE_ID_free;
asn_struct_print_f NGAP_ProtocolIE_ID_print;
asn_constr_check_f NGAP_ProtocolIE_ID_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_ID_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_ID_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_ID_encode_aper;
#define NGAP_ProtocolIE_ID_id_AllowedNSSAI ((NGAP_ProtocolIE_ID_t)0)
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.c b/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.c
index ca84830f18..4d51eb5f92 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.c
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ProtocolIE-SingleContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.h b/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.h
index a363bbee32..93475359a5 100644
--- a/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.h
+++ b/lib/asn1c/ngap/NGAP_ProtocolIE-SingleContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-Containers"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ProtocolIE_SingleContainer_H_
@@ -89,448 +89,384 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P0;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P0_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P0_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P0_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P0_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P0_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P0_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P1;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P1_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P1_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P1_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P1_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P1_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P1_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P2;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P2_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P2_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P2_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P2_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P2_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P2_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P3;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P3_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P3_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P3_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P3_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P3_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P3_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P4;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P4_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P4_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P4_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P4_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P4_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P4_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P5;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P5_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P5_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P5_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P5_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P5_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P5_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P6;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P6_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P6_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P6_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P6_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P6_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P6_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P7;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P7_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P7_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P7_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P7_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P7_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P7_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P8;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P8_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P8_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P8_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P8_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P8_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P8_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P9;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P9_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P9_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P9_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P9_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P9_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P9_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P10;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P10_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P10_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P10_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P10_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P10_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P10_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P11;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P11_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P11_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P11_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P11_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P11_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P11_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P12;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P12_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P12_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P12_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P12_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P12_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P12_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P13;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P13_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P13_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P13_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P13_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P13_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P13_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P14;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P14_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P14_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P14_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P14_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P14_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P14_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P15;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P15_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P15_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P15_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P15_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P15_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P15_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P16;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P16_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P16_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P16_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P16_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P16_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P16_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P17;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P17_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P17_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P17_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P17_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P17_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P17_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P18;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P18_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P18_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P18_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P18_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P18_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P18_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P19;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P19_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P19_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P19_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P19_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P19_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P19_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P20;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P20_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P20_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P20_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P20_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P20_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P20_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P21;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P21_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P21_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P21_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P21_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P21_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P21_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P22;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P22_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P22_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P22_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P22_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P22_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P22_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P23;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P23_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P23_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P23_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P23_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P23_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P23_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P24;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P24_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P24_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P24_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P24_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P24_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P24_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P25;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P25_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P25_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P25_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P25_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P25_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P25_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P26;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P26_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P26_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P26_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P26_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P26_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P26_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P27;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P27_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P27_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P27_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P27_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P27_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P27_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P28;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P28_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P28_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P28_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P28_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P28_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P28_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P29;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P29_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P29_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P29_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P29_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P29_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P29_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P30;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P30_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P30_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P30_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P30_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P30_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P30_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P31;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P31_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P31_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P31_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P31_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P31_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P31_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P32;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P32_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P32_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P32_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P32_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P32_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P32_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P33;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P33_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P33_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P33_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P33_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P33_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P33_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P34;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P34_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P34_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P34_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P34_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P34_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P34_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P35;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P35_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P35_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P35_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P35_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P35_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P35_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P36;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P36_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P36_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P36_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P36_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P36_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P36_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P37;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P37_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P37_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P37_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P37_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P37_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P37_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P38;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P38_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P38_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P38_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P38_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P38_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P38_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P39;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P39_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P39_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P39_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P39_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P39_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P39_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P40;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P40_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P40_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P40_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P40_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P40_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P40_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P41;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P41_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P41_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P41_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P41_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P41_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P41_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P42;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P42_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P42_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P42_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P42_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P42_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P42_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P43;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P43_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P43_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P43_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P43_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P43_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P43_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P44;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P44_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P44_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P44_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P44_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P44_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P44_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P45;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P45_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P45_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P45_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P45_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P45_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P45_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P46;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P46_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P46_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P46_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P46_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P46_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P46_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P47;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P47_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P47_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P47_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P47_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P47_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P47_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P48;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P48_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P48_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P48_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P48_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P48_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P48_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P49;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P49_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P49_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P49_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P49_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P49_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P49_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P50;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P50_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P50_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P50_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P50_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P50_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P50_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P51;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P51_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P51_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P51_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P51_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P51_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P51_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P52;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P52_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P52_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P52_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P52_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P52_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P52_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P53;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P53_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P53_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P53_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P53_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P53_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P53_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P54;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P54_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P54_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P54_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P54_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P54_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P54_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P55;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P55_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P55_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P55_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P55_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P55_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P55_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P56;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P56_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P56_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P56_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P56_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P56_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P56_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P57;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P57_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P57_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P57_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P57_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P57_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P57_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P58;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P58_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P58_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P58_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P58_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P58_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P58_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P59;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P59_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P59_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P59_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P59_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P59_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P59_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P60;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P60_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P60_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P60_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P60_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P60_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P60_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P61;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P61_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P61_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P61_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P61_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P61_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P61_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P62;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P62_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P62_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P62_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P62_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P62_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P62_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_NGAP_ProtocolIE_SingleContainer_11857P63;
asn_struct_free_f NGAP_ProtocolIE_SingleContainer_11857P63_free;
asn_struct_print_f NGAP_ProtocolIE_SingleContainer_11857P63_print;
asn_constr_check_f NGAP_ProtocolIE_SingleContainer_11857P63_constraint;
-jer_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P63_encode_jer;
per_type_decoder_f NGAP_ProtocolIE_SingleContainer_11857P63_decode_aper;
per_type_encoder_f NGAP_ProtocolIE_SingleContainer_11857P63_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_QMCConfigInfo.c b/lib/asn1c/ngap/NGAP_QMCConfigInfo.c
index 64c48a77c4..c6ee00ecc9 100644
--- a/lib/asn1c/ngap/NGAP_QMCConfigInfo.c
+++ b/lib/asn1c/ngap/NGAP_QMCConfigInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QMCConfigInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_QMCConfigInfo.h b/lib/asn1c/ngap/NGAP_QMCConfigInfo.h
index 226dc14e82..f86e6bc9a5 100644
--- a/lib/asn1c/ngap/NGAP_QMCConfigInfo.h
+++ b/lib/asn1c/ngap/NGAP_QMCConfigInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QMCConfigInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_QMCDeactivation.c b/lib/asn1c/ngap/NGAP_QMCDeactivation.c
index 55ebf3997a..150313e666 100644
--- a/lib/asn1c/ngap/NGAP_QMCDeactivation.c
+++ b/lib/asn1c/ngap/NGAP_QMCDeactivation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QMCDeactivation.h"
diff --git a/lib/asn1c/ngap/NGAP_QMCDeactivation.h b/lib/asn1c/ngap/NGAP_QMCDeactivation.h
index db8a408ffa..8040eb422f 100644
--- a/lib/asn1c/ngap/NGAP_QMCDeactivation.h
+++ b/lib/asn1c/ngap/NGAP_QMCDeactivation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QMCDeactivation_H_
diff --git a/lib/asn1c/ngap/NGAP_QoEReference.c b/lib/asn1c/ngap/NGAP_QoEReference.c
index 702336bf20..161b133bd0 100644
--- a/lib/asn1c/ngap/NGAP_QoEReference.c
+++ b/lib/asn1c/ngap/NGAP_QoEReference.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QoEReference.h"
diff --git a/lib/asn1c/ngap/NGAP_QoEReference.h b/lib/asn1c/ngap/NGAP_QoEReference.h
index cb521a8be6..4132ecf218 100644
--- a/lib/asn1c/ngap/NGAP_QoEReference.h
+++ b/lib/asn1c/ngap/NGAP_QoEReference.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QoEReference_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_QoEReference;
asn_struct_free_f NGAP_QoEReference_free;
asn_struct_print_f NGAP_QoEReference_print;
asn_constr_check_f NGAP_QoEReference_constraint;
-jer_type_encoder_f NGAP_QoEReference_encode_jer;
per_type_decoder_f NGAP_QoEReference_decode_aper;
per_type_encoder_f NGAP_QoEReference_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_QoEReferenceList.c b/lib/asn1c/ngap/NGAP_QoEReferenceList.c
index 171985ede2..4c61f874ac 100644
--- a/lib/asn1c/ngap/NGAP_QoEReferenceList.c
+++ b/lib/asn1c/ngap/NGAP_QoEReferenceList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QoEReferenceList.h"
diff --git a/lib/asn1c/ngap/NGAP_QoEReferenceList.h b/lib/asn1c/ngap/NGAP_QoEReferenceList.h
index c559ace966..d218ed91df 100644
--- a/lib/asn1c/ngap/NGAP_QoEReferenceList.h
+++ b/lib/asn1c/ngap/NGAP_QoEReferenceList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QoEReferenceList_H_
diff --git a/lib/asn1c/ngap/NGAP_QoSFlowList.c b/lib/asn1c/ngap/NGAP_QoSFlowList.c
index fd18d2eadb..1cf1bbe366 100644
--- a/lib/asn1c/ngap/NGAP_QoSFlowList.c
+++ b/lib/asn1c/ngap/NGAP_QoSFlowList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QoSFlowList.h"
diff --git a/lib/asn1c/ngap/NGAP_QoSFlowList.h b/lib/asn1c/ngap/NGAP_QoSFlowList.h
index 75a5473578..2e4ac76d0f 100644
--- a/lib/asn1c/ngap/NGAP_QoSFlowList.h
+++ b/lib/asn1c/ngap/NGAP_QoSFlowList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QoSFlowList_H_
diff --git a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.c b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.c
index b8f34e8992..216a34db64 100644
--- a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.c
+++ b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QoSFlowsUsageReport-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.h b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.h
index 9fd983e733..6b6d5536a3 100644
--- a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.h
+++ b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReport-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QoSFlowsUsageReport_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.c b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.c
index ca2862385c..98ca8b7aa8 100644
--- a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.c
+++ b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QoSFlowsUsageReportList.h"
diff --git a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.h b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.h
index 9cd7f81d7d..c91f4d3f02 100644
--- a/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.h
+++ b/lib/asn1c/ngap/NGAP_QoSFlowsUsageReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QoSFlowsUsageReportList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosCharacteristics.c b/lib/asn1c/ngap/NGAP_QosCharacteristics.c
index f65ce89f22..2d670e044f 100644
--- a/lib/asn1c/ngap/NGAP_QosCharacteristics.c
+++ b/lib/asn1c/ngap/NGAP_QosCharacteristics.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosCharacteristics.h"
diff --git a/lib/asn1c/ngap/NGAP_QosCharacteristics.h b/lib/asn1c/ngap/NGAP_QosCharacteristics.h
index a323b37935..ed09835252 100644
--- a/lib/asn1c/ngap/NGAP_QosCharacteristics.h
+++ b/lib/asn1c/ngap/NGAP_QosCharacteristics.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosCharacteristics_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.c b/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.c
index aa9893728f..619e6a21fe 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowAcceptedItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.h b/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.h
index ce8a0dd787..3458ed2e19 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowAcceptedItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowAcceptedItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.c b/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.c
index a9350c5936..adc546fe3c 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowAcceptedList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.h b/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.h
index f2c423a296..7f3c7e8fae 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowAcceptedList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowAcceptedList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.c b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.c
index 8ec0b2b62e..c9dbc1b37b 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowAddOrModifyRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.h b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.h
index 7d379ee1d2..1339330f56 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowAddOrModifyRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.c b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.c
index a26b9793fe..5fd49d9121 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowAddOrModifyRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.h b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.h
index 4e36df832f..2d21b260d8 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowAddOrModifyRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.c b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.c
index bfa8a63726..f97f5596fd 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowAddOrModifyResponseItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.h b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.h
index f1eae44e60..6869952fb6 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowAddOrModifyResponseItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.c b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.c
index 2859c662e3..c82e9f187e 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowAddOrModifyResponseList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.h b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.h
index 8a840b887b..34211b86d1 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowAddOrModifyResponseList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowAddOrModifyResponseList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.c b/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.c
index 1344e90b1b..aee8d35c25 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowFeedbackItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.h b/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.h
index 4449e4ad98..dcf5274042 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowFeedbackItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowFeedbackItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.c b/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.c
index 41ea01848c..012d270927 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowFeedbackList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.h b/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.h
index 674e6624a8..1cc4e1843c 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowFeedbackList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowFeedbackList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowIdentifier.c b/lib/asn1c/ngap/NGAP_QosFlowIdentifier.c
index e1624c0645..04283d7e86 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowIdentifier.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowIdentifier.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowIdentifier.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowIdentifier.h b/lib/asn1c/ngap/NGAP_QosFlowIdentifier.h
index 623da0b4fc..1d3ad1bed1 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowIdentifier.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowIdentifier.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowIdentifier_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_QosFlowIdentifier;
asn_struct_free_f NGAP_QosFlowIdentifier_free;
asn_struct_print_f NGAP_QosFlowIdentifier_print;
asn_constr_check_f NGAP_QosFlowIdentifier_constraint;
-jer_type_encoder_f NGAP_QosFlowIdentifier_encode_jer;
per_type_decoder_f NGAP_QosFlowIdentifier_decode_aper;
per_type_encoder_f NGAP_QosFlowIdentifier_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_QosFlowInformationItem.c b/lib/asn1c/ngap/NGAP_QosFlowInformationItem.c
index ad6d060b12..c79f85da90 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowInformationItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowInformationItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowInformationItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowInformationItem.h b/lib/asn1c/ngap/NGAP_QosFlowInformationItem.h
index 86722a2941..b74e722c10 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowInformationItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowInformationItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowInformationItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowInformationList.c b/lib/asn1c/ngap/NGAP_QosFlowInformationList.c
index 80408cfb99..99cd3365f1 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowInformationList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowInformationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowInformationList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowInformationList.h b/lib/asn1c/ngap/NGAP_QosFlowInformationList.h
index c6a766df4a..dad17afbcd 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowInformationList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowInformationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowInformationList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.c b/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.c
index 0e71dde6ee..37d8e2f1df 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowItemWithDataForwarding.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.h b/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.h
index d5f21d3eee..34b16b4a33 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowItemWithDataForwarding.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowItemWithDataForwarding_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.c b/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.c
index 7098c118d9..5cdae18349 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowLevelQosParameters.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.h b/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.h
index 9e286c0dd8..6888a35184 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowLevelQosParameters.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowLevelQosParameters_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowListWithCause.c b/lib/asn1c/ngap/NGAP_QosFlowListWithCause.c
index ded07833d0..86e255c010 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowListWithCause.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowListWithCause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowListWithCause.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowListWithCause.h b/lib/asn1c/ngap/NGAP_QosFlowListWithCause.h
index 6651aa6899..ad7ed1842f 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowListWithCause.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowListWithCause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowListWithCause_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.c b/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.c
index 861ab88fef..e10cb9bdb5 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowListWithDataForwarding.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.h b/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.h
index 82b9e54a88..10252984fc 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowListWithDataForwarding.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowListWithDataForwarding_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.c b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.c
index baded26ce9..391148a988 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowModifyConfirmItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.h b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.h
index 5037cf30ab..9836297ad7 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowModifyConfirmItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.c b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.c
index 4e09cb5c81..e2d87ea34d 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowModifyConfirmList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.h b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.h
index 58c53b1f6b..047a966e11 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowModifyConfirmList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowModifyConfirmList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.c b/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.c
index eb4d62452b..a5b29a4e99 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowNotifyItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.h b/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.h
index 11106239dd..7b8a4d81dd 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowNotifyItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowNotifyItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowNotifyList.c b/lib/asn1c/ngap/NGAP_QosFlowNotifyList.c
index a1ba5235db..956cc68242 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowNotifyList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowNotifyList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowNotifyList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowNotifyList.h b/lib/asn1c/ngap/NGAP_QosFlowNotifyList.h
index baf84d519f..a163430ed3 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowNotifyList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowNotifyList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowNotifyList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowParametersItem.c b/lib/asn1c/ngap/NGAP_QosFlowParametersItem.c
index 7916f4ec7c..df443cc658 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowParametersItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowParametersItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowParametersItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowParametersItem.h b/lib/asn1c/ngap/NGAP_QosFlowParametersItem.h
index 838acfc80a..8b232fd37c 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowParametersItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowParametersItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowParametersItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowParametersList.c b/lib/asn1c/ngap/NGAP_QosFlowParametersList.c
index 6aacb1ea3b..595c86c250 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowParametersList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowParametersList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowParametersList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowParametersList.h b/lib/asn1c/ngap/NGAP_QosFlowParametersList.h
index 23b823de6c..bdb36fccf2 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowParametersList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowParametersList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowParametersList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.c b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.c
index 654b12a8d2..13afe94311 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowPerTNLInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.h b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.h
index 6760c7a75e..a6fe7a1f06 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowPerTNLInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.c b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.c
index c47cfaeef2..1e7384cdc4 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowPerTNLInformationItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.h b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.h
index 4d94b4c69c..688c4ca7af 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowPerTNLInformationItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.c b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.c
index 1cff5f4c7b..58f688b3fd 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowPerTNLInformationList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.h b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.h
index 9ebb71a14f..7e2092207c 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowPerTNLInformationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowPerTNLInformationList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.c b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.c
index a96d7103f2..0bb89282c2 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowSetupRequestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.h b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.h
index 5f4256bd9b..61bc75703f 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowSetupRequestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.c b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.c
index 85960144e9..801fa6b004 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowSetupRequestList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.h b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.h
index 680adbabec..b7e3eee8bb 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowSetupRequestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowSetupRequestList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.c b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.c
index 7e4312a311..fa96314512 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowToBeForwardedItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.h b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.h
index ebf0e40931..d2d5bce4ce 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowToBeForwardedItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.c b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.c
index 116c6acbf2..b300bf0162 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowToBeForwardedList.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.h b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.h
index ee1b7d8821..70133a0241 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowToBeForwardedList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowToBeForwardedList_H_
diff --git a/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.c b/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.c
index c2860159d2..0f339c6fb5 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.c
+++ b/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosFlowWithCauseItem.h"
diff --git a/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.h b/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.h
index 5c365b94c4..d77831bf9b 100644
--- a/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.h
+++ b/lib/asn1c/ngap/NGAP_QosFlowWithCauseItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosFlowWithCauseItem_H_
diff --git a/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.c b/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.c
index 7fce3b311f..190c2a78dd 100644
--- a/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.c
+++ b/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosMonitoringReportingFrequency.h"
diff --git a/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.h b/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.h
index 358e96f308..bee48cffad 100644
--- a/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.h
+++ b/lib/asn1c/ngap/NGAP_QosMonitoringReportingFrequency.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosMonitoringReportingFrequency_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_QosMonitoringReportingFrequency;
asn_struct_free_f NGAP_QosMonitoringReportingFrequency_free;
asn_struct_print_f NGAP_QosMonitoringReportingFrequency_print;
asn_constr_check_f NGAP_QosMonitoringReportingFrequency_constraint;
-jer_type_encoder_f NGAP_QosMonitoringReportingFrequency_encode_jer;
per_type_decoder_f NGAP_QosMonitoringReportingFrequency_decode_aper;
per_type_encoder_f NGAP_QosMonitoringReportingFrequency_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_QosMonitoringRequest.c b/lib/asn1c/ngap/NGAP_QosMonitoringRequest.c
index d30e0e5762..578878c249 100644
--- a/lib/asn1c/ngap/NGAP_QosMonitoringRequest.c
+++ b/lib/asn1c/ngap/NGAP_QosMonitoringRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_QosMonitoringRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_QosMonitoringRequest.h b/lib/asn1c/ngap/NGAP_QosMonitoringRequest.h
index 7f4df69479..cd6ae2e7b6 100644
--- a/lib/asn1c/ngap/NGAP_QosMonitoringRequest.h
+++ b/lib/asn1c/ngap/NGAP_QosMonitoringRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_QosMonitoringRequest_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_QosMonitoringRequest_specs_1;
asn_struct_free_f NGAP_QosMonitoringRequest_free;
asn_struct_print_f NGAP_QosMonitoringRequest_print;
asn_constr_check_f NGAP_QosMonitoringRequest_constraint;
-jer_type_encoder_f NGAP_QosMonitoringRequest_encode_jer;
per_type_decoder_f NGAP_QosMonitoringRequest_decode_aper;
per_type_encoder_f NGAP_QosMonitoringRequest_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.c b/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.c
index e4f3346864..058676aabb 100644
--- a/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.c
+++ b/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RAN-UE-NGAP-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.h b/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.h
index 2b24c1e2da..9df77ccacc 100644
--- a/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.h
+++ b/lib/asn1c/ngap/NGAP_RAN-UE-NGAP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RAN_UE_NGAP_ID_H_
@@ -28,7 +28,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RAN_UE_NGAP_ID_specs_1;
asn_struct_free_f NGAP_RAN_UE_NGAP_ID_free;
asn_struct_print_f NGAP_RAN_UE_NGAP_ID_print;
asn_constr_check_f NGAP_RAN_UE_NGAP_ID_constraint;
-jer_type_encoder_f NGAP_RAN_UE_NGAP_ID_encode_jer;
per_type_decoder_f NGAP_RAN_UE_NGAP_ID_decode_aper;
per_type_encoder_f NGAP_RAN_UE_NGAP_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.c b/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.c
index 02651cd639..5d4797bb32 100644
--- a/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.c
+++ b/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANCPRelocationIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.h b/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.h
index 260ba4bc61..e9671737eb 100644
--- a/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.h
+++ b/lib/asn1c/ngap/NGAP_RANCPRelocationIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANCPRelocationIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.c b/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.c
index f034bee85d..c4b26eeed8 100644
--- a/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.c
+++ b/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANConfigurationUpdate.h"
diff --git a/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.h b/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.h
index 9495688352..2cc2a32690 100644
--- a/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.h
+++ b/lib/asn1c/ngap/NGAP_RANConfigurationUpdate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANConfigurationUpdate_H_
diff --git a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.c b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.c
index 24e80a402a..17a095dd6e 100644
--- a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.c
+++ b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANConfigurationUpdateAcknowledge.h"
diff --git a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.h b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.h
index b7a7a7b7e0..8f0aa4725e 100644
--- a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.h
+++ b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANConfigurationUpdateAcknowledge_H_
diff --git a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.c b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.c
index 908d1f195f..61792b7b49 100644
--- a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.c
+++ b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANConfigurationUpdateFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.h b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.h
index 5f52022e49..c7e6d191b6 100644
--- a/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.h
+++ b/lib/asn1c/ngap/NGAP_RANConfigurationUpdateFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANConfigurationUpdateFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_RANNodeName.c b/lib/asn1c/ngap/NGAP_RANNodeName.c
index 63e8660c60..bfe57d0d31 100644
--- a/lib/asn1c/ngap/NGAP_RANNodeName.c
+++ b/lib/asn1c/ngap/NGAP_RANNodeName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANNodeName.h"
diff --git a/lib/asn1c/ngap/NGAP_RANNodeName.h b/lib/asn1c/ngap/NGAP_RANNodeName.h
index a9f29ceec3..3c75c2d67a 100644
--- a/lib/asn1c/ngap/NGAP_RANNodeName.h
+++ b/lib/asn1c/ngap/NGAP_RANNodeName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANNodeName_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RANNodeName;
asn_struct_free_f NGAP_RANNodeName_free;
asn_struct_print_f NGAP_RANNodeName_print;
asn_constr_check_f NGAP_RANNodeName_constraint;
-jer_type_encoder_f NGAP_RANNodeName_encode_jer;
per_type_decoder_f NGAP_RANNodeName_decode_aper;
per_type_encoder_f NGAP_RANNodeName_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.c b/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.c
index ffa52f797c..a732787189 100644
--- a/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.c
+++ b/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANNodeNameUTF8String.h"
diff --git a/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.h b/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.h
index ac61e4261c..4f54200312 100644
--- a/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.h
+++ b/lib/asn1c/ngap/NGAP_RANNodeNameUTF8String.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANNodeNameUTF8String_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RANNodeNameUTF8String;
asn_struct_free_f NGAP_RANNodeNameUTF8String_free;
asn_struct_print_f NGAP_RANNodeNameUTF8String_print;
asn_constr_check_f NGAP_RANNodeNameUTF8String_constraint;
-jer_type_encoder_f NGAP_RANNodeNameUTF8String_encode_jer;
per_type_decoder_f NGAP_RANNodeNameUTF8String_decode_aper;
per_type_encoder_f NGAP_RANNodeNameUTF8String_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.c b/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.c
index 643c15c7ce..a3d8e9e368 100644
--- a/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.c
+++ b/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANNodeNameVisibleString.h"
diff --git a/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.h b/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.h
index c1ea4539e9..21431ff28a 100644
--- a/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.h
+++ b/lib/asn1c/ngap/NGAP_RANNodeNameVisibleString.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANNodeNameVisibleString_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RANNodeNameVisibleString;
asn_struct_free_f NGAP_RANNodeNameVisibleString_free;
asn_struct_print_f NGAP_RANNodeNameVisibleString_print;
asn_constr_check_f NGAP_RANNodeNameVisibleString_constraint;
-jer_type_encoder_f NGAP_RANNodeNameVisibleString_encode_jer;
per_type_decoder_f NGAP_RANNodeNameVisibleString_decode_aper;
per_type_encoder_f NGAP_RANNodeNameVisibleString_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RANPagingPriority.c b/lib/asn1c/ngap/NGAP_RANPagingPriority.c
index c137c3d879..c00a8e7130 100644
--- a/lib/asn1c/ngap/NGAP_RANPagingPriority.c
+++ b/lib/asn1c/ngap/NGAP_RANPagingPriority.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANPagingPriority.h"
diff --git a/lib/asn1c/ngap/NGAP_RANPagingPriority.h b/lib/asn1c/ngap/NGAP_RANPagingPriority.h
index b70f9913da..5a6f1ff77f 100644
--- a/lib/asn1c/ngap/NGAP_RANPagingPriority.h
+++ b/lib/asn1c/ngap/NGAP_RANPagingPriority.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANPagingPriority_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RANPagingPriority;
asn_struct_free_f NGAP_RANPagingPriority_free;
asn_struct_print_f NGAP_RANPagingPriority_print;
asn_constr_check_f NGAP_RANPagingPriority_constraint;
-jer_type_encoder_f NGAP_RANPagingPriority_encode_jer;
per_type_decoder_f NGAP_RANPagingPriority_decode_aper;
per_type_encoder_f NGAP_RANPagingPriority_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.c b/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.c
index 173e5b4236..33ba5430c9 100644
--- a/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RANStatusTransfer-TransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.h b/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.h
index 8ddfab3cba..f7d7b7b2af 100644
--- a/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_RANStatusTransfer-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RANStatusTransfer_TransparentContainer_H_
diff --git a/lib/asn1c/ngap/NGAP_RAT-Information.c b/lib/asn1c/ngap/NGAP_RAT-Information.c
index d2e6bdb71c..963021680b 100644
--- a/lib/asn1c/ngap/NGAP_RAT-Information.c
+++ b/lib/asn1c/ngap/NGAP_RAT-Information.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RAT-Information.h"
diff --git a/lib/asn1c/ngap/NGAP_RAT-Information.h b/lib/asn1c/ngap/NGAP_RAT-Information.h
index 0fcfe994ac..d8583cb58d 100644
--- a/lib/asn1c/ngap/NGAP_RAT-Information.h
+++ b/lib/asn1c/ngap/NGAP_RAT-Information.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RAT_Information_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RAT_Information_specs_1;
asn_struct_free_f NGAP_RAT_Information_free;
asn_struct_print_f NGAP_RAT_Information_print;
asn_constr_check_f NGAP_RAT_Information_constraint;
-jer_type_encoder_f NGAP_RAT_Information_encode_jer;
per_type_decoder_f NGAP_RAT_Information_decode_aper;
per_type_encoder_f NGAP_RAT_Information_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RATRestrictionInformation.c b/lib/asn1c/ngap/NGAP_RATRestrictionInformation.c
index bb0aca81f2..89260dc456 100644
--- a/lib/asn1c/ngap/NGAP_RATRestrictionInformation.c
+++ b/lib/asn1c/ngap/NGAP_RATRestrictionInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RATRestrictionInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_RATRestrictionInformation.h b/lib/asn1c/ngap/NGAP_RATRestrictionInformation.h
index 6c0f6a93f6..68e9f21256 100644
--- a/lib/asn1c/ngap/NGAP_RATRestrictionInformation.h
+++ b/lib/asn1c/ngap/NGAP_RATRestrictionInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RATRestrictionInformation_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RATRestrictionInformation;
asn_struct_free_f NGAP_RATRestrictionInformation_free;
asn_struct_print_f NGAP_RATRestrictionInformation_print;
asn_constr_check_f NGAP_RATRestrictionInformation_constraint;
-jer_type_encoder_f NGAP_RATRestrictionInformation_encode_jer;
per_type_decoder_f NGAP_RATRestrictionInformation_decode_aper;
per_type_encoder_f NGAP_RATRestrictionInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RATRestrictions-Item.c b/lib/asn1c/ngap/NGAP_RATRestrictions-Item.c
index f4c9677f7b..7324e68adc 100644
--- a/lib/asn1c/ngap/NGAP_RATRestrictions-Item.c
+++ b/lib/asn1c/ngap/NGAP_RATRestrictions-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RATRestrictions-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_RATRestrictions-Item.h b/lib/asn1c/ngap/NGAP_RATRestrictions-Item.h
index e639b99a5a..1a5aa486ad 100644
--- a/lib/asn1c/ngap/NGAP_RATRestrictions-Item.h
+++ b/lib/asn1c/ngap/NGAP_RATRestrictions-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RATRestrictions_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_RATRestrictions.c b/lib/asn1c/ngap/NGAP_RATRestrictions.c
index 76cd45492b..4ac0e370cd 100644
--- a/lib/asn1c/ngap/NGAP_RATRestrictions.c
+++ b/lib/asn1c/ngap/NGAP_RATRestrictions.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RATRestrictions.h"
diff --git a/lib/asn1c/ngap/NGAP_RATRestrictions.h b/lib/asn1c/ngap/NGAP_RATRestrictions.h
index 8ee84a7b36..2ab221265c 100644
--- a/lib/asn1c/ngap/NGAP_RATRestrictions.h
+++ b/lib/asn1c/ngap/NGAP_RATRestrictions.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RATRestrictions_H_
diff --git a/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.c b/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.c
index fffe728829..96efb1e305 100644
--- a/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.c
+++ b/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RGLevelWirelineAccessCharacteristics.h"
diff --git a/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.h b/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.h
index 1e23a4c504..f4134586c1 100644
--- a/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.h
+++ b/lib/asn1c/ngap/NGAP_RGLevelWirelineAccessCharacteristics.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RGLevelWirelineAccessCharacteristics_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RGLevelWirelineAccessCharacteristics;
asn_struct_free_f NGAP_RGLevelWirelineAccessCharacteristics_free;
asn_struct_print_f NGAP_RGLevelWirelineAccessCharacteristics_print;
asn_constr_check_f NGAP_RGLevelWirelineAccessCharacteristics_constraint;
-jer_type_encoder_f NGAP_RGLevelWirelineAccessCharacteristics_encode_jer;
per_type_decoder_f NGAP_RGLevelWirelineAccessCharacteristics_decode_aper;
per_type_encoder_f NGAP_RGLevelWirelineAccessCharacteristics_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RIMInformation.c b/lib/asn1c/ngap/NGAP_RIMInformation.c
index 4de021b3c6..56631b51a2 100644
--- a/lib/asn1c/ngap/NGAP_RIMInformation.c
+++ b/lib/asn1c/ngap/NGAP_RIMInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RIMInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_RIMInformation.h b/lib/asn1c/ngap/NGAP_RIMInformation.h
index a596549b06..e3037d1df3 100644
--- a/lib/asn1c/ngap/NGAP_RIMInformation.h
+++ b/lib/asn1c/ngap/NGAP_RIMInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RIMInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_RIMInformationTransfer.c b/lib/asn1c/ngap/NGAP_RIMInformationTransfer.c
index 8a58c68679..73450147b0 100644
--- a/lib/asn1c/ngap/NGAP_RIMInformationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_RIMInformationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RIMInformationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_RIMInformationTransfer.h b/lib/asn1c/ngap/NGAP_RIMInformationTransfer.h
index cd611172a3..6bf00cb2f9 100644
--- a/lib/asn1c/ngap/NGAP_RIMInformationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_RIMInformationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RIMInformationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_RNC-ID.c b/lib/asn1c/ngap/NGAP_RNC-ID.c
index f2b7ac7020..1cf41ee9e5 100644
--- a/lib/asn1c/ngap/NGAP_RNC-ID.c
+++ b/lib/asn1c/ngap/NGAP_RNC-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RNC-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_RNC-ID.h b/lib/asn1c/ngap/NGAP_RNC-ID.h
index 7ebbe80613..7d34314433 100644
--- a/lib/asn1c/ngap/NGAP_RNC-ID.h
+++ b/lib/asn1c/ngap/NGAP_RNC-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RNC_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RNC_ID;
asn_struct_free_f NGAP_RNC_ID_free;
asn_struct_print_f NGAP_RNC_ID_print;
asn_constr_check_f NGAP_RNC_ID_constraint;
-jer_type_encoder_f NGAP_RNC_ID_encode_jer;
per_type_decoder_f NGAP_RNC_ID_decode_aper;
per_type_encoder_f NGAP_RNC_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RRCContainer.c b/lib/asn1c/ngap/NGAP_RRCContainer.c
index e57c4d7318..f17a4edf3d 100644
--- a/lib/asn1c/ngap/NGAP_RRCContainer.c
+++ b/lib/asn1c/ngap/NGAP_RRCContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RRCContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_RRCContainer.h b/lib/asn1c/ngap/NGAP_RRCContainer.h
index 59fde8a67b..6b256a4d59 100644
--- a/lib/asn1c/ngap/NGAP_RRCContainer.h
+++ b/lib/asn1c/ngap/NGAP_RRCContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RRCContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RRCContainer;
asn_struct_free_f NGAP_RRCContainer_free;
asn_struct_print_f NGAP_RRCContainer_print;
asn_constr_check_f NGAP_RRCContainer_constraint;
-jer_type_encoder_f NGAP_RRCContainer_encode_jer;
per_type_decoder_f NGAP_RRCContainer_decode_aper;
per_type_encoder_f NGAP_RRCContainer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.c b/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.c
index 9a92e5d229..2f74cd32ff 100644
--- a/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.c
+++ b/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RRCEstablishmentCause.h"
diff --git a/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.h b/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.h
index 16b6366abd..2e389afe2d 100644
--- a/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.h
+++ b/lib/asn1c/ngap/NGAP_RRCEstablishmentCause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RRCEstablishmentCause_H_
@@ -47,7 +47,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RRCEstablishmentCause_specs_1;
asn_struct_free_f NGAP_RRCEstablishmentCause_free;
asn_struct_print_f NGAP_RRCEstablishmentCause_print;
asn_constr_check_f NGAP_RRCEstablishmentCause_constraint;
-jer_type_encoder_f NGAP_RRCEstablishmentCause_encode_jer;
per_type_decoder_f NGAP_RRCEstablishmentCause_decode_aper;
per_type_encoder_f NGAP_RRCEstablishmentCause_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.c b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.c
index 86c2a6ce15..f110abcaea 100644
--- a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.c
+++ b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RRCInactiveTransitionReport.h"
diff --git a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.h b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.h
index 2bf5943962..036c680823 100644
--- a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.h
+++ b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RRCInactiveTransitionReport_H_
diff --git a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.c b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.c
index 54656f35b9..396dcbdc18 100644
--- a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.c
+++ b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RRCInactiveTransitionReportRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.h b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.h
index 2a3378c79a..f763d5ae4f 100644
--- a/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.h
+++ b/lib/asn1c/ngap/NGAP_RRCInactiveTransitionReportRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RRCInactiveTransitionReportRequest_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RRCInactiveTransitionReportReq
asn_struct_free_f NGAP_RRCInactiveTransitionReportRequest_free;
asn_struct_print_f NGAP_RRCInactiveTransitionReportRequest_print;
asn_constr_check_f NGAP_RRCInactiveTransitionReportRequest_constraint;
-jer_type_encoder_f NGAP_RRCInactiveTransitionReportRequest_encode_jer;
per_type_decoder_f NGAP_RRCInactiveTransitionReportRequest_decode_aper;
per_type_encoder_f NGAP_RRCInactiveTransitionReportRequest_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RRCState.c b/lib/asn1c/ngap/NGAP_RRCState.c
index 043ffeda6f..0e3afa1d9e 100644
--- a/lib/asn1c/ngap/NGAP_RRCState.c
+++ b/lib/asn1c/ngap/NGAP_RRCState.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RRCState.h"
diff --git a/lib/asn1c/ngap/NGAP_RRCState.h b/lib/asn1c/ngap/NGAP_RRCState.h
index 66cf01a867..93fe124acc 100644
--- a/lib/asn1c/ngap/NGAP_RRCState.h
+++ b/lib/asn1c/ngap/NGAP_RRCState.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RRCState_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RRCState_specs_1;
asn_struct_free_f NGAP_RRCState_free;
asn_struct_print_f NGAP_RRCState_print;
asn_constr_check_f NGAP_RRCState_constraint;
-jer_type_encoder_f NGAP_RRCState_encode_jer;
per_type_decoder_f NGAP_RRCState_decode_aper;
per_type_encoder_f NGAP_RRCState_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RSN.c b/lib/asn1c/ngap/NGAP_RSN.c
index ce41d778d7..570b974f73 100644
--- a/lib/asn1c/ngap/NGAP_RSN.c
+++ b/lib/asn1c/ngap/NGAP_RSN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RSN.h"
diff --git a/lib/asn1c/ngap/NGAP_RSN.h b/lib/asn1c/ngap/NGAP_RSN.h
index 7734b32ad0..3f3044b542 100644
--- a/lib/asn1c/ngap/NGAP_RSN.h
+++ b/lib/asn1c/ngap/NGAP_RSN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RSN_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RSN_specs_1;
asn_struct_free_f NGAP_RSN_free;
asn_struct_print_f NGAP_RSN_print;
asn_constr_check_f NGAP_RSN_constraint;
-jer_type_encoder_f NGAP_RSN_encode_jer;
per_type_decoder_f NGAP_RSN_decode_aper;
per_type_encoder_f NGAP_RSN_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Range.c b/lib/asn1c/ngap/NGAP_Range.c
index 4ccae36ccf..5680ffc376 100644
--- a/lib/asn1c/ngap/NGAP_Range.c
+++ b/lib/asn1c/ngap/NGAP_Range.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Range.h"
diff --git a/lib/asn1c/ngap/NGAP_Range.h b/lib/asn1c/ngap/NGAP_Range.h
index 5da5dce576..9c41af491a 100644
--- a/lib/asn1c/ngap/NGAP_Range.h
+++ b/lib/asn1c/ngap/NGAP_Range.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Range_H_
@@ -44,7 +44,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Range_specs_1;
asn_struct_free_f NGAP_Range_free;
asn_struct_print_f NGAP_Range_print;
asn_constr_check_f NGAP_Range_constraint;
-jer_type_encoder_f NGAP_Range_encode_jer;
per_type_decoder_f NGAP_Range_decode_aper;
per_type_encoder_f NGAP_Range_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RecommendedCellItem.c b/lib/asn1c/ngap/NGAP_RecommendedCellItem.c
index 7732acf13c..c86ce7b42e 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedCellItem.c
+++ b/lib/asn1c/ngap/NGAP_RecommendedCellItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RecommendedCellItem.h"
diff --git a/lib/asn1c/ngap/NGAP_RecommendedCellItem.h b/lib/asn1c/ngap/NGAP_RecommendedCellItem.h
index 2a3a379d82..fa6dcf0d6d 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedCellItem.h
+++ b/lib/asn1c/ngap/NGAP_RecommendedCellItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RecommendedCellItem_H_
diff --git a/lib/asn1c/ngap/NGAP_RecommendedCellList.c b/lib/asn1c/ngap/NGAP_RecommendedCellList.c
index 25d016b3b9..b4f54f5945 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedCellList.c
+++ b/lib/asn1c/ngap/NGAP_RecommendedCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RecommendedCellList.h"
diff --git a/lib/asn1c/ngap/NGAP_RecommendedCellList.h b/lib/asn1c/ngap/NGAP_RecommendedCellList.h
index a6800888f1..8415257a0a 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedCellList.h
+++ b/lib/asn1c/ngap/NGAP_RecommendedCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RecommendedCellList_H_
diff --git a/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.c b/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.c
index f1a8ec20e4..b96e375cf5 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.c
+++ b/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RecommendedCellsForPaging.h"
diff --git a/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.h b/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.h
index 6c7a7ec812..bb38107e64 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.h
+++ b/lib/asn1c/ngap/NGAP_RecommendedCellsForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RecommendedCellsForPaging_H_
diff --git a/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.c b/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.c
index fb1733e5d8..84a72d6169 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.c
+++ b/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RecommendedRANNodeItem.h"
diff --git a/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.h b/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.h
index c523ef9ace..7ea2196631 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.h
+++ b/lib/asn1c/ngap/NGAP_RecommendedRANNodeItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RecommendedRANNodeItem_H_
diff --git a/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.c b/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.c
index 588f8db0c4..bf90205c7c 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.c
+++ b/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RecommendedRANNodeList.h"
diff --git a/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.h b/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.h
index d128222685..54c78780e2 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.h
+++ b/lib/asn1c/ngap/NGAP_RecommendedRANNodeList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RecommendedRANNodeList_H_
diff --git a/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.c b/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.c
index 9b28ebaaf0..96585877b1 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.c
+++ b/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RecommendedRANNodesForPaging.h"
diff --git a/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.h b/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.h
index 48a4e78d0e..ecee649082 100644
--- a/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.h
+++ b/lib/asn1c/ngap/NGAP_RecommendedRANNodesForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RecommendedRANNodesForPaging_H_
diff --git a/lib/asn1c/ngap/NGAP_RedCapIndication.c b/lib/asn1c/ngap/NGAP_RedCapIndication.c
index 08ff5f412c..69b6c22d07 100644
--- a/lib/asn1c/ngap/NGAP_RedCapIndication.c
+++ b/lib/asn1c/ngap/NGAP_RedCapIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RedCapIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_RedCapIndication.h b/lib/asn1c/ngap/NGAP_RedCapIndication.h
index 10071e332a..d837977722 100644
--- a/lib/asn1c/ngap/NGAP_RedCapIndication.h
+++ b/lib/asn1c/ngap/NGAP_RedCapIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RedCapIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RedCapIndication_specs_1;
asn_struct_free_f NGAP_RedCapIndication_free;
asn_struct_print_f NGAP_RedCapIndication_print;
asn_constr_check_f NGAP_RedCapIndication_constraint;
-jer_type_encoder_f NGAP_RedCapIndication_encode_jer;
per_type_decoder_f NGAP_RedCapIndication_decode_aper;
per_type_encoder_f NGAP_RedCapIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.c b/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.c
index a334288bf0..924a7fda79 100644
--- a/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.c
+++ b/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RedirectionVoiceFallback.h"
diff --git a/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.h b/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.h
index 07e22b557f..436558fb25 100644
--- a/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.h
+++ b/lib/asn1c/ngap/NGAP_RedirectionVoiceFallback.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RedirectionVoiceFallback_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RedirectionVoiceFallback_specs
asn_struct_free_f NGAP_RedirectionVoiceFallback_free;
asn_struct_print_f NGAP_RedirectionVoiceFallback_print;
asn_constr_check_f NGAP_RedirectionVoiceFallback_constraint;
-jer_type_encoder_f NGAP_RedirectionVoiceFallback_encode_jer;
per_type_decoder_f NGAP_RedirectionVoiceFallback_decode_aper;
per_type_encoder_f NGAP_RedirectionVoiceFallback_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.c b/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.c
index f20d69b25f..9b3f25c154 100644
--- a/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.c
+++ b/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RedundantPDUSessionInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.h b/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.h
index 494822e847..ac9965c3ff 100644
--- a/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.h
+++ b/lib/asn1c/ngap/NGAP_RedundantPDUSessionInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RedundantPDUSessionInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.c b/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.c
index 6a6aae715f..38beaecad0 100644
--- a/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.c
+++ b/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RedundantQosFlowIndicator.h"
diff --git a/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.h b/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.h
index 485dbe4c99..29112794da 100644
--- a/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.h
+++ b/lib/asn1c/ngap/NGAP_RedundantQosFlowIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RedundantQosFlowIndicator_H_
@@ -34,7 +34,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_RedundantQosFlowIndicator_spec
asn_struct_free_f NGAP_RedundantQosFlowIndicator_free;
asn_struct_print_f NGAP_RedundantQosFlowIndicator_print;
asn_constr_check_f NGAP_RedundantQosFlowIndicator_constraint;
-jer_type_encoder_f NGAP_RedundantQosFlowIndicator_encode_jer;
per_type_decoder_f NGAP_RedundantQosFlowIndicator_decode_aper;
per_type_encoder_f NGAP_RedundantQosFlowIndicator_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.c b/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.c
index 2b07692ff1..745db80482 100644
--- a/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.c
+++ b/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReflectiveQosAttribute.h"
diff --git a/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.h b/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.h
index 02a6065d20..e682e7ca68 100644
--- a/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.h
+++ b/lib/asn1c/ngap/NGAP_ReflectiveQosAttribute.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReflectiveQosAttribute_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ReflectiveQosAttribute_specs_1
asn_struct_free_f NGAP_ReflectiveQosAttribute_free;
asn_struct_print_f NGAP_ReflectiveQosAttribute_print;
asn_constr_check_f NGAP_ReflectiveQosAttribute_constraint;
-jer_type_encoder_f NGAP_ReflectiveQosAttribute_encode_jer;
per_type_decoder_f NGAP_ReflectiveQosAttribute_decode_aper;
per_type_encoder_f NGAP_ReflectiveQosAttribute_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.c b/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.c
index 5777622253..df78e268cc 100644
--- a/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.c
+++ b/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RejectedNSSAIinPLMN.h"
diff --git a/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.h b/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.h
index e00937cc2c..beb84b5f0c 100644
--- a/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.h
+++ b/lib/asn1c/ngap/NGAP_RejectedNSSAIinPLMN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RejectedNSSAIinPLMN_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RejectedNSSAIinPLMN;
asn_struct_free_f NGAP_RejectedNSSAIinPLMN_free;
asn_struct_print_f NGAP_RejectedNSSAIinPLMN_print;
asn_constr_check_f NGAP_RejectedNSSAIinPLMN_constraint;
-jer_type_encoder_f NGAP_RejectedNSSAIinPLMN_encode_jer;
per_type_decoder_f NGAP_RejectedNSSAIinPLMN_decode_aper;
per_type_encoder_f NGAP_RejectedNSSAIinPLMN_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.c b/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.c
index d40508323e..6464f365c8 100644
--- a/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.c
+++ b/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RejectedNSSAIinTA.h"
diff --git a/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.h b/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.h
index 4b6ccb54c2..e87ea9d8d3 100644
--- a/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.h
+++ b/lib/asn1c/ngap/NGAP_RejectedNSSAIinTA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RejectedNSSAIinTA_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RejectedNSSAIinTA;
asn_struct_free_f NGAP_RejectedNSSAIinTA_free;
asn_struct_print_f NGAP_RejectedNSSAIinTA_print;
asn_constr_check_f NGAP_RejectedNSSAIinTA_constraint;
-jer_type_encoder_f NGAP_RejectedNSSAIinTA_encode_jer;
per_type_decoder_f NGAP_RejectedNSSAIinTA_decode_aper;
per_type_encoder_f NGAP_RejectedNSSAIinTA_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.c b/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.c
index e844548ed0..08caeec372 100644
--- a/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.c
+++ b/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RelativeAMFCapacity.h"
diff --git a/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.h b/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.h
index 9ff77a3e38..1cf1993ee8 100644
--- a/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.h
+++ b/lib/asn1c/ngap/NGAP_RelativeAMFCapacity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RelativeAMFCapacity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RelativeAMFCapacity;
asn_struct_free_f NGAP_RelativeAMFCapacity_free;
asn_struct_print_f NGAP_RelativeAMFCapacity_print;
asn_constr_check_f NGAP_RelativeAMFCapacity_constraint;
-jer_type_encoder_f NGAP_RelativeAMFCapacity_encode_jer;
per_type_decoder_f NGAP_RelativeAMFCapacity_decode_aper;
per_type_encoder_f NGAP_RelativeAMFCapacity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_RepetitionPeriod.c b/lib/asn1c/ngap/NGAP_RepetitionPeriod.c
index 4348328fbe..859c8b830e 100644
--- a/lib/asn1c/ngap/NGAP_RepetitionPeriod.c
+++ b/lib/asn1c/ngap/NGAP_RepetitionPeriod.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RepetitionPeriod.h"
diff --git a/lib/asn1c/ngap/NGAP_RepetitionPeriod.h b/lib/asn1c/ngap/NGAP_RepetitionPeriod.h
index 8f4003b55d..eae9d98ebf 100644
--- a/lib/asn1c/ngap/NGAP_RepetitionPeriod.h
+++ b/lib/asn1c/ngap/NGAP_RepetitionPeriod.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RepetitionPeriod_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RepetitionPeriod;
asn_struct_free_f NGAP_RepetitionPeriod_free;
asn_struct_print_f NGAP_RepetitionPeriod_print;
asn_constr_check_f NGAP_RepetitionPeriod_constraint;
-jer_type_encoder_f NGAP_RepetitionPeriod_encode_jer;
per_type_decoder_f NGAP_RepetitionPeriod_decode_aper;
per_type_encoder_f NGAP_RepetitionPeriod_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ReportAmountMDT.c b/lib/asn1c/ngap/NGAP_ReportAmountMDT.c
index 2bede5dcb8..bc1deee6b2 100644
--- a/lib/asn1c/ngap/NGAP_ReportAmountMDT.c
+++ b/lib/asn1c/ngap/NGAP_ReportAmountMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReportAmountMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_ReportAmountMDT.h b/lib/asn1c/ngap/NGAP_ReportAmountMDT.h
index 6c01689a65..9d40a40660 100644
--- a/lib/asn1c/ngap/NGAP_ReportAmountMDT.h
+++ b/lib/asn1c/ngap/NGAP_ReportAmountMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReportAmountMDT_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ReportAmountMDT_specs_1;
asn_struct_free_f NGAP_ReportAmountMDT_free;
asn_struct_print_f NGAP_ReportAmountMDT_print;
asn_constr_check_f NGAP_ReportAmountMDT_constraint;
-jer_type_encoder_f NGAP_ReportAmountMDT_encode_jer;
per_type_decoder_f NGAP_ReportAmountMDT_decode_aper;
per_type_encoder_f NGAP_ReportAmountMDT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ReportArea.c b/lib/asn1c/ngap/NGAP_ReportArea.c
index 1d4eeb2022..e98536632f 100644
--- a/lib/asn1c/ngap/NGAP_ReportArea.c
+++ b/lib/asn1c/ngap/NGAP_ReportArea.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReportArea.h"
diff --git a/lib/asn1c/ngap/NGAP_ReportArea.h b/lib/asn1c/ngap/NGAP_ReportArea.h
index 81d209c3dd..b2fa1b8f01 100644
--- a/lib/asn1c/ngap/NGAP_ReportArea.h
+++ b/lib/asn1c/ngap/NGAP_ReportArea.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReportArea_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ReportArea_specs_1;
asn_struct_free_f NGAP_ReportArea_free;
asn_struct_print_f NGAP_ReportArea_print;
asn_constr_check_f NGAP_ReportArea_constraint;
-jer_type_encoder_f NGAP_ReportArea_encode_jer;
per_type_decoder_f NGAP_ReportArea_decode_aper;
per_type_encoder_f NGAP_ReportArea_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ReportCharacteristics.c b/lib/asn1c/ngap/NGAP_ReportCharacteristics.c
index 60b7ab096b..667370149b 100644
--- a/lib/asn1c/ngap/NGAP_ReportCharacteristics.c
+++ b/lib/asn1c/ngap/NGAP_ReportCharacteristics.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReportCharacteristics.h"
diff --git a/lib/asn1c/ngap/NGAP_ReportCharacteristics.h b/lib/asn1c/ngap/NGAP_ReportCharacteristics.h
index a83b37fc3c..169d3ca905 100644
--- a/lib/asn1c/ngap/NGAP_ReportCharacteristics.h
+++ b/lib/asn1c/ngap/NGAP_ReportCharacteristics.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReportCharacteristics_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_ReportCharacteristics;
asn_struct_free_f NGAP_ReportCharacteristics_free;
asn_struct_print_f NGAP_ReportCharacteristics_print;
asn_constr_check_f NGAP_ReportCharacteristics_constraint;
-jer_type_encoder_f NGAP_ReportCharacteristics_encode_jer;
per_type_decoder_f NGAP_ReportCharacteristics_decode_aper;
per_type_encoder_f NGAP_ReportCharacteristics_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ReportIntervalMDT.c b/lib/asn1c/ngap/NGAP_ReportIntervalMDT.c
index 83e99a0695..5f598903d1 100644
--- a/lib/asn1c/ngap/NGAP_ReportIntervalMDT.c
+++ b/lib/asn1c/ngap/NGAP_ReportIntervalMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReportIntervalMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_ReportIntervalMDT.h b/lib/asn1c/ngap/NGAP_ReportIntervalMDT.h
index a67787befc..79728c2649 100644
--- a/lib/asn1c/ngap/NGAP_ReportIntervalMDT.h
+++ b/lib/asn1c/ngap/NGAP_ReportIntervalMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReportIntervalMDT_H_
@@ -45,7 +45,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ReportIntervalMDT_specs_1;
asn_struct_free_f NGAP_ReportIntervalMDT_free;
asn_struct_print_f NGAP_ReportIntervalMDT_print;
asn_constr_check_f NGAP_ReportIntervalMDT_constraint;
-jer_type_encoder_f NGAP_ReportIntervalMDT_encode_jer;
per_type_decoder_f NGAP_ReportIntervalMDT_decode_aper;
per_type_encoder_f NGAP_ReportIntervalMDT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ReportType.c b/lib/asn1c/ngap/NGAP_ReportType.c
index 734e3d8d6e..c45cbca28e 100644
--- a/lib/asn1c/ngap/NGAP_ReportType.c
+++ b/lib/asn1c/ngap/NGAP_ReportType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReportType.h"
diff --git a/lib/asn1c/ngap/NGAP_ReportType.h b/lib/asn1c/ngap/NGAP_ReportType.h
index b731abffb7..81b96bbf76 100644
--- a/lib/asn1c/ngap/NGAP_ReportType.h
+++ b/lib/asn1c/ngap/NGAP_ReportType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReportType_H_
diff --git a/lib/asn1c/ngap/NGAP_ReportingPeriodicity.c b/lib/asn1c/ngap/NGAP_ReportingPeriodicity.c
index d38ac5b46a..7895c061de 100644
--- a/lib/asn1c/ngap/NGAP_ReportingPeriodicity.c
+++ b/lib/asn1c/ngap/NGAP_ReportingPeriodicity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReportingPeriodicity.h"
diff --git a/lib/asn1c/ngap/NGAP_ReportingPeriodicity.h b/lib/asn1c/ngap/NGAP_ReportingPeriodicity.h
index 80ebdb6bd9..f76f175fa1 100644
--- a/lib/asn1c/ngap/NGAP_ReportingPeriodicity.h
+++ b/lib/asn1c/ngap/NGAP_ReportingPeriodicity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReportingPeriodicity_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ReportingPeriodicity_specs_1;
asn_struct_free_f NGAP_ReportingPeriodicity_free;
asn_struct_print_f NGAP_ReportingPeriodicity_print;
asn_constr_check_f NGAP_ReportingPeriodicity_constraint;
-jer_type_encoder_f NGAP_ReportingPeriodicity_encode_jer;
per_type_decoder_f NGAP_ReportingPeriodicity_decode_aper;
per_type_encoder_f NGAP_ReportingPeriodicity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ReportingSystem.c b/lib/asn1c/ngap/NGAP_ReportingSystem.c
index 8b98a7d13f..24e1022521 100644
--- a/lib/asn1c/ngap/NGAP_ReportingSystem.c
+++ b/lib/asn1c/ngap/NGAP_ReportingSystem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ReportingSystem.h"
diff --git a/lib/asn1c/ngap/NGAP_ReportingSystem.h b/lib/asn1c/ngap/NGAP_ReportingSystem.h
index 1744460669..c10d4fb1d9 100644
--- a/lib/asn1c/ngap/NGAP_ReportingSystem.h
+++ b/lib/asn1c/ngap/NGAP_ReportingSystem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ReportingSystem_H_
diff --git a/lib/asn1c/ngap/NGAP_RerouteNASRequest.c b/lib/asn1c/ngap/NGAP_RerouteNASRequest.c
index 12e841aa51..97a8d5842b 100644
--- a/lib/asn1c/ngap/NGAP_RerouteNASRequest.c
+++ b/lib/asn1c/ngap/NGAP_RerouteNASRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RerouteNASRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_RerouteNASRequest.h b/lib/asn1c/ngap/NGAP_RerouteNASRequest.h
index 63f05683e0..ce4e888eeb 100644
--- a/lib/asn1c/ngap/NGAP_RerouteNASRequest.h
+++ b/lib/asn1c/ngap/NGAP_RerouteNASRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RerouteNASRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_ResetAll.c b/lib/asn1c/ngap/NGAP_ResetAll.c
index 51fdff6f89..18c3961fa9 100644
--- a/lib/asn1c/ngap/NGAP_ResetAll.c
+++ b/lib/asn1c/ngap/NGAP_ResetAll.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ResetAll.h"
diff --git a/lib/asn1c/ngap/NGAP_ResetAll.h b/lib/asn1c/ngap/NGAP_ResetAll.h
index d1d92b7330..fc74ec64cc 100644
--- a/lib/asn1c/ngap/NGAP_ResetAll.h
+++ b/lib/asn1c/ngap/NGAP_ResetAll.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ResetAll_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ResetAll_specs_1;
asn_struct_free_f NGAP_ResetAll_free;
asn_struct_print_f NGAP_ResetAll_print;
asn_constr_check_f NGAP_ResetAll_constraint;
-jer_type_encoder_f NGAP_ResetAll_encode_jer;
per_type_decoder_f NGAP_ResetAll_decode_aper;
per_type_encoder_f NGAP_ResetAll_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ResetType.c b/lib/asn1c/ngap/NGAP_ResetType.c
index 6553d61595..829aec7c77 100644
--- a/lib/asn1c/ngap/NGAP_ResetType.c
+++ b/lib/asn1c/ngap/NGAP_ResetType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ResetType.h"
diff --git a/lib/asn1c/ngap/NGAP_ResetType.h b/lib/asn1c/ngap/NGAP_ResetType.h
index 94c7c9b806..cd059d2ac7 100644
--- a/lib/asn1c/ngap/NGAP_ResetType.h
+++ b/lib/asn1c/ngap/NGAP_ResetType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ResetType_H_
diff --git a/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.c b/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.c
index 10e8b3a4dc..2e62917b37 100644
--- a/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.c
+++ b/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ResourceStatusReportingSystem.h"
diff --git a/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.h b/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.h
index 486fd62ce6..bf5d822c21 100644
--- a/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.h
+++ b/lib/asn1c/ngap/NGAP_ResourceStatusReportingSystem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ResourceStatusReportingSystem_H_
diff --git a/lib/asn1c/ngap/NGAP_RetrieveUEInformation.c b/lib/asn1c/ngap/NGAP_RetrieveUEInformation.c
index 6f87e9c028..5746ca3e6d 100644
--- a/lib/asn1c/ngap/NGAP_RetrieveUEInformation.c
+++ b/lib/asn1c/ngap/NGAP_RetrieveUEInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RetrieveUEInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_RetrieveUEInformation.h b/lib/asn1c/ngap/NGAP_RetrieveUEInformation.h
index e554e14855..206e857f49 100644
--- a/lib/asn1c/ngap/NGAP_RetrieveUEInformation.h
+++ b/lib/asn1c/ngap/NGAP_RetrieveUEInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RetrieveUEInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_RoutingID.c b/lib/asn1c/ngap/NGAP_RoutingID.c
index 1ce808611c..9a3c16bbb0 100644
--- a/lib/asn1c/ngap/NGAP_RoutingID.c
+++ b/lib/asn1c/ngap/NGAP_RoutingID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_RoutingID.h"
diff --git a/lib/asn1c/ngap/NGAP_RoutingID.h b/lib/asn1c/ngap/NGAP_RoutingID.h
index 3b0d480d42..125bad9e38 100644
--- a/lib/asn1c/ngap/NGAP_RoutingID.h
+++ b/lib/asn1c/ngap/NGAP_RoutingID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_RoutingID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_RoutingID;
asn_struct_free_f NGAP_RoutingID_free;
asn_struct_print_f NGAP_RoutingID_print;
asn_constr_check_f NGAP_RoutingID_constraint;
-jer_type_encoder_f NGAP_RoutingID_encode_jer;
per_type_decoder_f NGAP_RoutingID_decode_aper;
per_type_encoder_f NGAP_RoutingID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_S-NSSAI.c b/lib/asn1c/ngap/NGAP_S-NSSAI.c
index d0b9c7522f..b53d1e22d5 100644
--- a/lib/asn1c/ngap/NGAP_S-NSSAI.c
+++ b/lib/asn1c/ngap/NGAP_S-NSSAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_S-NSSAI.h"
diff --git a/lib/asn1c/ngap/NGAP_S-NSSAI.h b/lib/asn1c/ngap/NGAP_S-NSSAI.h
index 0fdcff3603..1c32757c0e 100644
--- a/lib/asn1c/ngap/NGAP_S-NSSAI.h
+++ b/lib/asn1c/ngap/NGAP_S-NSSAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_S_NSSAI_H_
diff --git a/lib/asn1c/ngap/NGAP_SCTP-TLAs.c b/lib/asn1c/ngap/NGAP_SCTP-TLAs.c
index c226f0a323..d34e01e21f 100644
--- a/lib/asn1c/ngap/NGAP_SCTP-TLAs.c
+++ b/lib/asn1c/ngap/NGAP_SCTP-TLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SCTP-TLAs.h"
diff --git a/lib/asn1c/ngap/NGAP_SCTP-TLAs.h b/lib/asn1c/ngap/NGAP_SCTP-TLAs.h
index 9f64e3f070..4dda12dd7d 100644
--- a/lib/asn1c/ngap/NGAP_SCTP-TLAs.h
+++ b/lib/asn1c/ngap/NGAP_SCTP-TLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SCTP_TLAs_H_
diff --git a/lib/asn1c/ngap/NGAP_SD.c b/lib/asn1c/ngap/NGAP_SD.c
index afecd2c173..f2ada0d5b5 100644
--- a/lib/asn1c/ngap/NGAP_SD.c
+++ b/lib/asn1c/ngap/NGAP_SD.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SD.h"
diff --git a/lib/asn1c/ngap/NGAP_SD.h b/lib/asn1c/ngap/NGAP_SD.h
index f98b34db3f..3a869bc56d 100644
--- a/lib/asn1c/ngap/NGAP_SD.h
+++ b/lib/asn1c/ngap/NGAP_SD.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SD_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_SD;
asn_struct_free_f NGAP_SD_free;
asn_struct_print_f NGAP_SD_print;
asn_constr_check_f NGAP_SD_constraint;
-jer_type_encoder_f NGAP_SD_encode_jer;
per_type_decoder_f NGAP_SD_decode_aper;
per_type_encoder_f NGAP_SD_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.c b/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.c
index 394f369e33..dc28c02eca 100644
--- a/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.c
+++ b/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SNPN-MobilityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.h b/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.h
index 45b2442991..a7276f0532 100644
--- a/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.h
+++ b/lib/asn1c/ngap/NGAP_SNPN-MobilityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SNPN_MobilityInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.c b/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.c
index 444517f813..8c974dae62 100644
--- a/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SONConfigurationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.h b/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.h
index 07ab4e4581..433d71759d 100644
--- a/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_SONConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SONConfigurationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_SONInformation.c b/lib/asn1c/ngap/NGAP_SONInformation.c
index a53982481b..cbb458c8bc 100644
--- a/lib/asn1c/ngap/NGAP_SONInformation.c
+++ b/lib/asn1c/ngap/NGAP_SONInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SONInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_SONInformation.h b/lib/asn1c/ngap/NGAP_SONInformation.h
index bfbe86441e..75e630be2c 100644
--- a/lib/asn1c/ngap/NGAP_SONInformation.h
+++ b/lib/asn1c/ngap/NGAP_SONInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SONInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_SONInformationReply.c b/lib/asn1c/ngap/NGAP_SONInformationReply.c
index 8c0202b39e..3d2459b597 100644
--- a/lib/asn1c/ngap/NGAP_SONInformationReply.c
+++ b/lib/asn1c/ngap/NGAP_SONInformationReply.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SONInformationReply.h"
diff --git a/lib/asn1c/ngap/NGAP_SONInformationReply.h b/lib/asn1c/ngap/NGAP_SONInformationReply.h
index db2058b06c..a4b6e19a56 100644
--- a/lib/asn1c/ngap/NGAP_SONInformationReply.h
+++ b/lib/asn1c/ngap/NGAP_SONInformationReply.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SONInformationReply_H_
diff --git a/lib/asn1c/ngap/NGAP_SONInformationReport.c b/lib/asn1c/ngap/NGAP_SONInformationReport.c
index 8521729d2c..5bc9c3b2d2 100644
--- a/lib/asn1c/ngap/NGAP_SONInformationReport.c
+++ b/lib/asn1c/ngap/NGAP_SONInformationReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SONInformationReport.h"
diff --git a/lib/asn1c/ngap/NGAP_SONInformationReport.h b/lib/asn1c/ngap/NGAP_SONInformationReport.h
index f34c1c8e2d..3bd53a500c 100644
--- a/lib/asn1c/ngap/NGAP_SONInformationReport.h
+++ b/lib/asn1c/ngap/NGAP_SONInformationReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SONInformationReport_H_
diff --git a/lib/asn1c/ngap/NGAP_SONInformationRequest.c b/lib/asn1c/ngap/NGAP_SONInformationRequest.c
index fc27830a97..db45f65b21 100644
--- a/lib/asn1c/ngap/NGAP_SONInformationRequest.c
+++ b/lib/asn1c/ngap/NGAP_SONInformationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SONInformationRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_SONInformationRequest.h b/lib/asn1c/ngap/NGAP_SONInformationRequest.h
index 5caf3e3900..c755dcf639 100644
--- a/lib/asn1c/ngap/NGAP_SONInformationRequest.h
+++ b/lib/asn1c/ngap/NGAP_SONInformationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SONInformationRequest_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_SONInformationRequest_specs_1;
asn_struct_free_f NGAP_SONInformationRequest_free;
asn_struct_print_f NGAP_SONInformationRequest_print;
asn_constr_check_f NGAP_SONInformationRequest_constraint;
-jer_type_encoder_f NGAP_SONInformationRequest_encode_jer;
per_type_decoder_f NGAP_SONInformationRequest_decode_aper;
per_type_encoder_f NGAP_SONInformationRequest_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.c b/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.c
index 3dc4f95d8f..fda7312e1b 100644
--- a/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.c
+++ b/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SRVCCOperationPossible.h"
diff --git a/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.h b/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.h
index 0e11e7dc25..784d0f8dba 100644
--- a/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.h
+++ b/lib/asn1c/ngap/NGAP_SRVCCOperationPossible.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SRVCCOperationPossible_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_SRVCCOperationPossible_specs_1
asn_struct_free_f NGAP_SRVCCOperationPossible_free;
asn_struct_print_f NGAP_SRVCCOperationPossible_print;
asn_constr_check_f NGAP_SRVCCOperationPossible_constraint;
-jer_type_encoder_f NGAP_SRVCCOperationPossible_encode_jer;
per_type_decoder_f NGAP_SRVCCOperationPossible_decode_aper;
per_type_encoder_f NGAP_SRVCCOperationPossible_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SST.c b/lib/asn1c/ngap/NGAP_SST.c
index 8903ac83d0..27412a849a 100644
--- a/lib/asn1c/ngap/NGAP_SST.c
+++ b/lib/asn1c/ngap/NGAP_SST.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SST.h"
diff --git a/lib/asn1c/ngap/NGAP_SST.h b/lib/asn1c/ngap/NGAP_SST.h
index 3033604321..24b3d1b1fc 100644
--- a/lib/asn1c/ngap/NGAP_SST.h
+++ b/lib/asn1c/ngap/NGAP_SST.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SST_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_SST;
asn_struct_free_f NGAP_SST_free;
asn_struct_print_f NGAP_SST_print;
asn_constr_check_f NGAP_SST_constraint;
-jer_type_encoder_f NGAP_SST_encode_jer;
per_type_decoder_f NGAP_SST_decode_aper;
per_type_encoder_f NGAP_SST_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.c b/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.c
index 63371699c2..e912b3a3bf 100644
--- a/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.c
+++ b/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ScheduledCommunicationTime.h"
diff --git a/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.h b/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.h
index 228f4fce76..c107d949db 100644
--- a/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.h
+++ b/lib/asn1c/ngap/NGAP_ScheduledCommunicationTime.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ScheduledCommunicationTime_H_
diff --git a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.c b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.c
index 38b11a6792..12afa99289 100644
--- a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.c
+++ b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SecondaryRATDataUsageReport.h"
diff --git a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.h b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.h
index 818cd90b1e..20c3ea4be4 100644
--- a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.h
+++ b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SecondaryRATDataUsageReport_H_
diff --git a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.c b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.c
index c87e32e655..636632691b 100644
--- a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.c
+++ b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SecondaryRATDataUsageReportTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.h b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.h
index 9787e11f7e..014b8b6d5d 100644
--- a/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.h
+++ b/lib/asn1c/ngap/NGAP_SecondaryRATDataUsageReportTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SecondaryRATDataUsageReportTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.c b/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.c
index 585d4cbd9b..04c12cb6a0 100644
--- a/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.c
+++ b/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SecondaryRATUsageInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.h b/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.h
index 5895ec07fc..f91c4c6573 100644
--- a/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.h
+++ b/lib/asn1c/ngap/NGAP_SecondaryRATUsageInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SecondaryRATUsageInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_SecurityContext.c b/lib/asn1c/ngap/NGAP_SecurityContext.c
index 886c9475de..524a72f1e3 100644
--- a/lib/asn1c/ngap/NGAP_SecurityContext.c
+++ b/lib/asn1c/ngap/NGAP_SecurityContext.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SecurityContext.h"
diff --git a/lib/asn1c/ngap/NGAP_SecurityContext.h b/lib/asn1c/ngap/NGAP_SecurityContext.h
index 9152969085..d7a7c73fb3 100644
--- a/lib/asn1c/ngap/NGAP_SecurityContext.h
+++ b/lib/asn1c/ngap/NGAP_SecurityContext.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SecurityContext_H_
diff --git a/lib/asn1c/ngap/NGAP_SecurityIndication.c b/lib/asn1c/ngap/NGAP_SecurityIndication.c
index 55741f08f6..9536cb622d 100644
--- a/lib/asn1c/ngap/NGAP_SecurityIndication.c
+++ b/lib/asn1c/ngap/NGAP_SecurityIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SecurityIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_SecurityIndication.h b/lib/asn1c/ngap/NGAP_SecurityIndication.h
index 1d93f08cae..bfeabdc568 100644
--- a/lib/asn1c/ngap/NGAP_SecurityIndication.h
+++ b/lib/asn1c/ngap/NGAP_SecurityIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SecurityIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_SecurityKey.c b/lib/asn1c/ngap/NGAP_SecurityKey.c
index 0606c51dc9..38acf2d319 100644
--- a/lib/asn1c/ngap/NGAP_SecurityKey.c
+++ b/lib/asn1c/ngap/NGAP_SecurityKey.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SecurityKey.h"
diff --git a/lib/asn1c/ngap/NGAP_SecurityKey.h b/lib/asn1c/ngap/NGAP_SecurityKey.h
index 21416519ac..2de2d70d4c 100644
--- a/lib/asn1c/ngap/NGAP_SecurityKey.h
+++ b/lib/asn1c/ngap/NGAP_SecurityKey.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SecurityKey_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_SecurityKey;
asn_struct_free_f NGAP_SecurityKey_free;
asn_struct_print_f NGAP_SecurityKey_print;
asn_constr_check_f NGAP_SecurityKey_constraint;
-jer_type_encoder_f NGAP_SecurityKey_encode_jer;
per_type_decoder_f NGAP_SecurityKey_decode_aper;
per_type_encoder_f NGAP_SecurityKey_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SecurityResult.c b/lib/asn1c/ngap/NGAP_SecurityResult.c
index 440fc6187a..c878f9ac58 100644
--- a/lib/asn1c/ngap/NGAP_SecurityResult.c
+++ b/lib/asn1c/ngap/NGAP_SecurityResult.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SecurityResult.h"
diff --git a/lib/asn1c/ngap/NGAP_SecurityResult.h b/lib/asn1c/ngap/NGAP_SecurityResult.h
index 9d93641d14..f83887d32c 100644
--- a/lib/asn1c/ngap/NGAP_SecurityResult.h
+++ b/lib/asn1c/ngap/NGAP_SecurityResult.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SecurityResult_H_
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasConfig.c b/lib/asn1c/ngap/NGAP_SensorMeasConfig.c
index fcf00026fe..02cb1e4121 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasConfig.c
+++ b/lib/asn1c/ngap/NGAP_SensorMeasConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SensorMeasConfig.h"
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasConfig.h b/lib/asn1c/ngap/NGAP_SensorMeasConfig.h
index 672958b2bc..894f9f1baf 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasConfig.h
+++ b/lib/asn1c/ngap/NGAP_SensorMeasConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SensorMeasConfig_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_SensorMeasConfig_specs_1;
asn_struct_free_f NGAP_SensorMeasConfig_free;
asn_struct_print_f NGAP_SensorMeasConfig_print;
asn_constr_check_f NGAP_SensorMeasConfig_constraint;
-jer_type_encoder_f NGAP_SensorMeasConfig_encode_jer;
per_type_decoder_f NGAP_SensorMeasConfig_decode_aper;
per_type_encoder_f NGAP_SensorMeasConfig_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.c b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.c
index 6895bfc6bb..c6ca8e4ced 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.c
+++ b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SensorMeasConfigNameItem.h"
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.h b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.h
index ca4121346e..df2b5fc3b8 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.h
+++ b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SensorMeasConfigNameItem_H_
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.c b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.c
index 132603036a..867d1de8c8 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.c
+++ b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SensorMeasConfigNameList.h"
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.h b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.h
index c485a0d553..a3c7c39d39 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.h
+++ b/lib/asn1c/ngap/NGAP_SensorMeasConfigNameList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SensorMeasConfigNameList_H_
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.c b/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.c
index 60d952f048..b3e86ffeb3 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.c
+++ b/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SensorMeasurementConfiguration.h"
diff --git a/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.h b/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.h
index f42c6b1ded..66aa6be860 100644
--- a/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.h
+++ b/lib/asn1c/ngap/NGAP_SensorMeasurementConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SensorMeasurementConfiguration_H_
diff --git a/lib/asn1c/ngap/NGAP_SensorNameConfig.c b/lib/asn1c/ngap/NGAP_SensorNameConfig.c
index 99e3007106..b51e4fab09 100644
--- a/lib/asn1c/ngap/NGAP_SensorNameConfig.c
+++ b/lib/asn1c/ngap/NGAP_SensorNameConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SensorNameConfig.h"
diff --git a/lib/asn1c/ngap/NGAP_SensorNameConfig.h b/lib/asn1c/ngap/NGAP_SensorNameConfig.h
index 67f2acf18c..7d5bfaf75c 100644
--- a/lib/asn1c/ngap/NGAP_SensorNameConfig.h
+++ b/lib/asn1c/ngap/NGAP_SensorNameConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SensorNameConfig_H_
diff --git a/lib/asn1c/ngap/NGAP_SerialNumber.c b/lib/asn1c/ngap/NGAP_SerialNumber.c
index 73cb460eb7..a774fd4323 100644
--- a/lib/asn1c/ngap/NGAP_SerialNumber.c
+++ b/lib/asn1c/ngap/NGAP_SerialNumber.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SerialNumber.h"
diff --git a/lib/asn1c/ngap/NGAP_SerialNumber.h b/lib/asn1c/ngap/NGAP_SerialNumber.h
index 574d706f17..5bfb6df73c 100644
--- a/lib/asn1c/ngap/NGAP_SerialNumber.h
+++ b/lib/asn1c/ngap/NGAP_SerialNumber.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SerialNumber_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_SerialNumber;
asn_struct_free_f NGAP_SerialNumber_free;
asn_struct_print_f NGAP_SerialNumber_print;
asn_constr_check_f NGAP_SerialNumber_constraint;
-jer_type_encoder_f NGAP_SerialNumber_encode_jer;
per_type_decoder_f NGAP_SerialNumber_decode_aper;
per_type_encoder_f NGAP_SerialNumber_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_ServedGUAMIItem.c b/lib/asn1c/ngap/NGAP_ServedGUAMIItem.c
index eeeb7d8a9c..19b157bf99 100644
--- a/lib/asn1c/ngap/NGAP_ServedGUAMIItem.c
+++ b/lib/asn1c/ngap/NGAP_ServedGUAMIItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ServedGUAMIItem.h"
diff --git a/lib/asn1c/ngap/NGAP_ServedGUAMIItem.h b/lib/asn1c/ngap/NGAP_ServedGUAMIItem.h
index 9e6073d9ed..08d13b4004 100644
--- a/lib/asn1c/ngap/NGAP_ServedGUAMIItem.h
+++ b/lib/asn1c/ngap/NGAP_ServedGUAMIItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ServedGUAMIItem_H_
diff --git a/lib/asn1c/ngap/NGAP_ServedGUAMIList.c b/lib/asn1c/ngap/NGAP_ServedGUAMIList.c
index 3a3a7ee275..80c9fa02d7 100644
--- a/lib/asn1c/ngap/NGAP_ServedGUAMIList.c
+++ b/lib/asn1c/ngap/NGAP_ServedGUAMIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ServedGUAMIList.h"
diff --git a/lib/asn1c/ngap/NGAP_ServedGUAMIList.h b/lib/asn1c/ngap/NGAP_ServedGUAMIList.h
index cbbc14a52a..6567a25a19 100644
--- a/lib/asn1c/ngap/NGAP_ServedGUAMIList.h
+++ b/lib/asn1c/ngap/NGAP_ServedGUAMIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ServedGUAMIList_H_
diff --git a/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.c b/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.c
index 215786fac1..23bfb5fb38 100644
--- a/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.c
+++ b/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ServiceAreaInformation-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.h b/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.h
index 7ff7a7a207..0e6cc294e0 100644
--- a/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.h
+++ b/lib/asn1c/ngap/NGAP_ServiceAreaInformation-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ServiceAreaInformation_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_ServiceAreaInformation.c b/lib/asn1c/ngap/NGAP_ServiceAreaInformation.c
index d81e32ba41..a10c601f34 100644
--- a/lib/asn1c/ngap/NGAP_ServiceAreaInformation.c
+++ b/lib/asn1c/ngap/NGAP_ServiceAreaInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ServiceAreaInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_ServiceAreaInformation.h b/lib/asn1c/ngap/NGAP_ServiceAreaInformation.h
index 134e1b4fa2..ef82a966c7 100644
--- a/lib/asn1c/ngap/NGAP_ServiceAreaInformation.h
+++ b/lib/asn1c/ngap/NGAP_ServiceAreaInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ServiceAreaInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_ServiceType.c b/lib/asn1c/ngap/NGAP_ServiceType.c
index cc8ee1b490..3200752869 100644
--- a/lib/asn1c/ngap/NGAP_ServiceType.c
+++ b/lib/asn1c/ngap/NGAP_ServiceType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ServiceType.h"
diff --git a/lib/asn1c/ngap/NGAP_ServiceType.h b/lib/asn1c/ngap/NGAP_ServiceType.h
index 9da0da67a4..4b1ebb6e3f 100644
--- a/lib/asn1c/ngap/NGAP_ServiceType.h
+++ b/lib/asn1c/ngap/NGAP_ServiceType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ServiceType_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ServiceType_specs_1;
asn_struct_free_f NGAP_ServiceType_free;
asn_struct_print_f NGAP_ServiceType_print;
asn_constr_check_f NGAP_ServiceType_constraint;
-jer_type_encoder_f NGAP_ServiceType_encode_jer;
per_type_decoder_f NGAP_ServiceType_decode_aper;
per_type_encoder_f NGAP_ServiceType_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.c b/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.c
index 8cf28a3ad0..c05a883f12 100644
--- a/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.c
+++ b/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SgNB-UE-X2AP-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.h b/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.h
index 6d25389340..3cf7d37a75 100644
--- a/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.h
+++ b/lib/asn1c/ngap/NGAP_SgNB-UE-X2AP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SgNB_UE_X2AP_ID_H_
@@ -28,7 +28,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_SgNB_UE_X2AP_ID_specs_1;
asn_struct_free_f NGAP_SgNB_UE_X2AP_ID_free;
asn_struct_print_f NGAP_SgNB_UE_X2AP_ID_print;
asn_constr_check_f NGAP_SgNB_UE_X2AP_ID_constraint;
-jer_type_encoder_f NGAP_SgNB_UE_X2AP_ID_encode_jer;
per_type_decoder_f NGAP_SgNB_UE_X2AP_ID_decode_aper;
per_type_encoder_f NGAP_SgNB_UE_X2AP_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.c b/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.c
index 19806c4de1..af80605c18 100644
--- a/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.c
+++ b/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SharedNGU-MulticastTNLInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.h b/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.h
index 574c6417eb..6b86a6044c 100644
--- a/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.h
+++ b/lib/asn1c/ngap/NGAP_SharedNGU-MulticastTNLInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SharedNGU_MulticastTNLInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_SliceOverloadItem.c b/lib/asn1c/ngap/NGAP_SliceOverloadItem.c
index 649ee39673..3f4efcf4f3 100644
--- a/lib/asn1c/ngap/NGAP_SliceOverloadItem.c
+++ b/lib/asn1c/ngap/NGAP_SliceOverloadItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SliceOverloadItem.h"
diff --git a/lib/asn1c/ngap/NGAP_SliceOverloadItem.h b/lib/asn1c/ngap/NGAP_SliceOverloadItem.h
index 79ec8772cb..adbd819680 100644
--- a/lib/asn1c/ngap/NGAP_SliceOverloadItem.h
+++ b/lib/asn1c/ngap/NGAP_SliceOverloadItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SliceOverloadItem_H_
diff --git a/lib/asn1c/ngap/NGAP_SliceOverloadList.c b/lib/asn1c/ngap/NGAP_SliceOverloadList.c
index c3a05d34d3..fe8d71dd4c 100644
--- a/lib/asn1c/ngap/NGAP_SliceOverloadList.c
+++ b/lib/asn1c/ngap/NGAP_SliceOverloadList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SliceOverloadList.h"
diff --git a/lib/asn1c/ngap/NGAP_SliceOverloadList.h b/lib/asn1c/ngap/NGAP_SliceOverloadList.h
index 9aff2d3ba3..fc9d448afa 100644
--- a/lib/asn1c/ngap/NGAP_SliceOverloadList.h
+++ b/lib/asn1c/ngap/NGAP_SliceOverloadList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SliceOverloadList_H_
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportItem.c b/lib/asn1c/ngap/NGAP_SliceSupportItem.c
index 8ac92d9a32..566c84abd7 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportItem.c
+++ b/lib/asn1c/ngap/NGAP_SliceSupportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SliceSupportItem.h"
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportItem.h b/lib/asn1c/ngap/NGAP_SliceSupportItem.h
index 37765cba33..029fdab8d5 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportItem.h
+++ b/lib/asn1c/ngap/NGAP_SliceSupportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SliceSupportItem_H_
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportList.c b/lib/asn1c/ngap/NGAP_SliceSupportList.c
index d8a9b00897..c772a3b09f 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportList.c
+++ b/lib/asn1c/ngap/NGAP_SliceSupportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SliceSupportList.h"
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportList.h b/lib/asn1c/ngap/NGAP_SliceSupportList.h
index 472c7db914..c7da4056b4 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportList.h
+++ b/lib/asn1c/ngap/NGAP_SliceSupportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SliceSupportList_H_
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportListQMC.c b/lib/asn1c/ngap/NGAP_SliceSupportListQMC.c
index 2a0b18990d..be53a40e51 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportListQMC.c
+++ b/lib/asn1c/ngap/NGAP_SliceSupportListQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SliceSupportListQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportListQMC.h b/lib/asn1c/ngap/NGAP_SliceSupportListQMC.h
index 5ed8e014ae..272cf2a90f 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportListQMC.h
+++ b/lib/asn1c/ngap/NGAP_SliceSupportListQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SliceSupportListQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.c b/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.c
index ff3376e32f..ae7e940161 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.c
+++ b/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SliceSupportQMC-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.h b/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.h
index f88715ca04..9c9ecdd5ff 100644
--- a/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.h
+++ b/lib/asn1c/ngap/NGAP_SliceSupportQMC-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SliceSupportQMC_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c b/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c
index ccbb4075d8..26f7cc61e3 100644
--- a/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h b/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h
index 9e3c27ca0d..3dc44ee354 100644
--- a/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_SourceNGRANNode-ToTargetNGRANNode-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SourceNGRANNode_ToTargetNGRANNode_TransparentContainer_H_
diff --git a/lib/asn1c/ngap/NGAP_SourceNodeID.c b/lib/asn1c/ngap/NGAP_SourceNodeID.c
index a3b554b1ad..a0a977a92e 100644
--- a/lib/asn1c/ngap/NGAP_SourceNodeID.c
+++ b/lib/asn1c/ngap/NGAP_SourceNodeID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SourceNodeID.h"
diff --git a/lib/asn1c/ngap/NGAP_SourceNodeID.h b/lib/asn1c/ngap/NGAP_SourceNodeID.h
index 535a2667b5..4c601602e6 100644
--- a/lib/asn1c/ngap/NGAP_SourceNodeID.h
+++ b/lib/asn1c/ngap/NGAP_SourceNodeID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SourceNodeID_H_
diff --git a/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.c b/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.c
index f98b1544c1..29b8c63841 100644
--- a/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.c
+++ b/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SourceOfUEActivityBehaviourInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.h b/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.h
index b5e03c14d0..4e67c2e802 100644
--- a/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.h
+++ b/lib/asn1c/ngap/NGAP_SourceOfUEActivityBehaviourInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SourceOfUEActivityBehaviourInformation_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_SourceOfUEActivityBehaviourInf
asn_struct_free_f NGAP_SourceOfUEActivityBehaviourInformation_free;
asn_struct_print_f NGAP_SourceOfUEActivityBehaviourInformation_print;
asn_constr_check_f NGAP_SourceOfUEActivityBehaviourInformation_constraint;
-jer_type_encoder_f NGAP_SourceOfUEActivityBehaviourInformation_encode_jer;
per_type_decoder_f NGAP_SourceOfUEActivityBehaviourInformation_decode_aper;
per_type_encoder_f NGAP_SourceOfUEActivityBehaviourInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SourceRANNodeID.c b/lib/asn1c/ngap/NGAP_SourceRANNodeID.c
index 26fb3b9dfe..23a1c32d55 100644
--- a/lib/asn1c/ngap/NGAP_SourceRANNodeID.c
+++ b/lib/asn1c/ngap/NGAP_SourceRANNodeID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SourceRANNodeID.h"
diff --git a/lib/asn1c/ngap/NGAP_SourceRANNodeID.h b/lib/asn1c/ngap/NGAP_SourceRANNodeID.h
index 44ee0e60f6..e808eb4834 100644
--- a/lib/asn1c/ngap/NGAP_SourceRANNodeID.h
+++ b/lib/asn1c/ngap/NGAP_SourceRANNodeID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SourceRANNodeID_H_
diff --git a/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.c b/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.c
index 1a4dea98ea..a400140613 100644
--- a/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.c
+++ b/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SourceToTarget-AMFInformationReroute.h"
diff --git a/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.h b/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.h
index 0aaf3a6d29..20d468f7e8 100644
--- a/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.h
+++ b/lib/asn1c/ngap/NGAP_SourceToTarget-AMFInformationReroute.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SourceToTarget_AMFInformationReroute_H_
diff --git a/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.c b/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.c
index 8930b4c551..0cede012a5 100644
--- a/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SourceToTarget-TransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.h b/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.h
index 169efbff22..ccf77c0749 100644
--- a/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_SourceToTarget-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SourceToTarget_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_SourceToTarget_TransparentContainer;
asn_struct_free_f NGAP_SourceToTarget_TransparentContainer_free;
asn_struct_print_f NGAP_SourceToTarget_TransparentContainer_print;
asn_constr_check_f NGAP_SourceToTarget_TransparentContainer_constraint;
-jer_type_encoder_f NGAP_SourceToTarget_TransparentContainer_encode_jer;
per_type_decoder_f NGAP_SourceToTarget_TransparentContainer_decode_aper;
per_type_encoder_f NGAP_SourceToTarget_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.c b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.c
index ff5da992b9..449a2b3074 100644
--- a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.c
+++ b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SuccessfulHandoverReport-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.h b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.h
index 042cdbe2a1..97aa0097e0 100644
--- a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.h
+++ b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReport-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SuccessfulHandoverReport_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.c b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.c
index a89be48098..13a0d30ed7 100644
--- a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.c
+++ b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SuccessfulHandoverReportList.h"
diff --git a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.h b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.h
index 7847938e9f..c3a961eeca 100644
--- a/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.h
+++ b/lib/asn1c/ngap/NGAP_SuccessfulHandoverReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SuccessfulHandoverReportList_H_
diff --git a/lib/asn1c/ngap/NGAP_SuccessfulOutcome.c b/lib/asn1c/ngap/NGAP_SuccessfulOutcome.c
index b4b41880f1..d9d929b22c 100644
--- a/lib/asn1c/ngap/NGAP_SuccessfulOutcome.c
+++ b/lib/asn1c/ngap/NGAP_SuccessfulOutcome.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SuccessfulOutcome.h"
diff --git a/lib/asn1c/ngap/NGAP_SuccessfulOutcome.h b/lib/asn1c/ngap/NGAP_SuccessfulOutcome.h
index a58299b13e..e3c5636651 100644
--- a/lib/asn1c/ngap/NGAP_SuccessfulOutcome.h
+++ b/lib/asn1c/ngap/NGAP_SuccessfulOutcome.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SuccessfulOutcome_H_
diff --git a/lib/asn1c/ngap/NGAP_SupportedTAItem.c b/lib/asn1c/ngap/NGAP_SupportedTAItem.c
index 857336e0b4..5da3582a46 100644
--- a/lib/asn1c/ngap/NGAP_SupportedTAItem.c
+++ b/lib/asn1c/ngap/NGAP_SupportedTAItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SupportedTAItem.h"
diff --git a/lib/asn1c/ngap/NGAP_SupportedTAItem.h b/lib/asn1c/ngap/NGAP_SupportedTAItem.h
index 3fbac6fa22..f04f2bbf24 100644
--- a/lib/asn1c/ngap/NGAP_SupportedTAItem.h
+++ b/lib/asn1c/ngap/NGAP_SupportedTAItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SupportedTAItem_H_
diff --git a/lib/asn1c/ngap/NGAP_SupportedTAList.c b/lib/asn1c/ngap/NGAP_SupportedTAList.c
index 3bf66f19b6..74544adbc4 100644
--- a/lib/asn1c/ngap/NGAP_SupportedTAList.c
+++ b/lib/asn1c/ngap/NGAP_SupportedTAList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SupportedTAList.h"
diff --git a/lib/asn1c/ngap/NGAP_SupportedTAList.h b/lib/asn1c/ngap/NGAP_SupportedTAList.h
index 57d11ca25c..47b0c48232 100644
--- a/lib/asn1c/ngap/NGAP_SupportedTAList.h
+++ b/lib/asn1c/ngap/NGAP_SupportedTAList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SupportedTAList_H_
diff --git a/lib/asn1c/ngap/NGAP_SurvivalTime.c b/lib/asn1c/ngap/NGAP_SurvivalTime.c
index 177bf38961..a40de9496a 100644
--- a/lib/asn1c/ngap/NGAP_SurvivalTime.c
+++ b/lib/asn1c/ngap/NGAP_SurvivalTime.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SurvivalTime.h"
diff --git a/lib/asn1c/ngap/NGAP_SurvivalTime.h b/lib/asn1c/ngap/NGAP_SurvivalTime.h
index 068fbf74fd..70589f1380 100644
--- a/lib/asn1c/ngap/NGAP_SurvivalTime.h
+++ b/lib/asn1c/ngap/NGAP_SurvivalTime.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SurvivalTime_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_SurvivalTime;
asn_struct_free_f NGAP_SurvivalTime_free;
asn_struct_print_f NGAP_SurvivalTime_print;
asn_constr_check_f NGAP_SurvivalTime_constraint;
-jer_type_encoder_f NGAP_SurvivalTime_encode_jer;
per_type_decoder_f NGAP_SurvivalTime_decode_aper;
per_type_encoder_f NGAP_SurvivalTime_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.c b/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.c
index 1b9b0fa9a1..7d13656512 100644
--- a/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.c
+++ b/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Suspend-Request-Indication.h"
diff --git a/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.h b/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.h
index e45be6c5a0..da150e9faa 100644
--- a/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.h
+++ b/lib/asn1c/ngap/NGAP_Suspend-Request-Indication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Suspend_Request_Indication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Suspend_Request_Indication_spe
asn_struct_free_f NGAP_Suspend_Request_Indication_free;
asn_struct_print_f NGAP_Suspend_Request_Indication_print;
asn_constr_check_f NGAP_Suspend_Request_Indication_constraint;
-jer_type_encoder_f NGAP_Suspend_Request_Indication_encode_jer;
per_type_decoder_f NGAP_Suspend_Request_Indication_decode_aper;
per_type_encoder_f NGAP_Suspend_Request_Indication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.c b/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.c
index 9ec1df000c..53efa01e0f 100644
--- a/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.c
+++ b/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Suspend-Response-Indication.h"
diff --git a/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.h b/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.h
index f9397461ba..fa696fe3c7 100644
--- a/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.h
+++ b/lib/asn1c/ngap/NGAP_Suspend-Response-Indication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Suspend_Response_Indication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_Suspend_Response_Indication_sp
asn_struct_free_f NGAP_Suspend_Response_Indication_free;
asn_struct_print_f NGAP_Suspend_Response_Indication_print;
asn_constr_check_f NGAP_Suspend_Response_Indication_constraint;
-jer_type_encoder_f NGAP_Suspend_Response_Indication_encode_jer;
per_type_decoder_f NGAP_Suspend_Response_Indication_decode_aper;
per_type_encoder_f NGAP_Suspend_Response_Indication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_SuspendIndicator.c b/lib/asn1c/ngap/NGAP_SuspendIndicator.c
index cb91527228..568e68cf47 100644
--- a/lib/asn1c/ngap/NGAP_SuspendIndicator.c
+++ b/lib/asn1c/ngap/NGAP_SuspendIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_SuspendIndicator.h"
diff --git a/lib/asn1c/ngap/NGAP_SuspendIndicator.h b/lib/asn1c/ngap/NGAP_SuspendIndicator.h
index 915c548f95..d051deaad0 100644
--- a/lib/asn1c/ngap/NGAP_SuspendIndicator.h
+++ b/lib/asn1c/ngap/NGAP_SuspendIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_SuspendIndicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_SuspendIndicator_specs_1;
asn_struct_free_f NGAP_SuspendIndicator_free;
asn_struct_print_f NGAP_SuspendIndicator_print;
asn_constr_check_f NGAP_SuspendIndicator_constraint;
-jer_type_encoder_f NGAP_SuspendIndicator_encode_jer;
per_type_decoder_f NGAP_SuspendIndicator_decode_aper;
per_type_encoder_f NGAP_SuspendIndicator_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TABasedMDT.c b/lib/asn1c/ngap/NGAP_TABasedMDT.c
index 65f3c492cd..923078a9a4 100644
--- a/lib/asn1c/ngap/NGAP_TABasedMDT.c
+++ b/lib/asn1c/ngap/NGAP_TABasedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TABasedMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_TABasedMDT.h b/lib/asn1c/ngap/NGAP_TABasedMDT.h
index 6f7b40e433..a8496062f2 100644
--- a/lib/asn1c/ngap/NGAP_TABasedMDT.h
+++ b/lib/asn1c/ngap/NGAP_TABasedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TABasedMDT_H_
diff --git a/lib/asn1c/ngap/NGAP_TABasedQMC.c b/lib/asn1c/ngap/NGAP_TABasedQMC.c
index d402e84e94..3fc29b99fc 100644
--- a/lib/asn1c/ngap/NGAP_TABasedQMC.c
+++ b/lib/asn1c/ngap/NGAP_TABasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TABasedQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_TABasedQMC.h b/lib/asn1c/ngap/NGAP_TABasedQMC.h
index 2b0ce912bd..98a5f56ae8 100644
--- a/lib/asn1c/ngap/NGAP_TABasedQMC.h
+++ b/lib/asn1c/ngap/NGAP_TABasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TABasedQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_TAC.c b/lib/asn1c/ngap/NGAP_TAC.c
index a43e6fb031..d856bc71e3 100644
--- a/lib/asn1c/ngap/NGAP_TAC.c
+++ b/lib/asn1c/ngap/NGAP_TAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAC.h"
diff --git a/lib/asn1c/ngap/NGAP_TAC.h b/lib/asn1c/ngap/NGAP_TAC.h
index e50d8ef7a8..2376713f54 100644
--- a/lib/asn1c/ngap/NGAP_TAC.h
+++ b/lib/asn1c/ngap/NGAP_TAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TAC;
asn_struct_free_f NGAP_TAC_free;
asn_struct_print_f NGAP_TAC_print;
asn_constr_check_f NGAP_TAC_constraint;
-jer_type_encoder_f NGAP_TAC_encode_jer;
per_type_decoder_f NGAP_TAC_decode_aper;
per_type_encoder_f NGAP_TAC_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TACListInNRNTN.c b/lib/asn1c/ngap/NGAP_TACListInNRNTN.c
index 5743842160..9fa3faf2b8 100644
--- a/lib/asn1c/ngap/NGAP_TACListInNRNTN.c
+++ b/lib/asn1c/ngap/NGAP_TACListInNRNTN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TACListInNRNTN.h"
diff --git a/lib/asn1c/ngap/NGAP_TACListInNRNTN.h b/lib/asn1c/ngap/NGAP_TACListInNRNTN.h
index 08793a70ca..b233d9f376 100644
--- a/lib/asn1c/ngap/NGAP_TACListInNRNTN.h
+++ b/lib/asn1c/ngap/NGAP_TACListInNRNTN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TACListInNRNTN_H_
diff --git a/lib/asn1c/ngap/NGAP_TAI.c b/lib/asn1c/ngap/NGAP_TAI.c
index 5e746faa21..908c2930bf 100644
--- a/lib/asn1c/ngap/NGAP_TAI.c
+++ b/lib/asn1c/ngap/NGAP_TAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAI.h"
diff --git a/lib/asn1c/ngap/NGAP_TAI.h b/lib/asn1c/ngap/NGAP_TAI.h
index 9c8887065f..743f612962 100644
--- a/lib/asn1c/ngap/NGAP_TAI.h
+++ b/lib/asn1c/ngap/NGAP_TAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAI_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIBasedMDT.c b/lib/asn1c/ngap/NGAP_TAIBasedMDT.c
index fb7a4400c0..291675642e 100644
--- a/lib/asn1c/ngap/NGAP_TAIBasedMDT.c
+++ b/lib/asn1c/ngap/NGAP_TAIBasedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIBasedMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIBasedMDT.h b/lib/asn1c/ngap/NGAP_TAIBasedMDT.h
index 8fa2c65a75..f4b37b740f 100644
--- a/lib/asn1c/ngap/NGAP_TAIBasedMDT.h
+++ b/lib/asn1c/ngap/NGAP_TAIBasedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIBasedMDT_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIBasedQMC.c b/lib/asn1c/ngap/NGAP_TAIBasedQMC.c
index 3a2b43502d..3526c2b92d 100644
--- a/lib/asn1c/ngap/NGAP_TAIBasedQMC.c
+++ b/lib/asn1c/ngap/NGAP_TAIBasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIBasedQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIBasedQMC.h b/lib/asn1c/ngap/NGAP_TAIBasedQMC.h
index f64f2a7896..d354b0239e 100644
--- a/lib/asn1c/ngap/NGAP_TAIBasedQMC.h
+++ b/lib/asn1c/ngap/NGAP_TAIBasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIBasedQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.c b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.c
index c6a8c44d86..2df9df14a0 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIBroadcastEUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.h b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.h
index ad3be5a474..564bcd0ebb 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIBroadcastEUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.c b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.c
index 530cda0cd3..d2d1d4d433 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIBroadcastEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.h b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.h
index fba3af143a..80993411ae 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIBroadcastEUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.c b/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.c
index 7d47109b23..670ab37664 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.c
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIBroadcastNR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.h b/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.h
index 55514c54f3..b72a94ba9d 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.h
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastNR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIBroadcastNR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastNR.c b/lib/asn1c/ngap/NGAP_TAIBroadcastNR.c
index a2f34852fa..7310ae9a8e 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastNR.c
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIBroadcastNR.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIBroadcastNR.h b/lib/asn1c/ngap/NGAP_TAIBroadcastNR.h
index 5267111b0d..53f5631551 100644
--- a/lib/asn1c/ngap/NGAP_TAIBroadcastNR.h
+++ b/lib/asn1c/ngap/NGAP_TAIBroadcastNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIBroadcastNR_H_
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.c b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.c
index 79792afcfa..83479047bf 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.c
+++ b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAICancelledEUTRA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.h b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.h
index 36f69ae785..1d1de2e90d 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.h
+++ b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAICancelledEUTRA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.c b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.c
index 998ededfb7..445423819e 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAICancelledEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.h b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.h
index 576b6ce626..9a65ff6ef9 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_TAICancelledEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAICancelledEUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.c b/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.c
index 1f5aa89974..caefea2619 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.c
+++ b/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAICancelledNR-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.h b/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.h
index 908a65f9d4..913e873ebb 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.h
+++ b/lib/asn1c/ngap/NGAP_TAICancelledNR-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAICancelledNR_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledNR.c b/lib/asn1c/ngap/NGAP_TAICancelledNR.c
index d4285760e7..cfd63977f5 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledNR.c
+++ b/lib/asn1c/ngap/NGAP_TAICancelledNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAICancelledNR.h"
diff --git a/lib/asn1c/ngap/NGAP_TAICancelledNR.h b/lib/asn1c/ngap/NGAP_TAICancelledNR.h
index dd373b8d9c..871ac8528e 100644
--- a/lib/asn1c/ngap/NGAP_TAICancelledNR.h
+++ b/lib/asn1c/ngap/NGAP_TAICancelledNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAICancelledNR_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListForInactive.c b/lib/asn1c/ngap/NGAP_TAIListForInactive.c
index b6d19e6df4..27d336f3d4 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForInactive.c
+++ b/lib/asn1c/ngap/NGAP_TAIListForInactive.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListForInactive.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListForInactive.h b/lib/asn1c/ngap/NGAP_TAIListForInactive.h
index 85151851c8..8f08ff8584 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForInactive.h
+++ b/lib/asn1c/ngap/NGAP_TAIListForInactive.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListForInactive_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.c b/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.c
index caf53bae5a..d6ee8f3c26 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.c
+++ b/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListForInactiveItem.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.h b/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.h
index 961b0b86c6..4d8fb24e27 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.h
+++ b/lib/asn1c/ngap/NGAP_TAIListForInactiveItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListForInactiveItem_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListForPaging.c b/lib/asn1c/ngap/NGAP_TAIListForPaging.c
index cb0a7a57a3..d4a7eaa650 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForPaging.c
+++ b/lib/asn1c/ngap/NGAP_TAIListForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListForPaging.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListForPaging.h b/lib/asn1c/ngap/NGAP_TAIListForPaging.h
index e724b80798..cb4fd8fccf 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForPaging.h
+++ b/lib/asn1c/ngap/NGAP_TAIListForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListForPaging_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListForPagingItem.c b/lib/asn1c/ngap/NGAP_TAIListForPagingItem.c
index 7dbc70298d..95fb043ebb 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForPagingItem.c
+++ b/lib/asn1c/ngap/NGAP_TAIListForPagingItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListForPagingItem.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListForPagingItem.h b/lib/asn1c/ngap/NGAP_TAIListForPagingItem.h
index be0ec62ac6..9c3a5dcf9f 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForPagingItem.h
+++ b/lib/asn1c/ngap/NGAP_TAIListForPagingItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListForPagingItem_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListForRestart.c b/lib/asn1c/ngap/NGAP_TAIListForRestart.c
index f7f8682562..46f8d4bdc0 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForRestart.c
+++ b/lib/asn1c/ngap/NGAP_TAIListForRestart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListForRestart.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListForRestart.h b/lib/asn1c/ngap/NGAP_TAIListForRestart.h
index 9fcf0b1b3a..2d9b5a6254 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForRestart.h
+++ b/lib/asn1c/ngap/NGAP_TAIListForRestart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListForRestart_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListForWarning.c b/lib/asn1c/ngap/NGAP_TAIListForWarning.c
index 97e463fa36..82aa95ee46 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForWarning.c
+++ b/lib/asn1c/ngap/NGAP_TAIListForWarning.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListForWarning.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListForWarning.h b/lib/asn1c/ngap/NGAP_TAIListForWarning.h
index f6dc59a2d5..5e059900e4 100644
--- a/lib/asn1c/ngap/NGAP_TAIListForWarning.h
+++ b/lib/asn1c/ngap/NGAP_TAIListForWarning.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListForWarning_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListforMDT.c b/lib/asn1c/ngap/NGAP_TAIListforMDT.c
index a70fd4b5b2..9e4e2133a7 100644
--- a/lib/asn1c/ngap/NGAP_TAIListforMDT.c
+++ b/lib/asn1c/ngap/NGAP_TAIListforMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListforMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListforMDT.h b/lib/asn1c/ngap/NGAP_TAIListforMDT.h
index 8bc53f032c..dc0a711896 100644
--- a/lib/asn1c/ngap/NGAP_TAIListforMDT.h
+++ b/lib/asn1c/ngap/NGAP_TAIListforMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListforMDT_H_
diff --git a/lib/asn1c/ngap/NGAP_TAIListforQMC.c b/lib/asn1c/ngap/NGAP_TAIListforQMC.c
index 9680ce21d3..23df540aac 100644
--- a/lib/asn1c/ngap/NGAP_TAIListforQMC.c
+++ b/lib/asn1c/ngap/NGAP_TAIListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAIListforQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_TAIListforQMC.h b/lib/asn1c/ngap/NGAP_TAIListforQMC.h
index adb878ee26..1cfbea5191 100644
--- a/lib/asn1c/ngap/NGAP_TAIListforQMC.h
+++ b/lib/asn1c/ngap/NGAP_TAIListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAIListforQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.c b/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.c
index bcb05de9a2..60ab69d384 100644
--- a/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.c
+++ b/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAINSAGSupportItem.h"
diff --git a/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.h b/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.h
index 4f30e1ea43..333caebc26 100644
--- a/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.h
+++ b/lib/asn1c/ngap/NGAP_TAINSAGSupportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAINSAGSupportItem_H_
diff --git a/lib/asn1c/ngap/NGAP_TAINSAGSupportList.c b/lib/asn1c/ngap/NGAP_TAINSAGSupportList.c
index f673c3468a..4ae9e916f0 100644
--- a/lib/asn1c/ngap/NGAP_TAINSAGSupportList.c
+++ b/lib/asn1c/ngap/NGAP_TAINSAGSupportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAINSAGSupportList.h"
diff --git a/lib/asn1c/ngap/NGAP_TAINSAGSupportList.h b/lib/asn1c/ngap/NGAP_TAINSAGSupportList.h
index f2a7bad7b7..f43bde6f6b 100644
--- a/lib/asn1c/ngap/NGAP_TAINSAGSupportList.h
+++ b/lib/asn1c/ngap/NGAP_TAINSAGSupportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAINSAGSupportList_H_
diff --git a/lib/asn1c/ngap/NGAP_TAListforMDT.c b/lib/asn1c/ngap/NGAP_TAListforMDT.c
index f5d8e4eed9..884401fe3b 100644
--- a/lib/asn1c/ngap/NGAP_TAListforMDT.c
+++ b/lib/asn1c/ngap/NGAP_TAListforMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAListforMDT.h"
diff --git a/lib/asn1c/ngap/NGAP_TAListforMDT.h b/lib/asn1c/ngap/NGAP_TAListforMDT.h
index 74946edf14..2f4635e1fd 100644
--- a/lib/asn1c/ngap/NGAP_TAListforMDT.h
+++ b/lib/asn1c/ngap/NGAP_TAListforMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAListforMDT_H_
diff --git a/lib/asn1c/ngap/NGAP_TAListforQMC.c b/lib/asn1c/ngap/NGAP_TAListforQMC.c
index dc85e13acb..8e150e48f4 100644
--- a/lib/asn1c/ngap/NGAP_TAListforQMC.c
+++ b/lib/asn1c/ngap/NGAP_TAListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TAListforQMC.h"
diff --git a/lib/asn1c/ngap/NGAP_TAListforQMC.h b/lib/asn1c/ngap/NGAP_TAListforQMC.h
index 7fdb0dcde9..b8f9d7e987 100644
--- a/lib/asn1c/ngap/NGAP_TAListforQMC.h
+++ b/lib/asn1c/ngap/NGAP_TAListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TAListforQMC_H_
diff --git a/lib/asn1c/ngap/NGAP_TMGI.c b/lib/asn1c/ngap/NGAP_TMGI.c
index 4a6f8001fb..0b37c45613 100644
--- a/lib/asn1c/ngap/NGAP_TMGI.c
+++ b/lib/asn1c/ngap/NGAP_TMGI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TMGI.h"
diff --git a/lib/asn1c/ngap/NGAP_TMGI.h b/lib/asn1c/ngap/NGAP_TMGI.h
index f5c78f07f9..8a22a1ee19 100644
--- a/lib/asn1c/ngap/NGAP_TMGI.h
+++ b/lib/asn1c/ngap/NGAP_TMGI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TMGI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TMGI;
asn_struct_free_f NGAP_TMGI_free;
asn_struct_print_f NGAP_TMGI_print;
asn_constr_check_f NGAP_TMGI_constraint;
-jer_type_encoder_f NGAP_TMGI_encode_jer;
per_type_decoder_f NGAP_TMGI_decode_aper;
per_type_encoder_f NGAP_TMGI_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TNAP-ID.c b/lib/asn1c/ngap/NGAP_TNAP-ID.c
index c74946d101..104672bfd6 100644
--- a/lib/asn1c/ngap/NGAP_TNAP-ID.c
+++ b/lib/asn1c/ngap/NGAP_TNAP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TNAP-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_TNAP-ID.h b/lib/asn1c/ngap/NGAP_TNAP-ID.h
index 2bb9fd768b..91741823c7 100644
--- a/lib/asn1c/ngap/NGAP_TNAP-ID.h
+++ b/lib/asn1c/ngap/NGAP_TNAP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TNAP_ID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TNAP_ID;
asn_struct_free_f NGAP_TNAP_ID_free;
asn_struct_print_f NGAP_TNAP_ID_print;
asn_constr_check_f NGAP_TNAP_ID_constraint;
-jer_type_encoder_f NGAP_TNAP_ID_encode_jer;
per_type_decoder_f NGAP_TNAP_ID_decode_aper;
per_type_encoder_f NGAP_TNAP_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TNGF-ID.c b/lib/asn1c/ngap/NGAP_TNGF-ID.c
index 3e9d94dd92..16dca339ff 100644
--- a/lib/asn1c/ngap/NGAP_TNGF-ID.c
+++ b/lib/asn1c/ngap/NGAP_TNGF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TNGF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_TNGF-ID.h b/lib/asn1c/ngap/NGAP_TNGF-ID.h
index f8b453c093..d9b180b79c 100644
--- a/lib/asn1c/ngap/NGAP_TNGF-ID.h
+++ b/lib/asn1c/ngap/NGAP_TNGF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TNGF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.c b/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.c
index 96b4f484c1..4f651e78ff 100644
--- a/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.c
+++ b/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TNLAddressWeightFactor.h"
diff --git a/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.h b/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.h
index 6a8ecb995a..3bed0cbb69 100644
--- a/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.h
+++ b/lib/asn1c/ngap/NGAP_TNLAddressWeightFactor.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TNLAddressWeightFactor_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TNLAddressWeightFactor;
asn_struct_free_f NGAP_TNLAddressWeightFactor_free;
asn_struct_print_f NGAP_TNLAddressWeightFactor_print;
asn_constr_check_f NGAP_TNLAddressWeightFactor_constraint;
-jer_type_encoder_f NGAP_TNLAddressWeightFactor_encode_jer;
per_type_decoder_f NGAP_TNLAddressWeightFactor_decode_aper;
per_type_encoder_f NGAP_TNLAddressWeightFactor_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TNLAssociationItem.c b/lib/asn1c/ngap/NGAP_TNLAssociationItem.c
index 0a9f331f37..081d5c0f85 100644
--- a/lib/asn1c/ngap/NGAP_TNLAssociationItem.c
+++ b/lib/asn1c/ngap/NGAP_TNLAssociationItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TNLAssociationItem.h"
diff --git a/lib/asn1c/ngap/NGAP_TNLAssociationItem.h b/lib/asn1c/ngap/NGAP_TNLAssociationItem.h
index c28267e537..4aa2689891 100644
--- a/lib/asn1c/ngap/NGAP_TNLAssociationItem.h
+++ b/lib/asn1c/ngap/NGAP_TNLAssociationItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TNLAssociationItem_H_
diff --git a/lib/asn1c/ngap/NGAP_TNLAssociationList.c b/lib/asn1c/ngap/NGAP_TNLAssociationList.c
index 1005d57478..55789220a9 100644
--- a/lib/asn1c/ngap/NGAP_TNLAssociationList.c
+++ b/lib/asn1c/ngap/NGAP_TNLAssociationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TNLAssociationList.h"
diff --git a/lib/asn1c/ngap/NGAP_TNLAssociationList.h b/lib/asn1c/ngap/NGAP_TNLAssociationList.h
index f649ec4429..73a41f8b01 100644
--- a/lib/asn1c/ngap/NGAP_TNLAssociationList.h
+++ b/lib/asn1c/ngap/NGAP_TNLAssociationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TNLAssociationList_H_
diff --git a/lib/asn1c/ngap/NGAP_TNLAssociationUsage.c b/lib/asn1c/ngap/NGAP_TNLAssociationUsage.c
index 26e5d12248..c1a19bbc6f 100644
--- a/lib/asn1c/ngap/NGAP_TNLAssociationUsage.c
+++ b/lib/asn1c/ngap/NGAP_TNLAssociationUsage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TNLAssociationUsage.h"
diff --git a/lib/asn1c/ngap/NGAP_TNLAssociationUsage.h b/lib/asn1c/ngap/NGAP_TNLAssociationUsage.h
index 35f34d433b..c7966ea760 100644
--- a/lib/asn1c/ngap/NGAP_TNLAssociationUsage.h
+++ b/lib/asn1c/ngap/NGAP_TNLAssociationUsage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TNLAssociationUsage_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_TNLAssociationUsage_specs_1;
asn_struct_free_f NGAP_TNLAssociationUsage_free;
asn_struct_print_f NGAP_TNLAssociationUsage_print;
asn_constr_check_f NGAP_TNLAssociationUsage_constraint;
-jer_type_encoder_f NGAP_TNLAssociationUsage_encode_jer;
per_type_decoder_f NGAP_TNLAssociationUsage_decode_aper;
per_type_encoder_f NGAP_TNLAssociationUsage_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.c b/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.c
index bd373455bf..9a5295d629 100644
--- a/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.c
+++ b/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TSCAssistanceInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.h b/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.h
index ddfe3db99a..3817c63b5d 100644
--- a/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.h
+++ b/lib/asn1c/ngap/NGAP_TSCAssistanceInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TSCAssistanceInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.c b/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.c
index 7b33694a6d..403c0ac352 100644
--- a/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.c
+++ b/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TSCTrafficCharacteristics.h"
diff --git a/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.h b/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.h
index 033182d349..1d3434a0fc 100644
--- a/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.h
+++ b/lib/asn1c/ngap/NGAP_TSCTrafficCharacteristics.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TSCTrafficCharacteristics_H_
diff --git a/lib/asn1c/ngap/NGAP_TWAP-ID.c b/lib/asn1c/ngap/NGAP_TWAP-ID.c
index ea0893b648..72c3eca62d 100644
--- a/lib/asn1c/ngap/NGAP_TWAP-ID.c
+++ b/lib/asn1c/ngap/NGAP_TWAP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TWAP-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_TWAP-ID.h b/lib/asn1c/ngap/NGAP_TWAP-ID.h
index 23346a9039..17d2d03351 100644
--- a/lib/asn1c/ngap/NGAP_TWAP-ID.h
+++ b/lib/asn1c/ngap/NGAP_TWAP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TWAP_ID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TWAP_ID;
asn_struct_free_f NGAP_TWAP_ID_free;
asn_struct_print_f NGAP_TWAP_ID_print;
asn_constr_check_f NGAP_TWAP_ID_constraint;
-jer_type_encoder_f NGAP_TWAP_ID_encode_jer;
per_type_decoder_f NGAP_TWAP_ID_decode_aper;
per_type_encoder_f NGAP_TWAP_ID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TWIF-ID.c b/lib/asn1c/ngap/NGAP_TWIF-ID.c
index e6098055de..47401afa7e 100644
--- a/lib/asn1c/ngap/NGAP_TWIF-ID.c
+++ b/lib/asn1c/ngap/NGAP_TWIF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TWIF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_TWIF-ID.h b/lib/asn1c/ngap/NGAP_TWIF-ID.h
index a605ce281a..c87a419ca2 100644
--- a/lib/asn1c/ngap/NGAP_TWIF-ID.h
+++ b/lib/asn1c/ngap/NGAP_TWIF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TWIF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetID.c b/lib/asn1c/ngap/NGAP_TargetID.c
index 3ceca59456..2b0244da5f 100644
--- a/lib/asn1c/ngap/NGAP_TargetID.c
+++ b/lib/asn1c/ngap/NGAP_TargetID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetID.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetID.h b/lib/asn1c/ngap/NGAP_TargetID.h
index 323f6088d8..a92cc05b64 100644
--- a/lib/asn1c/ngap/NGAP_TargetID.h
+++ b/lib/asn1c/ngap/NGAP_TargetID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetID_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c
index 4aa25da542..f5b5161234 100644
--- a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h
index dae09f3aa1..eba1f3c788 100644
--- a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-FailureTransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetNGRANNode_ToSourceNGRANNode_FailureTransparentContainer_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c
index ec5a700c76..60c4d23edc 100644
--- a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h
index c6d864e5be..dab645ff30 100644
--- a/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_TargetNGRANNode-ToSourceNGRANNode-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetNGRANNode_ToSourceNGRANNode_TransparentContainer_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.c b/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.c
index 2a1071caa6..7606c1d286 100644
--- a/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.c
+++ b/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetNSSAI-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.h b/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.h
index 5da0564e80..a9908502f6 100644
--- a/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.h
+++ b/lib/asn1c/ngap/NGAP_TargetNSSAI-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetNSSAI_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetNSSAI.c b/lib/asn1c/ngap/NGAP_TargetNSSAI.c
index b91483e305..1cb47f2604 100644
--- a/lib/asn1c/ngap/NGAP_TargetNSSAI.c
+++ b/lib/asn1c/ngap/NGAP_TargetNSSAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetNSSAI.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetNSSAI.h b/lib/asn1c/ngap/NGAP_TargetNSSAI.h
index 18b24787dc..a601bc9d57 100644
--- a/lib/asn1c/ngap/NGAP_TargetNSSAI.h
+++ b/lib/asn1c/ngap/NGAP_TargetNSSAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetNSSAI_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.c b/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.c
index afdbde1885..d1d0f91ea2 100644
--- a/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.c
+++ b/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetNSSAIInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.h b/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.h
index ef02132088..00144d42de 100644
--- a/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.h
+++ b/lib/asn1c/ngap/NGAP_TargetNSSAIInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetNSSAIInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetRANNodeID.c b/lib/asn1c/ngap/NGAP_TargetRANNodeID.c
index b4122e384b..b94b254378 100644
--- a/lib/asn1c/ngap/NGAP_TargetRANNodeID.c
+++ b/lib/asn1c/ngap/NGAP_TargetRANNodeID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetRANNodeID.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetRANNodeID.h b/lib/asn1c/ngap/NGAP_TargetRANNodeID.h
index f35a747b5d..c9baf87a2d 100644
--- a/lib/asn1c/ngap/NGAP_TargetRANNodeID.h
+++ b/lib/asn1c/ngap/NGAP_TargetRANNodeID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetRANNodeID_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetRNC-ID.c b/lib/asn1c/ngap/NGAP_TargetRNC-ID.c
index 561e07882a..09997a2729 100644
--- a/lib/asn1c/ngap/NGAP_TargetRNC-ID.c
+++ b/lib/asn1c/ngap/NGAP_TargetRNC-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetRNC-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetRNC-ID.h b/lib/asn1c/ngap/NGAP_TargetRNC-ID.h
index 4c46a5bb9c..b9c0b56e65 100644
--- a/lib/asn1c/ngap/NGAP_TargetRNC-ID.h
+++ b/lib/asn1c/ngap/NGAP_TargetRNC-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetRNC_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.c b/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.c
index d4122c2a52..1a3f60d831 100644
--- a/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargetToSource-TransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.h b/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.h
index e3aa2bd43a..499de92f12 100644
--- a/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_TargetToSource-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargetToSource_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TargetToSource_TransparentContainer;
asn_struct_free_f NGAP_TargetToSource_TransparentContainer_free;
asn_struct_print_f NGAP_TargetToSource_TransparentContainer_print;
asn_constr_check_f NGAP_TargetToSource_TransparentContainer_constraint;
-jer_type_encoder_f NGAP_TargetToSource_TransparentContainer_encode_jer;
per_type_decoder_f NGAP_TargetToSource_TransparentContainer_decode_aper;
per_type_encoder_f NGAP_TargetToSource_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TargeteNB-ID.c b/lib/asn1c/ngap/NGAP_TargeteNB-ID.c
index a7826d8405..609dece3d8 100644
--- a/lib/asn1c/ngap/NGAP_TargeteNB-ID.c
+++ b/lib/asn1c/ngap/NGAP_TargeteNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargeteNB-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_TargeteNB-ID.h b/lib/asn1c/ngap/NGAP_TargeteNB-ID.h
index 58ccea0f1e..e1f0c0414f 100644
--- a/lib/asn1c/ngap/NGAP_TargeteNB-ID.h
+++ b/lib/asn1c/ngap/NGAP_TargeteNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargeteNB_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.c b/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.c
index 9c41429d9d..11aebf835a 100644
--- a/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.c
+++ b/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TargettoSource-Failure-TransparentContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.h b/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.h
index 461492a427..be25892e04 100644
--- a/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.h
+++ b/lib/asn1c/ngap/NGAP_TargettoSource-Failure-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TargettoSource_Failure_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TargettoSource_Failure_TransparentCont
asn_struct_free_f NGAP_TargettoSource_Failure_TransparentContainer_free;
asn_struct_print_f NGAP_TargettoSource_Failure_TransparentContainer_print;
asn_constr_check_f NGAP_TargettoSource_Failure_TransparentContainer_constraint;
-jer_type_encoder_f NGAP_TargettoSource_Failure_TransparentContainer_encode_jer;
per_type_decoder_f NGAP_TargettoSource_Failure_TransparentContainer_decode_aper;
per_type_encoder_f NGAP_TargettoSource_Failure_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Threshold-RSRP.c b/lib/asn1c/ngap/NGAP_Threshold-RSRP.c
index 092a521c71..e36e595744 100644
--- a/lib/asn1c/ngap/NGAP_Threshold-RSRP.c
+++ b/lib/asn1c/ngap/NGAP_Threshold-RSRP.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Threshold-RSRP.h"
diff --git a/lib/asn1c/ngap/NGAP_Threshold-RSRP.h b/lib/asn1c/ngap/NGAP_Threshold-RSRP.h
index 8675fe86dc..1d613f7f34 100644
--- a/lib/asn1c/ngap/NGAP_Threshold-RSRP.h
+++ b/lib/asn1c/ngap/NGAP_Threshold-RSRP.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Threshold_RSRP_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_Threshold_RSRP;
asn_struct_free_f NGAP_Threshold_RSRP_free;
asn_struct_print_f NGAP_Threshold_RSRP_print;
asn_constr_check_f NGAP_Threshold_RSRP_constraint;
-jer_type_encoder_f NGAP_Threshold_RSRP_encode_jer;
per_type_decoder_f NGAP_Threshold_RSRP_decode_aper;
per_type_encoder_f NGAP_Threshold_RSRP_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Threshold-RSRQ.c b/lib/asn1c/ngap/NGAP_Threshold-RSRQ.c
index 8c4a93423b..39fddc4788 100644
--- a/lib/asn1c/ngap/NGAP_Threshold-RSRQ.c
+++ b/lib/asn1c/ngap/NGAP_Threshold-RSRQ.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Threshold-RSRQ.h"
diff --git a/lib/asn1c/ngap/NGAP_Threshold-RSRQ.h b/lib/asn1c/ngap/NGAP_Threshold-RSRQ.h
index 37d131c63c..0a6616cca0 100644
--- a/lib/asn1c/ngap/NGAP_Threshold-RSRQ.h
+++ b/lib/asn1c/ngap/NGAP_Threshold-RSRQ.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Threshold_RSRQ_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_Threshold_RSRQ;
asn_struct_free_f NGAP_Threshold_RSRQ_free;
asn_struct_print_f NGAP_Threshold_RSRQ_print;
asn_constr_check_f NGAP_Threshold_RSRQ_constraint;
-jer_type_encoder_f NGAP_Threshold_RSRQ_encode_jer;
per_type_decoder_f NGAP_Threshold_RSRQ_decode_aper;
per_type_encoder_f NGAP_Threshold_RSRQ_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_Threshold-SINR.c b/lib/asn1c/ngap/NGAP_Threshold-SINR.c
index b66f689c01..a5eec839a7 100644
--- a/lib/asn1c/ngap/NGAP_Threshold-SINR.c
+++ b/lib/asn1c/ngap/NGAP_Threshold-SINR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_Threshold-SINR.h"
diff --git a/lib/asn1c/ngap/NGAP_Threshold-SINR.h b/lib/asn1c/ngap/NGAP_Threshold-SINR.h
index 660c1cf62c..dba686f469 100644
--- a/lib/asn1c/ngap/NGAP_Threshold-SINR.h
+++ b/lib/asn1c/ngap/NGAP_Threshold-SINR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_Threshold_SINR_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_Threshold_SINR;
asn_struct_free_f NGAP_Threshold_SINR_free;
asn_struct_print_f NGAP_Threshold_SINR_print;
asn_constr_check_f NGAP_Threshold_SINR_constraint;
-jer_type_encoder_f NGAP_Threshold_SINR_encode_jer;
per_type_decoder_f NGAP_Threshold_SINR_decode_aper;
per_type_encoder_f NGAP_Threshold_SINR_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TimeStamp.c b/lib/asn1c/ngap/NGAP_TimeStamp.c
index 50345c7ed1..2992ff6172 100644
--- a/lib/asn1c/ngap/NGAP_TimeStamp.c
+++ b/lib/asn1c/ngap/NGAP_TimeStamp.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TimeStamp.h"
diff --git a/lib/asn1c/ngap/NGAP_TimeStamp.h b/lib/asn1c/ngap/NGAP_TimeStamp.h
index efd549fc8f..ece507907c 100644
--- a/lib/asn1c/ngap/NGAP_TimeStamp.h
+++ b/lib/asn1c/ngap/NGAP_TimeStamp.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TimeStamp_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TimeStamp;
asn_struct_free_f NGAP_TimeStamp_free;
asn_struct_print_f NGAP_TimeStamp_print;
asn_constr_check_f NGAP_TimeStamp_constraint;
-jer_type_encoder_f NGAP_TimeStamp_encode_jer;
per_type_decoder_f NGAP_TimeStamp_decode_aper;
per_type_encoder_f NGAP_TimeStamp_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.c b/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.c
index 101dce0a3b..870611c3a3 100644
--- a/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.c
+++ b/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TimeSyncAssistanceInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.h b/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.h
index 665f3caa5e..670b4de138 100644
--- a/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.h
+++ b/lib/asn1c/ngap/NGAP_TimeSyncAssistanceInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TimeSyncAssistanceInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_TimeToTrigger.c b/lib/asn1c/ngap/NGAP_TimeToTrigger.c
index 6d42d68433..bd9174a446 100644
--- a/lib/asn1c/ngap/NGAP_TimeToTrigger.c
+++ b/lib/asn1c/ngap/NGAP_TimeToTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TimeToTrigger.h"
diff --git a/lib/asn1c/ngap/NGAP_TimeToTrigger.h b/lib/asn1c/ngap/NGAP_TimeToTrigger.h
index 70751e7f2d..9cb232088c 100644
--- a/lib/asn1c/ngap/NGAP_TimeToTrigger.h
+++ b/lib/asn1c/ngap/NGAP_TimeToTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TimeToTrigger_H_
@@ -48,7 +48,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_TimeToTrigger_specs_1;
asn_struct_free_f NGAP_TimeToTrigger_free;
asn_struct_print_f NGAP_TimeToTrigger_print;
asn_constr_check_f NGAP_TimeToTrigger_constraint;
-jer_type_encoder_f NGAP_TimeToTrigger_encode_jer;
per_type_decoder_f NGAP_TimeToTrigger_decode_aper;
per_type_encoder_f NGAP_TimeToTrigger_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TimeToWait.c b/lib/asn1c/ngap/NGAP_TimeToWait.c
index d3eb759e70..652ac8d814 100644
--- a/lib/asn1c/ngap/NGAP_TimeToWait.c
+++ b/lib/asn1c/ngap/NGAP_TimeToWait.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TimeToWait.h"
diff --git a/lib/asn1c/ngap/NGAP_TimeToWait.h b/lib/asn1c/ngap/NGAP_TimeToWait.h
index e2f74fe266..306fcffbd1 100644
--- a/lib/asn1c/ngap/NGAP_TimeToWait.h
+++ b/lib/asn1c/ngap/NGAP_TimeToWait.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TimeToWait_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_TimeToWait_specs_1;
asn_struct_free_f NGAP_TimeToWait_free;
asn_struct_print_f NGAP_TimeToWait_print;
asn_constr_check_f NGAP_TimeToWait_constraint;
-jer_type_encoder_f NGAP_TimeToWait_encode_jer;
per_type_decoder_f NGAP_TimeToWait_decode_aper;
per_type_encoder_f NGAP_TimeToWait_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.c b/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.c
index 125e29571e..fcd153c20a 100644
--- a/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.c
+++ b/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TimeUEStayedInCell.h"
diff --git a/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.h b/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.h
index 60c4111e37..b67c65a8fb 100644
--- a/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.h
+++ b/lib/asn1c/ngap/NGAP_TimeUEStayedInCell.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TimeUEStayedInCell_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TimeUEStayedInCell;
asn_struct_free_f NGAP_TimeUEStayedInCell_free;
asn_struct_print_f NGAP_TimeUEStayedInCell_print;
asn_constr_check_f NGAP_TimeUEStayedInCell_constraint;
-jer_type_encoder_f NGAP_TimeUEStayedInCell_encode_jer;
per_type_decoder_f NGAP_TimeUEStayedInCell_decode_aper;
per_type_encoder_f NGAP_TimeUEStayedInCell_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.c b/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.c
index 203260064b..9e977ece6c 100644
--- a/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.c
+++ b/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TimeUEStayedInCellEnhancedGranularity.h"
diff --git a/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.h b/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.h
index 910fbdfbb9..eb019bea1b 100644
--- a/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.h
+++ b/lib/asn1c/ngap/NGAP_TimeUEStayedInCellEnhancedGranularity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TimeUEStayedInCellEnhancedGranularity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TimeUEStayedInCellEnhancedGranularity;
asn_struct_free_f NGAP_TimeUEStayedInCellEnhancedGranularity_free;
asn_struct_print_f NGAP_TimeUEStayedInCellEnhancedGranularity_print;
asn_constr_check_f NGAP_TimeUEStayedInCellEnhancedGranularity_constraint;
-jer_type_encoder_f NGAP_TimeUEStayedInCellEnhancedGranularity_encode_jer;
per_type_decoder_f NGAP_TimeUEStayedInCellEnhancedGranularity_decode_aper;
per_type_encoder_f NGAP_TimeUEStayedInCellEnhancedGranularity_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.c b/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.c
index 48f47d55a7..8dde50c274 100644
--- a/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.c
+++ b/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TimerApproachForGUAMIRemoval.h"
diff --git a/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.h b/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.h
index 02d2fca8ed..ec6d7f9a0c 100644
--- a/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.h
+++ b/lib/asn1c/ngap/NGAP_TimerApproachForGUAMIRemoval.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TimerApproachForGUAMIRemoval_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_TimerApproachForGUAMIRemoval_s
asn_struct_free_f NGAP_TimerApproachForGUAMIRemoval_free;
asn_struct_print_f NGAP_TimerApproachForGUAMIRemoval_print;
asn_constr_check_f NGAP_TimerApproachForGUAMIRemoval_constraint;
-jer_type_encoder_f NGAP_TimerApproachForGUAMIRemoval_encode_jer;
per_type_decoder_f NGAP_TimerApproachForGUAMIRemoval_decode_aper;
per_type_encoder_f NGAP_TimerApproachForGUAMIRemoval_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.c b/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.c
index 88f254a9b4..f12530f597 100644
--- a/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.c
+++ b/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TooearlyIntersystemHO.h"
diff --git a/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.h b/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.h
index cb938f2082..4b83249c80 100644
--- a/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.h
+++ b/lib/asn1c/ngap/NGAP_TooearlyIntersystemHO.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TooearlyIntersystemHO_H_
diff --git a/lib/asn1c/ngap/NGAP_TraceActivation.c b/lib/asn1c/ngap/NGAP_TraceActivation.c
index 94412c42ac..a35375b4f0 100644
--- a/lib/asn1c/ngap/NGAP_TraceActivation.c
+++ b/lib/asn1c/ngap/NGAP_TraceActivation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TraceActivation.h"
diff --git a/lib/asn1c/ngap/NGAP_TraceActivation.h b/lib/asn1c/ngap/NGAP_TraceActivation.h
index 2a9694fb8e..ce8c7dc980 100644
--- a/lib/asn1c/ngap/NGAP_TraceActivation.h
+++ b/lib/asn1c/ngap/NGAP_TraceActivation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TraceActivation_H_
diff --git a/lib/asn1c/ngap/NGAP_TraceDepth.c b/lib/asn1c/ngap/NGAP_TraceDepth.c
index 017107f98b..7051e006b2 100644
--- a/lib/asn1c/ngap/NGAP_TraceDepth.c
+++ b/lib/asn1c/ngap/NGAP_TraceDepth.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TraceDepth.h"
diff --git a/lib/asn1c/ngap/NGAP_TraceDepth.h b/lib/asn1c/ngap/NGAP_TraceDepth.h
index 93fc92db17..e9ae112edc 100644
--- a/lib/asn1c/ngap/NGAP_TraceDepth.h
+++ b/lib/asn1c/ngap/NGAP_TraceDepth.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TraceDepth_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_TraceDepth_specs_1;
asn_struct_free_f NGAP_TraceDepth_free;
asn_struct_print_f NGAP_TraceDepth_print;
asn_constr_check_f NGAP_TraceDepth_constraint;
-jer_type_encoder_f NGAP_TraceDepth_encode_jer;
per_type_decoder_f NGAP_TraceDepth_decode_aper;
per_type_encoder_f NGAP_TraceDepth_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TraceFailureIndication.c b/lib/asn1c/ngap/NGAP_TraceFailureIndication.c
index 4ca66392a4..35be747869 100644
--- a/lib/asn1c/ngap/NGAP_TraceFailureIndication.c
+++ b/lib/asn1c/ngap/NGAP_TraceFailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TraceFailureIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_TraceFailureIndication.h b/lib/asn1c/ngap/NGAP_TraceFailureIndication.h
index 68ef364e6f..fb8ea42ddd 100644
--- a/lib/asn1c/ngap/NGAP_TraceFailureIndication.h
+++ b/lib/asn1c/ngap/NGAP_TraceFailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TraceFailureIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_TraceStart.c b/lib/asn1c/ngap/NGAP_TraceStart.c
index 1105e0fdb8..935eefdc1a 100644
--- a/lib/asn1c/ngap/NGAP_TraceStart.c
+++ b/lib/asn1c/ngap/NGAP_TraceStart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TraceStart.h"
diff --git a/lib/asn1c/ngap/NGAP_TraceStart.h b/lib/asn1c/ngap/NGAP_TraceStart.h
index 98825cf46c..23d6b30f33 100644
--- a/lib/asn1c/ngap/NGAP_TraceStart.h
+++ b/lib/asn1c/ngap/NGAP_TraceStart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TraceStart_H_
diff --git a/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.c b/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.c
index 11bcc78257..febe2256ea 100644
--- a/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.c
+++ b/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TrafficLoadReductionIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.h b/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.h
index fa094a7363..a8fd408d94 100644
--- a/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.h
+++ b/lib/asn1c/ngap/NGAP_TrafficLoadReductionIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TrafficLoadReductionIndication_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TrafficLoadReductionIndication;
asn_struct_free_f NGAP_TrafficLoadReductionIndication_free;
asn_struct_print_f NGAP_TrafficLoadReductionIndication_print;
asn_constr_check_f NGAP_TrafficLoadReductionIndication_constraint;
-jer_type_encoder_f NGAP_TrafficLoadReductionIndication_encode_jer;
per_type_decoder_f NGAP_TrafficLoadReductionIndication_decode_aper;
per_type_encoder_f NGAP_TrafficLoadReductionIndication_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TransportLayerAddress.c b/lib/asn1c/ngap/NGAP_TransportLayerAddress.c
index 3faf6db51c..411da2f5d7 100644
--- a/lib/asn1c/ngap/NGAP_TransportLayerAddress.c
+++ b/lib/asn1c/ngap/NGAP_TransportLayerAddress.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TransportLayerAddress.h"
diff --git a/lib/asn1c/ngap/NGAP_TransportLayerAddress.h b/lib/asn1c/ngap/NGAP_TransportLayerAddress.h
index 0c1c563288..ee58568ce1 100644
--- a/lib/asn1c/ngap/NGAP_TransportLayerAddress.h
+++ b/lib/asn1c/ngap/NGAP_TransportLayerAddress.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TransportLayerAddress_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_TransportLayerAddress;
asn_struct_free_f NGAP_TransportLayerAddress_free;
asn_struct_print_f NGAP_TransportLayerAddress_print;
asn_constr_check_f NGAP_TransportLayerAddress_constraint;
-jer_type_encoder_f NGAP_TransportLayerAddress_encode_jer;
per_type_decoder_f NGAP_TransportLayerAddress_decode_aper;
per_type_encoder_f NGAP_TransportLayerAddress_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TriggeringMessage.c b/lib/asn1c/ngap/NGAP_TriggeringMessage.c
index 832a4fc9ac..a69fe953ec 100644
--- a/lib/asn1c/ngap/NGAP_TriggeringMessage.c
+++ b/lib/asn1c/ngap/NGAP_TriggeringMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TriggeringMessage.h"
diff --git a/lib/asn1c/ngap/NGAP_TriggeringMessage.h b/lib/asn1c/ngap/NGAP_TriggeringMessage.h
index 34fccaf492..4054862688 100644
--- a/lib/asn1c/ngap/NGAP_TriggeringMessage.h
+++ b/lib/asn1c/ngap/NGAP_TriggeringMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-CommonDataTypes"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TriggeringMessage_H_
@@ -35,7 +35,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_TriggeringMessage_specs_1;
asn_struct_free_f NGAP_TriggeringMessage_free;
asn_struct_print_f NGAP_TriggeringMessage_print;
asn_constr_check_f NGAP_TriggeringMessage_constraint;
-jer_type_encoder_f NGAP_TriggeringMessage_encode_jer;
per_type_decoder_f NGAP_TriggeringMessage_decode_aper;
per_type_encoder_f NGAP_TriggeringMessage_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_TypeOfError.c b/lib/asn1c/ngap/NGAP_TypeOfError.c
index 78af510c09..7d6d1f4674 100644
--- a/lib/asn1c/ngap/NGAP_TypeOfError.c
+++ b/lib/asn1c/ngap/NGAP_TypeOfError.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_TypeOfError.h"
diff --git a/lib/asn1c/ngap/NGAP_TypeOfError.h b/lib/asn1c/ngap/NGAP_TypeOfError.h
index e5753d1ca2..908cc4dc1d 100644
--- a/lib/asn1c/ngap/NGAP_TypeOfError.h
+++ b/lib/asn1c/ngap/NGAP_TypeOfError.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_TypeOfError_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_TypeOfError_specs_1;
asn_struct_free_f NGAP_TypeOfError_free;
asn_struct_print_f NGAP_TypeOfError_print;
asn_constr_check_f NGAP_TypeOfError_constraint;
-jer_type_encoder_f NGAP_TypeOfError_encode_jer;
per_type_decoder_f NGAP_TypeOfError_decode_aper;
per_type_encoder_f NGAP_TypeOfError_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.c b/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.c
index e3e4dc5d41..2ae6e87124 100644
--- a/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.c
+++ b/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-DifferentiationInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.h b/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.h
index 8a8403cb7b..68ffc310c8 100644
--- a/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.h
+++ b/lib/asn1c/ngap/NGAP_UE-DifferentiationInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_DifferentiationInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.c b/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.c
index db51b913ec..cd45acb4ce 100644
--- a/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.c
+++ b/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-NGAP-ID-pair.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.h b/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.h
index 64fceccd43..112e0caa84 100644
--- a/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.h
+++ b/lib/asn1c/ngap/NGAP_UE-NGAP-ID-pair.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_NGAP_ID_pair_H_
diff --git a/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.c b/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.c
index ca81aa3008..2a425e7bc9 100644
--- a/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.c
+++ b/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-NGAP-IDs.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.h b/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.h
index 090fab9ef8..a8feec6a30 100644
--- a/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.h
+++ b/lib/asn1c/ngap/NGAP_UE-NGAP-IDs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_NGAP_IDs_H_
diff --git a/lib/asn1c/ngap/NGAP_UE-PagingItem.c b/lib/asn1c/ngap/NGAP_UE-PagingItem.c
index 1626703c9c..d026e55a91 100644
--- a/lib/asn1c/ngap/NGAP_UE-PagingItem.c
+++ b/lib/asn1c/ngap/NGAP_UE-PagingItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-PagingItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-PagingItem.h b/lib/asn1c/ngap/NGAP_UE-PagingItem.h
index c13e227869..f94719b902 100644
--- a/lib/asn1c/ngap/NGAP_UE-PagingItem.h
+++ b/lib/asn1c/ngap/NGAP_UE-PagingItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_PagingItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UE-PagingList.c b/lib/asn1c/ngap/NGAP_UE-PagingList.c
index 976813c777..88a61967a7 100644
--- a/lib/asn1c/ngap/NGAP_UE-PagingList.c
+++ b/lib/asn1c/ngap/NGAP_UE-PagingList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-PagingList.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-PagingList.h b/lib/asn1c/ngap/NGAP_UE-PagingList.h
index 99e2176ac7..ce68b6ee36 100644
--- a/lib/asn1c/ngap/NGAP_UE-PagingList.h
+++ b/lib/asn1c/ngap/NGAP_UE-PagingList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_PagingList_H_
diff --git a/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.c b/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.c
index 9a5bedcc01..608d9390d0 100644
--- a/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.c
+++ b/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-UP-CIoT-Support.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.h b/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.h
index ddfda95034..9c31a9e40f 100644
--- a/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.h
+++ b/lib/asn1c/ngap/NGAP_UE-UP-CIoT-Support.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_UP_CIoT_Support_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_UE_UP_CIoT_Support_specs_1;
asn_struct_free_f NGAP_UE_UP_CIoT_Support_free;
asn_struct_print_f NGAP_UE_UP_CIoT_Support_print;
asn_constr_check_f NGAP_UE_UP_CIoT_Support_constraint;
-jer_type_encoder_f NGAP_UE_UP_CIoT_Support_encode_jer;
per_type_decoder_f NGAP_UE_UP_CIoT_Support_decode_aper;
per_type_encoder_f NGAP_UE_UP_CIoT_Support_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.c b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.c
index d7b47a8740..91a8eaeddd 100644
--- a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.c
+++ b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-associatedLogicalNG-connectionItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.h b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.h
index a0654c90cd..3d9c305539 100644
--- a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.h
+++ b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_associatedLogicalNG_connectionItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.c b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.c
index 01be46ff20..6c55926088 100644
--- a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.c
+++ b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UE-associatedLogicalNG-connectionList.h"
diff --git a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.h b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.h
index dbe4660834..5d37ad7e38 100644
--- a/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.h
+++ b/lib/asn1c/ngap/NGAP_UE-associatedLogicalNG-connectionList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UE_associatedLogicalNG_connectionList_H_
diff --git a/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.c b/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.c
index 246210cdc7..37405a8766 100644
--- a/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.c
+++ b/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEAggregateMaximumBitRate.h"
diff --git a/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.h b/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.h
index 83ff24fd3f..0c7267f6ee 100644
--- a/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.h
+++ b/lib/asn1c/ngap/NGAP_UEAggregateMaximumBitRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEAggregateMaximumBitRate_H_
diff --git a/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.c b/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.c
index 1e90c685d3..9513465ace 100644
--- a/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.c
+++ b/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEAppLayerMeasConfigInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.h b/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.h
index f789fb4b5b..023495b313 100644
--- a/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.h
+++ b/lib/asn1c/ngap/NGAP_UEAppLayerMeasConfigInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEAppLayerMeasConfigInfo_H_
diff --git a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.c b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.c
index bed57c1da2..b2440b748a 100644
--- a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.c
+++ b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEAppLayerMeasInfoItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.h b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.h
index 59d04844e6..8c67f86996 100644
--- a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.h
+++ b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEAppLayerMeasInfoItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.c b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.c
index 83376e3ba3..8c666f8388 100644
--- a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.c
+++ b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEAppLayerMeasInfoList.h"
diff --git a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.h b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.h
index e35d157d43..64018dd5cf 100644
--- a/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.h
+++ b/lib/asn1c/ngap/NGAP_UEAppLayerMeasInfoList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEAppLayerMeasInfoList_H_
diff --git a/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.c b/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.c
index 82e8244ce2..604690ce50 100644
--- a/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.c
+++ b/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UECapabilityInfoRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.h b/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.h
index 487f5ec91c..3546d5e000 100644
--- a/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.h
+++ b/lib/asn1c/ngap/NGAP_UECapabilityInfoRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UECapabilityInfoRequest_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_UECapabilityInfoRequest_specs_
asn_struct_free_f NGAP_UECapabilityInfoRequest_free;
asn_struct_print_f NGAP_UECapabilityInfoRequest_print;
asn_constr_check_f NGAP_UECapabilityInfoRequest_constraint;
-jer_type_encoder_f NGAP_UECapabilityInfoRequest_encode_jer;
per_type_decoder_f NGAP_UECapabilityInfoRequest_decode_aper;
per_type_encoder_f NGAP_UECapabilityInfoRequest_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UEContextModificationFailure.c b/lib/asn1c/ngap/NGAP_UEContextModificationFailure.c
index 86d2545f05..c76c25393c 100644
--- a/lib/asn1c/ngap/NGAP_UEContextModificationFailure.c
+++ b/lib/asn1c/ngap/NGAP_UEContextModificationFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextModificationFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextModificationFailure.h b/lib/asn1c/ngap/NGAP_UEContextModificationFailure.h
index 6a4ff22827..e3cce5a569 100644
--- a/lib/asn1c/ngap/NGAP_UEContextModificationFailure.h
+++ b/lib/asn1c/ngap/NGAP_UEContextModificationFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextModificationFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextModificationRequest.c b/lib/asn1c/ngap/NGAP_UEContextModificationRequest.c
index cd0bbf026f..1acefb13c0 100644
--- a/lib/asn1c/ngap/NGAP_UEContextModificationRequest.c
+++ b/lib/asn1c/ngap/NGAP_UEContextModificationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextModificationRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextModificationRequest.h b/lib/asn1c/ngap/NGAP_UEContextModificationRequest.h
index f29e0c4234..567f631b24 100644
--- a/lib/asn1c/ngap/NGAP_UEContextModificationRequest.h
+++ b/lib/asn1c/ngap/NGAP_UEContextModificationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextModificationRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextModificationResponse.c b/lib/asn1c/ngap/NGAP_UEContextModificationResponse.c
index 0a4773d1b0..84c19b8f13 100644
--- a/lib/asn1c/ngap/NGAP_UEContextModificationResponse.c
+++ b/lib/asn1c/ngap/NGAP_UEContextModificationResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextModificationResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextModificationResponse.h b/lib/asn1c/ngap/NGAP_UEContextModificationResponse.h
index 4d45cade27..36b1d90342 100644
--- a/lib/asn1c/ngap/NGAP_UEContextModificationResponse.h
+++ b/lib/asn1c/ngap/NGAP_UEContextModificationResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextModificationResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.c b/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.c
index d75e69a7be..5ed7c054c4 100644
--- a/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.c
+++ b/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextReleaseCommand.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.h b/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.h
index a00eb10efa..c05cd018f5 100644
--- a/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.h
+++ b/lib/asn1c/ngap/NGAP_UEContextReleaseCommand.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextReleaseCommand_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.c b/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.c
index 17f09211a3..63cdab5c72 100644
--- a/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.c
+++ b/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextReleaseComplete.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.h b/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.h
index 7a7dba1add..0ae049cf52 100644
--- a/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.h
+++ b/lib/asn1c/ngap/NGAP_UEContextReleaseComplete.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextReleaseComplete_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.c b/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.c
index 3a52b3e828..95fab53234 100644
--- a/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.c
+++ b/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextReleaseRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.h b/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.h
index 0f72480234..a3a0a86258 100644
--- a/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.h
+++ b/lib/asn1c/ngap/NGAP_UEContextReleaseRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextReleaseRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextRequest.c b/lib/asn1c/ngap/NGAP_UEContextRequest.c
index e09b65a6e6..675b36d738 100644
--- a/lib/asn1c/ngap/NGAP_UEContextRequest.c
+++ b/lib/asn1c/ngap/NGAP_UEContextRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextRequest.h b/lib/asn1c/ngap/NGAP_UEContextRequest.h
index eecd5585ef..3093223244 100644
--- a/lib/asn1c/ngap/NGAP_UEContextRequest.h
+++ b/lib/asn1c/ngap/NGAP_UEContextRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextRequest_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_UEContextRequest_specs_1;
asn_struct_free_f NGAP_UEContextRequest_free;
asn_struct_print_f NGAP_UEContextRequest_print;
asn_constr_check_f NGAP_UEContextRequest_constraint;
-jer_type_encoder_f NGAP_UEContextRequest_encode_jer;
per_type_decoder_f NGAP_UEContextRequest_decode_aper;
per_type_encoder_f NGAP_UEContextRequest_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeFailure.c b/lib/asn1c/ngap/NGAP_UEContextResumeFailure.c
index c5d0722654..b584a44155 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeFailure.c
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextResumeFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeFailure.h b/lib/asn1c/ngap/NGAP_UEContextResumeFailure.h
index c1076d6972..dfab985a4d 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeFailure.h
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextResumeFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeRequest.c b/lib/asn1c/ngap/NGAP_UEContextResumeRequest.c
index 0566beb982..a6781c661a 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeRequest.c
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextResumeRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeRequest.h b/lib/asn1c/ngap/NGAP_UEContextResumeRequest.h
index 81aee46fcb..2bbfc1c08b 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeRequest.h
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextResumeRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.c b/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.c
index 555d01000f..e934f9506e 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextResumeRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.h b/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.h
index 731a3838c8..ceefa101f3 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextResumeRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeResponse.c b/lib/asn1c/ngap/NGAP_UEContextResumeResponse.c
index 7774b5b1d7..def3c60e43 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeResponse.c
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextResumeResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeResponse.h b/lib/asn1c/ngap/NGAP_UEContextResumeResponse.h
index bd4b58591f..38d357fb03 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeResponse.h
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextResumeResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.c b/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.c
index e9aa2a5ca0..be26fa435c 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextResumeResponseTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.h b/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.h
index 49022fb60c..cf3611bad4 100644
--- a/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UEContextResumeResponseTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextResumeResponseTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.c b/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.c
index b2003b8b0d..958f713f5f 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.c
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextSuspendFailure.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.h b/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.h
index c72794795d..4ecbd3dd82 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.h
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextSuspendFailure_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.c b/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.c
index 8b19288b4c..7e6492c38c 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.c
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextSuspendRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.h b/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.h
index 0315bf5560..15f41a4a5b 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.h
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextSuspendRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.c b/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.c
index 9cf70147a1..d4d8813ee5 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextSuspendRequestTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.h b/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.h
index eb70b90d87..9bc2b38098 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendRequestTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextSuspendRequestTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.c b/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.c
index be262e3b6e..ccabe4c532 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.c
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEContextSuspendResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.h b/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.h
index e20485d72f..e0c983c0c9 100644
--- a/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.h
+++ b/lib/asn1c/ngap/NGAP_UEContextSuspendResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEContextSuspendResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_UEHistoryInformation.c b/lib/asn1c/ngap/NGAP_UEHistoryInformation.c
index 0eb2c67bcb..1642857212 100644
--- a/lib/asn1c/ngap/NGAP_UEHistoryInformation.c
+++ b/lib/asn1c/ngap/NGAP_UEHistoryInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEHistoryInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_UEHistoryInformation.h b/lib/asn1c/ngap/NGAP_UEHistoryInformation.h
index 307f2d98ee..e40936a94a 100644
--- a/lib/asn1c/ngap/NGAP_UEHistoryInformation.h
+++ b/lib/asn1c/ngap/NGAP_UEHistoryInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEHistoryInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.c b/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.c
index 2318ba8a21..e6cfa3cf4a 100644
--- a/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.c
+++ b/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEHistoryInformationFromTheUE.h"
diff --git a/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.h b/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.h
index 055f48b052..3b9edc02a4 100644
--- a/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.h
+++ b/lib/asn1c/ngap/NGAP_UEHistoryInformationFromTheUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEHistoryInformationFromTheUE_H_
diff --git a/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.c b/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.c
index 1364739aca..70c24709ac 100644
--- a/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.c
+++ b/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEIdentityIndexValue.h"
diff --git a/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.h b/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.h
index d67a1e3941..2b94f81be4 100644
--- a/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.h
+++ b/lib/asn1c/ngap/NGAP_UEIdentityIndexValue.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEIdentityIndexValue_H_
diff --git a/lib/asn1c/ngap/NGAP_UEInformationTransfer.c b/lib/asn1c/ngap/NGAP_UEInformationTransfer.c
index 218f19eb9c..f5b5ba1131 100644
--- a/lib/asn1c/ngap/NGAP_UEInformationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UEInformationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEInformationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UEInformationTransfer.h b/lib/asn1c/ngap/NGAP_UEInformationTransfer.h
index 9c92cbf1d8..badbd563b7 100644
--- a/lib/asn1c/ngap/NGAP_UEInformationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UEInformationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEInformationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UEPagingIdentity.c b/lib/asn1c/ngap/NGAP_UEPagingIdentity.c
index 9e7a6da8e1..b6e362a499 100644
--- a/lib/asn1c/ngap/NGAP_UEPagingIdentity.c
+++ b/lib/asn1c/ngap/NGAP_UEPagingIdentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEPagingIdentity.h"
diff --git a/lib/asn1c/ngap/NGAP_UEPagingIdentity.h b/lib/asn1c/ngap/NGAP_UEPagingIdentity.h
index af12ac7a0e..4b0393a217 100644
--- a/lib/asn1c/ngap/NGAP_UEPagingIdentity.h
+++ b/lib/asn1c/ngap/NGAP_UEPagingIdentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEPagingIdentity_H_
diff --git a/lib/asn1c/ngap/NGAP_UEPresence.c b/lib/asn1c/ngap/NGAP_UEPresence.c
index 41a529abd5..57dfa24aee 100644
--- a/lib/asn1c/ngap/NGAP_UEPresence.c
+++ b/lib/asn1c/ngap/NGAP_UEPresence.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEPresence.h"
diff --git a/lib/asn1c/ngap/NGAP_UEPresence.h b/lib/asn1c/ngap/NGAP_UEPresence.h
index c547e12c40..5969d48091 100644
--- a/lib/asn1c/ngap/NGAP_UEPresence.h
+++ b/lib/asn1c/ngap/NGAP_UEPresence.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEPresence_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_UEPresence_specs_1;
asn_struct_free_f NGAP_UEPresence_free;
asn_struct_print_f NGAP_UEPresence_print;
asn_constr_check_f NGAP_UEPresence_constraint;
-jer_type_encoder_f NGAP_UEPresence_encode_jer;
per_type_decoder_f NGAP_UEPresence_decode_aper;
per_type_encoder_f NGAP_UEPresence_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.c b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.c
index 87aa897a80..29c0f868a4 100644
--- a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.c
+++ b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEPresenceInAreaOfInterestItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.h b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.h
index 04febfab67..7686968a8d 100644
--- a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.h
+++ b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEPresenceInAreaOfInterestItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.c b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.c
index 46b0bc1638..0182186d46 100644
--- a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.c
+++ b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UEPresenceInAreaOfInterestList.h"
diff --git a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.h b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.h
index 815e9a6175..4f819a8ad8 100644
--- a/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.h
+++ b/lib/asn1c/ngap/NGAP_UEPresenceInAreaOfInterestList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UEPresenceInAreaOfInterestList_H_
diff --git a/lib/asn1c/ngap/NGAP_UERLFReportContainer.c b/lib/asn1c/ngap/NGAP_UERLFReportContainer.c
index 1406211d7e..37cd383f1f 100644
--- a/lib/asn1c/ngap/NGAP_UERLFReportContainer.c
+++ b/lib/asn1c/ngap/NGAP_UERLFReportContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERLFReportContainer.h"
diff --git a/lib/asn1c/ngap/NGAP_UERLFReportContainer.h b/lib/asn1c/ngap/NGAP_UERLFReportContainer.h
index 2e3d167133..e279ed3a0d 100644
--- a/lib/asn1c/ngap/NGAP_UERLFReportContainer.h
+++ b/lib/asn1c/ngap/NGAP_UERLFReportContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERLFReportContainer_H_
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapability.c b/lib/asn1c/ngap/NGAP_UERadioCapability.c
index e2cb794d27..4801db1b5b 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapability.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapability.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapability.h b/lib/asn1c/ngap/NGAP_UERadioCapability.h
index f086296e75..852c78139f 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapability.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapability_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UERadioCapability;
asn_struct_free_f NGAP_UERadioCapability_free;
asn_struct_print_f NGAP_UERadioCapability_print;
asn_constr_check_f NGAP_UERadioCapability_constraint;
-jer_type_encoder_f NGAP_UERadioCapability_encode_jer;
per_type_decoder_f NGAP_UERadioCapability_decode_aper;
per_type_encoder_f NGAP_UERadioCapability_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.c
index 69f7e7ec8f..5d2306f70e 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityCheckRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.h
index 4f60f04d3d..a7ea7e9db3 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityCheckRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.c
index 11d6b7d80b..7d1e206b57 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityCheckResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.h
index 381eae9a83..3c38fb391e 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityCheckResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityCheckResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.c
index 49962ed3cc..dc60e27031 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityForPaging.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.h
index 8896fbc5be..da2de5af00 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityForPaging_H_
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.c
index 807ee5776b..0ba226aaf6 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityForPagingOfEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.h
index 4f83fdeef1..9d1659709c 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityForPagingOfEUTRA_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UERadioCapabilityForPagingOfEUTRA;
asn_struct_free_f NGAP_UERadioCapabilityForPagingOfEUTRA_free;
asn_struct_print_f NGAP_UERadioCapabilityForPagingOfEUTRA_print;
asn_constr_check_f NGAP_UERadioCapabilityForPagingOfEUTRA_constraint;
-jer_type_encoder_f NGAP_UERadioCapabilityForPagingOfEUTRA_encode_jer;
per_type_decoder_f NGAP_UERadioCapabilityForPagingOfEUTRA_decode_aper;
per_type_encoder_f NGAP_UERadioCapabilityForPagingOfEUTRA_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.c
index 31e2884849..e2c63934e2 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityForPagingOfNB-IoT.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.h
index 6807ae93ca..00ea3452e4 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNB-IoT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityForPagingOfNB_IoT_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UERadioCapabilityForPagingOfNB_IoT;
asn_struct_free_f NGAP_UERadioCapabilityForPagingOfNB_IoT_free;
asn_struct_print_f NGAP_UERadioCapabilityForPagingOfNB_IoT_print;
asn_constr_check_f NGAP_UERadioCapabilityForPagingOfNB_IoT_constraint;
-jer_type_encoder_f NGAP_UERadioCapabilityForPagingOfNB_IoT_encode_jer;
per_type_decoder_f NGAP_UERadioCapabilityForPagingOfNB_IoT_decode_aper;
per_type_encoder_f NGAP_UERadioCapabilityForPagingOfNB_IoT_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.c
index 78c28dbbe1..b5bd497f2c 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityForPagingOfNR.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.h
index d3cda7aea2..517db2ac2d 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityForPagingOfNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityForPagingOfNR_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UERadioCapabilityForPagingOfNR;
asn_struct_free_f NGAP_UERadioCapabilityForPagingOfNR_free;
asn_struct_print_f NGAP_UERadioCapabilityForPagingOfNR_print;
asn_constr_check_f NGAP_UERadioCapabilityForPagingOfNR_constraint;
-jer_type_encoder_f NGAP_UERadioCapabilityForPagingOfNR_encode_jer;
per_type_decoder_f NGAP_UERadioCapabilityForPagingOfNR_decode_aper;
per_type_encoder_f NGAP_UERadioCapabilityForPagingOfNR_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityID.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityID.c
index d0f70062b1..1b9ea8cf96 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityID.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityID.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityID.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityID.h
index 44a4d3e289..dddc8e540c 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityID.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UERadioCapabilityID;
asn_struct_free_f NGAP_UERadioCapabilityID_free;
asn_struct_print_f NGAP_UERadioCapabilityID_print;
asn_constr_check_f NGAP_UERadioCapabilityID_constraint;
-jer_type_encoder_f NGAP_UERadioCapabilityID_encode_jer;
per_type_decoder_f NGAP_UERadioCapabilityID_decode_aper;
per_type_encoder_f NGAP_UERadioCapabilityID_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.c
index ac26bc4b62..8beb8c4246 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityIDMappingRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.h
index 53fb51ae9f..bf305ff0b1 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityIDMappingRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.c
index 2184bf619d..9b1e250db7 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityIDMappingResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.h
index fcc48bf59c..b07a07acb5 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityIDMappingResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityIDMappingResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.c b/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.c
index 65d6a3e5e1..53d36cbf04 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.c
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERadioCapabilityInfoIndication.h"
diff --git a/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.h b/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.h
index 062c3a6b3e..aa95701583 100644
--- a/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.h
+++ b/lib/asn1c/ngap/NGAP_UERadioCapabilityInfoIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERadioCapabilityInfoIndication_H_
diff --git a/lib/asn1c/ngap/NGAP_UERetentionInformation.c b/lib/asn1c/ngap/NGAP_UERetentionInformation.c
index 62e82e3635..c2576eed1b 100644
--- a/lib/asn1c/ngap/NGAP_UERetentionInformation.c
+++ b/lib/asn1c/ngap/NGAP_UERetentionInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UERetentionInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_UERetentionInformation.h b/lib/asn1c/ngap/NGAP_UERetentionInformation.h
index 3528d2e204..43397a9635 100644
--- a/lib/asn1c/ngap/NGAP_UERetentionInformation.h
+++ b/lib/asn1c/ngap/NGAP_UERetentionInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UERetentionInformation_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_UERetentionInformation_specs_1
asn_struct_free_f NGAP_UERetentionInformation_free;
asn_struct_print_f NGAP_UERetentionInformation_print;
asn_constr_check_f NGAP_UERetentionInformation_constraint;
-jer_type_encoder_f NGAP_UERetentionInformation_encode_jer;
per_type_decoder_f NGAP_UERetentionInformation_decode_aper;
per_type_encoder_f NGAP_UERetentionInformation_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UESecurityCapabilities.c b/lib/asn1c/ngap/NGAP_UESecurityCapabilities.c
index 0d9d3083ee..1073757432 100644
--- a/lib/asn1c/ngap/NGAP_UESecurityCapabilities.c
+++ b/lib/asn1c/ngap/NGAP_UESecurityCapabilities.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UESecurityCapabilities.h"
diff --git a/lib/asn1c/ngap/NGAP_UESecurityCapabilities.h b/lib/asn1c/ngap/NGAP_UESecurityCapabilities.h
index db2fce5e97..68bb98f627 100644
--- a/lib/asn1c/ngap/NGAP_UESecurityCapabilities.h
+++ b/lib/asn1c/ngap/NGAP_UESecurityCapabilities.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UESecurityCapabilities_H_
diff --git a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.c b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.c
index c832e24f21..0d8957df9a 100644
--- a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.c
+++ b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UESliceMaximumBitRateItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.h b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.h
index 641473402b..916ac73cdb 100644
--- a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.h
+++ b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UESliceMaximumBitRateItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.c b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.c
index f37115c803..072b57859f 100644
--- a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.c
+++ b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UESliceMaximumBitRateList.h"
diff --git a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.h b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.h
index 3468644bbd..443f442ad8 100644
--- a/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.h
+++ b/lib/asn1c/ngap/NGAP_UESliceMaximumBitRateList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UESliceMaximumBitRateList_H_
diff --git a/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.c b/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.c
index d99b624d89..9c489a268d 100644
--- a/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.c
+++ b/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UETNLABindingReleaseRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.h b/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.h
index db81b6e6f3..0e79cd0035 100644
--- a/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.h
+++ b/lib/asn1c/ngap/NGAP_UETNLABindingReleaseRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UETNLABindingReleaseRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.c b/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.c
index 275e99586d..c7151d5697 100644
--- a/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.c
+++ b/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UL-CP-SecurityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.h b/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.h
index ccbce6a78d..a95ab12d17 100644
--- a/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.h
+++ b/lib/asn1c/ngap/NGAP_UL-CP-SecurityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UL_CP_SecurityInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_UL-NAS-Count.c b/lib/asn1c/ngap/NGAP_UL-NAS-Count.c
index 5f1f4b006b..a7803f4448 100644
--- a/lib/asn1c/ngap/NGAP_UL-NAS-Count.c
+++ b/lib/asn1c/ngap/NGAP_UL-NAS-Count.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UL-NAS-Count.h"
diff --git a/lib/asn1c/ngap/NGAP_UL-NAS-Count.h b/lib/asn1c/ngap/NGAP_UL-NAS-Count.h
index 9c459c8d7b..b2954e6bcd 100644
--- a/lib/asn1c/ngap/NGAP_UL-NAS-Count.h
+++ b/lib/asn1c/ngap/NGAP_UL-NAS-Count.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UL_NAS_Count_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UL_NAS_Count;
asn_struct_free_f NGAP_UL_NAS_Count_free;
asn_struct_print_f NGAP_UL_NAS_Count_print;
asn_constr_check_f NGAP_UL_NAS_Count_constraint;
-jer_type_encoder_f NGAP_UL_NAS_Count_encode_jer;
per_type_decoder_f NGAP_UL_NAS_Count_decode_aper;
per_type_encoder_f NGAP_UL_NAS_Count_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UL-NAS-MAC.c b/lib/asn1c/ngap/NGAP_UL-NAS-MAC.c
index 135adc27f2..4771133582 100644
--- a/lib/asn1c/ngap/NGAP_UL-NAS-MAC.c
+++ b/lib/asn1c/ngap/NGAP_UL-NAS-MAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UL-NAS-MAC.h"
diff --git a/lib/asn1c/ngap/NGAP_UL-NAS-MAC.h b/lib/asn1c/ngap/NGAP_UL-NAS-MAC.h
index a9d857222f..54776c64b5 100644
--- a/lib/asn1c/ngap/NGAP_UL-NAS-MAC.h
+++ b/lib/asn1c/ngap/NGAP_UL-NAS-MAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UL_NAS_MAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UL_NAS_MAC;
asn_struct_free_f NGAP_UL_NAS_MAC_free;
asn_struct_print_f NGAP_UL_NAS_MAC_print;
asn_constr_check_f NGAP_UL_NAS_MAC_constraint;
-jer_type_encoder_f NGAP_UL_NAS_MAC_encode_jer;
per_type_decoder_f NGAP_UL_NAS_MAC_decode_aper;
per_type_encoder_f NGAP_UL_NAS_MAC_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.c b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.c
index 91c87a31b9..ade2f8ab11 100644
--- a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.c
+++ b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UL-NGU-UP-TNLModifyItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.h b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.h
index 6e6e56ce24..29f60abed7 100644
--- a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.h
+++ b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UL_NGU_UP_TNLModifyItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.c b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.c
index d92e6e3e32..cc49d31efe 100644
--- a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.c
+++ b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UL-NGU-UP-TNLModifyList.h"
diff --git a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.h b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.h
index 6bf22f6a9f..e807f1745d 100644
--- a/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.h
+++ b/lib/asn1c/ngap/NGAP_UL-NGU-UP-TNLModifyList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UL_NGU_UP_TNLModifyList_H_
diff --git a/lib/asn1c/ngap/NGAP_ULForwarding.c b/lib/asn1c/ngap/NGAP_ULForwarding.c
index f82d4f801b..e28d75877a 100644
--- a/lib/asn1c/ngap/NGAP_ULForwarding.c
+++ b/lib/asn1c/ngap/NGAP_ULForwarding.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_ULForwarding.h"
diff --git a/lib/asn1c/ngap/NGAP_ULForwarding.h b/lib/asn1c/ngap/NGAP_ULForwarding.h
index ae0f1e6a8c..3523188600 100644
--- a/lib/asn1c/ngap/NGAP_ULForwarding.h
+++ b/lib/asn1c/ngap/NGAP_ULForwarding.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_ULForwarding_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_ULForwarding_specs_1;
asn_struct_free_f NGAP_ULForwarding_free;
asn_struct_print_f NGAP_ULForwarding_print;
asn_constr_check_f NGAP_ULForwarding_constraint;
-jer_type_encoder_f NGAP_ULForwarding_encode_jer;
per_type_decoder_f NGAP_ULForwarding_decode_aper;
per_type_encoder_f NGAP_ULForwarding_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.c b/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.c
index cf2f8d2472..54ad3a5b70 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.c
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UPTransportLayerInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.h b/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.h
index e976ced9e8..fe58b872de 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.h
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UPTransportLayerInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.c b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.c
index 1665873003..9979809c9a 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.c
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UPTransportLayerInformationItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.h b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.h
index bd3453c3cf..1e75c77d68 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.h
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UPTransportLayerInformationItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.c b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.c
index 93d1883f6a..684b80ebbf 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.c
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UPTransportLayerInformationList.h"
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.h b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.h
index 242e650419..6086a63491 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.h
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UPTransportLayerInformationList_H_
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.c b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.c
index 5b15599a14..16aa902499 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.c
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UPTransportLayerInformationPairItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.h b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.h
index b4345a8cd6..d9e26afe21 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.h
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UPTransportLayerInformationPairItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.c b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.c
index 5e1833086f..f0fdcc4192 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.c
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UPTransportLayerInformationPairList.h"
diff --git a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.h b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.h
index 8ac858c32d..4f0c3a1b51 100644
--- a/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.h
+++ b/lib/asn1c/ngap/NGAP_UPTransportLayerInformationPairList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UPTransportLayerInformationPairList_H_
diff --git a/lib/asn1c/ngap/NGAP_URI-address.c b/lib/asn1c/ngap/NGAP_URI-address.c
index a144156857..0244f0003f 100644
--- a/lib/asn1c/ngap/NGAP_URI-address.c
+++ b/lib/asn1c/ngap/NGAP_URI-address.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_URI-address.h"
diff --git a/lib/asn1c/ngap/NGAP_URI-address.h b/lib/asn1c/ngap/NGAP_URI-address.h
index 542cdb3a06..fa6aaa5483 100644
--- a/lib/asn1c/ngap/NGAP_URI-address.h
+++ b/lib/asn1c/ngap/NGAP_URI-address.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_URI_address_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_URI_address;
asn_struct_free_f NGAP_URI_address_free;
asn_struct_print_f NGAP_URI_address_print;
asn_constr_check_f NGAP_URI_address_constraint;
-jer_type_encoder_f NGAP_URI_address_encode_jer;
per_type_decoder_f NGAP_URI_address_decode_aper;
per_type_encoder_f NGAP_URI_address_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.c b/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.c
index f802c6b37b..a59517456d 100644
--- a/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.c
+++ b/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UnavailableGUAMIItem.h"
diff --git a/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.h b/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.h
index d66d59528d..5b5dab88fc 100644
--- a/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.h
+++ b/lib/asn1c/ngap/NGAP_UnavailableGUAMIItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UnavailableGUAMIItem_H_
diff --git a/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.c b/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.c
index 86fca21252..6fa1fc2553 100644
--- a/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.c
+++ b/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UnavailableGUAMIList.h"
diff --git a/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.h b/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.h
index b55e09ae35..bb8b829414 100644
--- a/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.h
+++ b/lib/asn1c/ngap/NGAP_UnavailableGUAMIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UnavailableGUAMIList_H_
diff --git a/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.c b/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.c
index ba5a7e68ae..a8f0654ae3 100644
--- a/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.c
+++ b/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UnsuccessfulOutcome.h"
diff --git a/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.h b/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.h
index 98add3573e..c57696ea03 100644
--- a/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.h
+++ b/lib/asn1c/ngap/NGAP_UnsuccessfulOutcome.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Descriptions"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UnsuccessfulOutcome_H_
diff --git a/lib/asn1c/ngap/NGAP_UpdateFeedback.c b/lib/asn1c/ngap/NGAP_UpdateFeedback.c
index 4aaebb70c9..66ed055630 100644
--- a/lib/asn1c/ngap/NGAP_UpdateFeedback.c
+++ b/lib/asn1c/ngap/NGAP_UpdateFeedback.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UpdateFeedback.h"
diff --git a/lib/asn1c/ngap/NGAP_UpdateFeedback.h b/lib/asn1c/ngap/NGAP_UpdateFeedback.h
index 6fb5570915..f771e50817 100644
--- a/lib/asn1c/ngap/NGAP_UpdateFeedback.h
+++ b/lib/asn1c/ngap/NGAP_UpdateFeedback.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UpdateFeedback_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_UpdateFeedback;
asn_struct_free_f NGAP_UpdateFeedback_free;
asn_struct_print_f NGAP_UpdateFeedback_print;
asn_constr_check_f NGAP_UpdateFeedback_constraint;
-jer_type_encoder_f NGAP_UpdateFeedback_encode_jer;
per_type_decoder_f NGAP_UpdateFeedback_decode_aper;
per_type_encoder_f NGAP_UpdateFeedback_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_UplinkNASTransport.c b/lib/asn1c/ngap/NGAP_UplinkNASTransport.c
index 2642aa4a44..aedddd335d 100644
--- a/lib/asn1c/ngap/NGAP_UplinkNASTransport.c
+++ b/lib/asn1c/ngap/NGAP_UplinkNASTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UplinkNASTransport.h"
diff --git a/lib/asn1c/ngap/NGAP_UplinkNASTransport.h b/lib/asn1c/ngap/NGAP_UplinkNASTransport.h
index ccfa679db9..7ee541c238 100644
--- a/lib/asn1c/ngap/NGAP_UplinkNASTransport.h
+++ b/lib/asn1c/ngap/NGAP_UplinkNASTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UplinkNASTransport_H_
diff --git a/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.c b/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.c
index a8ab53cb81..109aba236c 100644
--- a/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.c
+++ b/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UplinkNonUEAssociatedNRPPaTransport.h"
diff --git a/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.h b/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.h
index 2613a84731..30b36e7a71 100644
--- a/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.h
+++ b/lib/asn1c/ngap/NGAP_UplinkNonUEAssociatedNRPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UplinkNonUEAssociatedNRPPaTransport_H_
diff --git a/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.c b/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.c
index 5f01cc0fef..85db02aa7d 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UplinkRANConfigurationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.h b/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.h
index 0005e555ba..05c8439168 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UplinkRANConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UplinkRANConfigurationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.c b/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.c
index abfa4fd0cf..2445da3393 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UplinkRANEarlyStatusTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.h b/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.h
index 41adc2cd1e..87658e57a3 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UplinkRANEarlyStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UplinkRANEarlyStatusTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.c b/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.c
index e7b0590ea5..4bd32ff478 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UplinkRANStatusTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.h b/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.h
index 35ede1ec28..c8fb389ca5 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UplinkRANStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UplinkRANStatusTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.c b/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.c
index 11f31c6352..cdc3a61fd2 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.c
+++ b/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UplinkRIMInformationTransfer.h"
diff --git a/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.h b/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.h
index 46a8b00e40..1a1965f2b5 100644
--- a/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.h
+++ b/lib/asn1c/ngap/NGAP_UplinkRIMInformationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UplinkRIMInformationTransfer_H_
diff --git a/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.c b/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.c
index 6f59c22db8..0adea6a631 100644
--- a/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.c
+++ b/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UplinkUEAssociatedNRPPaTransport.h"
diff --git a/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.h b/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.h
index 22bd88ebd0..1552f12b97 100644
--- a/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.h
+++ b/lib/asn1c/ngap/NGAP_UplinkUEAssociatedNRPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UplinkUEAssociatedNRPPaTransport_H_
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformation.c b/lib/asn1c/ngap/NGAP_UserLocationInformation.c
index 11e12b4c54..b36856c32c 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformation.c
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserLocationInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformation.h b/lib/asn1c/ngap/NGAP_UserLocationInformation.h
index 1f9557b36d..916e70e10f 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformation.h
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserLocationInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.c b/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.c
index 6aacd7ef4c..41202f273a 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.c
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserLocationInformationEUTRA.h"
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.h b/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.h
index 377efa3920..eb2cefbc35 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.h
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationEUTRA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserLocationInformationEUTRA_H_
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.c b/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.c
index a06d544f07..aefa05fe1b 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.c
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserLocationInformationN3IWF.h"
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.h b/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.h
index 9b80e47193..53786bf9ac 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.h
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationN3IWF.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserLocationInformationN3IWF_H_
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationNR.c b/lib/asn1c/ngap/NGAP_UserLocationInformationNR.c
index c8a30170bb..6766d1834a 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationNR.c
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserLocationInformationNR.h"
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationNR.h b/lib/asn1c/ngap/NGAP_UserLocationInformationNR.h
index 5eae4b59f3..ef501a468b 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationNR.h
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserLocationInformationNR_H_
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.c b/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.c
index 7c82f32036..d42a9b0da6 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.c
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserLocationInformationTNGF.h"
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.h b/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.h
index 34599b8e4d..b5018f711b 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.h
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationTNGF.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserLocationInformationTNGF_H_
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.c b/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.c
index 4c4d1fee5f..33e82662d1 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.c
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserLocationInformationTWIF.h"
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.h b/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.h
index ae58fa598f..37bb4f09d5 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.h
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationTWIF.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserLocationInformationTWIF_H_
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.c b/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.c
index 14aec3a2ab..f29b89de4d 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.c
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserLocationInformationW-AGF.h"
diff --git a/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.h b/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.h
index 53198b05ec..91f8a9fcc0 100644
--- a/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.h
+++ b/lib/asn1c/ngap/NGAP_UserLocationInformationW-AGF.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserLocationInformationW_AGF_H_
diff --git a/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.c b/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.c
index a4cbcbfd99..6c28448dc6 100644
--- a/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.c
+++ b/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_UserPlaneSecurityInformation.h"
diff --git a/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.h b/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.h
index 95d16f60bd..dbb4ee8a9e 100644
--- a/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.h
+++ b/lib/asn1c/ngap/NGAP_UserPlaneSecurityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_UserPlaneSecurityInformation_H_
diff --git a/lib/asn1c/ngap/NGAP_VehicleUE.c b/lib/asn1c/ngap/NGAP_VehicleUE.c
index 094da72014..44ee17e0c9 100644
--- a/lib/asn1c/ngap/NGAP_VehicleUE.c
+++ b/lib/asn1c/ngap/NGAP_VehicleUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_VehicleUE.h"
diff --git a/lib/asn1c/ngap/NGAP_VehicleUE.h b/lib/asn1c/ngap/NGAP_VehicleUE.h
index 2d9d978488..7975cda510 100644
--- a/lib/asn1c/ngap/NGAP_VehicleUE.h
+++ b/lib/asn1c/ngap/NGAP_VehicleUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_VehicleUE_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_VehicleUE_specs_1;
asn_struct_free_f NGAP_VehicleUE_free;
asn_struct_print_f NGAP_VehicleUE_print;
asn_constr_check_f NGAP_VehicleUE_constraint;
-jer_type_encoder_f NGAP_VehicleUE_encode_jer;
per_type_decoder_f NGAP_VehicleUE_decode_aper;
per_type_encoder_f NGAP_VehicleUE_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.c b/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.c
index a6611f5be4..18364c25d0 100644
--- a/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.c
+++ b/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_VolumeTimedReport-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.h b/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.h
index 3855207b1d..d856b3425f 100644
--- a/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.h
+++ b/lib/asn1c/ngap/NGAP_VolumeTimedReport-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_VolumeTimedReport_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_VolumeTimedReportList.c b/lib/asn1c/ngap/NGAP_VolumeTimedReportList.c
index 12248139a4..acc376dbc0 100644
--- a/lib/asn1c/ngap/NGAP_VolumeTimedReportList.c
+++ b/lib/asn1c/ngap/NGAP_VolumeTimedReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_VolumeTimedReportList.h"
diff --git a/lib/asn1c/ngap/NGAP_VolumeTimedReportList.h b/lib/asn1c/ngap/NGAP_VolumeTimedReportList.h
index 0a3b8df339..4f6a7169ea 100644
--- a/lib/asn1c/ngap/NGAP_VolumeTimedReportList.h
+++ b/lib/asn1c/ngap/NGAP_VolumeTimedReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_VolumeTimedReportList_H_
diff --git a/lib/asn1c/ngap/NGAP_W-AGF-ID.c b/lib/asn1c/ngap/NGAP_W-AGF-ID.c
index f4b2f5fdb7..d0ea93806b 100644
--- a/lib/asn1c/ngap/NGAP_W-AGF-ID.c
+++ b/lib/asn1c/ngap/NGAP_W-AGF-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_W-AGF-ID.h"
diff --git a/lib/asn1c/ngap/NGAP_W-AGF-ID.h b/lib/asn1c/ngap/NGAP_W-AGF-ID.h
index a64b63cbc4..50e3b5ecf4 100644
--- a/lib/asn1c/ngap/NGAP_W-AGF-ID.h
+++ b/lib/asn1c/ngap/NGAP_W-AGF-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_W_AGF_ID_H_
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasConfig.c b/lib/asn1c/ngap/NGAP_WLANMeasConfig.c
index 0d742048a5..4e56282d1f 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasConfig.c
+++ b/lib/asn1c/ngap/NGAP_WLANMeasConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WLANMeasConfig.h"
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasConfig.h b/lib/asn1c/ngap/NGAP_WLANMeasConfig.h
index eef9684a7a..967c4f06c7 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasConfig.h
+++ b/lib/asn1c/ngap/NGAP_WLANMeasConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WLANMeasConfig_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_NGAP_WLANMeasConfig_specs_1;
asn_struct_free_f NGAP_WLANMeasConfig_free;
asn_struct_print_f NGAP_WLANMeasConfig_print;
asn_constr_check_f NGAP_WLANMeasConfig_constraint;
-jer_type_encoder_f NGAP_WLANMeasConfig_encode_jer;
per_type_decoder_f NGAP_WLANMeasConfig_decode_aper;
per_type_encoder_f NGAP_WLANMeasConfig_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.c b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.c
index ba2786113a..52b15bdf6d 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.c
+++ b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WLANMeasConfigNameItem.h"
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.h b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.h
index c21e7f1bd1..8cc59dbb79 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.h
+++ b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WLANMeasConfigNameItem_H_
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.c b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.c
index c674c60233..b7c7e5a921 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.c
+++ b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WLANMeasConfigNameList.h"
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.h b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.h
index a8fd3b54e9..002c1b32a3 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.h
+++ b/lib/asn1c/ngap/NGAP_WLANMeasConfigNameList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WLANMeasConfigNameList_H_
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.c b/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.c
index 520b525174..30922e2529 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.c
+++ b/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WLANMeasurementConfiguration.h"
diff --git a/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.h b/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.h
index 3de3ff6f30..d9e78944f1 100644
--- a/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.h
+++ b/lib/asn1c/ngap/NGAP_WLANMeasurementConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WLANMeasurementConfiguration_H_
diff --git a/lib/asn1c/ngap/NGAP_WLANName.c b/lib/asn1c/ngap/NGAP_WLANName.c
index afefca567e..092b7f1a90 100644
--- a/lib/asn1c/ngap/NGAP_WLANName.c
+++ b/lib/asn1c/ngap/NGAP_WLANName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WLANName.h"
diff --git a/lib/asn1c/ngap/NGAP_WLANName.h b/lib/asn1c/ngap/NGAP_WLANName.h
index ce0c7003a8..2085c56982 100644
--- a/lib/asn1c/ngap/NGAP_WLANName.h
+++ b/lib/asn1c/ngap/NGAP_WLANName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WLANName_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_WLANName;
asn_struct_free_f NGAP_WLANName_free;
asn_struct_print_f NGAP_WLANName_print;
asn_constr_check_f NGAP_WLANName_constraint;
-jer_type_encoder_f NGAP_WLANName_encode_jer;
per_type_decoder_f NGAP_WLANName_decode_aper;
per_type_encoder_f NGAP_WLANName_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.c b/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.c
index bee19e3902..b34e971c10 100644
--- a/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.c
+++ b/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WUS-Assistance-Information.h"
diff --git a/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.h b/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.h
index b42476c912..fd9362974f 100644
--- a/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.h
+++ b/lib/asn1c/ngap/NGAP_WUS-Assistance-Information.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WUS_Assistance_Information_H_
diff --git a/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.c b/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.c
index 0f155110e3..1a2de33b82 100644
--- a/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.c
+++ b/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WarningAreaCoordinates.h"
diff --git a/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.h b/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.h
index 78de85aebe..397f049351 100644
--- a/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.h
+++ b/lib/asn1c/ngap/NGAP_WarningAreaCoordinates.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WarningAreaCoordinates_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_WarningAreaCoordinates;
asn_struct_free_f NGAP_WarningAreaCoordinates_free;
asn_struct_print_f NGAP_WarningAreaCoordinates_print;
asn_constr_check_f NGAP_WarningAreaCoordinates_constraint;
-jer_type_encoder_f NGAP_WarningAreaCoordinates_encode_jer;
per_type_decoder_f NGAP_WarningAreaCoordinates_decode_aper;
per_type_encoder_f NGAP_WarningAreaCoordinates_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_WarningAreaList.c b/lib/asn1c/ngap/NGAP_WarningAreaList.c
index 6917c1b7da..1f73fdabde 100644
--- a/lib/asn1c/ngap/NGAP_WarningAreaList.c
+++ b/lib/asn1c/ngap/NGAP_WarningAreaList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WarningAreaList.h"
diff --git a/lib/asn1c/ngap/NGAP_WarningAreaList.h b/lib/asn1c/ngap/NGAP_WarningAreaList.h
index 4c05ec9a29..33d54214e7 100644
--- a/lib/asn1c/ngap/NGAP_WarningAreaList.h
+++ b/lib/asn1c/ngap/NGAP_WarningAreaList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WarningAreaList_H_
diff --git a/lib/asn1c/ngap/NGAP_WarningMessageContents.c b/lib/asn1c/ngap/NGAP_WarningMessageContents.c
index de80c50c17..093e759a33 100644
--- a/lib/asn1c/ngap/NGAP_WarningMessageContents.c
+++ b/lib/asn1c/ngap/NGAP_WarningMessageContents.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WarningMessageContents.h"
diff --git a/lib/asn1c/ngap/NGAP_WarningMessageContents.h b/lib/asn1c/ngap/NGAP_WarningMessageContents.h
index b91017b698..54d22cfeb5 100644
--- a/lib/asn1c/ngap/NGAP_WarningMessageContents.h
+++ b/lib/asn1c/ngap/NGAP_WarningMessageContents.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WarningMessageContents_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_WarningMessageContents;
asn_struct_free_f NGAP_WarningMessageContents_free;
asn_struct_print_f NGAP_WarningMessageContents_print;
asn_constr_check_f NGAP_WarningMessageContents_constraint;
-jer_type_encoder_f NGAP_WarningMessageContents_encode_jer;
per_type_decoder_f NGAP_WarningMessageContents_decode_aper;
per_type_encoder_f NGAP_WarningMessageContents_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_WarningSecurityInfo.c b/lib/asn1c/ngap/NGAP_WarningSecurityInfo.c
index 3c2b38e638..ada8970453 100644
--- a/lib/asn1c/ngap/NGAP_WarningSecurityInfo.c
+++ b/lib/asn1c/ngap/NGAP_WarningSecurityInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WarningSecurityInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_WarningSecurityInfo.h b/lib/asn1c/ngap/NGAP_WarningSecurityInfo.h
index 57acacadfa..579a69ff52 100644
--- a/lib/asn1c/ngap/NGAP_WarningSecurityInfo.h
+++ b/lib/asn1c/ngap/NGAP_WarningSecurityInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WarningSecurityInfo_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_WarningSecurityInfo;
asn_struct_free_f NGAP_WarningSecurityInfo_free;
asn_struct_print_f NGAP_WarningSecurityInfo_print;
asn_constr_check_f NGAP_WarningSecurityInfo_constraint;
-jer_type_encoder_f NGAP_WarningSecurityInfo_encode_jer;
per_type_decoder_f NGAP_WarningSecurityInfo_decode_aper;
per_type_encoder_f NGAP_WarningSecurityInfo_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_WarningType.c b/lib/asn1c/ngap/NGAP_WarningType.c
index a7f2736e46..d77365c283 100644
--- a/lib/asn1c/ngap/NGAP_WarningType.c
+++ b/lib/asn1c/ngap/NGAP_WarningType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WarningType.h"
diff --git a/lib/asn1c/ngap/NGAP_WarningType.h b/lib/asn1c/ngap/NGAP_WarningType.h
index f51cc42b76..6c570bbb1a 100644
--- a/lib/asn1c/ngap/NGAP_WarningType.h
+++ b/lib/asn1c/ngap/NGAP_WarningType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WarningType_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_NGAP_WarningType;
asn_struct_free_f NGAP_WarningType_free;
asn_struct_print_f NGAP_WarningType_print;
asn_constr_check_f NGAP_WarningType_constraint;
-jer_type_encoder_f NGAP_WarningType_encode_jer;
per_type_decoder_f NGAP_WarningType_decode_aper;
per_type_encoder_f NGAP_WarningType_encode_aper;
diff --git a/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.c b/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.c
index ce72fcf037..19e0f74070 100644
--- a/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.c
+++ b/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WriteReplaceWarningRequest.h"
diff --git a/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.h b/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.h
index 0efc247592..6c712af024 100644
--- a/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.h
+++ b/lib/asn1c/ngap/NGAP_WriteReplaceWarningRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WriteReplaceWarningRequest_H_
diff --git a/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.c b/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.c
index 5bcd819d24..4dd14decfc 100644
--- a/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.c
+++ b/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_WriteReplaceWarningResponse.h"
diff --git a/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.h b/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.h
index d8dfaa15ce..b769ecec8c 100644
--- a/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.h
+++ b/lib/asn1c/ngap/NGAP_WriteReplaceWarningResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-PDU-Contents"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_WriteReplaceWarningResponse_H_
diff --git a/lib/asn1c/ngap/NGAP_XnExtTLA-Item.c b/lib/asn1c/ngap/NGAP_XnExtTLA-Item.c
index 7f6c1b9ca4..87bb435e81 100644
--- a/lib/asn1c/ngap/NGAP_XnExtTLA-Item.c
+++ b/lib/asn1c/ngap/NGAP_XnExtTLA-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_XnExtTLA-Item.h"
diff --git a/lib/asn1c/ngap/NGAP_XnExtTLA-Item.h b/lib/asn1c/ngap/NGAP_XnExtTLA-Item.h
index 067ed026d9..a47b77e87a 100644
--- a/lib/asn1c/ngap/NGAP_XnExtTLA-Item.h
+++ b/lib/asn1c/ngap/NGAP_XnExtTLA-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_XnExtTLA_Item_H_
diff --git a/lib/asn1c/ngap/NGAP_XnExtTLAs.c b/lib/asn1c/ngap/NGAP_XnExtTLAs.c
index 981d0b102a..30c5f68c99 100644
--- a/lib/asn1c/ngap/NGAP_XnExtTLAs.c
+++ b/lib/asn1c/ngap/NGAP_XnExtTLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_XnExtTLAs.h"
diff --git a/lib/asn1c/ngap/NGAP_XnExtTLAs.h b/lib/asn1c/ngap/NGAP_XnExtTLAs.h
index 257115c07d..59b4475200 100644
--- a/lib/asn1c/ngap/NGAP_XnExtTLAs.h
+++ b/lib/asn1c/ngap/NGAP_XnExtTLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_XnExtTLAs_H_
diff --git a/lib/asn1c/ngap/NGAP_XnGTP-TLAs.c b/lib/asn1c/ngap/NGAP_XnGTP-TLAs.c
index f0134a9224..e791004ca5 100644
--- a/lib/asn1c/ngap/NGAP_XnGTP-TLAs.c
+++ b/lib/asn1c/ngap/NGAP_XnGTP-TLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_XnGTP-TLAs.h"
diff --git a/lib/asn1c/ngap/NGAP_XnGTP-TLAs.h b/lib/asn1c/ngap/NGAP_XnGTP-TLAs.h
index d39d75d7e5..cb666c0a68 100644
--- a/lib/asn1c/ngap/NGAP_XnGTP-TLAs.h
+++ b/lib/asn1c/ngap/NGAP_XnGTP-TLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_XnGTP_TLAs_H_
diff --git a/lib/asn1c/ngap/NGAP_XnTLAs.c b/lib/asn1c/ngap/NGAP_XnTLAs.c
index 7d9b87587f..3a667a5fe2 100644
--- a/lib/asn1c/ngap/NGAP_XnTLAs.c
+++ b/lib/asn1c/ngap/NGAP_XnTLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_XnTLAs.h"
diff --git a/lib/asn1c/ngap/NGAP_XnTLAs.h b/lib/asn1c/ngap/NGAP_XnTLAs.h
index 56ddc1744a..8afa38d72d 100644
--- a/lib/asn1c/ngap/NGAP_XnTLAs.h
+++ b/lib/asn1c/ngap/NGAP_XnTLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_XnTLAs_H_
diff --git a/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.c b/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.c
index fb694f29a4..fe78929f4f 100644
--- a/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.c
+++ b/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "NGAP_XnTNLConfigurationInfo.h"
diff --git a/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.h b/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.h
index a1792676e7..6c95f81652 100644
--- a/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.h
+++ b/lib/asn1c/ngap/NGAP_XnTNLConfigurationInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "NGAP-IEs"
* found in "../support/ngap-r17.3.0/38413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _NGAP_XnTNLConfigurationInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_Additional-GUTI.c b/lib/asn1c/s1ap/S1AP_Additional-GUTI.c
index a6edd158d7..3b13870b9c 100644
--- a/lib/asn1c/s1ap/S1AP_Additional-GUTI.c
+++ b/lib/asn1c/s1ap/S1AP_Additional-GUTI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Additional-GUTI.h"
diff --git a/lib/asn1c/s1ap/S1AP_Additional-GUTI.h b/lib/asn1c/s1ap/S1AP_Additional-GUTI.h
index e66a535e4c..b5a90ba094 100644
--- a/lib/asn1c/s1ap/S1AP_Additional-GUTI.h
+++ b/lib/asn1c/s1ap/S1AP_Additional-GUTI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Additional_GUTI_H_
diff --git a/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.c b/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.c
index 5320ef364d..da04330052 100644
--- a/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AdditionalCSFallbackIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.h b/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.h
index e8d0bee2eb..69ec6b378f 100644
--- a/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_AdditionalCSFallbackIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AdditionalCSFallbackIndicator_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_AdditionalCSFallbackIndicator_
asn_struct_free_f S1AP_AdditionalCSFallbackIndicator_free;
asn_struct_print_f S1AP_AdditionalCSFallbackIndicator_print;
asn_constr_check_f S1AP_AdditionalCSFallbackIndicator_constraint;
-jer_type_encoder_f S1AP_AdditionalCSFallbackIndicator_encode_jer;
per_type_decoder_f S1AP_AdditionalCSFallbackIndicator_decode_aper;
per_type_encoder_f S1AP_AdditionalCSFallbackIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.c b/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.c
index 9df10a273b..bfbb92566e 100644
--- a/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.c
+++ b/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AdditionalRRMPriorityIndex.h"
diff --git a/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.h b/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.h
index 86c304aebe..01f50d0209 100644
--- a/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.h
+++ b/lib/asn1c/s1ap/S1AP_AdditionalRRMPriorityIndex.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AdditionalRRMPriorityIndex_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_AdditionalRRMPriorityIndex;
asn_struct_free_f S1AP_AdditionalRRMPriorityIndex_free;
asn_struct_print_f S1AP_AdditionalRRMPriorityIndex_print;
asn_constr_check_f S1AP_AdditionalRRMPriorityIndex_constraint;
-jer_type_encoder_f S1AP_AdditionalRRMPriorityIndex_encode_jer;
per_type_decoder_f S1AP_AdditionalRRMPriorityIndex_decode_aper;
per_type_encoder_f S1AP_AdditionalRRMPriorityIndex_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.c b/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.c
index 76e226e97b..89f62e05e7 100644
--- a/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.c
+++ b/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AerialUEsubscriptionInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.h b/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.h
index 0285a3e5c9..8b7e5b3784 100644
--- a/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.h
+++ b/lib/asn1c/s1ap/S1AP_AerialUEsubscriptionInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AerialUEsubscriptionInformation_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_AerialUEsubscriptionInformatio
asn_struct_free_f S1AP_AerialUEsubscriptionInformation_free;
asn_struct_print_f S1AP_AerialUEsubscriptionInformation_print;
asn_constr_check_f S1AP_AerialUEsubscriptionInformation_constraint;
-jer_type_encoder_f S1AP_AerialUEsubscriptionInformation_encode_jer;
per_type_decoder_f S1AP_AerialUEsubscriptionInformation_decode_aper;
per_type_encoder_f S1AP_AerialUEsubscriptionInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.c b/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.c
index 5bbd51e07f..20d1da78fc 100644
--- a/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.c
+++ b/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AllocationAndRetentionPriority.h"
diff --git a/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.h b/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.h
index 7d31050b28..2eaff49dfb 100644
--- a/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.h
+++ b/lib/asn1c/s1ap/S1AP_AllocationAndRetentionPriority.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AllocationAndRetentionPriority_H_
diff --git a/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.c b/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.c
index 524a8c1faf..6652ec6f7c 100644
--- a/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.c
+++ b/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AreaScopeOfMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.h b/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.h
index 342d449588..8c3ada9df5 100644
--- a/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.h
+++ b/lib/asn1c/s1ap/S1AP_AreaScopeOfMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AreaScopeOfMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.c b/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.c
index f61c83fc9b..f3d33f3070 100644
--- a/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.c
+++ b/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AreaScopeOfQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.h b/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.h
index 630c999741..9aec388295 100644
--- a/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.h
+++ b/lib/asn1c/s1ap/S1AP_AreaScopeOfQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AreaScopeOfQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.c b/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.c
index 6c8c3cb6ec..cf58e76da9 100644
--- a/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.c
+++ b/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AssistanceDataForCECapableUEs.h"
diff --git a/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.h b/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.h
index 2d8081d68e..950528abb5 100644
--- a/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.h
+++ b/lib/asn1c/s1ap/S1AP_AssistanceDataForCECapableUEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AssistanceDataForCECapableUEs_H_
diff --git a/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.c b/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.c
index ba8b9808c6..3a33f9881e 100644
--- a/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.c
+++ b/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AssistanceDataForPaging.h"
diff --git a/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.h b/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.h
index 50e72ef235..ce02318af2 100644
--- a/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.h
+++ b/lib/asn1c/s1ap/S1AP_AssistanceDataForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AssistanceDataForPaging_H_
diff --git a/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.c b/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.c
index 41a411bff4..3cc3efeffd 100644
--- a/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.c
+++ b/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_AssistanceDataForRecommendedCells.h"
diff --git a/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.h b/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.h
index c56d246985..659499ab99 100644
--- a/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.h
+++ b/lib/asn1c/s1ap/S1AP_AssistanceDataForRecommendedCells.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_AssistanceDataForRecommendedCells_H_
diff --git a/lib/asn1c/s1ap/S1AP_BPLMNs.c b/lib/asn1c/s1ap/S1AP_BPLMNs.c
index 4d19edcc74..ee9a810514 100644
--- a/lib/asn1c/s1ap/S1AP_BPLMNs.c
+++ b/lib/asn1c/s1ap/S1AP_BPLMNs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BPLMNs.h"
diff --git a/lib/asn1c/s1ap/S1AP_BPLMNs.h b/lib/asn1c/s1ap/S1AP_BPLMNs.h
index 8c70be5d17..aaf671b5b5 100644
--- a/lib/asn1c/s1ap/S1AP_BPLMNs.h
+++ b/lib/asn1c/s1ap/S1AP_BPLMNs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BPLMNs_H_
diff --git a/lib/asn1c/s1ap/S1AP_BearerType.c b/lib/asn1c/s1ap/S1AP_BearerType.c
index 97c583d57b..8f51f543bc 100644
--- a/lib/asn1c/s1ap/S1AP_BearerType.c
+++ b/lib/asn1c/s1ap/S1AP_BearerType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BearerType.h"
diff --git a/lib/asn1c/s1ap/S1AP_BearerType.h b/lib/asn1c/s1ap/S1AP_BearerType.h
index d6b4e7c1b0..67363073ee 100644
--- a/lib/asn1c/s1ap/S1AP_BearerType.h
+++ b/lib/asn1c/s1ap/S1AP_BearerType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BearerType_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_BearerType_specs_1;
asn_struct_free_f S1AP_BearerType_free;
asn_struct_print_f S1AP_BearerType_print;
asn_constr_check_f S1AP_BearerType_constraint;
-jer_type_encoder_f S1AP_BearerType_encode_jer;
per_type_decoder_f S1AP_BearerType_decode_aper;
per_type_encoder_f S1AP_BearerType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.c b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.c
index 6061c4ebc4..54a6959538 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.c
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.h b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.h
index f88c468bab..41aef97c39 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.h
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransfer-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Bearers_SubjectToEarlyStatusTransfer_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.c b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.c
index 4bbb539c56..874fe7c13a 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.c
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Bearers-SubjectToEarlyStatusTransferList.h"
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.h b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.h
index 248d81e7fb..69f74bcda1 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.h
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToEarlyStatusTransferList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Bearers_SubjectToEarlyStatusTransferList_H_
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.c b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.c
index a6de69c65c..3e9d307942 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.c
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Bearers-SubjectToStatusTransfer-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.h b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.h
index b286d73e75..9d52ff177f 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.h
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransfer-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Bearers_SubjectToStatusTransfer_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.c b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.c
index 6c83f6230e..912d9256c5 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.c
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Bearers-SubjectToStatusTransferList.h"
diff --git a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.h b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.h
index 6669b16d13..cfc6c3afdc 100644
--- a/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.h
+++ b/lib/asn1c/s1ap/S1AP_Bearers-SubjectToStatusTransferList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Bearers_SubjectToStatusTransferList_H_
diff --git a/lib/asn1c/s1ap/S1AP_BitRate.c b/lib/asn1c/s1ap/S1AP_BitRate.c
index f6a92c231d..61a0048070 100644
--- a/lib/asn1c/s1ap/S1AP_BitRate.c
+++ b/lib/asn1c/s1ap/S1AP_BitRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BitRate.h"
diff --git a/lib/asn1c/s1ap/S1AP_BitRate.h b/lib/asn1c/s1ap/S1AP_BitRate.h
index 9acb24a9ee..d9dadf9ae7 100644
--- a/lib/asn1c/s1ap/S1AP_BitRate.h
+++ b/lib/asn1c/s1ap/S1AP_BitRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BitRate_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_BitRate;
asn_struct_free_f S1AP_BitRate_free;
asn_struct_print_f S1AP_BitRate_print;
asn_constr_check_f S1AP_BitRate_constraint;
-jer_type_encoder_f S1AP_BitRate_encode_jer;
per_type_decoder_f S1AP_BitRate_decode_aper;
per_type_encoder_f S1AP_BitRate_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.c b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.c
index cc8e089fce..007cf90a4c 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.c
+++ b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BluetoothMeasConfig.h"
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.h b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.h
index 2fb5db6388..3c3f07ef4c 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.h
+++ b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BluetoothMeasConfig_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_BluetoothMeasConfig_specs_1;
asn_struct_free_f S1AP_BluetoothMeasConfig_free;
asn_struct_print_f S1AP_BluetoothMeasConfig_print;
asn_constr_check_f S1AP_BluetoothMeasConfig_constraint;
-jer_type_encoder_f S1AP_BluetoothMeasConfig_encode_jer;
per_type_decoder_f S1AP_BluetoothMeasConfig_decode_aper;
per_type_encoder_f S1AP_BluetoothMeasConfig_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.c b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.c
index 9ab4c5e701..906963c58d 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.c
+++ b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BluetoothMeasConfigNameList.h"
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.h b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.h
index 7b0e068fbf..3be6adb51a 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.h
+++ b/lib/asn1c/s1ap/S1AP_BluetoothMeasConfigNameList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BluetoothMeasConfigNameList_H_
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.c b/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.c
index b3c540ce0e..f233f40a62 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.c
+++ b/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BluetoothMeasurementConfiguration.h"
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.h b/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.h
index 9d14d7acd6..493e6eb969 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.h
+++ b/lib/asn1c/s1ap/S1AP_BluetoothMeasurementConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BluetoothMeasurementConfiguration_H_
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothName.c b/lib/asn1c/s1ap/S1AP_BluetoothName.c
index ff65809e6f..227fe65d2b 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothName.c
+++ b/lib/asn1c/s1ap/S1AP_BluetoothName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BluetoothName.h"
diff --git a/lib/asn1c/s1ap/S1AP_BluetoothName.h b/lib/asn1c/s1ap/S1AP_BluetoothName.h
index 2e7e7f2d0f..3da0dcac12 100644
--- a/lib/asn1c/s1ap/S1AP_BluetoothName.h
+++ b/lib/asn1c/s1ap/S1AP_BluetoothName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BluetoothName_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_BluetoothName;
asn_struct_free_f S1AP_BluetoothName_free;
asn_struct_print_f S1AP_BluetoothName_print;
asn_constr_check_f S1AP_BluetoothName_constraint;
-jer_type_encoder_f S1AP_BluetoothName_encode_jer;
per_type_decoder_f S1AP_BluetoothName_decode_aper;
per_type_encoder_f S1AP_BluetoothName_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.c b/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.c
index 771d63ba5a..3acfc5e645 100644
--- a/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.c
+++ b/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BroadcastCancelledAreaList.h"
diff --git a/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.h b/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.h
index f903515415..3c2b4b1086 100644
--- a/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.h
+++ b/lib/asn1c/s1ap/S1AP_BroadcastCancelledAreaList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BroadcastCancelledAreaList_H_
diff --git a/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.c b/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.c
index a283f1ac31..2cf03707aa 100644
--- a/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.c
+++ b/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_BroadcastCompletedAreaList.h"
diff --git a/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.h b/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.h
index 2529e8bf85..f7fb69a842 100644
--- a/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.h
+++ b/lib/asn1c/s1ap/S1AP_BroadcastCompletedAreaList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_BroadcastCompletedAreaList_H_
diff --git a/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.c b/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.c
index 21f04c58f2..7afcb09528 100644
--- a/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.c
+++ b/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CE-ModeBRestricted.h"
diff --git a/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.h b/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.h
index a70a230795..a927945d2a 100644
--- a/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.h
+++ b/lib/asn1c/s1ap/S1AP_CE-ModeBRestricted.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CE_ModeBRestricted_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CE_ModeBRestricted_specs_1;
asn_struct_free_f S1AP_CE_ModeBRestricted_free;
asn_struct_print_f S1AP_CE_ModeBRestricted_print;
asn_constr_check_f S1AP_CE_ModeBRestricted_constraint;
-jer_type_encoder_f S1AP_CE_ModeBRestricted_encode_jer;
per_type_decoder_f S1AP_CE_ModeBRestricted_decode_aper;
per_type_encoder_f S1AP_CE_ModeBRestricted_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.c b/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.c
index 6686f44eac..2f1b3db445 100644
--- a/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CE-mode-B-SupportIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.h b/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.h
index 616e30d607..cd079c8525 100644
--- a/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_CE-mode-B-SupportIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CE_mode_B_SupportIndicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CE_mode_B_SupportIndicator_spe
asn_struct_free_f S1AP_CE_mode_B_SupportIndicator_free;
asn_struct_print_f S1AP_CE_mode_B_SupportIndicator_print;
asn_constr_check_f S1AP_CE_mode_B_SupportIndicator_constraint;
-jer_type_encoder_f S1AP_CE_mode_B_SupportIndicator_encode_jer;
per_type_decoder_f S1AP_CE_mode_B_SupportIndicator_decode_aper;
per_type_encoder_f S1AP_CE_mode_B_SupportIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CELevel.c b/lib/asn1c/s1ap/S1AP_CELevel.c
index b04f4323a8..350d0634ea 100644
--- a/lib/asn1c/s1ap/S1AP_CELevel.c
+++ b/lib/asn1c/s1ap/S1AP_CELevel.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CELevel.h"
diff --git a/lib/asn1c/s1ap/S1AP_CELevel.h b/lib/asn1c/s1ap/S1AP_CELevel.h
index 8d6da5fe96..63ff1e69e7 100644
--- a/lib/asn1c/s1ap/S1AP_CELevel.h
+++ b/lib/asn1c/s1ap/S1AP_CELevel.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CELevel_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_CELevel;
asn_struct_free_f S1AP_CELevel_free;
asn_struct_print_f S1AP_CELevel_print;
asn_constr_check_f S1AP_CELevel_constraint;
-jer_type_encoder_f S1AP_CELevel_encode_jer;
per_type_decoder_f S1AP_CELevel_decode_aper;
per_type_encoder_f S1AP_CELevel_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CGI.c b/lib/asn1c/s1ap/S1AP_CGI.c
index 769f89e398..884f46090a 100644
--- a/lib/asn1c/s1ap/S1AP_CGI.c
+++ b/lib/asn1c/s1ap/S1AP_CGI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CGI.h"
diff --git a/lib/asn1c/s1ap/S1AP_CGI.h b/lib/asn1c/s1ap/S1AP_CGI.h
index ff0cdb736b..a30becb6fe 100644
--- a/lib/asn1c/s1ap/S1AP_CGI.h
+++ b/lib/asn1c/s1ap/S1AP_CGI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CGI_H_
diff --git a/lib/asn1c/s1ap/S1AP_CI.c b/lib/asn1c/s1ap/S1AP_CI.c
index 6545ab2552..c89c99baab 100644
--- a/lib/asn1c/s1ap/S1AP_CI.c
+++ b/lib/asn1c/s1ap/S1AP_CI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CI.h"
diff --git a/lib/asn1c/s1ap/S1AP_CI.h b/lib/asn1c/s1ap/S1AP_CI.h
index 825af1d7b7..f0ea977283 100644
--- a/lib/asn1c/s1ap/S1AP_CI.h
+++ b/lib/asn1c/s1ap/S1AP_CI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_CI;
asn_struct_free_f S1AP_CI_free;
asn_struct_print_f S1AP_CI_print;
asn_constr_check_f S1AP_CI_constraint;
-jer_type_encoder_f S1AP_CI_encode_jer;
per_type_decoder_f S1AP_CI_decode_aper;
per_type_encoder_f S1AP_CI_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CNDomain.c b/lib/asn1c/s1ap/S1AP_CNDomain.c
index d05e7d263e..0f01ac8fd6 100644
--- a/lib/asn1c/s1ap/S1AP_CNDomain.c
+++ b/lib/asn1c/s1ap/S1AP_CNDomain.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CNDomain.h"
diff --git a/lib/asn1c/s1ap/S1AP_CNDomain.h b/lib/asn1c/s1ap/S1AP_CNDomain.h
index 57611d888a..845b1a1369 100644
--- a/lib/asn1c/s1ap/S1AP_CNDomain.h
+++ b/lib/asn1c/s1ap/S1AP_CNDomain.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CNDomain_H_
@@ -34,7 +34,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CNDomain_specs_1;
asn_struct_free_f S1AP_CNDomain_free;
asn_struct_print_f S1AP_CNDomain_print;
asn_constr_check_f S1AP_CNDomain_constraint;
-jer_type_encoder_f S1AP_CNDomain_encode_jer;
per_type_decoder_f S1AP_CNDomain_decode_aper;
per_type_encoder_f S1AP_CNDomain_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CNType.c b/lib/asn1c/s1ap/S1AP_CNType.c
index 81f83d1a47..c2c0ad4577 100644
--- a/lib/asn1c/s1ap/S1AP_CNType.c
+++ b/lib/asn1c/s1ap/S1AP_CNType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CNType.h"
diff --git a/lib/asn1c/s1ap/S1AP_CNType.h b/lib/asn1c/s1ap/S1AP_CNType.h
index bc26cc24d0..6d195760c3 100644
--- a/lib/asn1c/s1ap/S1AP_CNType.h
+++ b/lib/asn1c/s1ap/S1AP_CNType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CNType_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CNType_specs_1;
asn_struct_free_f S1AP_CNType_free;
asn_struct_print_f S1AP_CNType_print;
asn_constr_check_f S1AP_CNType_constraint;
-jer_type_encoder_f S1AP_CNType_encode_jer;
per_type_decoder_f S1AP_CNType_decode_aper;
per_type_encoder_f S1AP_CNType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.c b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.c
index 101d986421..85e43c1f35 100644
--- a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CNTypeRestrictions-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.h b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.h
index 5acae5f669..6040aee05b 100644
--- a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CNTypeRestrictions_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.c b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.c
index 040beed634..d7fe42ba5e 100644
--- a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.c
+++ b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CNTypeRestrictions.h"
diff --git a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.h b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.h
index 79b1f30866..5afa5f7b2f 100644
--- a/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.h
+++ b/lib/asn1c/s1ap/S1AP_CNTypeRestrictions.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CNTypeRestrictions_H_
diff --git a/lib/asn1c/s1ap/S1AP_COUNTValueExtended.c b/lib/asn1c/s1ap/S1AP_COUNTValueExtended.c
index 7b7d77bd7c..d0026e2b72 100644
--- a/lib/asn1c/s1ap/S1AP_COUNTValueExtended.c
+++ b/lib/asn1c/s1ap/S1AP_COUNTValueExtended.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_COUNTValueExtended.h"
diff --git a/lib/asn1c/s1ap/S1AP_COUNTValueExtended.h b/lib/asn1c/s1ap/S1AP_COUNTValueExtended.h
index f3af1fdcb3..e3a13b3446 100644
--- a/lib/asn1c/s1ap/S1AP_COUNTValueExtended.h
+++ b/lib/asn1c/s1ap/S1AP_COUNTValueExtended.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_COUNTValueExtended_H_
diff --git a/lib/asn1c/s1ap/S1AP_COUNTvalue.c b/lib/asn1c/s1ap/S1AP_COUNTvalue.c
index ffc24158b9..be8508cb97 100644
--- a/lib/asn1c/s1ap/S1AP_COUNTvalue.c
+++ b/lib/asn1c/s1ap/S1AP_COUNTvalue.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_COUNTvalue.h"
diff --git a/lib/asn1c/s1ap/S1AP_COUNTvalue.h b/lib/asn1c/s1ap/S1AP_COUNTvalue.h
index 6373407379..2895871aa4 100644
--- a/lib/asn1c/s1ap/S1AP_COUNTvalue.h
+++ b/lib/asn1c/s1ap/S1AP_COUNTvalue.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_COUNTvalue_H_
diff --git a/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.c b/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.c
index 2baf472a6f..f41bbaaf05 100644
--- a/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.c
+++ b/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_COUNTvaluePDCP-SNlength18.h"
diff --git a/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.h b/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.h
index 51713e939d..94e266955a 100644
--- a/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.h
+++ b/lib/asn1c/s1ap/S1AP_COUNTvaluePDCP-SNlength18.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_COUNTvaluePDCP_SNlength18_H_
diff --git a/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.c b/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.c
index dfc0b1f198..f88b64acdd 100644
--- a/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CSFallbackIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.h b/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.h
index 227ed44241..173b7d87cb 100644
--- a/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_CSFallbackIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CSFallbackIndicator_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CSFallbackIndicator_specs_1;
asn_struct_free_f S1AP_CSFallbackIndicator_free;
asn_struct_print_f S1AP_CSFallbackIndicator_print;
asn_constr_check_f S1AP_CSFallbackIndicator_constraint;
-jer_type_encoder_f S1AP_CSFallbackIndicator_encode_jer;
per_type_decoder_f S1AP_CSFallbackIndicator_decode_aper;
per_type_encoder_f S1AP_CSFallbackIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CSG-Id.c b/lib/asn1c/s1ap/S1AP_CSG-Id.c
index c791014d74..3befc04871 100644
--- a/lib/asn1c/s1ap/S1AP_CSG-Id.c
+++ b/lib/asn1c/s1ap/S1AP_CSG-Id.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CSG-Id.h"
diff --git a/lib/asn1c/s1ap/S1AP_CSG-Id.h b/lib/asn1c/s1ap/S1AP_CSG-Id.h
index d4fc3ea44a..8e2076d77e 100644
--- a/lib/asn1c/s1ap/S1AP_CSG-Id.h
+++ b/lib/asn1c/s1ap/S1AP_CSG-Id.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CSG_Id_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_CSG_Id;
asn_struct_free_f S1AP_CSG_Id_free;
asn_struct_print_f S1AP_CSG_Id_print;
asn_constr_check_f S1AP_CSG_Id_constraint;
-jer_type_encoder_f S1AP_CSG_Id_encode_jer;
per_type_decoder_f S1AP_CSG_Id_decode_aper;
per_type_encoder_f S1AP_CSG_Id_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.c b/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.c
index 85678c224a..9c04e29662 100644
--- a/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CSG-IdList-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.h b/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.h
index 9e006948ee..fb18b06314 100644
--- a/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CSG-IdList-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CSG_IdList_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CSG-IdList.c b/lib/asn1c/s1ap/S1AP_CSG-IdList.c
index cbe7d50978..f34dda7d51 100644
--- a/lib/asn1c/s1ap/S1AP_CSG-IdList.c
+++ b/lib/asn1c/s1ap/S1AP_CSG-IdList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CSG-IdList.h"
diff --git a/lib/asn1c/s1ap/S1AP_CSG-IdList.h b/lib/asn1c/s1ap/S1AP_CSG-IdList.h
index 4dba3f2bce..e5539c4c68 100644
--- a/lib/asn1c/s1ap/S1AP_CSG-IdList.h
+++ b/lib/asn1c/s1ap/S1AP_CSG-IdList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CSG_IdList_H_
diff --git a/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.c b/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.c
index 399d8fd343..b452492a42 100644
--- a/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.c
+++ b/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CSGMembershipInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.h b/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.h
index 232fe3c3e9..6ec9caeb01 100644
--- a/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.h
+++ b/lib/asn1c/s1ap/S1AP_CSGMembershipInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CSGMembershipInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.c b/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.c
index 23e535fa17..aeb22d242a 100644
--- a/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.c
+++ b/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CSGMembershipStatus.h"
diff --git a/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.h b/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.h
index 78bd40b213..3e38e38d51 100644
--- a/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.h
+++ b/lib/asn1c/s1ap/S1AP_CSGMembershipStatus.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CSGMembershipStatus_H_
@@ -34,7 +34,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CSGMembershipStatus_specs_1;
asn_struct_free_f S1AP_CSGMembershipStatus_free;
asn_struct_print_f S1AP_CSGMembershipStatus_print;
asn_constr_check_f S1AP_CSGMembershipStatus_constraint;
-jer_type_encoder_f S1AP_CSGMembershipStatus_encode_jer;
per_type_decoder_f S1AP_CSGMembershipStatus_decode_aper;
per_type_encoder_f S1AP_CSGMembershipStatus_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.c b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.c
index 99b0f1b8cd..4e7f9c4c7f 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CancelledCellinEAI-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.h b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.h
index f2108c01d3..1aa374a28b 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CancelledCellinEAI_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.c b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.c
index 4e59b9b70f..ecbd4be21a 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.c
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CancelledCellinEAI.h"
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.h b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.h
index 5437d34740..6ef696c7f7 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.h
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinEAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CancelledCellinEAI_H_
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.c b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.c
index aa0cee19dc..1ae07af370 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CancelledCellinTAI-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.h b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.h
index 501b9f25dd..1ccfe8fef8 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CancelledCellinTAI_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.c b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.c
index 6649e7de1d..d5ca4c1622 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.c
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CancelledCellinTAI.h"
diff --git a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.h b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.h
index b02efa94d2..7acd85c716 100644
--- a/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.h
+++ b/lib/asn1c/s1ap/S1AP_CancelledCellinTAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CancelledCellinTAI_H_
diff --git a/lib/asn1c/s1ap/S1AP_Cause.c b/lib/asn1c/s1ap/S1AP_Cause.c
index e3de9a8ed6..4237abf49d 100644
--- a/lib/asn1c/s1ap/S1AP_Cause.c
+++ b/lib/asn1c/s1ap/S1AP_Cause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cause.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cause.h b/lib/asn1c/s1ap/S1AP_Cause.h
index 9b1dce01bc..d8701b4c73 100644
--- a/lib/asn1c/s1ap/S1AP_Cause.h
+++ b/lib/asn1c/s1ap/S1AP_Cause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cause_H_
diff --git a/lib/asn1c/s1ap/S1AP_CauseMisc.c b/lib/asn1c/s1ap/S1AP_CauseMisc.c
index 0af88fb489..6df52ff2aa 100644
--- a/lib/asn1c/s1ap/S1AP_CauseMisc.c
+++ b/lib/asn1c/s1ap/S1AP_CauseMisc.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CauseMisc.h"
diff --git a/lib/asn1c/s1ap/S1AP_CauseMisc.h b/lib/asn1c/s1ap/S1AP_CauseMisc.h
index 62dbeb4ef0..6a957fd7be 100644
--- a/lib/asn1c/s1ap/S1AP_CauseMisc.h
+++ b/lib/asn1c/s1ap/S1AP_CauseMisc.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CauseMisc_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CauseMisc_specs_1;
asn_struct_free_f S1AP_CauseMisc_free;
asn_struct_print_f S1AP_CauseMisc_print;
asn_constr_check_f S1AP_CauseMisc_constraint;
-jer_type_encoder_f S1AP_CauseMisc_encode_jer;
per_type_decoder_f S1AP_CauseMisc_decode_aper;
per_type_encoder_f S1AP_CauseMisc_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CauseNas.c b/lib/asn1c/s1ap/S1AP_CauseNas.c
index 08bbed0e1d..7a690bab92 100644
--- a/lib/asn1c/s1ap/S1AP_CauseNas.c
+++ b/lib/asn1c/s1ap/S1AP_CauseNas.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CauseNas.h"
diff --git a/lib/asn1c/s1ap/S1AP_CauseNas.h b/lib/asn1c/s1ap/S1AP_CauseNas.h
index 35a9f66376..df32a3b24e 100644
--- a/lib/asn1c/s1ap/S1AP_CauseNas.h
+++ b/lib/asn1c/s1ap/S1AP_CauseNas.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CauseNas_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CauseNas_specs_1;
asn_struct_free_f S1AP_CauseNas_free;
asn_struct_print_f S1AP_CauseNas_print;
asn_constr_check_f S1AP_CauseNas_constraint;
-jer_type_encoder_f S1AP_CauseNas_encode_jer;
per_type_decoder_f S1AP_CauseNas_decode_aper;
per_type_encoder_f S1AP_CauseNas_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CauseProtocol.c b/lib/asn1c/s1ap/S1AP_CauseProtocol.c
index 86ff0b021f..6080bf027e 100644
--- a/lib/asn1c/s1ap/S1AP_CauseProtocol.c
+++ b/lib/asn1c/s1ap/S1AP_CauseProtocol.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CauseProtocol.h"
diff --git a/lib/asn1c/s1ap/S1AP_CauseProtocol.h b/lib/asn1c/s1ap/S1AP_CauseProtocol.h
index 1dfa63b66b..6fdafe6fb9 100644
--- a/lib/asn1c/s1ap/S1AP_CauseProtocol.h
+++ b/lib/asn1c/s1ap/S1AP_CauseProtocol.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CauseProtocol_H_
@@ -42,7 +42,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CauseProtocol_specs_1;
asn_struct_free_f S1AP_CauseProtocol_free;
asn_struct_print_f S1AP_CauseProtocol_print;
asn_constr_check_f S1AP_CauseProtocol_constraint;
-jer_type_encoder_f S1AP_CauseProtocol_encode_jer;
per_type_decoder_f S1AP_CauseProtocol_decode_aper;
per_type_encoder_f S1AP_CauseProtocol_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.c b/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.c
index e1d12da202..4aca750da9 100644
--- a/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.c
+++ b/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CauseRadioNetwork.h"
diff --git a/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.h b/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.h
index c2006b5269..c2c16801ed 100644
--- a/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.h
+++ b/lib/asn1c/s1ap/S1AP_CauseRadioNetwork.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CauseRadioNetwork_H_
@@ -79,7 +79,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CauseRadioNetwork_specs_1;
asn_struct_free_f S1AP_CauseRadioNetwork_free;
asn_struct_print_f S1AP_CauseRadioNetwork_print;
asn_constr_check_f S1AP_CauseRadioNetwork_constraint;
-jer_type_encoder_f S1AP_CauseRadioNetwork_encode_jer;
per_type_decoder_f S1AP_CauseRadioNetwork_decode_aper;
per_type_encoder_f S1AP_CauseRadioNetwork_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CauseTransport.c b/lib/asn1c/s1ap/S1AP_CauseTransport.c
index 6f31fffafe..4fd6ad1628 100644
--- a/lib/asn1c/s1ap/S1AP_CauseTransport.c
+++ b/lib/asn1c/s1ap/S1AP_CauseTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CauseTransport.h"
diff --git a/lib/asn1c/s1ap/S1AP_CauseTransport.h b/lib/asn1c/s1ap/S1AP_CauseTransport.h
index efcb1dbd2b..cd3331b147 100644
--- a/lib/asn1c/s1ap/S1AP_CauseTransport.h
+++ b/lib/asn1c/s1ap/S1AP_CauseTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CauseTransport_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CauseTransport_specs_1;
asn_struct_free_f S1AP_CauseTransport_free;
asn_struct_print_f S1AP_CauseTransport_print;
asn_constr_check_f S1AP_CauseTransport_constraint;
-jer_type_encoder_f S1AP_CauseTransport_encode_jer;
per_type_decoder_f S1AP_CauseTransport_decode_aper;
per_type_encoder_f S1AP_CauseTransport_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.c b/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.c
index 5184d01ed0..5059b9c1d0 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000HORequiredIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.h b/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.h
index 00c63ab6b7..5628739e23 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000HORequiredIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000HORequiredIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Cdma2000HORequiredIndication_s
asn_struct_free_f S1AP_Cdma2000HORequiredIndication_free;
asn_struct_print_f S1AP_Cdma2000HORequiredIndication_print;
asn_constr_check_f S1AP_Cdma2000HORequiredIndication_constraint;
-jer_type_encoder_f S1AP_Cdma2000HORequiredIndication_encode_jer;
per_type_decoder_f S1AP_Cdma2000HORequiredIndication_decode_aper;
per_type_encoder_f S1AP_Cdma2000HORequiredIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.c b/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.c
index 8a4a4fb1ca..fac9b6b3f3 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000HOStatus.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.h b/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.h
index 052a6070a4..cbb4bf0968 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000HOStatus.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000HOStatus_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Cdma2000HOStatus_specs_1;
asn_struct_free_f S1AP_Cdma2000HOStatus_free;
asn_struct_print_f S1AP_Cdma2000HOStatus_print;
asn_constr_check_f S1AP_Cdma2000HOStatus_constraint;
-jer_type_encoder_f S1AP_Cdma2000HOStatus_encode_jer;
per_type_decoder_f S1AP_Cdma2000HOStatus_decode_aper;
per_type_encoder_f S1AP_Cdma2000HOStatus_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.c b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.c
index ae29aed0c7..d2120aac65 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000OneXMEID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.h b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.h
index 1f637046d7..a14fea445b 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMEID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000OneXMEID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Cdma2000OneXMEID;
asn_struct_free_f S1AP_Cdma2000OneXMEID_free;
asn_struct_print_f S1AP_Cdma2000OneXMEID_print;
asn_constr_check_f S1AP_Cdma2000OneXMEID_constraint;
-jer_type_encoder_f S1AP_Cdma2000OneXMEID_encode_jer;
per_type_decoder_f S1AP_Cdma2000OneXMEID_decode_aper;
per_type_encoder_f S1AP_Cdma2000OneXMEID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.c b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.c
index e7bdd385a8..3facf48cf0 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000OneXMSI.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.h b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.h
index edb742de20..232626b750 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXMSI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000OneXMSI_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Cdma2000OneXMSI;
asn_struct_free_f S1AP_Cdma2000OneXMSI_free;
asn_struct_print_f S1AP_Cdma2000OneXMSI_print;
asn_constr_check_f S1AP_Cdma2000OneXMSI_constraint;
-jer_type_encoder_f S1AP_Cdma2000OneXMSI_encode_jer;
per_type_decoder_f S1AP_Cdma2000OneXMSI_decode_aper;
per_type_encoder_f S1AP_Cdma2000OneXMSI_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.c b/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.c
index a3b4e6e3c7..92fd700de9 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000OneXPilot.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.h b/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.h
index 5d56ed1dc6..2844e34636 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXPilot.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000OneXPilot_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Cdma2000OneXPilot;
asn_struct_free_f S1AP_Cdma2000OneXPilot_free;
asn_struct_print_f S1AP_Cdma2000OneXPilot_print;
asn_constr_check_f S1AP_Cdma2000OneXPilot_constraint;
-jer_type_encoder_f S1AP_Cdma2000OneXPilot_encode_jer;
per_type_decoder_f S1AP_Cdma2000OneXPilot_decode_aper;
per_type_encoder_f S1AP_Cdma2000OneXPilot_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.c b/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.c
index 8909eb6fd1..9643173b60 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000OneXRAND.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.h b/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.h
index 4ef8679b76..1c737abb7b 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXRAND.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000OneXRAND_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Cdma2000OneXRAND;
asn_struct_free_f S1AP_Cdma2000OneXRAND_free;
asn_struct_print_f S1AP_Cdma2000OneXRAND_print;
asn_constr_check_f S1AP_Cdma2000OneXRAND_constraint;
-jer_type_encoder_f S1AP_Cdma2000OneXRAND_encode_jer;
per_type_decoder_f S1AP_Cdma2000OneXRAND_decode_aper;
per_type_encoder_f S1AP_Cdma2000OneXRAND_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.c b/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.c
index 07291ffba9..87b2768f03 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000OneXSRVCCInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.h b/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.h
index a6aebc3163..7a476b22d6 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000OneXSRVCCInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000OneXSRVCCInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000PDU.c b/lib/asn1c/s1ap/S1AP_Cdma2000PDU.c
index ea251e8717..b2a08ebd82 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000PDU.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000PDU.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000PDU.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000PDU.h b/lib/asn1c/s1ap/S1AP_Cdma2000PDU.h
index d2296fc599..61dbef851b 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000PDU.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000PDU.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000PDU_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Cdma2000PDU;
asn_struct_free_f S1AP_Cdma2000PDU_free;
asn_struct_print_f S1AP_Cdma2000PDU_print;
asn_constr_check_f S1AP_Cdma2000PDU_constraint;
-jer_type_encoder_f S1AP_Cdma2000PDU_encode_jer;
per_type_decoder_f S1AP_Cdma2000PDU_decode_aper;
per_type_encoder_f S1AP_Cdma2000PDU_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000RATType.c b/lib/asn1c/s1ap/S1AP_Cdma2000RATType.c
index 6e651a5003..0eae57fbe6 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000RATType.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000RATType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000RATType.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000RATType.h b/lib/asn1c/s1ap/S1AP_Cdma2000RATType.h
index e0312c700c..0b63338362 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000RATType.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000RATType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000RATType_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Cdma2000RATType_specs_1;
asn_struct_free_f S1AP_Cdma2000RATType_free;
asn_struct_print_f S1AP_Cdma2000RATType_print;
asn_constr_check_f S1AP_Cdma2000RATType_constraint;
-jer_type_encoder_f S1AP_Cdma2000RATType_encode_jer;
per_type_decoder_f S1AP_Cdma2000RATType_decode_aper;
per_type_encoder_f S1AP_Cdma2000RATType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.c b/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.c
index 6bf25a8416..6591029f71 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.c
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cdma2000SectorID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.h b/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.h
index 5cee603575..c13a9b6184 100644
--- a/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.h
+++ b/lib/asn1c/s1ap/S1AP_Cdma2000SectorID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cdma2000SectorID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Cdma2000SectorID;
asn_struct_free_f S1AP_Cdma2000SectorID_free;
asn_struct_print_f S1AP_Cdma2000SectorID_print;
asn_constr_check_f S1AP_Cdma2000SectorID_constraint;
-jer_type_encoder_f S1AP_Cdma2000SectorID_encode_jer;
per_type_decoder_f S1AP_Cdma2000SectorID_decode_aper;
per_type_encoder_f S1AP_Cdma2000SectorID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Cell-Size.c b/lib/asn1c/s1ap/S1AP_Cell-Size.c
index ae61e13770..9d5ab389a0 100644
--- a/lib/asn1c/s1ap/S1AP_Cell-Size.c
+++ b/lib/asn1c/s1ap/S1AP_Cell-Size.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Cell-Size.h"
diff --git a/lib/asn1c/s1ap/S1AP_Cell-Size.h b/lib/asn1c/s1ap/S1AP_Cell-Size.h
index 788519c7a5..72edeab358 100644
--- a/lib/asn1c/s1ap/S1AP_Cell-Size.h
+++ b/lib/asn1c/s1ap/S1AP_Cell-Size.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Cell_Size_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Cell_Size_specs_1;
asn_struct_free_f S1AP_Cell_Size_free;
asn_struct_print_f S1AP_Cell_Size_print;
asn_constr_check_f S1AP_Cell_Size_constraint;
-jer_type_encoder_f S1AP_Cell_Size_encode_jer;
per_type_decoder_f S1AP_Cell_Size_decode_aper;
per_type_encoder_f S1AP_Cell_Size_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CellAccessMode.c b/lib/asn1c/s1ap/S1AP_CellAccessMode.c
index bb9a49bbed..d33341d03d 100644
--- a/lib/asn1c/s1ap/S1AP_CellAccessMode.c
+++ b/lib/asn1c/s1ap/S1AP_CellAccessMode.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellAccessMode.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellAccessMode.h b/lib/asn1c/s1ap/S1AP_CellAccessMode.h
index 6e2462f7b0..a07166a1fe 100644
--- a/lib/asn1c/s1ap/S1AP_CellAccessMode.h
+++ b/lib/asn1c/s1ap/S1AP_CellAccessMode.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellAccessMode_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_CellAccessMode_specs_1;
asn_struct_free_f S1AP_CellAccessMode_free;
asn_struct_print_f S1AP_CellAccessMode_print;
asn_constr_check_f S1AP_CellAccessMode_constraint;
-jer_type_encoder_f S1AP_CellAccessMode_encode_jer;
per_type_decoder_f S1AP_CellAccessMode_decode_aper;
per_type_encoder_f S1AP_CellAccessMode_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CellBasedMDT.c b/lib/asn1c/s1ap/S1AP_CellBasedMDT.c
index 0ba48de4e7..30abbc79b5 100644
--- a/lib/asn1c/s1ap/S1AP_CellBasedMDT.c
+++ b/lib/asn1c/s1ap/S1AP_CellBasedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellBasedMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellBasedMDT.h b/lib/asn1c/s1ap/S1AP_CellBasedMDT.h
index 7cacd190aa..82bbd1df4c 100644
--- a/lib/asn1c/s1ap/S1AP_CellBasedMDT.h
+++ b/lib/asn1c/s1ap/S1AP_CellBasedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellBasedMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellBasedQMC.c b/lib/asn1c/s1ap/S1AP_CellBasedQMC.c
index fce709d8a8..8a5bc0eff4 100644
--- a/lib/asn1c/s1ap/S1AP_CellBasedQMC.c
+++ b/lib/asn1c/s1ap/S1AP_CellBasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellBasedQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellBasedQMC.h b/lib/asn1c/s1ap/S1AP_CellBasedQMC.h
index 459f4b4572..c66b569277 100644
--- a/lib/asn1c/s1ap/S1AP_CellBasedQMC.h
+++ b/lib/asn1c/s1ap/S1AP_CellBasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellBasedQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.c b/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.c
index 4a68d1640a..583a8e7163 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellID-Broadcast-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.h b/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.h
index 8f468664c9..7536c12e14 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CellID-Broadcast-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellID_Broadcast_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Broadcast.c b/lib/asn1c/s1ap/S1AP_CellID-Broadcast.c
index 80f506d6c5..fb7867cb43 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Broadcast.c
+++ b/lib/asn1c/s1ap/S1AP_CellID-Broadcast.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellID-Broadcast.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Broadcast.h b/lib/asn1c/s1ap/S1AP_CellID-Broadcast.h
index 1b39ba6486..02e9e3cbf0 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Broadcast.h
+++ b/lib/asn1c/s1ap/S1AP_CellID-Broadcast.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellID_Broadcast_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.c b/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.c
index 0449f61d45..428bdea629 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellID-Cancelled-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.h b/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.h
index 62950dcd20..2177571ec0 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CellID-Cancelled-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellID_Cancelled_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Cancelled.c b/lib/asn1c/s1ap/S1AP_CellID-Cancelled.c
index 2162cacdd8..34bee35b0d 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Cancelled.c
+++ b/lib/asn1c/s1ap/S1AP_CellID-Cancelled.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellID-Cancelled.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellID-Cancelled.h b/lib/asn1c/s1ap/S1AP_CellID-Cancelled.h
index d7e727de13..7de1f26ac4 100644
--- a/lib/asn1c/s1ap/S1AP_CellID-Cancelled.h
+++ b/lib/asn1c/s1ap/S1AP_CellID-Cancelled.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellID_Cancelled_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellIdListforMDT.c b/lib/asn1c/s1ap/S1AP_CellIdListforMDT.c
index c478373c9e..3e09b44bfd 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdListforMDT.c
+++ b/lib/asn1c/s1ap/S1AP_CellIdListforMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellIdListforMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellIdListforMDT.h b/lib/asn1c/s1ap/S1AP_CellIdListforMDT.h
index 86bb024c8f..99bf2895e2 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdListforMDT.h
+++ b/lib/asn1c/s1ap/S1AP_CellIdListforMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellIdListforMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellIdListforQMC.c b/lib/asn1c/s1ap/S1AP_CellIdListforQMC.c
index 2c841b8c00..db9dfbfa5a 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdListforQMC.c
+++ b/lib/asn1c/s1ap/S1AP_CellIdListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellIdListforQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellIdListforQMC.h b/lib/asn1c/s1ap/S1AP_CellIdListforQMC.h
index 08e6964df1..780bdaacb9 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdListforQMC.h
+++ b/lib/asn1c/s1ap/S1AP_CellIdListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellIdListforQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.c b/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.c
index 3f1aaa1ed0..7954975e60 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.c
+++ b/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellIdentifierAndCELevelForCECapableUEs.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.h b/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.h
index e5963d7e32..6f682bc66e 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.h
+++ b/lib/asn1c/s1ap/S1AP_CellIdentifierAndCELevelForCECapableUEs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellIdentifierAndCELevelForCECapableUEs_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellIdentity.c b/lib/asn1c/s1ap/S1AP_CellIdentity.c
index 6c5a78f7c0..8413817cb5 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdentity.c
+++ b/lib/asn1c/s1ap/S1AP_CellIdentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellIdentity.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellIdentity.h b/lib/asn1c/s1ap/S1AP_CellIdentity.h
index b92cf93eda..ef98e32c31 100644
--- a/lib/asn1c/s1ap/S1AP_CellIdentity.h
+++ b/lib/asn1c/s1ap/S1AP_CellIdentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellIdentity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_CellIdentity;
asn_struct_free_f S1AP_CellIdentity_free;
asn_struct_print_f S1AP_CellIdentity_print;
asn_constr_check_f S1AP_CellIdentity_constraint;
-jer_type_encoder_f S1AP_CellIdentity_encode_jer;
per_type_decoder_f S1AP_CellIdentity_decode_aper;
per_type_encoder_f S1AP_CellIdentity_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CellTrafficTrace.c b/lib/asn1c/s1ap/S1AP_CellTrafficTrace.c
index c423495f84..2c1bdfe998 100644
--- a/lib/asn1c/s1ap/S1AP_CellTrafficTrace.c
+++ b/lib/asn1c/s1ap/S1AP_CellTrafficTrace.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellTrafficTrace.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellTrafficTrace.h b/lib/asn1c/s1ap/S1AP_CellTrafficTrace.h
index 8f9fc4a024..9b508e519a 100644
--- a/lib/asn1c/s1ap/S1AP_CellTrafficTrace.h
+++ b/lib/asn1c/s1ap/S1AP_CellTrafficTrace.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellTrafficTrace_H_
diff --git a/lib/asn1c/s1ap/S1AP_CellType.c b/lib/asn1c/s1ap/S1AP_CellType.c
index fc11c83404..c3ffb2de41 100644
--- a/lib/asn1c/s1ap/S1AP_CellType.c
+++ b/lib/asn1c/s1ap/S1AP_CellType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CellType.h"
diff --git a/lib/asn1c/s1ap/S1AP_CellType.h b/lib/asn1c/s1ap/S1AP_CellType.h
index e8fe27f43e..fc6376b3ed 100644
--- a/lib/asn1c/s1ap/S1AP_CellType.h
+++ b/lib/asn1c/s1ap/S1AP_CellType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CellType_H_
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.c b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.c
index 1bf2ff7667..9f04080ec8 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CompletedCellinEAI-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.h b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.h
index ba550549d8..4abd0e86d7 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CompletedCellinEAI_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.c b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.c
index 22e7bb542e..a9d69b3b11 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.c
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CompletedCellinEAI.h"
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.h b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.h
index d29f3abaf6..0f6a21cf78 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.h
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinEAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CompletedCellinEAI_H_
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.c b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.c
index af89828d57..ed334c614c 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CompletedCellinTAI-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.h b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.h
index 7e85d2ff5c..d3ee118665 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CompletedCellinTAI_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.c b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.c
index fb5cd4ad96..af6d1ae57a 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.c
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CompletedCellinTAI.h"
diff --git a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.h b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.h
index 6ac355ace1..37730c6c73 100644
--- a/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.h
+++ b/lib/asn1c/s1ap/S1AP_CompletedCellinTAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CompletedCellinTAI_H_
diff --git a/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.c b/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.c
index 82518af94b..dcc3694bdd 100644
--- a/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ConcurrentWarningMessageIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.h b/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.h
index 1c81fc71c5..5d04b6d3e0 100644
--- a/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_ConcurrentWarningMessageIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ConcurrentWarningMessageIndicator_H_
@@ -33,7 +33,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ConcurrentWarningMessageIndica
asn_struct_free_f S1AP_ConcurrentWarningMessageIndicator_free;
asn_struct_print_f S1AP_ConcurrentWarningMessageIndicator_print;
asn_constr_check_f S1AP_ConcurrentWarningMessageIndicator_constraint;
-jer_type_encoder_f S1AP_ConcurrentWarningMessageIndicator_encode_jer;
per_type_decoder_f S1AP_ConcurrentWarningMessageIndicator_decode_aper;
per_type_encoder_f S1AP_ConcurrentWarningMessageIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.c b/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.c
index b4fbe39297..348d3027e0 100644
--- a/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.c
+++ b/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ConnectedengNBItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.h b/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.h
index 5948518dca..047722f187 100644
--- a/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.h
+++ b/lib/asn1c/s1ap/S1AP_ConnectedengNBItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ConnectedengNBItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_ConnectedengNBList.c b/lib/asn1c/s1ap/S1AP_ConnectedengNBList.c
index 15d20d0b59..636f665f7b 100644
--- a/lib/asn1c/s1ap/S1AP_ConnectedengNBList.c
+++ b/lib/asn1c/s1ap/S1AP_ConnectedengNBList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ConnectedengNBList.h"
diff --git a/lib/asn1c/s1ap/S1AP_ConnectedengNBList.h b/lib/asn1c/s1ap/S1AP_ConnectedengNBList.h
index e4596ad932..bf0118ae9f 100644
--- a/lib/asn1c/s1ap/S1AP_ConnectedengNBList.h
+++ b/lib/asn1c/s1ap/S1AP_ConnectedengNBList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ConnectedengNBList_H_
diff --git a/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.c b/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.c
index 5bca297663..bb8ea84fe3 100644
--- a/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.c
+++ b/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ConnectionEstablishmentIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.h b/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.h
index 78044c02fd..5cf0574143 100644
--- a/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.h
+++ b/lib/asn1c/s1ap/S1AP_ConnectionEstablishmentIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ConnectionEstablishmentIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_ContextatSource.c b/lib/asn1c/s1ap/S1AP_ContextatSource.c
index f71d6319c5..24482d6fb2 100644
--- a/lib/asn1c/s1ap/S1AP_ContextatSource.c
+++ b/lib/asn1c/s1ap/S1AP_ContextatSource.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ContextatSource.h"
diff --git a/lib/asn1c/s1ap/S1AP_ContextatSource.h b/lib/asn1c/s1ap/S1AP_ContextatSource.h
index 209543f6f8..7699635935 100644
--- a/lib/asn1c/s1ap/S1AP_ContextatSource.h
+++ b/lib/asn1c/s1ap/S1AP_ContextatSource.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ContextatSource_H_
diff --git a/lib/asn1c/s1ap/S1AP_Correlation-ID.c b/lib/asn1c/s1ap/S1AP_Correlation-ID.c
index ce43d7a508..21b1db9f36 100644
--- a/lib/asn1c/s1ap/S1AP_Correlation-ID.c
+++ b/lib/asn1c/s1ap/S1AP_Correlation-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Correlation-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Correlation-ID.h b/lib/asn1c/s1ap/S1AP_Correlation-ID.h
index 1a246e040a..adeb3e23dd 100644
--- a/lib/asn1c/s1ap/S1AP_Correlation-ID.h
+++ b/lib/asn1c/s1ap/S1AP_Correlation-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Correlation_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Correlation_ID;
asn_struct_free_f S1AP_Correlation_ID_free;
asn_struct_print_f S1AP_Correlation_ID_print;
asn_constr_check_f S1AP_Correlation_ID_constraint;
-jer_type_encoder_f S1AP_Correlation_ID_encode_jer;
per_type_decoder_f S1AP_Correlation_ID_decode_aper;
per_type_encoder_f S1AP_Correlation_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Coverage-Level.c b/lib/asn1c/s1ap/S1AP_Coverage-Level.c
index 09709d7068..9b1876dc69 100644
--- a/lib/asn1c/s1ap/S1AP_Coverage-Level.c
+++ b/lib/asn1c/s1ap/S1AP_Coverage-Level.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Coverage-Level.h"
diff --git a/lib/asn1c/s1ap/S1AP_Coverage-Level.h b/lib/asn1c/s1ap/S1AP_Coverage-Level.h
index e04cda9ec1..c1dba5ac6b 100644
--- a/lib/asn1c/s1ap/S1AP_Coverage-Level.h
+++ b/lib/asn1c/s1ap/S1AP_Coverage-Level.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Coverage_Level_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Coverage_Level_specs_1;
asn_struct_free_f S1AP_Coverage_Level_free;
asn_struct_print_f S1AP_Coverage_Level_print;
asn_constr_check_f S1AP_Coverage_Level_constraint;
-jer_type_encoder_f S1AP_Coverage_Level_encode_jer;
per_type_decoder_f S1AP_Coverage_Level_decode_aper;
per_type_encoder_f S1AP_Coverage_Level_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Criticality.c b/lib/asn1c/s1ap/S1AP_Criticality.c
index 1f1214fcaa..5606775138 100644
--- a/lib/asn1c/s1ap/S1AP_Criticality.c
+++ b/lib/asn1c/s1ap/S1AP_Criticality.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Criticality.h"
diff --git a/lib/asn1c/s1ap/S1AP_Criticality.h b/lib/asn1c/s1ap/S1AP_Criticality.h
index 736a2e5d62..13868cefc5 100644
--- a/lib/asn1c/s1ap/S1AP_Criticality.h
+++ b/lib/asn1c/s1ap/S1AP_Criticality.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Criticality_H_
@@ -35,7 +35,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Criticality_specs_1;
asn_struct_free_f S1AP_Criticality_free;
asn_struct_print_f S1AP_Criticality_print;
asn_constr_check_f S1AP_Criticality_constraint;
-jer_type_encoder_f S1AP_Criticality_encode_jer;
per_type_decoder_f S1AP_Criticality_decode_aper;
per_type_encoder_f S1AP_Criticality_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.c b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.c
index 8497891a34..d4008465ef 100644
--- a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.c
+++ b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CriticalityDiagnostics-IE-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.h b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.h
index 7f8a552745..c4a491f2ac 100644
--- a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.h
+++ b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CriticalityDiagnostics_IE_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.c b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.c
index b5823496e2..59d3443734 100644
--- a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.c
+++ b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CriticalityDiagnostics-IE-List.h"
diff --git a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.h b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.h
index 33e94a1b9f..b182929bd8 100644
--- a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.h
+++ b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics-IE-List.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CriticalityDiagnostics_IE_List_H_
diff --git a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.c b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.c
index 557b8c1329..c73427769e 100644
--- a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.c
+++ b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_CriticalityDiagnostics.h"
diff --git a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.h b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.h
index edab0e172b..1e797e6f5c 100644
--- a/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.h
+++ b/lib/asn1c/s1ap/S1AP_CriticalityDiagnostics.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_CriticalityDiagnostics_H_
diff --git a/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.c b/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.c
index a5bb3f4136..cc136b0dbd 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.c
+++ b/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DAPSRequestInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.h b/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.h
index 031badd0f6..111ddde10c 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.h
+++ b/lib/asn1c/s1ap/S1AP_DAPSRequestInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DAPSRequestInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.c b/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.c
index ca69c89648..abf71891a8 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.c
+++ b/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DAPSResponseInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.h b/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.h
index 36cc2423fa..f7b9c63c97 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.h
+++ b/lib/asn1c/s1ap/S1AP_DAPSResponseInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DAPSResponseInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.c b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.c
index 3622add358..671150effd 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.c
+++ b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DAPSResponseInfoItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.h b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.h
index bb8f0eb4d5..cf27e43b0e 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.h
+++ b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DAPSResponseInfoItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.c b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.c
index af89b368be..6c753e8f9d 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.c
+++ b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DAPSResponseInfoList.h"
diff --git a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.h b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.h
index 83f967f7a7..fe522244a9 100644
--- a/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.h
+++ b/lib/asn1c/s1ap/S1AP_DAPSResponseInfoList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DAPSResponseInfoList_H_
diff --git a/lib/asn1c/s1ap/S1AP_DCN-ID.c b/lib/asn1c/s1ap/S1AP_DCN-ID.c
index ad3d19c27d..fb8712a93d 100644
--- a/lib/asn1c/s1ap/S1AP_DCN-ID.c
+++ b/lib/asn1c/s1ap/S1AP_DCN-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DCN-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_DCN-ID.h b/lib/asn1c/s1ap/S1AP_DCN-ID.h
index 1055209549..8a219e5f77 100644
--- a/lib/asn1c/s1ap/S1AP_DCN-ID.h
+++ b/lib/asn1c/s1ap/S1AP_DCN-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DCN_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_DCN_ID;
asn_struct_free_f S1AP_DCN_ID_free;
asn_struct_print_f S1AP_DCN_ID_print;
asn_constr_check_f S1AP_DCN_ID_constraint;
-jer_type_encoder_f S1AP_DCN_ID_encode_jer;
per_type_decoder_f S1AP_DCN_ID_decode_aper;
per_type_encoder_f S1AP_DCN_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.c b/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.c
index 06555d15b4..d97c9a0eb1 100644
--- a/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.c
+++ b/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DL-CP-SecurityInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.h b/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.h
index 2ee9e999d5..8a7e5c142c 100644
--- a/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.h
+++ b/lib/asn1c/s1ap/S1AP_DL-CP-SecurityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DL_CP_SecurityInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_DL-Forwarding.c b/lib/asn1c/s1ap/S1AP_DL-Forwarding.c
index 396468d072..cef6e0f8dd 100644
--- a/lib/asn1c/s1ap/S1AP_DL-Forwarding.c
+++ b/lib/asn1c/s1ap/S1AP_DL-Forwarding.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DL-Forwarding.h"
diff --git a/lib/asn1c/s1ap/S1AP_DL-Forwarding.h b/lib/asn1c/s1ap/S1AP_DL-Forwarding.h
index 3e185371cb..a625220861 100644
--- a/lib/asn1c/s1ap/S1AP_DL-Forwarding.h
+++ b/lib/asn1c/s1ap/S1AP_DL-Forwarding.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DL_Forwarding_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_DL_Forwarding_specs_1;
asn_struct_free_f S1AP_DL_Forwarding_free;
asn_struct_print_f S1AP_DL_Forwarding_print;
asn_constr_check_f S1AP_DL_Forwarding_constraint;
-jer_type_encoder_f S1AP_DL_Forwarding_encode_jer;
per_type_decoder_f S1AP_DL_Forwarding_decode_aper;
per_type_encoder_f S1AP_DL_Forwarding_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.c b/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.c
index c3f4d5aa25..cfa47a9190 100644
--- a/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.c
+++ b/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DL-NAS-MAC.h"
diff --git a/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.h b/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.h
index de8d02222b..d39b223ee1 100644
--- a/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.h
+++ b/lib/asn1c/s1ap/S1AP_DL-NAS-MAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DL_NAS_MAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_DL_NAS_MAC;
asn_struct_free_f S1AP_DL_NAS_MAC_free;
asn_struct_print_f S1AP_DL_NAS_MAC_print;
asn_constr_check_f S1AP_DL_NAS_MAC_constraint;
-jer_type_encoder_f S1AP_DL_NAS_MAC_encode_jer;
per_type_decoder_f S1AP_DL_NAS_MAC_decode_aper;
per_type_encoder_f S1AP_DL_NAS_MAC_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.c b/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.c
index af334b57d1..64bd0d9f51 100644
--- a/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.c
+++ b/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DLCOUNT-PDCP-SNlength.h"
diff --git a/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.h b/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.h
index bdac9640a7..e7a4540c64 100644
--- a/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.h
+++ b/lib/asn1c/s1ap/S1AP_DLCOUNT-PDCP-SNlength.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DLCOUNT_PDCP_SNlength_H_
diff --git a/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.c b/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.c
index 9dd705ea8d..3e16b77fd7 100644
--- a/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.c
+++ b/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DLNASPDUDeliveryAckRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.h b/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.h
index 94c7a2c0b0..9ddeb1697d 100644
--- a/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.h
+++ b/lib/asn1c/s1ap/S1AP_DLNASPDUDeliveryAckRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DLNASPDUDeliveryAckRequest_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_DLNASPDUDeliveryAckRequest_spe
asn_struct_free_f S1AP_DLNASPDUDeliveryAckRequest_free;
asn_struct_print_f S1AP_DLNASPDUDeliveryAckRequest_print;
asn_constr_check_f S1AP_DLNASPDUDeliveryAckRequest_constraint;
-jer_type_encoder_f S1AP_DLNASPDUDeliveryAckRequest_encode_jer;
per_type_decoder_f S1AP_DLNASPDUDeliveryAckRequest_decode_aper;
per_type_encoder_f S1AP_DLNASPDUDeliveryAckRequest_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.c b/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.c
index 95f6bbfc71..92e55bc5a9 100644
--- a/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.c
+++ b/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Data-Forwarding-Not-Possible.h"
diff --git a/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.h b/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.h
index b1dc7986be..a9a2b4b4f1 100644
--- a/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.h
+++ b/lib/asn1c/s1ap/S1AP_Data-Forwarding-Not-Possible.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Data_Forwarding_Not_Possible_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Data_Forwarding_Not_Possible_s
asn_struct_free_f S1AP_Data_Forwarding_Not_Possible_free;
asn_struct_print_f S1AP_Data_Forwarding_Not_Possible_print;
asn_constr_check_f S1AP_Data_Forwarding_Not_Possible_constraint;
-jer_type_encoder_f S1AP_Data_Forwarding_Not_Possible_encode_jer;
per_type_decoder_f S1AP_Data_Forwarding_Not_Possible_decode_aper;
per_type_encoder_f S1AP_Data_Forwarding_Not_Possible_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_DataCodingScheme.c b/lib/asn1c/s1ap/S1AP_DataCodingScheme.c
index d2217a621a..acfc0ad574 100644
--- a/lib/asn1c/s1ap/S1AP_DataCodingScheme.c
+++ b/lib/asn1c/s1ap/S1AP_DataCodingScheme.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DataCodingScheme.h"
diff --git a/lib/asn1c/s1ap/S1AP_DataCodingScheme.h b/lib/asn1c/s1ap/S1AP_DataCodingScheme.h
index 2c7e09d98f..97746584ba 100644
--- a/lib/asn1c/s1ap/S1AP_DataCodingScheme.h
+++ b/lib/asn1c/s1ap/S1AP_DataCodingScheme.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DataCodingScheme_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_DataCodingScheme;
asn_struct_free_f S1AP_DataCodingScheme_free;
asn_struct_print_f S1AP_DataCodingScheme_print;
asn_constr_check_f S1AP_DataCodingScheme_constraint;
-jer_type_encoder_f S1AP_DataCodingScheme_encode_jer;
per_type_decoder_f S1AP_DataCodingScheme_decode_aper;
per_type_encoder_f S1AP_DataCodingScheme_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_DataSize.c b/lib/asn1c/s1ap/S1AP_DataSize.c
index cff068aeaf..153b5ad711 100644
--- a/lib/asn1c/s1ap/S1AP_DataSize.c
+++ b/lib/asn1c/s1ap/S1AP_DataSize.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DataSize.h"
diff --git a/lib/asn1c/s1ap/S1AP_DataSize.h b/lib/asn1c/s1ap/S1AP_DataSize.h
index 89ef779638..839d170aac 100644
--- a/lib/asn1c/s1ap/S1AP_DataSize.h
+++ b/lib/asn1c/s1ap/S1AP_DataSize.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DataSize_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_DataSize;
asn_struct_free_f S1AP_DataSize_free;
asn_struct_print_f S1AP_DataSize_print;
asn_constr_check_f S1AP_DataSize_constraint;
-jer_type_encoder_f S1AP_DataSize_encode_jer;
per_type_decoder_f S1AP_DataSize_decode_aper;
per_type_encoder_f S1AP_DataSize_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_DeactivateTrace.c b/lib/asn1c/s1ap/S1AP_DeactivateTrace.c
index 243b3881ee..e021faa93a 100644
--- a/lib/asn1c/s1ap/S1AP_DeactivateTrace.c
+++ b/lib/asn1c/s1ap/S1AP_DeactivateTrace.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DeactivateTrace.h"
diff --git a/lib/asn1c/s1ap/S1AP_DeactivateTrace.h b/lib/asn1c/s1ap/S1AP_DeactivateTrace.h
index 84942dd609..06f44f36fd 100644
--- a/lib/asn1c/s1ap/S1AP_DeactivateTrace.h
+++ b/lib/asn1c/s1ap/S1AP_DeactivateTrace.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DeactivateTrace_H_
diff --git a/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.c b/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.c
index 49a5ccfb19..b5834bcc6b 100644
--- a/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.c
+++ b/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Direct-Forwarding-Path-Availability.h"
diff --git a/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.h b/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.h
index 25329ddcc0..d9d0b0f0b2 100644
--- a/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.h
+++ b/lib/asn1c/s1ap/S1AP_Direct-Forwarding-Path-Availability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Direct_Forwarding_Path_Availability_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Direct_Forwarding_Path_Availab
asn_struct_free_f S1AP_Direct_Forwarding_Path_Availability_free;
asn_struct_print_f S1AP_Direct_Forwarding_Path_Availability_print;
asn_constr_check_f S1AP_Direct_Forwarding_Path_Availability_constraint;
-jer_type_encoder_f S1AP_Direct_Forwarding_Path_Availability_encode_jer;
per_type_decoder_f S1AP_Direct_Forwarding_Path_Availability_decode_aper;
per_type_encoder_f S1AP_Direct_Forwarding_Path_Availability_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.c b/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.c
index 4381fa8e89..3dcce924bf 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.c
+++ b/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DownlinkNASTransport.h"
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.h b/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.h
index bb0618deb9..f6620f9f73 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.h
+++ b/lib/asn1c/s1ap/S1AP_DownlinkNASTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DownlinkNASTransport_H_
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.c b/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.c
index e6a022fef8..3bcb63ffb5 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.c
+++ b/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DownlinkNonUEAssociatedLPPaTransport.h"
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.h b/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.h
index c5a5f8d41c..6e9c5088e3 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.h
+++ b/lib/asn1c/s1ap/S1AP_DownlinkNonUEAssociatedLPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DownlinkNonUEAssociatedLPPaTransport_H_
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.c b/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.c
index 3b10672b50..abc3ad5398 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.c
+++ b/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DownlinkS1cdma2000tunnelling.h"
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.h b/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.h
index 18a59e3e45..7d255e81be 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.h
+++ b/lib/asn1c/s1ap/S1AP_DownlinkS1cdma2000tunnelling.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DownlinkS1cdma2000tunnelling_H_
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.c b/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.c
index 0e4ef8b1e3..c43828d60d 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.c
+++ b/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_DownlinkUEAssociatedLPPaTransport.h"
diff --git a/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.h b/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.h
index d3c60e4570..482544c402 100644
--- a/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.h
+++ b/lib/asn1c/s1ap/S1AP_DownlinkUEAssociatedLPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_DownlinkUEAssociatedLPPaTransport_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RAB-ID.c b/lib/asn1c/s1ap/S1AP_E-RAB-ID.c
index 0e97414d42..13950ab396 100644
--- a/lib/asn1c/s1ap/S1AP_E-RAB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_E-RAB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RAB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RAB-ID.h b/lib/asn1c/s1ap/S1AP_E-RAB-ID.h
index 0f0b3104a8..971e5b9d46 100644
--- a/lib/asn1c/s1ap/S1AP_E-RAB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_E-RAB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RAB_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_ID;
asn_struct_free_f S1AP_E_RAB_ID_free;
asn_struct_print_f S1AP_E_RAB_ID_print;
asn_constr_check_f S1AP_E_RAB_ID_constraint;
-jer_type_encoder_f S1AP_E_RAB_ID_encode_jer;
per_type_decoder_f S1AP_E_RAB_ID_decode_aper;
per_type_encoder_f S1AP_E_RAB_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.c b/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.c
index 184d133212..bb19f6c891 100644
--- a/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RAB-IE-ContainerList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.h b/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.h
index 57a6b6257e..2ee9d60208 100644
--- a/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RAB_IE_ContainerList_H_
@@ -37,7 +37,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P0;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P0_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P0_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P0_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P0_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P0_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P0_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P1_constr_2;
@@ -45,7 +44,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P1;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P1_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P1_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P1_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P1_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P1_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P1_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P2_constr_3;
@@ -53,7 +51,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P2;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P2_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P2_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P2_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P2_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P2_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P2_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P3_constr_4;
@@ -61,7 +58,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P3;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P3_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P3_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P3_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P3_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P3_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P3_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P4_constr_5;
@@ -69,7 +65,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P4;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P4_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P4_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P4_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P4_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P4_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P4_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P5_constr_6;
@@ -77,7 +72,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P5;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P5_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P5_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P5_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P5_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P5_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P5_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P6_constr_7;
@@ -85,7 +79,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P6;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P6_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P6_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P6_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P6_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P6_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P6_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P7_constr_8;
@@ -93,7 +86,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P7;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P7_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P7_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P7_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P7_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P7_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P7_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P8_constr_9;
@@ -101,7 +93,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P8;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P8_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P8_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P8_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P8_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P8_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P8_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P9_constr_10;
@@ -109,7 +100,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P9;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P9_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P9_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P9_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P9_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P9_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P9_encode_aper;
extern asn_per_constraints_t asn_PER_type_S1AP_E_RAB_IE_ContainerList_1280P10_constr_11;
@@ -117,7 +107,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RAB_IE_ContainerList_1280P10;
asn_struct_free_f S1AP_E_RAB_IE_ContainerList_1280P10_free;
asn_struct_print_f S1AP_E_RAB_IE_ContainerList_1280P10_print;
asn_constr_check_f S1AP_E_RAB_IE_ContainerList_1280P10_constraint;
-jer_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P10_encode_jer;
per_type_decoder_f S1AP_E_RAB_IE_ContainerList_1280P10_decode_aper;
per_type_encoder_f S1AP_E_RAB_IE_ContainerList_1280P10_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerPairList.h b/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerPairList.h
index fda2da6ae4..a2a7284289 100644
--- a/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerPairList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RAB-IE-ContainerPairList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RAB_IE_ContainerPairList_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.c b/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.c
index bb351bab2a..ae5099ee87 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABAdmittedItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.h b/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.h
index 8f1a39c4da..622b6dd0a1 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABAdmittedItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABAdmittedItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.c b/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.c
index 37ba8c589a..a44c1fc268 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABAdmittedList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.h b/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.h
index 165af97e9e..7f3be3683a 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABAdmittedList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABAdmittedList_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABAdmittedList;
asn_struct_free_f S1AP_E_RABAdmittedList_free;
asn_struct_print_f S1AP_E_RABAdmittedList_print;
asn_constr_check_f S1AP_E_RABAdmittedList_constraint;
-jer_type_encoder_f S1AP_E_RABAdmittedList_encode_jer;
per_type_decoder_f S1AP_E_RABAdmittedList_decode_aper;
per_type_encoder_f S1AP_E_RABAdmittedList_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.c b/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.c
index 71bccdb30e..928b99b924 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABDataForwardingItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.h b/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.h
index 2c2ca71891..5cd76b4637 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABDataForwardingItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABDataForwardingItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.c b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.c
index 3e536ebed9..af21ca3fe1 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABFailedToResumeItemResumeReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.h b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.h
index ef1c34350f..440992e4c1 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABFailedToResumeItemResumeReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.c b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.c
index caa4687f94..665ec193a4 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABFailedToResumeItemResumeRes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.h b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.h
index f57f9166d3..c30be4245e 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeItemResumeRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABFailedToResumeItemResumeRes_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.c b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.c
index a12370813c..b6f515c84a 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABFailedToResumeListResumeReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.h b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.h
index 1b43c9a92c..6b2c09dfaa 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABFailedToResumeListResumeReq_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABFailedToResumeListResumeReq;
asn_struct_free_f S1AP_E_RABFailedToResumeListResumeReq_free;
asn_struct_print_f S1AP_E_RABFailedToResumeListResumeReq_print;
asn_constr_check_f S1AP_E_RABFailedToResumeListResumeReq_constraint;
-jer_type_encoder_f S1AP_E_RABFailedToResumeListResumeReq_encode_jer;
per_type_decoder_f S1AP_E_RABFailedToResumeListResumeReq_decode_aper;
per_type_encoder_f S1AP_E_RABFailedToResumeListResumeReq_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.c b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.c
index be0aa5b2ed..dd3d310be8 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABFailedToResumeListResumeRes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.h b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.h
index 6adcdc6b7f..8233b25060 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToResumeListResumeRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABFailedToResumeListResumeRes_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABFailedToResumeListResumeRes;
asn_struct_free_f S1AP_E_RABFailedToResumeListResumeRes_free;
asn_struct_print_f S1AP_E_RABFailedToResumeListResumeRes_print;
asn_constr_check_f S1AP_E_RABFailedToResumeListResumeRes_constraint;
-jer_type_encoder_f S1AP_E_RABFailedToResumeListResumeRes_encode_jer;
per_type_decoder_f S1AP_E_RABFailedToResumeListResumeRes_decode_aper;
per_type_encoder_f S1AP_E_RABFailedToResumeListResumeRes_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.c b/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.c
index e8a2f5ad68..adfeb94790 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABFailedToSetupItemHOReqAck.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.h b/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.h
index f9eb4d70bf..0500cbc695 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedToSetupItemHOReqAck.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABFailedToSetupItemHOReqAck_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.c b/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.c
index 015bab9d0d..5f2d2715c7 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABFailedtoSetupListHOReqAck.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.h b/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.h
index 9a486d16a1..ec74a78ad0 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABFailedtoSetupListHOReqAck.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABFailedtoSetupListHOReqAck_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABFailedtoSetupListHOReqAck;
asn_struct_free_f S1AP_E_RABFailedtoSetupListHOReqAck_free;
asn_struct_print_f S1AP_E_RABFailedtoSetupListHOReqAck_print;
asn_constr_check_f S1AP_E_RABFailedtoSetupListHOReqAck_constraint;
-jer_type_encoder_f S1AP_E_RABFailedtoSetupListHOReqAck_encode_jer;
per_type_decoder_f S1AP_E_RABFailedtoSetupListHOReqAck_decode_aper;
per_type_encoder_f S1AP_E_RABFailedtoSetupListHOReqAck_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABInformationList.c b/lib/asn1c/s1ap/S1AP_E-RABInformationList.c
index 6683d7db52..890c2adf4c 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABInformationList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABInformationList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABInformationList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABInformationList.h b/lib/asn1c/s1ap/S1AP_E-RABInformationList.h
index 8c66d9dfd2..0a757d748f 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABInformationList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABInformationList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABInformationList_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.c b/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.c
index 75169051a1..a76a9d12b0 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABInformationListItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.h b/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.h
index 418a4eeb8f..5a339d83b1 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABInformationListItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABInformationListItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABItem.c b/lib/asn1c/s1ap/S1AP_E-RABItem.c
index 7c9e80c2d0..2fa7f4b928 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABItem.h b/lib/asn1c/s1ap/S1AP_E-RABItem.h
index d74a8f19b6..f48161d835 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.c b/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.c
index 119254ee15..92305ff34b 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABLevelQoSParameters.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.h b/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.h
index 280bc1a34c..06683953ef 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABLevelQoSParameters.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABLevelQoSParameters_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABList.c b/lib/asn1c/s1ap/S1AP_E-RABList.c
index 64d1e648f9..85ffea4ab7 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABList.h b/lib/asn1c/s1ap/S1AP_E-RABList.h
index bbe352e664..de7ca61268 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABList_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.c b/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.c
index 5ddbc2a60a..099af26a83 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModificationConfirm.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.h b/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.h
index 4fd10ac3eb..45e0001ec5 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModificationConfirm.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModificationConfirm_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.c b/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.c
index a03b6733f4..47743f6cea 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModificationIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.h b/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.h
index 0a311ece08..244998b8c0 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModificationIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModificationIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.c b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.c
index d5cf4bb446..68b83c563b 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModifyItemBearerModConf.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.h b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.h
index 01e9d57060..f61ada3f22 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModConf.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModifyItemBearerModConf_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.c b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.c
index c96a8c587c..4811142fd6 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModifyItemBearerModRes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.h b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.h
index b5233caa1b..58d82fef1c 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyItemBearerModRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModifyItemBearerModRes_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.c b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.c
index 804b95ec60..b9fb6cac2c 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModifyListBearerModConf.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.h b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.h
index 9b02cd4ce9..b690beb23a 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModConf.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModifyListBearerModConf_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.c b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.c
index a353813134..7eb1059b21 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModifyListBearerModRes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.h b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.h
index 055e94d742..70b547bb7c 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyListBearerModRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModifyListBearerModRes_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.c b/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.c
index cb14e2eabe..c65d486357 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModifyRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.h b/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.h
index a943ff49a8..f45dcf6be8 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModifyRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.c b/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.c
index 175fedc7d7..4186a165bc 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABModifyResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.h b/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.h
index e20a65dc54..f5ab403b33 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABModifyResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABModifyResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.c b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.c
index 7d60518247..e26f7965be 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABNotToBeModifiedItemBearerModInd.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.h b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.h
index f4d3509f62..c231512d33 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedItemBearerModInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABNotToBeModifiedItemBearerModInd_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.c b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.c
index a85ef187c7..0a46d5962c 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABNotToBeModifiedListBearerModInd.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.h b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.h
index f71d2d5a23..294d54672e 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABNotToBeModifiedListBearerModInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABNotToBeModifiedListBearerModInd_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABNotToBeModifiedListBearerModInd;
asn_struct_free_f S1AP_E_RABNotToBeModifiedListBearerModInd_free;
asn_struct_print_f S1AP_E_RABNotToBeModifiedListBearerModInd_print;
asn_constr_check_f S1AP_E_RABNotToBeModifiedListBearerModInd_constraint;
-jer_type_encoder_f S1AP_E_RABNotToBeModifiedListBearerModInd_encode_jer;
per_type_decoder_f S1AP_E_RABNotToBeModifiedListBearerModInd_decode_aper;
per_type_encoder_f S1AP_E_RABNotToBeModifiedListBearerModInd_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.c b/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.c
index c718e3bb58..f788a652d8 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABReleaseCommand.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.h b/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.h
index 22626429dc..3fb1ecee44 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseCommand.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABReleaseCommand_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.c b/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.c
index 49a7d40a66..c68d2c6726 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABReleaseIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.h b/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.h
index 06873f707b..0432a35531 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABReleaseIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.c b/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.c
index f93c356483..869fc81265 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABReleaseItemBearerRelComp.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.h b/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.h
index 6db4bdb9b8..c24766313b 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseItemBearerRelComp.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABReleaseItemBearerRelComp_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.c b/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.c
index fb6315d472..bd92d6a62a 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABReleaseListBearerRelComp.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.h b/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.h
index f598478357..96369a7e36 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseListBearerRelComp.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABReleaseListBearerRelComp_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.c b/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.c
index d6a8c5fc9d..eab19447d6 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABReleaseResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.h b/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.h
index f30de6f803..1d77c56f02 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABReleaseResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABReleaseResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.c b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.c
index cbd0214a6e..81e2f21f71 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSecurityResultItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.h b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.h
index b90d01f655..84e67f2edf 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSecurityResultItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.c b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.c
index a9badb0d9e..a1900a079f 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSecurityResultList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.h b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.h
index 5dde38bb36..a396d268a8 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSecurityResultList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSecurityResultList_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.c b/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.c
index fc44bb7aa2..6442074bc7 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSetupItemBearerSURes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.h b/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.h
index 70c115ba70..10d05ac22f 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupItemBearerSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSetupItemBearerSURes_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.c b/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.c
index 26214d1098..112489b7b6 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSetupItemCtxtSURes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.h b/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.h
index 26763922b9..629f4eb66d 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupItemCtxtSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSetupItemCtxtSURes_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.c b/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.c
index f5384a5f48..45e9e5531f 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSetupListBearerSURes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.h b/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.h
index 802ef0282c..fa498419d8 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupListBearerSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSetupListBearerSURes_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.c b/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.c
index fba6218766..e99e8202fa 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSetupListCtxtSURes.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.h b/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.h
index 9c52046bfa..d3a02ed3f5 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupListCtxtSURes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSetupListCtxtSURes_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.c b/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.c
index 9088988943..b42962ca24 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSetupRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.h b/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.h
index 7107d97b0c..10346bc03f 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSetupRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.c b/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.c
index ce0bad11e5..9581dfcf0a 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSetupResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.h b/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.h
index 1270dc2e85..a1d93f7cc8 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSetupResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.c b/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.c
index 237afc06dd..825c220017 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABSubjecttoDataForwardingList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.h b/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.h
index 3ac86aa7db..cf90137294 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABSubjecttoDataForwardingList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABSubjecttoDataForwardingList_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABSubjecttoDataForwardingList;
asn_struct_free_f S1AP_E_RABSubjecttoDataForwardingList_free;
asn_struct_print_f S1AP_E_RABSubjecttoDataForwardingList_print;
asn_constr_check_f S1AP_E_RABSubjecttoDataForwardingList_constraint;
-jer_type_encoder_f S1AP_E_RABSubjecttoDataForwardingList_encode_jer;
per_type_decoder_f S1AP_E_RABSubjecttoDataForwardingList_decode_aper;
per_type_encoder_f S1AP_E_RABSubjecttoDataForwardingList_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.c b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.c
index 36bee778ed..87010f1e98 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeModifiedItemBearerModInd.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.h b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.h
index 1cf5d7b46c..83ec7b0db7 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeModifiedItemBearerModInd_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.c
index fb8bec5ae3..ca550ea45d 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeModifiedItemBearerModReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.h
index e6850f869a..d438341475 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedItemBearerModReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeModifiedItemBearerModReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.c b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.c
index 21881fca6e..a89bdcf03d 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeModifiedListBearerModInd.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.h b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.h
index 8e8db6ddf3..7764abe70b 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModInd.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeModifiedListBearerModInd_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABToBeModifiedListBearerModInd;
asn_struct_free_f S1AP_E_RABToBeModifiedListBearerModInd_free;
asn_struct_print_f S1AP_E_RABToBeModifiedListBearerModInd_print;
asn_constr_check_f S1AP_E_RABToBeModifiedListBearerModInd_constraint;
-jer_type_encoder_f S1AP_E_RABToBeModifiedListBearerModInd_encode_jer;
per_type_decoder_f S1AP_E_RABToBeModifiedListBearerModInd_decode_aper;
per_type_encoder_f S1AP_E_RABToBeModifiedListBearerModInd_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.c
index 2c0c2b8b21..d3704230a4 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeModifiedListBearerModReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.h
index d51b39569c..cf27b4c8ff 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeModifiedListBearerModReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeModifiedListBearerModReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.c
index 264c6b44f8..907fd5eb22 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSetupItemBearerSUReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.h
index cf99d974bb..c86d978e38 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemBearerSUReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSetupItemBearerSUReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.c
index 50802ee349..5ffa5cdd8f 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSetupItemCtxtSUReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.h
index 8e5ec76c73..0317da7577 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemCtxtSUReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSetupItemCtxtSUReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.c
index f60236ec02..7b7a54f72d 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSetupItemHOReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.h
index fdec2235af..a6eaf345c0 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupItemHOReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSetupItemHOReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.c
index 7004c16039..89b3c4cd7b 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSetupListBearerSUReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.h
index 048cb94f74..2c915d4509 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListBearerSUReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSetupListBearerSUReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.c
index 028e14b033..7ab9f18c39 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSetupListCtxtSUReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.h
index 54c981b3c9..0b93c684ab 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListCtxtSUReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSetupListCtxtSUReq_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.c
index 37f9d85339..04a4ec25b5 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSetupListHOReq.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.h
index f024173d9a..636dab93e1 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSetupListHOReq.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSetupListHOReq_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABToBeSetupListHOReq;
asn_struct_free_f S1AP_E_RABToBeSetupListHOReq_free;
asn_struct_print_f S1AP_E_RABToBeSetupListHOReq_print;
asn_constr_check_f S1AP_E_RABToBeSetupListHOReq_constraint;
-jer_type_encoder_f S1AP_E_RABToBeSetupListHOReq_encode_jer;
per_type_decoder_f S1AP_E_RABToBeSetupListHOReq_decode_aper;
per_type_encoder_f S1AP_E_RABToBeSetupListHOReq_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.c
index d93a5e55d8..ea8564ff5b 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSwitchedDLItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.h
index 6a0d8bfd10..57af7c3f11 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSwitchedDLItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.c
index 86f7c2a0ca..67ba4ce496 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSwitchedDLList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.h
index 6b2fd6c226..b29b6bb5ee 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedDLList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSwitchedDLList_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABToBeSwitchedDLList;
asn_struct_free_f S1AP_E_RABToBeSwitchedDLList_free;
asn_struct_print_f S1AP_E_RABToBeSwitchedDLList_print;
asn_constr_check_f S1AP_E_RABToBeSwitchedDLList_constraint;
-jer_type_encoder_f S1AP_E_RABToBeSwitchedDLList_encode_jer;
per_type_decoder_f S1AP_E_RABToBeSwitchedDLList_decode_aper;
per_type_encoder_f S1AP_E_RABToBeSwitchedDLList_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.c
index 3edeea6695..92e7e3c6c1 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSwitchedULItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.h
index 547c5e8b42..4bcad45af0 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSwitchedULItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.c b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.c
index 26031b868e..8dc3f73137 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeSwitchedULList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.h b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.h
index 27dafa7bec..d49d31ffdb 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeSwitchedULList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeSwitchedULList_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABToBeSwitchedULList;
asn_struct_free_f S1AP_E_RABToBeSwitchedULList_free;
asn_struct_print_f S1AP_E_RABToBeSwitchedULList_print;
asn_constr_check_f S1AP_E_RABToBeSwitchedULList_constraint;
-jer_type_encoder_f S1AP_E_RABToBeSwitchedULList_encode_jer;
per_type_decoder_f S1AP_E_RABToBeSwitchedULList_decode_aper;
per_type_encoder_f S1AP_E_RABToBeSwitchedULList_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.c b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.c
index 0a2a5cc4bd..8727bfe9b3 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeUpdatedItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.h b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.h
index d4773ed462..22973350cc 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeUpdatedItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.c b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.c
index 066a46f7ca..bc2b83ed23 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABToBeUpdatedList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.h b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.h
index 53ff747a8e..779bd2e055 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABToBeUpdatedList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABToBeUpdatedList_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_RABToBeUpdatedList;
asn_struct_free_f S1AP_E_RABToBeUpdatedList_free;
asn_struct_print_f S1AP_E_RABToBeUpdatedList_print;
asn_constr_check_f S1AP_E_RABToBeUpdatedList_constraint;
-jer_type_encoder_f S1AP_E_RABToBeUpdatedList_encode_jer;
per_type_decoder_f S1AP_E_RABToBeUpdatedList_decode_aper;
per_type_encoder_f S1AP_E_RABToBeUpdatedList_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.c b/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.c
index 7815264fde..cafb26c920 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABUsageReportItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.h b/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.h
index 72ce87969d..dcea935bb7 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABUsageReportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABUsageReportItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.c b/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.c
index 65c4fb3e34..b710bedac8 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.c
+++ b/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-RABUsageReportList.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.h b/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.h
index 5732f2b45f..bc0e1918b5 100644
--- a/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.h
+++ b/lib/asn1c/s1ap/S1AP_E-RABUsageReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_RABUsageReportList_H_
diff --git a/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.c b/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.c
index 8edfc85319..5feb194f3d 100644
--- a/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.c
+++ b/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_E-UTRAN-Trace-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.h b/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.h
index c5b7791839..1ae37e35da 100644
--- a/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.h
+++ b/lib/asn1c/s1ap/S1AP_E-UTRAN-Trace-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_E_UTRAN_Trace_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_E_UTRAN_Trace_ID;
asn_struct_free_f S1AP_E_UTRAN_Trace_ID_free;
asn_struct_print_f S1AP_E_UTRAN_Trace_ID_print;
asn_constr_check_f S1AP_E_UTRAN_Trace_ID_constraint;
-jer_type_encoder_f S1AP_E_UTRAN_Trace_ID_encode_jer;
per_type_decoder_f S1AP_E_UTRAN_Trace_ID_decode_aper;
per_type_encoder_f S1AP_E_UTRAN_Trace_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EARFCN.c b/lib/asn1c/s1ap/S1AP_EARFCN.c
index 68256b7fda..e49033617f 100644
--- a/lib/asn1c/s1ap/S1AP_EARFCN.c
+++ b/lib/asn1c/s1ap/S1AP_EARFCN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EARFCN.h"
diff --git a/lib/asn1c/s1ap/S1AP_EARFCN.h b/lib/asn1c/s1ap/S1AP_EARFCN.h
index c76753c43e..9d31e9578e 100644
--- a/lib/asn1c/s1ap/S1AP_EARFCN.h
+++ b/lib/asn1c/s1ap/S1AP_EARFCN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EARFCN_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_EARFCN;
asn_struct_free_f S1AP_EARFCN_free;
asn_struct_print_f S1AP_EARFCN_print;
asn_constr_check_f S1AP_EARFCN_constraint;
-jer_type_encoder_f S1AP_EARFCN_encode_jer;
per_type_decoder_f S1AP_EARFCN_decode_aper;
per_type_encoder_f S1AP_EARFCN_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ECGI-List.c b/lib/asn1c/s1ap/S1AP_ECGI-List.c
index 22a1636e59..eb31527ab7 100644
--- a/lib/asn1c/s1ap/S1AP_ECGI-List.c
+++ b/lib/asn1c/s1ap/S1AP_ECGI-List.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ECGI-List.h"
diff --git a/lib/asn1c/s1ap/S1AP_ECGI-List.h b/lib/asn1c/s1ap/S1AP_ECGI-List.h
index a4e1ec9a70..acc4583f63 100644
--- a/lib/asn1c/s1ap/S1AP_ECGI-List.h
+++ b/lib/asn1c/s1ap/S1AP_ECGI-List.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ECGI_List_H_
diff --git a/lib/asn1c/s1ap/S1AP_ECGIList.c b/lib/asn1c/s1ap/S1AP_ECGIList.c
index b060e431e3..ff2533cc6d 100644
--- a/lib/asn1c/s1ap/S1AP_ECGIList.c
+++ b/lib/asn1c/s1ap/S1AP_ECGIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ECGIList.h"
diff --git a/lib/asn1c/s1ap/S1AP_ECGIList.h b/lib/asn1c/s1ap/S1AP_ECGIList.h
index 5e1869ebef..f562fe9f38 100644
--- a/lib/asn1c/s1ap/S1AP_ECGIList.h
+++ b/lib/asn1c/s1ap/S1AP_ECGIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ECGIList_H_
diff --git a/lib/asn1c/s1ap/S1AP_ECGIListForRestart.c b/lib/asn1c/s1ap/S1AP_ECGIListForRestart.c
index 3318ddf3e5..b7333dc8d5 100644
--- a/lib/asn1c/s1ap/S1AP_ECGIListForRestart.c
+++ b/lib/asn1c/s1ap/S1AP_ECGIListForRestart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ECGIListForRestart.h"
diff --git a/lib/asn1c/s1ap/S1AP_ECGIListForRestart.h b/lib/asn1c/s1ap/S1AP_ECGIListForRestart.h
index 70efb06b23..6bf02006d6 100644
--- a/lib/asn1c/s1ap/S1AP_ECGIListForRestart.h
+++ b/lib/asn1c/s1ap/S1AP_ECGIListForRestart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ECGIListForRestart_H_
diff --git a/lib/asn1c/s1ap/S1AP_EDT-Session.c b/lib/asn1c/s1ap/S1AP_EDT-Session.c
index f35389ba99..b9e1412365 100644
--- a/lib/asn1c/s1ap/S1AP_EDT-Session.c
+++ b/lib/asn1c/s1ap/S1AP_EDT-Session.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EDT-Session.h"
diff --git a/lib/asn1c/s1ap/S1AP_EDT-Session.h b/lib/asn1c/s1ap/S1AP_EDT-Session.h
index 5e09d2011e..7757c6a687 100644
--- a/lib/asn1c/s1ap/S1AP_EDT-Session.h
+++ b/lib/asn1c/s1ap/S1AP_EDT-Session.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EDT_Session_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_EDT_Session_specs_1;
asn_struct_free_f S1AP_EDT_Session_free;
asn_struct_print_f S1AP_EDT_Session_print;
asn_constr_check_f S1AP_EDT_Session_constraint;
-jer_type_encoder_f S1AP_EDT_Session_encode_jer;
per_type_decoder_f S1AP_EDT_Session_decode_aper;
per_type_encoder_f S1AP_EDT_Session_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.c b/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.c
index 551affa156..f56e838c66 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EN-DCSONConfigurationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.h b/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.h
index b049ec5376..6e8819cce4 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EN_DCSONConfigurationTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.c b/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.c
index 19d5b914ab..0bf2044975 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.c
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EN-DCSONTransferType.h"
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.h b/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.h
index d3777b2230..9ab4344287 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.h
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONTransferType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EN_DCSONTransferType_H_
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.c b/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.c
index 00cdc05580..8f4af047ca 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.c
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EN-DCSONeNBIdentification.h"
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.h b/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.h
index 58caf08565..373e47313d 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.h
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONeNBIdentification.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EN_DCSONeNBIdentification_H_
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.c b/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.c
index 464ec029a6..bbadb5d9aa 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.c
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EN-DCSONengNBIdentification.h"
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.h b/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.h
index dc4c9d2b1b..3e920436e7 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.h
+++ b/lib/asn1c/s1ap/S1AP_EN-DCSONengNBIdentification.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EN_DCSONengNBIdentification_H_
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.c b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.c
index a49c69f6a2..df854b2c40 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.c
+++ b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EN-DCTransferTypeReply.h"
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.h b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.h
index a018c11f1a..5d702b8610 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.h
+++ b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeReply.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EN_DCTransferTypeReply_H_
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.c b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.c
index ccabe35849..8469cd6d9f 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.c
+++ b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EN-DCTransferTypeRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.h b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.h
index 273fc2bb21..61bb33d357 100644
--- a/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.h
+++ b/lib/asn1c/s1ap/S1AP_EN-DCTransferTypeRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EN_DCTransferTypeRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.c
index 71e5bf43b2..688e1c4dbd 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENB-EarlyStatusTransfer-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.h
index a4b528122a..42ae4a8888 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_ENB-EarlyStatusTransfer-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENB_EarlyStatusTransfer_TransparentContainer_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENB-ID.c b/lib/asn1c/s1ap/S1AP_ENB-ID.c
index d57b1a246c..c0e729766f 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_ENB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENB-ID.h b/lib/asn1c/s1ap/S1AP_ENB-ID.h
index b8ee69b310..d43bdea761 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_ENB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENB_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.c
index da0463bb8e..3d5c388b6f 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENB-StatusTransfer-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.h
index 46393aa2ba..803420374b 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_ENB-StatusTransfer-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENB_StatusTransfer_TransparentContainer_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.c b/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.c
index 3e7d835ef9..d7615072a5 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.c
+++ b/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENB-UE-S1AP-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.h b/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.h
index 3075559e9a..0de57f9345 100644
--- a/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.h
+++ b/lib/asn1c/s1ap/S1AP_ENB-UE-S1AP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENB_UE_S1AP_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ENB_UE_S1AP_ID;
asn_struct_free_f S1AP_ENB_UE_S1AP_ID_free;
asn_struct_print_f S1AP_ENB_UE_S1AP_ID_print;
asn_constr_check_f S1AP_ENB_UE_S1AP_ID_constraint;
-jer_type_encoder_f S1AP_ENB_UE_S1AP_ID_encode_jer;
per_type_decoder_f S1AP_ENB_UE_S1AP_ID_decode_aper;
per_type_encoder_f S1AP_ENB_UE_S1AP_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.c b/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.c
index f371d59870..9f848e2450 100644
--- a/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.c
+++ b/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBCPRelocationIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.h b/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.h
index 7ed70d45d1..66bea41e1e 100644
--- a/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.h
+++ b/lib/asn1c/s1ap/S1AP_ENBCPRelocationIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBCPRelocationIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.c b/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.c
index be04cb2fd4..317d9dc43b 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBConfigurationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.h b/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.h
index 1db455aea4..07b85ef26a 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBConfigurationTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.c b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.c
index f8001d7d08..ad310f2698 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.c
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBConfigurationUpdate.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.h b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.h
index f30bc4b965..10d6a8eb90 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.h
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBConfigurationUpdate_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.c b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.c
index f061f92a14..cd5fbd2af3 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.c
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBConfigurationUpdateAcknowledge.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.h b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.h
index 11a3810612..d5fb5b9bde 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.h
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBConfigurationUpdateAcknowledge_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.c b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.c
index 9e600f6aa9..e035ee42da 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.c
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBConfigurationUpdateFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.h b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.h
index f049bd8c99..57d4497bc8 100644
--- a/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.h
+++ b/lib/asn1c/s1ap/S1AP_ENBConfigurationUpdateFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBConfigurationUpdateFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.c b/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.c
index 1db33c047a..327c841b9f 100644
--- a/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBDirectInformationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.h b/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.h
index 75692abcce..9f78e4e2e0 100644
--- a/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_ENBDirectInformationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBDirectInformationTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.c b/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.c
index cb8a4634d8..c23bc1395e 100644
--- a/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBEarlyStatusTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.h b/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.h
index e5da028cdd..984b48afd7 100644
--- a/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_ENBEarlyStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBEarlyStatusTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.c b/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.c
index a2d3af297b..28b57eba4e 100644
--- a/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.c
+++ b/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBIndirectX2TransportLayerAddresses.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.h b/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.h
index 1d8104dbaf..9dc21d3032 100644
--- a/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.h
+++ b/lib/asn1c/s1ap/S1AP_ENBIndirectX2TransportLayerAddresses.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBIndirectX2TransportLayerAddresses_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.c b/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.c
index 39ea7b7b5a..6e37b305f4 100644
--- a/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBStatusTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.h b/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.h
index 3e870d4e12..23ea88cba2 100644
--- a/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_ENBStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBStatusTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.c b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.c
index 2b5565e4e2..18f135f3c9 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.c
+++ b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBX2ExtTLA.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.h b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.h
index d30165c5f8..cf2e1a06b1 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.h
+++ b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLA.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBX2ExtTLA_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.c b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.c
index c5508204f8..4dec1a6695 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.c
+++ b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBX2ExtTLAs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.h b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.h
index a7f4e5a901..0d8d227d67 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.h
+++ b/lib/asn1c/s1ap/S1AP_ENBX2ExtTLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBX2ExtTLAs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.c b/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.c
index 392a6a44e8..b950252d41 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.c
+++ b/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBX2GTPTLAs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.h b/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.h
index f67d59f878..d6aebe9c5d 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.h
+++ b/lib/asn1c/s1ap/S1AP_ENBX2GTPTLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBX2GTPTLAs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2TLAs.c b/lib/asn1c/s1ap/S1AP_ENBX2TLAs.c
index df4d54e7aa..39beded373 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2TLAs.c
+++ b/lib/asn1c/s1ap/S1AP_ENBX2TLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBX2TLAs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBX2TLAs.h b/lib/asn1c/s1ap/S1AP_ENBX2TLAs.h
index 878dc885c6..7a0cce8273 100644
--- a/lib/asn1c/s1ap/S1AP_ENBX2TLAs.h
+++ b/lib/asn1c/s1ap/S1AP_ENBX2TLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBX2TLAs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ENBname.c b/lib/asn1c/s1ap/S1AP_ENBname.c
index 75d1732c3e..6c5fa752a6 100644
--- a/lib/asn1c/s1ap/S1AP_ENBname.c
+++ b/lib/asn1c/s1ap/S1AP_ENBname.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ENBname.h"
diff --git a/lib/asn1c/s1ap/S1AP_ENBname.h b/lib/asn1c/s1ap/S1AP_ENBname.h
index 45b3b2487a..9da1ddb1b6 100644
--- a/lib/asn1c/s1ap/S1AP_ENBname.h
+++ b/lib/asn1c/s1ap/S1AP_ENBname.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ENBname_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ENBname;
asn_struct_free_f S1AP_ENBname_free;
asn_struct_print_f S1AP_ENBname_print;
asn_constr_check_f S1AP_ENBname_constraint;
-jer_type_encoder_f S1AP_ENBname_encode_jer;
per_type_decoder_f S1AP_ENBname_decode_aper;
per_type_encoder_f S1AP_ENBname_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EPLMNs.c b/lib/asn1c/s1ap/S1AP_EPLMNs.c
index 30851364a1..3d8ce0c1c4 100644
--- a/lib/asn1c/s1ap/S1AP_EPLMNs.c
+++ b/lib/asn1c/s1ap/S1AP_EPLMNs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EPLMNs.h"
diff --git a/lib/asn1c/s1ap/S1AP_EPLMNs.h b/lib/asn1c/s1ap/S1AP_EPLMNs.h
index 900dc1e72e..2df2869d48 100644
--- a/lib/asn1c/s1ap/S1AP_EPLMNs.h
+++ b/lib/asn1c/s1ap/S1AP_EPLMNs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EPLMNs_H_
diff --git a/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.c b/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.c
index 14e08cdf2a..5387e5ca3d 100644
--- a/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.c
+++ b/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EUTRAN-CGI.h"
diff --git a/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.h b/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.h
index 3e5de651ff..ed1911fc5f 100644
--- a/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.h
+++ b/lib/asn1c/s1ap/S1AP_EUTRAN-CGI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EUTRAN_CGI_H_
diff --git a/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.c b/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.c
index ba724d0bce..eccce7aad3 100644
--- a/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.c
+++ b/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EUTRANRoundTripDelayEstimationInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.h b/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.h
index a50058e584..9404595d52 100644
--- a/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.h
+++ b/lib/asn1c/s1ap/S1AP_EUTRANRoundTripDelayEstimationInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EUTRANRoundTripDelayEstimationInfo_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_EUTRANRoundTripDelayEstimationInfo;
asn_struct_free_f S1AP_EUTRANRoundTripDelayEstimationInfo_free;
asn_struct_print_f S1AP_EUTRANRoundTripDelayEstimationInfo_print;
asn_constr_check_f S1AP_EUTRANRoundTripDelayEstimationInfo_constraint;
-jer_type_encoder_f S1AP_EUTRANRoundTripDelayEstimationInfo_encode_jer;
per_type_decoder_f S1AP_EUTRANRoundTripDelayEstimationInfo_decode_aper;
per_type_encoder_f S1AP_EUTRANRoundTripDelayEstimationInfo_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EXTERNAL.c b/lib/asn1c/s1ap/S1AP_EXTERNAL.c
index 901908fc24..ca2ff539a6 100644
--- a/lib/asn1c/s1ap/S1AP_EXTERNAL.c
+++ b/lib/asn1c/s1ap/S1AP_EXTERNAL.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "ASN1C-UsefulInformationObjectClasses"
* found in "../../../../my/asn1c/asn1c/../skeletons/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EXTERNAL.h"
diff --git a/lib/asn1c/s1ap/S1AP_EXTERNAL.h b/lib/asn1c/s1ap/S1AP_EXTERNAL.h
index 293d8201fe..520853fc07 100644
--- a/lib/asn1c/s1ap/S1AP_EXTERNAL.h
+++ b/lib/asn1c/s1ap/S1AP_EXTERNAL.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "ASN1C-UsefulInformationObjectClasses"
* found in "../../../../my/asn1c/asn1c/../skeletons/standard-modules/ASN1C-UsefulInformationObjectClasses.asn1"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EXTERNAL_H_
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.c b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.c
index 7a510068eb..3eec70d137 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyAreaID-Broadcast-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.h b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.h
index 40ad8ca54b..263d4942f0 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyAreaID_Broadcast_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.c b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.c
index 4f706171f8..5a6e3d5908 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyAreaID-Broadcast.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.h b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.h
index f906ec630a..5e85f661e1 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Broadcast.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyAreaID_Broadcast_H_
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.c b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.c
index cd3227e754..fc97925123 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyAreaID-Cancelled-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.h b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.h
index 43f906267c..9d3c24fc75 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyAreaID_Cancelled_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.c b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.c
index 36e478def4..046d8aaf5f 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyAreaID-Cancelled.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.h b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.h
index bb55ce8c23..66d955fa09 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID-Cancelled.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyAreaID_Cancelled_H_
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID.c b/lib/asn1c/s1ap/S1AP_EmergencyAreaID.c
index a987c42986..7e75ffa945 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyAreaID.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaID.h b/lib/asn1c/s1ap/S1AP_EmergencyAreaID.h
index d24bdda8f1..bc8ca3d83d 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaID.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyAreaID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_EmergencyAreaID;
asn_struct_free_f S1AP_EmergencyAreaID_free;
asn_struct_print_f S1AP_EmergencyAreaID_print;
asn_constr_check_f S1AP_EmergencyAreaID_constraint;
-jer_type_encoder_f S1AP_EmergencyAreaID_encode_jer;
per_type_decoder_f S1AP_EmergencyAreaID_decode_aper;
per_type_encoder_f S1AP_EmergencyAreaID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.c b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.c
index 2452872723..3faf5ebc0b 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyAreaIDList.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.h b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.h
index 7b9311ea11..86a1d7505e 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyAreaIDList_H_
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.c b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.c
index e28f0bf8b8..c76a9e95ba 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyAreaIDListForRestart.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.h b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.h
index c2e67d9f49..153459ef8a 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyAreaIDListForRestart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyAreaIDListForRestart_H_
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyIndicator.c b/lib/asn1c/s1ap/S1AP_EmergencyIndicator.c
index d774ac1a19..64c98ff6ae 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_EmergencyIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EmergencyIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_EmergencyIndicator.h b/lib/asn1c/s1ap/S1AP_EmergencyIndicator.h
index 767a0f63a4..3f6d80c9cf 100644
--- a/lib/asn1c/s1ap/S1AP_EmergencyIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_EmergencyIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EmergencyIndicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_EmergencyIndicator_specs_1;
asn_struct_free_f S1AP_EmergencyIndicator_free;
asn_struct_print_f S1AP_EmergencyIndicator_print;
asn_constr_check_f S1AP_EmergencyIndicator_constraint;
-jer_type_encoder_f S1AP_EmergencyIndicator_encode_jer;
per_type_decoder_f S1AP_EmergencyIndicator_decode_aper;
per_type_encoder_f S1AP_EmergencyIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_En-gNB-ID.c b/lib/asn1c/s1ap/S1AP_En-gNB-ID.c
index 6eb1aadc46..3fba5c48c8 100644
--- a/lib/asn1c/s1ap/S1AP_En-gNB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_En-gNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_En-gNB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_En-gNB-ID.h b/lib/asn1c/s1ap/S1AP_En-gNB-ID.h
index fde82f6bd2..eecda5be1d 100644
--- a/lib/asn1c/s1ap/S1AP_En-gNB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_En-gNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_En_gNB_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_En_gNB_ID;
asn_struct_free_f S1AP_En_gNB_ID_free;
asn_struct_print_f S1AP_En_gNB_ID_print;
asn_constr_check_f S1AP_En_gNB_ID_constraint;
-jer_type_encoder_f S1AP_En_gNB_ID_encode_jer;
per_type_decoder_f S1AP_En_gNB_ID_decode_aper;
per_type_encoder_f S1AP_En_gNB_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.c b/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.c
index aa88cebfb7..c8cd828dad 100644
--- a/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.c
+++ b/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EncryptionAlgorithms.h"
diff --git a/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.h b/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.h
index df60882491..a45977ddc0 100644
--- a/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.h
+++ b/lib/asn1c/s1ap/S1AP_EncryptionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EncryptionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_EncryptionAlgorithms;
asn_struct_free_f S1AP_EncryptionAlgorithms_free;
asn_struct_print_f S1AP_EncryptionAlgorithms_print;
asn_constr_check_f S1AP_EncryptionAlgorithms_constraint;
-jer_type_encoder_f S1AP_EncryptionAlgorithms_encode_jer;
per_type_decoder_f S1AP_EncryptionAlgorithms_decode_aper;
per_type_encoder_f S1AP_EncryptionAlgorithms_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EndIndication.c b/lib/asn1c/s1ap/S1AP_EndIndication.c
index 6aa73b58d1..81a0688fe9 100644
--- a/lib/asn1c/s1ap/S1AP_EndIndication.c
+++ b/lib/asn1c/s1ap/S1AP_EndIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EndIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_EndIndication.h b/lib/asn1c/s1ap/S1AP_EndIndication.h
index ac755e22f0..a0d7bfde96 100644
--- a/lib/asn1c/s1ap/S1AP_EndIndication.h
+++ b/lib/asn1c/s1ap/S1AP_EndIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EndIndication_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_EndIndication_specs_1;
asn_struct_free_f S1AP_EndIndication_free;
asn_struct_print_f S1AP_EndIndication_print;
asn_constr_check_f S1AP_EndIndication_constraint;
-jer_type_encoder_f S1AP_EndIndication_encode_jer;
per_type_decoder_f S1AP_EndIndication_decode_aper;
per_type_encoder_f S1AP_EndIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.c b/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.c
index a1094db215..64b6be7f9b 100644
--- a/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.c
+++ b/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EnhancedCoverageRestricted.h"
diff --git a/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.h b/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.h
index 1d614f0313..ed6edf1239 100644
--- a/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.h
+++ b/lib/asn1c/s1ap/S1AP_EnhancedCoverageRestricted.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EnhancedCoverageRestricted_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_EnhancedCoverageRestricted_spe
asn_struct_free_f S1AP_EnhancedCoverageRestricted_free;
asn_struct_print_f S1AP_EnhancedCoverageRestricted_print;
asn_constr_check_f S1AP_EnhancedCoverageRestricted_constraint;
-jer_type_encoder_f S1AP_EnhancedCoverageRestricted_encode_jer;
per_type_decoder_f S1AP_EnhancedCoverageRestricted_decode_aper;
per_type_encoder_f S1AP_EnhancedCoverageRestricted_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ErrorIndication.c b/lib/asn1c/s1ap/S1AP_ErrorIndication.c
index 3a25fcd699..f467c6c9f2 100644
--- a/lib/asn1c/s1ap/S1AP_ErrorIndication.c
+++ b/lib/asn1c/s1ap/S1AP_ErrorIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ErrorIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_ErrorIndication.h b/lib/asn1c/s1ap/S1AP_ErrorIndication.h
index 074bfebd8e..edc7042b77 100644
--- a/lib/asn1c/s1ap/S1AP_ErrorIndication.h
+++ b/lib/asn1c/s1ap/S1AP_ErrorIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ErrorIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_Ethernet-Type.c b/lib/asn1c/s1ap/S1AP_Ethernet-Type.c
index 7fcb48aafe..96bdb1c2df 100644
--- a/lib/asn1c/s1ap/S1AP_Ethernet-Type.c
+++ b/lib/asn1c/s1ap/S1AP_Ethernet-Type.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Ethernet-Type.h"
diff --git a/lib/asn1c/s1ap/S1AP_Ethernet-Type.h b/lib/asn1c/s1ap/S1AP_Ethernet-Type.h
index 92398b8386..6bc8fe4c68 100644
--- a/lib/asn1c/s1ap/S1AP_Ethernet-Type.h
+++ b/lib/asn1c/s1ap/S1AP_Ethernet-Type.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Ethernet_Type_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Ethernet_Type_specs_1;
asn_struct_free_f S1AP_Ethernet_Type_free;
asn_struct_print_f S1AP_Ethernet_Type_print;
asn_constr_check_f S1AP_Ethernet_Type_constraint;
-jer_type_encoder_f S1AP_Ethernet_Type_encode_jer;
per_type_decoder_f S1AP_Ethernet_Type_decode_aper;
per_type_encoder_f S1AP_Ethernet_Type_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.c b/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.c
index 5850b010e0..29ce5b8206 100644
--- a/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.c
+++ b/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EventL1LoggedMDTConfig.h"
diff --git a/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.h b/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.h
index a5e0051fba..134c6a6cda 100644
--- a/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.h
+++ b/lib/asn1c/s1ap/S1AP_EventL1LoggedMDTConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EventL1LoggedMDTConfig_H_
diff --git a/lib/asn1c/s1ap/S1AP_EventTrigger.c b/lib/asn1c/s1ap/S1AP_EventTrigger.c
index 506429a433..076b57c5f2 100644
--- a/lib/asn1c/s1ap/S1AP_EventTrigger.c
+++ b/lib/asn1c/s1ap/S1AP_EventTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EventTrigger.h"
diff --git a/lib/asn1c/s1ap/S1AP_EventTrigger.h b/lib/asn1c/s1ap/S1AP_EventTrigger.h
index 8ffa088f70..d345574d01 100644
--- a/lib/asn1c/s1ap/S1AP_EventTrigger.h
+++ b/lib/asn1c/s1ap/S1AP_EventTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EventTrigger_H_
diff --git a/lib/asn1c/s1ap/S1AP_EventType.c b/lib/asn1c/s1ap/S1AP_EventType.c
index f28742c306..83336d3b74 100644
--- a/lib/asn1c/s1ap/S1AP_EventType.c
+++ b/lib/asn1c/s1ap/S1AP_EventType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_EventType.h"
diff --git a/lib/asn1c/s1ap/S1AP_EventType.h b/lib/asn1c/s1ap/S1AP_EventType.h
index 6637a43fd9..4e8b6a8ec3 100644
--- a/lib/asn1c/s1ap/S1AP_EventType.h
+++ b/lib/asn1c/s1ap/S1AP_EventType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_EventType_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_EventType_specs_1;
asn_struct_free_f S1AP_EventType_free;
asn_struct_print_f S1AP_EventType_print;
asn_constr_check_f S1AP_EventType_constraint;
-jer_type_encoder_f S1AP_EventType_encode_jer;
per_type_decoder_f S1AP_EventType_decode_aper;
per_type_encoder_f S1AP_EventType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.c b/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.c
index 1e711abb29..aaf7fb0bef 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.c
+++ b/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExpectedActivityPeriod.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.h b/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.h
index fb0722e311..4861c1fcd6 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.h
+++ b/lib/asn1c/s1ap/S1AP_ExpectedActivityPeriod.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExpectedActivityPeriod_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ExpectedActivityPeriod;
asn_struct_free_f S1AP_ExpectedActivityPeriod_free;
asn_struct_print_f S1AP_ExpectedActivityPeriod_print;
asn_constr_check_f S1AP_ExpectedActivityPeriod_constraint;
-jer_type_encoder_f S1AP_ExpectedActivityPeriod_encode_jer;
per_type_decoder_f S1AP_ExpectedActivityPeriod_decode_aper;
per_type_encoder_f S1AP_ExpectedActivityPeriod_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.c b/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.c
index 7953201427..5f67e1b969 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.c
+++ b/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExpectedHOInterval.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.h b/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.h
index 1ad4ce63ab..1a179a3154 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.h
+++ b/lib/asn1c/s1ap/S1AP_ExpectedHOInterval.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExpectedHOInterval_H_
@@ -42,7 +42,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ExpectedHOInterval_specs_1;
asn_struct_free_f S1AP_ExpectedHOInterval_free;
asn_struct_print_f S1AP_ExpectedHOInterval_print;
asn_constr_check_f S1AP_ExpectedHOInterval_constraint;
-jer_type_encoder_f S1AP_ExpectedHOInterval_encode_jer;
per_type_decoder_f S1AP_ExpectedHOInterval_decode_aper;
per_type_encoder_f S1AP_ExpectedHOInterval_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.c b/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.c
index 93049dd27c..68cdb590a2 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.c
+++ b/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExpectedIdlePeriod.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.h b/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.h
index 8d8ee6d13e..e72a78bf8c 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.h
+++ b/lib/asn1c/s1ap/S1AP_ExpectedIdlePeriod.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExpectedIdlePeriod_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ExpectedIdlePeriod;
asn_struct_free_f S1AP_ExpectedIdlePeriod_free;
asn_struct_print_f S1AP_ExpectedIdlePeriod_print;
asn_constr_check_f S1AP_ExpectedIdlePeriod_constraint;
-jer_type_encoder_f S1AP_ExpectedIdlePeriod_encode_jer;
per_type_decoder_f S1AP_ExpectedIdlePeriod_decode_aper;
per_type_encoder_f S1AP_ExpectedIdlePeriod_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.c b/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.c
index 764e6f0914..3f7b5f6bdc 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.c
+++ b/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExpectedUEActivityBehaviour.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.h b/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.h
index b4ea28cf59..35cacec964 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.h
+++ b/lib/asn1c/s1ap/S1AP_ExpectedUEActivityBehaviour.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExpectedUEActivityBehaviour_H_
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.c b/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.c
index 73278343aa..c313595b18 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.c
+++ b/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExpectedUEBehaviour.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.h b/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.h
index 5e493dd0ae..9ee63a54f5 100644
--- a/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.h
+++ b/lib/asn1c/s1ap/S1AP_ExpectedUEBehaviour.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExpectedUEBehaviour_H_
diff --git a/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.c b/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.c
index a92bc46222..837e750c98 100644
--- a/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.c
+++ b/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Extended-UEIdentityIndexValue.h"
diff --git a/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.h b/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.h
index b159e39092..fc54363732 100644
--- a/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.h
+++ b/lib/asn1c/s1ap/S1AP_Extended-UEIdentityIndexValue.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Extended_UEIdentityIndexValue_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Extended_UEIdentityIndexValue;
asn_struct_free_f S1AP_Extended_UEIdentityIndexValue_free;
asn_struct_print_f S1AP_Extended_UEIdentityIndexValue_print;
asn_constr_check_f S1AP_Extended_UEIdentityIndexValue_constraint;
-jer_type_encoder_f S1AP_Extended_UEIdentityIndexValue_encode_jer;
per_type_decoder_f S1AP_Extended_UEIdentityIndexValue_decode_aper;
per_type_encoder_f S1AP_Extended_UEIdentityIndexValue_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ExtendedBitRate.c b/lib/asn1c/s1ap/S1AP_ExtendedBitRate.c
index 752a8947e5..ed5e358b4d 100644
--- a/lib/asn1c/s1ap/S1AP_ExtendedBitRate.c
+++ b/lib/asn1c/s1ap/S1AP_ExtendedBitRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExtendedBitRate.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExtendedBitRate.h b/lib/asn1c/s1ap/S1AP_ExtendedBitRate.h
index b75ef9cdd8..a02c40d587 100644
--- a/lib/asn1c/s1ap/S1AP_ExtendedBitRate.h
+++ b/lib/asn1c/s1ap/S1AP_ExtendedBitRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExtendedBitRate_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ExtendedBitRate;
asn_struct_free_f S1AP_ExtendedBitRate_free;
asn_struct_print_f S1AP_ExtendedBitRate_print;
asn_constr_check_f S1AP_ExtendedBitRate_constraint;
-jer_type_encoder_f S1AP_ExtendedBitRate_encode_jer;
per_type_decoder_f S1AP_ExtendedBitRate_decode_aper;
per_type_encoder_f S1AP_ExtendedBitRate_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.c b/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.c
index c607d74ca5..046cb3a96e 100644
--- a/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.c
+++ b/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExtendedRNC-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.h b/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.h
index 3e15289658..c5a2bdd314 100644
--- a/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.h
+++ b/lib/asn1c/s1ap/S1AP_ExtendedRNC-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExtendedRNC_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ExtendedRNC_ID;
asn_struct_free_f S1AP_ExtendedRNC_ID_free;
asn_struct_print_f S1AP_ExtendedRNC_ID_print;
asn_constr_check_f S1AP_ExtendedRNC_ID_constraint;
-jer_type_encoder_f S1AP_ExtendedRNC_ID_encode_jer;
per_type_decoder_f S1AP_ExtendedRNC_ID_decode_aper;
per_type_encoder_f S1AP_ExtendedRNC_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.c b/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.c
index f4cc13d43c..53d7d1fbc8 100644
--- a/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.c
+++ b/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ExtendedRepetitionPeriod.h"
diff --git a/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.h b/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.h
index a84af072b0..aea52a0870 100644
--- a/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.h
+++ b/lib/asn1c/s1ap/S1AP_ExtendedRepetitionPeriod.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ExtendedRepetitionPeriod_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ExtendedRepetitionPeriod;
asn_struct_free_f S1AP_ExtendedRepetitionPeriod_free;
asn_struct_print_f S1AP_ExtendedRepetitionPeriod_print;
asn_constr_check_f S1AP_ExtendedRepetitionPeriod_constraint;
-jer_type_encoder_f S1AP_ExtendedRepetitionPeriod_encode_jer;
per_type_decoder_f S1AP_ExtendedRepetitionPeriod_decode_aper;
per_type_encoder_f S1AP_ExtendedRepetitionPeriod_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_FiveGSTAC.c b/lib/asn1c/s1ap/S1AP_FiveGSTAC.c
index 54ad69bc57..820a3abd96 100644
--- a/lib/asn1c/s1ap/S1AP_FiveGSTAC.c
+++ b/lib/asn1c/s1ap/S1AP_FiveGSTAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_FiveGSTAC.h"
diff --git a/lib/asn1c/s1ap/S1AP_FiveGSTAC.h b/lib/asn1c/s1ap/S1AP_FiveGSTAC.h
index 39c5dd37fa..7c7766bd91 100644
--- a/lib/asn1c/s1ap/S1AP_FiveGSTAC.h
+++ b/lib/asn1c/s1ap/S1AP_FiveGSTAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_FiveGSTAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_FiveGSTAC;
asn_struct_free_f S1AP_FiveGSTAC_free;
asn_struct_print_f S1AP_FiveGSTAC_print;
asn_constr_check_f S1AP_FiveGSTAC_constraint;
-jer_type_encoder_f S1AP_FiveGSTAC_encode_jer;
per_type_decoder_f S1AP_FiveGSTAC_decode_aper;
per_type_encoder_f S1AP_FiveGSTAC_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_FiveGSTAI.c b/lib/asn1c/s1ap/S1AP_FiveGSTAI.c
index 43da5cb209..7c978cfac3 100644
--- a/lib/asn1c/s1ap/S1AP_FiveGSTAI.c
+++ b/lib/asn1c/s1ap/S1AP_FiveGSTAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_FiveGSTAI.h"
diff --git a/lib/asn1c/s1ap/S1AP_FiveGSTAI.h b/lib/asn1c/s1ap/S1AP_FiveGSTAI.h
index 33bf4a4598..37f6c08781 100644
--- a/lib/asn1c/s1ap/S1AP_FiveGSTAI.h
+++ b/lib/asn1c/s1ap/S1AP_FiveGSTAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_FiveGSTAI_H_
diff --git a/lib/asn1c/s1ap/S1AP_FiveQI.c b/lib/asn1c/s1ap/S1AP_FiveQI.c
index d5a92a8c07..b6b0c55291 100644
--- a/lib/asn1c/s1ap/S1AP_FiveQI.c
+++ b/lib/asn1c/s1ap/S1AP_FiveQI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_FiveQI.h"
diff --git a/lib/asn1c/s1ap/S1AP_FiveQI.h b/lib/asn1c/s1ap/S1AP_FiveQI.h
index 716abe4d7f..3d2ca45217 100644
--- a/lib/asn1c/s1ap/S1AP_FiveQI.h
+++ b/lib/asn1c/s1ap/S1AP_FiveQI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_FiveQI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_FiveQI;
asn_struct_free_f S1AP_FiveQI_free;
asn_struct_print_f S1AP_FiveQI_print;
asn_constr_check_f S1AP_FiveQI_constraint;
-jer_type_encoder_f S1AP_FiveQI_encode_jer;
per_type_decoder_f S1AP_FiveQI_decode_aper;
per_type_encoder_f S1AP_FiveQI_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.c b/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.c
index 72369a5156..ee3d7b14bf 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.c
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ForbiddenInterRATs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.h b/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.h
index 1014299192..326bf8db0c 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.h
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenInterRATs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ForbiddenInterRATs_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ForbiddenInterRATs_specs_1;
asn_struct_free_f S1AP_ForbiddenInterRATs_free;
asn_struct_print_f S1AP_ForbiddenInterRATs_print;
asn_constr_check_f S1AP_ForbiddenInterRATs_constraint;
-jer_type_encoder_f S1AP_ForbiddenInterRATs_encode_jer;
per_type_decoder_f S1AP_ForbiddenInterRATs_decode_aper;
per_type_encoder_f S1AP_ForbiddenInterRATs_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenLACs.c b/lib/asn1c/s1ap/S1AP_ForbiddenLACs.c
index 267e9080c0..3a303c3dcb 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenLACs.c
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenLACs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ForbiddenLACs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenLACs.h b/lib/asn1c/s1ap/S1AP_ForbiddenLACs.h
index 82d70273bb..abdbe1d85e 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenLACs.h
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenLACs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ForbiddenLACs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.c b/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.c
index e7d749b2c3..568d12ca07 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.c
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ForbiddenLAs-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.h b/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.h
index 401afdc7bf..22a6f1ae7f 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.h
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenLAs-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ForbiddenLAs_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenLAs.c b/lib/asn1c/s1ap/S1AP_ForbiddenLAs.c
index b154dc3ba0..77b6c3565e 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenLAs.c
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenLAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ForbiddenLAs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenLAs.h b/lib/asn1c/s1ap/S1AP_ForbiddenLAs.h
index fd7c3996b9..ed6b323706 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenLAs.h
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenLAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ForbiddenLAs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenTACs.c b/lib/asn1c/s1ap/S1AP_ForbiddenTACs.c
index 453ea188d3..56dd0da086 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenTACs.c
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenTACs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ForbiddenTACs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenTACs.h b/lib/asn1c/s1ap/S1AP_ForbiddenTACs.h
index 68531fd1c4..60fec2772a 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenTACs.h
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenTACs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ForbiddenTACs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.c b/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.c
index c5371d0b39..fb6fec28b4 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.c
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ForbiddenTAs-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.h b/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.h
index 2791ab1bba..322f47e144 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.h
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenTAs-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ForbiddenTAs_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenTAs.c b/lib/asn1c/s1ap/S1AP_ForbiddenTAs.c
index 581e6591bb..0b32714fb1 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenTAs.c
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenTAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ForbiddenTAs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ForbiddenTAs.h b/lib/asn1c/s1ap/S1AP_ForbiddenTAs.h
index 7319dcbd14..9812fa8523 100644
--- a/lib/asn1c/s1ap/S1AP_ForbiddenTAs.h
+++ b/lib/asn1c/s1ap/S1AP_ForbiddenTAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ForbiddenTAs_H_
diff --git a/lib/asn1c/s1ap/S1AP_GBR-QosInformation.c b/lib/asn1c/s1ap/S1AP_GBR-QosInformation.c
index 60e74a3851..97968ac7e0 100644
--- a/lib/asn1c/s1ap/S1AP_GBR-QosInformation.c
+++ b/lib/asn1c/s1ap/S1AP_GBR-QosInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GBR-QosInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_GBR-QosInformation.h b/lib/asn1c/s1ap/S1AP_GBR-QosInformation.h
index 373a90258a..dbb060ec3b 100644
--- a/lib/asn1c/s1ap/S1AP_GBR-QosInformation.h
+++ b/lib/asn1c/s1ap/S1AP_GBR-QosInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GBR_QosInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.c b/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.c
index cecfc52c4e..ae9ed352dd 100644
--- a/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.c
+++ b/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GERAN-Cell-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.h b/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.h
index c1a37c8d93..076c9cdee7 100644
--- a/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.h
+++ b/lib/asn1c/s1ap/S1AP_GERAN-Cell-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GERAN_Cell_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_GNB-ID.c b/lib/asn1c/s1ap/S1AP_GNB-ID.c
index c465ddb988..bf2c30244c 100644
--- a/lib/asn1c/s1ap/S1AP_GNB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_GNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GNB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_GNB-ID.h b/lib/asn1c/s1ap/S1AP_GNB-ID.h
index b3e3cecdcf..8cce18aa3b 100644
--- a/lib/asn1c/s1ap/S1AP_GNB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_GNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GNB_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_GNB_ID;
asn_struct_free_f S1AP_GNB_ID_free;
asn_struct_print_f S1AP_GNB_ID_print;
asn_constr_check_f S1AP_GNB_ID_constraint;
-jer_type_encoder_f S1AP_GNB_ID_encode_jer;
per_type_decoder_f S1AP_GNB_ID_decode_aper;
per_type_encoder_f S1AP_GNB_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_GNB-Identity.c b/lib/asn1c/s1ap/S1AP_GNB-Identity.c
index 7be161e2c4..9748f9a991 100644
--- a/lib/asn1c/s1ap/S1AP_GNB-Identity.c
+++ b/lib/asn1c/s1ap/S1AP_GNB-Identity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GNB-Identity.h"
diff --git a/lib/asn1c/s1ap/S1AP_GNB-Identity.h b/lib/asn1c/s1ap/S1AP_GNB-Identity.h
index 3e2dceed19..2396633cc3 100644
--- a/lib/asn1c/s1ap/S1AP_GNB-Identity.h
+++ b/lib/asn1c/s1ap/S1AP_GNB-Identity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GNB_Identity_H_
diff --git a/lib/asn1c/s1ap/S1AP_GNB.c b/lib/asn1c/s1ap/S1AP_GNB.c
index 849b8a1183..f3e1c19ca9 100644
--- a/lib/asn1c/s1ap/S1AP_GNB.c
+++ b/lib/asn1c/s1ap/S1AP_GNB.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GNB.h"
diff --git a/lib/asn1c/s1ap/S1AP_GNB.h b/lib/asn1c/s1ap/S1AP_GNB.h
index e35efb2497..15c3b1ac3b 100644
--- a/lib/asn1c/s1ap/S1AP_GNB.h
+++ b/lib/asn1c/s1ap/S1AP_GNB.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GNB_H_
diff --git a/lib/asn1c/s1ap/S1AP_GTP-TEID.c b/lib/asn1c/s1ap/S1AP_GTP-TEID.c
index 2ba4f37990..72032ac0af 100644
--- a/lib/asn1c/s1ap/S1AP_GTP-TEID.c
+++ b/lib/asn1c/s1ap/S1AP_GTP-TEID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GTP-TEID.h"
diff --git a/lib/asn1c/s1ap/S1AP_GTP-TEID.h b/lib/asn1c/s1ap/S1AP_GTP-TEID.h
index 133848b4e3..f7df18f215 100644
--- a/lib/asn1c/s1ap/S1AP_GTP-TEID.h
+++ b/lib/asn1c/s1ap/S1AP_GTP-TEID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GTP_TEID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_GTP_TEID;
asn_struct_free_f S1AP_GTP_TEID_free;
asn_struct_print_f S1AP_GTP_TEID_print;
asn_constr_check_f S1AP_GTP_TEID_constraint;
-jer_type_encoder_f S1AP_GTP_TEID_encode_jer;
per_type_decoder_f S1AP_GTP_TEID_decode_aper;
per_type_encoder_f S1AP_GTP_TEID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_GUMMEI.c b/lib/asn1c/s1ap/S1AP_GUMMEI.c
index 38c6f5e59f..1319d10376 100644
--- a/lib/asn1c/s1ap/S1AP_GUMMEI.c
+++ b/lib/asn1c/s1ap/S1AP_GUMMEI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GUMMEI.h"
diff --git a/lib/asn1c/s1ap/S1AP_GUMMEI.h b/lib/asn1c/s1ap/S1AP_GUMMEI.h
index 2c53cb2c31..d9e54bf17d 100644
--- a/lib/asn1c/s1ap/S1AP_GUMMEI.h
+++ b/lib/asn1c/s1ap/S1AP_GUMMEI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GUMMEI_H_
diff --git a/lib/asn1c/s1ap/S1AP_GUMMEIList.c b/lib/asn1c/s1ap/S1AP_GUMMEIList.c
index 92ed2b4700..3a82788c1f 100644
--- a/lib/asn1c/s1ap/S1AP_GUMMEIList.c
+++ b/lib/asn1c/s1ap/S1AP_GUMMEIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GUMMEIList.h"
diff --git a/lib/asn1c/s1ap/S1AP_GUMMEIList.h b/lib/asn1c/s1ap/S1AP_GUMMEIList.h
index 8de6f7f64d..dcafea1da9 100644
--- a/lib/asn1c/s1ap/S1AP_GUMMEIList.h
+++ b/lib/asn1c/s1ap/S1AP_GUMMEIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GUMMEIList_H_
diff --git a/lib/asn1c/s1ap/S1AP_GUMMEIType.c b/lib/asn1c/s1ap/S1AP_GUMMEIType.c
index 697a84fcc3..7673e259dc 100644
--- a/lib/asn1c/s1ap/S1AP_GUMMEIType.c
+++ b/lib/asn1c/s1ap/S1AP_GUMMEIType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GUMMEIType.h"
diff --git a/lib/asn1c/s1ap/S1AP_GUMMEIType.h b/lib/asn1c/s1ap/S1AP_GUMMEIType.h
index 49556d93bc..3f5c99f610 100644
--- a/lib/asn1c/s1ap/S1AP_GUMMEIType.h
+++ b/lib/asn1c/s1ap/S1AP_GUMMEIType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GUMMEIType_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_GUMMEIType_specs_1;
asn_struct_free_f S1AP_GUMMEIType_free;
asn_struct_print_f S1AP_GUMMEIType_print;
asn_constr_check_f S1AP_GUMMEIType_constraint;
-jer_type_encoder_f S1AP_GUMMEIType_encode_jer;
per_type_decoder_f S1AP_GUMMEIType_decode_aper;
per_type_encoder_f S1AP_GUMMEIType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.c b/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.c
index 01022355ef..7d99cb56aa 100644
--- a/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.c
+++ b/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_GWContextReleaseIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.h b/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.h
index dad50b8355..8c40268d82 100644
--- a/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.h
+++ b/lib/asn1c/s1ap/S1AP_GWContextReleaseIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_GWContextReleaseIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_GWContextReleaseIndication_spe
asn_struct_free_f S1AP_GWContextReleaseIndication_free;
asn_struct_print_f S1AP_GWContextReleaseIndication_print;
asn_constr_check_f S1AP_GWContextReleaseIndication_constraint;
-jer_type_encoder_f S1AP_GWContextReleaseIndication_encode_jer;
per_type_decoder_f S1AP_GWContextReleaseIndication_decode_aper;
per_type_encoder_f S1AP_GWContextReleaseIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Global-ENB-ID.c b/lib/asn1c/s1ap/S1AP_Global-ENB-ID.c
index 4fecd7cf0f..9a3c0cc606 100644
--- a/lib/asn1c/s1ap/S1AP_Global-ENB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_Global-ENB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Global-ENB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Global-ENB-ID.h b/lib/asn1c/s1ap/S1AP_Global-ENB-ID.h
index 0fba3df6ff..075c29c66d 100644
--- a/lib/asn1c/s1ap/S1AP_Global-ENB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_Global-ENB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Global_ENB_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_Global-GNB-ID.c b/lib/asn1c/s1ap/S1AP_Global-GNB-ID.c
index 68522b59b6..28277b1bb3 100644
--- a/lib/asn1c/s1ap/S1AP_Global-GNB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_Global-GNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Global-GNB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Global-GNB-ID.h b/lib/asn1c/s1ap/S1AP_Global-GNB-ID.h
index ce6d6e416f..27302c6e75 100644
--- a/lib/asn1c/s1ap/S1AP_Global-GNB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_Global-GNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Global_GNB_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.c b/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.c
index cbb57c378e..fade582cfd 100644
--- a/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.c
+++ b/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Global-RAN-NODE-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.h b/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.h
index dd45e0c878..a70e31c881 100644
--- a/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.h
+++ b/lib/asn1c/s1ap/S1AP_Global-RAN-NODE-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Global_RAN_NODE_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.c b/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.c
index 63dcd37695..0c5f5a17d1 100644
--- a/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Global-en-gNB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.h b/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.h
index bef4348f92..ae5b160a5f 100644
--- a/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_Global-en-gNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Global_en_gNB_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_HFN.c b/lib/asn1c/s1ap/S1AP_HFN.c
index 7c4e4f2782..b993599bac 100644
--- a/lib/asn1c/s1ap/S1AP_HFN.c
+++ b/lib/asn1c/s1ap/S1AP_HFN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HFN.h"
diff --git a/lib/asn1c/s1ap/S1AP_HFN.h b/lib/asn1c/s1ap/S1AP_HFN.h
index c441105978..3489d226d1 100644
--- a/lib/asn1c/s1ap/S1AP_HFN.h
+++ b/lib/asn1c/s1ap/S1AP_HFN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HFN_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_HFN;
asn_struct_free_f S1AP_HFN_free;
asn_struct_print_f S1AP_HFN_print;
asn_constr_check_f S1AP_HFN_constraint;
-jer_type_encoder_f S1AP_HFN_encode_jer;
per_type_decoder_f S1AP_HFN_decode_aper;
per_type_encoder_f S1AP_HFN_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_HFNModified.c b/lib/asn1c/s1ap/S1AP_HFNModified.c
index d6000ff3a4..262d069927 100644
--- a/lib/asn1c/s1ap/S1AP_HFNModified.c
+++ b/lib/asn1c/s1ap/S1AP_HFNModified.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HFNModified.h"
diff --git a/lib/asn1c/s1ap/S1AP_HFNModified.h b/lib/asn1c/s1ap/S1AP_HFNModified.h
index aa68f3428b..16c9aec9d6 100644
--- a/lib/asn1c/s1ap/S1AP_HFNModified.h
+++ b/lib/asn1c/s1ap/S1AP_HFNModified.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HFNModified_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_HFNModified;
asn_struct_free_f S1AP_HFNModified_free;
asn_struct_print_f S1AP_HFNModified_print;
asn_constr_check_f S1AP_HFNModified_constraint;
-jer_type_encoder_f S1AP_HFNModified_encode_jer;
per_type_decoder_f S1AP_HFNModified_decode_aper;
per_type_encoder_f S1AP_HFNModified_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.c b/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.c
index 02ad8d78a0..64b3880e2d 100644
--- a/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.c
+++ b/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HFNforPDCP-SNlength18.h"
diff --git a/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.h b/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.h
index 23dcd2d13b..1945e0c6d4 100644
--- a/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.h
+++ b/lib/asn1c/s1ap/S1AP_HFNforPDCP-SNlength18.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HFNforPDCP_SNlength18_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_HFNforPDCP_SNlength18;
asn_struct_free_f S1AP_HFNforPDCP_SNlength18_free;
asn_struct_print_f S1AP_HFNforPDCP_SNlength18_print;
asn_constr_check_f S1AP_HFNforPDCP_SNlength18_constraint;
-jer_type_encoder_f S1AP_HFNforPDCP_SNlength18_encode_jer;
per_type_decoder_f S1AP_HFNforPDCP_SNlength18_decode_aper;
per_type_encoder_f S1AP_HFNforPDCP_SNlength18_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_HandoverCancel.c b/lib/asn1c/s1ap/S1AP_HandoverCancel.c
index 4c6d2b5825..b7786ffb6b 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverCancel.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverCancel.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverCancel.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverCancel.h b/lib/asn1c/s1ap/S1AP_HandoverCancel.h
index 7cdc26f5c6..a660791f15 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverCancel.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverCancel.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverCancel_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.c b/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.c
index 17f433a04d..9fcf69643e 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverCancelAcknowledge.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.h b/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.h
index 3c48d62bda..27baa87c27 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverCancelAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverCancelAcknowledge_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverCommand.c b/lib/asn1c/s1ap/S1AP_HandoverCommand.c
index 227ae5b4fe..11d745cb82 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverCommand.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverCommand.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverCommand.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverCommand.h b/lib/asn1c/s1ap/S1AP_HandoverCommand.h
index f2492bd470..f43e58f881 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverCommand.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverCommand.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverCommand_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverFailure.c b/lib/asn1c/s1ap/S1AP_HandoverFailure.c
index 673b91f24d..2782e9c786 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverFailure.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverFailure.h b/lib/asn1c/s1ap/S1AP_HandoverFailure.h
index 69c78bfedb..4703cecad0 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverFailure.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverFlag.c b/lib/asn1c/s1ap/S1AP_HandoverFlag.c
index b1bbeac49e..85d32cf13a 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverFlag.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverFlag.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverFlag.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverFlag.h b/lib/asn1c/s1ap/S1AP_HandoverFlag.h
index 5e0b260007..edd3937bca 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverFlag.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverFlag.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverFlag_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_HandoverFlag_specs_1;
asn_struct_free_f S1AP_HandoverFlag_free;
asn_struct_print_f S1AP_HandoverFlag_print;
asn_constr_check_f S1AP_HandoverFlag_constraint;
-jer_type_encoder_f S1AP_HandoverFlag_encode_jer;
per_type_decoder_f S1AP_HandoverFlag_decode_aper;
per_type_encoder_f S1AP_HandoverFlag_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_HandoverNotify.c b/lib/asn1c/s1ap/S1AP_HandoverNotify.c
index af4afab949..6afcae96a9 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverNotify.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverNotify.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverNotify.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverNotify.h b/lib/asn1c/s1ap/S1AP_HandoverNotify.h
index d13a29deba..5acb0ebab9 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverNotify.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverNotify.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverNotify_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.c b/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.c
index 234dc804e9..730ea686b6 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverPreparationFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.h b/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.h
index b37921b2d3..2da64e0125 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverPreparationFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverPreparationFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRequest.c b/lib/asn1c/s1ap/S1AP_HandoverRequest.c
index 475d48bfe9..409d450ed1 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRequest.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRequest.h b/lib/asn1c/s1ap/S1AP_HandoverRequest.h
index 9a8b4a3b04..ee2e20666a 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRequest.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.c b/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.c
index 78f6cc1f03..65c9bf6553 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverRequestAcknowledge.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.h b/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.h
index 22208d7c68..aa3afedb68 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverRequestAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverRequestAcknowledge_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRequired.c b/lib/asn1c/s1ap/S1AP_HandoverRequired.c
index d6c32a96c3..c22f0f645e 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRequired.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverRequired.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverRequired.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRequired.h b/lib/asn1c/s1ap/S1AP_HandoverRequired.h
index 9bd6691ea1..5d3892974c 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRequired.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverRequired.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverRequired_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.c b/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.c
index ba6b21dabc..655d04ae6a 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverRestrictionList.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.h b/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.h
index 6e17e9db05..f2b6fc0c98 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverRestrictionList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverRestrictionList_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverSuccess.c b/lib/asn1c/s1ap/S1AP_HandoverSuccess.c
index 18e1011083..773c482faf 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverSuccess.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverSuccess.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverSuccess.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverSuccess.h b/lib/asn1c/s1ap/S1AP_HandoverSuccess.h
index 32526ddf4e..7969c8a0bd 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverSuccess.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverSuccess.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverSuccess_H_
diff --git a/lib/asn1c/s1ap/S1AP_HandoverType.c b/lib/asn1c/s1ap/S1AP_HandoverType.c
index 0ea359c829..2b82133689 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverType.c
+++ b/lib/asn1c/s1ap/S1AP_HandoverType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_HandoverType.h"
diff --git a/lib/asn1c/s1ap/S1AP_HandoverType.h b/lib/asn1c/s1ap/S1AP_HandoverType.h
index bdbcb4d899..1291a85321 100644
--- a/lib/asn1c/s1ap/S1AP_HandoverType.h
+++ b/lib/asn1c/s1ap/S1AP_HandoverType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_HandoverType_H_
@@ -42,7 +42,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_HandoverType_specs_1;
asn_struct_free_f S1AP_HandoverType_free;
asn_struct_print_f S1AP_HandoverType_print;
asn_constr_check_f S1AP_HandoverType_constraint;
-jer_type_encoder_f S1AP_HandoverType_encode_jer;
per_type_decoder_f S1AP_HandoverType_decode_aper;
per_type_encoder_f S1AP_HandoverType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Hysteresis.c b/lib/asn1c/s1ap/S1AP_Hysteresis.c
index 525bad794c..802a2f7cb4 100644
--- a/lib/asn1c/s1ap/S1AP_Hysteresis.c
+++ b/lib/asn1c/s1ap/S1AP_Hysteresis.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Hysteresis.h"
diff --git a/lib/asn1c/s1ap/S1AP_Hysteresis.h b/lib/asn1c/s1ap/S1AP_Hysteresis.h
index b0a979a713..383b6ee217 100644
--- a/lib/asn1c/s1ap/S1AP_Hysteresis.h
+++ b/lib/asn1c/s1ap/S1AP_Hysteresis.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Hysteresis_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Hysteresis;
asn_struct_free_f S1AP_Hysteresis_free;
asn_struct_print_f S1AP_Hysteresis_print;
asn_constr_check_f S1AP_Hysteresis_constraint;
-jer_type_encoder_f S1AP_Hysteresis_encode_jer;
per_type_decoder_f S1AP_Hysteresis_decode_aper;
per_type_encoder_f S1AP_Hysteresis_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IAB-Authorized.c b/lib/asn1c/s1ap/S1AP_IAB-Authorized.c
index aa74358b18..b3f0dc2d51 100644
--- a/lib/asn1c/s1ap/S1AP_IAB-Authorized.c
+++ b/lib/asn1c/s1ap/S1AP_IAB-Authorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IAB-Authorized.h"
diff --git a/lib/asn1c/s1ap/S1AP_IAB-Authorized.h b/lib/asn1c/s1ap/S1AP_IAB-Authorized.h
index 7454aa601f..94d3fbf00d 100644
--- a/lib/asn1c/s1ap/S1AP_IAB-Authorized.h
+++ b/lib/asn1c/s1ap/S1AP_IAB-Authorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IAB_Authorized_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_IAB_Authorized_specs_1;
asn_struct_free_f S1AP_IAB_Authorized_free;
asn_struct_print_f S1AP_IAB_Authorized_print;
asn_constr_check_f S1AP_IAB_Authorized_constraint;
-jer_type_encoder_f S1AP_IAB_Authorized_encode_jer;
per_type_decoder_f S1AP_IAB_Authorized_decode_aper;
per_type_encoder_f S1AP_IAB_Authorized_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.c b/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.c
index 6fe2681c8f..4fbbcc4077 100644
--- a/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.c
+++ b/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IAB-Node-Indication.h"
diff --git a/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.h b/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.h
index 0ce774e0bd..e095cc9ebb 100644
--- a/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.h
+++ b/lib/asn1c/s1ap/S1AP_IAB-Node-Indication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IAB_Node_Indication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_IAB_Node_Indication_specs_1;
asn_struct_free_f S1AP_IAB_Node_Indication_free;
asn_struct_print_f S1AP_IAB_Node_Indication_print;
asn_constr_check_f S1AP_IAB_Node_Indication_constraint;
-jer_type_encoder_f S1AP_IAB_Node_Indication_encode_jer;
per_type_decoder_f S1AP_IAB_Node_Indication_decode_aper;
per_type_encoder_f S1AP_IAB_Node_Indication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IAB-Supported.c b/lib/asn1c/s1ap/S1AP_IAB-Supported.c
index 3806b36fd1..179806fbb7 100644
--- a/lib/asn1c/s1ap/S1AP_IAB-Supported.c
+++ b/lib/asn1c/s1ap/S1AP_IAB-Supported.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IAB-Supported.h"
diff --git a/lib/asn1c/s1ap/S1AP_IAB-Supported.h b/lib/asn1c/s1ap/S1AP_IAB-Supported.h
index 5da7aad53d..1f80152ed4 100644
--- a/lib/asn1c/s1ap/S1AP_IAB-Supported.h
+++ b/lib/asn1c/s1ap/S1AP_IAB-Supported.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IAB_Supported_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_IAB_Supported_specs_1;
asn_struct_free_f S1AP_IAB_Supported_free;
asn_struct_print_f S1AP_IAB_Supported_print;
asn_constr_check_f S1AP_IAB_Supported_constraint;
-jer_type_encoder_f S1AP_IAB_Supported_encode_jer;
per_type_decoder_f S1AP_IAB_Supported_decode_aper;
per_type_encoder_f S1AP_IAB_Supported_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IMSI.c b/lib/asn1c/s1ap/S1AP_IMSI.c
index 286462a3e3..b90f85291f 100644
--- a/lib/asn1c/s1ap/S1AP_IMSI.c
+++ b/lib/asn1c/s1ap/S1AP_IMSI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IMSI.h"
diff --git a/lib/asn1c/s1ap/S1AP_IMSI.h b/lib/asn1c/s1ap/S1AP_IMSI.h
index 9699cf1e05..7b2089b58a 100644
--- a/lib/asn1c/s1ap/S1AP_IMSI.h
+++ b/lib/asn1c/s1ap/S1AP_IMSI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IMSI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_IMSI;
asn_struct_free_f S1AP_IMSI_free;
asn_struct_print_f S1AP_IMSI_print;
asn_constr_check_f S1AP_IMSI_constraint;
-jer_type_encoder_f S1AP_IMSI_encode_jer;
per_type_decoder_f S1AP_IMSI_decode_aper;
per_type_encoder_f S1AP_IMSI_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.c b/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.c
index e22bd35f9e..6d625e00af 100644
--- a/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.c
+++ b/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IMSvoiceEPSfallbackfrom5G.h"
diff --git a/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.h b/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.h
index 416622a977..4141261b63 100644
--- a/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.h
+++ b/lib/asn1c/s1ap/S1AP_IMSvoiceEPSfallbackfrom5G.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IMSvoiceEPSfallbackfrom5G_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_IMSvoiceEPSfallbackfrom5G_spec
asn_struct_free_f S1AP_IMSvoiceEPSfallbackfrom5G_free;
asn_struct_print_f S1AP_IMSvoiceEPSfallbackfrom5G_print;
asn_constr_check_f S1AP_IMSvoiceEPSfallbackfrom5G_constraint;
-jer_type_encoder_f S1AP_IMSvoiceEPSfallbackfrom5G_encode_jer;
per_type_decoder_f S1AP_IMSvoiceEPSfallbackfrom5G_decode_aper;
per_type_encoder_f S1AP_IMSvoiceEPSfallbackfrom5G_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ImmediateMDT.c b/lib/asn1c/s1ap/S1AP_ImmediateMDT.c
index 5da1c9a995..0f03579e42 100644
--- a/lib/asn1c/s1ap/S1AP_ImmediateMDT.c
+++ b/lib/asn1c/s1ap/S1AP_ImmediateMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ImmediateMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_ImmediateMDT.h b/lib/asn1c/s1ap/S1AP_ImmediateMDT.h
index 6acac4d18f..eaee4fa3bd 100644
--- a/lib/asn1c/s1ap/S1AP_ImmediateMDT.h
+++ b/lib/asn1c/s1ap/S1AP_ImmediateMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ImmediateMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.c b/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.c
index 1b9ef21ac2..1499e7c1fa 100644
--- a/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.c
+++ b/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InformationOnRecommendedCellsAndENBsForPaging.h"
diff --git a/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.h b/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.h
index c9c5af6605..1f305ecc6f 100644
--- a/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.h
+++ b/lib/asn1c/s1ap/S1AP_InformationOnRecommendedCellsAndENBsForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InformationOnRecommendedCellsAndENBsForPaging_H_
diff --git a/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.c b/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.c
index 2725fb2b71..7230373e5d 100644
--- a/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.c
+++ b/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InitialContextSetupFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.h b/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.h
index bd387f9d7c..f7fcd38381 100644
--- a/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.h
+++ b/lib/asn1c/s1ap/S1AP_InitialContextSetupFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InitialContextSetupFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.c b/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.c
index bab57fc983..525e43465b 100644
--- a/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.c
+++ b/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InitialContextSetupRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.h b/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.h
index bd3152dc2b..8b823e1c41 100644
--- a/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.h
+++ b/lib/asn1c/s1ap/S1AP_InitialContextSetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InitialContextSetupRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.c b/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.c
index fb20fc3d47..5424bac2a2 100644
--- a/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.c
+++ b/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InitialContextSetupResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.h b/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.h
index ae58f541a9..a699790cf5 100644
--- a/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.h
+++ b/lib/asn1c/s1ap/S1AP_InitialContextSetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InitialContextSetupResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_InitialUEMessage.c b/lib/asn1c/s1ap/S1AP_InitialUEMessage.c
index c36c2f2b5a..c74bc69524 100644
--- a/lib/asn1c/s1ap/S1AP_InitialUEMessage.c
+++ b/lib/asn1c/s1ap/S1AP_InitialUEMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InitialUEMessage.h"
diff --git a/lib/asn1c/s1ap/S1AP_InitialUEMessage.h b/lib/asn1c/s1ap/S1AP_InitialUEMessage.h
index d2f44ce524..e33b7c5fc8 100644
--- a/lib/asn1c/s1ap/S1AP_InitialUEMessage.h
+++ b/lib/asn1c/s1ap/S1AP_InitialUEMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InitialUEMessage_H_
diff --git a/lib/asn1c/s1ap/S1AP_InitiatingMessage.c b/lib/asn1c/s1ap/S1AP_InitiatingMessage.c
index 6aee704699..d1d1d9337d 100644
--- a/lib/asn1c/s1ap/S1AP_InitiatingMessage.c
+++ b/lib/asn1c/s1ap/S1AP_InitiatingMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InitiatingMessage.h"
diff --git a/lib/asn1c/s1ap/S1AP_InitiatingMessage.h b/lib/asn1c/s1ap/S1AP_InitiatingMessage.h
index b3348816bf..8425215a5d 100644
--- a/lib/asn1c/s1ap/S1AP_InitiatingMessage.h
+++ b/lib/asn1c/s1ap/S1AP_InitiatingMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InitiatingMessage_H_
diff --git a/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.c b/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.c
index 1c0662fde2..c4e56ec72a 100644
--- a/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.c
+++ b/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IntegrityProtectionAlgorithms.h"
diff --git a/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.h b/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.h
index 730a51ab5b..726f6833f6 100644
--- a/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.h
+++ b/lib/asn1c/s1ap/S1AP_IntegrityProtectionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IntegrityProtectionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_IntegrityProtectionAlgorithms;
asn_struct_free_f S1AP_IntegrityProtectionAlgorithms_free;
asn_struct_print_f S1AP_IntegrityProtectionAlgorithms_print;
asn_constr_check_f S1AP_IntegrityProtectionAlgorithms_constraint;
-jer_type_encoder_f S1AP_IntegrityProtectionAlgorithms_encode_jer;
per_type_decoder_f S1AP_IntegrityProtectionAlgorithms_decode_aper;
per_type_encoder_f S1AP_IntegrityProtectionAlgorithms_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.c b/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.c
index c8220e5e38..45ba0edca9 100644
--- a/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.c
+++ b/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IntegrityProtectionIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.h b/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.h
index 3ed4319904..850f6cc885 100644
--- a/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.h
+++ b/lib/asn1c/s1ap/S1AP_IntegrityProtectionIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IntegrityProtectionIndication_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_IntegrityProtectionIndication_
asn_struct_free_f S1AP_IntegrityProtectionIndication_free;
asn_struct_print_f S1AP_IntegrityProtectionIndication_print;
asn_constr_check_f S1AP_IntegrityProtectionIndication_constraint;
-jer_type_encoder_f S1AP_IntegrityProtectionIndication_encode_jer;
per_type_decoder_f S1AP_IntegrityProtectionIndication_decode_aper;
per_type_encoder_f S1AP_IntegrityProtectionIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.c b/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.c
index 598ffc5a4b..7b12d5e746 100644
--- a/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.c
+++ b/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IntegrityProtectionResult.h"
diff --git a/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.h b/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.h
index c34c929163..e8d9568dca 100644
--- a/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.h
+++ b/lib/asn1c/s1ap/S1AP_IntegrityProtectionResult.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IntegrityProtectionResult_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_IntegrityProtectionResult_spec
asn_struct_free_f S1AP_IntegrityProtectionResult_free;
asn_struct_print_f S1AP_IntegrityProtectionResult_print;
asn_constr_check_f S1AP_IntegrityProtectionResult_constraint;
-jer_type_encoder_f S1AP_IntegrityProtectionResult_encode_jer;
per_type_decoder_f S1AP_IntegrityProtectionResult_decode_aper;
per_type_encoder_f S1AP_IntegrityProtectionResult_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.c b/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.c
index 95b274d22c..93b54f6d12 100644
--- a/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.c
+++ b/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IntendedNumberOfPagingAttempts.h"
diff --git a/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.h b/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.h
index 92e9ae78ea..5b6df16b7b 100644
--- a/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.h
+++ b/lib/asn1c/s1ap/S1AP_IntendedNumberOfPagingAttempts.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IntendedNumberOfPagingAttempts_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_IntendedNumberOfPagingAttempts;
asn_struct_free_f S1AP_IntendedNumberOfPagingAttempts_free;
asn_struct_print_f S1AP_IntendedNumberOfPagingAttempts_print;
asn_constr_check_f S1AP_IntendedNumberOfPagingAttempts_constraint;
-jer_type_encoder_f S1AP_IntendedNumberOfPagingAttempts_encode_jer;
per_type_decoder_f S1AP_IntendedNumberOfPagingAttempts_decode_aper;
per_type_encoder_f S1AP_IntendedNumberOfPagingAttempts_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.c b/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.c
index 9166c1142a..333f88d250 100644
--- a/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.c
+++ b/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Inter-SystemInformationTransferType.h"
diff --git a/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.h b/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.h
index 260ad4e2f9..330c7e0f0b 100644
--- a/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.h
+++ b/lib/asn1c/s1ap/S1AP_Inter-SystemInformationTransferType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Inter_SystemInformationTransferType_H_
diff --git a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.c b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.c
index c9362b98cc..319b39c67a 100644
--- a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.c
+++ b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InterSystemMeasurementItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.h b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.h
index f53cab9975..bfb13871e7 100644
--- a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.h
+++ b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InterSystemMeasurementItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.c b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.c
index 17dbad4aa3..52ca33c0ff 100644
--- a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.c
+++ b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InterSystemMeasurementList.h"
diff --git a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.h b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.h
index 02f5dc1a38..d0ee61d0b9 100644
--- a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.h
+++ b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InterSystemMeasurementList_H_
diff --git a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.c b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.c
index 21f248b0a8..7bcf60d887 100644
--- a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.c
+++ b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InterSystemMeasurementParameters.h"
diff --git a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.h b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.h
index bd4b00f021..12a5e49a5a 100644
--- a/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.h
+++ b/lib/asn1c/s1ap/S1AP_InterSystemMeasurementParameters.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InterSystemMeasurementParameters_H_
diff --git a/lib/asn1c/s1ap/S1AP_InterfacesToTrace.c b/lib/asn1c/s1ap/S1AP_InterfacesToTrace.c
index 1cd6cd1795..9104de3e92 100644
--- a/lib/asn1c/s1ap/S1AP_InterfacesToTrace.c
+++ b/lib/asn1c/s1ap/S1AP_InterfacesToTrace.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_InterfacesToTrace.h"
diff --git a/lib/asn1c/s1ap/S1AP_InterfacesToTrace.h b/lib/asn1c/s1ap/S1AP_InterfacesToTrace.h
index 432c55c40c..e3d68f6d97 100644
--- a/lib/asn1c/s1ap/S1AP_InterfacesToTrace.h
+++ b/lib/asn1c/s1ap/S1AP_InterfacesToTrace.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_InterfacesToTrace_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_InterfacesToTrace;
asn_struct_free_f S1AP_InterfacesToTrace_free;
asn_struct_print_f S1AP_InterfacesToTrace_print;
asn_constr_check_f S1AP_InterfacesToTrace_constraint;
-jer_type_encoder_f S1AP_InterfacesToTrace_encode_jer;
per_type_decoder_f S1AP_InterfacesToTrace_decode_aper;
per_type_encoder_f S1AP_InterfacesToTrace_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.c b/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.c
index 801ff63ae3..b56cca68b8 100644
--- a/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.c
+++ b/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IntersystemMeasurementConfiguration.h"
diff --git a/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.h b/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.h
index 08c6eb2c6d..55e03b3e8f 100644
--- a/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.h
+++ b/lib/asn1c/s1ap/S1AP_IntersystemMeasurementConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IntersystemMeasurementConfiguration_H_
diff --git a/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.c b/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.c
index c735fdcf8a..b57413ff07 100644
--- a/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_IntersystemSONConfigurationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.h b/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.h
index 50e74c0529..573cc1a202 100644
--- a/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_IntersystemSONConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_IntersystemSONConfigurationTransfer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_IntersystemSONConfigurationTransfer;
asn_struct_free_f S1AP_IntersystemSONConfigurationTransfer_free;
asn_struct_print_f S1AP_IntersystemSONConfigurationTransfer_print;
asn_constr_check_f S1AP_IntersystemSONConfigurationTransfer_constraint;
-jer_type_encoder_f S1AP_IntersystemSONConfigurationTransfer_encode_jer;
per_type_decoder_f S1AP_IntersystemSONConfigurationTransfer_decode_aper;
per_type_encoder_f S1AP_IntersystemSONConfigurationTransfer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.c b/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.c
index 7cc582bf0a..1e44dee0b5 100644
--- a/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.c
+++ b/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_KillAllWarningMessages.h"
diff --git a/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.h b/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.h
index 46cc2eb364..0e87991861 100644
--- a/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.h
+++ b/lib/asn1c/s1ap/S1AP_KillAllWarningMessages.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_KillAllWarningMessages_H_
@@ -33,7 +33,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_KillAllWarningMessages_specs_1
asn_struct_free_f S1AP_KillAllWarningMessages_free;
asn_struct_print_f S1AP_KillAllWarningMessages_print;
asn_constr_check_f S1AP_KillAllWarningMessages_constraint;
-jer_type_encoder_f S1AP_KillAllWarningMessages_encode_jer;
per_type_decoder_f S1AP_KillAllWarningMessages_decode_aper;
per_type_encoder_f S1AP_KillAllWarningMessages_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_KillRequest.c b/lib/asn1c/s1ap/S1AP_KillRequest.c
index ee3e9ba66d..0070f861d0 100644
--- a/lib/asn1c/s1ap/S1AP_KillRequest.c
+++ b/lib/asn1c/s1ap/S1AP_KillRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_KillRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_KillRequest.h b/lib/asn1c/s1ap/S1AP_KillRequest.h
index a52645a64c..692b4a7407 100644
--- a/lib/asn1c/s1ap/S1AP_KillRequest.h
+++ b/lib/asn1c/s1ap/S1AP_KillRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_KillRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_KillResponse.c b/lib/asn1c/s1ap/S1AP_KillResponse.c
index 958e44d1a1..8d939c2ea3 100644
--- a/lib/asn1c/s1ap/S1AP_KillResponse.c
+++ b/lib/asn1c/s1ap/S1AP_KillResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_KillResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_KillResponse.h b/lib/asn1c/s1ap/S1AP_KillResponse.h
index e258c56b33..844c51a0e8 100644
--- a/lib/asn1c/s1ap/S1AP_KillResponse.h
+++ b/lib/asn1c/s1ap/S1AP_KillResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_KillResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_L3-Information.c b/lib/asn1c/s1ap/S1AP_L3-Information.c
index 8f1d23a6e5..04282ec5eb 100644
--- a/lib/asn1c/s1ap/S1AP_L3-Information.c
+++ b/lib/asn1c/s1ap/S1AP_L3-Information.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_L3-Information.h"
diff --git a/lib/asn1c/s1ap/S1AP_L3-Information.h b/lib/asn1c/s1ap/S1AP_L3-Information.h
index bbfe73acdb..62e7c6a38f 100644
--- a/lib/asn1c/s1ap/S1AP_L3-Information.h
+++ b/lib/asn1c/s1ap/S1AP_L3-Information.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_L3_Information_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_L3_Information;
asn_struct_free_f S1AP_L3_Information_free;
asn_struct_print_f S1AP_L3_Information_print;
asn_constr_check_f S1AP_L3_Information_constraint;
-jer_type_encoder_f S1AP_L3_Information_encode_jer;
per_type_decoder_f S1AP_L3_Information_decode_aper;
per_type_encoder_f S1AP_L3_Information_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_LAC.c b/lib/asn1c/s1ap/S1AP_LAC.c
index 06a79671b5..cda8b07812 100644
--- a/lib/asn1c/s1ap/S1AP_LAC.c
+++ b/lib/asn1c/s1ap/S1AP_LAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LAC.h"
diff --git a/lib/asn1c/s1ap/S1AP_LAC.h b/lib/asn1c/s1ap/S1AP_LAC.h
index da80a841f9..329130d121 100644
--- a/lib/asn1c/s1ap/S1AP_LAC.h
+++ b/lib/asn1c/s1ap/S1AP_LAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_LAC;
asn_struct_free_f S1AP_LAC_free;
asn_struct_print_f S1AP_LAC_print;
asn_constr_check_f S1AP_LAC_constraint;
-jer_type_encoder_f S1AP_LAC_encode_jer;
per_type_decoder_f S1AP_LAC_decode_aper;
per_type_encoder_f S1AP_LAC_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_LAI.c b/lib/asn1c/s1ap/S1AP_LAI.c
index 4f6d45468c..3ca82be3f9 100644
--- a/lib/asn1c/s1ap/S1AP_LAI.c
+++ b/lib/asn1c/s1ap/S1AP_LAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LAI.h"
diff --git a/lib/asn1c/s1ap/S1AP_LAI.h b/lib/asn1c/s1ap/S1AP_LAI.h
index 9b3f4d490e..7aa1674f84 100644
--- a/lib/asn1c/s1ap/S1AP_LAI.h
+++ b/lib/asn1c/s1ap/S1AP_LAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LAI_H_
diff --git a/lib/asn1c/s1ap/S1AP_LHN-ID.c b/lib/asn1c/s1ap/S1AP_LHN-ID.c
index edd1fedb0e..e7fe465fdc 100644
--- a/lib/asn1c/s1ap/S1AP_LHN-ID.c
+++ b/lib/asn1c/s1ap/S1AP_LHN-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LHN-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_LHN-ID.h b/lib/asn1c/s1ap/S1AP_LHN-ID.h
index 50b88c6b64..ecf817bdaf 100644
--- a/lib/asn1c/s1ap/S1AP_LHN-ID.h
+++ b/lib/asn1c/s1ap/S1AP_LHN-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LHN_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_LHN_ID;
asn_struct_free_f S1AP_LHN_ID_free;
asn_struct_print_f S1AP_LHN_ID_print;
asn_constr_check_f S1AP_LHN_ID_constraint;
-jer_type_encoder_f S1AP_LHN_ID_encode_jer;
per_type_decoder_f S1AP_LHN_ID_decode_aper;
per_type_encoder_f S1AP_LHN_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_LPPa-PDU.c b/lib/asn1c/s1ap/S1AP_LPPa-PDU.c
index 83e22d6089..286dce4021 100644
--- a/lib/asn1c/s1ap/S1AP_LPPa-PDU.c
+++ b/lib/asn1c/s1ap/S1AP_LPPa-PDU.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LPPa-PDU.h"
diff --git a/lib/asn1c/s1ap/S1AP_LPPa-PDU.h b/lib/asn1c/s1ap/S1AP_LPPa-PDU.h
index 556e7efc3c..830a7f5471 100644
--- a/lib/asn1c/s1ap/S1AP_LPPa-PDU.h
+++ b/lib/asn1c/s1ap/S1AP_LPPa-PDU.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LPPa_PDU_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_LPPa_PDU;
asn_struct_free_f S1AP_LPPa_PDU_free;
asn_struct_print_f S1AP_LPPa_PDU_print;
asn_constr_check_f S1AP_LPPa_PDU_constraint;
-jer_type_encoder_f S1AP_LPPa_PDU_encode_jer;
per_type_decoder_f S1AP_LPPa_PDU_decode_aper;
per_type_encoder_f S1AP_LPPa_PDU_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_LTE-M-Indication.c b/lib/asn1c/s1ap/S1AP_LTE-M-Indication.c
index 4aa5a18a70..19d2e9c9c2 100644
--- a/lib/asn1c/s1ap/S1AP_LTE-M-Indication.c
+++ b/lib/asn1c/s1ap/S1AP_LTE-M-Indication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LTE-M-Indication.h"
diff --git a/lib/asn1c/s1ap/S1AP_LTE-M-Indication.h b/lib/asn1c/s1ap/S1AP_LTE-M-Indication.h
index 712b06dbef..12605d550c 100644
--- a/lib/asn1c/s1ap/S1AP_LTE-M-Indication.h
+++ b/lib/asn1c/s1ap/S1AP_LTE-M-Indication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LTE_M_Indication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_LTE_M_Indication_specs_1;
asn_struct_free_f S1AP_LTE_M_Indication_free;
asn_struct_print_f S1AP_LTE_M_Indication_print;
asn_constr_check_f S1AP_LTE_M_Indication_constraint;
-jer_type_encoder_f S1AP_LTE_M_Indication_encode_jer;
per_type_decoder_f S1AP_LTE_M_Indication_decode_aper;
per_type_encoder_f S1AP_LTE_M_Indication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.c b/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.c
index 859a3888ff..4e96c6f93b 100644
--- a/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.c
+++ b/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LTE-NTN-TAI-Information.h"
diff --git a/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.h b/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.h
index 8d44697bb7..407c825323 100644
--- a/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.h
+++ b/lib/asn1c/s1ap/S1AP_LTE-NTN-TAI-Information.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LTE_NTN_TAI_Information_H_
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.c b/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.c
index a80eb14810..0e524ea673 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.c
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LastVisitedCell-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.h b/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.h
index 603dece3d2..d9bc7dfc6d 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.h
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedCell-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LastVisitedCell_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.c b/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.c
index 87157e033c..eeac28657b 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.c
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LastVisitedEUTRANCellInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.h b/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.h
index f4d8f0f5dd..b25c49bb04 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.h
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedEUTRANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LastVisitedEUTRANCellInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.c b/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.c
index 66c7ec24ee..777f72b422 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.c
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LastVisitedGERANCellInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.h b/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.h
index 0bc34cefba..c0eb05f51b 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.h
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedGERANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LastVisitedGERANCellInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.c b/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.c
index 901e46430c..b4a0b0953b 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.c
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LastVisitedNGRANCellInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.h b/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.h
index 4ea92bf687..f177cf8c0f 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.h
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedNGRANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LastVisitedNGRANCellInformation_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_LastVisitedNGRANCellInformation;
asn_struct_free_f S1AP_LastVisitedNGRANCellInformation_free;
asn_struct_print_f S1AP_LastVisitedNGRANCellInformation_print;
asn_constr_check_f S1AP_LastVisitedNGRANCellInformation_constraint;
-jer_type_encoder_f S1AP_LastVisitedNGRANCellInformation_encode_jer;
per_type_decoder_f S1AP_LastVisitedNGRANCellInformation_decode_aper;
per_type_encoder_f S1AP_LastVisitedNGRANCellInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.c b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.c
index 090bd83966..7e022d6127 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.c
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LastVisitedPSCellInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.h b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.h
index 32c0031960..237a6d3025 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.h
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LastVisitedPSCellInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.c b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.c
index dd48afc362..bf64c12645 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.c
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LastVisitedPSCellList.h"
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.h b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.h
index c06241dde4..1a6621140e 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.h
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedPSCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LastVisitedPSCellList_H_
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.c b/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.c
index 25d1bf6949..8bc0b0412c 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.c
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LastVisitedUTRANCellInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.h b/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.h
index b63cdeec0e..8a5d6fc203 100644
--- a/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.h
+++ b/lib/asn1c/s1ap/S1AP_LastVisitedUTRANCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LastVisitedUTRANCellInformation_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_LastVisitedUTRANCellInformation;
asn_struct_free_f S1AP_LastVisitedUTRANCellInformation_free;
asn_struct_print_f S1AP_LastVisitedUTRANCellInformation_print;
asn_constr_check_f S1AP_LastVisitedUTRANCellInformation_constraint;
-jer_type_encoder_f S1AP_LastVisitedUTRANCellInformation_encode_jer;
per_type_decoder_f S1AP_LastVisitedUTRANCellInformation_decode_aper;
per_type_encoder_f S1AP_LastVisitedUTRANCellInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Links-to-log.c b/lib/asn1c/s1ap/S1AP_Links-to-log.c
index 728e6c3ae6..de7c1d5c4f 100644
--- a/lib/asn1c/s1ap/S1AP_Links-to-log.c
+++ b/lib/asn1c/s1ap/S1AP_Links-to-log.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Links-to-log.h"
diff --git a/lib/asn1c/s1ap/S1AP_Links-to-log.h b/lib/asn1c/s1ap/S1AP_Links-to-log.h
index f1f9b14367..c3107880c1 100644
--- a/lib/asn1c/s1ap/S1AP_Links-to-log.h
+++ b/lib/asn1c/s1ap/S1AP_Links-to-log.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Links_to_log_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Links_to_log_specs_1;
asn_struct_free_f S1AP_Links_to_log_free;
asn_struct_print_f S1AP_Links_to_log_print;
asn_constr_check_f S1AP_Links_to_log_constraint;
-jer_type_encoder_f S1AP_Links_to_log_encode_jer;
per_type_decoder_f S1AP_Links_to_log_decode_aper;
per_type_encoder_f S1AP_Links_to_log_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.c b/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.c
index 6e6c8f771c..eff60483a8 100644
--- a/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.c
+++ b/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ListeningSubframePattern.h"
diff --git a/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.h b/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.h
index 377f27717a..e40de6a877 100644
--- a/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.h
+++ b/lib/asn1c/s1ap/S1AP_ListeningSubframePattern.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ListeningSubframePattern_H_
diff --git a/lib/asn1c/s1ap/S1AP_LocationReport.c b/lib/asn1c/s1ap/S1AP_LocationReport.c
index 4616b21db4..9e61bd578c 100644
--- a/lib/asn1c/s1ap/S1AP_LocationReport.c
+++ b/lib/asn1c/s1ap/S1AP_LocationReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LocationReport.h"
diff --git a/lib/asn1c/s1ap/S1AP_LocationReport.h b/lib/asn1c/s1ap/S1AP_LocationReport.h
index 5b744c887c..2d4355078e 100644
--- a/lib/asn1c/s1ap/S1AP_LocationReport.h
+++ b/lib/asn1c/s1ap/S1AP_LocationReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LocationReport_H_
diff --git a/lib/asn1c/s1ap/S1AP_LocationReportingControl.c b/lib/asn1c/s1ap/S1AP_LocationReportingControl.c
index b7729ab6e1..cb717c2d8d 100644
--- a/lib/asn1c/s1ap/S1AP_LocationReportingControl.c
+++ b/lib/asn1c/s1ap/S1AP_LocationReportingControl.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LocationReportingControl.h"
diff --git a/lib/asn1c/s1ap/S1AP_LocationReportingControl.h b/lib/asn1c/s1ap/S1AP_LocationReportingControl.h
index 6fc5cd5837..94ce8ef7c6 100644
--- a/lib/asn1c/s1ap/S1AP_LocationReportingControl.h
+++ b/lib/asn1c/s1ap/S1AP_LocationReportingControl.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LocationReportingControl_H_
diff --git a/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.c b/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.c
index 1cea6a6c91..2906973e36 100644
--- a/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.c
+++ b/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LocationReportingFailureIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.h b/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.h
index a9034383ab..ece84b9f11 100644
--- a/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.h
+++ b/lib/asn1c/s1ap/S1AP_LocationReportingFailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LocationReportingFailureIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.c b/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.c
index 224e57a2e8..c11e39e1fb 100644
--- a/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.c
+++ b/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LoggedMBSFNMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.h b/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.h
index 3c99014b58..cd55a6a16b 100644
--- a/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.h
+++ b/lib/asn1c/s1ap/S1AP_LoggedMBSFNMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LoggedMBSFNMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_LoggedMDT.c b/lib/asn1c/s1ap/S1AP_LoggedMDT.c
index e36eda1f79..b7ef44fd3c 100644
--- a/lib/asn1c/s1ap/S1AP_LoggedMDT.c
+++ b/lib/asn1c/s1ap/S1AP_LoggedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LoggedMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_LoggedMDT.h b/lib/asn1c/s1ap/S1AP_LoggedMDT.h
index ab75b55814..463d7e12c4 100644
--- a/lib/asn1c/s1ap/S1AP_LoggedMDT.h
+++ b/lib/asn1c/s1ap/S1AP_LoggedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LoggedMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.c b/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.c
index 5620f621be..f9db525c10 100644
--- a/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.c
+++ b/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LoggedMDTTrigger.h"
diff --git a/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.h b/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.h
index 7f1bbcf6be..7c00ffa59c 100644
--- a/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.h
+++ b/lib/asn1c/s1ap/S1AP_LoggedMDTTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LoggedMDTTrigger_H_
diff --git a/lib/asn1c/s1ap/S1AP_LoggingDuration.c b/lib/asn1c/s1ap/S1AP_LoggingDuration.c
index 2f2dfb524a..caadffb25e 100644
--- a/lib/asn1c/s1ap/S1AP_LoggingDuration.c
+++ b/lib/asn1c/s1ap/S1AP_LoggingDuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LoggingDuration.h"
diff --git a/lib/asn1c/s1ap/S1AP_LoggingDuration.h b/lib/asn1c/s1ap/S1AP_LoggingDuration.h
index 57f7b350b5..d7d37c0738 100644
--- a/lib/asn1c/s1ap/S1AP_LoggingDuration.h
+++ b/lib/asn1c/s1ap/S1AP_LoggingDuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LoggingDuration_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_LoggingDuration_specs_1;
asn_struct_free_f S1AP_LoggingDuration_free;
asn_struct_print_f S1AP_LoggingDuration_print;
asn_constr_check_f S1AP_LoggingDuration_constraint;
-jer_type_encoder_f S1AP_LoggingDuration_encode_jer;
per_type_decoder_f S1AP_LoggingDuration_decode_aper;
per_type_encoder_f S1AP_LoggingDuration_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_LoggingInterval.c b/lib/asn1c/s1ap/S1AP_LoggingInterval.c
index 43c9c09c30..2d3ef303f2 100644
--- a/lib/asn1c/s1ap/S1AP_LoggingInterval.c
+++ b/lib/asn1c/s1ap/S1AP_LoggingInterval.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_LoggingInterval.h"
diff --git a/lib/asn1c/s1ap/S1AP_LoggingInterval.h b/lib/asn1c/s1ap/S1AP_LoggingInterval.h
index 813000165a..d875332ac1 100644
--- a/lib/asn1c/s1ap/S1AP_LoggingInterval.h
+++ b/lib/asn1c/s1ap/S1AP_LoggingInterval.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_LoggingInterval_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_LoggingInterval_specs_1;
asn_struct_free_f S1AP_LoggingInterval_free;
asn_struct_print_f S1AP_LoggingInterval_print;
asn_constr_check_f S1AP_LoggingInterval_constraint;
-jer_type_encoder_f S1AP_LoggingInterval_encode_jer;
per_type_decoder_f S1AP_LoggingInterval_decode_aper;
per_type_encoder_f S1AP_LoggingInterval_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M-TMSI.c b/lib/asn1c/s1ap/S1AP_M-TMSI.c
index ded865a4cb..6d09809aed 100644
--- a/lib/asn1c/s1ap/S1AP_M-TMSI.c
+++ b/lib/asn1c/s1ap/S1AP_M-TMSI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M-TMSI.h"
diff --git a/lib/asn1c/s1ap/S1AP_M-TMSI.h b/lib/asn1c/s1ap/S1AP_M-TMSI.h
index 3ca7afcbf7..00355adf68 100644
--- a/lib/asn1c/s1ap/S1AP_M-TMSI.h
+++ b/lib/asn1c/s1ap/S1AP_M-TMSI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M_TMSI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_M_TMSI;
asn_struct_free_f S1AP_M_TMSI_free;
asn_struct_print_f S1AP_M_TMSI_print;
asn_constr_check_f S1AP_M_TMSI_constraint;
-jer_type_encoder_f S1AP_M_TMSI_encode_jer;
per_type_decoder_f S1AP_M_TMSI_decode_aper;
per_type_encoder_f S1AP_M_TMSI_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.c b/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.c
index 8d7dda8ae8..9a123673fb 100644
--- a/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.c
+++ b/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M1PeriodicReporting.h"
diff --git a/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.h b/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.h
index 320fb3fcc7..9498c67fdc 100644
--- a/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.h
+++ b/lib/asn1c/s1ap/S1AP_M1PeriodicReporting.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M1PeriodicReporting_H_
diff --git a/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.c b/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.c
index fc2d418978..82a557fc8d 100644
--- a/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.c
+++ b/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M1ReportingTrigger.h"
diff --git a/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.h b/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.h
index 57e1aa9153..88222a7fd6 100644
--- a/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.h
+++ b/lib/asn1c/s1ap/S1AP_M1ReportingTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M1ReportingTrigger_H_
@@ -38,7 +38,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_M1ReportingTrigger_specs_1;
asn_struct_free_f S1AP_M1ReportingTrigger_free;
asn_struct_print_f S1AP_M1ReportingTrigger_print;
asn_constr_check_f S1AP_M1ReportingTrigger_constraint;
-jer_type_encoder_f S1AP_M1ReportingTrigger_encode_jer;
per_type_decoder_f S1AP_M1ReportingTrigger_decode_aper;
per_type_encoder_f S1AP_M1ReportingTrigger_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.c b/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.c
index 60ed1f05bc..b6042eafe6 100644
--- a/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.c
+++ b/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M1ThresholdEventA2.h"
diff --git a/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.h b/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.h
index 877f86083b..4281278550 100644
--- a/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.h
+++ b/lib/asn1c/s1ap/S1AP_M1ThresholdEventA2.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M1ThresholdEventA2_H_
diff --git a/lib/asn1c/s1ap/S1AP_M3Configuration.c b/lib/asn1c/s1ap/S1AP_M3Configuration.c
index 8db376aa3c..910c50d35b 100644
--- a/lib/asn1c/s1ap/S1AP_M3Configuration.c
+++ b/lib/asn1c/s1ap/S1AP_M3Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M3Configuration.h"
diff --git a/lib/asn1c/s1ap/S1AP_M3Configuration.h b/lib/asn1c/s1ap/S1AP_M3Configuration.h
index f2db08affe..7995d5960b 100644
--- a/lib/asn1c/s1ap/S1AP_M3Configuration.h
+++ b/lib/asn1c/s1ap/S1AP_M3Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M3Configuration_H_
diff --git a/lib/asn1c/s1ap/S1AP_M3period.c b/lib/asn1c/s1ap/S1AP_M3period.c
index f39c03186f..d2c49820ee 100644
--- a/lib/asn1c/s1ap/S1AP_M3period.c
+++ b/lib/asn1c/s1ap/S1AP_M3period.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M3period.h"
diff --git a/lib/asn1c/s1ap/S1AP_M3period.h b/lib/asn1c/s1ap/S1AP_M3period.h
index 3cb3743fe5..c7263dd396 100644
--- a/lib/asn1c/s1ap/S1AP_M3period.h
+++ b/lib/asn1c/s1ap/S1AP_M3period.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M3period_H_
@@ -45,7 +45,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_M3period_specs_1;
asn_struct_free_f S1AP_M3period_free;
asn_struct_print_f S1AP_M3period_print;
asn_constr_check_f S1AP_M3period_constraint;
-jer_type_encoder_f S1AP_M3period_encode_jer;
per_type_decoder_f S1AP_M3period_decode_aper;
per_type_encoder_f S1AP_M3period_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M4Configuration.c b/lib/asn1c/s1ap/S1AP_M4Configuration.c
index 0b469cc610..fe30a3ff3b 100644
--- a/lib/asn1c/s1ap/S1AP_M4Configuration.c
+++ b/lib/asn1c/s1ap/S1AP_M4Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M4Configuration.h"
diff --git a/lib/asn1c/s1ap/S1AP_M4Configuration.h b/lib/asn1c/s1ap/S1AP_M4Configuration.h
index d24efd6d68..b3e490fdd7 100644
--- a/lib/asn1c/s1ap/S1AP_M4Configuration.h
+++ b/lib/asn1c/s1ap/S1AP_M4Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M4Configuration_H_
diff --git a/lib/asn1c/s1ap/S1AP_M4period.c b/lib/asn1c/s1ap/S1AP_M4period.c
index 025e6ad9b1..95cd322f8e 100644
--- a/lib/asn1c/s1ap/S1AP_M4period.c
+++ b/lib/asn1c/s1ap/S1AP_M4period.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M4period.h"
diff --git a/lib/asn1c/s1ap/S1AP_M4period.h b/lib/asn1c/s1ap/S1AP_M4period.h
index de12dcb4b4..1030c87878 100644
--- a/lib/asn1c/s1ap/S1AP_M4period.h
+++ b/lib/asn1c/s1ap/S1AP_M4period.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M4period_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_M4period_specs_1;
asn_struct_free_f S1AP_M4period_free;
asn_struct_print_f S1AP_M4period_print;
asn_constr_check_f S1AP_M4period_constraint;
-jer_type_encoder_f S1AP_M4period_encode_jer;
per_type_decoder_f S1AP_M4period_decode_aper;
per_type_encoder_f S1AP_M4period_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M5Configuration.c b/lib/asn1c/s1ap/S1AP_M5Configuration.c
index 1e2ebeb2e2..b368d0ee14 100644
--- a/lib/asn1c/s1ap/S1AP_M5Configuration.c
+++ b/lib/asn1c/s1ap/S1AP_M5Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M5Configuration.h"
diff --git a/lib/asn1c/s1ap/S1AP_M5Configuration.h b/lib/asn1c/s1ap/S1AP_M5Configuration.h
index f2fd72eb06..ed7178a7e3 100644
--- a/lib/asn1c/s1ap/S1AP_M5Configuration.h
+++ b/lib/asn1c/s1ap/S1AP_M5Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M5Configuration_H_
diff --git a/lib/asn1c/s1ap/S1AP_M5period.c b/lib/asn1c/s1ap/S1AP_M5period.c
index a3cd91bd13..4e4973f90d 100644
--- a/lib/asn1c/s1ap/S1AP_M5period.c
+++ b/lib/asn1c/s1ap/S1AP_M5period.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M5period.h"
diff --git a/lib/asn1c/s1ap/S1AP_M5period.h b/lib/asn1c/s1ap/S1AP_M5period.h
index 6d214b4e80..451f71f246 100644
--- a/lib/asn1c/s1ap/S1AP_M5period.h
+++ b/lib/asn1c/s1ap/S1AP_M5period.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M5period_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_M5period_specs_1;
asn_struct_free_f S1AP_M5period_free;
asn_struct_print_f S1AP_M5period_print;
asn_constr_check_f S1AP_M5period_constraint;
-jer_type_encoder_f S1AP_M5period_encode_jer;
per_type_decoder_f S1AP_M5period_decode_aper;
per_type_encoder_f S1AP_M5period_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M6Configuration.c b/lib/asn1c/s1ap/S1AP_M6Configuration.c
index bc4e9d9fad..050f3fb688 100644
--- a/lib/asn1c/s1ap/S1AP_M6Configuration.c
+++ b/lib/asn1c/s1ap/S1AP_M6Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M6Configuration.h"
diff --git a/lib/asn1c/s1ap/S1AP_M6Configuration.h b/lib/asn1c/s1ap/S1AP_M6Configuration.h
index b971451374..566757e83b 100644
--- a/lib/asn1c/s1ap/S1AP_M6Configuration.h
+++ b/lib/asn1c/s1ap/S1AP_M6Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M6Configuration_H_
diff --git a/lib/asn1c/s1ap/S1AP_M6delay-threshold.c b/lib/asn1c/s1ap/S1AP_M6delay-threshold.c
index 1003dda6da..199d10e5aa 100644
--- a/lib/asn1c/s1ap/S1AP_M6delay-threshold.c
+++ b/lib/asn1c/s1ap/S1AP_M6delay-threshold.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M6delay-threshold.h"
diff --git a/lib/asn1c/s1ap/S1AP_M6delay-threshold.h b/lib/asn1c/s1ap/S1AP_M6delay-threshold.h
index 1af0dae3b9..0b92e866b8 100644
--- a/lib/asn1c/s1ap/S1AP_M6delay-threshold.h
+++ b/lib/asn1c/s1ap/S1AP_M6delay-threshold.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M6delay_threshold_H_
@@ -47,7 +47,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_M6delay_threshold_specs_1;
asn_struct_free_f S1AP_M6delay_threshold_free;
asn_struct_print_f S1AP_M6delay_threshold_print;
asn_constr_check_f S1AP_M6delay_threshold_constraint;
-jer_type_encoder_f S1AP_M6delay_threshold_encode_jer;
per_type_decoder_f S1AP_M6delay_threshold_decode_aper;
per_type_encoder_f S1AP_M6delay_threshold_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M6report-Interval.c b/lib/asn1c/s1ap/S1AP_M6report-Interval.c
index 872c8c8e42..b8f7b3bed3 100644
--- a/lib/asn1c/s1ap/S1AP_M6report-Interval.c
+++ b/lib/asn1c/s1ap/S1AP_M6report-Interval.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M6report-Interval.h"
diff --git a/lib/asn1c/s1ap/S1AP_M6report-Interval.h b/lib/asn1c/s1ap/S1AP_M6report-Interval.h
index 414ac34aef..baad88772e 100644
--- a/lib/asn1c/s1ap/S1AP_M6report-Interval.h
+++ b/lib/asn1c/s1ap/S1AP_M6report-Interval.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M6report_Interval_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_M6report_Interval_specs_1;
asn_struct_free_f S1AP_M6report_Interval_free;
asn_struct_print_f S1AP_M6report_Interval_print;
asn_constr_check_f S1AP_M6report_Interval_constraint;
-jer_type_encoder_f S1AP_M6report_Interval_encode_jer;
per_type_decoder_f S1AP_M6report_Interval_decode_aper;
per_type_encoder_f S1AP_M6report_Interval_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_M7Configuration.c b/lib/asn1c/s1ap/S1AP_M7Configuration.c
index 578f0b858c..17506c3f60 100644
--- a/lib/asn1c/s1ap/S1AP_M7Configuration.c
+++ b/lib/asn1c/s1ap/S1AP_M7Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M7Configuration.h"
diff --git a/lib/asn1c/s1ap/S1AP_M7Configuration.h b/lib/asn1c/s1ap/S1AP_M7Configuration.h
index 9207b55326..0d6789c98b 100644
--- a/lib/asn1c/s1ap/S1AP_M7Configuration.h
+++ b/lib/asn1c/s1ap/S1AP_M7Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M7Configuration_H_
diff --git a/lib/asn1c/s1ap/S1AP_M7period.c b/lib/asn1c/s1ap/S1AP_M7period.c
index a5e4619e96..130fb447d9 100644
--- a/lib/asn1c/s1ap/S1AP_M7period.c
+++ b/lib/asn1c/s1ap/S1AP_M7period.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_M7period.h"
diff --git a/lib/asn1c/s1ap/S1AP_M7period.h b/lib/asn1c/s1ap/S1AP_M7period.h
index d0ab309080..caa751f650 100644
--- a/lib/asn1c/s1ap/S1AP_M7period.h
+++ b/lib/asn1c/s1ap/S1AP_M7period.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_M7period_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_M7period;
asn_struct_free_f S1AP_M7period_free;
asn_struct_print_f S1AP_M7period_print;
asn_constr_check_f S1AP_M7period_constraint;
-jer_type_encoder_f S1AP_M7period_encode_jer;
per_type_decoder_f S1AP_M7period_decode_aper;
per_type_encoder_f S1AP_M7period_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.c b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.c
index 8ce805588e..87f724fcdd 100644
--- a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.c
+++ b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MBSFN-ResultToLog.h"
diff --git a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.h b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.h
index 057cfbe4a3..c9c6954a92 100644
--- a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.h
+++ b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLog.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MBSFN_ResultToLog_H_
diff --git a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.c b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.c
index 6cd689c3d7..241e58313a 100644
--- a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.c
+++ b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MBSFN-ResultToLogInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.h b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.h
index 1788e70ae1..592c1aa06e 100644
--- a/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.h
+++ b/lib/asn1c/s1ap/S1AP_MBSFN-ResultToLogInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MBSFN_ResultToLogInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_MDT-Activation.c b/lib/asn1c/s1ap/S1AP_MDT-Activation.c
index d25e689e91..0cd7182d3a 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-Activation.c
+++ b/lib/asn1c/s1ap/S1AP_MDT-Activation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MDT-Activation.h"
diff --git a/lib/asn1c/s1ap/S1AP_MDT-Activation.h b/lib/asn1c/s1ap/S1AP_MDT-Activation.h
index 9eaae257ed..f2e3338d18 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-Activation.h
+++ b/lib/asn1c/s1ap/S1AP_MDT-Activation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MDT_Activation_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_MDT_Activation_specs_1;
asn_struct_free_f S1AP_MDT_Activation_free;
asn_struct_print_f S1AP_MDT_Activation_print;
asn_constr_check_f S1AP_MDT_Activation_constraint;
-jer_type_encoder_f S1AP_MDT_Activation_encode_jer;
per_type_decoder_f S1AP_MDT_Activation_decode_aper;
per_type_encoder_f S1AP_MDT_Activation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MDT-Configuration.c b/lib/asn1c/s1ap/S1AP_MDT-Configuration.c
index 59cb96eb1a..bd506a1e7c 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-Configuration.c
+++ b/lib/asn1c/s1ap/S1AP_MDT-Configuration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MDT-Configuration.h"
diff --git a/lib/asn1c/s1ap/S1AP_MDT-Configuration.h b/lib/asn1c/s1ap/S1AP_MDT-Configuration.h
index 9e847c4a9a..8623b862ee 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-Configuration.h
+++ b/lib/asn1c/s1ap/S1AP_MDT-Configuration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MDT_Configuration_H_
diff --git a/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.c b/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.c
index 7bf13fa451..5f74c06480 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.c
+++ b/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MDT-ConfigurationNR.h"
diff --git a/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.h b/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.h
index 9ffe33b471..024afa89d3 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.h
+++ b/lib/asn1c/s1ap/S1AP_MDT-ConfigurationNR.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MDT_ConfigurationNR_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MDT_ConfigurationNR;
asn_struct_free_f S1AP_MDT_ConfigurationNR_free;
asn_struct_print_f S1AP_MDT_ConfigurationNR_print;
asn_constr_check_f S1AP_MDT_ConfigurationNR_constraint;
-jer_type_encoder_f S1AP_MDT_ConfigurationNR_encode_jer;
per_type_decoder_f S1AP_MDT_ConfigurationNR_decode_aper;
per_type_encoder_f S1AP_MDT_ConfigurationNR_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MDT-Location-Info.c b/lib/asn1c/s1ap/S1AP_MDT-Location-Info.c
index 10883bca01..5e1b0dd6ea 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-Location-Info.c
+++ b/lib/asn1c/s1ap/S1AP_MDT-Location-Info.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MDT-Location-Info.h"
diff --git a/lib/asn1c/s1ap/S1AP_MDT-Location-Info.h b/lib/asn1c/s1ap/S1AP_MDT-Location-Info.h
index 7e96662dfc..daa2e06061 100644
--- a/lib/asn1c/s1ap/S1AP_MDT-Location-Info.h
+++ b/lib/asn1c/s1ap/S1AP_MDT-Location-Info.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MDT_Location_Info_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MDT_Location_Info;
asn_struct_free_f S1AP_MDT_Location_Info_free;
asn_struct_print_f S1AP_MDT_Location_Info_print;
asn_constr_check_f S1AP_MDT_Location_Info_constraint;
-jer_type_encoder_f S1AP_MDT_Location_Info_encode_jer;
per_type_decoder_f S1AP_MDT_Location_Info_decode_aper;
per_type_encoder_f S1AP_MDT_Location_Info_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MDTMode-Extension.c b/lib/asn1c/s1ap/S1AP_MDTMode-Extension.c
index e21425047d..91f5d99c6f 100644
--- a/lib/asn1c/s1ap/S1AP_MDTMode-Extension.c
+++ b/lib/asn1c/s1ap/S1AP_MDTMode-Extension.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MDTMode-Extension.h"
diff --git a/lib/asn1c/s1ap/S1AP_MDTMode-Extension.h b/lib/asn1c/s1ap/S1AP_MDTMode-Extension.h
index 7f3cdcd640..dce95f3649 100644
--- a/lib/asn1c/s1ap/S1AP_MDTMode-Extension.h
+++ b/lib/asn1c/s1ap/S1AP_MDTMode-Extension.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MDTMode_Extension_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MDTMode_Extension;
asn_struct_free_f S1AP_MDTMode_Extension_free;
asn_struct_print_f S1AP_MDTMode_Extension_print;
asn_constr_check_f S1AP_MDTMode_Extension_constraint;
-jer_type_encoder_f S1AP_MDTMode_Extension_encode_jer;
per_type_decoder_f S1AP_MDTMode_Extension_decode_aper;
per_type_encoder_f S1AP_MDTMode_Extension_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MDTMode.c b/lib/asn1c/s1ap/S1AP_MDTMode.c
index 5a1e18fa97..51ee1f5dc6 100644
--- a/lib/asn1c/s1ap/S1AP_MDTMode.c
+++ b/lib/asn1c/s1ap/S1AP_MDTMode.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MDTMode.h"
diff --git a/lib/asn1c/s1ap/S1AP_MDTMode.h b/lib/asn1c/s1ap/S1AP_MDTMode.h
index 978b85624b..285d832178 100644
--- a/lib/asn1c/s1ap/S1AP_MDTMode.h
+++ b/lib/asn1c/s1ap/S1AP_MDTMode.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MDTMode_H_
diff --git a/lib/asn1c/s1ap/S1AP_MDTPLMNList.c b/lib/asn1c/s1ap/S1AP_MDTPLMNList.c
index 4a15c84ecc..ac82eb90cc 100644
--- a/lib/asn1c/s1ap/S1AP_MDTPLMNList.c
+++ b/lib/asn1c/s1ap/S1AP_MDTPLMNList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MDTPLMNList.h"
diff --git a/lib/asn1c/s1ap/S1AP_MDTPLMNList.h b/lib/asn1c/s1ap/S1AP_MDTPLMNList.h
index 8c1b73753d..4f0e04d674 100644
--- a/lib/asn1c/s1ap/S1AP_MDTPLMNList.h
+++ b/lib/asn1c/s1ap/S1AP_MDTPLMNList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MDTPLMNList_H_
diff --git a/lib/asn1c/s1ap/S1AP_MME-Code.c b/lib/asn1c/s1ap/S1AP_MME-Code.c
index 4fdef61edb..30f107b92f 100644
--- a/lib/asn1c/s1ap/S1AP_MME-Code.c
+++ b/lib/asn1c/s1ap/S1AP_MME-Code.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MME-Code.h"
diff --git a/lib/asn1c/s1ap/S1AP_MME-Code.h b/lib/asn1c/s1ap/S1AP_MME-Code.h
index 283e182610..71bff76895 100644
--- a/lib/asn1c/s1ap/S1AP_MME-Code.h
+++ b/lib/asn1c/s1ap/S1AP_MME-Code.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MME_Code_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MME_Code;
asn_struct_free_f S1AP_MME_Code_free;
asn_struct_print_f S1AP_MME_Code_print;
asn_constr_check_f S1AP_MME_Code_constraint;
-jer_type_encoder_f S1AP_MME_Code_encode_jer;
per_type_decoder_f S1AP_MME_Code_decode_aper;
per_type_encoder_f S1AP_MME_Code_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MME-Group-ID.c b/lib/asn1c/s1ap/S1AP_MME-Group-ID.c
index 82d42c6d0f..7f6b608471 100644
--- a/lib/asn1c/s1ap/S1AP_MME-Group-ID.c
+++ b/lib/asn1c/s1ap/S1AP_MME-Group-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MME-Group-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_MME-Group-ID.h b/lib/asn1c/s1ap/S1AP_MME-Group-ID.h
index c76cfe68d3..6666114b46 100644
--- a/lib/asn1c/s1ap/S1AP_MME-Group-ID.h
+++ b/lib/asn1c/s1ap/S1AP_MME-Group-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MME_Group_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MME_Group_ID;
asn_struct_free_f S1AP_MME_Group_ID_free;
asn_struct_print_f S1AP_MME_Group_ID_print;
asn_constr_check_f S1AP_MME_Group_ID_constraint;
-jer_type_encoder_f S1AP_MME_Group_ID_encode_jer;
per_type_decoder_f S1AP_MME_Group_ID_decode_aper;
per_type_encoder_f S1AP_MME_Group_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.c b/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.c
index eff81eaa34..e348351205 100644
--- a/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.c
+++ b/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MME-UE-S1AP-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.h b/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.h
index d29624cf8d..8e05efabe5 100644
--- a/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.h
+++ b/lib/asn1c/s1ap/S1AP_MME-UE-S1AP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MME_UE_S1AP_ID_H_
@@ -28,7 +28,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_MME_UE_S1AP_ID_specs_1;
asn_struct_free_f S1AP_MME_UE_S1AP_ID_free;
asn_struct_print_f S1AP_MME_UE_S1AP_ID_print;
asn_constr_check_f S1AP_MME_UE_S1AP_ID_constraint;
-jer_type_encoder_f S1AP_MME_UE_S1AP_ID_encode_jer;
per_type_decoder_f S1AP_MME_UE_S1AP_ID_decode_aper;
per_type_encoder_f S1AP_MME_UE_S1AP_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.c b/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.c
index 4ab596959a..7d0c9ccd1d 100644
--- a/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.c
+++ b/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMECPRelocationIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.h b/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.h
index 1cd84e8c0d..d5f33fc806 100644
--- a/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.h
+++ b/lib/asn1c/s1ap/S1AP_MMECPRelocationIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMECPRelocationIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.c b/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.c
index d108c497e9..6e93a7b929 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEConfigurationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.h b/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.h
index 3e7bcde403..1a631524c9 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEConfigurationTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.c b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.c
index 431f4b81f6..813f970083 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.c
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEConfigurationUpdate.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.h b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.h
index edde7130ad..a8302a7fe5 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.h
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEConfigurationUpdate_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.c b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.c
index 7a8e03397a..aa8ed5abf0 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.c
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEConfigurationUpdateAcknowledge.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.h b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.h
index 2716a069ea..d8c71ebdc8 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.h
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEConfigurationUpdateAcknowledge_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.c b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.c
index f60cccbfbf..844b5eb6d2 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.c
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEConfigurationUpdateFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.h b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.h
index 31b1e96c91..8f92c53419 100644
--- a/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.h
+++ b/lib/asn1c/s1ap/S1AP_MMEConfigurationUpdateFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEConfigurationUpdateFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.c b/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.c
index c4fd921a85..1b5ac36607 100644
--- a/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEDirectInformationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.h b/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.h
index 7e7b45a2bd..b017433a31 100644
--- a/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_MMEDirectInformationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEDirectInformationTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.c b/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.c
index d860326757..3fc759603a 100644
--- a/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEEarlyStatusTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.h b/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.h
index 4ca9c94a37..0022e813a4 100644
--- a/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_MMEEarlyStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEEarlyStatusTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEPagingTarget.c b/lib/asn1c/s1ap/S1AP_MMEPagingTarget.c
index 13e6ecc6a7..1f001e6d67 100644
--- a/lib/asn1c/s1ap/S1AP_MMEPagingTarget.c
+++ b/lib/asn1c/s1ap/S1AP_MMEPagingTarget.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEPagingTarget.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEPagingTarget.h b/lib/asn1c/s1ap/S1AP_MMEPagingTarget.h
index 7735584d14..980d79a7f1 100644
--- a/lib/asn1c/s1ap/S1AP_MMEPagingTarget.h
+++ b/lib/asn1c/s1ap/S1AP_MMEPagingTarget.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEPagingTarget_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.c b/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.c
index eb245fe6ac..7c176a23fa 100644
--- a/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMERelaySupportIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.h b/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.h
index 76a447807e..2fd8fe5721 100644
--- a/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_MMERelaySupportIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMERelaySupportIndicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_MMERelaySupportIndicator_specs
asn_struct_free_f S1AP_MMERelaySupportIndicator_free;
asn_struct_print_f S1AP_MMERelaySupportIndicator_print;
asn_constr_check_f S1AP_MMERelaySupportIndicator_constraint;
-jer_type_encoder_f S1AP_MMERelaySupportIndicator_encode_jer;
per_type_decoder_f S1AP_MMERelaySupportIndicator_decode_aper;
per_type_encoder_f S1AP_MMERelaySupportIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.c b/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.c
index 066b4bddda..3f7edec65b 100644
--- a/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEStatusTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.h b/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.h
index 6d5670af31..07b116372e 100644
--- a/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_MMEStatusTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEStatusTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_MMEname.c b/lib/asn1c/s1ap/S1AP_MMEname.c
index 11c38bd458..2e8be4f8ac 100644
--- a/lib/asn1c/s1ap/S1AP_MMEname.c
+++ b/lib/asn1c/s1ap/S1AP_MMEname.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MMEname.h"
diff --git a/lib/asn1c/s1ap/S1AP_MMEname.h b/lib/asn1c/s1ap/S1AP_MMEname.h
index c12ec1caf3..4b8caa084f 100644
--- a/lib/asn1c/s1ap/S1AP_MMEname.h
+++ b/lib/asn1c/s1ap/S1AP_MMEname.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MMEname_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MMEname;
asn_struct_free_f S1AP_MMEname_free;
asn_struct_print_f S1AP_MMEname_print;
asn_constr_check_f S1AP_MMEname_constraint;
-jer_type_encoder_f S1AP_MMEname_encode_jer;
per_type_decoder_f S1AP_MMEname_decode_aper;
per_type_encoder_f S1AP_MMEname_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MSClassmark2.c b/lib/asn1c/s1ap/S1AP_MSClassmark2.c
index 2d83b60ac3..db73ea5ff8 100644
--- a/lib/asn1c/s1ap/S1AP_MSClassmark2.c
+++ b/lib/asn1c/s1ap/S1AP_MSClassmark2.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MSClassmark2.h"
diff --git a/lib/asn1c/s1ap/S1AP_MSClassmark2.h b/lib/asn1c/s1ap/S1AP_MSClassmark2.h
index 902d36c1be..e2800f6bdc 100644
--- a/lib/asn1c/s1ap/S1AP_MSClassmark2.h
+++ b/lib/asn1c/s1ap/S1AP_MSClassmark2.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MSClassmark2_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MSClassmark2;
asn_struct_free_f S1AP_MSClassmark2_free;
asn_struct_print_f S1AP_MSClassmark2_print;
asn_constr_check_f S1AP_MSClassmark2_constraint;
-jer_type_encoder_f S1AP_MSClassmark2_encode_jer;
per_type_decoder_f S1AP_MSClassmark2_decode_aper;
per_type_encoder_f S1AP_MSClassmark2_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MSClassmark3.c b/lib/asn1c/s1ap/S1AP_MSClassmark3.c
index 3e25e8bbf5..030ed1fd7e 100644
--- a/lib/asn1c/s1ap/S1AP_MSClassmark3.c
+++ b/lib/asn1c/s1ap/S1AP_MSClassmark3.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MSClassmark3.h"
diff --git a/lib/asn1c/s1ap/S1AP_MSClassmark3.h b/lib/asn1c/s1ap/S1AP_MSClassmark3.h
index 15d57f3be8..edb6c75932 100644
--- a/lib/asn1c/s1ap/S1AP_MSClassmark3.h
+++ b/lib/asn1c/s1ap/S1AP_MSClassmark3.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MSClassmark3_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MSClassmark3;
asn_struct_free_f S1AP_MSClassmark3_free;
asn_struct_print_f S1AP_MSClassmark3_print;
asn_constr_check_f S1AP_MSClassmark3_constraint;
-jer_type_encoder_f S1AP_MSClassmark3_encode_jer;
per_type_decoder_f S1AP_MSClassmark3_decode_aper;
per_type_encoder_f S1AP_MSClassmark3_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.c b/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.c
index e1d21ee7ed..b84e4f6004 100644
--- a/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.c
+++ b/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ManagementBasedMDTAllowed.h"
diff --git a/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.h b/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.h
index 57bf77b7a5..78d0bcf58c 100644
--- a/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.h
+++ b/lib/asn1c/s1ap/S1AP_ManagementBasedMDTAllowed.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ManagementBasedMDTAllowed_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ManagementBasedMDTAllowed_spec
asn_struct_free_f S1AP_ManagementBasedMDTAllowed_free;
asn_struct_print_f S1AP_ManagementBasedMDTAllowed_print;
asn_constr_check_f S1AP_ManagementBasedMDTAllowed_constraint;
-jer_type_encoder_f S1AP_ManagementBasedMDTAllowed_encode_jer;
per_type_decoder_f S1AP_ManagementBasedMDTAllowed_decode_aper;
per_type_encoder_f S1AP_ManagementBasedMDTAllowed_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Masked-IMEISV.c b/lib/asn1c/s1ap/S1AP_Masked-IMEISV.c
index 9fd97689e0..5afec4785e 100644
--- a/lib/asn1c/s1ap/S1AP_Masked-IMEISV.c
+++ b/lib/asn1c/s1ap/S1AP_Masked-IMEISV.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Masked-IMEISV.h"
diff --git a/lib/asn1c/s1ap/S1AP_Masked-IMEISV.h b/lib/asn1c/s1ap/S1AP_Masked-IMEISV.h
index 653beb8d96..ce580b3e1d 100644
--- a/lib/asn1c/s1ap/S1AP_Masked-IMEISV.h
+++ b/lib/asn1c/s1ap/S1AP_Masked-IMEISV.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Masked_IMEISV_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Masked_IMEISV;
asn_struct_free_f S1AP_Masked_IMEISV_free;
asn_struct_print_f S1AP_Masked_IMEISV_print;
asn_constr_check_f S1AP_Masked_IMEISV_constraint;
-jer_type_encoder_f S1AP_Masked_IMEISV_encode_jer;
per_type_decoder_f S1AP_Masked_IMEISV_decode_aper;
per_type_encoder_f S1AP_Masked_IMEISV_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.c b/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.c
index 22accfcc31..2f90d2d11a 100644
--- a/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.c
+++ b/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MeasurementThresholdA2.h"
diff --git a/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.h b/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.h
index b99b07bfaa..75d8d0024d 100644
--- a/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.h
+++ b/lib/asn1c/s1ap/S1AP_MeasurementThresholdA2.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MeasurementThresholdA2_H_
diff --git a/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.c b/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.c
index 8ae674ae1a..3506c8a2b1 100644
--- a/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.c
+++ b/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MeasurementThresholdL1LoggedMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.h b/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.h
index e5dc2c9301..6e71f13e08 100644
--- a/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.h
+++ b/lib/asn1c/s1ap/S1AP_MeasurementThresholdL1LoggedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MeasurementThresholdL1LoggedMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.c b/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.c
index 8385648295..ffc01cc50b 100644
--- a/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.c
+++ b/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MeasurementsToActivate.h"
diff --git a/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.h b/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.h
index 0b97abc1f4..5210dd5d87 100644
--- a/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.h
+++ b/lib/asn1c/s1ap/S1AP_MeasurementsToActivate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MeasurementsToActivate_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MeasurementsToActivate;
asn_struct_free_f S1AP_MeasurementsToActivate_free;
asn_struct_print_f S1AP_MeasurementsToActivate_print;
asn_constr_check_f S1AP_MeasurementsToActivate_constraint;
-jer_type_encoder_f S1AP_MeasurementsToActivate_encode_jer;
per_type_decoder_f S1AP_MeasurementsToActivate_decode_aper;
per_type_encoder_f S1AP_MeasurementsToActivate_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MessageIdentifier.c b/lib/asn1c/s1ap/S1AP_MessageIdentifier.c
index 37ed18fedd..9f3b42eb7a 100644
--- a/lib/asn1c/s1ap/S1AP_MessageIdentifier.c
+++ b/lib/asn1c/s1ap/S1AP_MessageIdentifier.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MessageIdentifier.h"
diff --git a/lib/asn1c/s1ap/S1AP_MessageIdentifier.h b/lib/asn1c/s1ap/S1AP_MessageIdentifier.h
index 50360ffeec..1e28851bfd 100644
--- a/lib/asn1c/s1ap/S1AP_MessageIdentifier.h
+++ b/lib/asn1c/s1ap/S1AP_MessageIdentifier.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MessageIdentifier_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MessageIdentifier;
asn_struct_free_f S1AP_MessageIdentifier_free;
asn_struct_print_f S1AP_MessageIdentifier_print;
asn_constr_check_f S1AP_MessageIdentifier_constraint;
-jer_type_encoder_f S1AP_MessageIdentifier_encode_jer;
per_type_decoder_f S1AP_MessageIdentifier_decode_aper;
per_type_encoder_f S1AP_MessageIdentifier_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MobilityInformation.c b/lib/asn1c/s1ap/S1AP_MobilityInformation.c
index 735c771736..5d4da2ce42 100644
--- a/lib/asn1c/s1ap/S1AP_MobilityInformation.c
+++ b/lib/asn1c/s1ap/S1AP_MobilityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MobilityInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_MobilityInformation.h b/lib/asn1c/s1ap/S1AP_MobilityInformation.h
index 354ae696be..22373de7c7 100644
--- a/lib/asn1c/s1ap/S1AP_MobilityInformation.h
+++ b/lib/asn1c/s1ap/S1AP_MobilityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MobilityInformation_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_MobilityInformation;
asn_struct_free_f S1AP_MobilityInformation_free;
asn_struct_print_f S1AP_MobilityInformation_print;
asn_constr_check_f S1AP_MobilityInformation_constraint;
-jer_type_encoder_f S1AP_MobilityInformation_encode_jer;
per_type_decoder_f S1AP_MobilityInformation_decode_aper;
per_type_encoder_f S1AP_MobilityInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.c b/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.c
index 0e5097510f..81bfd51d72 100644
--- a/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.c
+++ b/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MutingAvailabilityIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.h b/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.h
index 4d0cb6f07a..7c13fd24ec 100644
--- a/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.h
+++ b/lib/asn1c/s1ap/S1AP_MutingAvailabilityIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MutingAvailabilityIndication_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_MutingAvailabilityIndication_s
asn_struct_free_f S1AP_MutingAvailabilityIndication_free;
asn_struct_print_f S1AP_MutingAvailabilityIndication_print;
asn_constr_check_f S1AP_MutingAvailabilityIndication_constraint;
-jer_type_encoder_f S1AP_MutingAvailabilityIndication_encode_jer;
per_type_decoder_f S1AP_MutingAvailabilityIndication_decode_aper;
per_type_encoder_f S1AP_MutingAvailabilityIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_MutingPatternInformation.c b/lib/asn1c/s1ap/S1AP_MutingPatternInformation.c
index 175c56ba41..1e784dd738 100644
--- a/lib/asn1c/s1ap/S1AP_MutingPatternInformation.c
+++ b/lib/asn1c/s1ap/S1AP_MutingPatternInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_MutingPatternInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_MutingPatternInformation.h b/lib/asn1c/s1ap/S1AP_MutingPatternInformation.h
index 57525373c4..189f37a92e 100644
--- a/lib/asn1c/s1ap/S1AP_MutingPatternInformation.h
+++ b/lib/asn1c/s1ap/S1AP_MutingPatternInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_MutingPatternInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_NAS-PDU.c b/lib/asn1c/s1ap/S1AP_NAS-PDU.c
index 918ebb3856..9896c87ecc 100644
--- a/lib/asn1c/s1ap/S1AP_NAS-PDU.c
+++ b/lib/asn1c/s1ap/S1AP_NAS-PDU.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NAS-PDU.h"
diff --git a/lib/asn1c/s1ap/S1AP_NAS-PDU.h b/lib/asn1c/s1ap/S1AP_NAS-PDU.h
index dcfbfa3d2a..131592bf94 100644
--- a/lib/asn1c/s1ap/S1AP_NAS-PDU.h
+++ b/lib/asn1c/s1ap/S1AP_NAS-PDU.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NAS_PDU_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NAS_PDU;
asn_struct_free_f S1AP_NAS_PDU_free;
asn_struct_print_f S1AP_NAS_PDU_print;
asn_constr_check_f S1AP_NAS_PDU_constraint;
-jer_type_encoder_f S1AP_NAS_PDU_encode_jer;
per_type_decoder_f S1AP_NAS_PDU_decode_aper;
per_type_encoder_f S1AP_NAS_PDU_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.c b/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.c
index 679662da43..bf8a76f374 100644
--- a/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.c
+++ b/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NASDeliveryIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.h b/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.h
index b3b32b8141..bf7ed875e4 100644
--- a/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.h
+++ b/lib/asn1c/s1ap/S1AP_NASDeliveryIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NASDeliveryIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.c b/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.c
index 195e1d8301..ca8704824c 100644
--- a/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.c
+++ b/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NASNonDeliveryIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.h b/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.h
index 83374601fa..83edd2e29d 100644
--- a/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.h
+++ b/lib/asn1c/s1ap/S1AP_NASNonDeliveryIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NASNonDeliveryIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.c b/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.c
index 6c65159671..34b4865f5c 100644
--- a/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.c
+++ b/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NASSecurityParametersfromE-UTRAN.h"
diff --git a/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.h b/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.h
index c4a556481e..16ca1bdfd5 100644
--- a/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.h
+++ b/lib/asn1c/s1ap/S1AP_NASSecurityParametersfromE-UTRAN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NASSecurityParametersfromE_UTRAN_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NASSecurityParametersfromE_UTRAN;
asn_struct_free_f S1AP_NASSecurityParametersfromE_UTRAN_free;
asn_struct_print_f S1AP_NASSecurityParametersfromE_UTRAN_print;
asn_constr_check_f S1AP_NASSecurityParametersfromE_UTRAN_constraint;
-jer_type_encoder_f S1AP_NASSecurityParametersfromE_UTRAN_encode_jer;
per_type_decoder_f S1AP_NASSecurityParametersfromE_UTRAN_decode_aper;
per_type_encoder_f S1AP_NASSecurityParametersfromE_UTRAN_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.c b/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.c
index 795292908d..d80c9fbea1 100644
--- a/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.c
+++ b/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NASSecurityParameterstoE-UTRAN.h"
diff --git a/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.h b/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.h
index bba52f3256..85d983a0de 100644
--- a/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.h
+++ b/lib/asn1c/s1ap/S1AP_NASSecurityParameterstoE-UTRAN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NASSecurityParameterstoE_UTRAN_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NASSecurityParameterstoE_UTRAN;
asn_struct_free_f S1AP_NASSecurityParameterstoE_UTRAN_free;
asn_struct_print_f S1AP_NASSecurityParameterstoE_UTRAN_print;
asn_constr_check_f S1AP_NASSecurityParameterstoE_UTRAN_constraint;
-jer_type_encoder_f S1AP_NASSecurityParameterstoE_UTRAN_encode_jer;
per_type_decoder_f S1AP_NASSecurityParameterstoE_UTRAN_decode_aper;
per_type_encoder_f S1AP_NASSecurityParameterstoE_UTRAN_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.c b/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.c
index c3e6f5adfa..be4d06d636 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.c
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NB-IoT-DefaultPagingDRX.h"
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.h b/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.h
index dccb4b7a73..bd50ee0bd8 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.h
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-DefaultPagingDRX.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NB_IoT_DefaultPagingDRX_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NB_IoT_DefaultPagingDRX_specs_
asn_struct_free_f S1AP_NB_IoT_DefaultPagingDRX_free;
asn_struct_print_f S1AP_NB_IoT_DefaultPagingDRX_print;
asn_constr_check_f S1AP_NB_IoT_DefaultPagingDRX_constraint;
-jer_type_encoder_f S1AP_NB_IoT_DefaultPagingDRX_encode_jer;
per_type_decoder_f S1AP_NB_IoT_DefaultPagingDRX_decode_aper;
per_type_encoder_f S1AP_NB_IoT_DefaultPagingDRX_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.c b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.c
index abead68f6b..d8e2232845 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.c
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NB-IoT-Paging-eDRX-Cycle.h"
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.h b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.h
index 47257bf7b5..eec827ecec 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.h
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRX-Cycle.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NB_IoT_Paging_eDRX_Cycle_H_
@@ -49,7 +49,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NB_IoT_Paging_eDRX_Cycle_specs
asn_struct_free_f S1AP_NB_IoT_Paging_eDRX_Cycle_free;
asn_struct_print_f S1AP_NB_IoT_Paging_eDRX_Cycle_print;
asn_constr_check_f S1AP_NB_IoT_Paging_eDRX_Cycle_constraint;
-jer_type_encoder_f S1AP_NB_IoT_Paging_eDRX_Cycle_encode_jer;
per_type_decoder_f S1AP_NB_IoT_Paging_eDRX_Cycle_decode_aper;
per_type_encoder_f S1AP_NB_IoT_Paging_eDRX_Cycle_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.c b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.c
index abc3e2a548..8d3f279236 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.c
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NB-IoT-Paging-eDRXInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.h b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.h
index 4cf0ce35c8..7b633f0195 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.h
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-Paging-eDRXInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NB_IoT_Paging_eDRXInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.c b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.c
index 60d3e046bf..dbe9ccdc66 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.c
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NB-IoT-PagingDRX.h"
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.h b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.h
index d33c58fed7..a3d1a76b0f 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.h
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingDRX.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NB_IoT_PagingDRX_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NB_IoT_PagingDRX_specs_1;
asn_struct_free_f S1AP_NB_IoT_PagingDRX_free;
asn_struct_print_f S1AP_NB_IoT_PagingDRX_print;
asn_constr_check_f S1AP_NB_IoT_PagingDRX_constraint;
-jer_type_encoder_f S1AP_NB_IoT_PagingDRX_encode_jer;
per_type_decoder_f S1AP_NB_IoT_PagingDRX_decode_aper;
per_type_encoder_f S1AP_NB_IoT_PagingDRX_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.c b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.c
index 9f97c7c627..ad4f4a6be4 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.c
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NB-IoT-PagingTimeWindow.h"
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.h b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.h
index 62b57acc07..ce07e21111 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.h
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-PagingTimeWindow.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NB_IoT_PagingTimeWindow_H_
@@ -51,7 +51,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NB_IoT_PagingTimeWindow_specs_
asn_struct_free_f S1AP_NB_IoT_PagingTimeWindow_free;
asn_struct_print_f S1AP_NB_IoT_PagingTimeWindow_print;
asn_constr_check_f S1AP_NB_IoT_PagingTimeWindow_constraint;
-jer_type_encoder_f S1AP_NB_IoT_PagingTimeWindow_encode_jer;
per_type_decoder_f S1AP_NB_IoT_PagingTimeWindow_decode_aper;
per_type_encoder_f S1AP_NB_IoT_PagingTimeWindow_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.c b/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.c
index 322a8bee87..9a74be3709 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.c
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NB-IoT-RLF-Report-Container.h"
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.h b/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.h
index 5a1deba9a6..02fc3c733f 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.h
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-RLF-Report-Container.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NB_IoT_RLF_Report_Container_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NB_IoT_RLF_Report_Container;
asn_struct_free_f S1AP_NB_IoT_RLF_Report_Container_free;
asn_struct_print_f S1AP_NB_IoT_RLF_Report_Container_print;
asn_constr_check_f S1AP_NB_IoT_RLF_Report_Container_constraint;
-jer_type_encoder_f S1AP_NB_IoT_RLF_Report_Container_encode_jer;
per_type_decoder_f S1AP_NB_IoT_RLF_Report_Container_decode_aper;
per_type_encoder_f S1AP_NB_IoT_RLF_Report_Container_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.c b/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.c
index 805fc4078a..561b7b5d00 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.c
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NB-IoT-UEIdentityIndexValue.h"
diff --git a/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.h b/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.h
index 4eb8166683..570c305688 100644
--- a/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.h
+++ b/lib/asn1c/s1ap/S1AP_NB-IoT-UEIdentityIndexValue.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NB_IoT_UEIdentityIndexValue_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NB_IoT_UEIdentityIndexValue;
asn_struct_free_f S1AP_NB_IoT_UEIdentityIndexValue_free;
asn_struct_print_f S1AP_NB_IoT_UEIdentityIndexValue_print;
asn_constr_check_f S1AP_NB_IoT_UEIdentityIndexValue_constraint;
-jer_type_encoder_f S1AP_NB_IoT_UEIdentityIndexValue_encode_jer;
per_type_decoder_f S1AP_NB_IoT_UEIdentityIndexValue_decode_aper;
per_type_encoder_f S1AP_NB_IoT_UEIdentityIndexValue_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NG-eNB.c b/lib/asn1c/s1ap/S1AP_NG-eNB.c
index 0a78cbcdfb..64ef08169e 100644
--- a/lib/asn1c/s1ap/S1AP_NG-eNB.c
+++ b/lib/asn1c/s1ap/S1AP_NG-eNB.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NG-eNB.h"
diff --git a/lib/asn1c/s1ap/S1AP_NG-eNB.h b/lib/asn1c/s1ap/S1AP_NG-eNB.h
index 217efeeb1d..359424cf97 100644
--- a/lib/asn1c/s1ap/S1AP_NG-eNB.h
+++ b/lib/asn1c/s1ap/S1AP_NG-eNB.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NG_eNB_H_
diff --git a/lib/asn1c/s1ap/S1AP_NR-CGI.c b/lib/asn1c/s1ap/S1AP_NR-CGI.c
index 7253a8bb4b..b4f5aedf89 100644
--- a/lib/asn1c/s1ap/S1AP_NR-CGI.c
+++ b/lib/asn1c/s1ap/S1AP_NR-CGI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NR-CGI.h"
diff --git a/lib/asn1c/s1ap/S1AP_NR-CGI.h b/lib/asn1c/s1ap/S1AP_NR-CGI.h
index fa8b98b090..51f77a8c30 100644
--- a/lib/asn1c/s1ap/S1AP_NR-CGI.h
+++ b/lib/asn1c/s1ap/S1AP_NR-CGI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NR_CGI_H_
diff --git a/lib/asn1c/s1ap/S1AP_NRCellIdentity.c b/lib/asn1c/s1ap/S1AP_NRCellIdentity.c
index ba9714d5a9..2babb66e00 100644
--- a/lib/asn1c/s1ap/S1AP_NRCellIdentity.c
+++ b/lib/asn1c/s1ap/S1AP_NRCellIdentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRCellIdentity.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRCellIdentity.h b/lib/asn1c/s1ap/S1AP_NRCellIdentity.h
index 5acb985f64..64c3003cc2 100644
--- a/lib/asn1c/s1ap/S1AP_NRCellIdentity.h
+++ b/lib/asn1c/s1ap/S1AP_NRCellIdentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRCellIdentity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NRCellIdentity;
asn_struct_free_f S1AP_NRCellIdentity_free;
asn_struct_print_f S1AP_NRCellIdentity_print;
asn_constr_check_f S1AP_NRCellIdentity_constraint;
-jer_type_encoder_f S1AP_NRCellIdentity_encode_jer;
per_type_decoder_f S1AP_NRCellIdentity_decode_aper;
per_type_encoder_f S1AP_NRCellIdentity_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.c b/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.c
index de0278c9bd..9cdd04a321 100644
--- a/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.c
+++ b/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRUESecurityCapabilities.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.h b/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.h
index eaf24371cc..25ef419a77 100644
--- a/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.h
+++ b/lib/asn1c/s1ap/S1AP_NRUESecurityCapabilities.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRUESecurityCapabilities_H_
diff --git a/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.c b/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.c
index 197bbdf5d0..8acd2cc25f 100644
--- a/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.c
+++ b/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRUESidelinkAggregateMaximumBitrate.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.h b/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.h
index 2f89e5a28c..f58aac460b 100644
--- a/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.h
+++ b/lib/asn1c/s1ap/S1AP_NRUESidelinkAggregateMaximumBitrate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRUESidelinkAggregateMaximumBitrate_H_
diff --git a/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.c b/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.c
index 8515da971f..7324b97d7b 100644
--- a/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.c
+++ b/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRV2XServicesAuthorized.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.h b/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.h
index f1f42cf7c6..567a53cc73 100644
--- a/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.h
+++ b/lib/asn1c/s1ap/S1AP_NRV2XServicesAuthorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRV2XServicesAuthorized_H_
diff --git a/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.c b/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.c
index fb0b5e2f47..57765c5397 100644
--- a/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.c
+++ b/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRencryptionAlgorithms.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.h b/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.h
index f1ed10c3ee..16ac0d9faa 100644
--- a/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.h
+++ b/lib/asn1c/s1ap/S1AP_NRencryptionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRencryptionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NRencryptionAlgorithms;
asn_struct_free_f S1AP_NRencryptionAlgorithms_free;
asn_struct_print_f S1AP_NRencryptionAlgorithms_print;
asn_constr_check_f S1AP_NRencryptionAlgorithms_constraint;
-jer_type_encoder_f S1AP_NRencryptionAlgorithms_encode_jer;
per_type_decoder_f S1AP_NRencryptionAlgorithms_decode_aper;
per_type_encoder_f S1AP_NRencryptionAlgorithms_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.c b/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.c
index b4e47ea376..b6ef0cf1cc 100644
--- a/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.c
+++ b/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRintegrityProtectionAlgorithms.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.h b/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.h
index bc5c540480..c2c6e898d4 100644
--- a/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.h
+++ b/lib/asn1c/s1ap/S1AP_NRintegrityProtectionAlgorithms.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRintegrityProtectionAlgorithms_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NRintegrityProtectionAlgorithms;
asn_struct_free_f S1AP_NRintegrityProtectionAlgorithms_free;
asn_struct_print_f S1AP_NRintegrityProtectionAlgorithms_print;
asn_constr_check_f S1AP_NRintegrityProtectionAlgorithms_constraint;
-jer_type_encoder_f S1AP_NRintegrityProtectionAlgorithms_encode_jer;
per_type_decoder_f S1AP_NRintegrityProtectionAlgorithms_decode_aper;
per_type_encoder_f S1AP_NRintegrityProtectionAlgorithms_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.c b/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.c
index 0f7bfdfeb8..93a4320844 100644
--- a/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.c
+++ b/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRrestrictionin5GS.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.h b/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.h
index 6ec59da9ed..160de270ee 100644
--- a/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.h
+++ b/lib/asn1c/s1ap/S1AP_NRrestrictionin5GS.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRrestrictionin5GS_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NRrestrictionin5GS_specs_1;
asn_struct_free_f S1AP_NRrestrictionin5GS_free;
asn_struct_print_f S1AP_NRrestrictionin5GS_print;
asn_constr_check_f S1AP_NRrestrictionin5GS_constraint;
-jer_type_encoder_f S1AP_NRrestrictionin5GS_encode_jer;
per_type_decoder_f S1AP_NRrestrictionin5GS_decode_aper;
per_type_encoder_f S1AP_NRrestrictionin5GS_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.c b/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.c
index c94774c87f..7b9727da8e 100644
--- a/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.c
+++ b/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NRrestrictioninEPSasSecondaryRAT.h"
diff --git a/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.h b/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.h
index 5017e92e84..7a45d54673 100644
--- a/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.h
+++ b/lib/asn1c/s1ap/S1AP_NRrestrictioninEPSasSecondaryRAT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NRrestrictioninEPSasSecondaryRAT_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NRrestrictioninEPSasSecondaryR
asn_struct_free_f S1AP_NRrestrictioninEPSasSecondaryRAT_free;
asn_struct_print_f S1AP_NRrestrictioninEPSasSecondaryRAT_print;
asn_constr_check_f S1AP_NRrestrictioninEPSasSecondaryRAT_constraint;
-jer_type_encoder_f S1AP_NRrestrictioninEPSasSecondaryRAT_encode_jer;
per_type_decoder_f S1AP_NRrestrictioninEPSasSecondaryRAT_decode_aper;
per_type_encoder_f S1AP_NRrestrictioninEPSasSecondaryRAT_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.c b/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.c
index 81a5c8ff26..6064a2831c 100644
--- a/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.c
+++ b/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NextPagingAreaScope.h"
diff --git a/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.h b/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.h
index 52db6f4eff..1357fcc2aa 100644
--- a/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.h
+++ b/lib/asn1c/s1ap/S1AP_NextPagingAreaScope.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NextPagingAreaScope_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NextPagingAreaScope_specs_1;
asn_struct_free_f S1AP_NextPagingAreaScope_free;
asn_struct_print_f S1AP_NextPagingAreaScope_print;
asn_constr_check_f S1AP_NextPagingAreaScope_constraint;
-jer_type_encoder_f S1AP_NextPagingAreaScope_encode_jer;
per_type_decoder_f S1AP_NextPagingAreaScope_decode_aper;
per_type_encoder_f S1AP_NextPagingAreaScope_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NotifySourceeNB.c b/lib/asn1c/s1ap/S1AP_NotifySourceeNB.c
index 726dd3c371..38591735b9 100644
--- a/lib/asn1c/s1ap/S1AP_NotifySourceeNB.c
+++ b/lib/asn1c/s1ap/S1AP_NotifySourceeNB.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NotifySourceeNB.h"
diff --git a/lib/asn1c/s1ap/S1AP_NotifySourceeNB.h b/lib/asn1c/s1ap/S1AP_NotifySourceeNB.h
index bb36b0b17d..f208e5aa80 100644
--- a/lib/asn1c/s1ap/S1AP_NotifySourceeNB.h
+++ b/lib/asn1c/s1ap/S1AP_NotifySourceeNB.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NotifySourceeNB_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_NotifySourceeNB_specs_1;
asn_struct_free_f S1AP_NotifySourceeNB_free;
asn_struct_print_f S1AP_NotifySourceeNB_print;
asn_constr_check_f S1AP_NotifySourceeNB_constraint;
-jer_type_encoder_f S1AP_NotifySourceeNB_encode_jer;
per_type_decoder_f S1AP_NotifySourceeNB_decode_aper;
per_type_encoder_f S1AP_NotifySourceeNB_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.c b/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.c
index eeab721ea4..a83e3ff0c9 100644
--- a/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.c
+++ b/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NumberOfBroadcasts.h"
diff --git a/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.h b/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.h
index 12c1f52ef7..c4c94c79c2 100644
--- a/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.h
+++ b/lib/asn1c/s1ap/S1AP_NumberOfBroadcasts.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NumberOfBroadcasts_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NumberOfBroadcasts;
asn_struct_free_f S1AP_NumberOfBroadcasts_free;
asn_struct_print_f S1AP_NumberOfBroadcasts_print;
asn_constr_check_f S1AP_NumberOfBroadcasts_constraint;
-jer_type_encoder_f S1AP_NumberOfBroadcasts_encode_jer;
per_type_decoder_f S1AP_NumberOfBroadcasts_decode_aper;
per_type_encoder_f S1AP_NumberOfBroadcasts_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.c b/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.c
index d834d56499..131430562c 100644
--- a/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.c
+++ b/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_NumberofBroadcastRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.h b/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.h
index f83e6aab12..350ca29434 100644
--- a/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.h
+++ b/lib/asn1c/s1ap/S1AP_NumberofBroadcastRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_NumberofBroadcastRequest_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_NumberofBroadcastRequest;
asn_struct_free_f S1AP_NumberofBroadcastRequest_free;
asn_struct_print_f S1AP_NumberofBroadcastRequest_print;
asn_constr_check_f S1AP_NumberofBroadcastRequest_constraint;
-jer_type_encoder_f S1AP_NumberofBroadcastRequest_encode_jer;
per_type_decoder_f S1AP_NumberofBroadcastRequest_decode_aper;
per_type_encoder_f S1AP_NumberofBroadcastRequest_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.c b/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.c
index 3099e6f8aa..15cc89eed1 100644
--- a/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.c
+++ b/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_OldBSS-ToNewBSS-Information.h"
diff --git a/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.h b/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.h
index c709f6da9f..2e0daaf5d7 100644
--- a/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.h
+++ b/lib/asn1c/s1ap/S1AP_OldBSS-ToNewBSS-Information.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_OldBSS_ToNewBSS_Information_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_OldBSS_ToNewBSS_Information;
asn_struct_free_f S1AP_OldBSS_ToNewBSS_Information_free;
asn_struct_print_f S1AP_OldBSS_ToNewBSS_Information_print;
asn_constr_check_f S1AP_OldBSS_ToNewBSS_Information_constraint;
-jer_type_encoder_f S1AP_OldBSS_ToNewBSS_Information_encode_jer;
per_type_decoder_f S1AP_OldBSS_ToNewBSS_Information_decode_aper;
per_type_encoder_f S1AP_OldBSS_ToNewBSS_Information_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_OverloadAction.c b/lib/asn1c/s1ap/S1AP_OverloadAction.c
index 342875ba7b..0bec9caf97 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadAction.c
+++ b/lib/asn1c/s1ap/S1AP_OverloadAction.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_OverloadAction.h"
diff --git a/lib/asn1c/s1ap/S1AP_OverloadAction.h b/lib/asn1c/s1ap/S1AP_OverloadAction.h
index 4c4d088d68..ddcfc25b8e 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadAction.h
+++ b/lib/asn1c/s1ap/S1AP_OverloadAction.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_OverloadAction_H_
@@ -42,7 +42,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_OverloadAction_specs_1;
asn_struct_free_f S1AP_OverloadAction_free;
asn_struct_print_f S1AP_OverloadAction_print;
asn_constr_check_f S1AP_OverloadAction_constraint;
-jer_type_encoder_f S1AP_OverloadAction_encode_jer;
per_type_decoder_f S1AP_OverloadAction_decode_aper;
per_type_encoder_f S1AP_OverloadAction_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_OverloadResponse.c b/lib/asn1c/s1ap/S1AP_OverloadResponse.c
index b456211ac1..b93151e794 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadResponse.c
+++ b/lib/asn1c/s1ap/S1AP_OverloadResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_OverloadResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_OverloadResponse.h b/lib/asn1c/s1ap/S1AP_OverloadResponse.h
index f28170c1eb..44e34557de 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadResponse.h
+++ b/lib/asn1c/s1ap/S1AP_OverloadResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_OverloadResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_OverloadStart.c b/lib/asn1c/s1ap/S1AP_OverloadStart.c
index 9aeb033167..b288c31631 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadStart.c
+++ b/lib/asn1c/s1ap/S1AP_OverloadStart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_OverloadStart.h"
diff --git a/lib/asn1c/s1ap/S1AP_OverloadStart.h b/lib/asn1c/s1ap/S1AP_OverloadStart.h
index fd30f099ec..fec195a247 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadStart.h
+++ b/lib/asn1c/s1ap/S1AP_OverloadStart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_OverloadStart_H_
diff --git a/lib/asn1c/s1ap/S1AP_OverloadStop.c b/lib/asn1c/s1ap/S1AP_OverloadStop.c
index 609a3f7db0..077fcd9578 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadStop.c
+++ b/lib/asn1c/s1ap/S1AP_OverloadStop.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_OverloadStop.h"
diff --git a/lib/asn1c/s1ap/S1AP_OverloadStop.h b/lib/asn1c/s1ap/S1AP_OverloadStop.h
index 25bcb77a10..7589716d5e 100644
--- a/lib/asn1c/s1ap/S1AP_OverloadStop.h
+++ b/lib/asn1c/s1ap/S1AP_OverloadStop.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_OverloadStop_H_
diff --git a/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.c b/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.c
index 30cf689860..1a6b84e3f0 100644
--- a/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.c
+++ b/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PC5FlowBitRates.h"
diff --git a/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.h b/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.h
index aa3b3b56db..a36f60385d 100644
--- a/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.h
+++ b/lib/asn1c/s1ap/S1AP_PC5FlowBitRates.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PC5FlowBitRates_H_
diff --git a/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.c b/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.c
index 2fe7d2ab81..b484ba3800 100644
--- a/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.c
+++ b/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PC5QoSFlowItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.h b/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.h
index cb1b3c2aa4..b20301bdf6 100644
--- a/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.h
+++ b/lib/asn1c/s1ap/S1AP_PC5QoSFlowItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PC5QoSFlowItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.c b/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.c
index ef23b42d32..5f4e84191c 100644
--- a/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.c
+++ b/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PC5QoSFlowList.h"
diff --git a/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.h b/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.h
index 259f0a407d..d2a11c267c 100644
--- a/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.h
+++ b/lib/asn1c/s1ap/S1AP_PC5QoSFlowList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PC5QoSFlowList_H_
diff --git a/lib/asn1c/s1ap/S1AP_PC5QoSParameters.c b/lib/asn1c/s1ap/S1AP_PC5QoSParameters.c
index 90c089a97a..a33f3ece88 100644
--- a/lib/asn1c/s1ap/S1AP_PC5QoSParameters.c
+++ b/lib/asn1c/s1ap/S1AP_PC5QoSParameters.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PC5QoSParameters.h"
diff --git a/lib/asn1c/s1ap/S1AP_PC5QoSParameters.h b/lib/asn1c/s1ap/S1AP_PC5QoSParameters.h
index b8489aa570..9fbb5ad6d1 100644
--- a/lib/asn1c/s1ap/S1AP_PC5QoSParameters.h
+++ b/lib/asn1c/s1ap/S1AP_PC5QoSParameters.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PC5QoSParameters_H_
diff --git a/lib/asn1c/s1ap/S1AP_PDCP-SN.c b/lib/asn1c/s1ap/S1AP_PDCP-SN.c
index b44f6a5656..d6b636d677 100644
--- a/lib/asn1c/s1ap/S1AP_PDCP-SN.c
+++ b/lib/asn1c/s1ap/S1AP_PDCP-SN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PDCP-SN.h"
diff --git a/lib/asn1c/s1ap/S1AP_PDCP-SN.h b/lib/asn1c/s1ap/S1AP_PDCP-SN.h
index 6afe943305..3eb863361a 100644
--- a/lib/asn1c/s1ap/S1AP_PDCP-SN.h
+++ b/lib/asn1c/s1ap/S1AP_PDCP-SN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PDCP_SN_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_PDCP_SN;
asn_struct_free_f S1AP_PDCP_SN_free;
asn_struct_print_f S1AP_PDCP_SN_print;
asn_constr_check_f S1AP_PDCP_SN_constraint;
-jer_type_encoder_f S1AP_PDCP_SN_encode_jer;
per_type_decoder_f S1AP_PDCP_SN_decode_aper;
per_type_encoder_f S1AP_PDCP_SN_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.c b/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.c
index 4c6754819f..70339df2ab 100644
--- a/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.c
+++ b/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PDCP-SNExtended.h"
diff --git a/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.h b/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.h
index 9ff2a95984..de80111c4a 100644
--- a/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.h
+++ b/lib/asn1c/s1ap/S1AP_PDCP-SNExtended.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PDCP_SNExtended_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_PDCP_SNExtended;
asn_struct_free_f S1AP_PDCP_SNExtended_free;
asn_struct_print_f S1AP_PDCP_SNExtended_print;
asn_constr_check_f S1AP_PDCP_SNExtended_constraint;
-jer_type_encoder_f S1AP_PDCP_SNExtended_encode_jer;
per_type_decoder_f S1AP_PDCP_SNExtended_decode_aper;
per_type_encoder_f S1AP_PDCP_SNExtended_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.c b/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.c
index c0447a436d..7fb7fd2fee 100644
--- a/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.c
+++ b/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PDCP-SNlength18.h"
diff --git a/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.h b/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.h
index 112cd635a8..3c4301abd1 100644
--- a/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.h
+++ b/lib/asn1c/s1ap/S1AP_PDCP-SNlength18.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PDCP_SNlength18_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_PDCP_SNlength18;
asn_struct_free_f S1AP_PDCP_SNlength18_free;
asn_struct_print_f S1AP_PDCP_SNlength18_print;
asn_constr_check_f S1AP_PDCP_SNlength18_constraint;
-jer_type_encoder_f S1AP_PDCP_SNlength18_encode_jer;
per_type_decoder_f S1AP_PDCP_SNlength18_decode_aper;
per_type_encoder_f S1AP_PDCP_SNlength18_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.c b/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.c
index 1b27081093..99b1952b31 100644
--- a/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.c
+++ b/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PLMNAreaBasedQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.h b/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.h
index f1caab4a1b..0a83c92acf 100644
--- a/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.h
+++ b/lib/asn1c/s1ap/S1AP_PLMNAreaBasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PLMNAreaBasedQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_PLMNListforQMC.c b/lib/asn1c/s1ap/S1AP_PLMNListforQMC.c
index f1eaa9f9d7..f18da49688 100644
--- a/lib/asn1c/s1ap/S1AP_PLMNListforQMC.c
+++ b/lib/asn1c/s1ap/S1AP_PLMNListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PLMNListforQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_PLMNListforQMC.h b/lib/asn1c/s1ap/S1AP_PLMNListforQMC.h
index 595eb11b3e..873d8e7668 100644
--- a/lib/asn1c/s1ap/S1AP_PLMNListforQMC.h
+++ b/lib/asn1c/s1ap/S1AP_PLMNListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PLMNListforQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_PLMNidentity.c b/lib/asn1c/s1ap/S1AP_PLMNidentity.c
index d01efe0cd9..60c4cffb56 100644
--- a/lib/asn1c/s1ap/S1AP_PLMNidentity.c
+++ b/lib/asn1c/s1ap/S1AP_PLMNidentity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PLMNidentity.h"
diff --git a/lib/asn1c/s1ap/S1AP_PLMNidentity.h b/lib/asn1c/s1ap/S1AP_PLMNidentity.h
index d8e763389d..5147b9a2b9 100644
--- a/lib/asn1c/s1ap/S1AP_PLMNidentity.h
+++ b/lib/asn1c/s1ap/S1AP_PLMNidentity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PLMNidentity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_PLMNidentity;
asn_struct_free_f S1AP_PLMNidentity_free;
asn_struct_print_f S1AP_PLMNidentity_print;
asn_constr_check_f S1AP_PLMNidentity_constraint;
-jer_type_encoder_f S1AP_PLMNidentity_encode_jer;
per_type_decoder_f S1AP_PLMNidentity_decode_aper;
per_type_encoder_f S1AP_PLMNidentity_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.c b/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.c
index e6ad4279d3..700b5e0c59 100644
--- a/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.c
+++ b/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PS-ServiceNotAvailable.h"
diff --git a/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.h b/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.h
index 9a77c98405..bdc8a3fad1 100644
--- a/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.h
+++ b/lib/asn1c/s1ap/S1AP_PS-ServiceNotAvailable.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PS_ServiceNotAvailable_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PS_ServiceNotAvailable_specs_1
asn_struct_free_f S1AP_PS_ServiceNotAvailable_free;
asn_struct_print_f S1AP_PS_ServiceNotAvailable_print;
asn_constr_check_f S1AP_PS_ServiceNotAvailable_constraint;
-jer_type_encoder_f S1AP_PS_ServiceNotAvailable_encode_jer;
per_type_decoder_f S1AP_PS_ServiceNotAvailable_decode_aper;
per_type_encoder_f S1AP_PS_ServiceNotAvailable_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PSCellInformation.c b/lib/asn1c/s1ap/S1AP_PSCellInformation.c
index 92e24fe40f..1f3a3b1cfe 100644
--- a/lib/asn1c/s1ap/S1AP_PSCellInformation.c
+++ b/lib/asn1c/s1ap/S1AP_PSCellInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PSCellInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_PSCellInformation.h b/lib/asn1c/s1ap/S1AP_PSCellInformation.h
index af14f16026..7ca8cfda33 100644
--- a/lib/asn1c/s1ap/S1AP_PSCellInformation.h
+++ b/lib/asn1c/s1ap/S1AP_PSCellInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PSCellInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_PWSFailureIndication.c b/lib/asn1c/s1ap/S1AP_PWSFailureIndication.c
index e63078a29d..95cce958dd 100644
--- a/lib/asn1c/s1ap/S1AP_PWSFailureIndication.c
+++ b/lib/asn1c/s1ap/S1AP_PWSFailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PWSFailureIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_PWSFailureIndication.h b/lib/asn1c/s1ap/S1AP_PWSFailureIndication.h
index fd61830a1f..adc5fa4c4a 100644
--- a/lib/asn1c/s1ap/S1AP_PWSFailureIndication.h
+++ b/lib/asn1c/s1ap/S1AP_PWSFailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PWSFailureIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_PWSRestartIndication.c b/lib/asn1c/s1ap/S1AP_PWSRestartIndication.c
index 57c50bcb57..bd7463d053 100644
--- a/lib/asn1c/s1ap/S1AP_PWSRestartIndication.c
+++ b/lib/asn1c/s1ap/S1AP_PWSRestartIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PWSRestartIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_PWSRestartIndication.h b/lib/asn1c/s1ap/S1AP_PWSRestartIndication.h
index 88431341f6..6ab0494341 100644
--- a/lib/asn1c/s1ap/S1AP_PWSRestartIndication.h
+++ b/lib/asn1c/s1ap/S1AP_PWSRestartIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PWSRestartIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.c b/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.c
index 930ddf6d6f..d5e99a060c 100644
--- a/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.c
+++ b/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PWSfailedECGIList.h"
diff --git a/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.h b/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.h
index d7cefae98f..4ae924943c 100644
--- a/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.h
+++ b/lib/asn1c/s1ap/S1AP_PWSfailedECGIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PWSfailedECGIList_H_
diff --git a/lib/asn1c/s1ap/S1AP_Packet-LossRate.c b/lib/asn1c/s1ap/S1AP_Packet-LossRate.c
index 523b8b7b8d..e7564e9888 100644
--- a/lib/asn1c/s1ap/S1AP_Packet-LossRate.c
+++ b/lib/asn1c/s1ap/S1AP_Packet-LossRate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Packet-LossRate.h"
diff --git a/lib/asn1c/s1ap/S1AP_Packet-LossRate.h b/lib/asn1c/s1ap/S1AP_Packet-LossRate.h
index 14ba9a2605..cb7d5b10b6 100644
--- a/lib/asn1c/s1ap/S1AP_Packet-LossRate.h
+++ b/lib/asn1c/s1ap/S1AP_Packet-LossRate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Packet_LossRate_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Packet_LossRate;
asn_struct_free_f S1AP_Packet_LossRate_free;
asn_struct_print_f S1AP_Packet_LossRate_print;
asn_constr_check_f S1AP_Packet_LossRate_constraint;
-jer_type_encoder_f S1AP_Packet_LossRate_encode_jer;
per_type_decoder_f S1AP_Packet_LossRate_decode_aper;
per_type_encoder_f S1AP_Packet_LossRate_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.c b/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.c
index 7e6b743bd9..a157c3c7b5 100644
--- a/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.c
+++ b/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Paging-eDRX-Cycle.h"
diff --git a/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.h b/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.h
index d9faa11e60..60b25565d4 100644
--- a/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.h
+++ b/lib/asn1c/s1ap/S1AP_Paging-eDRX-Cycle.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Paging_eDRX_Cycle_H_
@@ -49,7 +49,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Paging_eDRX_Cycle_specs_1;
asn_struct_free_f S1AP_Paging_eDRX_Cycle_free;
asn_struct_print_f S1AP_Paging_eDRX_Cycle_print;
asn_constr_check_f S1AP_Paging_eDRX_Cycle_constraint;
-jer_type_encoder_f S1AP_Paging_eDRX_Cycle_encode_jer;
per_type_decoder_f S1AP_Paging_eDRX_Cycle_decode_aper;
per_type_encoder_f S1AP_Paging_eDRX_Cycle_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.c b/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.c
index e7e625328c..d05876cc09 100644
--- a/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.c
+++ b/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Paging-eDRXInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.h b/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.h
index c8701eefb1..86c1f23dea 100644
--- a/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.h
+++ b/lib/asn1c/s1ap/S1AP_Paging-eDRXInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Paging_eDRXInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_Paging.c b/lib/asn1c/s1ap/S1AP_Paging.c
index cdfddd7129..bb0039f599 100644
--- a/lib/asn1c/s1ap/S1AP_Paging.c
+++ b/lib/asn1c/s1ap/S1AP_Paging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Paging.h"
diff --git a/lib/asn1c/s1ap/S1AP_Paging.h b/lib/asn1c/s1ap/S1AP_Paging.h
index 74da09512c..17c08e8d9b 100644
--- a/lib/asn1c/s1ap/S1AP_Paging.h
+++ b/lib/asn1c/s1ap/S1AP_Paging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Paging_H_
diff --git a/lib/asn1c/s1ap/S1AP_PagingAttemptCount.c b/lib/asn1c/s1ap/S1AP_PagingAttemptCount.c
index 9d8fce0eb2..dae1f91576 100644
--- a/lib/asn1c/s1ap/S1AP_PagingAttemptCount.c
+++ b/lib/asn1c/s1ap/S1AP_PagingAttemptCount.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PagingAttemptCount.h"
diff --git a/lib/asn1c/s1ap/S1AP_PagingAttemptCount.h b/lib/asn1c/s1ap/S1AP_PagingAttemptCount.h
index ce3d85edc2..1ffca0d03b 100644
--- a/lib/asn1c/s1ap/S1AP_PagingAttemptCount.h
+++ b/lib/asn1c/s1ap/S1AP_PagingAttemptCount.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PagingAttemptCount_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_PagingAttemptCount;
asn_struct_free_f S1AP_PagingAttemptCount_free;
asn_struct_print_f S1AP_PagingAttemptCount_print;
asn_constr_check_f S1AP_PagingAttemptCount_constraint;
-jer_type_encoder_f S1AP_PagingAttemptCount_encode_jer;
per_type_decoder_f S1AP_PagingAttemptCount_decode_aper;
per_type_encoder_f S1AP_PagingAttemptCount_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.c b/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.c
index fce991e344..80725d66f4 100644
--- a/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.c
+++ b/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PagingAttemptInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.h b/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.h
index ba4624e201..581df657df 100644
--- a/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.h
+++ b/lib/asn1c/s1ap/S1AP_PagingAttemptInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PagingAttemptInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_PagingCause.c b/lib/asn1c/s1ap/S1AP_PagingCause.c
index a24c616fa1..5593ecffe8 100644
--- a/lib/asn1c/s1ap/S1AP_PagingCause.c
+++ b/lib/asn1c/s1ap/S1AP_PagingCause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PagingCause.h"
diff --git a/lib/asn1c/s1ap/S1AP_PagingCause.h b/lib/asn1c/s1ap/S1AP_PagingCause.h
index 289a9e1170..c303caaa31 100644
--- a/lib/asn1c/s1ap/S1AP_PagingCause.h
+++ b/lib/asn1c/s1ap/S1AP_PagingCause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PagingCause_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PagingCause_specs_1;
asn_struct_free_f S1AP_PagingCause_free;
asn_struct_print_f S1AP_PagingCause_print;
asn_constr_check_f S1AP_PagingCause_constraint;
-jer_type_encoder_f S1AP_PagingCause_encode_jer;
per_type_decoder_f S1AP_PagingCause_decode_aper;
per_type_encoder_f S1AP_PagingCause_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PagingDRX.c b/lib/asn1c/s1ap/S1AP_PagingDRX.c
index 80f51ee3ad..7d5d9bcf6c 100644
--- a/lib/asn1c/s1ap/S1AP_PagingDRX.c
+++ b/lib/asn1c/s1ap/S1AP_PagingDRX.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PagingDRX.h"
diff --git a/lib/asn1c/s1ap/S1AP_PagingDRX.h b/lib/asn1c/s1ap/S1AP_PagingDRX.h
index 1bbb459866..32da2ddd0f 100644
--- a/lib/asn1c/s1ap/S1AP_PagingDRX.h
+++ b/lib/asn1c/s1ap/S1AP_PagingDRX.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PagingDRX_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PagingDRX_specs_1;
asn_struct_free_f S1AP_PagingDRX_free;
asn_struct_print_f S1AP_PagingDRX_print;
asn_constr_check_f S1AP_PagingDRX_constraint;
-jer_type_encoder_f S1AP_PagingDRX_encode_jer;
per_type_decoder_f S1AP_PagingDRX_decode_aper;
per_type_encoder_f S1AP_PagingDRX_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PagingPriority.c b/lib/asn1c/s1ap/S1AP_PagingPriority.c
index ce1ebc1ea4..986a7e7e09 100644
--- a/lib/asn1c/s1ap/S1AP_PagingPriority.c
+++ b/lib/asn1c/s1ap/S1AP_PagingPriority.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PagingPriority.h"
diff --git a/lib/asn1c/s1ap/S1AP_PagingPriority.h b/lib/asn1c/s1ap/S1AP_PagingPriority.h
index 6d4a5c6241..6a4e328e8d 100644
--- a/lib/asn1c/s1ap/S1AP_PagingPriority.h
+++ b/lib/asn1c/s1ap/S1AP_PagingPriority.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PagingPriority_H_
@@ -43,7 +43,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PagingPriority_specs_1;
asn_struct_free_f S1AP_PagingPriority_free;
asn_struct_print_f S1AP_PagingPriority_print;
asn_constr_check_f S1AP_PagingPriority_constraint;
-jer_type_encoder_f S1AP_PagingPriority_encode_jer;
per_type_decoder_f S1AP_PagingPriority_decode_aper;
per_type_encoder_f S1AP_PagingPriority_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.c b/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.c
index 891c9dcadb..01eb14f3ef 100644
--- a/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.c
+++ b/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PagingProbabilityInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.h b/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.h
index 5a869f734a..44f4b2c92a 100644
--- a/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.h
+++ b/lib/asn1c/s1ap/S1AP_PagingProbabilityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PagingProbabilityInformation_H_
@@ -56,7 +56,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PagingProbabilityInformation_s
asn_struct_free_f S1AP_PagingProbabilityInformation_free;
asn_struct_print_f S1AP_PagingProbabilityInformation_print;
asn_constr_check_f S1AP_PagingProbabilityInformation_constraint;
-jer_type_encoder_f S1AP_PagingProbabilityInformation_encode_jer;
per_type_decoder_f S1AP_PagingProbabilityInformation_decode_aper;
per_type_encoder_f S1AP_PagingProbabilityInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PagingTimeWindow.c b/lib/asn1c/s1ap/S1AP_PagingTimeWindow.c
index 3420ccd3db..98a01f07f2 100644
--- a/lib/asn1c/s1ap/S1AP_PagingTimeWindow.c
+++ b/lib/asn1c/s1ap/S1AP_PagingTimeWindow.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PagingTimeWindow.h"
diff --git a/lib/asn1c/s1ap/S1AP_PagingTimeWindow.h b/lib/asn1c/s1ap/S1AP_PagingTimeWindow.h
index dd1c423455..56c0b4d9a6 100644
--- a/lib/asn1c/s1ap/S1AP_PagingTimeWindow.h
+++ b/lib/asn1c/s1ap/S1AP_PagingTimeWindow.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PagingTimeWindow_H_
@@ -51,7 +51,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PagingTimeWindow_specs_1;
asn_struct_free_f S1AP_PagingTimeWindow_free;
asn_struct_print_f S1AP_PagingTimeWindow_print;
asn_constr_check_f S1AP_PagingTimeWindow_constraint;
-jer_type_encoder_f S1AP_PagingTimeWindow_encode_jer;
per_type_decoder_f S1AP_PagingTimeWindow_decode_aper;
per_type_encoder_f S1AP_PagingTimeWindow_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PathSwitchRequest.c b/lib/asn1c/s1ap/S1AP_PathSwitchRequest.c
index adffab8962..fc7c6bf3a1 100644
--- a/lib/asn1c/s1ap/S1AP_PathSwitchRequest.c
+++ b/lib/asn1c/s1ap/S1AP_PathSwitchRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PathSwitchRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_PathSwitchRequest.h b/lib/asn1c/s1ap/S1AP_PathSwitchRequest.h
index 3f2ee033f0..2f256d5c63 100644
--- a/lib/asn1c/s1ap/S1AP_PathSwitchRequest.h
+++ b/lib/asn1c/s1ap/S1AP_PathSwitchRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PathSwitchRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.c b/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.c
index 933a2253fb..0dd2f9041f 100644
--- a/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.c
+++ b/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PathSwitchRequestAcknowledge.h"
diff --git a/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.h b/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.h
index a948b81825..376784f181 100644
--- a/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.h
+++ b/lib/asn1c/s1ap/S1AP_PathSwitchRequestAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PathSwitchRequestAcknowledge_H_
diff --git a/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.c b/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.c
index 902786d11a..97b6661e55 100644
--- a/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.c
+++ b/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PathSwitchRequestFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.h b/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.h
index 10847c9bcb..b743b2a033 100644
--- a/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.h
+++ b/lib/asn1c/s1ap/S1AP_PathSwitchRequestFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PathSwitchRequestFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_PedestrianUE.c b/lib/asn1c/s1ap/S1AP_PedestrianUE.c
index e54f93ed52..7ea0a06204 100644
--- a/lib/asn1c/s1ap/S1AP_PedestrianUE.c
+++ b/lib/asn1c/s1ap/S1AP_PedestrianUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PedestrianUE.h"
diff --git a/lib/asn1c/s1ap/S1AP_PedestrianUE.h b/lib/asn1c/s1ap/S1AP_PedestrianUE.h
index 2f19ca095d..07f2695c02 100644
--- a/lib/asn1c/s1ap/S1AP_PedestrianUE.h
+++ b/lib/asn1c/s1ap/S1AP_PedestrianUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PedestrianUE_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PedestrianUE_specs_1;
asn_struct_free_f S1AP_PedestrianUE_free;
asn_struct_print_f S1AP_PedestrianUE_print;
asn_constr_check_f S1AP_PedestrianUE_constraint;
-jer_type_encoder_f S1AP_PedestrianUE_encode_jer;
per_type_decoder_f S1AP_PedestrianUE_decode_aper;
per_type_encoder_f S1AP_PedestrianUE_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PendingDataIndication.c b/lib/asn1c/s1ap/S1AP_PendingDataIndication.c
index 5440bc8088..cb6cb9bd63 100644
--- a/lib/asn1c/s1ap/S1AP_PendingDataIndication.c
+++ b/lib/asn1c/s1ap/S1AP_PendingDataIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PendingDataIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_PendingDataIndication.h b/lib/asn1c/s1ap/S1AP_PendingDataIndication.h
index 9b348e7f0c..0834a2956e 100644
--- a/lib/asn1c/s1ap/S1AP_PendingDataIndication.h
+++ b/lib/asn1c/s1ap/S1AP_PendingDataIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PendingDataIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PendingDataIndication_specs_1;
asn_struct_free_f S1AP_PendingDataIndication_free;
asn_struct_print_f S1AP_PendingDataIndication_print;
asn_constr_check_f S1AP_PendingDataIndication_constraint;
-jer_type_encoder_f S1AP_PendingDataIndication_encode_jer;
per_type_decoder_f S1AP_PendingDataIndication_decode_aper;
per_type_encoder_f S1AP_PendingDataIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Port-Number.c b/lib/asn1c/s1ap/S1AP_Port-Number.c
index 0da26956f7..42d958594d 100644
--- a/lib/asn1c/s1ap/S1AP_Port-Number.c
+++ b/lib/asn1c/s1ap/S1AP_Port-Number.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Port-Number.h"
diff --git a/lib/asn1c/s1ap/S1AP_Port-Number.h b/lib/asn1c/s1ap/S1AP_Port-Number.h
index 11a22bce08..de2ff46932 100644
--- a/lib/asn1c/s1ap/S1AP_Port-Number.h
+++ b/lib/asn1c/s1ap/S1AP_Port-Number.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Port_Number_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Port_Number;
asn_struct_free_f S1AP_Port_Number_free;
asn_struct_print_f S1AP_Port_Number_print;
asn_constr_check_f S1AP_Port_Number_constraint;
-jer_type_encoder_f S1AP_Port_Number_encode_jer;
per_type_decoder_f S1AP_Port_Number_decode_aper;
per_type_encoder_f S1AP_Port_Number_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.c b/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.c
index 8d6344bbd2..35b1ceff06 100644
--- a/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.c
+++ b/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Pre-emptionCapability.h"
diff --git a/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.h b/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.h
index 5ae8e1f95b..a42bbf6584 100644
--- a/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.h
+++ b/lib/asn1c/s1ap/S1AP_Pre-emptionCapability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Pre_emptionCapability_H_
@@ -34,7 +34,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Pre_emptionCapability_specs_1;
asn_struct_free_f S1AP_Pre_emptionCapability_free;
asn_struct_print_f S1AP_Pre_emptionCapability_print;
asn_constr_check_f S1AP_Pre_emptionCapability_constraint;
-jer_type_encoder_f S1AP_Pre_emptionCapability_encode_jer;
per_type_decoder_f S1AP_Pre_emptionCapability_decode_aper;
per_type_encoder_f S1AP_Pre_emptionCapability_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.c b/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.c
index 0ef68ea698..ebb92ca175 100644
--- a/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.c
+++ b/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Pre-emptionVulnerability.h"
diff --git a/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.h b/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.h
index 549e5c3f69..09e323a7dc 100644
--- a/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.h
+++ b/lib/asn1c/s1ap/S1AP_Pre-emptionVulnerability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Pre_emptionVulnerability_H_
@@ -34,7 +34,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Pre_emptionVulnerability_specs
asn_struct_free_f S1AP_Pre_emptionVulnerability_free;
asn_struct_print_f S1AP_Pre_emptionVulnerability_print;
asn_constr_check_f S1AP_Pre_emptionVulnerability_constraint;
-jer_type_encoder_f S1AP_Pre_emptionVulnerability_encode_jer;
per_type_decoder_f S1AP_Pre_emptionVulnerability_decode_aper;
per_type_encoder_f S1AP_Pre_emptionVulnerability_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Presence.c b/lib/asn1c/s1ap/S1AP_Presence.c
index ce4c3e6b5a..0db54eebc1 100644
--- a/lib/asn1c/s1ap/S1AP_Presence.c
+++ b/lib/asn1c/s1ap/S1AP_Presence.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Presence.h"
diff --git a/lib/asn1c/s1ap/S1AP_Presence.h b/lib/asn1c/s1ap/S1AP_Presence.h
index 603d917095..9a16e90276 100644
--- a/lib/asn1c/s1ap/S1AP_Presence.h
+++ b/lib/asn1c/s1ap/S1AP_Presence.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Presence_H_
@@ -35,7 +35,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Presence_specs_1;
asn_struct_free_f S1AP_Presence_free;
asn_struct_print_f S1AP_Presence_print;
asn_constr_check_f S1AP_Presence_constraint;
-jer_type_encoder_f S1AP_Presence_encode_jer;
per_type_decoder_f S1AP_Presence_decode_aper;
per_type_encoder_f S1AP_Presence_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PriorityLevel.c b/lib/asn1c/s1ap/S1AP_PriorityLevel.c
index f5231292e7..3bdbdd73cb 100644
--- a/lib/asn1c/s1ap/S1AP_PriorityLevel.c
+++ b/lib/asn1c/s1ap/S1AP_PriorityLevel.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PriorityLevel.h"
diff --git a/lib/asn1c/s1ap/S1AP_PriorityLevel.h b/lib/asn1c/s1ap/S1AP_PriorityLevel.h
index 345cea5c69..a87350e8f8 100644
--- a/lib/asn1c/s1ap/S1AP_PriorityLevel.h
+++ b/lib/asn1c/s1ap/S1AP_PriorityLevel.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PriorityLevel_H_
@@ -35,7 +35,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_PriorityLevel;
asn_struct_free_f S1AP_PriorityLevel_free;
asn_struct_print_f S1AP_PriorityLevel_print;
asn_constr_check_f S1AP_PriorityLevel_constraint;
-jer_type_encoder_f S1AP_PriorityLevel_encode_jer;
per_type_decoder_f S1AP_PriorityLevel_decode_aper;
per_type_encoder_f S1AP_PriorityLevel_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PrivacyIndicator.c b/lib/asn1c/s1ap/S1AP_PrivacyIndicator.c
index 2a2b739f6c..1aa4c6c37d 100644
--- a/lib/asn1c/s1ap/S1AP_PrivacyIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_PrivacyIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PrivacyIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_PrivacyIndicator.h b/lib/asn1c/s1ap/S1AP_PrivacyIndicator.h
index c9e6d35d6a..ce7670179e 100644
--- a/lib/asn1c/s1ap/S1AP_PrivacyIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_PrivacyIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PrivacyIndicator_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_PrivacyIndicator_specs_1;
asn_struct_free_f S1AP_PrivacyIndicator_free;
asn_struct_print_f S1AP_PrivacyIndicator_print;
asn_constr_check_f S1AP_PrivacyIndicator_constraint;
-jer_type_encoder_f S1AP_PrivacyIndicator_encode_jer;
per_type_decoder_f S1AP_PrivacyIndicator_decode_aper;
per_type_encoder_f S1AP_PrivacyIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_PrivateIE-Container.c b/lib/asn1c/s1ap/S1AP_PrivateIE-Container.c
index 4103fb63ce..4257cf6a0d 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateIE-Container.c
+++ b/lib/asn1c/s1ap/S1AP_PrivateIE-Container.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PrivateIE-Container.h"
diff --git a/lib/asn1c/s1ap/S1AP_PrivateIE-Container.h b/lib/asn1c/s1ap/S1AP_PrivateIE-Container.h
index d35096c5f6..54b6b60032 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateIE-Container.h
+++ b/lib/asn1c/s1ap/S1AP_PrivateIE-Container.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PrivateIE_Container_H_
diff --git a/lib/asn1c/s1ap/S1AP_PrivateIE-Field.c b/lib/asn1c/s1ap/S1AP_PrivateIE-Field.c
index 26f9f38f0d..0e7893a936 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateIE-Field.c
+++ b/lib/asn1c/s1ap/S1AP_PrivateIE-Field.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PrivateIE-Field.h"
diff --git a/lib/asn1c/s1ap/S1AP_PrivateIE-Field.h b/lib/asn1c/s1ap/S1AP_PrivateIE-Field.h
index fbfa8ec88d..d45b6dfeaf 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateIE-Field.h
+++ b/lib/asn1c/s1ap/S1AP_PrivateIE-Field.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PrivateIE_Field_H_
diff --git a/lib/asn1c/s1ap/S1AP_PrivateIE-ID.c b/lib/asn1c/s1ap/S1AP_PrivateIE-ID.c
index 89615bf649..dcaf8beb44 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateIE-ID.c
+++ b/lib/asn1c/s1ap/S1AP_PrivateIE-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PrivateIE-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_PrivateIE-ID.h b/lib/asn1c/s1ap/S1AP_PrivateIE-ID.h
index 7c6e1ce833..a120f0ca77 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateIE-ID.h
+++ b/lib/asn1c/s1ap/S1AP_PrivateIE-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PrivateIE_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_PrivateMessage.c b/lib/asn1c/s1ap/S1AP_PrivateMessage.c
index ec8e46d6c8..6e3b05b240 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateMessage.c
+++ b/lib/asn1c/s1ap/S1AP_PrivateMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_PrivateMessage.h"
diff --git a/lib/asn1c/s1ap/S1AP_PrivateMessage.h b/lib/asn1c/s1ap/S1AP_PrivateMessage.h
index e2df555327..7c53be1c8c 100644
--- a/lib/asn1c/s1ap/S1AP_PrivateMessage.h
+++ b/lib/asn1c/s1ap/S1AP_PrivateMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_PrivateMessage_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProSeAuthorized.c b/lib/asn1c/s1ap/S1AP_ProSeAuthorized.c
index 6c030085fe..d762a8aeb1 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeAuthorized.c
+++ b/lib/asn1c/s1ap/S1AP_ProSeAuthorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProSeAuthorized.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProSeAuthorized.h b/lib/asn1c/s1ap/S1AP_ProSeAuthorized.h
index 2602236545..fa53d60c97 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeAuthorized.h
+++ b/lib/asn1c/s1ap/S1AP_ProSeAuthorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProSeAuthorized_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.c b/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.c
index f560793513..389a72bb68 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.c
+++ b/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProSeDirectCommunication.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.h b/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.h
index bccdc73cf4..6bf8648f20 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.h
+++ b/lib/asn1c/s1ap/S1AP_ProSeDirectCommunication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProSeDirectCommunication_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ProSeDirectCommunication_specs
asn_struct_free_f S1AP_ProSeDirectCommunication_free;
asn_struct_print_f S1AP_ProSeDirectCommunication_print;
asn_constr_check_f S1AP_ProSeDirectCommunication_constraint;
-jer_type_encoder_f S1AP_ProSeDirectCommunication_encode_jer;
per_type_decoder_f S1AP_ProSeDirectCommunication_decode_aper;
per_type_encoder_f S1AP_ProSeDirectCommunication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.c b/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.c
index 0fc6d66057..c677c24b87 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.c
+++ b/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProSeDirectDiscovery.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.h b/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.h
index 1bbdb2cdf9..63195dcce6 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.h
+++ b/lib/asn1c/s1ap/S1AP_ProSeDirectDiscovery.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProSeDirectDiscovery_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ProSeDirectDiscovery_specs_1;
asn_struct_free_f S1AP_ProSeDirectDiscovery_free;
asn_struct_print_f S1AP_ProSeDirectDiscovery_print;
asn_constr_check_f S1AP_ProSeDirectDiscovery_constraint;
-jer_type_encoder_f S1AP_ProSeDirectDiscovery_encode_jer;
per_type_decoder_f S1AP_ProSeDirectDiscovery_decode_aper;
per_type_encoder_f S1AP_ProSeDirectDiscovery_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.c b/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.c
index 32370f6934..37820a8f7a 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.c
+++ b/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProSeUEtoNetworkRelaying.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.h b/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.h
index 86d1abeb94..84fce8e5f0 100644
--- a/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.h
+++ b/lib/asn1c/s1ap/S1AP_ProSeUEtoNetworkRelaying.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProSeUEtoNetworkRelaying_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ProSeUEtoNetworkRelaying_specs
asn_struct_free_f S1AP_ProSeUEtoNetworkRelaying_free;
asn_struct_print_f S1AP_ProSeUEtoNetworkRelaying_print;
asn_constr_check_f S1AP_ProSeUEtoNetworkRelaying_constraint;
-jer_type_encoder_f S1AP_ProSeUEtoNetworkRelaying_encode_jer;
per_type_decoder_f S1AP_ProSeUEtoNetworkRelaying_decode_aper;
per_type_encoder_f S1AP_ProSeUEtoNetworkRelaying_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ProcedureCode.c b/lib/asn1c/s1ap/S1AP_ProcedureCode.c
index 5425cdd740..869a60305a 100644
--- a/lib/asn1c/s1ap/S1AP_ProcedureCode.c
+++ b/lib/asn1c/s1ap/S1AP_ProcedureCode.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProcedureCode.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProcedureCode.h b/lib/asn1c/s1ap/S1AP_ProcedureCode.h
index efd6e6e8c0..c61af8f0ef 100644
--- a/lib/asn1c/s1ap/S1AP_ProcedureCode.h
+++ b/lib/asn1c/s1ap/S1AP_ProcedureCode.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProcedureCode_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProcedureCode;
asn_struct_free_f S1AP_ProcedureCode_free;
asn_struct_print_f S1AP_ProcedureCode_print;
asn_constr_check_f S1AP_ProcedureCode_constraint;
-jer_type_encoder_f S1AP_ProcedureCode_encode_jer;
per_type_decoder_f S1AP_ProcedureCode_decode_aper;
per_type_encoder_f S1AP_ProcedureCode_encode_aper;
#define S1AP_ProcedureCode_id_HandoverPreparation ((S1AP_ProcedureCode_t)0)
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolError-IE-ContainerList.h b/lib/asn1c/s1ap/S1AP_ProtocolError-IE-ContainerList.h
index 0a85702fb3..a0c080c78c 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolError-IE-ContainerList.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolError-IE-ContainerList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolError_IE_ContainerList_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.c b/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.c
index 465fb45e93..1fbcc262d6 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolExtensionContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.h b/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.h
index bbb51fb8da..7b05d988e2 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolExtensionContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolExtensionContainer_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.c b/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.c
index 18dffa3b39..372217abcd 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolExtensionField.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.h b/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.h
index 9515456e90..e113fd08fa 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolExtensionField.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolExtensionField_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.c b/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.c
index dec17d088c..30a62be8e5 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolExtensionID.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.h b/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.h
index f72e5dd035..46424ea174 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolExtensionID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolExtensionID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolExtensionID;
asn_struct_free_f S1AP_ProtocolExtensionID_free;
asn_struct_print_f S1AP_ProtocolExtensionID_print;
asn_constr_check_f S1AP_ProtocolExtensionID_constraint;
-jer_type_encoder_f S1AP_ProtocolExtensionID_encode_jer;
per_type_decoder_f S1AP_ProtocolExtensionID_decode_aper;
per_type_encoder_f S1AP_ProtocolExtensionID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.c b/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.c
index 30302f36ce..eeee22b335 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolIE-Container.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.h
index be7073ce14..aa0d5b01a6 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-Container.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_Container_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.c b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.c
index eda218db31..d92c435b86 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolIE-ContainerList.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.h
index 3abc6d2b40..1b1bc6301c 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_ContainerList_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPair.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPair.h
index 4fa82f5054..1e2c21757f 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPair.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPair.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_ContainerPair_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPairList.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPairList.h
index bb1a6b3a08..4bc5c3ec57 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPairList.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-ContainerPairList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_ContainerPairList_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.c b/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.c
index 45cf25bb69..9b594863a0 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolIE-Field.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.h
index 70b25782f7..e8ab01da2a 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-Field.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_Field_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-FieldPair.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-FieldPair.h
index fcad70405a..0964fda8a7 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-FieldPair.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-FieldPair.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_FieldPair_H_
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.c b/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.c
index 8228a0756b..7d1e42e9ff 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolIE-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.h
index 8c8d49ccfa..fdea19c436 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_ID;
asn_struct_free_f S1AP_ProtocolIE_ID_free;
asn_struct_print_f S1AP_ProtocolIE_ID_print;
asn_constr_check_f S1AP_ProtocolIE_ID_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_ID_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_ID_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_ID_encode_aper;
#define S1AP_ProtocolIE_ID_id_MME_UE_S1AP_ID ((S1AP_ProtocolIE_ID_t)0)
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.c b/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.c
index f9c6204466..dea5d9b7d6 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.c
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ProtocolIE-SingleContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.h b/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.h
index 66681a19ea..6aa2eba6ec 100644
--- a/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.h
+++ b/lib/asn1c/s1ap/S1AP_ProtocolIE-SingleContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-Containers"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ProtocolIE_SingleContainer_H_
@@ -63,266 +63,228 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P0;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P0_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P0_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P0_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P0_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P0_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P0_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P1;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P1_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P1_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P1_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P1_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P1_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P1_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P2;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P2_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P2_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P2_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P2_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P2_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P2_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P3;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P3_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P3_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P3_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P3_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P3_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P3_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P4;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P4_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P4_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P4_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P4_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P4_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P4_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P5;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P5_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P5_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P5_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P5_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P5_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P5_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P6;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P6_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P6_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P6_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P6_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P6_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P6_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P7;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P7_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P7_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P7_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P7_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P7_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P7_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P8;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P8_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P8_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P8_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P8_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P8_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P8_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P9;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P9_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P9_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P9_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P9_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P9_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P9_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P10;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P10_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P10_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P10_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P10_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P10_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P10_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P11;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P11_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P11_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P11_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P11_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P11_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P11_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P12;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P12_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P12_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P12_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P12_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P12_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P12_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P13;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P13_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P13_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P13_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P13_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P13_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P13_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P14;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P14_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P14_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P14_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P14_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P14_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P14_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P15;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P15_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P15_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P15_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P15_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P15_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P15_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P16;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P16_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P16_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P16_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P16_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P16_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P16_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P17;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P17_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P17_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P17_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P17_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P17_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P17_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P18;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P18_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P18_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P18_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P18_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P18_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P18_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P19;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P19_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P19_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P19_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P19_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P19_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P19_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P20;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P20_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P20_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P20_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P20_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P20_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P20_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P21;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P21_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P21_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P21_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P21_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P21_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P21_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P22;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P22_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P22_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P22_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P22_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P22_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P22_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P23;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P23_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P23_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P23_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P23_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P23_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P23_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P24;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P24_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P24_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P24_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P24_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P24_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P24_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P25;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P25_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P25_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P25_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P25_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P25_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P25_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P26;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P26_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P26_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P26_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P26_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P26_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P26_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P27;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P27_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P27_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P27_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P27_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P27_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P27_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P28;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P28_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P28_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P28_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P28_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P28_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P28_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P29;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P29_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P29_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P29_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P29_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P29_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P29_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P30;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P30_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P30_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P30_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P30_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P30_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P30_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P31;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P31_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P31_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P31_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P31_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P31_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P31_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P32;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P32_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P32_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P32_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P32_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P32_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P32_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P33;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P33_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P33_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P33_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P33_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P33_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P33_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P34;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P34_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P34_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P34_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P34_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P34_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P34_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P35;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P35_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P35_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P35_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P35_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P35_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P35_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P36;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P36_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P36_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P36_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P36_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P36_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P36_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_S1AP_ProtocolIE_SingleContainer_8146P37;
asn_struct_free_f S1AP_ProtocolIE_SingleContainer_8146P37_free;
asn_struct_print_f S1AP_ProtocolIE_SingleContainer_8146P37_print;
asn_constr_check_f S1AP_ProtocolIE_SingleContainer_8146P37_constraint;
-jer_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P37_encode_jer;
per_type_decoder_f S1AP_ProtocolIE_SingleContainer_8146P37_decode_aper;
per_type_encoder_f S1AP_ProtocolIE_SingleContainer_8146P37_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_QCI.c b/lib/asn1c/s1ap/S1AP_QCI.c
index 60e394aa3f..e6106745c2 100644
--- a/lib/asn1c/s1ap/S1AP_QCI.c
+++ b/lib/asn1c/s1ap/S1AP_QCI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_QCI.h"
diff --git a/lib/asn1c/s1ap/S1AP_QCI.h b/lib/asn1c/s1ap/S1AP_QCI.h
index 5b19d71025..18d0a2bd63 100644
--- a/lib/asn1c/s1ap/S1AP_QCI.h
+++ b/lib/asn1c/s1ap/S1AP_QCI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_QCI_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_QCI;
asn_struct_free_f S1AP_QCI_free;
asn_struct_print_f S1AP_QCI_print;
asn_constr_check_f S1AP_QCI_constraint;
-jer_type_encoder_f S1AP_QCI_encode_jer;
per_type_decoder_f S1AP_QCI_decode_aper;
per_type_encoder_f S1AP_QCI_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RAC.c b/lib/asn1c/s1ap/S1AP_RAC.c
index 46d7ad51c4..fe826b4cda 100644
--- a/lib/asn1c/s1ap/S1AP_RAC.c
+++ b/lib/asn1c/s1ap/S1AP_RAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RAC.h"
diff --git a/lib/asn1c/s1ap/S1AP_RAC.h b/lib/asn1c/s1ap/S1AP_RAC.h
index 44be2d5bc2..0d25c4663d 100644
--- a/lib/asn1c/s1ap/S1AP_RAC.h
+++ b/lib/asn1c/s1ap/S1AP_RAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_RAC;
asn_struct_free_f S1AP_RAC_free;
asn_struct_print_f S1AP_RAC_print;
asn_constr_check_f S1AP_RAC_constraint;
-jer_type_encoder_f S1AP_RAC_encode_jer;
per_type_decoder_f S1AP_RAC_decode_aper;
per_type_encoder_f S1AP_RAC_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RACSIndication.c b/lib/asn1c/s1ap/S1AP_RACSIndication.c
index 55c801ed77..49c616c6d5 100644
--- a/lib/asn1c/s1ap/S1AP_RACSIndication.c
+++ b/lib/asn1c/s1ap/S1AP_RACSIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RACSIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_RACSIndication.h b/lib/asn1c/s1ap/S1AP_RACSIndication.h
index 4db53e5d1f..cdc96d533e 100644
--- a/lib/asn1c/s1ap/S1AP_RACSIndication.h
+++ b/lib/asn1c/s1ap/S1AP_RACSIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RACSIndication_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_RACSIndication_specs_1;
asn_struct_free_f S1AP_RACSIndication_free;
asn_struct_print_f S1AP_RACSIndication_print;
asn_constr_check_f S1AP_RACSIndication_constraint;
-jer_type_encoder_f S1AP_RACSIndication_encode_jer;
per_type_decoder_f S1AP_RACSIndication_decode_aper;
per_type_encoder_f S1AP_RACSIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.c b/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.c
index 1796b147f2..b325d3b5f1 100644
--- a/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.c
+++ b/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RAN-UE-NGAP-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.h b/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.h
index cdf7f49a7c..22647c6ec0 100644
--- a/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.h
+++ b/lib/asn1c/s1ap/S1AP_RAN-UE-NGAP-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RAN_UE_NGAP_ID_H_
@@ -28,7 +28,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_RAN_UE_NGAP_ID_specs_1;
asn_struct_free_f S1AP_RAN_UE_NGAP_ID_free;
asn_struct_print_f S1AP_RAN_UE_NGAP_ID_print;
asn_constr_check_f S1AP_RAN_UE_NGAP_ID_constraint;
-jer_type_encoder_f S1AP_RAN_UE_NGAP_ID_encode_jer;
per_type_decoder_f S1AP_RAN_UE_NGAP_ID_decode_aper;
per_type_encoder_f S1AP_RAN_UE_NGAP_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RAT-Restrictions.c b/lib/asn1c/s1ap/S1AP_RAT-Restrictions.c
index 907ed9d49a..af908685be 100644
--- a/lib/asn1c/s1ap/S1AP_RAT-Restrictions.c
+++ b/lib/asn1c/s1ap/S1AP_RAT-Restrictions.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RAT-Restrictions.h"
diff --git a/lib/asn1c/s1ap/S1AP_RAT-Restrictions.h b/lib/asn1c/s1ap/S1AP_RAT-Restrictions.h
index 0d2d00a0ee..2edfd7ae2b 100644
--- a/lib/asn1c/s1ap/S1AP_RAT-Restrictions.h
+++ b/lib/asn1c/s1ap/S1AP_RAT-Restrictions.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RAT_Restrictions_H_
diff --git a/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.c b/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.c
index 70b5fe5e4b..bb53ad40eb 100644
--- a/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.c
+++ b/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RAT-RestrictionsItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.h b/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.h
index cfe8944bf0..7bd48d909d 100644
--- a/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.h
+++ b/lib/asn1c/s1ap/S1AP_RAT-RestrictionsItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RAT_RestrictionsItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_RAT-Type.c b/lib/asn1c/s1ap/S1AP_RAT-Type.c
index 4dbc77a2fb..581b428eb4 100644
--- a/lib/asn1c/s1ap/S1AP_RAT-Type.c
+++ b/lib/asn1c/s1ap/S1AP_RAT-Type.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RAT-Type.h"
diff --git a/lib/asn1c/s1ap/S1AP_RAT-Type.h b/lib/asn1c/s1ap/S1AP_RAT-Type.h
index 9fc2b7f158..753cb726c2 100644
--- a/lib/asn1c/s1ap/S1AP_RAT-Type.h
+++ b/lib/asn1c/s1ap/S1AP_RAT-Type.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RAT_Type_H_
@@ -44,7 +44,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_RAT_Type_specs_1;
asn_struct_free_f S1AP_RAT_Type_free;
asn_struct_print_f S1AP_RAT_Type_print;
asn_constr_check_f S1AP_RAT_Type_constraint;
-jer_type_encoder_f S1AP_RAT_Type_encode_jer;
per_type_decoder_f S1AP_RAT_Type_decode_aper;
per_type_encoder_f S1AP_RAT_Type_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RIMInformation.c b/lib/asn1c/s1ap/S1AP_RIMInformation.c
index 7f8feedeff..ae05c9d2d1 100644
--- a/lib/asn1c/s1ap/S1AP_RIMInformation.c
+++ b/lib/asn1c/s1ap/S1AP_RIMInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RIMInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_RIMInformation.h b/lib/asn1c/s1ap/S1AP_RIMInformation.h
index a6471492dd..15c15b1f79 100644
--- a/lib/asn1c/s1ap/S1AP_RIMInformation.h
+++ b/lib/asn1c/s1ap/S1AP_RIMInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RIMInformation_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_RIMInformation;
asn_struct_free_f S1AP_RIMInformation_free;
asn_struct_print_f S1AP_RIMInformation_print;
asn_constr_check_f S1AP_RIMInformation_constraint;
-jer_type_encoder_f S1AP_RIMInformation_encode_jer;
per_type_decoder_f S1AP_RIMInformation_decode_aper;
per_type_encoder_f S1AP_RIMInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.c b/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.c
index e686fd68a9..4f4642f301 100644
--- a/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.c
+++ b/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RIMRoutingAddress.h"
diff --git a/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.h b/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.h
index 1e676c3c70..b78039a1d4 100644
--- a/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.h
+++ b/lib/asn1c/s1ap/S1AP_RIMRoutingAddress.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RIMRoutingAddress_H_
diff --git a/lib/asn1c/s1ap/S1AP_RIMTransfer.c b/lib/asn1c/s1ap/S1AP_RIMTransfer.c
index 99b79cca89..de0c8eb2f0 100644
--- a/lib/asn1c/s1ap/S1AP_RIMTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_RIMTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RIMTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_RIMTransfer.h b/lib/asn1c/s1ap/S1AP_RIMTransfer.h
index 6502a4c2f3..86c957d147 100644
--- a/lib/asn1c/s1ap/S1AP_RIMTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_RIMTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RIMTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_RLFReportInformation.c b/lib/asn1c/s1ap/S1AP_RLFReportInformation.c
index a89827f3dc..9c394966f4 100644
--- a/lib/asn1c/s1ap/S1AP_RLFReportInformation.c
+++ b/lib/asn1c/s1ap/S1AP_RLFReportInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RLFReportInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_RLFReportInformation.h b/lib/asn1c/s1ap/S1AP_RLFReportInformation.h
index b646611a8f..a4f9d206d9 100644
--- a/lib/asn1c/s1ap/S1AP_RLFReportInformation.h
+++ b/lib/asn1c/s1ap/S1AP_RLFReportInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RLFReportInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_RNC-ID.c b/lib/asn1c/s1ap/S1AP_RNC-ID.c
index 224f178177..d1324ddce4 100644
--- a/lib/asn1c/s1ap/S1AP_RNC-ID.c
+++ b/lib/asn1c/s1ap/S1AP_RNC-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RNC-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_RNC-ID.h b/lib/asn1c/s1ap/S1AP_RNC-ID.h
index cc120cb5f2..82d93c3405 100644
--- a/lib/asn1c/s1ap/S1AP_RNC-ID.h
+++ b/lib/asn1c/s1ap/S1AP_RNC-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RNC_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_RNC_ID;
asn_struct_free_f S1AP_RNC_ID_free;
asn_struct_print_f S1AP_RNC_ID_print;
asn_constr_check_f S1AP_RNC_ID_constraint;
-jer_type_encoder_f S1AP_RNC_ID_encode_jer;
per_type_decoder_f S1AP_RNC_ID_decode_aper;
per_type_encoder_f S1AP_RNC_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RRC-Container.c b/lib/asn1c/s1ap/S1AP_RRC-Container.c
index 35653e99ee..3337ee0380 100644
--- a/lib/asn1c/s1ap/S1AP_RRC-Container.c
+++ b/lib/asn1c/s1ap/S1AP_RRC-Container.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RRC-Container.h"
diff --git a/lib/asn1c/s1ap/S1AP_RRC-Container.h b/lib/asn1c/s1ap/S1AP_RRC-Container.h
index e277aff7ff..99e990cc99 100644
--- a/lib/asn1c/s1ap/S1AP_RRC-Container.h
+++ b/lib/asn1c/s1ap/S1AP_RRC-Container.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RRC_Container_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_RRC_Container;
asn_struct_free_f S1AP_RRC_Container_free;
asn_struct_print_f S1AP_RRC_Container_print;
asn_constr_check_f S1AP_RRC_Container_constraint;
-jer_type_encoder_f S1AP_RRC_Container_encode_jer;
per_type_decoder_f S1AP_RRC_Container_decode_aper;
per_type_encoder_f S1AP_RRC_Container_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.c b/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.c
index ad41aea271..e71fcb08a1 100644
--- a/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.c
+++ b/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RRC-Establishment-Cause.h"
diff --git a/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.h b/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.h
index 3248832e14..8fadc2b10c 100644
--- a/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.h
+++ b/lib/asn1c/s1ap/S1AP_RRC-Establishment-Cause.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RRC_Establishment_Cause_H_
@@ -43,7 +43,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_RRC_Establishment_Cause_specs_
asn_struct_free_f S1AP_RRC_Establishment_Cause_free;
asn_struct_print_f S1AP_RRC_Establishment_Cause_print;
asn_constr_check_f S1AP_RRC_Establishment_Cause_constraint;
-jer_type_encoder_f S1AP_RRC_Establishment_Cause_encode_jer;
per_type_decoder_f S1AP_RRC_Establishment_Cause_decode_aper;
per_type_encoder_f S1AP_RRC_Establishment_Cause_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Range.c b/lib/asn1c/s1ap/S1AP_Range.c
index 0e0f18aeff..9399af78ad 100644
--- a/lib/asn1c/s1ap/S1AP_Range.c
+++ b/lib/asn1c/s1ap/S1AP_Range.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Range.h"
diff --git a/lib/asn1c/s1ap/S1AP_Range.h b/lib/asn1c/s1ap/S1AP_Range.h
index 9dd86e122c..6b0c830ac3 100644
--- a/lib/asn1c/s1ap/S1AP_Range.h
+++ b/lib/asn1c/s1ap/S1AP_Range.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Range_H_
@@ -44,7 +44,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_Range_specs_1;
asn_struct_free_f S1AP_Range_free;
asn_struct_print_f S1AP_Range_print;
asn_constr_check_f S1AP_Range_constraint;
-jer_type_encoder_f S1AP_Range_encode_jer;
per_type_decoder_f S1AP_Range_decode_aper;
per_type_encoder_f S1AP_Range_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.c b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.c
index 6d33e2cc9a..8745475f34 100644
--- a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.c
+++ b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ReceiveStatusOfULPDCPSDUsExtended.h"
diff --git a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.h b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.h
index e4853a82b5..2b4727187e 100644
--- a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.h
+++ b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsExtended.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ReceiveStatusOfULPDCPSDUsExtended_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ReceiveStatusOfULPDCPSDUsExtended;
asn_struct_free_f S1AP_ReceiveStatusOfULPDCPSDUsExtended_free;
asn_struct_print_f S1AP_ReceiveStatusOfULPDCPSDUsExtended_print;
asn_constr_check_f S1AP_ReceiveStatusOfULPDCPSDUsExtended_constraint;
-jer_type_encoder_f S1AP_ReceiveStatusOfULPDCPSDUsExtended_encode_jer;
per_type_decoder_f S1AP_ReceiveStatusOfULPDCPSDUsExtended_decode_aper;
per_type_encoder_f S1AP_ReceiveStatusOfULPDCPSDUsExtended_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c
index 3cf3150f69..acf1bf4ad6 100644
--- a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c
+++ b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h"
diff --git a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h
index 7168c46bdb..10fb0063e6 100644
--- a/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h
+++ b/lib/asn1c/s1ap/S1AP_ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength
asn_struct_free_f S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_free;
asn_struct_print_f S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_print;
asn_constr_check_f S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_constraint;
-jer_type_encoder_f S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_jer;
per_type_decoder_f S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_decode_aper;
per_type_encoder_f S1AP_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.c b/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.c
index f592b42c39..37d24171f1 100644
--- a/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.c
+++ b/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ReceiveStatusofULPDCPSDUs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.h b/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.h
index d20e282bfc..d8e1e34159 100644
--- a/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.h
+++ b/lib/asn1c/s1ap/S1AP_ReceiveStatusofULPDCPSDUs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ReceiveStatusofULPDCPSDUs_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_ReceiveStatusofULPDCPSDUs;
asn_struct_free_f S1AP_ReceiveStatusofULPDCPSDUs_free;
asn_struct_print_f S1AP_ReceiveStatusofULPDCPSDUs_print;
asn_constr_check_f S1AP_ReceiveStatusofULPDCPSDUs_constraint;
-jer_type_encoder_f S1AP_ReceiveStatusofULPDCPSDUs_encode_jer;
per_type_decoder_f S1AP_ReceiveStatusofULPDCPSDUs_decode_aper;
per_type_encoder_f S1AP_ReceiveStatusofULPDCPSDUs_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedCellItem.c b/lib/asn1c/s1ap/S1AP_RecommendedCellItem.c
index fd5333b535..1747ab447c 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedCellItem.c
+++ b/lib/asn1c/s1ap/S1AP_RecommendedCellItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RecommendedCellItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedCellItem.h b/lib/asn1c/s1ap/S1AP_RecommendedCellItem.h
index fbd3cbc6e9..fb3036e085 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedCellItem.h
+++ b/lib/asn1c/s1ap/S1AP_RecommendedCellItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RecommendedCellItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedCellList.c b/lib/asn1c/s1ap/S1AP_RecommendedCellList.c
index 00117b951a..68582e7553 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedCellList.c
+++ b/lib/asn1c/s1ap/S1AP_RecommendedCellList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RecommendedCellList.h"
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedCellList.h b/lib/asn1c/s1ap/S1AP_RecommendedCellList.h
index b8d462cbb4..36f45b797c 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedCellList.h
+++ b/lib/asn1c/s1ap/S1AP_RecommendedCellList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RecommendedCellList_H_
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.c b/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.c
index 57c4f8c76e..6e84493982 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.c
+++ b/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RecommendedCellsForPaging.h"
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.h b/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.h
index 56aff5383f..3eab3263c6 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.h
+++ b/lib/asn1c/s1ap/S1AP_RecommendedCellsForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RecommendedCellsForPaging_H_
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedENBItem.c b/lib/asn1c/s1ap/S1AP_RecommendedENBItem.c
index ff11ea8ced..98052e29fa 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedENBItem.c
+++ b/lib/asn1c/s1ap/S1AP_RecommendedENBItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RecommendedENBItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedENBItem.h b/lib/asn1c/s1ap/S1AP_RecommendedENBItem.h
index 7378cab156..74d5120133 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedENBItem.h
+++ b/lib/asn1c/s1ap/S1AP_RecommendedENBItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RecommendedENBItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedENBList.c b/lib/asn1c/s1ap/S1AP_RecommendedENBList.c
index f4c5670331..5ead2d4268 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedENBList.c
+++ b/lib/asn1c/s1ap/S1AP_RecommendedENBList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RecommendedENBList.h"
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedENBList.h b/lib/asn1c/s1ap/S1AP_RecommendedENBList.h
index 3a0361b21d..80f6565e3d 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedENBList.h
+++ b/lib/asn1c/s1ap/S1AP_RecommendedENBList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RecommendedENBList_H_
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.c b/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.c
index e948b9f33f..5750d164e7 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.c
+++ b/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RecommendedENBsForPaging.h"
diff --git a/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.h b/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.h
index 10b3922bee..39032dc00b 100644
--- a/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.h
+++ b/lib/asn1c/s1ap/S1AP_RecommendedENBsForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RecommendedENBsForPaging_H_
diff --git a/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.c b/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.c
index bf6f779606..be70e9fcb2 100644
--- a/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.c
+++ b/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RelativeMMECapacity.h"
diff --git a/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.h b/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.h
index 68ca59f6da..368b5e6dc7 100644
--- a/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.h
+++ b/lib/asn1c/s1ap/S1AP_RelativeMMECapacity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RelativeMMECapacity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_RelativeMMECapacity;
asn_struct_free_f S1AP_RelativeMMECapacity_free;
asn_struct_print_f S1AP_RelativeMMECapacity_print;
asn_constr_check_f S1AP_RelativeMMECapacity_constraint;
-jer_type_encoder_f S1AP_RelativeMMECapacity_encode_jer;
per_type_decoder_f S1AP_RelativeMMECapacity_decode_aper;
per_type_encoder_f S1AP_RelativeMMECapacity_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.c b/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.c
index 41b64d787a..775d1107a0 100644
--- a/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.c
+++ b/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RelayNode-Indicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.h b/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.h
index 80ef13cda0..72d9960a81 100644
--- a/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.h
+++ b/lib/asn1c/s1ap/S1AP_RelayNode-Indicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RelayNode_Indicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_RelayNode_Indicator_specs_1;
asn_struct_free_f S1AP_RelayNode_Indicator_free;
asn_struct_print_f S1AP_RelayNode_Indicator_print;
asn_constr_check_f S1AP_RelayNode_Indicator_constraint;
-jer_type_encoder_f S1AP_RelayNode_Indicator_encode_jer;
per_type_decoder_f S1AP_RelayNode_Indicator_decode_aper;
per_type_encoder_f S1AP_RelayNode_Indicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RepetitionPeriod.c b/lib/asn1c/s1ap/S1AP_RepetitionPeriod.c
index 306bb79e14..f4744f1551 100644
--- a/lib/asn1c/s1ap/S1AP_RepetitionPeriod.c
+++ b/lib/asn1c/s1ap/S1AP_RepetitionPeriod.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RepetitionPeriod.h"
diff --git a/lib/asn1c/s1ap/S1AP_RepetitionPeriod.h b/lib/asn1c/s1ap/S1AP_RepetitionPeriod.h
index 2915577a62..71dabf0daa 100644
--- a/lib/asn1c/s1ap/S1AP_RepetitionPeriod.h
+++ b/lib/asn1c/s1ap/S1AP_RepetitionPeriod.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RepetitionPeriod_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_RepetitionPeriod;
asn_struct_free_f S1AP_RepetitionPeriod_free;
asn_struct_print_f S1AP_RepetitionPeriod_print;
asn_constr_check_f S1AP_RepetitionPeriod_constraint;
-jer_type_encoder_f S1AP_RepetitionPeriod_encode_jer;
per_type_decoder_f S1AP_RepetitionPeriod_decode_aper;
per_type_encoder_f S1AP_RepetitionPeriod_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ReportAmountMDT.c b/lib/asn1c/s1ap/S1AP_ReportAmountMDT.c
index 0a227443ef..b22866c239 100644
--- a/lib/asn1c/s1ap/S1AP_ReportAmountMDT.c
+++ b/lib/asn1c/s1ap/S1AP_ReportAmountMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ReportAmountMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_ReportAmountMDT.h b/lib/asn1c/s1ap/S1AP_ReportAmountMDT.h
index 7d5ef0d2d1..b0444630bb 100644
--- a/lib/asn1c/s1ap/S1AP_ReportAmountMDT.h
+++ b/lib/asn1c/s1ap/S1AP_ReportAmountMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ReportAmountMDT_H_
@@ -40,7 +40,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ReportAmountMDT_specs_1;
asn_struct_free_f S1AP_ReportAmountMDT_free;
asn_struct_print_f S1AP_ReportAmountMDT_print;
asn_constr_check_f S1AP_ReportAmountMDT_constraint;
-jer_type_encoder_f S1AP_ReportAmountMDT_encode_jer;
per_type_decoder_f S1AP_ReportAmountMDT_decode_aper;
per_type_encoder_f S1AP_ReportAmountMDT_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ReportArea.c b/lib/asn1c/s1ap/S1AP_ReportArea.c
index e7ed6af860..67b68ebf66 100644
--- a/lib/asn1c/s1ap/S1AP_ReportArea.c
+++ b/lib/asn1c/s1ap/S1AP_ReportArea.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ReportArea.h"
diff --git a/lib/asn1c/s1ap/S1AP_ReportArea.h b/lib/asn1c/s1ap/S1AP_ReportArea.h
index a32c40a993..b49a5a8fda 100644
--- a/lib/asn1c/s1ap/S1AP_ReportArea.h
+++ b/lib/asn1c/s1ap/S1AP_ReportArea.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ReportArea_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ReportArea_specs_1;
asn_struct_free_f S1AP_ReportArea_free;
asn_struct_print_f S1AP_ReportArea_print;
asn_constr_check_f S1AP_ReportArea_constraint;
-jer_type_encoder_f S1AP_ReportArea_encode_jer;
per_type_decoder_f S1AP_ReportArea_decode_aper;
per_type_encoder_f S1AP_ReportArea_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.c b/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.c
index e32bf0c1d5..c3f64277cd 100644
--- a/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.c
+++ b/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ReportIntervalMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.h b/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.h
index 2178f11ca8..d80a2482da 100644
--- a/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.h
+++ b/lib/asn1c/s1ap/S1AP_ReportIntervalMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ReportIntervalMDT_H_
@@ -45,7 +45,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ReportIntervalMDT_specs_1;
asn_struct_free_f S1AP_ReportIntervalMDT_free;
asn_struct_print_f S1AP_ReportIntervalMDT_print;
asn_constr_check_f S1AP_ReportIntervalMDT_constraint;
-jer_type_encoder_f S1AP_ReportIntervalMDT_encode_jer;
per_type_decoder_f S1AP_ReportIntervalMDT_decode_aper;
per_type_encoder_f S1AP_ReportIntervalMDT_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RequestType.c b/lib/asn1c/s1ap/S1AP_RequestType.c
index da08b57b62..9d4721eef5 100644
--- a/lib/asn1c/s1ap/S1AP_RequestType.c
+++ b/lib/asn1c/s1ap/S1AP_RequestType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RequestType.h"
diff --git a/lib/asn1c/s1ap/S1AP_RequestType.h b/lib/asn1c/s1ap/S1AP_RequestType.h
index 8a05e220a5..f0bc73021f 100644
--- a/lib/asn1c/s1ap/S1AP_RequestType.h
+++ b/lib/asn1c/s1ap/S1AP_RequestType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RequestType_H_
diff --git a/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.c b/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.c
index 1042e661fb..81be2e16c8 100644
--- a/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.c
+++ b/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RequestTypeAdditionalInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.h b/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.h
index 0d0b9bfc21..5610baa5fd 100644
--- a/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.h
+++ b/lib/asn1c/s1ap/S1AP_RequestTypeAdditionalInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RequestTypeAdditionalInfo_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_RequestTypeAdditionalInfo_spec
asn_struct_free_f S1AP_RequestTypeAdditionalInfo_free;
asn_struct_print_f S1AP_RequestTypeAdditionalInfo_print;
asn_constr_check_f S1AP_RequestTypeAdditionalInfo_constraint;
-jer_type_encoder_f S1AP_RequestTypeAdditionalInfo_encode_jer;
per_type_decoder_f S1AP_RequestTypeAdditionalInfo_decode_aper;
per_type_encoder_f S1AP_RequestTypeAdditionalInfo_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_RerouteNASRequest.c b/lib/asn1c/s1ap/S1AP_RerouteNASRequest.c
index a7705aa1ee..7d0dc80798 100644
--- a/lib/asn1c/s1ap/S1AP_RerouteNASRequest.c
+++ b/lib/asn1c/s1ap/S1AP_RerouteNASRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RerouteNASRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_RerouteNASRequest.h b/lib/asn1c/s1ap/S1AP_RerouteNASRequest.h
index 650d87f2f7..a4a3e9ab51 100644
--- a/lib/asn1c/s1ap/S1AP_RerouteNASRequest.h
+++ b/lib/asn1c/s1ap/S1AP_RerouteNASRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RerouteNASRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_Reset.c b/lib/asn1c/s1ap/S1AP_Reset.c
index 79bccf8695..2154ff6861 100644
--- a/lib/asn1c/s1ap/S1AP_Reset.c
+++ b/lib/asn1c/s1ap/S1AP_Reset.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Reset.h"
diff --git a/lib/asn1c/s1ap/S1AP_Reset.h b/lib/asn1c/s1ap/S1AP_Reset.h
index 0a07b1d3ad..4571184c70 100644
--- a/lib/asn1c/s1ap/S1AP_Reset.h
+++ b/lib/asn1c/s1ap/S1AP_Reset.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Reset_H_
diff --git a/lib/asn1c/s1ap/S1AP_ResetAcknowledge.c b/lib/asn1c/s1ap/S1AP_ResetAcknowledge.c
index 642c6a1ade..472b6e1b6a 100644
--- a/lib/asn1c/s1ap/S1AP_ResetAcknowledge.c
+++ b/lib/asn1c/s1ap/S1AP_ResetAcknowledge.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ResetAcknowledge.h"
diff --git a/lib/asn1c/s1ap/S1AP_ResetAcknowledge.h b/lib/asn1c/s1ap/S1AP_ResetAcknowledge.h
index f19b1944fb..00488fb688 100644
--- a/lib/asn1c/s1ap/S1AP_ResetAcknowledge.h
+++ b/lib/asn1c/s1ap/S1AP_ResetAcknowledge.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ResetAcknowledge_H_
diff --git a/lib/asn1c/s1ap/S1AP_ResetAll.c b/lib/asn1c/s1ap/S1AP_ResetAll.c
index 0230524d73..447e19ba0a 100644
--- a/lib/asn1c/s1ap/S1AP_ResetAll.c
+++ b/lib/asn1c/s1ap/S1AP_ResetAll.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ResetAll.h"
diff --git a/lib/asn1c/s1ap/S1AP_ResetAll.h b/lib/asn1c/s1ap/S1AP_ResetAll.h
index 79c3c5c3e9..1f3fc6182c 100644
--- a/lib/asn1c/s1ap/S1AP_ResetAll.h
+++ b/lib/asn1c/s1ap/S1AP_ResetAll.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ResetAll_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ResetAll_specs_1;
asn_struct_free_f S1AP_ResetAll_free;
asn_struct_print_f S1AP_ResetAll_print;
asn_constr_check_f S1AP_ResetAll_constraint;
-jer_type_encoder_f S1AP_ResetAll_encode_jer;
per_type_decoder_f S1AP_ResetAll_decode_aper;
per_type_encoder_f S1AP_ResetAll_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ResetType.c b/lib/asn1c/s1ap/S1AP_ResetType.c
index 6634438198..efd8b9e40c 100644
--- a/lib/asn1c/s1ap/S1AP_ResetType.c
+++ b/lib/asn1c/s1ap/S1AP_ResetType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ResetType.h"
diff --git a/lib/asn1c/s1ap/S1AP_ResetType.h b/lib/asn1c/s1ap/S1AP_ResetType.h
index e928c766ad..34986aae94 100644
--- a/lib/asn1c/s1ap/S1AP_ResetType.h
+++ b/lib/asn1c/s1ap/S1AP_ResetType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ResetType_H_
diff --git a/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.c b/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.c
index d2f92497b6..910fb99482 100644
--- a/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.c
+++ b/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_RetrieveUEInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.h b/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.h
index deb9813de5..b4cedf2fce 100644
--- a/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.h
+++ b/lib/asn1c/s1ap/S1AP_RetrieveUEInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_RetrieveUEInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_Routing-ID.c b/lib/asn1c/s1ap/S1AP_Routing-ID.c
index 8e24cb5c73..7053b41366 100644
--- a/lib/asn1c/s1ap/S1AP_Routing-ID.c
+++ b/lib/asn1c/s1ap/S1AP_Routing-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Routing-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_Routing-ID.h b/lib/asn1c/s1ap/S1AP_Routing-ID.h
index 74631875d4..7946bbccc1 100644
--- a/lib/asn1c/s1ap/S1AP_Routing-ID.h
+++ b/lib/asn1c/s1ap/S1AP_Routing-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Routing_ID_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Routing_ID;
asn_struct_free_f S1AP_Routing_ID_free;
asn_struct_print_f S1AP_Routing_ID_print;
asn_constr_check_f S1AP_Routing_ID_constraint;
-jer_type_encoder_f S1AP_Routing_ID_encode_jer;
per_type_decoder_f S1AP_Routing_ID_decode_aper;
per_type_encoder_f S1AP_Routing_ID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_S-TMSI.c b/lib/asn1c/s1ap/S1AP_S-TMSI.c
index 5bbcf1252f..e58ee45b51 100644
--- a/lib/asn1c/s1ap/S1AP_S-TMSI.c
+++ b/lib/asn1c/s1ap/S1AP_S-TMSI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_S-TMSI.h"
diff --git a/lib/asn1c/s1ap/S1AP_S-TMSI.h b/lib/asn1c/s1ap/S1AP_S-TMSI.h
index 4ed76a2349..4ac2adba9b 100644
--- a/lib/asn1c/s1ap/S1AP_S-TMSI.h
+++ b/lib/asn1c/s1ap/S1AP_S-TMSI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_S_TMSI_H_
diff --git a/lib/asn1c/s1ap/S1AP_S1AP-PDU.c b/lib/asn1c/s1ap/S1AP_S1AP-PDU.c
index 4fe2d4d506..add5c153b4 100644
--- a/lib/asn1c/s1ap/S1AP_S1AP-PDU.c
+++ b/lib/asn1c/s1ap/S1AP_S1AP-PDU.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_S1AP-PDU.h"
diff --git a/lib/asn1c/s1ap/S1AP_S1AP-PDU.h b/lib/asn1c/s1ap/S1AP_S1AP-PDU.h
index 6ad891a05e..bb1528716b 100644
--- a/lib/asn1c/s1ap/S1AP_S1AP-PDU.h
+++ b/lib/asn1c/s1ap/S1AP_S1AP-PDU.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_S1AP_PDU_H_
diff --git a/lib/asn1c/s1ap/S1AP_S1SetupFailure.c b/lib/asn1c/s1ap/S1AP_S1SetupFailure.c
index f8b9add6ce..bb34a10760 100644
--- a/lib/asn1c/s1ap/S1AP_S1SetupFailure.c
+++ b/lib/asn1c/s1ap/S1AP_S1SetupFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_S1SetupFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_S1SetupFailure.h b/lib/asn1c/s1ap/S1AP_S1SetupFailure.h
index f174828ee3..f3274bc281 100644
--- a/lib/asn1c/s1ap/S1AP_S1SetupFailure.h
+++ b/lib/asn1c/s1ap/S1AP_S1SetupFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_S1SetupFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_S1SetupRequest.c b/lib/asn1c/s1ap/S1AP_S1SetupRequest.c
index ce6db68f1a..c957ab8008 100644
--- a/lib/asn1c/s1ap/S1AP_S1SetupRequest.c
+++ b/lib/asn1c/s1ap/S1AP_S1SetupRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_S1SetupRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_S1SetupRequest.h b/lib/asn1c/s1ap/S1AP_S1SetupRequest.h
index 217a988ae3..d473df1feb 100644
--- a/lib/asn1c/s1ap/S1AP_S1SetupRequest.h
+++ b/lib/asn1c/s1ap/S1AP_S1SetupRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_S1SetupRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_S1SetupResponse.c b/lib/asn1c/s1ap/S1AP_S1SetupResponse.c
index ea4f73d5bc..8df8466aee 100644
--- a/lib/asn1c/s1ap/S1AP_S1SetupResponse.c
+++ b/lib/asn1c/s1ap/S1AP_S1SetupResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_S1SetupResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_S1SetupResponse.h b/lib/asn1c/s1ap/S1AP_S1SetupResponse.h
index 597f0a0e7e..e81be8e525 100644
--- a/lib/asn1c/s1ap/S1AP_S1SetupResponse.h
+++ b/lib/asn1c/s1ap/S1AP_S1SetupResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_S1SetupResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.c b/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.c
index bdc61628d0..0b0f5c5128 100644
--- a/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SONConfigurationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.h b/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.h
index e6fb5c8372..fa01863a61 100644
--- a/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_SONConfigurationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SONConfigurationTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_SONInformation-Extension.c b/lib/asn1c/s1ap/S1AP_SONInformation-Extension.c
index 4e421e78b7..7c6390cbad 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformation-Extension.c
+++ b/lib/asn1c/s1ap/S1AP_SONInformation-Extension.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SONInformation-Extension.h"
diff --git a/lib/asn1c/s1ap/S1AP_SONInformation-Extension.h b/lib/asn1c/s1ap/S1AP_SONInformation-Extension.h
index df294a03d4..2ca19042a7 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformation-Extension.h
+++ b/lib/asn1c/s1ap/S1AP_SONInformation-Extension.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SONInformation_Extension_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SONInformation_Extension;
asn_struct_free_f S1AP_SONInformation_Extension_free;
asn_struct_print_f S1AP_SONInformation_Extension_print;
asn_constr_check_f S1AP_SONInformation_Extension_constraint;
-jer_type_encoder_f S1AP_SONInformation_Extension_encode_jer;
per_type_decoder_f S1AP_SONInformation_Extension_decode_aper;
per_type_encoder_f S1AP_SONInformation_Extension_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SONInformation.c b/lib/asn1c/s1ap/S1AP_SONInformation.c
index 8415d97058..c2c2f9e1ca 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformation.c
+++ b/lib/asn1c/s1ap/S1AP_SONInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SONInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_SONInformation.h b/lib/asn1c/s1ap/S1AP_SONInformation.h
index 6ed1b14265..40a42e61d2 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformation.h
+++ b/lib/asn1c/s1ap/S1AP_SONInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SONInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_SONInformationReply.c b/lib/asn1c/s1ap/S1AP_SONInformationReply.c
index 44d4967732..f6b17e9011 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformationReply.c
+++ b/lib/asn1c/s1ap/S1AP_SONInformationReply.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SONInformationReply.h"
diff --git a/lib/asn1c/s1ap/S1AP_SONInformationReply.h b/lib/asn1c/s1ap/S1AP_SONInformationReply.h
index 0d45f34823..3db6fcaa95 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformationReply.h
+++ b/lib/asn1c/s1ap/S1AP_SONInformationReply.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SONInformationReply_H_
diff --git a/lib/asn1c/s1ap/S1AP_SONInformationReport.c b/lib/asn1c/s1ap/S1AP_SONInformationReport.c
index ad5f4a6b4d..65e742eba1 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformationReport.c
+++ b/lib/asn1c/s1ap/S1AP_SONInformationReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SONInformationReport.h"
diff --git a/lib/asn1c/s1ap/S1AP_SONInformationReport.h b/lib/asn1c/s1ap/S1AP_SONInformationReport.h
index 4ef7facc42..0fa5fee445 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformationReport.h
+++ b/lib/asn1c/s1ap/S1AP_SONInformationReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SONInformationReport_H_
diff --git a/lib/asn1c/s1ap/S1AP_SONInformationRequest.c b/lib/asn1c/s1ap/S1AP_SONInformationRequest.c
index 9ab13bbda5..cfac88f1e9 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformationRequest.c
+++ b/lib/asn1c/s1ap/S1AP_SONInformationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SONInformationRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_SONInformationRequest.h b/lib/asn1c/s1ap/S1AP_SONInformationRequest.h
index 4ff102201a..8c356460d4 100644
--- a/lib/asn1c/s1ap/S1AP_SONInformationRequest.h
+++ b/lib/asn1c/s1ap/S1AP_SONInformationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SONInformationRequest_H_
@@ -39,7 +39,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SONInformationRequest_specs_1;
asn_struct_free_f S1AP_SONInformationRequest_free;
asn_struct_print_f S1AP_SONInformationRequest_print;
asn_constr_check_f S1AP_SONInformationRequest_constraint;
-jer_type_encoder_f S1AP_SONInformationRequest_encode_jer;
per_type_decoder_f S1AP_SONInformationRequest_decode_aper;
per_type_encoder_f S1AP_SONInformationRequest_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.c b/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.c
index dd83b0cbd8..4289de5e47 100644
--- a/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.c
+++ b/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SRVCCHOIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.h b/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.h
index 1746244403..7f42c60475 100644
--- a/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.h
+++ b/lib/asn1c/s1ap/S1AP_SRVCCHOIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SRVCCHOIndication_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SRVCCHOIndication_specs_1;
asn_struct_free_f S1AP_SRVCCHOIndication_free;
asn_struct_print_f S1AP_SRVCCHOIndication_print;
asn_constr_check_f S1AP_SRVCCHOIndication_constraint;
-jer_type_encoder_f S1AP_SRVCCHOIndication_encode_jer;
per_type_decoder_f S1AP_SRVCCHOIndication_decode_aper;
per_type_encoder_f S1AP_SRVCCHOIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.c b/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.c
index 4046572e0c..7bd60599f0 100644
--- a/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.c
+++ b/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SRVCCOperationNotPossible.h"
diff --git a/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.h b/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.h
index 64d1358ecd..f5cf292c15 100644
--- a/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.h
+++ b/lib/asn1c/s1ap/S1AP_SRVCCOperationNotPossible.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SRVCCOperationNotPossible_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SRVCCOperationNotPossible_spec
asn_struct_free_f S1AP_SRVCCOperationNotPossible_free;
asn_struct_print_f S1AP_SRVCCOperationNotPossible_print;
asn_constr_check_f S1AP_SRVCCOperationNotPossible_constraint;
-jer_type_encoder_f S1AP_SRVCCOperationNotPossible_encode_jer;
per_type_decoder_f S1AP_SRVCCOperationNotPossible_decode_aper;
per_type_encoder_f S1AP_SRVCCOperationNotPossible_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.c b/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.c
index 704ffbbfab..2266636852 100644
--- a/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.c
+++ b/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SRVCCOperationPossible.h"
diff --git a/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.h b/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.h
index 2ea62d9e67..6ae67bd0ea 100644
--- a/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.h
+++ b/lib/asn1c/s1ap/S1AP_SRVCCOperationPossible.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SRVCCOperationPossible_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SRVCCOperationPossible_specs_1
asn_struct_free_f S1AP_SRVCCOperationPossible_free;
asn_struct_print_f S1AP_SRVCCOperationPossible_print;
asn_constr_check_f S1AP_SRVCCOperationPossible_constraint;
-jer_type_encoder_f S1AP_SRVCCOperationPossible_encode_jer;
per_type_decoder_f S1AP_SRVCCOperationPossible_decode_aper;
per_type_encoder_f S1AP_SRVCCOperationPossible_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.c b/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.c
index 5634d22539..d68797127e 100644
--- a/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.c
+++ b/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ScheduledCommunicationTime.h"
diff --git a/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.h b/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.h
index f83b587b1c..e8b384805d 100644
--- a/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.h
+++ b/lib/asn1c/s1ap/S1AP_ScheduledCommunicationTime.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ScheduledCommunicationTime_H_
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.c b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.c
index 25c2ae4fb8..d21be60082 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.c
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecondaryRATDataUsageReport.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.h b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.h
index abf121e805..5d51c69399 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.h
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecondaryRATDataUsageReport_H_
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.c b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.c
index c5bb9e7b77..7cea7e7db4 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.c
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecondaryRATDataUsageReportItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.h b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.h
index b9f4082a49..57f8295b65 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.h
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecondaryRATDataUsageReportItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.c b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.c
index b8d90920a4..ee220d641d 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.c
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecondaryRATDataUsageReportList.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.h b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.h
index 871cce4c65..8548e47564 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.h
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageReportList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecondaryRATDataUsageReportList_H_
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.c b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.c
index 041d90f9fe..9af4fd55b4 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.c
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecondaryRATDataUsageRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.h b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.h
index 3dbac82855..f1311db691 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.h
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATDataUsageRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecondaryRATDataUsageRequest_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SecondaryRATDataUsageRequest_s
asn_struct_free_f S1AP_SecondaryRATDataUsageRequest_free;
asn_struct_print_f S1AP_SecondaryRATDataUsageRequest_print;
asn_constr_check_f S1AP_SecondaryRATDataUsageRequest_constraint;
-jer_type_encoder_f S1AP_SecondaryRATDataUsageRequest_encode_jer;
per_type_decoder_f S1AP_SecondaryRATDataUsageRequest_decode_aper;
per_type_encoder_f S1AP_SecondaryRATDataUsageRequest_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATType.c b/lib/asn1c/s1ap/S1AP_SecondaryRATType.c
index 387f41fb15..396ce00695 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATType.c
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecondaryRATType.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecondaryRATType.h b/lib/asn1c/s1ap/S1AP_SecondaryRATType.h
index 17958a0b36..b2c6cac3da 100644
--- a/lib/asn1c/s1ap/S1AP_SecondaryRATType.h
+++ b/lib/asn1c/s1ap/S1AP_SecondaryRATType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecondaryRATType_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SecondaryRATType_specs_1;
asn_struct_free_f S1AP_SecondaryRATType_free;
asn_struct_print_f S1AP_SecondaryRATType_print;
asn_constr_check_f S1AP_SecondaryRATType_constraint;
-jer_type_encoder_f S1AP_SecondaryRATType_encode_jer;
per_type_decoder_f S1AP_SecondaryRATType_decode_aper;
per_type_encoder_f S1AP_SecondaryRATType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SecurityContext.c b/lib/asn1c/s1ap/S1AP_SecurityContext.c
index 8e26aa36be..38991a3b54 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityContext.c
+++ b/lib/asn1c/s1ap/S1AP_SecurityContext.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecurityContext.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecurityContext.h b/lib/asn1c/s1ap/S1AP_SecurityContext.h
index 273e159d52..0032a507a2 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityContext.h
+++ b/lib/asn1c/s1ap/S1AP_SecurityContext.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecurityContext_H_
diff --git a/lib/asn1c/s1ap/S1AP_SecurityIndication.c b/lib/asn1c/s1ap/S1AP_SecurityIndication.c
index 87d307b30f..0f6ea4fa08 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityIndication.c
+++ b/lib/asn1c/s1ap/S1AP_SecurityIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecurityIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecurityIndication.h b/lib/asn1c/s1ap/S1AP_SecurityIndication.h
index 451131ba7e..93c6a394a2 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityIndication.h
+++ b/lib/asn1c/s1ap/S1AP_SecurityIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecurityIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_SecurityKey.c b/lib/asn1c/s1ap/S1AP_SecurityKey.c
index 225600baf3..b7aea6d271 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityKey.c
+++ b/lib/asn1c/s1ap/S1AP_SecurityKey.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecurityKey.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecurityKey.h b/lib/asn1c/s1ap/S1AP_SecurityKey.h
index 27500229c7..328703034c 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityKey.h
+++ b/lib/asn1c/s1ap/S1AP_SecurityKey.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecurityKey_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SecurityKey;
asn_struct_free_f S1AP_SecurityKey_free;
asn_struct_print_f S1AP_SecurityKey_print;
asn_constr_check_f S1AP_SecurityKey_constraint;
-jer_type_encoder_f S1AP_SecurityKey_encode_jer;
per_type_decoder_f S1AP_SecurityKey_decode_aper;
per_type_encoder_f S1AP_SecurityKey_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SecurityResult.c b/lib/asn1c/s1ap/S1AP_SecurityResult.c
index ce484d1526..31e7fbab1a 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityResult.c
+++ b/lib/asn1c/s1ap/S1AP_SecurityResult.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SecurityResult.h"
diff --git a/lib/asn1c/s1ap/S1AP_SecurityResult.h b/lib/asn1c/s1ap/S1AP_SecurityResult.h
index 7b2738d8d3..9bf1f46b02 100644
--- a/lib/asn1c/s1ap/S1AP_SecurityResult.h
+++ b/lib/asn1c/s1ap/S1AP_SecurityResult.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SecurityResult_H_
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasConfig.c b/lib/asn1c/s1ap/S1AP_SensorMeasConfig.c
index 04d192bbdf..b6d78ca2f7 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasConfig.c
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SensorMeasConfig.h"
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasConfig.h b/lib/asn1c/s1ap/S1AP_SensorMeasConfig.h
index 9373a0938f..34484ca463 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasConfig.h
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SensorMeasConfig_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SensorMeasConfig_specs_1;
asn_struct_free_f S1AP_SensorMeasConfig_free;
asn_struct_print_f S1AP_SensorMeasConfig_print;
asn_constr_check_f S1AP_SensorMeasConfig_constraint;
-jer_type_encoder_f S1AP_SensorMeasConfig_encode_jer;
per_type_decoder_f S1AP_SensorMeasConfig_decode_aper;
per_type_encoder_f S1AP_SensorMeasConfig_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.c b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.c
index f065c12459..c1939f290b 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.c
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SensorMeasConfigNameItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.h b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.h
index e3a288e3da..5e71727ccb 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.h
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SensorMeasConfigNameItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.c b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.c
index 23c184416e..afbe80c247 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.c
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SensorMeasConfigNameList.h"
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.h b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.h
index e7c5725ed6..d68ed7b68a 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.h
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasConfigNameList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SensorMeasConfigNameList_H_
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.c b/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.c
index aafe1a53e8..357a9c864c 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.c
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SensorMeasurementConfiguration.h"
diff --git a/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.h b/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.h
index 5b6b9123dd..04f93b0517 100644
--- a/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.h
+++ b/lib/asn1c/s1ap/S1AP_SensorMeasurementConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SensorMeasurementConfiguration_H_
diff --git a/lib/asn1c/s1ap/S1AP_SensorNameConfig.c b/lib/asn1c/s1ap/S1AP_SensorNameConfig.c
index f53927c59d..e074a9fddf 100644
--- a/lib/asn1c/s1ap/S1AP_SensorNameConfig.c
+++ b/lib/asn1c/s1ap/S1AP_SensorNameConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SensorNameConfig.h"
diff --git a/lib/asn1c/s1ap/S1AP_SensorNameConfig.h b/lib/asn1c/s1ap/S1AP_SensorNameConfig.h
index 7f6473bdc4..4a904ba6a1 100644
--- a/lib/asn1c/s1ap/S1AP_SensorNameConfig.h
+++ b/lib/asn1c/s1ap/S1AP_SensorNameConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SensorNameConfig_H_
diff --git a/lib/asn1c/s1ap/S1AP_SerialNumber.c b/lib/asn1c/s1ap/S1AP_SerialNumber.c
index 0e3e2cf544..a48eff9768 100644
--- a/lib/asn1c/s1ap/S1AP_SerialNumber.c
+++ b/lib/asn1c/s1ap/S1AP_SerialNumber.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SerialNumber.h"
diff --git a/lib/asn1c/s1ap/S1AP_SerialNumber.h b/lib/asn1c/s1ap/S1AP_SerialNumber.h
index dfe8a1f9d0..045afd275d 100644
--- a/lib/asn1c/s1ap/S1AP_SerialNumber.h
+++ b/lib/asn1c/s1ap/S1AP_SerialNumber.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SerialNumber_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SerialNumber;
asn_struct_free_f S1AP_SerialNumber_free;
asn_struct_print_f S1AP_SerialNumber_print;
asn_constr_check_f S1AP_SerialNumber_constraint;
-jer_type_encoder_f S1AP_SerialNumber_encode_jer;
per_type_decoder_f S1AP_SerialNumber_decode_aper;
per_type_encoder_f S1AP_SerialNumber_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_ServedDCNs.c b/lib/asn1c/s1ap/S1AP_ServedDCNs.c
index e1dd1b31f9..48acad52d6 100644
--- a/lib/asn1c/s1ap/S1AP_ServedDCNs.c
+++ b/lib/asn1c/s1ap/S1AP_ServedDCNs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServedDCNs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServedDCNs.h b/lib/asn1c/s1ap/S1AP_ServedDCNs.h
index fdb558a7f7..6631de6542 100644
--- a/lib/asn1c/s1ap/S1AP_ServedDCNs.h
+++ b/lib/asn1c/s1ap/S1AP_ServedDCNs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServedDCNs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ServedDCNsItem.c b/lib/asn1c/s1ap/S1AP_ServedDCNsItem.c
index 2ab2a10146..6401ae8fa6 100644
--- a/lib/asn1c/s1ap/S1AP_ServedDCNsItem.c
+++ b/lib/asn1c/s1ap/S1AP_ServedDCNsItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServedDCNsItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServedDCNsItem.h b/lib/asn1c/s1ap/S1AP_ServedDCNsItem.h
index 1db76b5c96..c65464ce13 100644
--- a/lib/asn1c/s1ap/S1AP_ServedDCNsItem.h
+++ b/lib/asn1c/s1ap/S1AP_ServedDCNsItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServedDCNsItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.c b/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.c
index 68948fd58a..dcd74c5ed7 100644
--- a/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.c
+++ b/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServedGUMMEIs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.h b/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.h
index a25938f335..3be5cc1087 100644
--- a/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.h
+++ b/lib/asn1c/s1ap/S1AP_ServedGUMMEIs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServedGUMMEIs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.c b/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.c
index 9ad21a42ff..1e6113a305 100644
--- a/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.c
+++ b/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServedGUMMEIsItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.h b/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.h
index f474222aa7..65493ce529 100644
--- a/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.h
+++ b/lib/asn1c/s1ap/S1AP_ServedGUMMEIsItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServedGUMMEIsItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_ServedGroupIDs.c b/lib/asn1c/s1ap/S1AP_ServedGroupIDs.c
index fe9776c844..dcece5fe76 100644
--- a/lib/asn1c/s1ap/S1AP_ServedGroupIDs.c
+++ b/lib/asn1c/s1ap/S1AP_ServedGroupIDs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServedGroupIDs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServedGroupIDs.h b/lib/asn1c/s1ap/S1AP_ServedGroupIDs.h
index 1e354c1b24..948d8f59b2 100644
--- a/lib/asn1c/s1ap/S1AP_ServedGroupIDs.h
+++ b/lib/asn1c/s1ap/S1AP_ServedGroupIDs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServedGroupIDs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ServedMMECs.c b/lib/asn1c/s1ap/S1AP_ServedMMECs.c
index 066d551be2..f9789a088e 100644
--- a/lib/asn1c/s1ap/S1AP_ServedMMECs.c
+++ b/lib/asn1c/s1ap/S1AP_ServedMMECs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServedMMECs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServedMMECs.h b/lib/asn1c/s1ap/S1AP_ServedMMECs.h
index a2f7163d85..c8250324f0 100644
--- a/lib/asn1c/s1ap/S1AP_ServedMMECs.h
+++ b/lib/asn1c/s1ap/S1AP_ServedMMECs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServedMMECs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ServedPLMNs.c b/lib/asn1c/s1ap/S1AP_ServedPLMNs.c
index 6480d7d6bb..70b55e1f07 100644
--- a/lib/asn1c/s1ap/S1AP_ServedPLMNs.c
+++ b/lib/asn1c/s1ap/S1AP_ServedPLMNs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServedPLMNs.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServedPLMNs.h b/lib/asn1c/s1ap/S1AP_ServedPLMNs.h
index b890f87dae..33aa85d5c4 100644
--- a/lib/asn1c/s1ap/S1AP_ServedPLMNs.h
+++ b/lib/asn1c/s1ap/S1AP_ServedPLMNs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServedPLMNs_H_
diff --git a/lib/asn1c/s1ap/S1AP_ServiceType.c b/lib/asn1c/s1ap/S1AP_ServiceType.c
index 90e14b87e6..882c31dab1 100644
--- a/lib/asn1c/s1ap/S1AP_ServiceType.c
+++ b/lib/asn1c/s1ap/S1AP_ServiceType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_ServiceType.h"
diff --git a/lib/asn1c/s1ap/S1AP_ServiceType.h b/lib/asn1c/s1ap/S1AP_ServiceType.h
index bcb453d417..a4a929ae42 100644
--- a/lib/asn1c/s1ap/S1AP_ServiceType.h
+++ b/lib/asn1c/s1ap/S1AP_ServiceType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_ServiceType_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_ServiceType_specs_1;
asn_struct_free_f S1AP_ServiceType_free;
asn_struct_print_f S1AP_ServiceType_print;
asn_constr_check_f S1AP_ServiceType_constraint;
-jer_type_encoder_f S1AP_ServiceType_encode_jer;
per_type_decoder_f S1AP_ServiceType_decode_aper;
per_type_encoder_f S1AP_ServiceType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.c
index 0f753fa82c..0ea062b77b 100644
--- a/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Source-ToTarget-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.h
index 5b76efd013..653bf88dbd 100644
--- a/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_Source-ToTarget-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Source_ToTarget_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Source_ToTarget_TransparentContainer;
asn_struct_free_f S1AP_Source_ToTarget_TransparentContainer_free;
asn_struct_print_f S1AP_Source_ToTarget_TransparentContainer_print;
asn_constr_check_f S1AP_Source_ToTarget_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_Source_ToTarget_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_Source_ToTarget_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_Source_ToTarget_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.c
index 2a2a23010e..55c35de5c8 100644
--- a/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceBSS-ToTargetBSS-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.h
index a1887d0a35..93f0121eff 100644
--- a/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_SourceBSS-ToTargetBSS-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceBSS_ToTargetBSS_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SourceBSS_ToTargetBSS_TransparentConta
asn_struct_free_f S1AP_SourceBSS_ToTargetBSS_TransparentContainer_free;
asn_struct_print_f S1AP_SourceBSS_ToTargetBSS_TransparentContainer_print;
asn_constr_check_f S1AP_SourceBSS_ToTargetBSS_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_SourceBSS_ToTargetBSS_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_SourceBSS_ToTargetBSS_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_SourceBSS_ToTargetBSS_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.c b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.c
index 167fc5323e..b8c8fe2ce8 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.c
+++ b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceNgRanNode-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.h b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.h
index 06fdcc39b9..0df991dca6 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.h
+++ b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceNgRanNode_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.c
index 13faaf8998..438ae384cb 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h
index 7071eefa38..e7c2f65884 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SourceNgRanNode_ToTargetNgRanNode_Tran
asn_struct_free_f S1AP_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_free;
asn_struct_print_f S1AP_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_print;
asn_constr_check_f S1AP_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_SourceNgRanNode_ToTargetNgRanNode_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.c b/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.c
index 0a27667f41..9c3f5d301a 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.c
+++ b/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceNodeID-Extension.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.h b/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.h
index 215272fb01..357e74e6bc 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.h
+++ b/lib/asn1c/s1ap/S1AP_SourceNodeID-Extension.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceNodeID_Extension_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SourceNodeID_Extension;
asn_struct_free_f S1AP_SourceNodeID_Extension_free;
asn_struct_print_f S1AP_SourceNodeID_Extension_print;
asn_constr_check_f S1AP_SourceNodeID_Extension_constraint;
-jer_type_encoder_f S1AP_SourceNodeID_Extension_encode_jer;
per_type_decoder_f S1AP_SourceNodeID_Extension_decode_aper;
per_type_encoder_f S1AP_SourceNodeID_Extension_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SourceNodeID.c b/lib/asn1c/s1ap/S1AP_SourceNodeID.c
index 4f677d2d88..4aadae8673 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNodeID.c
+++ b/lib/asn1c/s1ap/S1AP_SourceNodeID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceNodeID.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceNodeID.h b/lib/asn1c/s1ap/S1AP_SourceNodeID.h
index 3d4d0d4ef6..a2a067be8f 100644
--- a/lib/asn1c/s1ap/S1AP_SourceNodeID.h
+++ b/lib/asn1c/s1ap/S1AP_SourceNodeID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceNodeID_H_
diff --git a/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.c b/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.c
index 47d27680a0..3e50e77ae1 100644
--- a/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.c
+++ b/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceOfUEActivityBehaviourInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.h b/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.h
index 1114eec0ad..25b31ed763 100644
--- a/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.h
+++ b/lib/asn1c/s1ap/S1AP_SourceOfUEActivityBehaviourInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceOfUEActivityBehaviourInformation_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SourceOfUEActivityBehaviourInf
asn_struct_free_f S1AP_SourceOfUEActivityBehaviourInformation_free;
asn_struct_print_f S1AP_SourceOfUEActivityBehaviourInformation_print;
asn_constr_check_f S1AP_SourceOfUEActivityBehaviourInformation_constraint;
-jer_type_encoder_f S1AP_SourceOfUEActivityBehaviourInformation_encode_jer;
per_type_decoder_f S1AP_SourceOfUEActivityBehaviourInformation_decode_aper;
per_type_encoder_f S1AP_SourceOfUEActivityBehaviourInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.c
index 87c9c4458b..b1424211d1 100644
--- a/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceRNC-ToTargetRNC-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.h
index dca1da5ed6..6d4d914f86 100644
--- a/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_SourceRNC-ToTargetRNC-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceRNC_ToTargetRNC_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SourceRNC_ToTargetRNC_TransparentConta
asn_struct_free_f S1AP_SourceRNC_ToTargetRNC_TransparentContainer_free;
asn_struct_print_f S1AP_SourceRNC_ToTargetRNC_TransparentContainer_print;
asn_constr_check_f S1AP_SourceRNC_ToTargetRNC_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_SourceRNC_ToTargetRNC_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_SourceRNC_ToTargetRNC_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_SourceRNC_ToTargetRNC_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SourceeNB-ID.c b/lib/asn1c/s1ap/S1AP_SourceeNB-ID.c
index 1b49a145f4..33bc94ac53 100644
--- a/lib/asn1c/s1ap/S1AP_SourceeNB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_SourceeNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceeNB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceeNB-ID.h b/lib/asn1c/s1ap/S1AP_SourceeNB-ID.h
index 67187c82bb..c30adb0da1 100644
--- a/lib/asn1c/s1ap/S1AP_SourceeNB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_SourceeNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceeNB_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.c
index 138516522a..a09e52d4cb 100644
--- a/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SourceeNB-ToTargeteNB-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.h
index 674b9a4021..026e934b63 100644
--- a/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_SourceeNB-ToTargeteNB-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SourceeNB_ToTargeteNB_TransparentContainer_H_
diff --git a/lib/asn1c/s1ap/S1AP_StratumLevel.c b/lib/asn1c/s1ap/S1AP_StratumLevel.c
index 455a2805bd..b943768244 100644
--- a/lib/asn1c/s1ap/S1AP_StratumLevel.c
+++ b/lib/asn1c/s1ap/S1AP_StratumLevel.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_StratumLevel.h"
diff --git a/lib/asn1c/s1ap/S1AP_StratumLevel.h b/lib/asn1c/s1ap/S1AP_StratumLevel.h
index 27dfdf887a..280fbb5ae7 100644
--- a/lib/asn1c/s1ap/S1AP_StratumLevel.h
+++ b/lib/asn1c/s1ap/S1AP_StratumLevel.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_StratumLevel_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_StratumLevel;
asn_struct_free_f S1AP_StratumLevel_free;
asn_struct_print_f S1AP_StratumLevel_print;
asn_constr_check_f S1AP_StratumLevel_constraint;
-jer_type_encoder_f S1AP_StratumLevel_encode_jer;
per_type_decoder_f S1AP_StratumLevel_decode_aper;
per_type_encoder_f S1AP_StratumLevel_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.c b/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.c
index 931b5afd9a..2b4abc1e33 100644
--- a/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.c
+++ b/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SubscriberProfileIDforRFP.h"
diff --git a/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.h b/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.h
index 62e6069757..216b93fbd2 100644
--- a/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.h
+++ b/lib/asn1c/s1ap/S1AP_SubscriberProfileIDforRFP.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SubscriberProfileIDforRFP_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_SubscriberProfileIDforRFP;
asn_struct_free_f S1AP_SubscriberProfileIDforRFP_free;
asn_struct_print_f S1AP_SubscriberProfileIDforRFP_print;
asn_constr_check_f S1AP_SubscriberProfileIDforRFP_constraint;
-jer_type_encoder_f S1AP_SubscriberProfileIDforRFP_encode_jer;
per_type_decoder_f S1AP_SubscriberProfileIDforRFP_decode_aper;
per_type_encoder_f S1AP_SubscriberProfileIDforRFP_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.c b/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.c
index 36266a2453..400be86485 100644
--- a/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.c
+++ b/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Subscription-Based-UE-DifferentiationInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.h b/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.h
index c53539f0c2..558b863286 100644
--- a/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.h
+++ b/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Subscription_Based_UE_DifferentiationInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.c b/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.c
index e1860c6e95..8d68e9254a 100644
--- a/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.c
+++ b/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SuccessfulOutcome.h"
diff --git a/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.h b/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.h
index 423203d7c6..719c4a13b6 100644
--- a/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.h
+++ b/lib/asn1c/s1ap/S1AP_SuccessfulOutcome.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SuccessfulOutcome_H_
diff --git a/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.c b/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.c
index 99a7639998..18cbf0ba89 100644
--- a/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.c
+++ b/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SupportedTAs-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.h b/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.h
index f74f3921f6..b32deab7eb 100644
--- a/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.h
+++ b/lib/asn1c/s1ap/S1AP_SupportedTAs-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SupportedTAs_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_SupportedTAs.c b/lib/asn1c/s1ap/S1AP_SupportedTAs.c
index 6da52b88df..a5a95cbbdd 100644
--- a/lib/asn1c/s1ap/S1AP_SupportedTAs.c
+++ b/lib/asn1c/s1ap/S1AP_SupportedTAs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SupportedTAs.h"
diff --git a/lib/asn1c/s1ap/S1AP_SupportedTAs.h b/lib/asn1c/s1ap/S1AP_SupportedTAs.h
index 22578db766..0a68d1a904 100644
--- a/lib/asn1c/s1ap/S1AP_SupportedTAs.h
+++ b/lib/asn1c/s1ap/S1AP_SupportedTAs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SupportedTAs_H_
diff --git a/lib/asn1c/s1ap/S1AP_SynchronisationInformation.c b/lib/asn1c/s1ap/S1AP_SynchronisationInformation.c
index c31176fabb..07b1db72ed 100644
--- a/lib/asn1c/s1ap/S1AP_SynchronisationInformation.c
+++ b/lib/asn1c/s1ap/S1AP_SynchronisationInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SynchronisationInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_SynchronisationInformation.h b/lib/asn1c/s1ap/S1AP_SynchronisationInformation.h
index 4ad9c3bb85..7c5faa58b9 100644
--- a/lib/asn1c/s1ap/S1AP_SynchronisationInformation.h
+++ b/lib/asn1c/s1ap/S1AP_SynchronisationInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SynchronisationInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_SynchronisationStatus.c b/lib/asn1c/s1ap/S1AP_SynchronisationStatus.c
index 20ad76a5cd..b0fce978d9 100644
--- a/lib/asn1c/s1ap/S1AP_SynchronisationStatus.c
+++ b/lib/asn1c/s1ap/S1AP_SynchronisationStatus.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_SynchronisationStatus.h"
diff --git a/lib/asn1c/s1ap/S1AP_SynchronisationStatus.h b/lib/asn1c/s1ap/S1AP_SynchronisationStatus.h
index d5452ddb99..650d34634f 100644
--- a/lib/asn1c/s1ap/S1AP_SynchronisationStatus.h
+++ b/lib/asn1c/s1ap/S1AP_SynchronisationStatus.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_SynchronisationStatus_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_SynchronisationStatus_specs_1;
asn_struct_free_f S1AP_SynchronisationStatus_free;
asn_struct_print_f S1AP_SynchronisationStatus_print;
asn_constr_check_f S1AP_SynchronisationStatus_constraint;
-jer_type_encoder_f S1AP_SynchronisationStatus_encode_jer;
per_type_decoder_f S1AP_SynchronisationStatus_decode_aper;
per_type_encoder_f S1AP_SynchronisationStatus_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TABasedMDT.c b/lib/asn1c/s1ap/S1AP_TABasedMDT.c
index bf73c59a36..99b5af65d3 100644
--- a/lib/asn1c/s1ap/S1AP_TABasedMDT.c
+++ b/lib/asn1c/s1ap/S1AP_TABasedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TABasedMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_TABasedMDT.h b/lib/asn1c/s1ap/S1AP_TABasedMDT.h
index 6759cbc23d..e817c2fe97 100644
--- a/lib/asn1c/s1ap/S1AP_TABasedMDT.h
+++ b/lib/asn1c/s1ap/S1AP_TABasedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TABasedMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_TABasedQMC.c b/lib/asn1c/s1ap/S1AP_TABasedQMC.c
index f9c5408c20..18d7a31ec2 100644
--- a/lib/asn1c/s1ap/S1AP_TABasedQMC.c
+++ b/lib/asn1c/s1ap/S1AP_TABasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TABasedQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_TABasedQMC.h b/lib/asn1c/s1ap/S1AP_TABasedQMC.h
index 610e2473f1..ef03d57799 100644
--- a/lib/asn1c/s1ap/S1AP_TABasedQMC.h
+++ b/lib/asn1c/s1ap/S1AP_TABasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TABasedQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAC.c b/lib/asn1c/s1ap/S1AP_TAC.c
index 80b274f3da..b996cba509 100644
--- a/lib/asn1c/s1ap/S1AP_TAC.c
+++ b/lib/asn1c/s1ap/S1AP_TAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAC.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAC.h b/lib/asn1c/s1ap/S1AP_TAC.h
index e5ca113260..88981a2bc6 100644
--- a/lib/asn1c/s1ap/S1AP_TAC.h
+++ b/lib/asn1c/s1ap/S1AP_TAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TAC;
asn_struct_free_f S1AP_TAC_free;
asn_struct_print_f S1AP_TAC_print;
asn_constr_check_f S1AP_TAC_constraint;
-jer_type_encoder_f S1AP_TAC_encode_jer;
per_type_decoder_f S1AP_TAC_decode_aper;
per_type_encoder_f S1AP_TAC_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.c b/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.c
index 20e9bdf565..6071b69cdd 100644
--- a/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.c
+++ b/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TACList-In-LTE-NTN.h"
diff --git a/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.h b/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.h
index 33a19b12d0..9feafe651b 100644
--- a/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.h
+++ b/lib/asn1c/s1ap/S1AP_TACList-In-LTE-NTN.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TACList_In_LTE_NTN_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.c b/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.c
index 7de02e750d..fef1a565f0 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.c
+++ b/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAI-Broadcast-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.h b/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.h
index 11c712b486..99753d6e7d 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.h
+++ b/lib/asn1c/s1ap/S1AP_TAI-Broadcast-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAI_Broadcast_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Broadcast.c b/lib/asn1c/s1ap/S1AP_TAI-Broadcast.c
index 7d9bece69c..9b95b61bf1 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Broadcast.c
+++ b/lib/asn1c/s1ap/S1AP_TAI-Broadcast.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAI-Broadcast.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Broadcast.h b/lib/asn1c/s1ap/S1AP_TAI-Broadcast.h
index a6821dff92..c6a2e3170d 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Broadcast.h
+++ b/lib/asn1c/s1ap/S1AP_TAI-Broadcast.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAI_Broadcast_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.c b/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.c
index 71aa71a299..cb3a7919c5 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.c
+++ b/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAI-Cancelled-Item.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.h b/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.h
index 256a671136..e17fd6a094 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.h
+++ b/lib/asn1c/s1ap/S1AP_TAI-Cancelled-Item.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAI_Cancelled_Item_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Cancelled.c b/lib/asn1c/s1ap/S1AP_TAI-Cancelled.c
index 3099b41783..b3b072a66c 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Cancelled.c
+++ b/lib/asn1c/s1ap/S1AP_TAI-Cancelled.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAI-Cancelled.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAI-Cancelled.h b/lib/asn1c/s1ap/S1AP_TAI-Cancelled.h
index ea3988b53b..5154008dcf 100644
--- a/lib/asn1c/s1ap/S1AP_TAI-Cancelled.h
+++ b/lib/asn1c/s1ap/S1AP_TAI-Cancelled.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAI_Cancelled_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAI.c b/lib/asn1c/s1ap/S1AP_TAI.c
index 224e5e7625..60448f01c9 100644
--- a/lib/asn1c/s1ap/S1AP_TAI.c
+++ b/lib/asn1c/s1ap/S1AP_TAI.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAI.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAI.h b/lib/asn1c/s1ap/S1AP_TAI.h
index c43b6ea2d3..6e7edc5e7e 100644
--- a/lib/asn1c/s1ap/S1AP_TAI.h
+++ b/lib/asn1c/s1ap/S1AP_TAI.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAI_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIBasedMDT.c b/lib/asn1c/s1ap/S1AP_TAIBasedMDT.c
index 2ababef43f..fb4f83a9bf 100644
--- a/lib/asn1c/s1ap/S1AP_TAIBasedMDT.c
+++ b/lib/asn1c/s1ap/S1AP_TAIBasedMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIBasedMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIBasedMDT.h b/lib/asn1c/s1ap/S1AP_TAIBasedMDT.h
index e48e4670dd..8e216f21c4 100644
--- a/lib/asn1c/s1ap/S1AP_TAIBasedMDT.h
+++ b/lib/asn1c/s1ap/S1AP_TAIBasedMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIBasedMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIBasedQMC.c b/lib/asn1c/s1ap/S1AP_TAIBasedQMC.c
index 22693af0ee..2681ad162e 100644
--- a/lib/asn1c/s1ap/S1AP_TAIBasedQMC.c
+++ b/lib/asn1c/s1ap/S1AP_TAIBasedQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIBasedQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIBasedQMC.h b/lib/asn1c/s1ap/S1AP_TAIBasedQMC.h
index e6a683c1b4..6c9176cc5a 100644
--- a/lib/asn1c/s1ap/S1AP_TAIBasedQMC.h
+++ b/lib/asn1c/s1ap/S1AP_TAIBasedQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIBasedQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIItem.c b/lib/asn1c/s1ap/S1AP_TAIItem.c
index e521904e4e..3532bee326 100644
--- a/lib/asn1c/s1ap/S1AP_TAIItem.c
+++ b/lib/asn1c/s1ap/S1AP_TAIItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIItem.h b/lib/asn1c/s1ap/S1AP_TAIItem.h
index d11be7a7ed..81840fd1d0 100644
--- a/lib/asn1c/s1ap/S1AP_TAIItem.h
+++ b/lib/asn1c/s1ap/S1AP_TAIItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIList.c b/lib/asn1c/s1ap/S1AP_TAIList.c
index c70c8145d7..ee4fa062a6 100644
--- a/lib/asn1c/s1ap/S1AP_TAIList.c
+++ b/lib/asn1c/s1ap/S1AP_TAIList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIList.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIList.h b/lib/asn1c/s1ap/S1AP_TAIList.h
index d844ab6cbf..3f03028fdd 100644
--- a/lib/asn1c/s1ap/S1AP_TAIList.h
+++ b/lib/asn1c/s1ap/S1AP_TAIList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIList_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIListForRestart.c b/lib/asn1c/s1ap/S1AP_TAIListForRestart.c
index c54692eab2..124879b379 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListForRestart.c
+++ b/lib/asn1c/s1ap/S1AP_TAIListForRestart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIListForRestart.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIListForRestart.h b/lib/asn1c/s1ap/S1AP_TAIListForRestart.h
index 5e9800baac..aa3fec844b 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListForRestart.h
+++ b/lib/asn1c/s1ap/S1AP_TAIListForRestart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIListForRestart_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIListforMDT.c b/lib/asn1c/s1ap/S1AP_TAIListforMDT.c
index bbdb9936ec..0bf9881343 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListforMDT.c
+++ b/lib/asn1c/s1ap/S1AP_TAIListforMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIListforMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIListforMDT.h b/lib/asn1c/s1ap/S1AP_TAIListforMDT.h
index ec96b81fda..97b1967e14 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListforMDT.h
+++ b/lib/asn1c/s1ap/S1AP_TAIListforMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIListforMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIListforQMC.c b/lib/asn1c/s1ap/S1AP_TAIListforQMC.c
index 1c87564de7..f502d419e1 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListforQMC.c
+++ b/lib/asn1c/s1ap/S1AP_TAIListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIListforQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIListforQMC.h b/lib/asn1c/s1ap/S1AP_TAIListforQMC.h
index 8bd76e329d..eb7533311b 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListforQMC.h
+++ b/lib/asn1c/s1ap/S1AP_TAIListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIListforQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAIListforWarning.c b/lib/asn1c/s1ap/S1AP_TAIListforWarning.c
index 86ec494f30..ddd298d12c 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListforWarning.c
+++ b/lib/asn1c/s1ap/S1AP_TAIListforWarning.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAIListforWarning.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAIListforWarning.h b/lib/asn1c/s1ap/S1AP_TAIListforWarning.h
index 7efc57132f..a77dbb0b86 100644
--- a/lib/asn1c/s1ap/S1AP_TAIListforWarning.h
+++ b/lib/asn1c/s1ap/S1AP_TAIListforWarning.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAIListforWarning_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAListforMDT.c b/lib/asn1c/s1ap/S1AP_TAListforMDT.c
index 895391d28b..c5e9a04fdc 100644
--- a/lib/asn1c/s1ap/S1AP_TAListforMDT.c
+++ b/lib/asn1c/s1ap/S1AP_TAListforMDT.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAListforMDT.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAListforMDT.h b/lib/asn1c/s1ap/S1AP_TAListforMDT.h
index 27b9d00407..98dc2b3816 100644
--- a/lib/asn1c/s1ap/S1AP_TAListforMDT.h
+++ b/lib/asn1c/s1ap/S1AP_TAListforMDT.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAListforMDT_H_
diff --git a/lib/asn1c/s1ap/S1AP_TAListforQMC.c b/lib/asn1c/s1ap/S1AP_TAListforQMC.c
index 6f1a5b4b6f..ac5237510c 100644
--- a/lib/asn1c/s1ap/S1AP_TAListforQMC.c
+++ b/lib/asn1c/s1ap/S1AP_TAListforQMC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TAListforQMC.h"
diff --git a/lib/asn1c/s1ap/S1AP_TAListforQMC.h b/lib/asn1c/s1ap/S1AP_TAListforQMC.h
index 7e72c0e98c..ceaf572eec 100644
--- a/lib/asn1c/s1ap/S1AP_TAListforQMC.h
+++ b/lib/asn1c/s1ap/S1AP_TAListforQMC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TAListforQMC_H_
diff --git a/lib/asn1c/s1ap/S1AP_TBCD-STRING.c b/lib/asn1c/s1ap/S1AP_TBCD-STRING.c
index 5db281cba5..e88e06d959 100644
--- a/lib/asn1c/s1ap/S1AP_TBCD-STRING.c
+++ b/lib/asn1c/s1ap/S1AP_TBCD-STRING.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TBCD-STRING.h"
diff --git a/lib/asn1c/s1ap/S1AP_TBCD-STRING.h b/lib/asn1c/s1ap/S1AP_TBCD-STRING.h
index dddf170d0e..2d416f6234 100644
--- a/lib/asn1c/s1ap/S1AP_TBCD-STRING.h
+++ b/lib/asn1c/s1ap/S1AP_TBCD-STRING.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TBCD_STRING_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TBCD_STRING;
asn_struct_free_f S1AP_TBCD_STRING_free;
asn_struct_print_f S1AP_TBCD_STRING_print;
asn_constr_check_f S1AP_TBCD_STRING_constraint;
-jer_type_encoder_f S1AP_TBCD_STRING_encode_jer;
per_type_decoder_f S1AP_TBCD_STRING_decode_aper;
per_type_encoder_f S1AP_TBCD_STRING_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.c
index 5f0c6a7abe..04ebd8c788 100644
--- a/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Target-ToSource-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.h
index 0d175a7aa6..1cb759c0de 100644
--- a/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_Target-ToSource-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Target_ToSource_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Target_ToSource_TransparentContainer;
asn_struct_free_f S1AP_Target_ToSource_TransparentContainer_free;
asn_struct_print_f S1AP_Target_ToSource_TransparentContainer_print;
asn_constr_check_f S1AP_Target_ToSource_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_Target_ToSource_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_Target_ToSource_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_Target_ToSource_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.c
index 4cdc20b91d..41f29d6725 100644
--- a/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargetBSS-ToSourceBSS-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.h
index 1aef7bf78d..8a54d5f21e 100644
--- a/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_TargetBSS-ToSourceBSS-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargetBSS_ToSourceBSS_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TargetBSS_ToSourceBSS_TransparentConta
asn_struct_free_f S1AP_TargetBSS_ToSourceBSS_TransparentContainer_free;
asn_struct_print_f S1AP_TargetBSS_ToSourceBSS_TransparentContainer_print;
asn_constr_check_f S1AP_TargetBSS_ToSourceBSS_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_TargetBSS_ToSourceBSS_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_TargetBSS_ToSourceBSS_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_TargetBSS_ToSourceBSS_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TargetID.c b/lib/asn1c/s1ap/S1AP_TargetID.c
index cd9b0c8f05..becc9e3b70 100644
--- a/lib/asn1c/s1ap/S1AP_TargetID.c
+++ b/lib/asn1c/s1ap/S1AP_TargetID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargetID.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargetID.h b/lib/asn1c/s1ap/S1AP_TargetID.h
index 7ad4ec5d4b..062eed6c49 100644
--- a/lib/asn1c/s1ap/S1AP_TargetID.h
+++ b/lib/asn1c/s1ap/S1AP_TargetID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargetID_H_
diff --git a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.c b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.c
index 34972e3ed1..ac6615c0b7 100644
--- a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.c
+++ b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargetNgRanNode-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.h b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.h
index 71f87ea83e..694d7e5d5d 100644
--- a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.h
+++ b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargetNgRanNode_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.c
index 7893763e47..68dc81601a 100644
--- a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h
index 911cc0a5ff..71f5cbab63 100644
--- a/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TargetNgRanNode_ToSourceNgRanNode_Tran
asn_struct_free_f S1AP_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_free;
asn_struct_print_f S1AP_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_print;
asn_constr_check_f S1AP_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_TargetNgRanNode_ToSourceNgRanNode_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TargetRNC-ID.c b/lib/asn1c/s1ap/S1AP_TargetRNC-ID.c
index 244d1159a0..eafd29d113 100644
--- a/lib/asn1c/s1ap/S1AP_TargetRNC-ID.c
+++ b/lib/asn1c/s1ap/S1AP_TargetRNC-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargetRNC-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargetRNC-ID.h b/lib/asn1c/s1ap/S1AP_TargetRNC-ID.h
index af7fe06a3b..2f985fea5d 100644
--- a/lib/asn1c/s1ap/S1AP_TargetRNC-ID.h
+++ b/lib/asn1c/s1ap/S1AP_TargetRNC-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargetRNC_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.c
index 54ccb8ffed..20ef0b09ab 100644
--- a/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargetRNC-ToSourceRNC-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.h
index dbb49bf8c2..09bae724af 100644
--- a/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_TargetRNC-ToSourceRNC-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargetRNC_ToSourceRNC_TransparentContainer_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TargetRNC_ToSourceRNC_TransparentConta
asn_struct_free_f S1AP_TargetRNC_ToSourceRNC_TransparentContainer_free;
asn_struct_print_f S1AP_TargetRNC_ToSourceRNC_TransparentContainer_print;
asn_constr_check_f S1AP_TargetRNC_ToSourceRNC_TransparentContainer_constraint;
-jer_type_encoder_f S1AP_TargetRNC_ToSourceRNC_TransparentContainer_encode_jer;
per_type_decoder_f S1AP_TargetRNC_ToSourceRNC_TransparentContainer_decode_aper;
per_type_encoder_f S1AP_TargetRNC_ToSourceRNC_TransparentContainer_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TargeteNB-ID.c b/lib/asn1c/s1ap/S1AP_TargeteNB-ID.c
index fb45fcbfb3..4fe7d088ef 100644
--- a/lib/asn1c/s1ap/S1AP_TargeteNB-ID.c
+++ b/lib/asn1c/s1ap/S1AP_TargeteNB-ID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargeteNB-ID.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargeteNB-ID.h b/lib/asn1c/s1ap/S1AP_TargeteNB-ID.h
index 6f1291560a..c33fabc1ff 100644
--- a/lib/asn1c/s1ap/S1AP_TargeteNB-ID.h
+++ b/lib/asn1c/s1ap/S1AP_TargeteNB-ID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargeteNB_ID_H_
diff --git a/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.c b/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.c
index faace5feee..ced8c028fb 100644
--- a/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.c
+++ b/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TargeteNB-ToSourceeNB-TransparentContainer.h"
diff --git a/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.h b/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.h
index 9c1405a5b4..62ba7d436f 100644
--- a/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.h
+++ b/lib/asn1c/s1ap/S1AP_TargeteNB-ToSourceeNB-TransparentContainer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TargeteNB_ToSourceeNB_TransparentContainer_H_
diff --git a/lib/asn1c/s1ap/S1AP_Threshold-RSRP.c b/lib/asn1c/s1ap/S1AP_Threshold-RSRP.c
index c2afbfebfc..ed3cb70675 100644
--- a/lib/asn1c/s1ap/S1AP_Threshold-RSRP.c
+++ b/lib/asn1c/s1ap/S1AP_Threshold-RSRP.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Threshold-RSRP.h"
diff --git a/lib/asn1c/s1ap/S1AP_Threshold-RSRP.h b/lib/asn1c/s1ap/S1AP_Threshold-RSRP.h
index 4042c8244c..852f128eb3 100644
--- a/lib/asn1c/s1ap/S1AP_Threshold-RSRP.h
+++ b/lib/asn1c/s1ap/S1AP_Threshold-RSRP.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Threshold_RSRP_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Threshold_RSRP;
asn_struct_free_f S1AP_Threshold_RSRP_free;
asn_struct_print_f S1AP_Threshold_RSRP_print;
asn_constr_check_f S1AP_Threshold_RSRP_constraint;
-jer_type_encoder_f S1AP_Threshold_RSRP_encode_jer;
per_type_decoder_f S1AP_Threshold_RSRP_decode_aper;
per_type_encoder_f S1AP_Threshold_RSRP_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.c b/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.c
index 89363571b1..e5ca522e85 100644
--- a/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.c
+++ b/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Threshold-RSRQ.h"
diff --git a/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.h b/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.h
index 9600338694..f8bcf3af61 100644
--- a/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.h
+++ b/lib/asn1c/s1ap/S1AP_Threshold-RSRQ.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Threshold_RSRQ_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Threshold_RSRQ;
asn_struct_free_f S1AP_Threshold_RSRQ_free;
asn_struct_print_f S1AP_Threshold_RSRQ_print;
asn_constr_check_f S1AP_Threshold_RSRQ_constraint;
-jer_type_encoder_f S1AP_Threshold_RSRQ_encode_jer;
per_type_decoder_f S1AP_Threshold_RSRQ_decode_aper;
per_type_encoder_f S1AP_Threshold_RSRQ_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.c b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.c
index f1b669d04b..0d7b956766 100644
--- a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.c
+++ b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Time-UE-StayedInCell-EnhancedGranularity.h"
diff --git a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.h b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.h
index 016ae66a5f..d14ed90ece 100644
--- a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.h
+++ b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell-EnhancedGranularity.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Time_UE_StayedInCell_EnhancedGranularity_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Time_UE_StayedInCell_EnhancedGranulari
asn_struct_free_f S1AP_Time_UE_StayedInCell_EnhancedGranularity_free;
asn_struct_print_f S1AP_Time_UE_StayedInCell_EnhancedGranularity_print;
asn_constr_check_f S1AP_Time_UE_StayedInCell_EnhancedGranularity_constraint;
-jer_type_encoder_f S1AP_Time_UE_StayedInCell_EnhancedGranularity_encode_jer;
per_type_decoder_f S1AP_Time_UE_StayedInCell_EnhancedGranularity_decode_aper;
per_type_encoder_f S1AP_Time_UE_StayedInCell_EnhancedGranularity_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.c b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.c
index 8e5eb065eb..39b7a127aa 100644
--- a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.c
+++ b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_Time-UE-StayedInCell.h"
diff --git a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.h b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.h
index 44322209fd..2358c8de6d 100644
--- a/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.h
+++ b/lib/asn1c/s1ap/S1AP_Time-UE-StayedInCell.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_Time_UE_StayedInCell_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_Time_UE_StayedInCell;
asn_struct_free_f S1AP_Time_UE_StayedInCell_free;
asn_struct_print_f S1AP_Time_UE_StayedInCell_print;
asn_constr_check_f S1AP_Time_UE_StayedInCell_constraint;
-jer_type_encoder_f S1AP_Time_UE_StayedInCell_encode_jer;
per_type_decoder_f S1AP_Time_UE_StayedInCell_decode_aper;
per_type_encoder_f S1AP_Time_UE_StayedInCell_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.c b/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.c
index 44d9314cf9..30b261f7a7 100644
--- a/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.c
+++ b/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TimeSinceSecondaryNodeRelease.h"
diff --git a/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.h b/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.h
index 869f872717..f693d9ce0a 100644
--- a/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.h
+++ b/lib/asn1c/s1ap/S1AP_TimeSinceSecondaryNodeRelease.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TimeSinceSecondaryNodeRelease_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TimeSinceSecondaryNodeRelease;
asn_struct_free_f S1AP_TimeSinceSecondaryNodeRelease_free;
asn_struct_print_f S1AP_TimeSinceSecondaryNodeRelease_print;
asn_constr_check_f S1AP_TimeSinceSecondaryNodeRelease_constraint;
-jer_type_encoder_f S1AP_TimeSinceSecondaryNodeRelease_encode_jer;
per_type_decoder_f S1AP_TimeSinceSecondaryNodeRelease_decode_aper;
per_type_encoder_f S1AP_TimeSinceSecondaryNodeRelease_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.c b/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.c
index 088b95a0db..e894f4587e 100644
--- a/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.c
+++ b/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TimeSynchronisationInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.h b/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.h
index d70c887daa..379afb0481 100644
--- a/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.h
+++ b/lib/asn1c/s1ap/S1AP_TimeSynchronisationInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TimeSynchronisationInfo_H_
diff --git a/lib/asn1c/s1ap/S1AP_TimeToTrigger.c b/lib/asn1c/s1ap/S1AP_TimeToTrigger.c
index 922e998a3f..415e61f209 100644
--- a/lib/asn1c/s1ap/S1AP_TimeToTrigger.c
+++ b/lib/asn1c/s1ap/S1AP_TimeToTrigger.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TimeToTrigger.h"
diff --git a/lib/asn1c/s1ap/S1AP_TimeToTrigger.h b/lib/asn1c/s1ap/S1AP_TimeToTrigger.h
index 863bb30c0d..650d5c2274 100644
--- a/lib/asn1c/s1ap/S1AP_TimeToTrigger.h
+++ b/lib/asn1c/s1ap/S1AP_TimeToTrigger.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TimeToTrigger_H_
@@ -48,7 +48,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_TimeToTrigger_specs_1;
asn_struct_free_f S1AP_TimeToTrigger_free;
asn_struct_print_f S1AP_TimeToTrigger_print;
asn_constr_check_f S1AP_TimeToTrigger_constraint;
-jer_type_encoder_f S1AP_TimeToTrigger_encode_jer;
per_type_decoder_f S1AP_TimeToTrigger_decode_aper;
per_type_encoder_f S1AP_TimeToTrigger_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TimeToWait.c b/lib/asn1c/s1ap/S1AP_TimeToWait.c
index d9fa843c3b..c559ca074e 100644
--- a/lib/asn1c/s1ap/S1AP_TimeToWait.c
+++ b/lib/asn1c/s1ap/S1AP_TimeToWait.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TimeToWait.h"
diff --git a/lib/asn1c/s1ap/S1AP_TimeToWait.h b/lib/asn1c/s1ap/S1AP_TimeToWait.h
index 29f74ad108..8f5f517b95 100644
--- a/lib/asn1c/s1ap/S1AP_TimeToWait.h
+++ b/lib/asn1c/s1ap/S1AP_TimeToWait.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TimeToWait_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_TimeToWait_specs_1;
asn_struct_free_f S1AP_TimeToWait_free;
asn_struct_print_f S1AP_TimeToWait_print;
asn_constr_check_f S1AP_TimeToWait_constraint;
-jer_type_encoder_f S1AP_TimeToWait_encode_jer;
per_type_decoder_f S1AP_TimeToWait_decode_aper;
per_type_encoder_f S1AP_TimeToWait_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TraceActivation.c b/lib/asn1c/s1ap/S1AP_TraceActivation.c
index 779d0f0194..70a1c2b39a 100644
--- a/lib/asn1c/s1ap/S1AP_TraceActivation.c
+++ b/lib/asn1c/s1ap/S1AP_TraceActivation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TraceActivation.h"
diff --git a/lib/asn1c/s1ap/S1AP_TraceActivation.h b/lib/asn1c/s1ap/S1AP_TraceActivation.h
index 1afbd89b9f..d9b509119e 100644
--- a/lib/asn1c/s1ap/S1AP_TraceActivation.h
+++ b/lib/asn1c/s1ap/S1AP_TraceActivation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TraceActivation_H_
diff --git a/lib/asn1c/s1ap/S1AP_TraceDepth.c b/lib/asn1c/s1ap/S1AP_TraceDepth.c
index 77f9e495f4..d9af694347 100644
--- a/lib/asn1c/s1ap/S1AP_TraceDepth.c
+++ b/lib/asn1c/s1ap/S1AP_TraceDepth.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TraceDepth.h"
diff --git a/lib/asn1c/s1ap/S1AP_TraceDepth.h b/lib/asn1c/s1ap/S1AP_TraceDepth.h
index 26905f2415..0b90fac58e 100644
--- a/lib/asn1c/s1ap/S1AP_TraceDepth.h
+++ b/lib/asn1c/s1ap/S1AP_TraceDepth.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TraceDepth_H_
@@ -41,7 +41,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_TraceDepth_specs_1;
asn_struct_free_f S1AP_TraceDepth_free;
asn_struct_print_f S1AP_TraceDepth_print;
asn_constr_check_f S1AP_TraceDepth_constraint;
-jer_type_encoder_f S1AP_TraceDepth_encode_jer;
per_type_decoder_f S1AP_TraceDepth_decode_aper;
per_type_encoder_f S1AP_TraceDepth_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TraceFailureIndication.c b/lib/asn1c/s1ap/S1AP_TraceFailureIndication.c
index b201bfcf62..5e944eb60f 100644
--- a/lib/asn1c/s1ap/S1AP_TraceFailureIndication.c
+++ b/lib/asn1c/s1ap/S1AP_TraceFailureIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TraceFailureIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_TraceFailureIndication.h b/lib/asn1c/s1ap/S1AP_TraceFailureIndication.h
index fc556d675a..90ba0e854d 100644
--- a/lib/asn1c/s1ap/S1AP_TraceFailureIndication.h
+++ b/lib/asn1c/s1ap/S1AP_TraceFailureIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TraceFailureIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_TraceStart.c b/lib/asn1c/s1ap/S1AP_TraceStart.c
index 1c906f6ebc..ead3c5d5b7 100644
--- a/lib/asn1c/s1ap/S1AP_TraceStart.c
+++ b/lib/asn1c/s1ap/S1AP_TraceStart.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TraceStart.h"
diff --git a/lib/asn1c/s1ap/S1AP_TraceStart.h b/lib/asn1c/s1ap/S1AP_TraceStart.h
index e46a0da43d..68d62cdc20 100644
--- a/lib/asn1c/s1ap/S1AP_TraceStart.h
+++ b/lib/asn1c/s1ap/S1AP_TraceStart.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TraceStart_H_
diff --git a/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.c b/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.c
index 99e31755b4..610805e0e4 100644
--- a/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.c
+++ b/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TrafficLoadReductionIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.h b/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.h
index 85a7dd8b17..238d7c88b2 100644
--- a/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.h
+++ b/lib/asn1c/s1ap/S1AP_TrafficLoadReductionIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TrafficLoadReductionIndication_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TrafficLoadReductionIndication;
asn_struct_free_f S1AP_TrafficLoadReductionIndication_free;
asn_struct_print_f S1AP_TrafficLoadReductionIndication_print;
asn_constr_check_f S1AP_TrafficLoadReductionIndication_constraint;
-jer_type_encoder_f S1AP_TrafficLoadReductionIndication_encode_jer;
per_type_decoder_f S1AP_TrafficLoadReductionIndication_decode_aper;
per_type_encoder_f S1AP_TrafficLoadReductionIndication_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TransportInformation.c b/lib/asn1c/s1ap/S1AP_TransportInformation.c
index bfb3e11597..e6fb0996e4 100644
--- a/lib/asn1c/s1ap/S1AP_TransportInformation.c
+++ b/lib/asn1c/s1ap/S1AP_TransportInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TransportInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_TransportInformation.h b/lib/asn1c/s1ap/S1AP_TransportInformation.h
index c16a330362..921b5092ca 100644
--- a/lib/asn1c/s1ap/S1AP_TransportInformation.h
+++ b/lib/asn1c/s1ap/S1AP_TransportInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TransportInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_TransportLayerAddress.c b/lib/asn1c/s1ap/S1AP_TransportLayerAddress.c
index c4c12557c2..bd75da0ae2 100644
--- a/lib/asn1c/s1ap/S1AP_TransportLayerAddress.c
+++ b/lib/asn1c/s1ap/S1AP_TransportLayerAddress.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TransportLayerAddress.h"
diff --git a/lib/asn1c/s1ap/S1AP_TransportLayerAddress.h b/lib/asn1c/s1ap/S1AP_TransportLayerAddress.h
index 89c036b0bd..7b89e0168a 100644
--- a/lib/asn1c/s1ap/S1AP_TransportLayerAddress.h
+++ b/lib/asn1c/s1ap/S1AP_TransportLayerAddress.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TransportLayerAddress_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_TransportLayerAddress;
asn_struct_free_f S1AP_TransportLayerAddress_free;
asn_struct_print_f S1AP_TransportLayerAddress_print;
asn_constr_check_f S1AP_TransportLayerAddress_constraint;
-jer_type_encoder_f S1AP_TransportLayerAddress_encode_jer;
per_type_decoder_f S1AP_TransportLayerAddress_decode_aper;
per_type_encoder_f S1AP_TransportLayerAddress_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TriggeringMessage.c b/lib/asn1c/s1ap/S1AP_TriggeringMessage.c
index 09cda6be1e..d6a4e45b8c 100644
--- a/lib/asn1c/s1ap/S1AP_TriggeringMessage.c
+++ b/lib/asn1c/s1ap/S1AP_TriggeringMessage.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TriggeringMessage.h"
diff --git a/lib/asn1c/s1ap/S1AP_TriggeringMessage.h b/lib/asn1c/s1ap/S1AP_TriggeringMessage.h
index ef0074aea2..7f83582d59 100644
--- a/lib/asn1c/s1ap/S1AP_TriggeringMessage.h
+++ b/lib/asn1c/s1ap/S1AP_TriggeringMessage.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-CommonDataTypes"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TriggeringMessage_H_
@@ -35,7 +35,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_TriggeringMessage_specs_1;
asn_struct_free_f S1AP_TriggeringMessage_free;
asn_struct_print_f S1AP_TriggeringMessage_print;
asn_constr_check_f S1AP_TriggeringMessage_constraint;
-jer_type_encoder_f S1AP_TriggeringMessage_encode_jer;
per_type_decoder_f S1AP_TriggeringMessage_decode_aper;
per_type_encoder_f S1AP_TriggeringMessage_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_TunnelInformation.c b/lib/asn1c/s1ap/S1AP_TunnelInformation.c
index 02bc279af1..a4793ce900 100644
--- a/lib/asn1c/s1ap/S1AP_TunnelInformation.c
+++ b/lib/asn1c/s1ap/S1AP_TunnelInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TunnelInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_TunnelInformation.h b/lib/asn1c/s1ap/S1AP_TunnelInformation.h
index a15b4df17a..522a77dd2d 100644
--- a/lib/asn1c/s1ap/S1AP_TunnelInformation.h
+++ b/lib/asn1c/s1ap/S1AP_TunnelInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TunnelInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_TypeOfError.c b/lib/asn1c/s1ap/S1AP_TypeOfError.c
index e03c920cf8..2be6dabe09 100644
--- a/lib/asn1c/s1ap/S1AP_TypeOfError.c
+++ b/lib/asn1c/s1ap/S1AP_TypeOfError.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_TypeOfError.h"
diff --git a/lib/asn1c/s1ap/S1AP_TypeOfError.h b/lib/asn1c/s1ap/S1AP_TypeOfError.h
index 8f926b2548..ba94c8ff97 100644
--- a/lib/asn1c/s1ap/S1AP_TypeOfError.h
+++ b/lib/asn1c/s1ap/S1AP_TypeOfError.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_TypeOfError_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_TypeOfError_specs_1;
asn_struct_free_f S1AP_TypeOfError_free;
asn_struct_print_f S1AP_TypeOfError_print;
asn_constr_check_f S1AP_TypeOfError_constraint;
-jer_type_encoder_f S1AP_TypeOfError_encode_jer;
per_type_decoder_f S1AP_TypeOfError_decode_aper;
per_type_encoder_f S1AP_TypeOfError_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.c b/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.c
index 91213734ee..f9c2029a2b 100644
--- a/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.c
+++ b/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-Application-Layer-Measurement-Capability.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.h b/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.h
index 0d4b4ec75d..c3239d942b 100644
--- a/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.h
+++ b/lib/asn1c/s1ap/S1AP_UE-Application-Layer-Measurement-Capability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_Application_Layer_Measurement_Capability_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UE_Application_Layer_Measurement_Capab
asn_struct_free_f S1AP_UE_Application_Layer_Measurement_Capability_free;
asn_struct_print_f S1AP_UE_Application_Layer_Measurement_Capability_print;
asn_constr_check_f S1AP_UE_Application_Layer_Measurement_Capability_constraint;
-jer_type_encoder_f S1AP_UE_Application_Layer_Measurement_Capability_encode_jer;
per_type_decoder_f S1AP_UE_Application_Layer_Measurement_Capability_decode_aper;
per_type_encoder_f S1AP_UE_Application_Layer_Measurement_Capability_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.c b/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.c
index 67c503b7bf..a045c0aa1c 100644
--- a/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.c
+++ b/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-HistoryInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.h b/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.h
index 9f8fd66509..61de3adab7 100644
--- a/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.h
+++ b/lib/asn1c/s1ap/S1AP_UE-HistoryInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_HistoryInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.c b/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.c
index b2ab9cff7b..22d922fc0d 100644
--- a/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.c
+++ b/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-HistoryInformationFromTheUE.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.h b/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.h
index b2f85cfd5e..c601fb3e1a 100644
--- a/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.h
+++ b/lib/asn1c/s1ap/S1AP_UE-HistoryInformationFromTheUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_HistoryInformationFromTheUE_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UE_HistoryInformationFromTheUE;
asn_struct_free_f S1AP_UE_HistoryInformationFromTheUE_free;
asn_struct_print_f S1AP_UE_HistoryInformationFromTheUE_print;
asn_constr_check_f S1AP_UE_HistoryInformationFromTheUE_constraint;
-jer_type_encoder_f S1AP_UE_HistoryInformationFromTheUE_encode_jer;
per_type_decoder_f S1AP_UE_HistoryInformationFromTheUE_decode_aper;
per_type_encoder_f S1AP_UE_HistoryInformationFromTheUE_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.c b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.c
index eff1009d1d..481e4b747f 100644
--- a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.c
+++ b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-RLF-Report-Container-for-extended-bands.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.h b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.h
index 19ce59ed51..624c5c3a37 100644
--- a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.h
+++ b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container-for-extended-bands.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_RLF_Report_Container_for_extended_bands_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UE_RLF_Report_Container_for_extended_b
asn_struct_free_f S1AP_UE_RLF_Report_Container_for_extended_bands_free;
asn_struct_print_f S1AP_UE_RLF_Report_Container_for_extended_bands_print;
asn_constr_check_f S1AP_UE_RLF_Report_Container_for_extended_bands_constraint;
-jer_type_encoder_f S1AP_UE_RLF_Report_Container_for_extended_bands_encode_jer;
per_type_decoder_f S1AP_UE_RLF_Report_Container_for_extended_bands_decode_aper;
per_type_encoder_f S1AP_UE_RLF_Report_Container_for_extended_bands_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.c b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.c
index 554270b557..6748920719 100644
--- a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.c
+++ b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-RLF-Report-Container.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.h b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.h
index 5d53c36ad6..ac54765b7b 100644
--- a/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.h
+++ b/lib/asn1c/s1ap/S1AP_UE-RLF-Report-Container.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_RLF_Report_Container_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UE_RLF_Report_Container;
asn_struct_free_f S1AP_UE_RLF_Report_Container_free;
asn_struct_print_f S1AP_UE_RLF_Report_Container_print;
asn_constr_check_f S1AP_UE_RLF_Report_Container_constraint;
-jer_type_encoder_f S1AP_UE_RLF_Report_Container_encode_jer;
per_type_decoder_f S1AP_UE_RLF_Report_Container_decode_aper;
per_type_encoder_f S1AP_UE_RLF_Report_Container_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.c b/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.c
index 4875662e81..fb888c960d 100644
--- a/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.c
+++ b/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-RetentionInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.h b/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.h
index c40b69563b..bbde0d5271 100644
--- a/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.h
+++ b/lib/asn1c/s1ap/S1AP_UE-RetentionInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_RetentionInformation_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_UE_RetentionInformation_specs_
asn_struct_free_f S1AP_UE_RetentionInformation_free;
asn_struct_print_f S1AP_UE_RetentionInformation_print;
asn_constr_check_f S1AP_UE_RetentionInformation_constraint;
-jer_type_encoder_f S1AP_UE_RetentionInformation_encode_jer;
per_type_decoder_f S1AP_UE_RetentionInformation_decode_aper;
per_type_encoder_f S1AP_UE_RetentionInformation_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.c b/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.c
index 4cddd5865c..0b499a0df8 100644
--- a/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.c
+++ b/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-S1AP-ID-pair.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.h b/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.h
index bddaa8f986..7da3ff0197 100644
--- a/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.h
+++ b/lib/asn1c/s1ap/S1AP_UE-S1AP-ID-pair.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_S1AP_ID_pair_H_
diff --git a/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.c b/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.c
index bf72cb87aa..b602dc495b 100644
--- a/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.c
+++ b/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-S1AP-IDs.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.h b/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.h
index ca1a0e841d..2fd67af10f 100644
--- a/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.h
+++ b/lib/asn1c/s1ap/S1AP_UE-S1AP-IDs.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_S1AP_IDs_H_
diff --git a/lib/asn1c/s1ap/S1AP_UE-Usage-Type.c b/lib/asn1c/s1ap/S1AP_UE-Usage-Type.c
index d3c322dd47..38e4172eec 100644
--- a/lib/asn1c/s1ap/S1AP_UE-Usage-Type.c
+++ b/lib/asn1c/s1ap/S1AP_UE-Usage-Type.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-Usage-Type.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-Usage-Type.h b/lib/asn1c/s1ap/S1AP_UE-Usage-Type.h
index 54f05a3426..7163f60e40 100644
--- a/lib/asn1c/s1ap/S1AP_UE-Usage-Type.h
+++ b/lib/asn1c/s1ap/S1AP_UE-Usage-Type.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_Usage_Type_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UE_Usage_Type;
asn_struct_free_f S1AP_UE_Usage_Type_free;
asn_struct_print_f S1AP_UE_Usage_Type_print;
asn_constr_check_f S1AP_UE_Usage_Type_constraint;
-jer_type_encoder_f S1AP_UE_Usage_Type_encode_jer;
per_type_decoder_f S1AP_UE_Usage_Type_decode_aper;
per_type_encoder_f S1AP_UE_Usage_Type_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.c b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.c
index cbdf67b0e3..4f7b8c2f67 100644
--- a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.c
+++ b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-associatedLogicalS1-ConnectionItem.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.h b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.h
index 46c590e7f1..aa9bc8519b 100644
--- a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.h
+++ b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionItem.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_associatedLogicalS1_ConnectionItem_H_
diff --git a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.c b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.c
index 8c1888f90c..57768647ad 100644
--- a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.c
+++ b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-associatedLogicalS1-ConnectionListRes.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.h b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.h
index ae4a80315c..e67ecda60b 100644
--- a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.h
+++ b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListRes.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_associatedLogicalS1_ConnectionListRes_H_
diff --git a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.c b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.c
index c9c410641f..b323f6e909 100644
--- a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.c
+++ b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UE-associatedLogicalS1-ConnectionListResAck.h"
diff --git a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.h b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.h
index f5713aa813..81e8c2bbf8 100644
--- a/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.h
+++ b/lib/asn1c/s1ap/S1AP_UE-associatedLogicalS1-ConnectionListResAck.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UE_associatedLogicalS1_ConnectionListResAck_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.c b/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.c
index 2026519bc2..38a09ed3ca 100644
--- a/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.c
+++ b/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEAggregateMaximumBitrate.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.h b/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.h
index 94d567a32e..300dbfb6bc 100644
--- a/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.h
+++ b/lib/asn1c/s1ap/S1AP_UEAggregateMaximumBitrate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEAggregateMaximumBitrate_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.c b/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.c
index fce5023b43..8da88a4c73 100644
--- a/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.c
+++ b/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEAppLayerMeasConfig.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.h b/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.h
index e1a139cb0e..bbf07cab70 100644
--- a/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.h
+++ b/lib/asn1c/s1ap/S1AP_UEAppLayerMeasConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEAppLayerMeasConfig_H_
diff --git a/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.c b/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.c
index 031ba29332..fbb4027bce 100644
--- a/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.c
+++ b/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UECapabilityInfoIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.h b/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.h
index 70eff3b91c..fd98856cc4 100644
--- a/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.h
+++ b/lib/asn1c/s1ap/S1AP_UECapabilityInfoIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UECapabilityInfoIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.c b/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.c
index e72cd1d2e5..a183510caa 100644
--- a/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.c
+++ b/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UECapabilityInfoRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.h b/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.h
index 038436fc05..09868ef614 100644
--- a/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.h
+++ b/lib/asn1c/s1ap/S1AP_UECapabilityInfoRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UECapabilityInfoRequest_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_UECapabilityInfoRequest_specs_
asn_struct_free_f S1AP_UECapabilityInfoRequest_free;
asn_struct_print_f S1AP_UECapabilityInfoRequest_print;
asn_constr_check_f S1AP_UECapabilityInfoRequest_constraint;
-jer_type_encoder_f S1AP_UECapabilityInfoRequest_encode_jer;
per_type_decoder_f S1AP_UECapabilityInfoRequest_decode_aper;
per_type_encoder_f S1AP_UECapabilityInfoRequest_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.c b/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.c
index bc98019149..de67856a3c 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextModificationConfirm.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.h b/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.h
index 2a7e911a73..2b40687481 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationConfirm.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextModificationConfirm_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.c b/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.c
index 4c09fa302f..214cd1394e 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextModificationFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.h b/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.h
index f0b67c75e9..6ef9475d72 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextModificationFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.c b/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.c
index b53fed2573..14c5b039ea 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextModificationIndication.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.h b/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.h
index 7ed8c7ac26..82ba739ddc 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationIndication.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextModificationIndication_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.c b/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.c
index 50336ac66b..ec6f6822a2 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextModificationRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.h b/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.h
index b8ce5bf3dc..7521ab90b6 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextModificationRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.c b/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.c
index 111b4355d6..0c92bdb1d3 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextModificationResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.h b/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.h
index 43130de5a6..08a9acd417 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextModificationResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextModificationResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.c b/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.c
index 14c5f02b06..84b627bd95 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextReleaseCommand.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.h b/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.h
index b59d8025c1..d17e51e2cf 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextReleaseCommand.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextReleaseCommand_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.c b/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.c
index b19d9d6947..5294d4f000 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextReleaseComplete.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.h b/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.h
index 55d63991d8..d7c5c81488 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextReleaseComplete.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextReleaseComplete_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.c b/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.c
index b2ac74df96..613510da32 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextReleaseRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.h b/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.h
index 779f977bbe..40ce665cdc 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextReleaseRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextReleaseRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.c b/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.c
index 81a5d5f237..64682da136 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextResumeFailure.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.h b/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.h
index 974b323c5f..63dc79d638 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextResumeFailure.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextResumeFailure_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.c b/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.c
index 03a78f7d4e..8fbb0dc9e0 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextResumeRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.h b/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.h
index 2b4ca8babb..38104c28ec 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextResumeRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextResumeRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.c b/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.c
index deab264954..eb3805f7c9 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextResumeResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.h b/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.h
index 981f8c7664..ed4a31896f 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextResumeResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextResumeResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.c b/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.c
index e71d64c38e..997632191c 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextSuspendRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.h b/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.h
index 1d4bd26ad6..c0fbf5c8ae 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextSuspendRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextSuspendRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.c b/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.c
index f93e4cf0a2..c97c98c559 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.c
+++ b/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEContextSuspendResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.h b/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.h
index e1e5f2b5ed..ea4914cf6d 100644
--- a/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.h
+++ b/lib/asn1c/s1ap/S1AP_UEContextSuspendResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEContextSuspendResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.c b/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.c
index d4036654df..58f96489e2 100644
--- a/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.c
+++ b/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEIdentityIndexValue.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.h b/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.h
index 76e3655c70..250e2cebda 100644
--- a/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.h
+++ b/lib/asn1c/s1ap/S1AP_UEIdentityIndexValue.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEIdentityIndexValue_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UEIdentityIndexValue;
asn_struct_free_f S1AP_UEIdentityIndexValue_free;
asn_struct_print_f S1AP_UEIdentityIndexValue_print;
asn_constr_check_f S1AP_UEIdentityIndexValue_constraint;
-jer_type_encoder_f S1AP_UEIdentityIndexValue_encode_jer;
per_type_decoder_f S1AP_UEIdentityIndexValue_decode_aper;
per_type_encoder_f S1AP_UEIdentityIndexValue_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UEInformationTransfer.c b/lib/asn1c/s1ap/S1AP_UEInformationTransfer.c
index 4dee56ca08..e192ff6465 100644
--- a/lib/asn1c/s1ap/S1AP_UEInformationTransfer.c
+++ b/lib/asn1c/s1ap/S1AP_UEInformationTransfer.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEInformationTransfer.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEInformationTransfer.h b/lib/asn1c/s1ap/S1AP_UEInformationTransfer.h
index 59aaea3681..2f055bff16 100644
--- a/lib/asn1c/s1ap/S1AP_UEInformationTransfer.h
+++ b/lib/asn1c/s1ap/S1AP_UEInformationTransfer.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEInformationTransfer_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEPagingID.c b/lib/asn1c/s1ap/S1AP_UEPagingID.c
index b096f6624d..b5ad6a0f69 100644
--- a/lib/asn1c/s1ap/S1AP_UEPagingID.c
+++ b/lib/asn1c/s1ap/S1AP_UEPagingID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEPagingID.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEPagingID.h b/lib/asn1c/s1ap/S1AP_UEPagingID.h
index 3fce41984e..9ca783e2b8 100644
--- a/lib/asn1c/s1ap/S1AP_UEPagingID.h
+++ b/lib/asn1c/s1ap/S1AP_UEPagingID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEPagingID_H_
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapability.c b/lib/asn1c/s1ap/S1AP_UERadioCapability.c
index 02e3f55bc8..4caef58b23 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapability.c
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapability.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UERadioCapability.h"
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapability.h b/lib/asn1c/s1ap/S1AP_UERadioCapability.h
index cb4b67843f..294f84d070 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapability.h
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapability.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UERadioCapability_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UERadioCapability;
asn_struct_free_f S1AP_UERadioCapability_free;
asn_struct_print_f S1AP_UERadioCapability_print;
asn_constr_check_f S1AP_UERadioCapability_constraint;
-jer_type_encoder_f S1AP_UERadioCapability_encode_jer;
per_type_decoder_f S1AP_UERadioCapability_decode_aper;
per_type_encoder_f S1AP_UERadioCapability_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.c b/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.c
index 07e874848d..a1e2dc80e8 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.c
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UERadioCapabilityForPaging.h"
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.h b/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.h
index d19d04161c..d50a4060d2 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.h
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityForPaging.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UERadioCapabilityForPaging_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UERadioCapabilityForPaging;
asn_struct_free_f S1AP_UERadioCapabilityForPaging_free;
asn_struct_print_f S1AP_UERadioCapabilityForPaging_print;
asn_constr_check_f S1AP_UERadioCapabilityForPaging_constraint;
-jer_type_encoder_f S1AP_UERadioCapabilityForPaging_encode_jer;
per_type_decoder_f S1AP_UERadioCapabilityForPaging_decode_aper;
per_type_encoder_f S1AP_UERadioCapabilityForPaging_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.c b/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.c
index dec3f76ea0..3647c662fe 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.c
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UERadioCapabilityID.h"
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.h b/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.h
index b412e02ed2..c74a93ff2e 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.h
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityID.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UERadioCapabilityID_H_
@@ -26,7 +26,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UERadioCapabilityID;
asn_struct_free_f S1AP_UERadioCapabilityID_free;
asn_struct_print_f S1AP_UERadioCapabilityID_print;
asn_constr_check_f S1AP_UERadioCapabilityID_constraint;
-jer_type_encoder_f S1AP_UERadioCapabilityID_encode_jer;
per_type_decoder_f S1AP_UERadioCapabilityID_decode_aper;
per_type_encoder_f S1AP_UERadioCapabilityID_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.c b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.c
index 664a7ec8ba..85c6e3b08e 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.c
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UERadioCapabilityIDMappingRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.h b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.h
index 2e618fda92..74dca428ae 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.h
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UERadioCapabilityIDMappingRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.c b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.c
index dbd837beb0..af5aaa983c 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.c
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UERadioCapabilityIDMappingResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.h b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.h
index f375b83fd1..1149585c38 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.h
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityIDMappingResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UERadioCapabilityIDMappingResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.c b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.c
index 848a1d99b8..9e4fb1e04c 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.c
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UERadioCapabilityMatchRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.h b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.h
index fdc6ccb406..fbb94e6560 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.h
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UERadioCapabilityMatchRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.c b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.c
index a97e073cd1..60ca48c176 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.c
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UERadioCapabilityMatchResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.h b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.h
index 5863e59cb0..237abf0e93 100644
--- a/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.h
+++ b/lib/asn1c/s1ap/S1AP_UERadioCapabilityMatchResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UERadioCapabilityMatchResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.c b/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.c
index 4700de3350..381e4023f3 100644
--- a/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.c
+++ b/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UESecurityCapabilities.h"
diff --git a/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.h b/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.h
index f9784cfeb5..f0f341a62b 100644
--- a/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.h
+++ b/lib/asn1c/s1ap/S1AP_UESecurityCapabilities.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UESecurityCapabilities_H_
diff --git a/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.c b/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.c
index 60e4a160a8..7ca433e27c 100644
--- a/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.c
+++ b/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UESidelinkAggregateMaximumBitrate.h"
diff --git a/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.h b/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.h
index cc4c30233d..7f2c89f686 100644
--- a/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.h
+++ b/lib/asn1c/s1ap/S1AP_UESidelinkAggregateMaximumBitrate.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UESidelinkAggregateMaximumBitrate_H_
diff --git a/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.c b/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.c
index 9ebd4f87af..3c23ade5af 100644
--- a/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UEUserPlaneCIoTSupportIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.h b/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.h
index 47844b8236..ef6f3a733e 100644
--- a/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_UEUserPlaneCIoTSupportIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UEUserPlaneCIoTSupportIndicator_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_UEUserPlaneCIoTSupportIndicato
asn_struct_free_f S1AP_UEUserPlaneCIoTSupportIndicator_free;
asn_struct_print_f S1AP_UEUserPlaneCIoTSupportIndicator_print;
asn_constr_check_f S1AP_UEUserPlaneCIoTSupportIndicator_constraint;
-jer_type_encoder_f S1AP_UEUserPlaneCIoTSupportIndicator_encode_jer;
per_type_decoder_f S1AP_UEUserPlaneCIoTSupportIndicator_decode_aper;
per_type_encoder_f S1AP_UEUserPlaneCIoTSupportIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.c b/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.c
index 0eac5277e1..b239f25d1b 100644
--- a/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.c
+++ b/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UL-CP-SecurityInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.h b/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.h
index b363b6511f..2e4c3ee597 100644
--- a/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.h
+++ b/lib/asn1c/s1ap/S1AP_UL-CP-SecurityInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UL_CP_SecurityInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_UL-NAS-Count.c b/lib/asn1c/s1ap/S1AP_UL-NAS-Count.c
index 605beacad2..aa3e6e3286 100644
--- a/lib/asn1c/s1ap/S1AP_UL-NAS-Count.c
+++ b/lib/asn1c/s1ap/S1AP_UL-NAS-Count.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UL-NAS-Count.h"
diff --git a/lib/asn1c/s1ap/S1AP_UL-NAS-Count.h b/lib/asn1c/s1ap/S1AP_UL-NAS-Count.h
index 83365b8cd9..ed229b1103 100644
--- a/lib/asn1c/s1ap/S1AP_UL-NAS-Count.h
+++ b/lib/asn1c/s1ap/S1AP_UL-NAS-Count.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UL_NAS_Count_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UL_NAS_Count;
asn_struct_free_f S1AP_UL_NAS_Count_free;
asn_struct_print_f S1AP_UL_NAS_Count_print;
asn_constr_check_f S1AP_UL_NAS_Count_constraint;
-jer_type_encoder_f S1AP_UL_NAS_Count_encode_jer;
per_type_decoder_f S1AP_UL_NAS_Count_decode_aper;
per_type_encoder_f S1AP_UL_NAS_Count_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.c b/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.c
index 57c8466203..2f7e108a5d 100644
--- a/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.c
+++ b/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UL-NAS-MAC.h"
diff --git a/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.h b/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.h
index 8379c37856..f0c36b7e85 100644
--- a/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.h
+++ b/lib/asn1c/s1ap/S1AP_UL-NAS-MAC.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UL_NAS_MAC_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_UL_NAS_MAC;
asn_struct_free_f S1AP_UL_NAS_MAC_free;
asn_struct_print_f S1AP_UL_NAS_MAC_print;
asn_constr_check_f S1AP_UL_NAS_MAC_constraint;
-jer_type_encoder_f S1AP_UL_NAS_MAC_encode_jer;
per_type_decoder_f S1AP_UL_NAS_MAC_decode_aper;
per_type_encoder_f S1AP_UL_NAS_MAC_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_URI-Address.c b/lib/asn1c/s1ap/S1AP_URI-Address.c
index a78b509f97..16b5a33588 100644
--- a/lib/asn1c/s1ap/S1AP_URI-Address.c
+++ b/lib/asn1c/s1ap/S1AP_URI-Address.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_URI-Address.h"
diff --git a/lib/asn1c/s1ap/S1AP_URI-Address.h b/lib/asn1c/s1ap/S1AP_URI-Address.h
index 148ea3efb1..6422792cc7 100644
--- a/lib/asn1c/s1ap/S1AP_URI-Address.h
+++ b/lib/asn1c/s1ap/S1AP_URI-Address.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_URI_Address_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_URI_Address;
asn_struct_free_f S1AP_URI_Address_free;
asn_struct_print_f S1AP_URI_Address_print;
asn_constr_check_f S1AP_URI_Address_constraint;
-jer_type_encoder_f S1AP_URI_Address_encode_jer;
per_type_decoder_f S1AP_URI_Address_decode_aper;
per_type_encoder_f S1AP_URI_Address_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.c b/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.c
index 41c38247f3..c1d10af18b 100644
--- a/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.c
+++ b/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UnlicensedSpectrumRestriction.h"
diff --git a/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.h b/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.h
index d57b8327bf..7d94d2f88a 100644
--- a/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.h
+++ b/lib/asn1c/s1ap/S1AP_UnlicensedSpectrumRestriction.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UnlicensedSpectrumRestriction_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_UnlicensedSpectrumRestriction_
asn_struct_free_f S1AP_UnlicensedSpectrumRestriction_free;
asn_struct_print_f S1AP_UnlicensedSpectrumRestriction_print;
asn_constr_check_f S1AP_UnlicensedSpectrumRestriction_constraint;
-jer_type_encoder_f S1AP_UnlicensedSpectrumRestriction_encode_jer;
per_type_decoder_f S1AP_UnlicensedSpectrumRestriction_decode_aper;
per_type_encoder_f S1AP_UnlicensedSpectrumRestriction_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.c b/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.c
index ddd7355c54..43bf92c9df 100644
--- a/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.c
+++ b/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UnsuccessfulOutcome.h"
diff --git a/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.h b/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.h
index a55f28c19a..c3e59e92b1 100644
--- a/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.h
+++ b/lib/asn1c/s1ap/S1AP_UnsuccessfulOutcome.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Descriptions"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UnsuccessfulOutcome_H_
diff --git a/lib/asn1c/s1ap/S1AP_UplinkNASTransport.c b/lib/asn1c/s1ap/S1AP_UplinkNASTransport.c
index 4804d3afce..d1193856df 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkNASTransport.c
+++ b/lib/asn1c/s1ap/S1AP_UplinkNASTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UplinkNASTransport.h"
diff --git a/lib/asn1c/s1ap/S1AP_UplinkNASTransport.h b/lib/asn1c/s1ap/S1AP_UplinkNASTransport.h
index 3033c6c54b..908c31ef19 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkNASTransport.h
+++ b/lib/asn1c/s1ap/S1AP_UplinkNASTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UplinkNASTransport_H_
diff --git a/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.c b/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.c
index 8c96735a10..70ce04f8f6 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.c
+++ b/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UplinkNonUEAssociatedLPPaTransport.h"
diff --git a/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.h b/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.h
index 8795f050f8..e0abdb740c 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.h
+++ b/lib/asn1c/s1ap/S1AP_UplinkNonUEAssociatedLPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UplinkNonUEAssociatedLPPaTransport_H_
diff --git a/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.c b/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.c
index 8a6e2bf59f..a2b47f2df5 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.c
+++ b/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UplinkS1cdma2000tunnelling.h"
diff --git a/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.h b/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.h
index 951de5715d..4c726cdb41 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.h
+++ b/lib/asn1c/s1ap/S1AP_UplinkS1cdma2000tunnelling.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UplinkS1cdma2000tunnelling_H_
diff --git a/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.c b/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.c
index 0fdf7b4aed..154dfaa213 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.c
+++ b/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UplinkUEAssociatedLPPaTransport.h"
diff --git a/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.h b/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.h
index c19b3f3915..6744ec37c3 100644
--- a/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.h
+++ b/lib/asn1c/s1ap/S1AP_UplinkUEAssociatedLPPaTransport.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UplinkUEAssociatedLPPaTransport_H_
diff --git a/lib/asn1c/s1ap/S1AP_UserLocationInformation.c b/lib/asn1c/s1ap/S1AP_UserLocationInformation.c
index 55647b602d..289356033c 100644
--- a/lib/asn1c/s1ap/S1AP_UserLocationInformation.c
+++ b/lib/asn1c/s1ap/S1AP_UserLocationInformation.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_UserLocationInformation.h"
diff --git a/lib/asn1c/s1ap/S1AP_UserLocationInformation.h b/lib/asn1c/s1ap/S1AP_UserLocationInformation.h
index 8d57bb04f4..3e65a4b80b 100644
--- a/lib/asn1c/s1ap/S1AP_UserLocationInformation.h
+++ b/lib/asn1c/s1ap/S1AP_UserLocationInformation.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_UserLocationInformation_H_
diff --git a/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.c b/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.c
index b5363f9779..83f748d407 100644
--- a/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.c
+++ b/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_V2XServicesAuthorized.h"
diff --git a/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.h b/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.h
index 9c46b7b3a1..df840869e9 100644
--- a/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.h
+++ b/lib/asn1c/s1ap/S1AP_V2XServicesAuthorized.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_V2XServicesAuthorized_H_
diff --git a/lib/asn1c/s1ap/S1AP_VehicleUE.c b/lib/asn1c/s1ap/S1AP_VehicleUE.c
index ac464137f8..a8f48e5558 100644
--- a/lib/asn1c/s1ap/S1AP_VehicleUE.c
+++ b/lib/asn1c/s1ap/S1AP_VehicleUE.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_VehicleUE.h"
diff --git a/lib/asn1c/s1ap/S1AP_VehicleUE.h b/lib/asn1c/s1ap/S1AP_VehicleUE.h
index ac974fe191..db54d96791 100644
--- a/lib/asn1c/s1ap/S1AP_VehicleUE.h
+++ b/lib/asn1c/s1ap/S1AP_VehicleUE.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_VehicleUE_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_VehicleUE_specs_1;
asn_struct_free_f S1AP_VehicleUE_free;
asn_struct_print_f S1AP_VehicleUE_print;
asn_constr_check_f S1AP_VehicleUE_constraint;
-jer_type_encoder_f S1AP_VehicleUE_encode_jer;
per_type_decoder_f S1AP_VehicleUE_decode_aper;
per_type_encoder_f S1AP_VehicleUE_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.c b/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.c
index 22db813649..4a59ebb27f 100644
--- a/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.c
+++ b/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_VoiceSupportMatchIndicator.h"
diff --git a/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.h b/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.h
index 2a9cb3c6b0..698c67eaab 100644
--- a/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.h
+++ b/lib/asn1c/s1ap/S1AP_VoiceSupportMatchIndicator.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_VoiceSupportMatchIndicator_H_
@@ -37,7 +37,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_VoiceSupportMatchIndicator_spe
asn_struct_free_f S1AP_VoiceSupportMatchIndicator_free;
asn_struct_print_f S1AP_VoiceSupportMatchIndicator_print;
asn_constr_check_f S1AP_VoiceSupportMatchIndicator_constraint;
-jer_type_encoder_f S1AP_VoiceSupportMatchIndicator_encode_jer;
per_type_decoder_f S1AP_VoiceSupportMatchIndicator_decode_aper;
per_type_encoder_f S1AP_VoiceSupportMatchIndicator_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_WLANMeasConfig.c b/lib/asn1c/s1ap/S1AP_WLANMeasConfig.c
index 34a9105ae8..643a477ae3 100644
--- a/lib/asn1c/s1ap/S1AP_WLANMeasConfig.c
+++ b/lib/asn1c/s1ap/S1AP_WLANMeasConfig.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WLANMeasConfig.h"
diff --git a/lib/asn1c/s1ap/S1AP_WLANMeasConfig.h b/lib/asn1c/s1ap/S1AP_WLANMeasConfig.h
index 8c615c30ce..1bb985c169 100644
--- a/lib/asn1c/s1ap/S1AP_WLANMeasConfig.h
+++ b/lib/asn1c/s1ap/S1AP_WLANMeasConfig.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WLANMeasConfig_H_
@@ -36,7 +36,6 @@ extern const asn_INTEGER_specifics_t asn_SPC_S1AP_WLANMeasConfig_specs_1;
asn_struct_free_f S1AP_WLANMeasConfig_free;
asn_struct_print_f S1AP_WLANMeasConfig_print;
asn_constr_check_f S1AP_WLANMeasConfig_constraint;
-jer_type_encoder_f S1AP_WLANMeasConfig_encode_jer;
per_type_decoder_f S1AP_WLANMeasConfig_decode_aper;
per_type_encoder_f S1AP_WLANMeasConfig_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.c b/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.c
index 96d889c564..7e965832fc 100644
--- a/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.c
+++ b/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WLANMeasConfigNameList.h"
diff --git a/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.h b/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.h
index 0a7311e478..567c68ad98 100644
--- a/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.h
+++ b/lib/asn1c/s1ap/S1AP_WLANMeasConfigNameList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WLANMeasConfigNameList_H_
diff --git a/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.c b/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.c
index 4377878a89..2eb0bc6943 100644
--- a/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.c
+++ b/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WLANMeasurementConfiguration.h"
diff --git a/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.h b/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.h
index 656a0fbc02..4cb0f56754 100644
--- a/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.h
+++ b/lib/asn1c/s1ap/S1AP_WLANMeasurementConfiguration.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WLANMeasurementConfiguration_H_
diff --git a/lib/asn1c/s1ap/S1AP_WLANName.c b/lib/asn1c/s1ap/S1AP_WLANName.c
index a7bc42a868..2d0e92dcb8 100644
--- a/lib/asn1c/s1ap/S1AP_WLANName.c
+++ b/lib/asn1c/s1ap/S1AP_WLANName.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WLANName.h"
diff --git a/lib/asn1c/s1ap/S1AP_WLANName.h b/lib/asn1c/s1ap/S1AP_WLANName.h
index 568c149fed..d16d3e57e3 100644
--- a/lib/asn1c/s1ap/S1AP_WLANName.h
+++ b/lib/asn1c/s1ap/S1AP_WLANName.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WLANName_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_WLANName;
asn_struct_free_f S1AP_WLANName_free;
asn_struct_print_f S1AP_WLANName_print;
asn_constr_check_f S1AP_WLANName_constraint;
-jer_type_encoder_f S1AP_WLANName_encode_jer;
per_type_decoder_f S1AP_WLANName_decode_aper;
per_type_encoder_f S1AP_WLANName_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.c b/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.c
index 7926cdf3f3..dbbe7d8774 100644
--- a/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.c
+++ b/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WUS-Assistance-Information.h"
diff --git a/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.h b/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.h
index de6393eaf9..9e594b38e4 100644
--- a/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.h
+++ b/lib/asn1c/s1ap/S1AP_WUS-Assistance-Information.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WUS_Assistance_Information_H_
diff --git a/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.c b/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.c
index bfa19555d5..bea908a21d 100644
--- a/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.c
+++ b/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WarningAreaCoordinates.h"
diff --git a/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.h b/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.h
index 6d51ed77ae..9f62b30ecf 100644
--- a/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.h
+++ b/lib/asn1c/s1ap/S1AP_WarningAreaCoordinates.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WarningAreaCoordinates_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_WarningAreaCoordinates;
asn_struct_free_f S1AP_WarningAreaCoordinates_free;
asn_struct_print_f S1AP_WarningAreaCoordinates_print;
asn_constr_check_f S1AP_WarningAreaCoordinates_constraint;
-jer_type_encoder_f S1AP_WarningAreaCoordinates_encode_jer;
per_type_decoder_f S1AP_WarningAreaCoordinates_decode_aper;
per_type_encoder_f S1AP_WarningAreaCoordinates_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_WarningAreaList.c b/lib/asn1c/s1ap/S1AP_WarningAreaList.c
index 33dfbdbec9..1c7bb54ef0 100644
--- a/lib/asn1c/s1ap/S1AP_WarningAreaList.c
+++ b/lib/asn1c/s1ap/S1AP_WarningAreaList.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WarningAreaList.h"
diff --git a/lib/asn1c/s1ap/S1AP_WarningAreaList.h b/lib/asn1c/s1ap/S1AP_WarningAreaList.h
index 04a571ef3b..8b523f1a24 100644
--- a/lib/asn1c/s1ap/S1AP_WarningAreaList.h
+++ b/lib/asn1c/s1ap/S1AP_WarningAreaList.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WarningAreaList_H_
diff --git a/lib/asn1c/s1ap/S1AP_WarningMessageContents.c b/lib/asn1c/s1ap/S1AP_WarningMessageContents.c
index b298d57487..1cc4161bf6 100644
--- a/lib/asn1c/s1ap/S1AP_WarningMessageContents.c
+++ b/lib/asn1c/s1ap/S1AP_WarningMessageContents.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WarningMessageContents.h"
diff --git a/lib/asn1c/s1ap/S1AP_WarningMessageContents.h b/lib/asn1c/s1ap/S1AP_WarningMessageContents.h
index 02e89a2517..79e7d679e8 100644
--- a/lib/asn1c/s1ap/S1AP_WarningMessageContents.h
+++ b/lib/asn1c/s1ap/S1AP_WarningMessageContents.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WarningMessageContents_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_WarningMessageContents;
asn_struct_free_f S1AP_WarningMessageContents_free;
asn_struct_print_f S1AP_WarningMessageContents_print;
asn_constr_check_f S1AP_WarningMessageContents_constraint;
-jer_type_encoder_f S1AP_WarningMessageContents_encode_jer;
per_type_decoder_f S1AP_WarningMessageContents_decode_aper;
per_type_encoder_f S1AP_WarningMessageContents_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.c b/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.c
index 082e6abbb9..559b563c88 100644
--- a/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.c
+++ b/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WarningSecurityInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.h b/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.h
index 815df2ef7f..54b4624d28 100644
--- a/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.h
+++ b/lib/asn1c/s1ap/S1AP_WarningSecurityInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WarningSecurityInfo_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_WarningSecurityInfo;
asn_struct_free_f S1AP_WarningSecurityInfo_free;
asn_struct_print_f S1AP_WarningSecurityInfo_print;
asn_constr_check_f S1AP_WarningSecurityInfo_constraint;
-jer_type_encoder_f S1AP_WarningSecurityInfo_encode_jer;
per_type_decoder_f S1AP_WarningSecurityInfo_decode_aper;
per_type_encoder_f S1AP_WarningSecurityInfo_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_WarningType.c b/lib/asn1c/s1ap/S1AP_WarningType.c
index b2fad7d5eb..3d597eefe7 100644
--- a/lib/asn1c/s1ap/S1AP_WarningType.c
+++ b/lib/asn1c/s1ap/S1AP_WarningType.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WarningType.h"
diff --git a/lib/asn1c/s1ap/S1AP_WarningType.h b/lib/asn1c/s1ap/S1AP_WarningType.h
index d36b04575f..a29e0fd9d1 100644
--- a/lib/asn1c/s1ap/S1AP_WarningType.h
+++ b/lib/asn1c/s1ap/S1AP_WarningType.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WarningType_H_
@@ -27,7 +27,6 @@ extern asn_TYPE_descriptor_t asn_DEF_S1AP_WarningType;
asn_struct_free_f S1AP_WarningType_free;
asn_struct_print_f S1AP_WarningType_print;
asn_constr_check_f S1AP_WarningType_constraint;
-jer_type_encoder_f S1AP_WarningType_encode_jer;
per_type_decoder_f S1AP_WarningType_decode_aper;
per_type_encoder_f S1AP_WarningType_encode_aper;
diff --git a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.c b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.c
index 3ecc6b65a7..4109ad23a7 100644
--- a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.c
+++ b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WriteReplaceWarningRequest.h"
diff --git a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.h b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.h
index eb8a8c1345..fdecde2995 100644
--- a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.h
+++ b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningRequest.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WriteReplaceWarningRequest_H_
diff --git a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.c b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.c
index c6a8868b33..ab394e18c3 100644
--- a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.c
+++ b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_WriteReplaceWarningResponse.h"
diff --git a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.h b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.h
index 7bd480ec37..38d6d6bfdb 100644
--- a/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.h
+++ b/lib/asn1c/s1ap/S1AP_WriteReplaceWarningResponse.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-PDU-Contents"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_WriteReplaceWarningResponse_H_
diff --git a/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.c b/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.c
index 343a5253e8..c343ab4ddb 100644
--- a/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.c
+++ b/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.c
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#include "S1AP_X2TNLConfigurationInfo.h"
diff --git a/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.h b/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.h
index f739c00d57..b451b8b4b4 100644
--- a/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.h
+++ b/lib/asn1c/s1ap/S1AP_X2TNLConfigurationInfo.h
@@ -2,7 +2,7 @@
* Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
* From ASN.1 module "S1AP-IEs"
* found in "../support/s1ap-r17.3.0/36413-h30.asn"
- * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER`
+ * `asn1c -pdu=all -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER`
*/
#ifndef _S1AP_X2TNLConfigurationInfo_H_
diff --git a/lib/asn1c/support/README.md b/lib/asn1c/support/README.md
index 7ccaa4cbe9..a3a8326987 100644
--- a/lib/asn1c/support/README.md
+++ b/lib/asn1c/support/README.md
@@ -1,25 +1,31 @@
Use mounse07410(vlm_master) git's fork for asn1c
-commit 3e6592bd840b42a2e16cc6286449f286b118ae8b (HEAD, origin/vlm_master, origin/HEAD, vlm_master)
-Merge: 29ef59bb 4e28be09
+commit e0c4a3eafa9f1861dd7dac1000953eb2850e47e4 (HEAD -> vlm_master, origin/vlm_master, origin/HEAD)
+Merge: ce10a57a 665a2278
Author: Mouse
-Date: Mon Nov 13 21:08:35 2023 -0500
+Date: Sun Feb 11 17:13:22 2024 -0500
- Merge pull request #140 from velichkov/mouse07410_issues134
+ Merge pull request #177 from v0-e/integer-2-int64
-commit 4e28be09549f3ad6ee4fd5e84996899671591a36
-Author: Vasil Velichkov
-Date: Mon Nov 13 21:42:39 2023 +0200
+ INTEGER to 64-bit native integer methods
- aper: Check CHOICE present value is not greater than elements count
+commit 665a227804e18c3fa6b46ab55aeedd7379f1ed29
+Author: v0-e
+Date: Wed Feb 7 15:29:18 2024 +0000
- Fixes mouse07410/asn1c#134
+ INTEGER <-> (u)int64_t tests
+
+commit 81cc4e47a665c51faff2d2c2fb2ba39066009356
+Author: v0-e
+Date: Wed Feb 7 15:28:09 2024 +0000
+
+ INTEGER to (u)int64_t
===========================================
user@host ~/Documents/git/my$ \
git clone https://github.com/mouse07410/asn1c.git
user@host ~/Documents/git/my$ \
- git checkout ebed802c88b3049cfe67326e4df780cefc6da49e
+ git checkout e0c4a3eafa9f1861dd7dac1000953eb2850e47e4
OR
@@ -27,7 +33,7 @@ user@host ~/Documents/git/my$ \
git clone https://github.com/open5gs/asn1c.git
user@host Documents/git/my/asn1c$ \
- autoreconf -fi;./configure;make -j4
+ autoreconf -fi;./configure;make -j8
Modify 36413-h30.txt to 36413-h30.asn
===========================================
@@ -44,13 +50,13 @@ ASN.1 encoder/decoder
user@host ~/documents/git/open5gs/lib/asn1c/s1ap$ \
ASN1C_PREFIX=S1AP_ ../../../../my/asn1c/asn1c/asn1c -pdu=all \
-fcompound-names -findirect-choice -fno-include-deps \
- -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER \
+ -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER \
../support/s1ap-r17.3.0/36413-h30.asn
user@host ~/Documents/git/open5gs/lib/asn1c/ngap$ \
ASN1C_PREFIX=NGAP_ ../../../../my/asn1c/asn1c/asn1c -pdu=all \
-fcompound-names -findirect-choice -fno-include-deps \
- -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER \
+ -no-gen-BER -no-gen-XER -no-gen-OER -no-gen-UPER -no-gen-JER \
../support/ngap-r17.3.0/38413-h30.asn
Fix NGAP_RANNodeNameUTF8String.c (Issues #994 - APC_EXTENSIBLE)
diff --git a/lib/asn1c/util/conv.c b/lib/asn1c/util/conv.c
index 747eb5666f..2b30324dcf 100644
--- a/lib/asn1c/util/conv.c
+++ b/lib/asn1c/util/conv.c
@@ -205,8 +205,10 @@ int ogs_asn_ip_to_BIT_STRING(ogs_ip_t *ip, BIT_STRING_t *bit_string)
bit_string->buf = CALLOC(bit_string->size, sizeof(uint8_t));
memcpy(bit_string->buf, &ip->addr6, OGS_IPV6_LEN);
ogs_debug(" IPv6[%s]", OGS_INET_NTOP(&ip->addr6, buf));
- } else
- ogs_assert_if_reached();
+ } else {
+ ogs_error("No IPv4 or IPv6");
+ return OGS_ERROR;
+ }
return OGS_OK;
}
diff --git a/lib/core/abts.c b/lib/core/abts.c
index a81e6b870e..c32ffb5e70 100644
--- a/lib/core/abts.c
+++ b/lib/core/abts.c
@@ -152,10 +152,17 @@ abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
suite = malloc(sizeof(*suite));
suite->head = subsuite;
suite->tail = subsuite;
- }
- else {
- suite->tail->next = subsuite;
- suite->tail = subsuite;
+ } else {
+ /* Clang scan-build SA: NULL pointer dereference: add check for suite->tail=NULL */
+ if (suite->tail) {
+ suite->tail->next = subsuite;
+ suite->tail = subsuite;
+ } else {
+ fprintf(stderr, "suite->tail=NULL\n");
+ fflush(stderr);
+ free(subsuite);
+ return(NULL);
+ }
}
if (!should_test_run(subsuite->name)) {
@@ -203,6 +210,13 @@ static int report(abts_suite *suite)
end_suite(suite);
}
+ /* Clang scan-build SA: NULL pointer dereference: suite=NULL */
+ if (!suite) {
+ fprintf(stderr, "suite=NULL\n");
+ fflush(stderr);
+ return(1);
+ }
+
for (dptr = suite->head; dptr; dptr = dptr->next) {
count += dptr->failed;
}
@@ -499,6 +513,7 @@ static void show_help(const char *name)
" -q : turn off status in test\n"
" -x : exclute test-unit (e.g. -x sctp-test)\n"
" -l : list test-unit\n"
+ " -k : use config section\n"
"\n", name);
}
@@ -509,6 +524,7 @@ int abts_main(int argc, const char *const argv[], const char **argv_out)
ogs_getopt_t options;
struct {
char *config_file;
+ char *config_section;
char *log_level;
char *domain_mask;
@@ -519,7 +535,7 @@ int abts_main(int argc, const char *const argv[], const char **argv_out)
memset(&optarg, 0, sizeof(optarg));
ogs_getopt_init(&options, (char**)argv);
- while ((opt = ogs_getopt(&options, "hvxlqc:e:m:dt")) != -1) {
+ while ((opt = ogs_getopt(&options, "hvxlqc:e:m:dtk:")) != -1) {
switch (opt) {
case 'h':
show_help(argv[0]);
@@ -551,6 +567,9 @@ int abts_main(int argc, const char *const argv[], const char **argv_out)
case 't':
optarg.enable_trace = true;
break;
+ case 'k':
+ optarg.config_section = options.optarg;
+ break;
case '?':
fprintf(stderr, "%s: %s\n", argv[0], options.errmsg);
show_help(argv[0]);
@@ -588,6 +607,10 @@ int abts_main(int argc, const char *const argv[], const char **argv_out)
argv_out[i++] = "-m";
argv_out[i++] = optarg.domain_mask;
}
+ if (optarg.config_section) {
+ argv_out[i++] = "-k";
+ argv_out[i++] = optarg.config_section;
+ }
argv_out[i] = NULL;
diff --git a/lib/core/ogs-conv.c b/lib/core/ogs-conv.c
index f4d3fa188f..5b11f71779 100644
--- a/lib/core/ogs-conv.c
+++ b/lib/core/ogs-conv.c
@@ -214,17 +214,17 @@ char *ogs_uint64_to_string(uint64_t x)
return dup;
}
-ogs_uint24_t ogs_uint24_from_string(char *str)
+ogs_uint24_t ogs_uint24_from_string(char *str, int base)
{
ogs_uint24_t x;
ogs_assert(str);
- x.v = ogs_uint64_from_string(str);
+ x.v = ogs_uint64_from_string(str, base);
return x;
}
-uint64_t ogs_uint64_from_string(char *str)
+uint64_t ogs_uint64_from_string(char *str, int base)
{
uint64_t x;
@@ -234,7 +234,7 @@ uint64_t ogs_uint64_from_string(char *str)
return 0;
errno = 0;
- x = strtoll(str, NULL, 16);
+ x = strtoll(str, NULL, base);
if ((errno == ERANGE && (x == LONG_MAX || x == LONG_MIN)) ||
(errno != 0 && x == 0)) {
diff --git a/lib/core/ogs-conv.h b/lib/core/ogs-conv.h
index 0374aaf823..b79bd74cd4 100644
--- a/lib/core/ogs-conv.h
+++ b/lib/core/ogs-conv.h
@@ -53,8 +53,17 @@ char *ogs_uint36_to_0string(uint64_t x);
char *ogs_uint64_to_0string(uint64_t x);
char *ogs_uint64_to_string(uint64_t x);
-ogs_uint24_t ogs_uint24_from_string(char *str);
-uint64_t ogs_uint64_from_string(char *str);
+#define ogs_uint24_from_string_decimal(str) \
+ ogs_uint24_from_string((str), 10)
+#define ogs_uint24_from_string_hexadecimal(str) \
+ ogs_uint24_from_string((str), 16)
+ogs_uint24_t ogs_uint24_from_string(char *str, int base);
+
+#define ogs_uint64_from_string_decimal(str) \
+ ogs_uint64_from_string((str), 10)
+#define ogs_uint64_from_string_hexadecimal(str) \
+ ogs_uint64_from_string((str), 16)
+uint64_t ogs_uint64_from_string(char *str, int base);
double *ogs_alloc_double(double value);
diff --git a/lib/core/ogs-epoll.c b/lib/core/ogs-epoll.c
index 2b3399fefb..326ae2c0c5 100644
--- a/lib/core/ogs-epoll.c
+++ b/lib/core/ogs-epoll.c
@@ -74,7 +74,12 @@ static void epoll_init(ogs_pollset_t *pollset)
ogs_assert(context->map_hash);
context->epfd = epoll_create(pollset->capacity);
- ogs_assert(context->epfd >= 0);
+ if (context->epfd < 0) {
+ ogs_log_message(OGS_LOG_FATAL, ogs_errno,
+ "epoll_create() failed [%d]", pollset->capacity);
+ ogs_assert_if_reached();
+ return;
+ }
ogs_notify_init(pollset);
}
diff --git a/lib/core/ogs-log.c b/lib/core/ogs-log.c
index 5baf385fbd..ac43d6d7dc 100644
--- a/lib/core/ogs-log.c
+++ b/lib/core/ogs-log.c
@@ -340,6 +340,28 @@ void ogs_log_set_mask_level(const char *_mask, ogs_log_level_e level)
}
}
+void ogs_log_set_timestamp(ogs_log_ts_e ts_default, ogs_log_ts_e ts_file)
+{
+ ogs_log_t *log;
+
+ if (ts_default == OGS_LOG_TS_UNSET)
+ ts_default = OGS_LOG_TS_ENABLED;
+
+ if (ts_file == OGS_LOG_TS_UNSET)
+ ts_file = ts_default;
+
+ ogs_list_for_each(&log_list, log) {
+ switch (log->type) {
+ case OGS_LOG_FILE_TYPE:
+ log->print.timestamp = (ts_file == OGS_LOG_TS_ENABLED);
+ break;
+ default:
+ log->print.timestamp = (ts_default == OGS_LOG_TS_ENABLED);
+ break;
+ }
+ }
+}
+
static ogs_log_level_e ogs_log_level_from_string(const char *string)
{
ogs_log_level_e level = OGS_ERROR;
diff --git a/lib/core/ogs-log.h b/lib/core/ogs-log.h
index 24a6b77d1b..547f196201 100644
--- a/lib/core/ogs-log.h
+++ b/lib/core/ogs-log.h
@@ -64,6 +64,12 @@ typedef enum {
OGS_LOG_FULL = OGS_LOG_TRACE,
} ogs_log_level_e;
+typedef enum {
+ OGS_LOG_TS_UNSET,
+ OGS_LOG_TS_ENABLED,
+ OGS_LOG_TS_DISABLED,
+} ogs_log_ts_e;
+
typedef struct ogs_log_s ogs_log_t;
typedef struct ogs_log_domain_s ogs_log_domain_t;
@@ -90,6 +96,7 @@ void ogs_log_install_domain(int *domain_id,
int ogs_log_config_domain(const char *domain, const char *level);
void ogs_log_set_mask_level(const char *mask, ogs_log_level_e level);
+void ogs_log_set_timestamp(ogs_log_ts_e ts_default, ogs_log_ts_e ts_file);
void ogs_log_vprintf(ogs_log_level_e level, int id,
ogs_err_t err, const char *file, int line, const char *func,
diff --git a/lib/core/ogs-macros.h b/lib/core/ogs-macros.h
index 85710a6d96..630c7fbc22 100644
--- a/lib/core/ogs-macros.h
+++ b/lib/core/ogs-macros.h
@@ -222,6 +222,9 @@ static ogs_inline ogs_uint24_t ogs_htobe24(ogs_uint24_t x)
((__oBJ)->reference_count)--
#define OGS_OBJECT_IS_REF(__oBJ) ((__oBJ)->reference_count > 1)
+#define OGS_POINTER_TO_UINT(u) ((uintptr_t)(u))
+#define OGS_UINT_TO_POINTER(u) ((void *)(uintptr_t)(u))
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/core/ogs-pool.h b/lib/core/ogs-pool.h
index b6398192aa..daabb746cd 100644
--- a/lib/core/ogs-pool.h
+++ b/lib/core/ogs-pool.h
@@ -28,7 +28,11 @@
extern "C" {
#endif
-typedef uint32_t ogs_pool_id_t;
+#define OGS_INVALID_POOL_ID 0
+#define OGS_MIN_POOL_ID 1
+#define OGS_MAX_POOL_ID 0x7fffffff
+
+typedef int32_t ogs_pool_id_t;
#define OGS_POOL(pool, type) \
struct { \
@@ -36,6 +40,9 @@ typedef uint32_t ogs_pool_id_t;
int head, tail; \
int size, avail; \
type **free, *array, **index; \
+ \
+ ogs_hash_t *id_hash; \
+ ogs_pool_id_t id; \
} pool
/*
@@ -57,6 +64,9 @@ typedef uint32_t ogs_pool_id_t;
(pool)->free[i] = &((pool)->array[i]); \
(pool)->index[i] = NULL; \
} \
+ \
+ (pool)->id_hash = ogs_hash_make(); \
+ ogs_assert((pool)->id_hash); \
} while (0)
/*
@@ -70,6 +80,9 @@ typedef uint32_t ogs_pool_id_t;
free((pool)->free); \
free((pool)->array); \
free((pool)->index); \
+ \
+ ogs_assert((pool)->id_hash); \
+ ogs_hash_destroy((pool)->id_hash); \
} while (0)
/*
@@ -93,6 +106,9 @@ typedef uint32_t ogs_pool_id_t;
(pool)->free[i] = &((pool)->array[i]); \
(pool)->index[i] = NULL; \
} \
+ \
+ (pool)->id_hash = ogs_hash_make(); \
+ ogs_assert((pool)->id_hash); \
} while (0)
/*
@@ -108,14 +124,11 @@ typedef uint32_t ogs_pool_id_t;
ogs_free((pool)->free); \
ogs_free((pool)->array); \
ogs_free((pool)->index); \
+ \
+ ogs_assert((pool)->id_hash); \
+ ogs_hash_destroy((pool)->id_hash); \
} while (0)
-#define ogs_pool_index(pool, node) (((node) - (pool)->array)+1)
-#define ogs_pool_find(pool, _index) \
- (_index > 0 && _index <= (pool)->size) ? (pool)->index[_index-1] : NULL
-#define ogs_pool_cycle(pool, node) \
- ogs_pool_find((pool), ogs_pool_index((pool), (node)))
-
#define ogs_pool_alloc(pool, node) do { \
*(node) = NULL; \
if ((pool)->avail > 0) { \
@@ -136,6 +149,31 @@ typedef uint32_t ogs_pool_id_t;
} \
} while (0)
+#define ogs_pool_index(pool, node) (((node) - (pool)->array)+1)
+#define ogs_pool_find(pool, _index) \
+ (_index > 0 && _index <= (pool)->size) ? (pool)->index[_index-1] : NULL
+
+#define ogs_pool_id_calloc(pool, node) do { \
+ ogs_pool_alloc(pool, node); \
+ if (*node) { \
+ memset(*(node), 0, sizeof(**(node))); \
+ (*(node))->id = OGS_NEXT_ID((pool)->id, 1, OGS_MAX_POOL_ID); \
+ ogs_hash_set((pool)->id_hash, \
+ &((*(node))->id), sizeof(ogs_pool_id_t), *(node)); \
+ } \
+} while (0)
+
+#define ogs_pool_id_free(pool, node) do { \
+ ogs_assert(((node)->id) >= OGS_MIN_POOL_ID && \
+ ((node)->id) <= OGS_MAX_POOL_ID); \
+ ogs_hash_set((pool)->id_hash, \
+ &((node)->id), sizeof(ogs_pool_id_t), NULL); \
+ ogs_pool_free(pool, node); \
+} while (0)
+
+#define ogs_pool_find_by_id(pool, id) \
+ ogs_hash_get((pool)->id_hash, &id, sizeof(ogs_pool_id_t))
+
#define ogs_pool_size(pool) ((pool)->size)
#define ogs_pool_avail(pool) ((pool)->avail)
@@ -157,6 +195,12 @@ typedef uint32_t ogs_pool_id_t;
(pool)->array[j] = temp; \
} \
} while (0)
+#define ogs_pool_assert_if_has_duplicate(pool) do { \
+ int i, j; \
+ for (i = 0; i < (pool)->size; i++) \
+ for (j = i+1; j < (pool)->size; j++) \
+ ogs_assert(((pool)->array[i]) != ((pool)->array[j])); \
+} while (0)
#ifdef __cplusplus
}
diff --git a/lib/core/ogs-sockaddr.c b/lib/core/ogs-sockaddr.c
index fb8dbeb8c1..61ad459db9 100644
--- a/lib/core/ogs-sockaddr.c
+++ b/lib/core/ogs-sockaddr.c
@@ -55,6 +55,10 @@
#undef OGS_LOG_DOMAIN
#define OGS_LOG_DOMAIN __ogs_sock_domain
+static bool ogs_sockaddr_compare(const ogs_sockaddr_t *a,
+ const ogs_sockaddr_t *b,
+ bool compare_port);
+
/* If you want to use getnameinfo,
* you need to consider DNS query delay (about 10 seconds) */
#if 0
@@ -264,6 +268,60 @@ int ogs_sortaddrinfo(ogs_sockaddr_t **sa_list, int family)
return OGS_OK;
}
+/*--------------------------------------------------------------------------
+ * Merge a single node if not already in "dest" list
+ *--------------------------------------------------------------------------
+ */
+void ogs_merge_single_addrinfo(
+ ogs_sockaddr_t **dest, const ogs_sockaddr_t *item)
+{
+ ogs_sockaddr_t *p;
+ ogs_sockaddr_t *new_sa;
+
+ ogs_assert(dest);
+ ogs_assert(item);
+
+ p = *dest;
+
+ while (p) {
+ if (ogs_sockaddr_is_equal(p, item)) {
+ /* Already exists */
+ return;
+ }
+ p = p->next;
+ }
+ new_sa = (ogs_sockaddr_t *)ogs_malloc(sizeof(*new_sa));
+ ogs_assert(new_sa);
+ memcpy(new_sa, item, sizeof(*new_sa));
+ if (item->hostname) {
+ new_sa->hostname = ogs_strdup(item->hostname);
+ ogs_assert(new_sa->hostname);
+ }
+ new_sa->next = NULL;
+ if (!(*dest)) {
+ *dest = new_sa;
+ } else {
+ p = *dest;
+ while (p->next)
+ p = p->next;
+ p->next = new_sa;
+ }
+}
+
+/*--------------------------------------------------------------------------
+ * Merge an entire src list into dest
+ *--------------------------------------------------------------------------
+ */
+void ogs_merge_addrinfo(ogs_sockaddr_t **dest, const ogs_sockaddr_t *src)
+{
+ const ogs_sockaddr_t *cur;
+ cur = src;
+ while (cur) {
+ ogs_merge_single_addrinfo(dest, cur);
+ cur = cur->next;
+ }
+}
+
ogs_sockaddr_t *ogs_link_local_addr(const char *dev, const ogs_sockaddr_t *sa)
{
#if defined(HAVE_GETIFADDRS)
@@ -419,13 +477,16 @@ socklen_t ogs_sockaddr_len(const void *sa)
}
}
-bool ogs_sockaddr_is_equal(const void *p, const void *q)
+/*
+ * Helper function to compare two addresses.
+ * If compare_port is true, compare both port and address.
+ * Otherwise, compare address only.
+ */
+static bool ogs_sockaddr_compare(const ogs_sockaddr_t *a,
+ const ogs_sockaddr_t *b,
+ bool compare_port)
{
- const ogs_sockaddr_t *a, *b;
-
- a = p;
ogs_assert(a);
- b = q;
ogs_assert(b);
if (a->ogs_sa_family != b->ogs_sa_family)
@@ -433,21 +494,66 @@ bool ogs_sockaddr_is_equal(const void *p, const void *q)
switch (a->ogs_sa_family) {
case AF_INET:
- if (a->sin.sin_port != b->sin.sin_port)
+ if (compare_port && (a->sin.sin_port != b->sin.sin_port))
return false;
- if (memcmp(&a->sin.sin_addr, &b->sin.sin_addr, sizeof(struct in_addr)) != 0)
+ if (memcmp(&a->sin.sin_addr, &b->sin.sin_addr,
+ sizeof(struct in_addr)) != 0)
return false;
return true;
case AF_INET6:
- if (a->sin6.sin6_port != b->sin6.sin6_port)
+ if (compare_port && (a->sin6.sin6_port != b->sin6.sin6_port))
return false;
- if (memcmp(&a->sin6.sin6_addr, &b->sin6.sin6_addr, sizeof(struct in6_addr)) != 0)
+ if (memcmp(&a->sin6.sin6_addr, &b->sin6.sin6_addr,
+ sizeof(struct in6_addr)) != 0)
return false;
return true;
default:
- ogs_error("Unexpected address faimily %u", a->ogs_sa_family);
+ ogs_error("Unexpected address family %u", a->ogs_sa_family);
ogs_abort();
+ return false; /* Defensive return */
+ }
+}
+
+/* Compare addresses including port */
+bool ogs_sockaddr_is_equal(const void *p, const void *q)
+{
+ const ogs_sockaddr_t *a = (const ogs_sockaddr_t *)p;
+ const ogs_sockaddr_t *b = (const ogs_sockaddr_t *)q;
+ return ogs_sockaddr_compare(a, b, true);
+}
+
+/* Compare addresses without considering port */
+bool ogs_sockaddr_is_equal_addr(const void *p, const void *q)
+{
+ const ogs_sockaddr_t *a = (const ogs_sockaddr_t *)p;
+ const ogs_sockaddr_t *b = (const ogs_sockaddr_t *)q;
+ return ogs_sockaddr_compare(a, b, false);
+}
+
+bool ogs_sockaddr_check_any_match(
+ ogs_sockaddr_t *base,
+ ogs_sockaddr_t *list, const ogs_sockaddr_t *single, bool compare_port)
+{
+ ogs_sockaddr_t *p = NULL;
+
+ while (list) {
+ p = base;
+ while (p) {
+ if (ogs_sockaddr_compare(p, list, compare_port) == true)
+ return true;
+ p = p->next;
+ }
+ list = list->next;
+ }
+ if (single) {
+ p = base;
+ while (p) {
+ if (ogs_sockaddr_compare(p, single, compare_port) == true)
+ return true;
+ p = p->next;
+ }
}
+ return false;
}
static int parse_network(ogs_ipsubnet_t *ipsub, const char *network)
@@ -666,3 +772,31 @@ char *ogs_ipstrdup(ogs_sockaddr_t *addr)
return ogs_strdup(buf);
}
+
+char *ogs_sockaddr_to_string_static(ogs_sockaddr_t *sa_list)
+{
+ static char dumpstr[OGS_HUGE_LEN] = { 0, };
+ char *p, *last;
+ ogs_sockaddr_t *addr = NULL;
+
+ last = dumpstr + OGS_HUGE_LEN;
+ p = dumpstr;
+
+ addr = (ogs_sockaddr_t *)sa_list;
+ while (addr) {
+ char buf[OGS_ADDRSTRLEN];
+ p = ogs_slprintf(p, last, "[%s]:%d ",
+ OGS_ADDR(addr, buf), OGS_PORT(addr));
+ addr = addr->next;
+ }
+
+ if (p > dumpstr) {
+ /* If there is more than one addr, remove the last character */
+ *(p-1) = 0;
+
+ return dumpstr;
+ }
+
+ /* No address */
+ return NULL;
+}
diff --git a/lib/core/ogs-sockaddr.h b/lib/core/ogs-sockaddr.h
index a28e5b570e..1442559260 100644
--- a/lib/core/ogs-sockaddr.h
+++ b/lib/core/ogs-sockaddr.h
@@ -67,20 +67,8 @@ struct ogs_sockaddr_s {
* If there is a name in the configuration file,
* it is set in the 'hostname' of ogs_sockaddr_t.
* Then, it immediately call getaddrinfo() to fill addr in ogs_sockaddr_t.
- *
- * When it was always possible to convert DNS to addr, that was no problem.
- * However, in some environments, such as Roaming, there are situations
- * where it is difficult to always change the DNS to addr.
- *
- * So, 'fqdn' was created for the purpose of first use in ogs_sbi_client_t.
- * 'fqdn' always do not change with addr.
- * This value is used as it is in the actual client connection.
- *
- * Note that 'hostname' is still in use for server or other client
- * except for ogs_sbi_client_t.
*/
char *hostname;
- char *fqdn;
ogs_sockaddr_t *next;
};
@@ -103,6 +91,10 @@ int ogs_copyaddrinfo(
int ogs_filteraddrinfo(ogs_sockaddr_t **sa_list, int family);
int ogs_sortaddrinfo(ogs_sockaddr_t **sa_list, int family);
+void ogs_merge_single_addrinfo(
+ ogs_sockaddr_t **dest, const ogs_sockaddr_t *item);
+void ogs_merge_addrinfo(ogs_sockaddr_t **dest, const ogs_sockaddr_t *src);
+
ogs_sockaddr_t *ogs_link_local_addr(const char *dev, const ogs_sockaddr_t *sa);
ogs_sockaddr_t *ogs_link_local_addr_by_dev(const char *dev);
ogs_sockaddr_t *ogs_link_local_addr_by_sa(const ogs_sockaddr_t *sa);
@@ -119,12 +111,18 @@ int ogs_inet_pton(int family, const char *src, void *sa);
socklen_t ogs_sockaddr_len(const void *sa);
bool ogs_sockaddr_is_equal(const void *p, const void *q);
+bool ogs_sockaddr_is_equal_addr(const void *p, const void *q);
+
+bool ogs_sockaddr_check_any_match(
+ ogs_sockaddr_t *base,
+ ogs_sockaddr_t *list, const ogs_sockaddr_t *single, bool compare_port);
int ogs_ipsubnet(ogs_ipsubnet_t *ipsub,
const char *ipstr, const char *mask_or_numbits);
char *ogs_gethostname(ogs_sockaddr_t *addr);
char *ogs_ipstrdup(ogs_sockaddr_t *addr);
+char *ogs_sockaddr_to_string_static(ogs_sockaddr_t *sa_list);
#ifdef __cplusplus
}
diff --git a/lib/core/ogs-time.h b/lib/core/ogs-time.h
index 0257f19661..b89e39ea65 100644
--- a/lib/core/ogs-time.h
+++ b/lib/core/ogs-time.h
@@ -84,8 +84,11 @@ typedef int64_t ogs_time_t;
/** @return ogs_time_t as a msec */
#define ogs_time_msec(time) (((time) / 1000) % 1000)
-/** @return ogs_time_t as a msec */
+/** @return ogs_time_t to msec */
#define ogs_time_to_msec(time) ((time) ? (1 + ((time) - 1) / 1000) : 0)
+/** @return ogs_time_t to sec */
+#define ogs_time_to_sec(time) \
+ ((time) ? (1 + ((time) - 1) / OGS_USEC_PER_SEC) : 0)
/** @return milliseconds as an ogs_time_t */
#define ogs_time_from_msec(msec) ((ogs_time_t)(msec) * 1000)
diff --git a/lib/core/ogs-timer.c b/lib/core/ogs-timer.c
index 90c01c9db7..0c45ab8513 100644
--- a/lib/core/ogs-timer.c
+++ b/lib/core/ogs-timer.c
@@ -73,12 +73,6 @@ void ogs_timer_mgr_destroy(ogs_timer_mgr_t *manager)
ogs_free(manager);
}
-static ogs_timer_t *ogs_timer_cycle(ogs_timer_mgr_t *manager, ogs_timer_t *timer)
-{
- ogs_assert(manager);
- return ogs_pool_cycle(&manager->pool, timer);
-}
-
ogs_timer_t *ogs_timer_add(
ogs_timer_mgr_t *manager, void (*cb)(void *data), void *data)
{
@@ -106,11 +100,6 @@ void ogs_timer_delete_debug(ogs_timer_t *timer, const char *file_line)
ogs_assert(timer);
manager = timer->manager;
ogs_assert(manager);
- timer = ogs_timer_cycle(manager, timer);
- if (!timer) {
- ogs_fatal("ogs_timer_delete() failed in %s", file_line);
- ogs_assert_if_reached();
- }
ogs_timer_stop(timer);
@@ -126,11 +115,6 @@ void ogs_timer_start_debug(
manager = timer->manager;
ogs_assert(manager);
- timer = ogs_timer_cycle(manager, timer);
- if (!timer) {
- ogs_fatal("ogs_timer_start() failed in %s", file_line);
- ogs_assert_if_reached();
- }
if (timer->running == true)
ogs_rbtree_delete(&manager->tree, timer);
@@ -145,12 +129,6 @@ void ogs_timer_stop_debug(ogs_timer_t *timer, const char *file_line)
ogs_assert(timer);
manager = timer->manager;
ogs_assert(manager);
- timer = ogs_timer_cycle(manager, timer);
- ogs_assert(timer);
- if (!timer) {
- ogs_fatal("ogs_timer_stop() failed in %s", file_line);
- ogs_assert_if_reached();
- }
if (timer->running == false)
return;
@@ -200,6 +178,8 @@ void ogs_timer_mgr_expire(ogs_timer_mgr_t *manager)
ogs_list_add(&list, &this->lnode);
}
+ /* You should not perform a delete on a timer using ogs_timer_delete()
+ * in a callback function this->cb(). */
ogs_list_for_each(&list, lnode) {
this = ogs_rb_entry(lnode, ogs_timer_t, lnode);
ogs_timer_stop(this);
diff --git a/lib/crypt/ecc.c b/lib/crypt/ecc.c
index d22789d6a2..9066a21ad1 100644
--- a/lib/crypt/ecc.c
+++ b/lib/crypt/ecc.c
@@ -4,6 +4,8 @@
#include
+#include "ogs-core.h"
+
#define NUM_ECC_DIGITS (ECC_BYTES/8)
#define MAX_TRIES 16
@@ -82,6 +84,7 @@ static int getRandomNumber(uint64_t *p_vli)
HCRYPTPROV l_prov;
if(!CryptAcquireContext(&l_prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
{
+ ogs_error("CryptAcquireContext() failed");
return 0;
}
@@ -107,9 +110,11 @@ static int getRandomNumber(uint64_t *p_vli)
int l_fd = open("/dev/urandom", O_RDONLY | O_CLOEXEC);
if(l_fd == -1)
{
+ ogs_error("open(/dev/urandom) failed");
l_fd = open("/dev/random", O_RDONLY | O_CLOEXEC);
if(l_fd == -1)
{
+ ogs_error("open(/dev/random) failed");
return 0;
}
}
@@ -122,6 +127,7 @@ static int getRandomNumber(uint64_t *p_vli)
if(l_read <= 0)
{ // read failed
close(l_fd);
+ ogs_error("read() failed");
return 0;
}
l_left -= l_read;
@@ -1069,10 +1075,16 @@ int ecc_make_key(uint8_t p_publicKey[ECC_BYTES+1], uint8_t p_privateKey[ECC_BYTE
EccPoint l_public;
unsigned l_tries = 0;
+ /* Clang scan-build SA: Branch condition evaluates to garbage value: In 1st pass thru the do loop the struct l_public
+ * will not contain a value in the while() check if vli_isZero(l_private)==true and the continue branch is taken.
+ * Initialize l_public to fix the issue. */
+ memset(&l_public, 0, sizeof(EccPoint));
+
do
{
if(!getRandomNumber(l_private) || (l_tries++ >= MAX_TRIES))
{
+ ogs_error("getRandomNumber() failed [%d]", l_tries);
return 0;
}
if(vli_isZero(l_private))
@@ -1096,6 +1108,45 @@ int ecc_make_key(uint8_t p_publicKey[ECC_BYTES+1], uint8_t p_privateKey[ECC_BYTE
return 1;
}
+#define CURVE_A_32 {0xFFFFFFFFFFFFFFFCull, 0x00000000FFFFFFFFull, 0x0000000000000000ull, 0xFFFFFFFF00000001ull}
+
+static int ecdh_validate_pubkey(EccPoint l_public, uint64_t l_private[NUM_ECC_DIGITS]) {
+ uint64_t left[NUM_ECC_DIGITS];
+ uint64_t right[NUM_ECC_DIGITS];
+ uint64_t curve_a[NUM_ECC_DIGITS] = CURVE_A_32;
+ /*
+ * To ensure l_public is a valid point on the curve, we need to check:
+ * y^2 % p == (x^3 + a * x + b) % p)
+ */
+
+ /* Compute y^2 % p and store in `left` */
+ vli_modSquare_fast(left, l_public.y);
+
+ /* Compute x^3 and store in `right` */
+ vli_modSquare_fast(right, l_public.x);
+ vli_modMult_fast(right, right, l_public.x);
+
+ /* Compute a * x and store in `curve_a` */
+ vli_modMult_fast(curve_a, curve_a, l_public.x);
+ /* Store ((a * x) + b) % p in `curve_a */
+ vli_modAdd(curve_a, curve_a, curve_b, curve_p);
+
+ /*
+ * Combine x^3 and ((a * x) + b) to make (x^3 + a * x + b) % p);
+ * store in `right`
+ */
+ vli_modAdd(right, right, curve_a, curve_p);
+
+ int i;
+ for (i = 0; i < NUM_ECC_DIGITS; i++) {
+ if (left[i] != right[i]) {
+ return 0; // y^2 % p != (x^3 + a * x + b) % p)
+ }
+ }
+
+ return 1;
+}
+
int ecdh_shared_secret(const uint8_t p_publicKey[ECC_BYTES+1], const uint8_t p_privateKey[ECC_BYTES], uint8_t p_secret[ECC_BYTES])
{
EccPoint l_public;
@@ -1104,12 +1155,23 @@ int ecdh_shared_secret(const uint8_t p_publicKey[ECC_BYTES+1], const uint8_t p_p
if(!getRandomNumber(l_random))
{
+ ogs_error("getRandomNumber() failed");
return 0;
}
ecc_point_decompress(&l_public, p_publicKey);
ecc_bytes2native(l_private, p_privateKey);
+ /*
+ * Validate received public key `p_publicKey` is a valid point
+ * on curve P-256
+ */
+ if (!ecdh_validate_pubkey(l_public, l_private))
+ {
+ ogs_error("ecdh_validate_pubkey() failed");
+ return 0;
+ }
+
EccPoint l_product;
EccPoint_mult(&l_product, &l_public, l_private, l_random);
@@ -1198,10 +1260,16 @@ int ecdsa_sign(const uint8_t p_privateKey[ECC_BYTES], const uint8_t p_hash[ECC_B
EccPoint p;
unsigned l_tries = 0;
+ /* Clang scan-build SA: Branch condition evaluates to garbage value: In 1st pass thru the do loop the struct "p"
+ * will not contain a value in the while() check if vli_isZero(k)==true and the continue branch is taken.
+ * Initialize "p" to fix the issue. */
+ memset(&p, 0, sizeof(EccPoint));
+
do
{
if(!getRandomNumber(k) || (l_tries++ >= MAX_TRIES))
{
+ ogs_error("getRandomNumber() failed [%d]", l_tries);
return 0;
}
if(vli_isZero(k))
@@ -1256,11 +1324,13 @@ int ecdsa_verify(const uint8_t p_publicKey[ECC_BYTES+1], const uint8_t p_hash[EC
if(vli_isZero(l_r) || vli_isZero(l_s))
{ /* r, s must not be 0. */
+ ogs_error("r, s must not be 0");
return 0;
}
if(vli_cmp(curve_n, l_r) != 1 || vli_cmp(curve_n, l_s) != 1)
{ /* r, s must be < n. */
+ ogs_error("r, s must be < n");
return 0;
}
diff --git a/lib/crypt/kasumi.c b/lib/crypt/kasumi.c
index 7ce7fed044..14cc86cade 100644
--- a/lib/crypt/kasumi.c
+++ b/lib/crypt/kasumi.c
@@ -292,7 +292,13 @@ void kasumi_f8(u8 *key, u32 count, u32 bearer, u32 dir, u8 *data, int length)
/* Construct the modified key and then "kasumi" A */
for( n=0; n<16; ++n )
ModKey[n] = (u8)(key[n] ^ 0x55);
+
+ /* Clang scan-build SA: Result of operation is garbage: The function kasumi_key_schedule() is reporting that
+ * the array parameter "k" (ModKey) has garbage/uninitialized values. Don't see how that is possible
+ * because the array is fully populated by the loop above. */
+#ifndef __clang_analyzer__
kasumi_key_schedule( ModKey );
+#endif
kasumi( A.b8 ); /* First encryption to create modifier */
@@ -454,7 +460,13 @@ u8 *kasumi_f9(u8 *key, u32 count, u32 fresh, u32 dir, u8 *data, int length)
* key XORd with 0xAAAA..... */
for( n=0; n<16; ++n )
ModKey[n] = (u8)*key++ ^ 0xAA;
+
+ /* Clang scan-build SA: Result of operation is garbage: The function kasumi_key_schedule() is reporting that
+ * the array parameter "k" (ModKey) has garbage/uninitialized values. Don't see how that is possible
+ * because the array is fully populated by the loop above. */
+#ifndef __clang_analyzer__
kasumi_key_schedule( ModKey );
+#endif
kasumi( B.b8 );
/* We return the left-most 32-bits of the result */
diff --git a/lib/crypt/ogs-aes.c b/lib/crypt/ogs-aes.c
index 382a90537d..d8c4c58ce7 100644
--- a/lib/crypt/ogs-aes.c
+++ b/lib/crypt/ogs-aes.c
@@ -1255,6 +1255,12 @@ int ogs_aes_cbc_encrypt(const uint8_t *key, const uint32_t keybits,
*outlen = ((inlen - 1) / OGS_AES_BLOCK_SIZE + 1) * OGS_AES_BLOCK_SIZE;
+ /* Clang scan-build SA: Result of operation is garbage: The function ogs_aes_encrypt() is reporting that the
+ * array parameter rk has garbage/uninitialized values. The garbage values are because the SA is taking a path
+ * through ogs_aes_setup_enc() that doesn't match a valid keybits value and therefore the function is not
+ * populating rk. Fix the issue by initializing rk to 0 here. */
+ memset(rk, 0, sizeof(rk));
+
nrounds = ogs_aes_setup_enc(rk, key, keybits);
while (len >= OGS_AES_BLOCK_SIZE)
@@ -1310,6 +1316,12 @@ int ogs_aes_cbc_decrypt(const uint8_t *key, const uint32_t keybits,
*outlen = inlen;
+ /* Clang scan-build SA: Result of operation is garbage: The function ogs_aes_decrypt() is reporting that the
+ * array parameter rk has garbage/uninitialized values. The garbage values are because the SA is taking a path
+ * through ogs_aes_setup_enc() (from ogs_aes_setup_dec()) that doesn't match a valid keybits value and
+ * therefore the function is not populating rk. Fix the issue by initializing rk to 0 here. */
+ memset(rk, 0, sizeof(rk));
+
nrounds = ogs_aes_setup_dec(rk, key, keybits);
if (in != out)
diff --git a/lib/crypt/ogs-kdf.c b/lib/crypt/ogs-kdf.c
index 17ee7c7e3d..fd670cb103 100644
--- a/lib/crypt/ogs-kdf.c
+++ b/lib/crypt/ogs-kdf.c
@@ -463,7 +463,8 @@ void ogs_kdf_ck_ik_idle_mobility(
* TS33.401 Annex I Hash Functions
* Use the KDF given in TS33.220
*/
-void ogs_kdf_hash_mme(const uint8_t *message, uint8_t message_len, uint8_t *hash_mme)
+void ogs_kdf_hash_mme(
+ const uint8_t *message, uint32_t message_len, uint8_t *hash_mme)
{
uint8_t key[32];
uint8_t output[OGS_SHA256_DIGEST_SIZE];
diff --git a/lib/crypt/ogs-kdf.h b/lib/crypt/ogs-kdf.h
index 8bc2605823..b87c3ae26a 100644
--- a/lib/crypt/ogs-kdf.h
+++ b/lib/crypt/ogs-kdf.h
@@ -121,7 +121,8 @@ void ogs_kdf_ck_ik_idle_mobility(
* TS33.401 Annex I Hash Functions
* Use the KDF given in TS33.220
*/
-void ogs_kdf_hash_mme(const uint8_t *message, uint8_t message_len, uint8_t *hash_mme);
+void ogs_kdf_hash_mme(
+ const uint8_t *message, uint32_t message_len, uint8_t *hash_mme);
/*
* TS33.102
diff --git a/lib/crypt/zuc.c b/lib/crypt/zuc.c
index a395edf2c9..185c4cbd9c 100644
--- a/lib/crypt/zuc.c
+++ b/lib/crypt/zuc.c
@@ -327,12 +327,18 @@ void zuc_eea3(u8* CK, u32 COUNT, u32 BEARER, u32 DIRECTION,
C[i] = M[i] ^ ((z[i/4] >> (3-i%4)*8) & 0xff);
}
+ /*
+ * Issues #3349
+ * Valgrind memcheck: Invalid read & write: Add {}.
+ */
+
/* zero last bits of data in case its length is not word-aligned (32 bits)
this is an addition to the C reference code, which did not handle it */
- if (lastbits)
+ if (lastbits) {
i--;
C[i] &= 0x100 - (1<= 1 && MONGOC_MINOR_VERSION >= 5
+#if MONGOC_CHECK_VERSION(1, 5, 0)
cursor = mongoc_collection_find_with_opts(
ogs_mongoc()->collection.subscriber, query, NULL, NULL);
#else
@@ -132,15 +127,10 @@ int ogs_dbi_ims_data(char *supi, ogs_ims_data_t *ims_data)
char *supi_type = NULL;
char *supi_id = NULL;
- ogs_ims_data_t zero_data;
-
ogs_assert(ims_data);
ogs_assert(supi);
- memset(&zero_data, 0, sizeof(zero_data));
-
- /* ims_data should be initialized to zero */
- ogs_assert(memcmp(ims_data, &zero_data, sizeof(zero_data)) == 0);
+ memset(ims_data, 0, sizeof(*ims_data));
supi_type = ogs_id_get_type(supi);
ogs_assert(supi_type);
@@ -148,7 +138,7 @@ int ogs_dbi_ims_data(char *supi, ogs_ims_data_t *ims_data)
ogs_assert(supi_id);
query = BCON_NEW(supi_type, BCON_UTF8(supi_id));
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 5
+#if MONGOC_CHECK_VERSION(1, 5, 0)
cursor = mongoc_collection_find_with_opts(
ogs_mongoc()->collection.subscriber, query, NULL, NULL);
#else
diff --git a/lib/dbi/ogs-mongoc.c b/lib/dbi/ogs-mongoc.c
index 69fbdf61bb..9c7599ddc3 100644
--- a/lib/dbi/ogs-mongoc.c
+++ b/lib/dbi/ogs-mongoc.c
@@ -104,7 +104,7 @@ int ogs_mongoc_init(const char *db_uri)
return OGS_ERROR;
}
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 4
+#if MONGOC_CHECK_VERSION(1, 4, 0)
mongoc_client_set_error_api(self.client, 2);
#endif
@@ -182,7 +182,7 @@ void ogs_dbi_final(void)
mongoc_collection_destroy(self.collection.subscriber);
}
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
+#if MONGOC_CHECK_VERSION(1, 9, 0)
if (self.stream) {
mongoc_change_stream_destroy(self.stream);
}
@@ -193,7 +193,7 @@ void ogs_dbi_final(void)
int ogs_dbi_collection_watch_init(void)
{
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
+#if MONGOC_CHECK_VERSION(1, 9, 0)
bson_t empty = BSON_INITIALIZER;
const bson_t *err_doc;
bson_error_t error;
diff --git a/lib/dbi/ogs-mongoc.h b/lib/dbi/ogs-mongoc.h
index 3722890384..c02877fae2 100644
--- a/lib/dbi/ogs-mongoc.h
+++ b/lib/dbi/ogs-mongoc.h
@@ -37,7 +37,7 @@ typedef struct ogs_mongoc_s {
void *client;
void *database;
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
+#if MONGOC_CHECK_VERSION(1, 9, 0)
mongoc_change_stream_t *stream;
#endif
diff --git a/lib/dbi/session.c b/lib/dbi/session.c
index b1e695b21f..092cca7b58 100644
--- a/lib/dbi/session.c
+++ b/lib/dbi/session.c
@@ -50,7 +50,7 @@ int ogs_dbi_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn,
ogs_assert(supi_id);
query = BCON_NEW(supi_type, BCON_UTF8(supi_id));
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 5
+#if MONGOC_CHECK_VERSION(1, 5, 0)
cursor = mongoc_collection_find_with_opts(
ogs_mongoc()->collection.subscriber, query, NULL, NULL);
#else
@@ -85,6 +85,7 @@ int ogs_dbi_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn,
if (!strcmp(key, OGS_SLICE_STRING) && BSON_ITER_HOLDS_ARRAY(&iter)) {
bson_iter_recurse(&iter, &child1_iter);
while (bson_iter_next(&child1_iter)) {
+ bool sst_presence = false;
uint8_t sst;
ogs_uint24_t sd;
@@ -97,6 +98,7 @@ int ogs_dbi_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn,
if (!strcmp(child2_key, OGS_SST_STRING) &&
BSON_ITER_HOLDS_INT32(&child2_iter)) {
+ sst_presence = true;
sst = bson_iter_int32(&child2_iter);
} else if (!strcmp(child2_key, OGS_SD_STRING) &&
BSON_ITER_HOLDS_UTF8(&child2_iter)) {
@@ -109,7 +111,7 @@ int ogs_dbi_session_data(char *supi, ogs_s_nssai_t *s_nssai, char *dnn,
}
}
- if (!sst) {
+ if (!sst_presence) {
ogs_error("No SST");
continue;
}
diff --git a/lib/dbi/subscription.c b/lib/dbi/subscription.c
index 94cf16c82f..e337935fe9 100644
--- a/lib/dbi/subscription.c
+++ b/lib/dbi/subscription.c
@@ -39,12 +39,19 @@ int ogs_dbi_auth_info(char *supi, ogs_dbi_auth_info_t *auth_info)
ogs_assert(auth_info);
supi_type = ogs_id_get_type(supi);
- ogs_assert(supi_type);
+ if (!supi_type) {
+ ogs_error("Invalid supi=%s", supi);
+ return OGS_ERROR;
+ }
supi_id = ogs_id_get_value(supi);
- ogs_assert(supi_id);
+ if (!supi_id) {
+ ogs_error("Invalid supi=%s", supi);
+ ogs_free(supi_type);
+ return OGS_ERROR;
+ }
query = BCON_NEW(supi_type, BCON_UTF8(supi_id));
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 5
+#if MONGOC_CHECK_VERSION(1, 5, 0)
cursor = mongoc_collection_find_with_opts(
ogs_mongoc()->collection.subscriber, query, NULL, NULL);
#else
@@ -315,15 +322,10 @@ int ogs_dbi_subscription_data(char *supi,
char *supi_type = NULL;
char *supi_id = NULL;
- ogs_subscription_data_t zero_data;
-
ogs_assert(subscription_data);
ogs_assert(supi);
- memset(&zero_data, 0, sizeof(zero_data));
-
- /* subscription_data should be initialized to zero */
- ogs_assert(memcmp(subscription_data, &zero_data, sizeof(zero_data)) == 0);
+ memset(subscription_data, 0, sizeof(*subscription_data));
supi_type = ogs_id_get_type(supi);
ogs_assert(supi_type);
@@ -331,7 +333,7 @@ int ogs_dbi_subscription_data(char *supi,
ogs_assert(supi_id);
query = BCON_NEW(supi_type, BCON_UTF8(supi_id));
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 5
+#if MONGOC_CHECK_VERSION(1, 5, 0)
cursor = mongoc_collection_find_with_opts(
ogs_mongoc()->collection.subscriber, query, NULL, NULL);
#else
@@ -464,6 +466,7 @@ int ogs_dbi_subscription_data(char *supi,
bson_iter_recurse(&iter, &child1_iter);
while (bson_iter_next(&child1_iter)) {
ogs_slice_data_t *slice_data = NULL;
+ bool sst_presence = false;
ogs_assert(
subscription_data->num_of_slice < OGS_MAX_NUM_OF_SLICE);
@@ -481,6 +484,7 @@ int ogs_dbi_subscription_data(char *supi,
if (!strcmp(child2_key, OGS_SST_STRING) &&
BSON_ITER_HOLDS_INT32(&child2_iter)) {
slice_data->s_nssai.sst = bson_iter_int32(&child2_iter);
+ sst_presence = true;
} else if (!strcmp(child2_key, OGS_SD_STRING) &&
BSON_ITER_HOLDS_UTF8(&child2_iter)) {
utf8 = bson_iter_utf8(&child2_iter, &length);
@@ -792,6 +796,12 @@ int ogs_dbi_subscription_data(char *supi,
}
}
}
+
+ if (!sst_presence) {
+ ogs_error("No SST");
+ continue;
+ }
+
subscription_data->num_of_slice++;
}
} else if (!strcmp(key, OGS_MME_HOST_STRING) &&
diff --git a/lib/diameter/common/base.h b/lib/diameter/common/base.h
index fe04c713c1..d8ad7f77a0 100644
--- a/lib/diameter/common/base.h
+++ b/lib/diameter/common/base.h
@@ -28,6 +28,15 @@
extern "C" {
#endif
+/* Configuration for ogs_diam_stats_ctx_t: */
+typedef struct ogs_diam_config_stats_s {
+ /* Frequency at which freeDiameter thread stats are updated to the app. 0 = default 60 seconds. */
+ unsigned int interval_sec;
+ /* Size of struct to allocate for diameters private statistics, see ogs_diam_stats_ctx_t.
+ * Defaults to 0, no priv_stats allocated. */
+ size_t priv_stats_size;
+} ogs_diam_config_stats_t;
+
/* This is default diameter configuration if there is no config file
* The Configuration : No TLS, Only TCP */
typedef struct ogs_diam_config_s {
@@ -43,6 +52,9 @@ typedef struct ogs_diam_config_s {
/* the local port for Diameter/TLS (default: 5658) in host byte order */
uint16_t cnf_port_tls;
+ /* default TC timer */
+ int cnf_timer_tc;
+
struct {
/* the peer does not relay messages (0xffffff app id) */
unsigned no_fwd: 1;
@@ -64,8 +76,13 @@ typedef struct ogs_diam_config_s {
const char *identity;
const char *addr; /* IP address of the remote peer */
uint16_t port; /* port to connect to. 0: default. */
+ int tc_timer; /* TcTimer value to use for this peer, use default if 0 */
} conn[MAX_NUM_OF_FD_CONN];
int num_of_conn;
+
+ /* Configure ogs_diam_stats_ctx_t: */
+ ogs_diam_config_stats_t stats;
+
} ogs_diam_config_t;
int ogs_diam_init(int mode, const char *conffile, ogs_diam_config_t *fd_config);
@@ -73,7 +90,7 @@ int ogs_diam_start(void);
void ogs_diam_final(void);
int ogs_diam_config_init(ogs_diam_config_t *fd_config);
-bool ogs_diam_app_connected(uint32_t app_id);
+bool ogs_diam_is_relay_or_app_advertised(uint32_t app_id);
int fd_avp_search_avp ( struct avp * groupedavp,
struct dict_object * what, struct avp ** avp );
diff --git a/lib/diameter/common/config.c b/lib/diameter/common/config.c
index 14a2dede17..efdf8245d5 100644
--- a/lib/diameter/common/config.c
+++ b/lib/diameter/common/config.c
@@ -69,6 +69,9 @@ static int diam_config_apply(ogs_diam_config_t *fd_config)
if (fd_config->cnf_flags.no_fwd)
fd_g_config->cnf_flags.no_fwd = fd_config->cnf_flags.no_fwd;
+ if (fd_config->cnf_timer_tc)
+ fd_g_config->cnf_timer_tc = fd_config->cnf_timer_tc;
+
/********************************************************************
* Diameter Client
*/
@@ -86,6 +89,8 @@ static int diam_config_apply(ogs_diam_config_t *fd_config)
fddpi.config.pic_flags.alg = PI_ALGPREF_SCTP;
fddpi.config.pic_flags.sec |= PI_SEC_NONE;
+ fddpi.config.pic_tctimer = fd_config->conn[i].tc_timer;
+
fddpi.config.pic_port = fd_config->conn[i].port;
fddpi.pi_diamid = (DiamId_t)fd_config->conn[i].identity;
@@ -100,7 +105,7 @@ static int diam_config_apply(ogs_diam_config_t *fd_config)
fd_config->conn[i].addr, errno, strerror(errno));
return OGS_ERROR;
}
-
+
CHECK_FCT_DO( fd_ep_add_merge(
&fddpi.pi_endpoints, ai->ai_addr, ai->ai_addrlen,
EP_FL_CONF | (disc ?: EP_ACCEPTALL) ), return OGS_ERROR);
@@ -192,7 +197,7 @@ int ogs_diam_config_init(ogs_diam_config_t *fd_config)
/* Display configuration */
b = fd_conf_dump(&buf, &len, NULL);
- LOG_SPLIT(FD_LOG_NOTICE, NULL,
+ LOG_SPLIT(FD_LOG_NOTICE, NULL,
b ?: (char*)"", NULL);
free(buf);
diff --git a/lib/diameter/common/init.c b/lib/diameter/common/init.c
index 834380b52d..738770104f 100644
--- a/lib/diameter/common/init.c
+++ b/lib/diameter/common/init.c
@@ -28,6 +28,8 @@ int ogs_diam_init(int mode, const char *conffile, ogs_diam_config_t *fd_config)
{
int ret;
+ ogs_assert(fd_config);
+
gnutls_global_set_log_level(0);
gnutls_global_set_log_function(diam_gnutls_log_func);
@@ -36,14 +38,14 @@ int ogs_diam_init(int mode, const char *conffile, ogs_diam_config_t *fd_config)
if (ret != 0) {
ogs_error("fd_log_handler_register() failed");
return ret;
- }
+ }
ret = fd_core_initialize();
if (ret != 0) {
ogs_error("fd_core_initialize() failed");
return ret;
- }
-
+ }
+
/* Parse the configuration file */
if (conffile) {
CHECK_FCT_DO( fd_core_parseconf(conffile), goto error );
@@ -55,7 +57,10 @@ int ogs_diam_init(int mode, const char *conffile, ogs_diam_config_t *fd_config)
CHECK_FCT( ogs_diam_message_init() );
/* Initialize FD logger */
- CHECK_FCT_DO( ogs_diam_logger_init(mode), goto error );
+ CHECK_FCT_DO( ogs_diam_logger_init(), goto error );
+
+ /* Initialize FD stats */
+ CHECK_FCT_DO( ogs_diam_stats_init(mode, &fd_config->stats), goto error );
return 0;
error:
@@ -72,7 +77,7 @@ int ogs_diam_start(void)
CHECK_FCT_DO( fd_core_waitstartcomplete(), goto error );
- CHECK_FCT( ogs_diam_logger_stats_start() );
+ CHECK_FCT( ogs_diam_stats_start() );
return 0;
error:
@@ -84,6 +89,7 @@ int ogs_diam_start(void)
void ogs_diam_final()
{
+ ogs_diam_stats_final();
ogs_diam_logger_final();
CHECK_FCT_DO( fd_core_shutdown(), ogs_error("fd_core_shutdown() failed") );
@@ -118,12 +124,12 @@ static void diam_log_func(int printlevel, const char *format, va_list ap)
ogs_log_printf(level, OGS_LOG_DOMAIN, 0, NULL, 0, NULL, 0, __VA_ARGS__)
switch(printlevel) {
- case FD_LOG_ANNOYING:
+ case FD_LOG_ANNOYING:
diam_log_printf(OGS_LOG_TRACE, "[%d] %s\n", printlevel, buffer);
- break;
+ break;
case FD_LOG_DEBUG:
diam_log_printf(OGS_LOG_TRACE, "[%d] %s\n", printlevel, buffer);
- break;
+ break;
case FD_LOG_INFO:
diam_log_printf(OGS_LOG_TRACE, "[%d] %s\n", printlevel, buffer);
break;
diff --git a/lib/diameter/common/logger.c b/lib/diameter/common/logger.c
index 48deb3735d..73be6c5bdb 100644
--- a/lib/diameter/common/logger.c
+++ b/lib/diameter/common/logger.c
@@ -19,57 +19,30 @@
#include "ogs-diameter-common.h"
-static struct ogs_diam_logger_t self;
-
static struct fd_hook_hdl *logger_hdl = NULL;
static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;
-static pthread_t fd_stats_th = (pthread_t)NULL;
static ogs_diam_logger_user_handler user_handler = NULL;
-static void ogs_diam_logger_cb(enum fd_hook_type type, struct msg * msg,
- struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd,
+static void ogs_diam_logger_cb(enum fd_hook_type type, struct msg * msg,
+ struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd,
void * regdata);
-static void * diam_stats_worker(void * arg);
-int ogs_diam_logger_init(int mode)
+int ogs_diam_logger_init()
{
uint32_t mask_peers = HOOK_MASK( HOOK_PEER_CONNECT_SUCCESS );
- memset(&self, 0, sizeof(struct ogs_diam_logger_t));
-
- self.mode = mode;
- self.duration = 60; /* 60 seconds */
-
- CHECK_FCT( fd_hook_register(
+ CHECK_FCT( fd_hook_register(
mask_peers, ogs_diam_logger_cb, NULL, NULL, &logger_hdl) );
- CHECK_POSIX( pthread_mutex_init(&self.stats_lock, NULL) );
-
return 0;
}
void ogs_diam_logger_final()
{
- CHECK_FCT_DO( fd_thr_term(&fd_stats_th), );
- CHECK_POSIX_DO( pthread_mutex_destroy(&self.stats_lock), );
-
if (logger_hdl) { CHECK_FCT_DO( fd_hook_unregister( logger_hdl ), ); }
}
-struct ogs_diam_logger_t* ogs_diam_logger_self()
-{
- return &self;
-}
-
-int ogs_diam_logger_stats_start()
-{
- /* Start the statistics thread */
- CHECK_POSIX( pthread_create(&fd_stats_th, NULL, diam_stats_worker, NULL) );
-
- return 0;
-}
-
void ogs_diam_logger_register(ogs_diam_logger_user_handler instance)
{
user_handler = instance;
@@ -81,8 +54,8 @@ void ogs_diam_logger_unregister(void)
}
/* The callback called when messages are received and sent */
-static void ogs_diam_logger_cb(enum fd_hook_type type, struct msg * msg,
- struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd,
+static void ogs_diam_logger_cb(enum fd_hook_type type, struct msg * msg,
+ struct peer_hdr * peer, void * other, struct fd_hook_permsgdata *pmd,
void * regdata)
{
const char * peer_name = peer ? peer->info.pi_diamid : "";
@@ -116,62 +89,3 @@ static void ogs_diam_logger_cb(enum fd_hook_type type, struct msg * msg,
CHECK_POSIX_DO( pthread_mutex_unlock(&mtx), );
}
-/* Function to display statistics periodically */
-static void * diam_stats_worker(void * arg)
-{
- struct timespec start, now;
- struct fd_stats copy;
-
- /* Get the start time */
- CHECK_SYS_DO( clock_gettime(CLOCK_REALTIME, &start), );
-
- /* Now, loop until canceled */
- while (1) {
- /* Display statistics every XX seconds */
- sleep(self.duration);
-
- /* Now, get the current stats */
- CHECK_POSIX_DO( pthread_mutex_lock(&self.stats_lock), );
- memcpy(©, &self.stats, sizeof(struct fd_stats));
- CHECK_POSIX_DO( pthread_mutex_unlock(&self.stats_lock), );
-
- /* Get the current execution time */
- CHECK_SYS_DO( clock_gettime(CLOCK_REALTIME, &now), );
-
- /* Now, display everything */
- ogs_trace("------- fd statistics ---------");
- if (now.tv_nsec >= start.tv_nsec)
- {
- ogs_trace(" Executing for: %d.%06ld sec",
- (int)(now.tv_sec - start.tv_sec),
- (long)(now.tv_nsec - start.tv_nsec) / 1000);
- }
- else
- {
- ogs_trace(" Executing for: %d.%06ld sec",
- (int)(now.tv_sec - 1 - start.tv_sec),
- (long)(now.tv_nsec + 1000000000 - start.tv_nsec) / 1000);
- }
-
- if (self.mode & FD_MODE_SERVER) {
- ogs_trace(" Server: %llu message(s) echoed",
- copy.nb_echoed);
- }
- if (self.mode & FD_MODE_CLIENT) {
- ogs_trace(" Client:");
- ogs_trace(" %llu message(s) sent", copy.nb_sent);
- ogs_trace(" %llu error(s) received", copy.nb_errs);
- ogs_trace(" %llu answer(s) received", copy.nb_recv);
- ogs_trace(" fastest: %ld.%06ld sec.",
- copy.shortest / 1000000, copy.shortest % 1000000);
- ogs_trace(" slowest: %ld.%06ld sec.",
- copy.longest / 1000000, copy.longest % 1000000);
- ogs_trace(" Average: %ld.%06ld sec.",
- copy.avg / 1000000, copy.avg % 1000000);
- }
- ogs_trace("-------------------------------------");
- }
-
- return NULL; /* never called */
-}
-
diff --git a/lib/diameter/common/logger.h b/lib/diameter/common/logger.h
index e6d3d28e5d..9a1af6bde6 100644
--- a/lib/diameter/common/logger.h
+++ b/lib/diameter/common/logger.h
@@ -28,35 +28,11 @@
extern "C" {
#endif
-struct ogs_diam_logger_t {
-
-#define FD_MODE_SERVER 0x1
-#define FD_MODE_CLIENT 0x2
- int mode; /* default FD_MODE_SERVER | FD_MODE_CLIENT */
-
- int duration; /* default 10 */
- struct fd_stats {
- unsigned long long nb_echoed; /* server */
- unsigned long long nb_sent; /* client */
- unsigned long long nb_recv; /* client */
- unsigned long long nb_errs; /* client */
- unsigned long shortest; /* fastest answer, in microseconds */
- unsigned long longest; /* slowest answer, in microseconds */
- unsigned long avg; /* average answer time, in microseconds */
- } stats;
-
- pthread_mutex_t stats_lock;
-};
-
-int ogs_diam_logger_init(int mode);
+int ogs_diam_logger_init(void);
void ogs_diam_logger_final(void);
-struct ogs_diam_logger_t* ogs_diam_logger_self(void);
-
-int ogs_diam_logger_stats_start(void);
-
typedef void (*ogs_diam_logger_user_handler)(
- enum fd_hook_type type, struct msg *msg, struct peer_hdr *peer,
+ enum fd_hook_type type, struct msg *msg, struct peer_hdr *peer,
void *other, struct fd_hook_permsgdata *pmd, void *regdata);
void ogs_diam_logger_register(ogs_diam_logger_user_handler instance);
diff --git a/lib/diameter/common/meson.build b/lib/diameter/common/meson.build
index 38528db722..10925c9e25 100644
--- a/lib/diameter/common/meson.build
+++ b/lib/diameter/common/meson.build
@@ -20,12 +20,14 @@ libdiameter_common_sources = files('''
message.h
logger.h
+ stats.h
base.h
libapp_sip.c
dict.c
message.c
logger.c
+ stats.c
config.c
util.c
init.c
@@ -51,10 +53,10 @@ libdiameter_common = library('ogsdiameter-common',
version : libogslib_version,
c_args : libdiameter_common_cc_flags,
include_directories : [libdiameter_common_inc, libinc],
- dependencies : [libcore_dep, libfdcore_dep],
+ dependencies : [libcore_dep, libfdcore_dep, libapp_dep],
install : true)
libdiameter_common_dep = declare_dependency(
link_with : libdiameter_common,
include_directories : [libdiameter_common_inc, libinc],
- dependencies : [libcore_dep, libfdcore_dep])
+ dependencies : [libcore_dep, libfdcore_dep, libapp_dep])
diff --git a/lib/diameter/common/ogs-diameter-common.h b/lib/diameter/common/ogs-diameter-common.h
index b05bf0f5f0..69f61c95b7 100644
--- a/lib/diameter/common/ogs-diameter-common.h
+++ b/lib/diameter/common/ogs-diameter-common.h
@@ -44,6 +44,7 @@
#include "diameter/common/message.h"
#include "diameter/common/logger.h"
#include "diameter/common/base.h"
+#include "diameter/common/stats.h"
#undef OGS_DIAMETER_INSIDE
diff --git a/lib/diameter/common/stats.c b/lib/diameter/common/stats.c
new file mode 100644
index 0000000000..c4dbf7e4ff
--- /dev/null
+++ b/lib/diameter/common/stats.c
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2019 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "ogs-diameter-common.h"
+#include "ogs-app.h"
+
+static ogs_diam_stats_ctx_t self;
+
+static void diam_stats_timer_cb(void *data);
+
+int ogs_diam_stats_init(int mode, const ogs_diam_config_stats_t *config)
+{
+ ogs_assert(config);
+ memset(&self, 0, sizeof(ogs_diam_stats_ctx_t));
+
+ self.mode = mode;
+ self.poll.t_interval = config->interval_sec > 0 ?
+ ogs_time_from_sec(config->interval_sec) :
+ ogs_time_from_sec(60); /* default 60 seconds */
+ self.poll.timer = ogs_timer_add(ogs_app()->timer_mgr,
+ diam_stats_timer_cb, 0);
+ ogs_assert(self.poll.timer);
+ if (config->priv_stats_size > 0) {
+ self.priv_stats_size = config->priv_stats_size;
+ self.priv_stats = ogs_calloc(1, self.priv_stats_size);
+ self.priv_stats_copy = ogs_calloc(1, self.priv_stats_size);
+ ogs_assert(self.priv_stats);
+ }
+
+ CHECK_POSIX( pthread_mutex_init(&self.stats_lock, NULL) );
+
+ return 0;
+}
+
+void ogs_diam_stats_final()
+{
+ if (self.poll.timer)
+ ogs_timer_delete(self.poll.timer);
+ self.poll.timer = NULL;
+ if (self.priv_stats) {
+ ogs_free(self.priv_stats);
+ ogs_free(self.priv_stats_copy);
+ self.priv_stats = NULL;
+ self.priv_stats_copy = NULL;
+ self.priv_stats_size = 0;
+ }
+}
+
+ogs_diam_stats_ctx_t* ogs_diam_stats_self()
+{
+ return &self;
+}
+
+int ogs_diam_stats_start()
+{
+ /* Get the start time */
+ self.poll.t_start = ogs_get_monotonic_time();
+ /* Start the statistics timer */
+ self.poll.t_prev = self.poll.t_start;
+ ogs_timer_start(self.poll.timer, self.poll.t_interval);
+ ogs_info("Polling freeDiameter stats every %lld usecs", (long long)self.poll.t_interval);
+
+ return 0;
+}
+
+void ogs_diam_stats_update_cb_register(ogs_diam_stats_update_cb cb)
+{
+ self.update_cb = cb;
+}
+
+void ogs_diam_stats_update_cb_unregister(void)
+{
+ self.update_cb = NULL;
+}
+
+static void ogs_diam_stats_log(const ogs_diam_stats_t *stats, ogs_time_t elapsed)
+{
+ ogs_trace("------- fd statistics ---------");
+ ogs_trace(" Executing for: %llu.%06llu sec",
+ (unsigned long long)ogs_time_sec(elapsed),
+ (unsigned long long)ogs_time_usec(elapsed));
+
+ if (self.mode & FD_MODE_SERVER) {
+ ogs_trace(" Server: %llu message(s) echoed",
+ stats->nb_echoed);
+ }
+ if (self.mode & FD_MODE_CLIENT) {
+ ogs_trace(" Client:");
+ ogs_trace(" %llu message(s) sent", stats->nb_sent);
+ ogs_trace(" %llu error(s) received", stats->nb_errs);
+ ogs_trace(" %llu answer(s) received", stats->nb_recv);
+ ogs_trace(" fastest: %ld.%06ld sec.",
+ stats->shortest / 1000000, stats->shortest % 1000000);
+ ogs_trace(" slowest: %ld.%06ld sec.",
+ stats->longest / 1000000, stats->longest % 1000000);
+ ogs_trace(" Average: %ld.%06ld sec.",
+ stats->avg / 1000000, stats->avg % 1000000);
+ }
+ ogs_trace("-------------------------------------");
+}
+
+/* Function to display statistics periodically */
+static void diam_stats_timer_cb(void *data)
+{
+ ogs_time_t now, since_start, since_prev, next_run;
+ ogs_diam_stats_t copy;
+
+ /* Now, get the current stats */
+ CHECK_POSIX_DO( pthread_mutex_lock(&self.stats_lock), );
+ memcpy(©, &self.stats, sizeof(ogs_diam_stats_t));
+ if (self.priv_stats_copy)
+ memcpy(self.priv_stats_copy, self.priv_stats, self.priv_stats_size);
+ CHECK_POSIX_DO( pthread_mutex_unlock(&self.stats_lock), );
+
+ /* Get the current execution time */
+ now = ogs_get_monotonic_time();
+ since_start = now - self.poll.t_start;
+
+ /* Now, display everything */
+ ogs_diam_stats_log(©, since_start);
+
+ /* Trigger user callback: */
+ if (self.update_cb)
+ self.update_cb(©, self.priv_stats_copy);
+
+ /* Re-schedule timer: */
+ now = ogs_get_monotonic_time();
+ since_prev = now - self.poll.t_prev;
+ /* Avoid increasing drift: */
+ if (since_prev > self.poll.t_interval) {
+ if (since_prev - self.poll.t_interval >= self.poll.t_interval)
+ next_run = 1; /* 0 not accepted by ogs_timer_start() */
+ else
+ next_run = self.poll.t_interval - (since_prev - self.poll.t_interval);
+ } else {
+ next_run = self.poll.t_interval;
+ }
+ self.poll.t_prev = now;
+ ogs_timer_start(self.poll.timer, next_run);
+}
+
diff --git a/lib/diameter/common/stats.h b/lib/diameter/common/stats.h
new file mode 100644
index 0000000000..281b22ffc1
--- /dev/null
+++ b/lib/diameter/common/stats.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2019 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#if !defined(OGS_DIAMETER_INSIDE) && !defined(OGS_DIAMETER_COMPILATION)
+#error "This header cannot be included directly."
+#endif
+
+#ifndef OGS_DIAM_STATS_H
+#define OGS_DIAM_STATS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+
+typedef struct ogs_diam_stats_s {
+ unsigned long long nb_echoed; /* server */
+ unsigned long long nb_sent; /* client */
+ unsigned long long nb_recv; /* client */
+ unsigned long long nb_errs; /* client */
+ unsigned long shortest; /* fastest answer, in microseconds */
+ unsigned long longest; /* slowest answer, in microseconds */
+ unsigned long avg; /* average answer time, in microseconds */
+} ogs_diam_stats_t;
+
+typedef void (*ogs_diam_stats_update_cb)(const ogs_diam_stats_t *stats, const void *priv_stats);
+
+typedef struct ogs_diam_stats_ctx_s {
+
+#define FD_MODE_SERVER 0x1
+#define FD_MODE_CLIENT 0x2
+ int mode; /* default FD_MODE_SERVER | FD_MODE_CLIENT */
+
+ struct poll {
+ ogs_timer_t *timer;
+ ogs_time_t t_start; /* in usecs */
+ ogs_time_t t_prev; /* in usecs */
+ ogs_time_t t_interval; /* in usecs */
+ } poll;
+ ogs_diam_stats_t stats;
+ void *priv_stats; /* if !NULL, allocated struct of size "priv_stats_size" */
+ size_t priv_stats_size;
+ void *priv_stats_copy; /* buffer where priv_state are copied and passed to update_cb */
+ ogs_diam_stats_update_cb update_cb;
+
+ pthread_mutex_t stats_lock;
+} ogs_diam_stats_ctx_t;
+
+int ogs_diam_stats_init(int mode, const ogs_diam_config_stats_t *config);
+void ogs_diam_stats_final(void);
+
+ogs_diam_stats_ctx_t* ogs_diam_stats_self(void);
+#define OGS_DIAM_STATS_ADD(field, val) ogs_diam_stats_self()->stats.field += val
+#define OGS_DIAM_STATS_INC(field) OGS_DIAM_STATS_ADD(field, 1)
+
+#define OGS_DIAM_STATS_MTX(code) \
+ ogs_assert(pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0); \
+ { code } \
+ ogs_assert(pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
+
+
+int ogs_diam_stats_start(void);
+
+void ogs_diam_stats_update_cb_register(ogs_diam_stats_update_cb cb);
+void ogs_diam_stats_update_cb_unregister(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OGS_DIAM_STATS_H */
diff --git a/lib/diameter/common/util.c b/lib/diameter/common/util.c
index fa534c4b8c..94a7fb8eed 100644
--- a/lib/diameter/common/util.c
+++ b/lib/diameter/common/util.c
@@ -19,7 +19,7 @@
#include "ogs-diameter-common.h"
-bool ogs_diam_app_connected(uint32_t app_id)
+bool ogs_diam_is_relay_or_app_advertised(uint32_t app_id)
{
struct fd_list *li = NULL;
struct fd_app *found = NULL;
@@ -36,18 +36,23 @@ bool ogs_diam_app_connected(uint32_t app_id)
if (state == STATE_OPEN) {
ogs_debug("'%s' STATE is OPEN", p->info.pi_diamid);
- /* Check if the remote peer advertised the message's appli */
- fd_app_check(&p->info.runtime.pir_apps, app_id, &found);
-
- if (found) break;
+ if (p->info.runtime.pir_relay) {
+ ogs_debug("'%s' RELAY is enabled", p->info.pi_diamid);
+ CHECK_POSIX( pthread_rwlock_unlock(&fd_g_peers_rw) );
+ return true;
+ } else {
+ /* Check if the remote peer advertised the message's appli */
+ fd_app_check(&p->info.runtime.pir_apps, app_id, &found);
+ if (found) {
+ CHECK_POSIX( pthread_rwlock_unlock(&fd_g_peers_rw) );
+ return true;
+ }
+ }
} else {
ogs_debug("'%s' STATE[%d] is NOT open ", p->info.pi_diamid, state);
}
}
CHECK_POSIX( pthread_rwlock_unlock(&fd_g_peers_rw) );
- if (found)
- return true;
- else
- return false;
+ return false;
}
diff --git a/lib/diameter/gx/message.c b/lib/diameter/gx/message.c
index c333d74973..99d072958c 100644
--- a/lib/diameter/gx/message.c
+++ b/lib/diameter/gx/message.c
@@ -1,4 +1,4 @@
-/*
+/* Gx Interface, 3GPP TS 29.212 section 4
* Copyright (C) 2019 by Sukchan Lee
*
* This file is part of Open5GS.
diff --git a/lib/diameter/gx/message.h b/lib/diameter/gx/message.h
index ab4db94e65..68d1c07265 100644
--- a/lib/diameter/gx/message.h
+++ b/lib/diameter/gx/message.h
@@ -1,5 +1,5 @@
-/*
- * Copyright (C) 2019 by Sukchan Lee
+/* Gx Interface, 3GPP TS 29.212 section 4
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -43,6 +43,7 @@ extern "C" {
#define OGS_DIAM_GX_AVP_CODE_FLOW_STATUS (511)
#define OGS_DIAM_GX_AVP_CODE_QOS_INFORMATION (1016)
#define OGS_DIAM_GX_AVP_CODE_PRECEDENCE (1010)
+#define OGS_DIAM_GX_AVP_CODE_RATING_GROUP (432)
extern struct dict_object *ogs_diam_gx_application;
diff --git a/lib/diameter/gx/ogs-diameter-gx.h b/lib/diameter/gx/ogs-diameter-gx.h
index c7009df836..0f6fc49826 100644
--- a/lib/diameter/gx/ogs-diameter-gx.h
+++ b/lib/diameter/gx/ogs-diameter-gx.h
@@ -1,4 +1,4 @@
-/*
+/* Gx Interface, 3GPP TS 29.212 section 4
* Copyright (C) 2019 by Sukchan Lee
*
* This file is part of Open5GS.
diff --git a/lib/diameter/gy/message.c b/lib/diameter/gy/message.c
index 9b50c77cf7..4d282d397b 100644
--- a/lib/diameter/gy/message.c
+++ b/lib/diameter/gy/message.c
@@ -1,4 +1,4 @@
-/*
+/* Gy Interface, 3GPP TS 32.299
* Copyright (C) 2019 by Sukchan Lee
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH
*
diff --git a/lib/diameter/gy/message.h b/lib/diameter/gy/message.h
index 6b06d54948..5880ca59c6 100644
--- a/lib/diameter/gy/message.h
+++ b/lib/diameter/gy/message.h
@@ -1,4 +1,4 @@
-/*
+/* Gy Interface, 3GPP TS 32.299
* Copyright (C) 2019 by Sukchan Lee
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH
*
@@ -40,8 +40,10 @@ extern "C" {
#define OGS_DIAM_GY_AVP_CODE_CC_REQUEST_TYPE (416)
#define OGS_DIAM_GY_AVP_CODE_CC_TIME (420)
#define OGS_DIAM_GY_AVP_CODE_CC_TOTAL_OCTETS (421)
+#define OGS_DIAM_GY_AVP_CODE_FINAL_UNIT_INDICATION (430)
#define OGS_DIAM_GY_AVP_CODE_GRANTED_SERVICE_UNIT (431)
#define OGS_DIAM_GY_AVP_CODE_VALIDITY_TIME (448)
+#define OGS_DIAM_GY_AVP_CODE_FINAL_UNIT_ACTION (449)
#define OGS_DIAM_GY_AVP_CODE_MULTIPLE_SERVICES_CREDIT_CONTROL (456)
#define OGS_DIAM_GY_AVP_CODE_SUPPORTED_FEATURES (628)
#define OGS_DIAM_GY_AVP_CODE_TIME_QUOTA_THRESHOLD (868)
@@ -155,6 +157,14 @@ typedef struct ogs_diam_gy_service_unit_s {
uint64_t cc_output_octets;
} ogs_diam_gy_service_unit_t;
+typedef struct gs_diam_gy_final_unit_s {
+ bool cc_final_action_present;
+#define OGS_DIAM_GY_FINAL_UNIT_ACTION_TERMINATE 0
+#define OGS_DIAM_GY_FINAL_UNIT_ACTION_REDIRECT 1
+#define OGS_DIAM_GY_FINAL_UNIT_ACTION_REDIRECT_ACCESS 2
+ int32_t cc_final_action;
+} ogs_diam_gy_final_unit_t;
+
typedef struct ogs_diam_gy_message_s {
#define OGS_DIAM_GY_CMD_CODE_CREDIT_CONTROL 272
#define OGS_DIAM_GY_CMD_RE_AUTH 258
@@ -187,6 +197,9 @@ typedef struct ogs_diam_gy_message_s {
uint32_t time_threshold;
uint32_t volume_threshold;
ogs_diam_gy_service_unit_t granted;
+ ogs_diam_gy_final_unit_t final;
+ uint32_t result_code;
+ uint32_t *err;
} cca;
};
} ogs_diam_gy_message_t;
diff --git a/lib/diameter/gy/ogs-diameter-gy.h b/lib/diameter/gy/ogs-diameter-gy.h
index aba664cd67..28dc20505c 100644
--- a/lib/diameter/gy/ogs-diameter-gy.h
+++ b/lib/diameter/gy/ogs-diameter-gy.h
@@ -1,4 +1,4 @@
-/*
+/* Gy Interface, 3GPP TS 32.299
* Copyright (C) 2019 by Sukchan Lee
* Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH
*
diff --git a/lib/diameter/s6b/message.h b/lib/diameter/s6b/message.h
index 25e19e26df..1431951096 100644
--- a/lib/diameter/s6b/message.h
+++ b/lib/diameter/s6b/message.h
@@ -1,4 +1,4 @@
-/*
+/* 3GPP TS 29.273 section 9
* Copyright (C) 2019 by Sukchan Lee
*
* This file is part of Open5GS.
@@ -35,7 +35,8 @@ extern struct dict_object *ogs_diam_s6b_application;
extern struct dict_object *ogs_diam_s6b_mip6_feature_vector;
typedef struct ogs_diam_s6b_message_s {
-#define OGS_DIAM_S6B_CMD_SESSION_TERMINATION 1
+#define OGS_DIAM_S6B_CMD_AUTHENTICATION_AUTHORIZATION 1
+#define OGS_DIAM_S6B_CMD_SESSION_TERMINATION 2
uint16_t cmd_code;
uint32_t result_code;
uint32_t *err;
diff --git a/lib/gtp/context.c b/lib/gtp/context.c
index a1cf22dcc1..5c144b54fc 100644
--- a/lib/gtp/context.c
+++ b/lib/gtp/context.c
@@ -77,6 +77,7 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -88,7 +89,8 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, local)) {
+ if ((!strcmp(root_key, local)) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t local_iter;
ogs_yaml_iter_recurse(&root_iter, &local_iter);
while (ogs_yaml_iter_next(&local_iter)) {
@@ -198,6 +200,7 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote)
server_key);
}
+ /* Add address information */
addr = NULL;
for (i = 0; i < num; i++) {
rv = ogs_addaddrinfo(&addr,
@@ -205,17 +208,30 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote)
ogs_assert(rv == OGS_OK);
}
+ /* Add each address as a separate socknode */
if (addr) {
- if (ogs_global_conf()->parameter.
- no_ipv4 == 0)
- ogs_socknode_add(
- &self.gtpc_list, AF_INET, addr,
- is_option ? &option : NULL);
- if (ogs_global_conf()->parameter.
- no_ipv6 == 0)
- ogs_socknode_add(
- &self.gtpc_list6, AF_INET6, addr,
- is_option ? &option : NULL);
+ ogs_sockaddr_t *current = addr;
+ while (current) {
+ if (current->ogs_sa_family ==
+ AF_INET &&
+ ogs_global_conf()->
+ parameter.no_ipv4 == 0) {
+ ogs_socknode_add(&self.gtpc_list,
+ AF_INET, current,
+ is_option ?
+ &option : NULL);
+ }
+ if (current->ogs_sa_family ==
+ AF_INET6 &&
+ ogs_global_conf()->
+ parameter.no_ipv6 == 0) {
+ ogs_socknode_add(&self.gtpc_list6,
+ AF_INET6, current,
+ is_option ?
+ &option : NULL);
+ }
+ current = current->next;
+ }
ogs_freeaddrinfo(addr);
}
@@ -415,16 +431,28 @@ int ogs_gtp_context_parse_config(const char *local, const char *remote)
ogs_list_init(&list6);
if (addr) {
- if (ogs_global_conf()->parameter.
- no_ipv4 == 0)
- ogs_socknode_add(
- &list, AF_INET, addr,
- is_option ? &option : NULL);
- if (ogs_global_conf()->parameter.
- no_ipv6 == 0)
- ogs_socknode_add(
- &list6, AF_INET6, addr,
- is_option ? &option : NULL);
+ ogs_sockaddr_t *current = addr;
+ while (current) {
+ if (current->ogs_sa_family ==
+ AF_INET &&
+ ogs_global_conf()->
+ parameter.no_ipv4 == 0) {
+ ogs_socknode_add(&list,
+ AF_INET, current,
+ is_option ?
+ &option : NULL);
+ }
+ if (current->ogs_sa_family ==
+ AF_INET6 &&
+ ogs_global_conf()->
+ parameter.no_ipv6 == 0) {
+ ogs_socknode_add(&list6,
+ AF_INET6, current,
+ is_option ?
+ &option : NULL);
+ }
+ current = current->next;
+ }
ogs_freeaddrinfo(addr);
}
diff --git a/lib/gtp/path.h b/lib/gtp/path.h
index 6cb39ac77e..7aecf6f7f7 100644
--- a/lib/gtp/path.h
+++ b/lib/gtp/path.h
@@ -35,8 +35,6 @@ extern "C" {
ogs_gtp_self()->gtpc_sock6 = \
ogs_socknode_sock_first(&ogs_gtp_self()->gtpc_list6); \
\
- ogs_assert(ogs_gtp_self()->gtpc_sock || ogs_gtp_self()->gtpc_sock6); \
- \
if (ogs_gtp_self()->gtpc_sock) \
ogs_gtp_self()->gtpc_addr = \
&ogs_gtp_self()->gtpc_sock->local_addr; \
@@ -44,8 +42,6 @@ extern "C" {
ogs_gtp_self()->gtpc_addr6 = \
&ogs_gtp_self()->gtpc_sock6->local_addr; \
\
- ogs_assert(ogs_gtp_self()->gtpc_addr || ogs_gtp_self()->gtpc_addr6); \
- \
} while(0)
#define OGS_SETUP_GTPU_SERVER \
diff --git a/lib/gtp/util.c b/lib/gtp/util.c
index 3ec27d577f..f0defe73c1 100644
--- a/lib/gtp/util.c
+++ b/lib/gtp/util.c
@@ -65,7 +65,8 @@ int ogs_gtpu_parse_header(
* then the value of the Next Extension Header Type shall be 0. */
i = 0;
- while (*(ext_h = (((uint8_t *)gtp_h) + len - 1))) {
+ while (*(ext_h = (((uint8_t *)gtp_h) + len - 1)) &&
+ i < OGS_GTP2_NUM_OF_EXTENSION_HEADER) {
/*
* The length of the Extension header shall be defined
* in a variable length of 4 octets, i.e. m+1 = n*4 octets,
@@ -125,6 +126,11 @@ int ogs_gtpu_parse_header(
i++;
}
+ if (i >= OGS_GTP2_NUM_OF_EXTENSION_HEADER) {
+ ogs_error("The number of extension headers is limited to [%d]", i);
+ return -1;
+ }
+
} else if (gtp_h->flags & (OGS_GTPU_FLAGS_S|OGS_GTPU_FLAGS_PN)) {
/*
* If and only if one or more of these three flags are set,
@@ -174,3 +180,68 @@ uint16_t ogs_in_cksum(uint16_t *addr, int len)
return answer;
}
+
+void ogs_gtp2_sender_f_teid(
+ ogs_gtp2_sender_f_teid_t *sender_f_teid, ogs_gtp2_message_t *message)
+{
+ ogs_gtp2_tlv_f_teid_t *tlv_f_teid = NULL;
+ ogs_gtp2_f_teid_t *f_teid = NULL;
+
+ ogs_assert(sender_f_teid);
+ ogs_assert(message);
+
+ memset(sender_f_teid, 0, sizeof(*sender_f_teid));
+
+ switch (message->h.type) {
+ case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE:
+ tlv_f_teid = &message->create_session_request.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE:
+ tlv_f_teid = &message->create_session_response.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE:
+ tlv_f_teid = &message->modify_bearer_request.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE:
+ tlv_f_teid = &message->delete_session_request.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_MODIFY_BEARER_COMMAND_TYPE:
+ tlv_f_teid = &message->modify_bearer_command.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_DELETE_BEARER_COMMAND_TYPE:
+ tlv_f_teid = &message->delete_bearer_command.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE:
+ tlv_f_teid = &message->bearer_resource_command.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE:
+ tlv_f_teid = &message->create_indirect_data_forwarding_tunnel_request.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE:
+ tlv_f_teid = &message->create_indirect_data_forwarding_tunnel_response.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE:
+ tlv_f_teid = &message->downlink_data_notification.
+ sender_f_teid_for_control_plane;
+ break;
+ case OGS_GTP2_MODIFY_ACCESS_BEARERS_REQUEST_TYPE:
+ tlv_f_teid = &message->modify_access_bearers_request.
+ sender_f_teid_for_control_plane;
+ default:
+ break;
+ }
+
+ if (tlv_f_teid && tlv_f_teid->presence && (f_teid = tlv_f_teid->data)) {
+ sender_f_teid->teid_presence = true;
+ sender_f_teid->teid = be32toh(f_teid->teid);
+ }
+}
diff --git a/lib/gtp/util.h b/lib/gtp/util.h
index 7fabdd7c68..69339f0e88 100644
--- a/lib/gtp/util.h
+++ b/lib/gtp/util.h
@@ -32,6 +32,14 @@ int ogs_gtpu_parse_header(
ogs_gtp2_header_desc_t *header_desc, ogs_pkbuf_t *pkbuf);
uint16_t ogs_in_cksum(uint16_t *addr, int len);
+typedef struct ogs_gtp2_sender_f_teid_s {
+ bool teid_presence;
+ uint32_t teid;
+} ogs_gtp2_sender_f_teid_t;
+
+void ogs_gtp2_sender_f_teid(
+ ogs_gtp2_sender_f_teid_t *sender_f_teid, ogs_gtp2_message_t *message);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/gtp/v1/types.c b/lib/gtp/v1/types.c
index ba812d7a74..ce19821993 100644
--- a/lib/gtp/v1/types.c
+++ b/lib/gtp/v1/types.c
@@ -921,6 +921,12 @@ int ogs_gtp1_parse_pdp_context(
CHECK_SPACE_ERR(1 + *ptr);
rv = ogs_fqdn_parse(decoded->apn, (const char *)ptr + 1,
ogs_min(*ptr, sizeof(decoded->apn)));
+ /* Clang scan-build SA: Value stored is not used: add check for rv error. */
+ if (rv < 0) {
+ ogs_error("ogs_fqdn_parse() failed");
+ return OGS_ERROR;
+ }
+
ptr += 1 + *ptr;
CHECK_SPACE_ERR(2);
diff --git a/lib/gtp/v1/types.h b/lib/gtp/v1/types.h
index 157f81102a..ee9f0076e8 100644
--- a/lib/gtp/v1/types.h
+++ b/lib/gtp/v1/types.h
@@ -218,6 +218,18 @@ typedef struct ogs_gtp1_gsn_addr_s {
#define OGS_GTP1_APN_RESTRICTION_PRIVATE_1 3
#define OGS_GTP1_APN_RESTRICTION_PRIVATE_2 4
+/* Table 10.5.156/3GPP TS 24.008 Quality of service */
+/* Delivery order, octet 6 (see also 3GPP TS 23.107) */
+#define OGS_GTP1_DELIVERY_ORDER_SUBSCRIBED 0
+#define OGS_GTP1_DELIVERY_ORDER_YES 1
+#define OGS_GTP1_DELIVERY_ORDER_NO 2
+
+/* Delivery of erroneous SDUs, octet 6 (see also 3GPP TS 23.107) */
+#define OGS_GTP1_DELIVERY_ERR_SDU_SUBSCRIBED 0
+#define OGS_GTP1_DELIVERY_ERR_SDU_NO_DETECT 1
+#define OGS_GTP1_DELIVERY_ERR_SDU_YES 2
+#define OGS_GTP1_DELIVERY_ERR_SDU_NO 3
+
/* TS 29.060 7.7.34 Quality of Service (QoS) Profile */
#define OGS_GTP1_QOS_PROFILE_MAX_LEN 255
/* TS 24.008 10.5.6.5 Quality of service */
diff --git a/lib/gtp/v2/path.h b/lib/gtp/v2/path.h
index 332fcaf252..7b3aa6ddaf 100644
--- a/lib/gtp/v2/path.h
+++ b/lib/gtp/v2/path.h
@@ -32,7 +32,7 @@ typedef struct ogs_gtp_xact_s ogs_gtp_xact_t;
int ogs_gtp2_send_user_plane(
ogs_gtp_node_t *gnode,
- ogs_gtp2_header_desc_t *hdesc,
+ ogs_gtp2_header_desc_t *header_desc,
ogs_pkbuf_t *pkbuf);
ogs_pkbuf_t *ogs_gtp2_handle_echo_req(ogs_pkbuf_t *pkb);
diff --git a/lib/gtp/v2/types.c b/lib/gtp/v2/types.c
index d7a4de3338..ea8bee3d57 100644
--- a/lib/gtp/v2/types.c
+++ b/lib/gtp/v2/types.c
@@ -26,13 +26,15 @@
int16_t ogs_gtp2_parse_bearer_qos(
ogs_gtp2_bearer_qos_t *bearer_qos, ogs_tlv_octet_t *octet)
{
- ogs_gtp2_bearer_qos_t *source = (ogs_gtp2_bearer_qos_t *)octet->data;
+ ogs_gtp2_bearer_qos_t *source = NULL;
int16_t size = 0;
ogs_assert(bearer_qos);
ogs_assert(octet);
ogs_assert(octet->len == GTP2_BEARER_QOS_LEN);
+ source = (ogs_gtp2_bearer_qos_t *)octet->data;
+
memset(bearer_qos, 0, sizeof(ogs_gtp2_bearer_qos_t));
bearer_qos->pre_emption_capability = source->pre_emption_capability;
@@ -201,13 +203,15 @@ uint64_t ogs_gtp2_qos_to_kbps(uint8_t br, uint8_t extended, uint8_t extended2)
int16_t ogs_gtp2_parse_flow_qos(
ogs_gtp2_flow_qos_t *flow_qos, ogs_tlv_octet_t *octet)
{
- ogs_gtp2_flow_qos_t *source = (ogs_gtp2_flow_qos_t *)octet->data;
+ ogs_gtp2_flow_qos_t *source = NULL;
int16_t size = 0;
ogs_assert(flow_qos);
ogs_assert(octet);
ogs_assert(octet->len == GTP2_FLOW_QOS_LEN);
+ source = (ogs_gtp2_flow_qos_t *)octet->data;
+
memset(flow_qos, 0, sizeof(ogs_gtp2_flow_qos_t));
flow_qos->qci = source->qci;
@@ -439,7 +443,8 @@ int16_t ogs_gtp2_parse_tft(ogs_gtp2_tft_t *tft, ogs_tlv_octet_t *octet)
size += len;
}
- ogs_assert(size == octet->len);
+ if (size != octet->len)
+ ogs_error("Mismatch IE Length[%d] != Decoded[%d]", octet->len, size);
return size;
}
@@ -607,7 +612,6 @@ int16_t ogs_gtp2_build_tft(
}
}
-
octet->len = size;
return octet->len;
@@ -617,19 +621,25 @@ int16_t ogs_gtp2_build_tft(
/* 8.21 User Location Information (ULI) */
int16_t ogs_gtp2_parse_uli(ogs_gtp2_uli_t *uli, ogs_tlv_octet_t *octet)
{
- ogs_gtp2_uli_t *source = (ogs_gtp2_uli_t *)octet->data;
+ ogs_gtp2_uli_t *source = NULL;
int16_t size = 0;
ogs_assert(uli);
ogs_assert(octet);
+ source = (ogs_gtp2_uli_t *)octet->data;
+
memset(uli, 0, sizeof(ogs_gtp2_uli_t));
uli->flags = source->flags;
size++;
if (uli->flags.cgi) {
- ogs_assert(size + sizeof(uli->cgi) <= octet->len);
+ if (size + sizeof(uli->cgi) > octet->len) {
+ ogs_error("size[%d]+sizeof(uli->cgi)[%d] > IE Length[%d]",
+ size, (int)sizeof(uli->cgi), octet->len);
+ return 0;
+ }
memcpy(&uli->cgi,
(unsigned char *)octet->data + size, sizeof(uli->cgi));
uli->cgi.lac = be16toh(uli->cgi.lac);
@@ -637,7 +647,11 @@ int16_t ogs_gtp2_parse_uli(ogs_gtp2_uli_t *uli, ogs_tlv_octet_t *octet)
size += sizeof(uli->cgi);
}
if (uli->flags.sai) {
- ogs_assert(size + sizeof(uli->sai) <= octet->len);
+ if (size + sizeof(uli->sai) > octet->len) {
+ ogs_error("size[%d]+sizeof(uli->sai)[%d] > IE Length[%d]",
+ size, (int)sizeof(uli->sai), octet->len);
+ return 0;
+ }
memcpy(&uli->sai,
(unsigned char *)octet->data + size, sizeof(uli->sai));
uli->sai.lac = be16toh(uli->sai.lac);
@@ -645,7 +659,11 @@ int16_t ogs_gtp2_parse_uli(ogs_gtp2_uli_t *uli, ogs_tlv_octet_t *octet)
size += sizeof(uli->sai);
}
if (uli->flags.rai) {
- ogs_assert(size + sizeof(uli->rai) <= octet->len);
+ if (size + sizeof(uli->rai) > octet->len) {
+ ogs_error("size[%d]+sizeof(uli->lai)[%d] > IE Length[%d]",
+ size, (int)sizeof(uli->lai), octet->len);
+ return 0;
+ }
memcpy(&uli->rai,
(unsigned char *)octet->data + size, sizeof(uli->rai));
uli->rai.lac = be16toh(uli->rai.lac);
@@ -653,28 +671,44 @@ int16_t ogs_gtp2_parse_uli(ogs_gtp2_uli_t *uli, ogs_tlv_octet_t *octet)
size += sizeof(uli->rai);
}
if (uli->flags.tai) {
- ogs_assert(size + sizeof(uli->tai) <= octet->len);
+ if (size + sizeof(uli->tai) > octet->len) {
+ ogs_error("size[%d]+sizeof(uli->tai)[%d] > IE Length[%d]",
+ size, (int)sizeof(uli->tai), octet->len);
+ return 0;
+ }
memcpy(&uli->tai,
(unsigned char *)octet->data + size, sizeof(uli->tai));
uli->tai.tac = be16toh(uli->tai.tac);
size += sizeof(uli->tai);
}
if (uli->flags.e_cgi) {
- ogs_assert(size + sizeof(uli->e_cgi) <= octet->len);
+ if (size + sizeof(uli->e_cgi) > octet->len) {
+ ogs_error("size[%d]+sizeof(uli->e_cgi)[%d] > IE Length[%d]",
+ size, (int)sizeof(uli->e_cgi), octet->len);
+ return 0;
+ }
memcpy(&uli->e_cgi,
(unsigned char *)octet->data + size, sizeof(uli->e_cgi));
uli->e_cgi.cell_id = be32toh(uli->e_cgi.cell_id);
size += sizeof(uli->e_cgi);
}
if (uli->flags.lai) {
- ogs_assert(size + sizeof(uli->lai) <= octet->len);
+ if (size + sizeof(uli->lai) > octet->len) {
+ ogs_error("size[%d]+sizeof(uli->lai)[%d] > IE Length[%d]",
+ size, (int)sizeof(uli->lai), octet->len);
+ return 0;
+ }
memcpy(&uli->lai,
(unsigned char *)octet->data + size, sizeof(uli->lai));
uli->lai.lac = be16toh(uli->lai.lac);
size += sizeof(uli->lai);
}
if (uli->flags.enodeb_id) {
- ogs_assert(size + sizeof(uli->enodeb_id) <= octet->len);
+ if (size + sizeof(uli->enodeb_id) > octet->len) {
+ ogs_error("size[%d]+sizeof(uli->enodeb_id)[%d] > IE Length[%d]",
+ size, (int)sizeof(uli->enodeb_id), octet->len);
+ return 0;
+ }
memcpy(&uli->enodeb_id,
(unsigned char *)octet->data + size, sizeof(uli->enodeb_id));
uli->enodeb_id.enodeb_id = be16toh(uli->enodeb_id.enodeb_id);
@@ -684,7 +718,8 @@ int16_t ogs_gtp2_parse_uli(ogs_gtp2_uli_t *uli, ogs_tlv_octet_t *octet)
ogs_error("Extended Macro eNodeB ID in ULI not implemented! see 3GPP TS 29.274 8.21.8");
}
- ogs_assert(size == octet->len);
+ if (size != octet->len)
+ ogs_error("Mismatch IE Length[%d] != Decoded[%d]", octet->len, size);
return size;
}
@@ -767,3 +802,95 @@ int16_t ogs_gtp2_build_uli(
return octet->len;
}
+
+int16_t ogs_gtp2_parse_node_identifier(
+ ogs_gtp2_node_identifier_t *node_identifier, ogs_tlv_octet_t *octet)
+{
+ int16_t size = 0;
+
+ ogs_assert(node_identifier);
+ ogs_assert(octet);
+
+ memset(node_identifier, 0, sizeof(ogs_gtp2_node_identifier_t));
+
+ if (size + sizeof(node_identifier->name_len) > octet->len) {
+ ogs_error("Invalid TLV length [%d != %d]", size, octet->len);
+ ogs_log_hexdump(OGS_LOG_ERROR, octet->data, octet->len);
+ return size;
+ }
+ memcpy(&node_identifier->name_len,
+ (unsigned char *)octet->data + size,
+ sizeof(node_identifier->name_len));
+ size += sizeof(node_identifier->name_len);
+
+ if (size + node_identifier->name_len > octet->len) {
+ ogs_error("Invalid TLV length [%d != %d]", size, octet->len);
+ ogs_log_hexdump(OGS_LOG_ERROR, octet->data, octet->len);
+ return size;
+ }
+ node_identifier->name = (char *)octet->data + size;
+ size += node_identifier->name_len;
+
+ if (size + sizeof(node_identifier->realm_len) > octet->len) {
+ ogs_error("Invalid TLV length [%d != %d]", size, octet->len);
+ ogs_log_hexdump(OGS_LOG_ERROR, octet->data, octet->len);
+ return size;
+ }
+ memcpy(&node_identifier->realm_len,
+ (unsigned char *)octet->data + size,
+ sizeof(node_identifier->realm_len));
+ size += sizeof(node_identifier->realm_len);
+
+ if (size + node_identifier->realm_len > octet->len) {
+ ogs_error("Invalid TLV length [%d != %d]", size, octet->len);
+ ogs_log_hexdump(OGS_LOG_ERROR, octet->data, octet->len);
+ return size;
+ }
+ node_identifier->realm = (char *)octet->data + size;
+ size += node_identifier->realm_len;
+
+ if (size != octet->len) {
+ ogs_error("Invalid TLV length [%d != %d]", size, octet->len);
+ ogs_log_hexdump(OGS_LOG_ERROR, octet->data, octet->len);
+ }
+
+ return size;
+}
+int16_t ogs_gtp2_build_node_identifier(ogs_tlv_octet_t *octet,
+ ogs_gtp2_node_identifier_t *node_identifier, void *data, int data_len)
+{
+ int16_t size = 0;
+
+ ogs_assert(node_identifier);
+ ogs_assert(octet);
+ ogs_assert(data);
+ ogs_assert(data_len);
+
+ octet->data = data;
+
+ ogs_assert(size + sizeof(node_identifier->name_len) <= data_len);
+ memcpy((unsigned char *)octet->data + size,
+ &node_identifier->name_len,
+ sizeof(node_identifier->name_len));
+ size += sizeof(node_identifier->name_len);
+
+ ogs_assert(size + node_identifier->name_len <= data_len);
+ memcpy((unsigned char *)octet->data + size,
+ node_identifier->name, node_identifier->name_len);
+ size += node_identifier->name_len;
+
+ ogs_assert(size + sizeof(node_identifier->realm_len) <= data_len);
+ memcpy((unsigned char *)octet->data + size,
+ &node_identifier->realm_len,
+ sizeof(node_identifier->realm_len));
+ size += sizeof(node_identifier->realm_len);
+
+ ogs_assert(size + node_identifier->realm_len <= data_len);
+ memcpy((unsigned char *)octet->data + size,
+ node_identifier->realm, node_identifier->realm_len);
+ size += node_identifier->realm_len;
+
+ octet->len = size;
+
+ return octet->len;
+}
diff --git a/lib/gtp/v2/types.h b/lib/gtp/v2/types.h
index a1cc7d574f..486eddbfb0 100644
--- a/lib/gtp/v2/types.h
+++ b/lib/gtp/v2/types.h
@@ -571,6 +571,20 @@ ED5(uint8_t spare1:1;,
uint8_t pre_emption_capability:1;)
} __attribute__ ((packed)) ogs_gtp2_arp_t;
+/* 8.107 Node Identifier */
+#define OGS_GTP2_MAX_NODE_IDENTIFIER_LEN (1+OGS_MAX_FQDN_LEN)*2
+typedef struct ogs_gtp2_node_identifier_s {
+ uint8_t name_len;
+ char *name;
+ uint8_t realm_len;
+ char *realm;
+} ogs_gtp2_node_identifier_t;
+
+int16_t ogs_gtp2_parse_node_identifier(
+ ogs_gtp2_node_identifier_t *node_identifier, ogs_tlv_octet_t *octet);
+int16_t ogs_gtp2_build_node_identifier(ogs_tlv_octet_t *octet,
+ ogs_gtp2_node_identifier_t *node_identifier, void *data, int data_len);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/gtp/xact.c b/lib/gtp/xact.c
index ffec8621a3..68a3def036 100644
--- a/lib/gtp/xact.c
+++ b/lib/gtp/xact.c
@@ -41,6 +41,7 @@ static int ogs_gtp_xact_update_rx(ogs_gtp_xact_t *xact, uint8_t type);
static void response_timeout(void *data);
static void holding_timeout(void *data);
+static void peer_timeout(void *data);
int ogs_gtp_xact_init(void)
{
@@ -75,9 +76,8 @@ ogs_gtp_xact_t *ogs_gtp1_xact_local_create(ogs_gtp_node_t *gnode,
ogs_assert(gnode);
ogs_assert(hdesc);
- ogs_pool_alloc(&pool, &xact);
+ ogs_pool_id_calloc(&pool, &xact);
ogs_assert(xact);
- memset(xact, 0, sizeof *xact);
xact->index = ogs_pool_index(&pool, xact);
xact->gtp_version = 1;
@@ -92,14 +92,16 @@ ogs_gtp_xact_t *ogs_gtp1_xact_local_create(ogs_gtp_node_t *gnode,
* message (for which a response has been defined) is sent." */
if (hdesc->type != OGS_GTP1_RAN_INFORMATION_RELAY_TYPE) {
xact->tm_response = ogs_timer_add(
- ogs_app()->timer_mgr, response_timeout, xact);
+ ogs_app()->timer_mgr, response_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_response);
xact->response_rcount =
ogs_local_conf()->time.message.gtp.n3_response_rcount;
}
xact->tm_holding = ogs_timer_add(
- ogs_app()->timer_mgr, holding_timeout, xact);
+ ogs_app()->timer_mgr, holding_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_holding);
xact->holding_rcount = ogs_local_conf()->time.message.gtp.n3_holding_rcount;
@@ -131,9 +133,8 @@ ogs_gtp_xact_t *ogs_gtp_xact_local_create(ogs_gtp_node_t *gnode,
ogs_assert(gnode);
ogs_assert(hdesc);
- ogs_pool_alloc(&pool, &xact);
+ ogs_pool_id_calloc(&pool, &xact);
ogs_assert(xact);
- memset(xact, 0, sizeof *xact);
xact->index = ogs_pool_index(&pool, xact);
xact->gtp_version = 2;
@@ -150,16 +151,22 @@ ogs_gtp_xact_t *ogs_gtp_xact_local_create(ogs_gtp_node_t *gnode,
xact->data = data;
xact->tm_response = ogs_timer_add(
- ogs_app()->timer_mgr, response_timeout, xact);
+ ogs_app()->timer_mgr, response_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_response);
xact->response_rcount =
ogs_local_conf()->time.message.gtp.n3_response_rcount,
xact->tm_holding = ogs_timer_add(
- ogs_app()->timer_mgr, holding_timeout, xact);
+ ogs_app()->timer_mgr, holding_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_holding);
xact->holding_rcount = ogs_local_conf()->time.message.gtp.n3_holding_rcount,
+ xact->tm_peer = ogs_timer_add(ogs_app()->timer_mgr, peer_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
+ ogs_assert(xact->tm_peer);
+
ogs_list_add(&xact->gnode->local_list, xact);
rv = ogs_gtp_xact_update_tx(xact, hdesc, pkbuf);
@@ -184,9 +191,8 @@ static ogs_gtp_xact_t *ogs_gtp_xact_remote_create(ogs_gtp_node_t *gnode, uint8_t
ogs_assert(gnode);
- ogs_pool_alloc(&pool, &xact);
+ ogs_pool_id_calloc(&pool, &xact);
ogs_assert(xact);
- memset(xact, 0, sizeof *xact);
xact->index = ogs_pool_index(&pool, xact);
xact->gtp_version = gtp_version;
@@ -196,16 +202,22 @@ static ogs_gtp_xact_t *ogs_gtp_xact_remote_create(ogs_gtp_node_t *gnode, uint8_t
xact->gnode = gnode;
xact->tm_response = ogs_timer_add(
- ogs_app()->timer_mgr, response_timeout, xact);
+ ogs_app()->timer_mgr, response_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_response);
xact->response_rcount =
ogs_local_conf()->time.message.gtp.n3_response_rcount,
xact->tm_holding = ogs_timer_add(
- ogs_app()->timer_mgr, holding_timeout, xact);
+ ogs_app()->timer_mgr, holding_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_holding);
xact->holding_rcount = ogs_local_conf()->time.message.gtp.n3_holding_rcount,
+ xact->tm_peer = ogs_timer_add(ogs_app()->timer_mgr, peer_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
+ ogs_assert(xact->tm_peer);
+
ogs_list_add(&xact->gnode->remote_list, xact);
ogs_debug("[%d] REMOTE Create peer [%s]:%d",
@@ -216,9 +228,9 @@ static ogs_gtp_xact_t *ogs_gtp_xact_remote_create(ogs_gtp_node_t *gnode, uint8_t
return xact;
}
-ogs_gtp_xact_t *ogs_gtp_xact_cycle(ogs_gtp_xact_t *xact)
+ogs_gtp_xact_t *ogs_gtp_xact_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&pool, xact);
+ return ogs_pool_find_by_id(&pool, id);
}
void ogs_gtp_xact_delete_all(ogs_gtp_node_t *gnode)
@@ -735,9 +747,18 @@ int ogs_gtp_xact_commit(ogs_gtp_xact_t *xact)
static void response_timeout(void *data)
{
char buf[OGS_ADDRSTRLEN];
- ogs_gtp_xact_t *xact = data;
+ ogs_pool_id_t xact_id = OGS_INVALID_POOL_ID;
+ ogs_gtp_xact_t *xact = NULL;
- ogs_assert(xact);
+ ogs_assert(data);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
+
+ xact = ogs_gtp_xact_find_by_id(xact_id);
+ if (!xact) {
+ ogs_error("GTP Transaction has already been removed [%d]", xact_id);
+ return;;
+ }
ogs_assert(xact->gnode);
ogs_debug("[%d] %s Response Timeout "
@@ -778,9 +799,18 @@ static void response_timeout(void *data)
static void holding_timeout(void *data)
{
char buf[OGS_ADDRSTRLEN];
- ogs_gtp_xact_t *xact = data;
+ ogs_pool_id_t xact_id = OGS_INVALID_POOL_ID;
+ ogs_gtp_xact_t *xact = NULL;
- ogs_assert(xact);
+ ogs_assert(data);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
+
+ xact = ogs_gtp_xact_find_by_id(xact_id);
+ if (!xact) {
+ ogs_error("GTP Transaction has already been removed [%d]", xact_id);
+ return;;
+ }
ogs_assert(xact->gnode);
ogs_debug("[%d] %s Holding Timeout "
@@ -807,6 +837,35 @@ static void holding_timeout(void *data)
}
}
+static void peer_timeout(void *data)
+{
+ char buf[OGS_ADDRSTRLEN];
+ ogs_pool_id_t xact_id = OGS_INVALID_POOL_ID;
+ ogs_gtp_xact_t *xact = NULL;
+
+ ogs_assert(data);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
+
+ xact = ogs_gtp_xact_find_by_id(xact_id);
+ if (!xact) {
+ ogs_error("GTP Transaction has already been removed [%d]", xact_id);
+ return;;
+ }
+ ogs_assert(xact->gnode);
+
+ ogs_error("[%d] %s Peer Timeout "
+ "for step %d type %d peer [%s]:%d",
+ xact->xid,
+ xact->org == OGS_GTP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
+ xact->step, xact->seq[xact->step-1].type,
+ OGS_ADDR(&xact->gnode->addr, buf),
+ OGS_PORT(&xact->gnode->addr));
+
+ if (xact->peer_cb)
+ xact->peer_cb(xact, xact->peer_data);
+}
+
int ogs_gtp1_xact_receive(
ogs_gtp_node_t *gnode, ogs_gtp1_header_t *h, ogs_gtp_xact_t **xact)
{
@@ -1120,11 +1179,11 @@ void ogs_gtp_xact_associate(ogs_gtp_xact_t *xact1, ogs_gtp_xact_t *xact2)
ogs_assert(xact1);
ogs_assert(xact2);
- ogs_assert(xact1->assoc_xact == NULL);
- ogs_assert(xact2->assoc_xact == NULL);
+ ogs_assert(xact1->assoc_xact_id == OGS_INVALID_POOL_ID);
+ ogs_assert(xact2->assoc_xact_id == OGS_INVALID_POOL_ID);
- xact1->assoc_xact = xact2;
- xact2->assoc_xact = xact1;
+ xact1->assoc_xact_id = xact2->id;
+ xact2->assoc_xact_id = xact1->id;
}
void ogs_gtp_xact_deassociate(ogs_gtp_xact_t *xact1, ogs_gtp_xact_t *xact2)
@@ -1132,16 +1191,17 @@ void ogs_gtp_xact_deassociate(ogs_gtp_xact_t *xact1, ogs_gtp_xact_t *xact2)
ogs_assert(xact1);
ogs_assert(xact2);
- ogs_assert(xact1->assoc_xact != NULL);
- ogs_assert(xact2->assoc_xact != NULL);
+ ogs_assert(xact1->assoc_xact_id != OGS_INVALID_POOL_ID);
+ ogs_assert(xact2->assoc_xact_id != OGS_INVALID_POOL_ID);
- xact1->assoc_xact = NULL;
- xact2->assoc_xact = NULL;
+ xact1->assoc_xact_id = OGS_INVALID_POOL_ID;
+ xact2->assoc_xact_id = OGS_INVALID_POOL_ID;
}
static int ogs_gtp_xact_delete(ogs_gtp_xact_t *xact)
{
char buf[OGS_ADDRSTRLEN];
+ ogs_gtp_xact_t *assoc_xact = NULL;
ogs_assert(xact);
ogs_assert(xact->gnode);
@@ -1163,13 +1223,16 @@ static int ogs_gtp_xact_delete(ogs_gtp_xact_t *xact)
ogs_timer_delete(xact->tm_response);
if (xact->tm_holding)
ogs_timer_delete(xact->tm_holding);
+ if (xact->tm_peer)
+ ogs_timer_delete(xact->tm_peer);
- if (xact->assoc_xact)
- ogs_gtp_xact_deassociate(xact, xact->assoc_xact);
+ assoc_xact = ogs_gtp_xact_find_by_id(xact->assoc_xact_id);
+ if (assoc_xact)
+ ogs_gtp_xact_deassociate(xact, assoc_xact);
ogs_list_remove(xact->org == OGS_GTP_LOCAL_ORIGINATOR ?
&xact->gnode->local_list : &xact->gnode->remote_list, xact);
- ogs_pool_free(&pool, xact);
+ ogs_pool_id_free(&pool, xact);
return OGS_OK;
}
diff --git a/lib/gtp/xact.h b/lib/gtp/xact.h
index 8955629ccc..56f1056440 100644
--- a/lib/gtp/xact.h
+++ b/lib/gtp/xact.h
@@ -58,6 +58,28 @@ extern "C" {
*/
typedef struct ogs_gtp_xact_s {
ogs_lnode_t node; /**< A node of list */
+
+ ogs_pool_id_t id;
+
+ /*
+ * Issues #3240
+ *
+ * SMF->SGW-C->MME: First Update Bearer Request
+ * MME->UE: First Modify EPS bearer context request
+ * SMF->SGW-C->MME: Second Update Bearer Request
+ * MME->UE: Second Modify EPS bearer context request
+ * UE->MME: First Modify EPS bearer context accept
+ * MME->SGW-C->SMF: First Update Bearer Response
+ * UE->MME: Second Modify EPS bearer context accept
+ * MME->SGW-C->SMF: Second Update Bearer Response
+ *
+ * In the above situation, while NAS-ESM messages are exchanged
+ * between the MME and UE, the bearer may have multiple transactions
+ * that need to be managed. to_update_node is used as a node
+ * in the Transaction List related to Update Bearer Request/Response.
+ */
+ ogs_lnode_t to_update_node;
+
ogs_pool_id_t index;
uint8_t gtp_version; /**< 1 or 2 */
@@ -87,12 +109,18 @@ typedef struct ogs_gtp_xact_s {
ogs_timer_t *tm_holding; /**< Timer waiting for holding message */
uint8_t holding_rcount;
+ ogs_timer_t *tm_peer; /**< Timer waiting for peer message */
+ void (*peer_cb)(ogs_gtp_xact_t *, void *); /**< timer expiration handler */
+ void *peer_data; /**< Peer timeout data */
+
uint32_t local_teid; /**< Local TEID,
expected in reply from peer */
- void *assoc_xact; /**< Associated GTP transaction */
+ ogs_pool_id_t assoc_xact_id; /**< Associated GTP transaction ID */
void *pfcp_xact; /**< Associated PFCP transaction */
+ ogs_pool_id_t enb_ue_id;
+
#define OGS_GTP_MODIFY_TFT_UPDATE ((uint64_t)1<<0)
#define OGS_GTP_MODIFY_QOS_UPDATE ((uint64_t)1<<1)
uint64_t update_flags;
@@ -139,7 +167,7 @@ ogs_gtp_xact_t *ogs_gtp_xact_local_create(ogs_gtp_node_t *gnode,
ogs_gtp2_header_t *hdesc, ogs_pkbuf_t *pkbuf,
void (*cb)(ogs_gtp_xact_t *xact, void *data), void *data);
-ogs_gtp_xact_t *ogs_gtp_xact_cycle(ogs_gtp_xact_t *xact);
+ogs_gtp_xact_t *ogs_gtp_xact_find_by_id(ogs_pool_id_t id);
void ogs_gtp_xact_delete_all(ogs_gtp_node_t *gnode);
int ogs_gtp1_xact_update_tx(ogs_gtp_xact_t *xact,
diff --git a/lib/ipfw/dummynet.c b/lib/ipfw/dummynet.c
index f31367503f..6f56899d4c 100644
--- a/lib/ipfw/dummynet.c
+++ b/lib/ipfw/dummynet.c
@@ -853,6 +853,10 @@ ipfw_config_pipe(int ac, char **av)
fs->fs_nr = i + DN_MAX_ID;
fs->sched_nr = i;
break;
+ default:
+ /* Clang scan-build SA: NULL pointer dereference: missing "default" case leaves fs=NULL. */
+ ogs_error("unrecognised option %d", co.do_pipe);
+ break;
}
/* set to -1 those fields for which we want to reuse existing
* values from the kernel.
diff --git a/lib/ipfw/ipfw2.c b/lib/ipfw/ipfw2.c
index 9711b9c493..2675bf4512 100644
--- a/lib/ipfw/ipfw2.c
+++ b/lib/ipfw/ipfw2.c
@@ -764,6 +764,8 @@ print_flags_buffer(char *buf, size_t sz, struct _s_x *list, uint32_t set)
int
_substrcmp(const char *str1, const char* str2)
{
+ /* Clang scan-build SA: Argument with nonnull attribute passed null. */
+ if ((!str1) || (!str2)) return(1);
if (strncmp(str1, str2, strlen(str1)) != 0)
return 1;
@@ -2464,9 +2466,15 @@ list_dyn_range(struct cmdline_opts *co, struct format_opts *fo,
void
ipfw_list(int ac, char *av[], int show_counters)
{
+ /* Clang scan-build SA: Uninitialized argument value: false-positive report for the variable
+ * sz being uninitialized if ipfw_get_config() doesn't fill in sz and returns an error.
+ * ipfw_get_config() only returns success if sz is filled in. The SA is incorrectly creating
+ * a path where ipfw_get_config() doesn't fill in sz on an error but the SA is using
+ * error=0 (success) below to pass an unitialized sz to ipfw_show_config().
+ * Initialize sz=0 to make the SA happy. */
ipfw_cfg_lheader *cfg;
struct format_opts sfo;
- size_t sz;
+ size_t sz = 0;
int error;
int lac;
char **lav;
@@ -2535,6 +2543,12 @@ ipfw_show_config(struct cmdline_opts *co, struct format_opts *fo,
ipfw_obj_ctlv *ctlv, *tstate;
ipfw_obj_tlv *rbase;
+ /* Clang scan-build SA: NULL pointer dereference */
+ if (!cfg) {
+ ogs_error("!cfg");
+ return(EX_DATAERR);
+ }
+
/*
* Handle tablenames TLV first, if any
*/
@@ -2853,7 +2867,10 @@ fill_ip(ipfw_insn_ip *cmd, char *av, int cblen, struct tidx *tstate)
d[1] = htonl(~0 << (32 - masklen));
break;
case '{': /* no mask, assume /24 and put back the '{' */
- d[1] = htonl(~0 << (32 - 24));
+ /* Clang scan-build SA: Result of operation is garbage: The SA is whining that the result of the << is
+ * undefined because the left operand (~0) is negative. Fix by casting to unsigned. Why is this
+ * the only place the SA reports this issue? Same code a few lines above... */
+ d[1] = htonl((uint32_t)(~0) << (32 - 24));
*(--p) = md;
break;
@@ -4914,6 +4931,14 @@ ipfw_get_tracked_ifaces(ipfw_obj_lheader **polh)
}
sz = req.size;
+#ifndef __clang_analyzer__
+ /* Clang scan-build SA: Memory error - use of 0 allocated: This is a code bug or a false-positive that is
+ * not clear. do_get3(..., &req.opheader, &sz) calls getsockopt(..., optval=&req.opheader, optlen=&sz)
+ * which fills in optval & optlen on return. However opheader does not contain a size field and
+ * sz (optlen) is overwritten by the line above. req.size appears to still be 0 from the memset() at the
+ * top of the function. This looks like a bug but hard to believe because this is code from/for a BSD
+ * linux firewall package. */
+
if ((olh = calloc(1, sz)) == NULL)
return (ENOMEM);
@@ -4924,6 +4949,7 @@ ipfw_get_tracked_ifaces(ipfw_obj_lheader **polh)
}
*polh = olh;
+#endif
return (0);
}
@@ -4954,6 +4980,12 @@ ipfw_list_tifaces(void)
err(EX_OSERR, "Unable to request ipfw tracked interface list");
+ /* Clang scan-build SA: NULL pointer dereference: false-positive report that olh=NULL after
+ * ipfw_get_tracked_ifaces()=0 (2 functions up). This is incorrect because ipfw_get_tracked_ifaces()
+ * only returns 0 when it sets the olh pointer. But add an assert just in case and to stop the SA from
+ * reporting this. */
+ ogs_assert(olh);
+
qsort(olh + 1, olh->count, olh->objsize, ifinfo_cmp);
info = (ipfw_iface_info *)(olh + 1);
diff --git a/lib/ipfw/ogs-ipfw.c b/lib/ipfw/ogs-ipfw.c
index 0e0e2ced47..0140e94a97 100644
--- a/lib/ipfw/ogs-ipfw.c
+++ b/lib/ipfw/ogs-ipfw.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -395,117 +395,167 @@ void ogs_pf_content_from_ipfw_rule(
* Network support Local Address in TFTs.
*/
- if (rule->ipv4_src && (direction == OGS_FLOW_DOWNLINK_ONLY)) {
- content->component[j].type = OGS_PACKET_FILTER_IPV4_REMOTE_ADDRESS_TYPE;
- content->component[j].ipv4.addr = rule->ip.src.addr[0];
- content->component[j].ipv4.mask = rule->ip.src.mask[0];
- j++; len += 9;
- }
-
- if (rule->ipv4_src && (direction == OGS_FLOW_UPLINK_ONLY) &&
- !no_ipv4v6_local_addr_in_packet_filter) {
- content->component[j].type = OGS_PACKET_FILTER_IPV4_LOCAL_ADDRESS_TYPE;
- content->component[j].ipv4.addr = rule->ip.src.addr[0];
- content->component[j].ipv4.mask = rule->ip.src.mask[0];
- j++; len += 9;
- }
-
- if (rule->ipv4_dst && (direction == OGS_FLOW_DOWNLINK_ONLY) &&
- !no_ipv4v6_local_addr_in_packet_filter) {
- content->component[j].type = OGS_PACKET_FILTER_IPV4_LOCAL_ADDRESS_TYPE;
- content->component[j].ipv4.addr = rule->ip.dst.addr[0];
- content->component[j].ipv4.mask = rule->ip.dst.mask[0];
- j++; len += 9;
- }
-
- if (rule->ipv4_dst && (direction == OGS_FLOW_UPLINK_ONLY)) {
- content->component[j].type = OGS_PACKET_FILTER_IPV4_REMOTE_ADDRESS_TYPE;
- content->component[j].ipv4.addr = rule->ip.dst.addr[0];
- content->component[j].ipv4.mask = rule->ip.dst.mask[0];
- j++; len += 9;
- }
-
- if (rule->ipv6_src && (direction == OGS_FLOW_DOWNLINK_ONLY)) {
- if (no_ipv4v6_local_addr_in_packet_filter) {
- content->component[j].type =
- OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_TYPE;
- memcpy(content->component[j].ipv6_mask.addr,
- rule->ip.src.addr, sizeof rule->ip.src.addr);
- memcpy(content->component[j].ipv6_mask.mask,
- rule->ip.src.mask, sizeof rule->ip.src.mask);
- j++; len += 33;
- } else {
+ if (rule->ipv4_src) {
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
content->component[j].type =
- OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_PREFIX_LENGTH_TYPE;
- memcpy(content->component[j].ipv6.addr,
- rule->ip.src.addr, sizeof rule->ip.src.addr);
- content->component[j].ipv6.prefixlen =
- contigmask((uint8_t *)rule->ip.src.mask, 128);
- j++; len += 18;
+ OGS_PACKET_FILTER_IPV4_REMOTE_ADDRESS_TYPE;
+ content->component[j].ipv4.addr = rule->ip.src.addr[0];
+ content->component[j].ipv4.mask = rule->ip.src.mask[0];
+ j++; len += 9;
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
+ if (!no_ipv4v6_local_addr_in_packet_filter) {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV4_LOCAL_ADDRESS_TYPE;
+ content->component[j].ipv4.addr = rule->ip.src.addr[0];
+ content->component[j].ipv4.mask = rule->ip.src.mask[0];
+ j++; len += 9;
+ }
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
}
}
- if (rule->ipv6_src && (direction == OGS_FLOW_UPLINK_ONLY)) {
- if (!no_ipv4v6_local_addr_in_packet_filter) {
+ if (rule->ipv4_dst) {
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
+ if (!no_ipv4v6_local_addr_in_packet_filter) {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV4_LOCAL_ADDRESS_TYPE;
+ content->component[j].ipv4.addr = rule->ip.dst.addr[0];
+ content->component[j].ipv4.mask = rule->ip.dst.mask[0];
+ j++; len += 9;
+ }
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
content->component[j].type =
- OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_PREFIX_LENGTH_TYPE;
- memcpy(content->component[j].ipv6.addr,
- rule->ip.src.addr, sizeof rule->ip.src.addr);
- content->component[j].ipv6.prefixlen =
- contigmask((uint8_t *)rule->ip.src.mask, 128);
- j++; len += 18;
+ OGS_PACKET_FILTER_IPV4_REMOTE_ADDRESS_TYPE;
+ content->component[j].ipv4.addr = rule->ip.dst.addr[0];
+ content->component[j].ipv4.mask = rule->ip.dst.mask[0];
+ j++; len += 9;
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
}
}
- if (rule->ipv6_dst && (direction == OGS_FLOW_DOWNLINK_ONLY)) {
- if (!no_ipv4v6_local_addr_in_packet_filter) {
- content->component[j].type =
- OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_PREFIX_LENGTH_TYPE;
- memcpy(content->component[j].ipv6.addr,
- rule->ip.dst.addr, sizeof rule->ip.dst.addr);
- content->component[j].ipv6.prefixlen =
- contigmask((uint8_t *)rule->ip.dst.mask, 128);
- j++; len += 18;
+ if (rule->ipv6_src) {
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
+ if (no_ipv4v6_local_addr_in_packet_filter) {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_TYPE;
+ memcpy(content->component[j].ipv6_mask.addr,
+ rule->ip.src.addr, sizeof rule->ip.src.addr);
+ memcpy(content->component[j].ipv6_mask.mask,
+ rule->ip.src.mask, sizeof rule->ip.src.mask);
+ j++; len += 33;
+ } else {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_PREFIX_LENGTH_TYPE;
+ memcpy(content->component[j].ipv6.addr,
+ rule->ip.src.addr, sizeof rule->ip.src.addr);
+ content->component[j].ipv6.prefixlen =
+ contigmask((uint8_t *)rule->ip.src.mask, 128);
+ j++; len += 18;
+ }
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
+ if (!no_ipv4v6_local_addr_in_packet_filter) {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_PREFIX_LENGTH_TYPE;
+ memcpy(content->component[j].ipv6.addr,
+ rule->ip.src.addr, sizeof rule->ip.src.addr);
+ content->component[j].ipv6.prefixlen =
+ contigmask((uint8_t *)rule->ip.src.mask, 128);
+ j++; len += 18;
+ }
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
}
}
- if (rule->ipv6_dst && (direction == OGS_FLOW_UPLINK_ONLY)) {
- if (no_ipv4v6_local_addr_in_packet_filter) {
- content->component[j].type =
- OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_TYPE;
- memcpy(content->component[j].ipv6_mask.addr,
- rule->ip.dst.addr, sizeof rule->ip.dst.addr);
- memcpy(content->component[j].ipv6_mask.mask,
- rule->ip.dst.mask, sizeof rule->ip.dst.mask);
- j++; len += 33;
- } else {
- content->component[j].type =
- OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_PREFIX_LENGTH_TYPE;
- memcpy(content->component[j].ipv6.addr,
+ if (rule->ipv6_dst) {
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
+ if (!no_ipv4v6_local_addr_in_packet_filter) {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_PREFIX_LENGTH_TYPE;
+ memcpy(content->component[j].ipv6.addr,
rule->ip.dst.addr, sizeof rule->ip.dst.addr);
- content->component[j].ipv6.prefixlen =
- contigmask((uint8_t *)rule->ip.dst.mask, 128);
- j++; len += 18;
+ content->component[j].ipv6.prefixlen =
+ contigmask((uint8_t *)rule->ip.dst.mask, 128);
+ j++; len += 18;
+ }
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
+ if (no_ipv4v6_local_addr_in_packet_filter) {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_TYPE;
+ memcpy(content->component[j].ipv6_mask.addr,
+ rule->ip.dst.addr, sizeof rule->ip.dst.addr);
+ memcpy(content->component[j].ipv6_mask.mask,
+ rule->ip.dst.mask, sizeof rule->ip.dst.mask);
+ j++; len += 33;
+ } else {
+ content->component[j].type =
+ OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_PREFIX_LENGTH_TYPE;
+ memcpy(content->component[j].ipv6.addr,
+ rule->ip.dst.addr, sizeof rule->ip.dst.addr);
+ content->component[j].ipv6.prefixlen =
+ contigmask((uint8_t *)rule->ip.dst.mask, 128);
+ j++; len += 18;
+ }
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
}
}
if (rule->port.src.low) {
if (rule->port.src.low == rule->port.src.high) {
- if (direction == OGS_FLOW_DOWNLINK_ONLY)
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
content->component[j].type =
OGS_PACKET_FILTER_SINGLE_REMOTE_PORT_TYPE;
- else
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
content->component[j].type =
OGS_PACKET_FILTER_SINGLE_LOCAL_PORT_TYPE;
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
+ }
content->component[j].port.low = rule->port.src.low;
j++; len += 3;
} else {
- if (direction == OGS_FLOW_DOWNLINK_ONLY)
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
content->component[j].type =
OGS_PACKET_FILTER_REMOTE_PORT_RANGE_TYPE;
- else
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
content->component[j].type =
OGS_PACKET_FILTER_LOCAL_PORT_RANGE_TYPE;
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
+ }
content->component[j].port.low = rule->port.src.low;
content->component[j].port.high = rule->port.src.high;
j++; len += 5;
@@ -514,21 +564,37 @@ void ogs_pf_content_from_ipfw_rule(
if (rule->port.dst.low) {
if (rule->port.dst.low == rule->port.dst.high) {
- if (direction == OGS_FLOW_DOWNLINK_ONLY)
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
content->component[j].type =
OGS_PACKET_FILTER_SINGLE_LOCAL_PORT_TYPE;
- else
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
content->component[j].type =
OGS_PACKET_FILTER_SINGLE_REMOTE_PORT_TYPE;
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
+ }
content->component[j].port.low = rule->port.dst.low;
j++; len += 3;
} else {
- if (direction == OGS_FLOW_DOWNLINK_ONLY)
+ switch (direction) {
+ case OGS_FLOW_DOWNLINK_ONLY:
+ case OGS_FLOW_BIDIRECTIONAL:
content->component[j].type =
OGS_PACKET_FILTER_LOCAL_PORT_RANGE_TYPE;
- else
+ break;
+ case OGS_FLOW_UPLINK_ONLY:
content->component[j].type =
OGS_PACKET_FILTER_REMOTE_PORT_RANGE_TYPE;
+ break;
+ default:
+ ogs_fatal("Unsupported direction [%d]", direction);
+ ogs_assert_if_reached();
+ }
content->component[j].port.low = rule->port.dst.low;
content->component[j].port.high = rule->port.dst.high;
j++; len += 5;
@@ -538,4 +604,3 @@ void ogs_pf_content_from_ipfw_rule(
content->num_of_component = j;
content->length = len;
}
-
diff --git a/lib/ipfw/ogs-ipfw.h b/lib/ipfw/ogs-ipfw.h
index 775d8594bb..80367a0356 100644
--- a/lib/ipfw/ogs-ipfw.h
+++ b/lib/ipfw/ogs-ipfw.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -68,7 +68,7 @@ char *ogs_ipfw_encode_flow_description(ogs_ipfw_rule_t *ipfw_rule);
* Refer to lib/ipfw/ogs-ipfw.h
* Issue #338
*
- *
+ * >
* RX : permit out from to
* GX : permit out from to
* PFCP : permit out from to
diff --git a/lib/ipfw/tables.c b/lib/ipfw/tables.c
index e75b59ae41..87690e7a76 100644
--- a/lib/ipfw/tables.c
+++ b/lib/ipfw/tables.c
@@ -263,9 +263,16 @@ ipfw_table_handler(int ac, char *av[])
case TOK_INFO:
arg = (tcmd == TOK_DETAIL) ? (void *)1 : NULL;
if (is_all == 0) {
+ /* Clang scan-build SA: Uninitialized argument value: false-positive report for the contents
+ * of "i" being undefined if table_get_info() doesn't fill in "i" and returns an error.
+ * table_get_info() only returns success if "i" is filled in. The SA is incorrectly creating
+ * a path where table_get_info() doesn't fill in "i" on an error but the SA is using
+ * error=0 (success) below to pass an uninitialized "i" to table_show_info(). */
+#ifndef __clang_analyzer__
if ((error = table_get_info(&oh, &i)) != 0)
err(EX_OSERR, "failed to request table info");
table_show_info(&i, arg);
+#endif
} else {
error = tables_foreach(table_show_info, arg, 1);
if (error != 0)
@@ -275,9 +282,16 @@ ipfw_table_handler(int ac, char *av[])
case TOK_LIST:
if (is_all == 0) {
ipfw_xtable_info i;
+ /* Clang scan-build SA: Result of operation is garbage: false-positive report for the contents
+ * of "i" being undefined if table_get_info() doesn't fill in "i" and returns an error.
+ * table_get_info() only returns success if "i" is filled in. The SA is incorrectly creating
+ * a path where table_get_info() doesn't fill in "i" on an error but the SA is using
+ * error=0 (success) below to pass an uninitialized "i" to table_show_one(). */
+#ifndef __clang_analyzer__
if ((error = table_get_info(&oh, &i)) != 0)
err(EX_OSERR, "failed to request table info");
table_show_one(&i, NULL);
+#endif
} else {
error = tables_foreach(table_show_one, NULL, 1);
if (error != 0)
@@ -1588,6 +1602,14 @@ tables_foreach(table_cb_t *f, void *arg, int sort)
static int
table_do_get_list(ipfw_xtable_info *i, ipfw_obj_header **poh)
{
+ /* Clang scan-build SA: Memory error - use of 0 allocated: This is a code bug or a false-positive that
+ * is not clear. The SA is taking a path that assumes i->size=0 on 1st pass thru the for loop &
+ * therefore the "sz < i->size" check fails and sz=0 remains from the initialization at the top of
+ * the function for the calloc() call. "i->size=0" would be from tables_foreach(). In that
+ * function ipfw_xtable_info is contained within a larger buffer that is init'ed by calloc(). It
+ * is not obvious how ipfw_xtable_info->size is getting set to a >0 value before getting passed
+ * to this function. */
+#ifndef __clang_analyzer__
ipfw_obj_header *oh;
size_t sz;
int c;
@@ -1612,6 +1634,7 @@ table_do_get_list(ipfw_xtable_info *i, ipfw_obj_header **poh)
break;
}
free(oh);
+#endif
return (errno);
}
@@ -1626,6 +1649,12 @@ table_show_list(ipfw_obj_header *oh, int need_header)
uint32_t count;
ipfw_xtable_info *i;
+ /* Clang scan-build SA: NULL pointer dereference: oh=NULL. */
+ if (!oh) {
+ ogs_error("Unable to print table list, oh=NULL");
+ return;
+ }
+
i = (ipfw_xtable_info *)(oh + 1);
tent = (ipfw_obj_tentry *)(i + 1);
@@ -1829,14 +1858,17 @@ table_do_get_vlist(ipfw_obj_lheader **polh)
void
ipfw_list_ta(int ac, char *av[])
{
- ipfw_obj_lheader *olh;
+ /* Clang scan-build SA: Result of operation is garbage: initialize olh=NULL and check for NULL before use. */
+ ipfw_obj_lheader *olh = NULL;
ipfw_ta_info *info;
int error, i;
const char *atype;
error = table_do_get_algolist(&olh);
- if (error != 0)
- err(EX_OSERR, "Unable to request algorithm list");
+ if ((error != 0) || (!olh)) {
+ ogs_error("Unable to request algorithm list");
+ return;
+ }
info = (ipfw_ta_info *)(olh + 1);
for (i = 0; i < olh->count; i++) {
@@ -1890,15 +1922,18 @@ compare_values(const void *_a, const void *_b)
void
ipfw_list_values(int ac, char *av[])
{
- ipfw_obj_lheader *olh;
+ /* Clang scan-build SA: Result of operation is garbage: initialize olh=NULL and check for NULL before use. */
+ ipfw_obj_lheader *olh = NULL;
struct _table_value *v;
int error, i;
uint32_t vmask;
char buf[128];
error = table_do_get_vlist(&olh);
- if (error != 0)
- err(EX_OSERR, "Unable to request value list");
+ if ((error != 0) || (!olh)) {
+ ogs_error("Unable to request value list");
+ return;
+ }
vmask = 0x7FFFFFFF; /* Similar to IPFW_VTYPE_LEGACY */
diff --git a/lib/metrics/context.c b/lib/metrics/context.c
index 158f8a1d03..5f5d14e01d 100644
--- a/lib/metrics/context.c
+++ b/lib/metrics/context.c
@@ -77,6 +77,7 @@ int ogs_metrics_context_parse_config(const char *local)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -88,7 +89,8 @@ int ogs_metrics_context_parse_config(const char *local)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (local && !strcmp(root_key, local)) {
+ if (local && !strcmp(root_key, local) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t local_iter;
ogs_yaml_iter_recurse(&root_iter, &local_iter);
while (ogs_yaml_iter_next(&local_iter)) {
diff --git a/lib/nas/5gs/conv.c b/lib/nas/5gs/conv.c
index 8185393d17..f9d9057f98 100644
--- a/lib/nas/5gs/conv.c
+++ b/lib/nas/5gs/conv.c
@@ -110,6 +110,7 @@ char *ogs_nas_5gs_suci_from_mobile_identity(
ogs_plmn_id_mcc(&plmn_id), ogs_plmn_id_mnc(&plmn_id));
if (!suci) {
ogs_error("ogs_mstrcatf() failed");
+ ogs_free(suci);
return NULL;
}
} else {
@@ -117,6 +118,7 @@ char *ogs_nas_5gs_suci_from_mobile_identity(
ogs_plmn_id_mcc(&plmn_id), ogs_plmn_id_mnc(&plmn_id));
if (!suci) {
ogs_error("ogs_mstrcatf() failed");
+ ogs_free(suci);
return NULL;
}
}
@@ -152,9 +154,14 @@ char *ogs_nas_5gs_suci_from_mobile_identity(
scheme_output =
(uint8_t *)mobile_identity->buffer +
OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE;
+ if (mobile_identity->length < OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE) {
+ ogs_error("The length of Mobile Identity(%d) is less then the min(%d)",
+ mobile_identity->length, OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE);
+ ogs_free(suci);
+ return NULL;
+ }
scheme_output_size =
mobile_identity->length - OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE;
- ogs_assert(scheme_output_size);
scheme_output_string_or_bcd = ogs_calloc(1, scheme_output_size*2+1);
ogs_assert(scheme_output_string_or_bcd);
diff --git a/lib/nas/5gs/decoder.c b/lib/nas/5gs/decoder.c
index c03e529eca..096dd5d73a 100644
--- a/lib/nas/5gs/decoder.c
+++ b/lib/nas/5gs/decoder.c
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.2.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-04 20:50:00.889117 by acetcom
+ * Created on: 2024-01-21 18:47:47.827076 by acetcom
* from 24501-h90.docx
******************************************************************************/
@@ -4449,15 +4449,14 @@ int ogs_nas_5gmm_decode(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf)
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_5gs_message_t));
size = sizeof(ogs_nas_5gmm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_5gs_message_t));
memcpy(&message->gmm.h, pkbuf->data - size, size);
decoded += size;
@@ -4710,15 +4709,14 @@ int ogs_nas_5gsm_decode(ogs_nas_5gs_message_t *message, ogs_pkbuf_t *pkbuf)
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_5gs_message_t));
size = sizeof(ogs_nas_5gsm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_5gs_message_t));
memcpy(&message->gsm.h, pkbuf->data - size, size);
decoded += size;
diff --git a/lib/nas/5gs/encoder.c b/lib/nas/5gs/encoder.c
index 000ca71367..4383c35924 100644
--- a/lib/nas/5gs/encoder.c
+++ b/lib/nas/5gs/encoder.c
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.2.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-04 20:50:00.898995 by acetcom
+ * Created on: 2024-01-21 18:47:47.837341 by acetcom
* from 24501-h90.docx
******************************************************************************/
diff --git a/lib/nas/5gs/ies.c b/lib/nas/5gs/ies.c
index ce04d556f7..5c39a9eff3 100644
--- a/lib/nas/5gs/ies.c
+++ b/lib/nas/5gs/ies.c
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.2.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-04 20:50:00.874596 by acetcom
+ * Created on: 2024-12-11 21:13:08.097860 by acetcom
* from 24501-h90.docx
******************************************************************************/
@@ -48,7 +48,14 @@ int ogs_nas_5gs_encode_optional_type(ogs_pkbuf_t *pkbuf, uint8_t type)
int ogs_nas_5gs_decode_additional_information(ogs_nas_additional_information_t *additional_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_additional_information_t *source = (ogs_nas_additional_information_t *)pkbuf->data;
+ ogs_nas_additional_information_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_additional_information_t *)pkbuf->data;
additional_information->length = source->length;
size = additional_information->length + sizeof(additional_information->length);
@@ -87,7 +94,14 @@ int ogs_nas_5gs_encode_additional_information(ogs_pkbuf_t *pkbuf, ogs_nas_additi
int ogs_nas_5gs_decode_service_level_aa_container(ogs_nas_service_level_aa_container_t *service_level_aa_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_service_level_aa_container_t *source = (ogs_nas_service_level_aa_container_t *)pkbuf->data;
+ ogs_nas_service_level_aa_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_service_level_aa_container_t *)pkbuf->data;
service_level_aa_container->length = be16toh(source->length);
size = service_level_aa_container->length + sizeof(service_level_aa_container->length);
@@ -167,7 +181,14 @@ int ogs_nas_5gs_encode_access_type(ogs_pkbuf_t *pkbuf, ogs_nas_access_type_t *ac
int ogs_nas_5gs_decode_dnn(ogs_nas_dnn_t *dnn, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_dnn_t *source = (ogs_nas_dnn_t *)pkbuf->data;
+ ogs_nas_dnn_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_dnn_t *)pkbuf->data;
dnn->length = source->length;
size = dnn->length + sizeof(dnn->length);
@@ -219,7 +240,14 @@ int ogs_nas_5gs_encode_dnn(ogs_pkbuf_t *pkbuf, ogs_nas_dnn_t *dnn)
int ogs_nas_5gs_decode_eap_message(ogs_nas_eap_message_t *eap_message, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eap_message_t *source = (ogs_nas_eap_message_t *)pkbuf->data;
+ ogs_nas_eap_message_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eap_message_t *)pkbuf->data;
eap_message->length = be16toh(source->length);
size = eap_message->length + sizeof(eap_message->length);
@@ -299,7 +327,14 @@ int ogs_nas_5gs_encode_gprs_timer(ogs_pkbuf_t *pkbuf, ogs_nas_gprs_timer_t *gprs
int ogs_nas_5gs_decode_gprs_timer_2(ogs_nas_gprs_timer_2_t *gprs_timer_2, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_gprs_timer_2_t *source = (ogs_nas_gprs_timer_2_t *)pkbuf->data;
+ ogs_nas_gprs_timer_2_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_gprs_timer_2_t *)pkbuf->data;
gprs_timer_2->length = source->length;
size = gprs_timer_2->length + sizeof(gprs_timer_2->length);
@@ -338,7 +373,14 @@ int ogs_nas_5gs_encode_gprs_timer_2(ogs_pkbuf_t *pkbuf, ogs_nas_gprs_timer_2_t *
int ogs_nas_5gs_decode_gprs_timer_3(ogs_nas_gprs_timer_3_t *gprs_timer_3, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_gprs_timer_3_t *source = (ogs_nas_gprs_timer_3_t *)pkbuf->data;
+ ogs_nas_gprs_timer_3_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_gprs_timer_3_t *)pkbuf->data;
gprs_timer_3->length = source->length;
size = gprs_timer_3->length + sizeof(gprs_timer_3->length);
@@ -377,7 +419,14 @@ int ogs_nas_5gs_encode_gprs_timer_3(ogs_pkbuf_t *pkbuf, ogs_nas_gprs_timer_3_t *
int ogs_nas_5gs_decode_s_nssai(ogs_nas_s_nssai_t *s_nssai, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_s_nssai_t *source = (ogs_nas_s_nssai_t *)pkbuf->data;
+ ogs_nas_s_nssai_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_s_nssai_t *)pkbuf->data;
s_nssai->length = source->length;
size = s_nssai->length + sizeof(s_nssai->length);
@@ -416,7 +465,14 @@ int ogs_nas_5gs_encode_s_nssai(ogs_pkbuf_t *pkbuf, ogs_nas_s_nssai_t *s_nssai)
int ogs_nas_5gs_decode_5gmm_capability(ogs_nas_5gmm_capability_t *gmm_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gmm_capability_t *source = (ogs_nas_5gmm_capability_t *)pkbuf->data;
+ ogs_nas_5gmm_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gmm_capability_t *)pkbuf->data;
gmm_capability->length = source->length;
size = gmm_capability->length + sizeof(gmm_capability->length);
@@ -455,7 +511,14 @@ int ogs_nas_5gs_encode_5gmm_capability(ogs_pkbuf_t *pkbuf, ogs_nas_5gmm_capabili
int ogs_nas_5gs_decode_abba(ogs_nas_abba_t *abba, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_abba_t *source = (ogs_nas_abba_t *)pkbuf->data;
+ ogs_nas_abba_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_abba_t *)pkbuf->data;
abba->length = source->length;
size = abba->length + sizeof(abba->length);
@@ -494,7 +557,14 @@ int ogs_nas_5gs_encode_abba(ogs_pkbuf_t *pkbuf, ogs_nas_abba_t *abba)
int ogs_nas_5gs_decode_additional_5g_security_information(ogs_nas_additional_5g_security_information_t *additional_security_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_additional_5g_security_information_t *source = (ogs_nas_additional_5g_security_information_t *)pkbuf->data;
+ ogs_nas_additional_5g_security_information_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_additional_5g_security_information_t *)pkbuf->data;
additional_security_information->length = source->length;
size = additional_security_information->length + sizeof(additional_security_information->length);
@@ -533,7 +603,14 @@ int ogs_nas_5gs_encode_additional_5g_security_information(ogs_pkbuf_t *pkbuf, og
int ogs_nas_5gs_decode_additional_information_requested(ogs_nas_additional_information_requested_t *additional_information_requested, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_additional_information_requested_t *source = (ogs_nas_additional_information_requested_t *)pkbuf->data;
+ ogs_nas_additional_information_requested_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_additional_information_requested_t *)pkbuf->data;
additional_information_requested->length = source->length;
size = additional_information_requested->length + sizeof(additional_information_requested->length);
@@ -572,7 +649,14 @@ int ogs_nas_5gs_encode_additional_information_requested(ogs_pkbuf_t *pkbuf, ogs_
int ogs_nas_5gs_decode_allowed_pdu_session_status(ogs_nas_allowed_pdu_session_status_t *allowed_pdu_session_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_allowed_pdu_session_status_t *source = (ogs_nas_allowed_pdu_session_status_t *)pkbuf->data;
+ ogs_nas_allowed_pdu_session_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_allowed_pdu_session_status_t *)pkbuf->data;
allowed_pdu_session_status->length = source->length;
size = allowed_pdu_session_status->length + sizeof(allowed_pdu_session_status->length);
@@ -615,7 +699,14 @@ int ogs_nas_5gs_encode_allowed_pdu_session_status(ogs_pkbuf_t *pkbuf, ogs_nas_al
int ogs_nas_5gs_decode_authentication_failure_parameter(ogs_nas_authentication_failure_parameter_t *authentication_failure_parameter, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_authentication_failure_parameter_t *source = (ogs_nas_authentication_failure_parameter_t *)pkbuf->data;
+ ogs_nas_authentication_failure_parameter_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_authentication_failure_parameter_t *)pkbuf->data;
authentication_failure_parameter->length = source->length;
size = authentication_failure_parameter->length + sizeof(authentication_failure_parameter->length);
@@ -654,7 +745,14 @@ int ogs_nas_5gs_encode_authentication_failure_parameter(ogs_pkbuf_t *pkbuf, ogs_
int ogs_nas_5gs_decode_authentication_parameter_autn(ogs_nas_authentication_parameter_autn_t *authentication_parameter_autn, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_authentication_parameter_autn_t *source = (ogs_nas_authentication_parameter_autn_t *)pkbuf->data;
+ ogs_nas_authentication_parameter_autn_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_authentication_parameter_autn_t *)pkbuf->data;
authentication_parameter_autn->length = source->length;
size = authentication_parameter_autn->length + sizeof(authentication_parameter_autn->length);
@@ -727,7 +825,14 @@ int ogs_nas_5gs_encode_authentication_parameter_rand(ogs_pkbuf_t *pkbuf, ogs_nas
int ogs_nas_5gs_decode_authentication_response_parameter(ogs_nas_authentication_response_parameter_t *authentication_response_parameter, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_authentication_response_parameter_t *source = (ogs_nas_authentication_response_parameter_t *)pkbuf->data;
+ ogs_nas_authentication_response_parameter_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_authentication_response_parameter_t *)pkbuf->data;
authentication_response_parameter->length = source->length;
size = authentication_response_parameter->length + sizeof(authentication_response_parameter->length);
@@ -798,7 +903,14 @@ int ogs_nas_5gs_encode_configuration_update_indication(ogs_pkbuf_t *pkbuf, ogs_n
int ogs_nas_5gs_decode_cag_information_list(ogs_nas_cag_information_list_t *cag_information_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_cag_information_list_t *source = (ogs_nas_cag_information_list_t *)pkbuf->data;
+ ogs_nas_cag_information_list_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_cag_information_list_t *)pkbuf->data;
cag_information_list->length = be16toh(source->length);
size = cag_information_list->length + sizeof(cag_information_list->length);
@@ -844,7 +956,14 @@ int ogs_nas_5gs_encode_cag_information_list(ogs_pkbuf_t *pkbuf, ogs_nas_cag_info
int ogs_nas_5gs_decode_ciphering_key_data(ogs_nas_ciphering_key_data_t *ciphering_key_data, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ciphering_key_data_t *source = (ogs_nas_ciphering_key_data_t *)pkbuf->data;
+ ogs_nas_ciphering_key_data_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ciphering_key_data_t *)pkbuf->data;
ciphering_key_data->length = be16toh(source->length);
size = ciphering_key_data->length + sizeof(ciphering_key_data->length);
@@ -890,7 +1009,14 @@ int ogs_nas_5gs_encode_ciphering_key_data(ogs_pkbuf_t *pkbuf, ogs_nas_ciphering_
int ogs_nas_5gs_decode_daylight_saving_time(ogs_nas_daylight_saving_time_t *daylight_saving_time, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_daylight_saving_time_t *source = (ogs_nas_daylight_saving_time_t *)pkbuf->data;
+ ogs_nas_daylight_saving_time_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_daylight_saving_time_t *)pkbuf->data;
daylight_saving_time->length = source->length;
size = daylight_saving_time->length + sizeof(daylight_saving_time->length);
@@ -997,7 +1123,14 @@ int ogs_nas_5gs_encode_de_registration_type(ogs_pkbuf_t *pkbuf, ogs_nas_de_regis
int ogs_nas_5gs_decode_emergency_number_list(ogs_nas_emergency_number_list_t *emergency_number_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_emergency_number_list_t *source = (ogs_nas_emergency_number_list_t *)pkbuf->data;
+ ogs_nas_emergency_number_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_emergency_number_list_t *)pkbuf->data;
emergency_number_list->length = source->length;
size = emergency_number_list->length + sizeof(emergency_number_list->length);
@@ -1036,7 +1169,14 @@ int ogs_nas_5gs_encode_emergency_number_list(ogs_pkbuf_t *pkbuf, ogs_nas_emergen
int ogs_nas_5gs_decode_eps_bearer_context_status(ogs_nas_eps_bearer_context_status_t *eps_bearer_context_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_bearer_context_status_t *source = (ogs_nas_eps_bearer_context_status_t *)pkbuf->data;
+ ogs_nas_eps_bearer_context_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_bearer_context_status_t *)pkbuf->data;
eps_bearer_context_status->length = source->length;
size = eps_bearer_context_status->length + sizeof(eps_bearer_context_status->length);
@@ -1075,7 +1215,14 @@ int ogs_nas_5gs_encode_eps_bearer_context_status(ogs_pkbuf_t *pkbuf, ogs_nas_eps
int ogs_nas_5gs_decode_eps_nas_message_container(ogs_nas_eps_nas_message_container_t *eps_nas_message_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_nas_message_container_t *source = (ogs_nas_eps_nas_message_container_t *)pkbuf->data;
+ ogs_nas_eps_nas_message_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_nas_message_container_t *)pkbuf->data;
eps_nas_message_container->length = be16toh(source->length);
size = eps_nas_message_container->length + sizeof(eps_nas_message_container->length);
@@ -1155,7 +1302,14 @@ int ogs_nas_5gs_encode_eps_nas_security_algorithms(ogs_pkbuf_t *pkbuf, ogs_nas_e
int ogs_nas_5gs_decode_extended_emergency_number_list(ogs_nas_extended_emergency_number_list_t *extended_emergency_number_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_emergency_number_list_t *source = (ogs_nas_extended_emergency_number_list_t *)pkbuf->data;
+ ogs_nas_extended_emergency_number_list_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_emergency_number_list_t *)pkbuf->data;
extended_emergency_number_list->length = be16toh(source->length);
size = extended_emergency_number_list->length + sizeof(extended_emergency_number_list->length);
@@ -1201,7 +1355,14 @@ int ogs_nas_5gs_encode_extended_emergency_number_list(ogs_pkbuf_t *pkbuf, ogs_na
int ogs_nas_5gs_decode_extended_drx_parameters(ogs_nas_extended_drx_parameters_t *extended_drx_parameters, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_drx_parameters_t *source = (ogs_nas_extended_drx_parameters_t *)pkbuf->data;
+ ogs_nas_extended_drx_parameters_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_drx_parameters_t *)pkbuf->data;
extended_drx_parameters->length = source->length;
size = extended_drx_parameters->length + sizeof(extended_drx_parameters->length);
@@ -1272,7 +1433,14 @@ int ogs_nas_5gs_encode_imeisv_request(ogs_pkbuf_t *pkbuf, ogs_nas_imeisv_request
int ogs_nas_5gs_decode_ladn_indication(ogs_nas_ladn_indication_t *ladn_indication, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ladn_indication_t *source = (ogs_nas_ladn_indication_t *)pkbuf->data;
+ ogs_nas_ladn_indication_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ladn_indication_t *)pkbuf->data;
ladn_indication->length = be16toh(source->length);
size = ladn_indication->length + sizeof(ladn_indication->length);
@@ -1318,7 +1486,14 @@ int ogs_nas_5gs_encode_ladn_indication(ogs_pkbuf_t *pkbuf, ogs_nas_ladn_indicati
int ogs_nas_5gs_decode_5gs_drx_parameters(ogs_nas_5gs_drx_parameters_t *drx_parameters, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gs_drx_parameters_t *source = (ogs_nas_5gs_drx_parameters_t *)pkbuf->data;
+ ogs_nas_5gs_drx_parameters_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gs_drx_parameters_t *)pkbuf->data;
drx_parameters->length = source->length;
size = drx_parameters->length + sizeof(drx_parameters->length);
@@ -1391,7 +1566,14 @@ int ogs_nas_5gs_encode_5gs_identity_type(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_identit
int ogs_nas_5gs_decode_ladn_information(ogs_nas_ladn_information_t *ladn_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ladn_information_t *source = (ogs_nas_ladn_information_t *)pkbuf->data;
+ ogs_nas_ladn_information_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ladn_information_t *)pkbuf->data;
ladn_information->length = be16toh(source->length);
size = ladn_information->length + sizeof(ladn_information->length);
@@ -1501,7 +1683,14 @@ int ogs_nas_5gs_encode_ma_pdu_session_information(ogs_pkbuf_t *pkbuf, ogs_nas_ma
int ogs_nas_5gs_decode_mapped_nssai(ogs_nas_mapped_nssai_t *mapped_nssai, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_mapped_nssai_t *source = (ogs_nas_mapped_nssai_t *)pkbuf->data;
+ ogs_nas_mapped_nssai_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_mapped_nssai_t *)pkbuf->data;
mapped_nssai->length = source->length;
size = mapped_nssai->length + sizeof(mapped_nssai->length);
@@ -1540,7 +1729,14 @@ int ogs_nas_5gs_encode_mapped_nssai(ogs_pkbuf_t *pkbuf, ogs_nas_mapped_nssai_t *
int ogs_nas_5gs_decode_mobile_station_classmark_2(ogs_nas_mobile_station_classmark_2_t *mobile_station_classmark_2, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_mobile_station_classmark_2_t *source = (ogs_nas_mobile_station_classmark_2_t *)pkbuf->data;
+ ogs_nas_mobile_station_classmark_2_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_mobile_station_classmark_2_t *)pkbuf->data;
mobile_station_classmark_2->length = source->length;
size = mobile_station_classmark_2->length + sizeof(mobile_station_classmark_2->length);
@@ -1611,7 +1807,14 @@ int ogs_nas_5gs_encode_key_set_identifier(ogs_pkbuf_t *pkbuf, ogs_nas_key_set_id
int ogs_nas_5gs_decode_message_container(ogs_nas_message_container_t *message_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_message_container_t *source = (ogs_nas_message_container_t *)pkbuf->data;
+ ogs_nas_message_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_message_container_t *)pkbuf->data;
message_container->length = be16toh(source->length);
size = message_container->length + sizeof(message_container->length);
@@ -1691,7 +1894,14 @@ int ogs_nas_5gs_encode_security_algorithms(ogs_pkbuf_t *pkbuf, ogs_nas_security_
int ogs_nas_5gs_decode_network_name(ogs_nas_network_name_t *network_name, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_network_name_t *source = (ogs_nas_network_name_t *)pkbuf->data;
+ ogs_nas_network_name_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_network_name_t *)pkbuf->data;
network_name->length = source->length;
size = network_name->length + sizeof(network_name->length);
@@ -1794,7 +2004,14 @@ int ogs_nas_5gs_encode_non_3gpp_nw_provided_policies(ogs_pkbuf_t *pkbuf, ogs_nas
int ogs_nas_5gs_decode_nssai(ogs_nas_nssai_t *nssai, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_nssai_t *source = (ogs_nas_nssai_t *)pkbuf->data;
+ ogs_nas_nssai_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_nssai_t *)pkbuf->data;
nssai->length = source->length;
size = nssai->length + sizeof(nssai->length);
@@ -1865,7 +2082,14 @@ int ogs_nas_5gs_encode_nssai_inclusion_mode(ogs_pkbuf_t *pkbuf, ogs_nas_nssai_in
int ogs_nas_5gs_decode_operator_defined_access_category_definitions(ogs_nas_operator_defined_access_category_definitions_t *operator_defined_access_category_definitions, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_operator_defined_access_category_definitions_t *source = (ogs_nas_operator_defined_access_category_definitions_t *)pkbuf->data;
+ ogs_nas_operator_defined_access_category_definitions_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_operator_defined_access_category_definitions_t *)pkbuf->data;
operator_defined_access_category_definitions->length = be16toh(source->length);
size = operator_defined_access_category_definitions->length + sizeof(operator_defined_access_category_definitions->length);
@@ -1911,7 +2135,14 @@ int ogs_nas_5gs_encode_operator_defined_access_category_definitions(ogs_pkbuf_t
int ogs_nas_5gs_decode_payload_container(ogs_nas_payload_container_t *payload_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_payload_container_t *source = (ogs_nas_payload_container_t *)pkbuf->data;
+ ogs_nas_payload_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_payload_container_t *)pkbuf->data;
payload_container->length = be16toh(source->length);
size = payload_container->length + sizeof(payload_container->length);
@@ -1957,7 +2188,14 @@ int ogs_nas_5gs_encode_payload_container(ogs_pkbuf_t *pkbuf, ogs_nas_payload_con
int ogs_nas_5gs_decode_5gs_mobile_identity(ogs_nas_5gs_mobile_identity_t *mobile_identity, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gs_mobile_identity_t *source = (ogs_nas_5gs_mobile_identity_t *)pkbuf->data;
+ ogs_nas_5gs_mobile_identity_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gs_mobile_identity_t *)pkbuf->data;
mobile_identity->length = be16toh(source->length);
size = mobile_identity->length + sizeof(mobile_identity->length);
@@ -2069,7 +2307,14 @@ int ogs_nas_5gs_encode_pdu_session_identity_2(ogs_pkbuf_t *pkbuf, ogs_nas_pdu_se
int ogs_nas_5gs_decode_pdu_session_reactivation_result(ogs_nas_pdu_session_reactivation_result_t *pdu_session_reactivation_result, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_pdu_session_reactivation_result_t *source = (ogs_nas_pdu_session_reactivation_result_t *)pkbuf->data;
+ ogs_nas_pdu_session_reactivation_result_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_pdu_session_reactivation_result_t *)pkbuf->data;
pdu_session_reactivation_result->length = source->length;
size = pdu_session_reactivation_result->length + sizeof(pdu_session_reactivation_result->length);
@@ -2112,7 +2357,14 @@ int ogs_nas_5gs_encode_pdu_session_reactivation_result(ogs_pkbuf_t *pkbuf, ogs_n
int ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause(ogs_nas_pdu_session_reactivation_result_error_cause_t *pdu_session_reactivation_result_error_cause, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_pdu_session_reactivation_result_error_cause_t *source = (ogs_nas_pdu_session_reactivation_result_error_cause_t *)pkbuf->data;
+ ogs_nas_pdu_session_reactivation_result_error_cause_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_pdu_session_reactivation_result_error_cause_t *)pkbuf->data;
pdu_session_reactivation_result_error_cause->length = be16toh(source->length);
size = pdu_session_reactivation_result_error_cause->length + sizeof(pdu_session_reactivation_result_error_cause->length);
@@ -2158,7 +2410,14 @@ int ogs_nas_5gs_encode_pdu_session_reactivation_result_error_cause(ogs_pkbuf_t *
int ogs_nas_5gs_decode_pdu_session_status(ogs_nas_pdu_session_status_t *pdu_session_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_pdu_session_status_t *source = (ogs_nas_pdu_session_status_t *)pkbuf->data;
+ ogs_nas_pdu_session_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_pdu_session_status_t *)pkbuf->data;
pdu_session_status->length = source->length;
size = pdu_session_status->length + sizeof(pdu_session_status->length);
@@ -2201,7 +2460,14 @@ int ogs_nas_5gs_encode_pdu_session_status(ogs_pkbuf_t *pkbuf, ogs_nas_pdu_sessio
int ogs_nas_5gs_decode_plmn_list(ogs_nas_plmn_list_t *plmn_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_plmn_list_t *source = (ogs_nas_plmn_list_t *)pkbuf->data;
+ ogs_nas_plmn_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_plmn_list_t *)pkbuf->data;
plmn_list->length = source->length;
size = plmn_list->length + sizeof(plmn_list->length);
@@ -2240,7 +2506,14 @@ int ogs_nas_5gs_encode_plmn_list(ogs_pkbuf_t *pkbuf, ogs_nas_plmn_list_t *plmn_l
int ogs_nas_5gs_decode_rejected_nssai(ogs_nas_rejected_nssai_t *rejected_nssai, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_rejected_nssai_t *source = (ogs_nas_rejected_nssai_t *)pkbuf->data;
+ ogs_nas_rejected_nssai_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_rejected_nssai_t *)pkbuf->data;
rejected_nssai->length = source->length;
size = rejected_nssai->length + sizeof(rejected_nssai->length);
@@ -2343,7 +2616,14 @@ int ogs_nas_5gs_encode_request_type(ogs_pkbuf_t *pkbuf, ogs_nas_request_type_t *
int ogs_nas_5gs_decode_s1_ue_network_capability(ogs_nas_s1_ue_network_capability_t *s1_ue_network_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_s1_ue_network_capability_t *source = (ogs_nas_s1_ue_network_capability_t *)pkbuf->data;
+ ogs_nas_s1_ue_network_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_s1_ue_network_capability_t *)pkbuf->data;
s1_ue_network_capability->length = source->length;
size = s1_ue_network_capability->length + sizeof(s1_ue_network_capability->length);
@@ -2382,7 +2662,14 @@ int ogs_nas_5gs_encode_s1_ue_network_capability(ogs_pkbuf_t *pkbuf, ogs_nas_s1_u
int ogs_nas_5gs_decode_s1_ue_security_capability(ogs_nas_s1_ue_security_capability_t *s1_ue_security_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_s1_ue_security_capability_t *source = (ogs_nas_s1_ue_security_capability_t *)pkbuf->data;
+ ogs_nas_s1_ue_security_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_s1_ue_security_capability_t *)pkbuf->data;
s1_ue_security_capability->length = source->length;
size = s1_ue_security_capability->length + sizeof(s1_ue_security_capability->length);
@@ -2421,7 +2708,14 @@ int ogs_nas_5gs_encode_s1_ue_security_capability(ogs_pkbuf_t *pkbuf, ogs_nas_s1_
int ogs_nas_5gs_decode_service_area_list(ogs_nas_service_area_list_t *service_area_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_service_area_list_t *source = (ogs_nas_service_area_list_t *)pkbuf->data;
+ ogs_nas_service_area_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_service_area_list_t *)pkbuf->data;
service_area_list->length = source->length;
size = service_area_list->length + sizeof(service_area_list->length);
@@ -2460,7 +2754,14 @@ int ogs_nas_5gs_encode_service_area_list(ogs_pkbuf_t *pkbuf, ogs_nas_service_are
int ogs_nas_5gs_decode_5gs_network_feature_support(ogs_nas_5gs_network_feature_support_t *network_feature_support, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gs_network_feature_support_t *source = (ogs_nas_5gs_network_feature_support_t *)pkbuf->data;
+ ogs_nas_5gs_network_feature_support_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gs_network_feature_support_t *)pkbuf->data;
network_feature_support->length = source->length;
size = network_feature_support->length + sizeof(network_feature_support->length);
@@ -2531,7 +2832,14 @@ int ogs_nas_5gs_encode_sms_indication(ogs_pkbuf_t *pkbuf, ogs_nas_sms_indication
int ogs_nas_5gs_decode_sor_transparent_container(ogs_nas_sor_transparent_container_t *sor_transparent_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_sor_transparent_container_t *source = (ogs_nas_sor_transparent_container_t *)pkbuf->data;
+ ogs_nas_sor_transparent_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_sor_transparent_container_t *)pkbuf->data;
sor_transparent_container->length = be16toh(source->length);
size = sor_transparent_container->length + sizeof(sor_transparent_container->length);
@@ -2577,7 +2885,14 @@ int ogs_nas_5gs_encode_sor_transparent_container(ogs_pkbuf_t *pkbuf, ogs_nas_sor
int ogs_nas_5gs_decode_supported_codec_list(ogs_nas_supported_codec_list_t *supported_codec_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_supported_codec_list_t *source = (ogs_nas_supported_codec_list_t *)pkbuf->data;
+ ogs_nas_supported_codec_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_supported_codec_list_t *)pkbuf->data;
supported_codec_list->length = source->length;
size = supported_codec_list->length + sizeof(supported_codec_list->length);
@@ -2684,7 +2999,14 @@ int ogs_nas_5gs_encode_time_zone_and_time(ogs_pkbuf_t *pkbuf, ogs_nas_time_zone_
int ogs_nas_5gs_decode_ue_security_capability(ogs_nas_ue_security_capability_t *ue_security_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_security_capability_t *source = (ogs_nas_ue_security_capability_t *)pkbuf->data;
+ ogs_nas_ue_security_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_security_capability_t *)pkbuf->data;
ue_security_capability->length = source->length;
size = ue_security_capability->length + sizeof(ue_security_capability->length);
@@ -2723,7 +3045,14 @@ int ogs_nas_5gs_encode_ue_security_capability(ogs_pkbuf_t *pkbuf, ogs_nas_ue_sec
int ogs_nas_5gs_decode_ue_usage_setting(ogs_nas_ue_usage_setting_t *ue_usage_setting, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_usage_setting_t *source = (ogs_nas_ue_usage_setting_t *)pkbuf->data;
+ ogs_nas_ue_usage_setting_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_usage_setting_t *)pkbuf->data;
ue_usage_setting->length = source->length;
size = ue_usage_setting->length + sizeof(ue_usage_setting->length);
@@ -2762,7 +3091,14 @@ int ogs_nas_5gs_encode_ue_usage_setting(ogs_pkbuf_t *pkbuf, ogs_nas_ue_usage_set
int ogs_nas_5gs_decode_ue_status(ogs_nas_ue_status_t *ue_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_status_t *source = (ogs_nas_ue_status_t *)pkbuf->data;
+ ogs_nas_ue_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_status_t *)pkbuf->data;
ue_status->length = source->length;
size = ue_status->length + sizeof(ue_status->length);
@@ -2801,7 +3137,14 @@ int ogs_nas_5gs_encode_ue_status(ogs_pkbuf_t *pkbuf, ogs_nas_ue_status_t *ue_sta
int ogs_nas_5gs_decode_uplink_data_status(ogs_nas_uplink_data_status_t *uplink_data_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_uplink_data_status_t *source = (ogs_nas_uplink_data_status_t *)pkbuf->data;
+ ogs_nas_uplink_data_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_uplink_data_status_t *)pkbuf->data;
uplink_data_status->length = source->length;
size = uplink_data_status->length + sizeof(uplink_data_status->length);
@@ -2844,7 +3187,14 @@ int ogs_nas_5gs_encode_uplink_data_status(ogs_pkbuf_t *pkbuf, ogs_nas_uplink_dat
int ogs_nas_5gs_decode_5gs_registration_result(ogs_nas_5gs_registration_result_t *registration_result, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gs_registration_result_t *source = (ogs_nas_5gs_registration_result_t *)pkbuf->data;
+ ogs_nas_5gs_registration_result_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gs_registration_result_t *)pkbuf->data;
registration_result->length = source->length;
size = registration_result->length + sizeof(registration_result->length);
@@ -2883,7 +3233,14 @@ int ogs_nas_5gs_encode_5gs_registration_result(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_r
int ogs_nas_5gs_decode_ue_radio_capability_id(ogs_nas_ue_radio_capability_id_t *ue_radio_capability_id, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_radio_capability_id_t *source = (ogs_nas_ue_radio_capability_id_t *)pkbuf->data;
+ ogs_nas_ue_radio_capability_id_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_radio_capability_id_t *)pkbuf->data;
ue_radio_capability_id->length = source->length;
size = ue_radio_capability_id->length + sizeof(ue_radio_capability_id->length);
@@ -2988,7 +3345,14 @@ int ogs_nas_5gs_encode_5gs_registration_type(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_reg
int ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration(ogs_nas_truncated_5g_s_tmsi_configuration_t *truncated_s_tmsi_configuration, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_truncated_5g_s_tmsi_configuration_t *source = (ogs_nas_truncated_5g_s_tmsi_configuration_t *)pkbuf->data;
+ ogs_nas_truncated_5g_s_tmsi_configuration_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_truncated_5g_s_tmsi_configuration_t *)pkbuf->data;
truncated_s_tmsi_configuration->length = source->length;
size = truncated_s_tmsi_configuration->length + sizeof(truncated_s_tmsi_configuration->length);
@@ -3027,7 +3391,14 @@ int ogs_nas_5gs_encode_truncated_5g_s_tmsi_configuration(ogs_pkbuf_t *pkbuf, ogs
int ogs_nas_5gs_decode_wus_assistance_information(ogs_nas_wus_assistance_information_t *wus_assistance_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_wus_assistance_information_t *source = (ogs_nas_wus_assistance_information_t *)pkbuf->data;
+ ogs_nas_wus_assistance_information_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_wus_assistance_information_t *)pkbuf->data;
wus_assistance_information->length = source->length;
size = wus_assistance_information->length + sizeof(wus_assistance_information->length);
@@ -3098,7 +3469,14 @@ int ogs_nas_5gs_encode_n5gc_indication(ogs_pkbuf_t *pkbuf, ogs_nas_n5gc_indicati
int ogs_nas_5gs_decode_nb_n1_mode_drx_parameters(ogs_nas_nb_n1_mode_drx_parameters_t *nb_n1_mode_drx_parameters, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_nb_n1_mode_drx_parameters_t *source = (ogs_nas_nb_n1_mode_drx_parameters_t *)pkbuf->data;
+ ogs_nas_nb_n1_mode_drx_parameters_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_nb_n1_mode_drx_parameters_t *)pkbuf->data;
nb_n1_mode_drx_parameters->length = source->length;
size = nb_n1_mode_drx_parameters->length + sizeof(nb_n1_mode_drx_parameters->length);
@@ -3169,7 +3547,14 @@ int ogs_nas_5gs_encode_additional_configuration_indication(ogs_pkbuf_t *pkbuf, o
int ogs_nas_5gs_decode_extended_rejected_nssai(ogs_nas_extended_rejected_nssai_t *extended_rejected_nssai, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_rejected_nssai_t *source = (ogs_nas_extended_rejected_nssai_t *)pkbuf->data;
+ ogs_nas_extended_rejected_nssai_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_rejected_nssai_t *)pkbuf->data;
extended_rejected_nssai->length = source->length;
size = extended_rejected_nssai->length + sizeof(extended_rejected_nssai->length);
@@ -3208,7 +3593,14 @@ int ogs_nas_5gs_encode_extended_rejected_nssai(ogs_pkbuf_t *pkbuf, ogs_nas_exten
int ogs_nas_5gs_decode_ue_request_type(ogs_nas_ue_request_type_t *ue_request_type, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_request_type_t *source = (ogs_nas_ue_request_type_t *)pkbuf->data;
+ ogs_nas_ue_request_type_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_request_type_t *)pkbuf->data;
ue_request_type->length = source->length;
size = ue_request_type->length + sizeof(ue_request_type->length);
@@ -3247,7 +3639,14 @@ int ogs_nas_5gs_encode_ue_request_type(ogs_pkbuf_t *pkbuf, ogs_nas_ue_request_ty
int ogs_nas_5gs_decode_paging_restriction(ogs_nas_paging_restriction_t *paging_restriction, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_paging_restriction_t *source = (ogs_nas_paging_restriction_t *)pkbuf->data;
+ ogs_nas_paging_restriction_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_paging_restriction_t *)pkbuf->data;
paging_restriction->length = source->length;
size = paging_restriction->length + sizeof(paging_restriction->length);
@@ -3286,7 +3685,14 @@ int ogs_nas_5gs_encode_paging_restriction(ogs_pkbuf_t *pkbuf, ogs_nas_paging_res
int ogs_nas_5gs_decode_nid(ogs_nas_nid_t *nid, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_nid_t *source = (ogs_nas_nid_t *)pkbuf->data;
+ ogs_nas_nid_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_nid_t *)pkbuf->data;
nid->length = source->length;
size = nid->length + sizeof(nid->length);
@@ -3363,7 +3769,14 @@ int ogs_nas_5gs_encode_5gs_tracking_area_identity(ogs_pkbuf_t *pkbuf, ogs_nas_5g
int ogs_nas_5gs_decode_peips_assistance_information(ogs_nas_peips_assistance_information_t *peips_assistance_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_peips_assistance_information_t *source = (ogs_nas_peips_assistance_information_t *)pkbuf->data;
+ ogs_nas_peips_assistance_information_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_peips_assistance_information_t *)pkbuf->data;
peips_assistance_information->length = source->length;
size = peips_assistance_information->length + sizeof(peips_assistance_information->length);
@@ -3402,7 +3815,14 @@ int ogs_nas_5gs_encode_peips_assistance_information(ogs_pkbuf_t *pkbuf, ogs_nas_
int ogs_nas_5gs_decode_5gs_additional_request_result(ogs_nas_5gs_additional_request_result_t *additional_request_result, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gs_additional_request_result_t *source = (ogs_nas_5gs_additional_request_result_t *)pkbuf->data;
+ ogs_nas_5gs_additional_request_result_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gs_additional_request_result_t *)pkbuf->data;
additional_request_result->length = source->length;
size = additional_request_result->length + sizeof(additional_request_result->length);
@@ -3441,7 +3861,14 @@ int ogs_nas_5gs_encode_5gs_additional_request_result(ogs_pkbuf_t *pkbuf, ogs_nas
int ogs_nas_5gs_decode_nssrg_information(ogs_nas_nssrg_information_t *nssrg_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_nssrg_information_t *source = (ogs_nas_nssrg_information_t *)pkbuf->data;
+ ogs_nas_nssrg_information_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_nssrg_information_t *)pkbuf->data;
nssrg_information->length = be16toh(source->length);
size = nssrg_information->length + sizeof(nssrg_information->length);
@@ -3487,7 +3914,14 @@ int ogs_nas_5gs_encode_nssrg_information(ogs_pkbuf_t *pkbuf, ogs_nas_nssrg_infor
int ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition(ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *list_of_plmns_to_be_used_in_disaster_condition, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *source = (ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *)pkbuf->data;
+ ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *)pkbuf->data;
list_of_plmns_to_be_used_in_disaster_condition->length = source->length;
size = list_of_plmns_to_be_used_in_disaster_condition->length + sizeof(list_of_plmns_to_be_used_in_disaster_condition->length);
@@ -3526,7 +3960,14 @@ int ogs_nas_5gs_encode_list_of_plmns_to_be_used_in_disaster_condition(ogs_pkbuf_
int ogs_nas_5gs_decode_registration_wait_range(ogs_nas_registration_wait_range_t *registration_wait_range, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_registration_wait_range_t *source = (ogs_nas_registration_wait_range_t *)pkbuf->data;
+ ogs_nas_registration_wait_range_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_registration_wait_range_t *)pkbuf->data;
registration_wait_range->length = source->length;
size = registration_wait_range->length + sizeof(registration_wait_range->length);
@@ -3565,7 +4006,14 @@ int ogs_nas_5gs_encode_registration_wait_range(ogs_pkbuf_t *pkbuf, ogs_nas_regis
int ogs_nas_5gs_decode_plmn_identity(ogs_nas_plmn_identity_t *plmn_identity, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_plmn_identity_t *source = (ogs_nas_plmn_identity_t *)pkbuf->data;
+ ogs_nas_plmn_identity_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_plmn_identity_t *)pkbuf->data;
plmn_identity->length = source->length;
size = plmn_identity->length + sizeof(plmn_identity->length);
@@ -3604,7 +4052,14 @@ int ogs_nas_5gs_encode_plmn_identity(ogs_pkbuf_t *pkbuf, ogs_nas_plmn_identity_t
int ogs_nas_5gs_decode_extended_cag_information_list(ogs_nas_extended_cag_information_list_t *extended_cag_information_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_cag_information_list_t *source = (ogs_nas_extended_cag_information_list_t *)pkbuf->data;
+ ogs_nas_extended_cag_information_list_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_cag_information_list_t *)pkbuf->data;
extended_cag_information_list->length = be16toh(source->length);
size = extended_cag_information_list->length + sizeof(extended_cag_information_list->length);
@@ -3650,7 +4105,14 @@ int ogs_nas_5gs_encode_extended_cag_information_list(ogs_pkbuf_t *pkbuf, ogs_nas
int ogs_nas_5gs_decode_nsag_information(ogs_nas_nsag_information_t *nsag_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_nsag_information_t *source = (ogs_nas_nsag_information_t *)pkbuf->data;
+ ogs_nas_nsag_information_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_nsag_information_t *)pkbuf->data;
nsag_information->length = be16toh(source->length);
size = nsag_information->length + sizeof(nsag_information->length);
@@ -3696,7 +4158,14 @@ int ogs_nas_5gs_encode_nsag_information(ogs_pkbuf_t *pkbuf, ogs_nas_nsag_informa
int ogs_nas_5gs_decode_5gs_tracking_area_identity_list(ogs_nas_5gs_tracking_area_identity_list_t *tracking_area_identity_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gs_tracking_area_identity_list_t *source = (ogs_nas_5gs_tracking_area_identity_list_t *)pkbuf->data;
+ ogs_nas_5gs_tracking_area_identity_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gs_tracking_area_identity_list_t *)pkbuf->data;
tracking_area_identity_list->length = source->length;
size = tracking_area_identity_list->length + sizeof(tracking_area_identity_list->length);
@@ -3767,7 +4236,14 @@ int ogs_nas_5gs_encode_priority_indicator(ogs_pkbuf_t *pkbuf, ogs_nas_priority_i
int ogs_nas_5gs_decode_5gs_update_type(ogs_nas_5gs_update_type_t *update_type, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gs_update_type_t *source = (ogs_nas_5gs_update_type_t *)pkbuf->data;
+ ogs_nas_5gs_update_type_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gs_update_type_t *)pkbuf->data;
update_type->length = source->length;
size = update_type->length + sizeof(update_type->length);
@@ -3806,7 +4282,14 @@ int ogs_nas_5gs_encode_5gs_update_type(ogs_pkbuf_t *pkbuf, ogs_nas_5gs_update_ty
int ogs_nas_5gs_decode_5gsm_capability(ogs_nas_5gsm_capability_t *gsm_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gsm_capability_t *source = (ogs_nas_5gsm_capability_t *)pkbuf->data;
+ ogs_nas_5gsm_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gsm_capability_t *)pkbuf->data;
gsm_capability->length = source->length;
size = gsm_capability->length + sizeof(gsm_capability->length);
@@ -3845,7 +4328,14 @@ int ogs_nas_5gs_encode_5gsm_capability(ogs_pkbuf_t *pkbuf, ogs_nas_5gsm_capabili
int ogs_nas_5gs_decode_pdu_address(ogs_nas_pdu_address_t *pdu_address, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_pdu_address_t *source = (ogs_nas_pdu_address_t *)pkbuf->data;
+ ogs_nas_pdu_address_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_pdu_address_t *)pkbuf->data;
pdu_address->length = source->length;
size = pdu_address->length + sizeof(pdu_address->length);
@@ -3916,7 +4406,14 @@ int ogs_nas_5gs_encode_pdu_session_type(ogs_pkbuf_t *pkbuf, ogs_nas_pdu_session_
int ogs_nas_5gs_decode_qos_flow_descriptions(ogs_nas_qos_flow_descriptions_t *qos_flow_descriptions, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_qos_flow_descriptions_t *source = (ogs_nas_qos_flow_descriptions_t *)pkbuf->data;
+ ogs_nas_qos_flow_descriptions_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_qos_flow_descriptions_t *)pkbuf->data;
qos_flow_descriptions->length = be16toh(source->length);
size = qos_flow_descriptions->length + sizeof(qos_flow_descriptions->length);
@@ -3962,7 +4459,14 @@ int ogs_nas_5gs_encode_qos_flow_descriptions(ogs_pkbuf_t *pkbuf, ogs_nas_qos_flo
int ogs_nas_5gs_decode_qos_rules(ogs_nas_qos_rules_t *qos_rules, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_qos_rules_t *source = (ogs_nas_qos_rules_t *)pkbuf->data;
+ ogs_nas_qos_rules_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_qos_rules_t *)pkbuf->data;
qos_rules->length = be16toh(source->length);
size = qos_rules->length + sizeof(qos_rules->length);
@@ -4008,7 +4512,14 @@ int ogs_nas_5gs_encode_qos_rules(ogs_pkbuf_t *pkbuf, ogs_nas_qos_rules_t *qos_ru
int ogs_nas_5gs_decode_session_ambr(ogs_nas_session_ambr_t *session_ambr, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_session_ambr_t *source = (ogs_nas_session_ambr_t *)pkbuf->data;
+ ogs_nas_session_ambr_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_session_ambr_t *)pkbuf->data;
session_ambr->length = source->length;
size = session_ambr->length + sizeof(session_ambr->length);
@@ -4053,7 +4564,14 @@ int ogs_nas_5gs_encode_session_ambr(ogs_pkbuf_t *pkbuf, ogs_nas_session_ambr_t *
int ogs_nas_5gs_decode_sm_pdu_dn_request_container(ogs_nas_sm_pdu_dn_request_container_t *sm_pdu_dn_request_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_sm_pdu_dn_request_container_t *source = (ogs_nas_sm_pdu_dn_request_container_t *)pkbuf->data;
+ ogs_nas_sm_pdu_dn_request_container_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_sm_pdu_dn_request_container_t *)pkbuf->data;
sm_pdu_dn_request_container->length = source->length;
size = sm_pdu_dn_request_container->length + sizeof(sm_pdu_dn_request_container->length);
@@ -4124,7 +4642,14 @@ int ogs_nas_5gs_encode_ssc_mode(ogs_pkbuf_t *pkbuf, ogs_nas_ssc_mode_t *ssc_mode
int ogs_nas_5gs_decode_re_attempt_indicator(ogs_nas_re_attempt_indicator_t *re_attempt_indicator, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_re_attempt_indicator_t *source = (ogs_nas_re_attempt_indicator_t *)pkbuf->data;
+ ogs_nas_re_attempt_indicator_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_re_attempt_indicator_t *)pkbuf->data;
re_attempt_indicator->length = source->length;
size = re_attempt_indicator->length + sizeof(re_attempt_indicator->length);
@@ -4163,7 +4688,14 @@ int ogs_nas_5gs_encode_re_attempt_indicator(ogs_pkbuf_t *pkbuf, ogs_nas_re_attem
int ogs_nas_5gs_decode_5gsm_network_feature_support(ogs_nas_5gsm_network_feature_support_t *gsm_network_feature_support, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gsm_network_feature_support_t *source = (ogs_nas_5gsm_network_feature_support_t *)pkbuf->data;
+ ogs_nas_5gsm_network_feature_support_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gsm_network_feature_support_t *)pkbuf->data;
gsm_network_feature_support->length = source->length;
size = gsm_network_feature_support->length + sizeof(gsm_network_feature_support->length);
@@ -4236,7 +4768,14 @@ int ogs_nas_5gs_encode_5gsm_cause(ogs_pkbuf_t *pkbuf, ogs_nas_5gsm_cause_t *gsm_
int ogs_nas_5gs_decode_serving_plmn_rate_control(ogs_nas_serving_plmn_rate_control_t *serving_plmn_rate_control, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_serving_plmn_rate_control_t *source = (ogs_nas_serving_plmn_rate_control_t *)pkbuf->data;
+ ogs_nas_serving_plmn_rate_control_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_serving_plmn_rate_control_t *)pkbuf->data;
serving_plmn_rate_control->length = source->length;
size = serving_plmn_rate_control->length + sizeof(serving_plmn_rate_control->length);
@@ -4275,7 +4814,14 @@ int ogs_nas_5gs_encode_serving_plmn_rate_control(ogs_pkbuf_t *pkbuf, ogs_nas_ser
int ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(ogs_nas_5gsm_congestion_re_attempt_indicator_t *gsm_congestion_re_attempt_indicator, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_5gsm_congestion_re_attempt_indicator_t *source = (ogs_nas_5gsm_congestion_re_attempt_indicator_t *)pkbuf->data;
+ ogs_nas_5gsm_congestion_re_attempt_indicator_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_5gsm_congestion_re_attempt_indicator_t *)pkbuf->data;
gsm_congestion_re_attempt_indicator->length = source->length;
size = gsm_congestion_re_attempt_indicator->length + sizeof(gsm_congestion_re_attempt_indicator->length);
@@ -4314,7 +4860,14 @@ int ogs_nas_5gs_encode_5gsm_congestion_re_attempt_indicator(ogs_pkbuf_t *pkbuf,
int ogs_nas_5gs_decode_atsss_container(ogs_nas_atsss_container_t *atsss_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_atsss_container_t *source = (ogs_nas_atsss_container_t *)pkbuf->data;
+ ogs_nas_atsss_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_atsss_container_t *)pkbuf->data;
atsss_container->length = be16toh(source->length);
size = atsss_container->length + sizeof(atsss_container->length);
@@ -4392,7 +4945,14 @@ int ogs_nas_5gs_encode_control_plane_only_indication(ogs_pkbuf_t *pkbuf, ogs_nas
int ogs_nas_5gs_decode_ip_header_compression_configuration(ogs_nas_ip_header_compression_configuration_t *ip_header_compression_configuration, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ip_header_compression_configuration_t *source = (ogs_nas_ip_header_compression_configuration_t *)pkbuf->data;
+ ogs_nas_ip_header_compression_configuration_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ip_header_compression_configuration_t *)pkbuf->data;
ip_header_compression_configuration->length = source->length;
size = ip_header_compression_configuration->length + sizeof(ip_header_compression_configuration->length);
@@ -4431,7 +4991,14 @@ int ogs_nas_5gs_encode_ip_header_compression_configuration(ogs_pkbuf_t *pkbuf, o
int ogs_nas_5gs_decode_header_compression_configuration(ogs_nas_header_compression_configuration_t *header_compression_configuration, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_header_compression_configuration_t *source = (ogs_nas_header_compression_configuration_t *)pkbuf->data;
+ ogs_nas_header_compression_configuration_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_header_compression_configuration_t *)pkbuf->data;
header_compression_configuration->length = source->length;
size = header_compression_configuration->length + sizeof(header_compression_configuration->length);
@@ -4474,7 +5041,14 @@ int ogs_nas_5gs_encode_header_compression_configuration(ogs_pkbuf_t *pkbuf, ogs_
int ogs_nas_5gs_decode_ds_tt_ethernet_port_mac_address(ogs_nas_ds_tt_ethernet_port_mac_address_t *ds_tt_ethernet_port_mac_address, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ds_tt_ethernet_port_mac_address_t *source = (ogs_nas_ds_tt_ethernet_port_mac_address_t *)pkbuf->data;
+ ogs_nas_ds_tt_ethernet_port_mac_address_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ds_tt_ethernet_port_mac_address_t *)pkbuf->data;
ds_tt_ethernet_port_mac_address->length = source->length;
size = ds_tt_ethernet_port_mac_address->length + sizeof(ds_tt_ethernet_port_mac_address->length);
@@ -4513,7 +5087,14 @@ int ogs_nas_5gs_encode_ds_tt_ethernet_port_mac_address(ogs_pkbuf_t *pkbuf, ogs_n
int ogs_nas_5gs_decode_ue_ds_tt_residence_time(ogs_nas_ue_ds_tt_residence_time_t *ue_ds_tt_residence_time, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_ds_tt_residence_time_t *source = (ogs_nas_ue_ds_tt_residence_time_t *)pkbuf->data;
+ ogs_nas_ue_ds_tt_residence_time_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_ds_tt_residence_time_t *)pkbuf->data;
ue_ds_tt_residence_time->length = source->length;
size = ue_ds_tt_residence_time->length + sizeof(ue_ds_tt_residence_time->length);
@@ -4552,7 +5133,14 @@ int ogs_nas_5gs_encode_ue_ds_tt_residence_time(ogs_pkbuf_t *pkbuf, ogs_nas_ue_ds
int ogs_nas_5gs_decode_port_management_information_container(ogs_nas_port_management_information_container_t *port_management_information_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_port_management_information_container_t *source = (ogs_nas_port_management_information_container_t *)pkbuf->data;
+ ogs_nas_port_management_information_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_port_management_information_container_t *)pkbuf->data;
port_management_information_container->length = be16toh(source->length);
size = port_management_information_container->length + sizeof(port_management_information_container->length);
@@ -4598,7 +5186,14 @@ int ogs_nas_5gs_encode_port_management_information_container(ogs_pkbuf_t *pkbuf,
int ogs_nas_5gs_decode_ethernet_header_compression_configuration(ogs_nas_ethernet_header_compression_configuration_t *ethernet_header_compression_configuration, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ethernet_header_compression_configuration_t *source = (ogs_nas_ethernet_header_compression_configuration_t *)pkbuf->data;
+ ogs_nas_ethernet_header_compression_configuration_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ethernet_header_compression_configuration_t *)pkbuf->data;
ethernet_header_compression_configuration->length = source->length;
size = ethernet_header_compression_configuration->length + sizeof(ethernet_header_compression_configuration->length);
@@ -4669,7 +5264,14 @@ int ogs_nas_5gs_encode_always_on_pdu_session_indication(ogs_pkbuf_t *pkbuf, ogs_
int ogs_nas_5gs_decode_requested_mbs_container(ogs_nas_requested_mbs_container_t *requested_mbs_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_requested_mbs_container_t *source = (ogs_nas_requested_mbs_container_t *)pkbuf->data;
+ ogs_nas_requested_mbs_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_requested_mbs_container_t *)pkbuf->data;
requested_mbs_container->length = be16toh(source->length);
size = requested_mbs_container->length + sizeof(requested_mbs_container->length);
@@ -4715,7 +5317,14 @@ int ogs_nas_5gs_encode_requested_mbs_container(ogs_pkbuf_t *pkbuf, ogs_nas_reque
int ogs_nas_5gs_decode_received_mbs_container(ogs_nas_received_mbs_container_t *received_mbs_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_received_mbs_container_t *source = (ogs_nas_received_mbs_container_t *)pkbuf->data;
+ ogs_nas_received_mbs_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_received_mbs_container_t *)pkbuf->data;
received_mbs_container->length = be16toh(source->length);
size = received_mbs_container->length + sizeof(received_mbs_container->length);
@@ -4761,7 +5370,14 @@ int ogs_nas_5gs_encode_received_mbs_container(ogs_pkbuf_t *pkbuf, ogs_nas_receiv
int ogs_nas_5gs_decode_pdu_session_pair_id(ogs_nas_pdu_session_pair_id_t *pdu_session_pair_id, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_pdu_session_pair_id_t *source = (ogs_nas_pdu_session_pair_id_t *)pkbuf->data;
+ ogs_nas_pdu_session_pair_id_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_pdu_session_pair_id_t *)pkbuf->data;
pdu_session_pair_id->length = source->length;
size = pdu_session_pair_id->length + sizeof(pdu_session_pair_id->length);
@@ -4800,7 +5416,14 @@ int ogs_nas_5gs_encode_pdu_session_pair_id(ogs_pkbuf_t *pkbuf, ogs_nas_pdu_sessi
int ogs_nas_5gs_decode_rsn(ogs_nas_rsn_t *rsn, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_rsn_t *source = (ogs_nas_rsn_t *)pkbuf->data;
+ ogs_nas_rsn_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_rsn_t *)pkbuf->data;
rsn->length = source->length;
size = rsn->length + sizeof(rsn->length);
@@ -4903,7 +5526,14 @@ int ogs_nas_5gs_encode_allowed_ssc_mode(ogs_pkbuf_t *pkbuf, ogs_nas_allowed_ssc_
int ogs_nas_5gs_decode_extended_protocol_configuration_options(ogs_nas_extended_protocol_configuration_options_t *extended_protocol_configuration_options, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_protocol_configuration_options_t *source = (ogs_nas_extended_protocol_configuration_options_t *)pkbuf->data;
+ ogs_nas_extended_protocol_configuration_options_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_protocol_configuration_options_t *)pkbuf->data;
extended_protocol_configuration_options->length = be16toh(source->length);
size = extended_protocol_configuration_options->length + sizeof(extended_protocol_configuration_options->length);
@@ -4983,7 +5613,14 @@ int ogs_nas_5gs_encode_integrity_protection_maximum_data_rate(ogs_pkbuf_t *pkbuf
int ogs_nas_5gs_decode_mapped_eps_bearer_contexts(ogs_nas_mapped_eps_bearer_contexts_t *mapped_eps_bearer_contexts, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_mapped_eps_bearer_contexts_t *source = (ogs_nas_mapped_eps_bearer_contexts_t *)pkbuf->data;
+ ogs_nas_mapped_eps_bearer_contexts_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_mapped_eps_bearer_contexts_t *)pkbuf->data;
mapped_eps_bearer_contexts->length = be16toh(source->length);
size = mapped_eps_bearer_contexts->length + sizeof(mapped_eps_bearer_contexts->length);
diff --git a/lib/nas/5gs/ies.h b/lib/nas/5gs/ies.h
index 9073223a90..08f87555d9 100644
--- a/lib/nas/5gs/ies.h
+++ b/lib/nas/5gs/ies.h
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.2.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-04 20:50:00.872007 by acetcom
+ * Created on: 2024-01-21 18:47:47.809393 by acetcom
* from 24501-h90.docx
******************************************************************************/
diff --git a/lib/nas/5gs/message.h b/lib/nas/5gs/message.h
index fe4607d5e5..ae3932b6a7 100644
--- a/lib/nas/5gs/message.h
+++ b/lib/nas/5gs/message.h
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.2.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-04 20:50:00.882958 by acetcom
+ * Created on: 2024-01-21 18:47:47.820801 by acetcom
* from 24501-h90.docx
******************************************************************************/
diff --git a/lib/nas/5gs/support/nas-message.py b/lib/nas/5gs/support/nas-message.py
index c0ea0d9dc4..8d7b0fbfa9 100644
--- a/lib/nas/5gs/support/nas-message.py
+++ b/lib/nas/5gs/support/nas-message.py
@@ -447,7 +447,12 @@ def write_cells_to_file(name, cells):
f.write("int ogs_nas_5gs_decode_%s(ogs_nas_%s_t *%s, ogs_pkbuf_t *pkbuf)\n" % (v_lower(k), v_lower(k), get_value(k)))
f.write("{\n")
f.write(" int size = 0;\n")
- f.write(" ogs_nas_%s_t *source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % (v_lower(k), v_lower(k)))
+ f.write(" ogs_nas_%s_t *source = NULL;\n\n" % v_lower(k))
+ f.write(" if (pkbuf->len < 2) {\n")
+ f.write(" ogs_error(\"Not enough pkbuf [len:%d]\", pkbuf->len);\n")
+ f.write(" return -1;\n")
+ f.write(" }\n\n")
+ f.write(" source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % v_lower(k))
f.write(" %s->length = be16toh(source->length);\n" % get_value(k))
f.write(" size = %s->length + sizeof(%s->length);\n\n" % (get_value(k), get_value(k)))
f.write(" if (ogs_pkbuf_pull(pkbuf, size) == NULL) {\n")
@@ -480,7 +485,12 @@ def write_cells_to_file(name, cells):
f.write("int ogs_nas_5gs_decode_%s(ogs_nas_%s_t *%s, ogs_pkbuf_t *pkbuf)\n" % (v_lower(k), v_lower(k), get_value(k)))
f.write("{\n")
f.write(" int size = 0;\n")
- f.write(" ogs_nas_%s_t *source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % (v_lower(k), v_lower(k)))
+ f.write(" ogs_nas_%s_t *source = NULL;\n\n" % v_lower(k))
+ f.write(" if (pkbuf->len < 1) {\n")
+ f.write(" ogs_error(\"Not enough pkbuf [len:%d]\", pkbuf->len);\n")
+ f.write(" return -1;\n")
+ f.write(" }\n\n")
+ f.write(" source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % v_lower(k))
f.write(" %s->length = source->length;\n" % get_value(k))
f.write(" size = %s->length + sizeof(%s->length);\n\n" % (get_value(k), get_value(k)))
f.write(" if (ogs_pkbuf_pull(pkbuf, size) == NULL) {\n")
@@ -732,15 +742,14 @@ def write_cells_to_file(name, cells):
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_5gs_message_t));
size = sizeof(ogs_nas_5gmm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_5gs_message_t));
memcpy(&message->gmm.h, pkbuf->data - size, size);
decoded += size;
@@ -779,15 +788,14 @@ def write_cells_to_file(name, cells):
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_5gs_message_t));
size = sizeof(ogs_nas_5gsm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_5gs_message_t));
memcpy(&message->gsm.h, pkbuf->data - size, size);
decoded += size;
diff --git a/lib/nas/5gs/types.c b/lib/nas/5gs/types.c
index 18d739e7ec..5e65c0942e 100644
--- a/lib/nas/5gs/types.c
+++ b/lib/nas/5gs/types.c
@@ -128,8 +128,7 @@ void ogs_nas_build_s_nssai(
pos = 0;
- if (nas_s_nssai_ie->sst)
- nas_s_nssai->buffer[pos++] = nas_s_nssai_ie->sst;
+ nas_s_nssai->buffer[pos++] = nas_s_nssai_ie->sst;
if (nas_s_nssai_ie->sd.v != OGS_S_NSSAI_NO_SD_VALUE ||
@@ -141,7 +140,7 @@ void ogs_nas_build_s_nssai(
* "no SD value associated with the SST".
*/
(nas_s_nssai_ie->sd.v == OGS_S_NSSAI_NO_SD_VALUE &&
- nas_s_nssai_ie->mapped_hplmn_sst &&
+ nas_s_nssai_ie->mapped_hplmn_sst_presence &&
nas_s_nssai_ie->mapped_hplmn_sd.v != OGS_S_NSSAI_NO_SD_VALUE)) {
v = ogs_htobe24(nas_s_nssai_ie->sd);
@@ -149,7 +148,7 @@ void ogs_nas_build_s_nssai(
pos += 3;
}
- if (nas_s_nssai_ie->mapped_hplmn_sst)
+ if (nas_s_nssai_ie->mapped_hplmn_sst_presence)
nas_s_nssai->buffer[pos++] = nas_s_nssai_ie->mapped_hplmn_sst;
if (nas_s_nssai_ie->mapped_hplmn_sd.v != OGS_S_NSSAI_NO_SD_VALUE) {
@@ -169,14 +168,19 @@ void ogs_nas_build_s_nssai2(
ogs_assert(nas_s_nssai);
ogs_assert(s_nssai);
- ogs_assert(mapped_hplmn);
memset(&ie, 0, sizeof(ie));
ie.sst = s_nssai->sst;
ie.sd.v = s_nssai->sd.v;
- ie.mapped_hplmn_sst = mapped_hplmn->sst;
- ie.mapped_hplmn_sd.v = mapped_hplmn->sd.v;
+
+ if (mapped_hplmn) {
+ ie.mapped_hplmn_sst_presence = true;
+ ie.mapped_hplmn_sst = mapped_hplmn->sst;
+ ie.mapped_hplmn_sd.v = mapped_hplmn->sd.v;
+ } else {
+ ie.mapped_hplmn_sd.v = OGS_S_NSSAI_NO_SD_VALUE;
+ }
ogs_nas_build_s_nssai(nas_s_nssai, &ie);
}
@@ -240,8 +244,10 @@ int ogs_nas_parse_s_nssai(
pos += 3;
}
- if (mapped_hplmn_sst)
+ if (mapped_hplmn_sst) {
nas_s_nssai_ie->mapped_hplmn_sst = nas_s_nssai->buffer[pos++];
+ nas_s_nssai_ie->mapped_hplmn_sst_presence = true;
+ }
if (mapped_hplmn_sd) {
memcpy(&v, nas_s_nssai->buffer+pos, 3);
@@ -483,35 +489,59 @@ int ogs_nas_parse_qos_flow_descriptions(
ogs_assert(description);
ogs_assert(descriptions);
- ogs_assert(descriptions->length);
+
+ if (descriptions->length == 0) {
+ ogs_error("Length is 0");
+ goto cleanup;
+ }
+ if (descriptions->buffer == NULL) {
+ ogs_error("Buffer is NULL");
+ goto cleanup;
+ }
+
length = descriptions->length;
- ogs_assert(descriptions->buffer);
buffer = descriptions->buffer;
size = 0;
while (size < length) {
memset(description, 0, sizeof(*description));
- ogs_assert(size+3 <= length);
+ if (size+3 > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(description, buffer+size, 3);
size += 3;
for (i = 0; i < description->num_of_parameter &&
i < OGS_NAS_MAX_NUM_OF_QOS_FLOW_PARAMETER; i++) {
- ogs_assert(size+sizeof(description->param[i].identifier) <= length);
+ if (size+sizeof(description->param[i].identifier) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&description->param[i].identifier, buffer+size,
sizeof(description->param[i].identifier));
size += sizeof(description->param[i].identifier);
- ogs_assert(size+sizeof(description->param[i].len) <= length);
+ if (size+sizeof(description->param[i].len) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&description->param[i].len, buffer+size,
sizeof(description->param[i].len));
size += sizeof(description->param[i].len);
switch(description->param[i].identifier) {
case OGS_NAX_QOS_FLOW_PARAMETER_ID_5QI:
- ogs_assert(description->param[i].len == 1);
- ogs_assert(size+description->param[i].len <= length);
+ if (description->param[i].len != 1) {
+ ogs_error("Invalid len[%d]", description->param[i].len);
+ goto cleanup;
+ }
+ if (size+description->param[i].len > length) {
+ ogs_error("Overflow: len[%d] length[%d]",
+ description->param[i].len, length);
+ goto cleanup;
+ }
memcpy(&description->param[i].qos_index,
buffer+size, description->param[i].len);
size += description->param[i].len;
@@ -521,8 +551,15 @@ int ogs_nas_parse_qos_flow_descriptions(
case OGS_NAX_QOS_FLOW_PARAMETER_ID_GFBR_DOWNLINK:
case OGS_NAX_QOS_FLOW_PARAMETER_ID_MFBR_UPLINK:
case OGS_NAX_QOS_FLOW_PARAMETER_ID_MFBR_DOWNLINK:
- ogs_assert(description->param[i].len == 3);
- ogs_assert(size+description->param[i].len <= length);
+ if (description->param[i].len != 3) {
+ ogs_error("Invalid len[%d]", description->param[i].len);
+ goto cleanup;
+ }
+ if (size+description->param[i].len > length) {
+ ogs_error("Overflow: len[%d] length[%d]",
+ description->param[i].len, length);
+ goto cleanup;
+ }
memcpy(&description->param[i].br,
buffer+size, description->param[i].len);
description->param[i].br.value =
@@ -530,15 +567,17 @@ int ogs_nas_parse_qos_flow_descriptions(
size += description->param[i].len;
break;
default:
- ogs_fatal("Unknown qos_flow parameter identifier [%d]",
+ ogs_error("Unknown qos_flow parameter identifier [%d]",
description->param[i].identifier);
- ogs_assert_if_reached();
+ goto cleanup;
}
}
description++;
}
+cleanup:
+
return (int)(description-first);
}
@@ -777,28 +816,50 @@ int ogs_nas_parse_qos_rules(
ogs_assert(rule);
ogs_assert(rules);
- ogs_assert(rules->length);
+
+ if (rules->length == 0) {
+ ogs_error("Length is 0");
+ goto cleanup;
+ }
+ if (rules->buffer == NULL) {
+ ogs_error("Buffer is NULL");
+ goto cleanup;
+ }
+
length = rules->length;
- ogs_assert(rules->buffer);
buffer = rules->buffer;
size = 0;
while (size < length) {
memset(rule, 0, sizeof(*rule));
- ogs_assert(size+sizeof(rule->identifier) <= length);
+ if (size+sizeof(rule->identifier) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&rule->identifier, buffer+size, sizeof(rule->identifier));
size += sizeof(rule->identifier);
- ogs_assert(size+sizeof(rule->length) <= length);
+ if (size+sizeof(rule->length) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&rule->length, buffer+size, sizeof(rule->length));
rule->length = be16toh(rule->length);
size += sizeof(rule->length);
- ogs_assert(size+sizeof(rule->flags) <= length);
+ if (size+sizeof(rule->flags) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&rule->flags, buffer+size, sizeof(rule->flags));
size += sizeof(rule->flags);
+ if (rule->code == 0 || rule->code == 7) { /* Reserved */
+ ogs_error("Reserved Rule Code [%d]", rule->code);
+ goto cleanup;
+ }
+
if (rule->code == OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE ||
rule->code == OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_WITHOUT_MODIFYING_PACKET_FILTERS) {
if (rule->num_of_packet_filter != 0) {
@@ -806,12 +867,16 @@ int ogs_nas_parse_qos_rules(
"and number of packet filter[%d]",
rule->code, rule->num_of_packet_filter);
rule->num_of_packet_filter = 0;
+ goto cleanup;
}
}
for (i = 0; i < rule->num_of_packet_filter &&
i < OGS_MAX_NUM_OF_FLOW_IN_GTP; i++) {
- ogs_assert(size+sizeof(rule->pf[i].flags) <= length);
+ if (size+sizeof(rule->pf[i].flags) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].flags, buffer+size, sizeof(rule->pf[i].flags));
size += sizeof(rule->pf[i].flags);
@@ -819,24 +884,35 @@ int ogs_nas_parse_qos_rules(
OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_DELETE_PACKET_FILTERS)
continue;
- ogs_assert(size+sizeof(rule->pf[i].content.length) <= length);
+ if (size+sizeof(rule->pf[i].content.length) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.length, buffer+size,
sizeof(rule->pf[i].content.length));
size += sizeof(rule->pf[i].content.length);
j = 0; len = 0;
while(len < rule->pf[i].content.length) {
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].type) <= length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].type) > length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].type,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].type));
len += sizeof(rule->pf[i].content.component[j].type);
switch(rule->pf[i].content.component[j].type) {
case OGS_PACKET_FILTER_PROTOCOL_IDENTIFIER_NEXT_HEADER_TYPE:
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].proto) <=
- length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].proto) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].proto,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].proto));
@@ -844,17 +920,25 @@ int ogs_nas_parse_qos_rules(
break;
case OGS_PACKET_FILTER_IPV4_REMOTE_ADDRESS_TYPE:
case OGS_PACKET_FILTER_IPV4_LOCAL_ADDRESS_TYPE:
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].ipv4.addr) <=
- length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].ipv4.addr) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].ipv4.addr,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].ipv4.addr));
len += sizeof(rule->pf[i].content.component[j].ipv4.addr);
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].ipv4.mask) <=
- length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].ipv4.mask) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].ipv4.mask,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].ipv4.mask));
@@ -862,18 +946,26 @@ int ogs_nas_parse_qos_rules(
break;
case OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_PREFIX_LENGTH_TYPE:
case OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_PREFIX_LENGTH_TYPE:
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].ipv6.addr) <=
- length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].ipv6.addr) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].ipv6.addr,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].ipv6.addr));
len += sizeof(rule->pf[i].content.component[j].ipv6.addr);
- ogs_assert(size+len+
+ if (size+len+
sizeof(
- rule->pf[i].content.component[j].ipv6.prefixlen) <=
- length);
+ rule->pf[i].content.component[j].ipv6.prefixlen) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].ipv6.prefixlen,
buffer+size+len,
sizeof(
@@ -883,10 +975,14 @@ int ogs_nas_parse_qos_rules(
break;
case OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_TYPE:
case OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_TYPE:
- ogs_assert(size+len+
+ if (size+len+
sizeof(
- rule->pf[i].content.component[j].ipv6_mask.addr) <=
- length);
+ rule->pf[i].content.component[j].ipv6_mask.addr) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].ipv6_mask.addr,
buffer+size+len,
sizeof(
@@ -894,10 +990,14 @@ int ogs_nas_parse_qos_rules(
len += sizeof(
rule->pf[i].content.component[j].ipv6_mask.addr);
- ogs_assert(size+len+
+ if (size+len+
sizeof(
- rule->pf[i].content.component[j].ipv6_mask.mask) <=
- length);
+ rule->pf[i].content.component[j].ipv6_mask.mask) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].ipv6_mask.mask,
buffer+size+len,
sizeof(
@@ -907,9 +1007,13 @@ int ogs_nas_parse_qos_rules(
break;
case OGS_PACKET_FILTER_SINGLE_LOCAL_PORT_TYPE:
case OGS_PACKET_FILTER_SINGLE_REMOTE_PORT_TYPE:
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].port.low) <=
- length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].port.low) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].port.low,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].port.low));
@@ -919,9 +1023,13 @@ int ogs_nas_parse_qos_rules(
break;
case OGS_PACKET_FILTER_LOCAL_PORT_RANGE_TYPE:
case OGS_PACKET_FILTER_REMOTE_PORT_RANGE_TYPE:
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].port.low) <=
- length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].port.low) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].port.low,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].port.low));
@@ -929,9 +1037,13 @@ int ogs_nas_parse_qos_rules(
be16toh(rule->pf[i].content.component[j].port.low);
len += sizeof(rule->pf[i].content.component[j].port.low);
- ogs_assert(size+len+
- sizeof(rule->pf[i].content.component[j].port.high) <=
- length);
+ if (size+len+
+ sizeof(rule->pf[i].content.component[j].port.high) >
+ length) {
+ ogs_error("Overflow : size[%d] len[%d] length[%d]",
+ size, len, length);
+ goto cleanup;
+ }
memcpy(&rule->pf[i].content.component[j].port.high,
buffer+size+len,
sizeof(rule->pf[i].content.component[j].port.high));
@@ -942,7 +1054,7 @@ int ogs_nas_parse_qos_rules(
default:
ogs_error("Unknown Packet Filter Type(%d)",
rule->pf[i].content.component[j].type);
- return -1;
+ goto cleanup;
}
j++;
}
@@ -954,11 +1066,17 @@ int ogs_nas_parse_qos_rules(
rule->code != OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_DELETE_PACKET_FILTERS &&
rule->code != OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_WITHOUT_MODIFYING_PACKET_FILTERS) {
- ogs_assert(size+sizeof(rule->precedence) <= length);
+ if (size+sizeof(rule->precedence) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&rule->precedence, buffer+size, sizeof(rule->precedence));
size += sizeof(rule->precedence);
- ogs_assert(size+sizeof(rule->flow.flags) <= length);
+ if (size+sizeof(rule->flow.flags) > length) {
+ ogs_error("Overflow : size[%d] length[%d]", size, length);
+ goto cleanup;
+ }
memcpy(&rule->flow.flags, buffer+size, sizeof(rule->flow.flags));
size += sizeof(rule->flow.flags);
}
@@ -966,5 +1084,7 @@ int ogs_nas_parse_qos_rules(
rule++;
}
+cleanup:
+
return (int)(rule-first);
}
diff --git a/lib/nas/5gs/types.h b/lib/nas/5gs/types.h
index cc35611dbc..8ca6defb9f 100644
--- a/lib/nas/5gs/types.h
+++ b/lib/nas/5gs/types.h
@@ -66,6 +66,7 @@ typedef struct ogs_nas_s_nssai_ie_s {
uint8_t sst;
ogs_uint24_t sd;
uint8_t mapped_hplmn_sst;
+ bool mapped_hplmn_sst_presence;
ogs_uint24_t mapped_hplmn_sd;
} __attribute__ ((packed)) ogs_nas_s_nssai_ie_t;
@@ -1020,7 +1021,7 @@ typedef struct ogs_nas_qos_rule_s {
#define OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE 1
#define OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE 2
#define OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_ADD_PACKET_FILTERS 3
-#define OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_REPLACE_PACKET_FILTERS 4
+#define OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_REPLACE_ALL_PACKET_FILTERS 4
#define OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_DELETE_PACKET_FILTERS 5
#define OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_WITHOUT_MODIFYING_PACKET_FILTERS 6
ED3(uint8_t code:3;,
@@ -1049,7 +1050,7 @@ typedef struct ogs_nas_qos_rule_s {
struct {
ED3(uint8_t spare:1;,
uint8_t segregation:1;,
- uint8_t identifier:4;)
+ uint8_t identifier:6;)
};
uint8_t flags;
} flow;
diff --git a/lib/nas/common/types.h b/lib/nas/common/types.h
index 9c5497a334..c5f6538d7a 100644
--- a/lib/nas/common/types.h
+++ b/lib/nas/common/types.h
@@ -42,8 +42,6 @@ extern "C" {
#define OGS_NAS_SECURITY_HEADER_INTEGRITY_PROTECTED_AND_PARTICALLY_CIPHTERD 5
#define OGS_NAS_SECURITY_HEADER_FOR_SERVICE_REQUEST_MESSAGE 12
-#define OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED 0
-
#define OGS_NAS_CLEAR_DATA(__dATA) \
do { \
ogs_assert((__dATA)); \
diff --git a/lib/nas/eps/decoder.c b/lib/nas/eps/decoder.c
index 4cd4bf1d09..f455ff2a0c 100644
--- a/lib/nas/eps/decoder.c
+++ b/lib/nas/eps/decoder.c
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-02 22:57:51.860294 by acetcom
+ * Created on: 2024-01-21 18:50:03.417367 by acetcom
* from 24301-h90.docx
******************************************************************************/
@@ -4691,15 +4691,14 @@ int ogs_nas_emm_decode(ogs_nas_eps_message_t *message, ogs_pkbuf_t *pkbuf)
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_eps_message_t));
size = sizeof(ogs_nas_emm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_eps_message_t));
memcpy(&message->emm.h, pkbuf->data - size, size);
decoded += size;
@@ -4975,15 +4974,14 @@ int ogs_nas_esm_decode(ogs_nas_eps_message_t *message, ogs_pkbuf_t *pkbuf)
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_eps_message_t));
size = sizeof(ogs_nas_esm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_eps_message_t));
memcpy(&message->esm.h, pkbuf->data - size, size);
decoded += size;
diff --git a/lib/nas/eps/encoder.c b/lib/nas/eps/encoder.c
index ed39e82d6b..2fdefcd646 100644
--- a/lib/nas/eps/encoder.c
+++ b/lib/nas/eps/encoder.c
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-02 22:57:51.871237 by acetcom
+ * Created on: 2024-01-21 18:50:03.428897 by acetcom
* from 24301-h90.docx
******************************************************************************/
diff --git a/lib/nas/eps/ies.c b/lib/nas/eps/ies.c
index f36fc71b10..8a221d7614 100644
--- a/lib/nas/eps/ies.c
+++ b/lib/nas/eps/ies.c
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-02 22:57:51.846548 by acetcom
+ * Created on: 2024-12-11 21:08:02.462921 by acetcom
* from 24301-h90.docx
******************************************************************************/
@@ -48,7 +48,14 @@ int ogs_nas_eps_encode_optional_type(ogs_pkbuf_t *pkbuf, uint8_t type)
int ogs_nas_eps_decode_additional_information(ogs_nas_additional_information_t *additional_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_additional_information_t *source = (ogs_nas_additional_information_t *)pkbuf->data;
+ ogs_nas_additional_information_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_additional_information_t *)pkbuf->data;
additional_information->length = source->length;
size = additional_information->length + sizeof(additional_information->length);
@@ -119,7 +126,14 @@ int ogs_nas_eps_encode_device_properties(ogs_pkbuf_t *pkbuf, ogs_nas_device_prop
int ogs_nas_eps_decode_eps_bearer_context_status(ogs_nas_eps_bearer_context_status_t *eps_bearer_context_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_bearer_context_status_t *source = (ogs_nas_eps_bearer_context_status_t *)pkbuf->data;
+ ogs_nas_eps_bearer_context_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_bearer_context_status_t *)pkbuf->data;
eps_bearer_context_status->length = source->length;
size = eps_bearer_context_status->length + sizeof(eps_bearer_context_status->length);
@@ -158,7 +172,14 @@ int ogs_nas_eps_encode_eps_bearer_context_status(ogs_pkbuf_t *pkbuf, ogs_nas_eps
int ogs_nas_eps_decode_supported_codec_list(ogs_nas_supported_codec_list_t *supported_codec_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_supported_codec_list_t *source = (ogs_nas_supported_codec_list_t *)pkbuf->data;
+ ogs_nas_supported_codec_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_supported_codec_list_t *)pkbuf->data;
supported_codec_list->length = source->length;
size = supported_codec_list->length + sizeof(supported_codec_list->length);
@@ -235,7 +256,14 @@ int ogs_nas_eps_encode_location_area_identification(ogs_pkbuf_t *pkbuf, ogs_nas_
int ogs_nas_eps_decode_mobile_identity(ogs_nas_mobile_identity_t *mobile_identity, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_mobile_identity_t *source = (ogs_nas_mobile_identity_t *)pkbuf->data;
+ ogs_nas_mobile_identity_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_mobile_identity_t *)pkbuf->data;
mobile_identity->length = source->length;
size = mobile_identity->length + sizeof(mobile_identity->length);
@@ -283,7 +311,14 @@ int ogs_nas_eps_encode_mobile_identity(ogs_pkbuf_t *pkbuf, ogs_nas_mobile_identi
int ogs_nas_eps_decode_mobile_station_classmark_2(ogs_nas_mobile_station_classmark_2_t *mobile_station_classmark_2, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_mobile_station_classmark_2_t *source = (ogs_nas_mobile_station_classmark_2_t *)pkbuf->data;
+ ogs_nas_mobile_station_classmark_2_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_mobile_station_classmark_2_t *)pkbuf->data;
mobile_station_classmark_2->length = source->length;
size = mobile_station_classmark_2->length + sizeof(mobile_station_classmark_2->length);
@@ -322,7 +357,14 @@ int ogs_nas_eps_encode_mobile_station_classmark_2(ogs_pkbuf_t *pkbuf, ogs_nas_mo
int ogs_nas_eps_decode_mobile_station_classmark_3(ogs_nas_mobile_station_classmark_3_t *mobile_station_classmark_3, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_mobile_station_classmark_3_t *source = (ogs_nas_mobile_station_classmark_3_t *)pkbuf->data;
+ ogs_nas_mobile_station_classmark_3_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_mobile_station_classmark_3_t *)pkbuf->data;
mobile_station_classmark_3->length = source->length;
size = mobile_station_classmark_3->length + sizeof(mobile_station_classmark_3->length);
@@ -361,7 +403,14 @@ int ogs_nas_eps_encode_mobile_station_classmark_3(ogs_pkbuf_t *pkbuf, ogs_nas_mo
int ogs_nas_eps_decode_plmn_list(ogs_nas_plmn_list_t *plmn_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_plmn_list_t *source = (ogs_nas_plmn_list_t *)pkbuf->data;
+ ogs_nas_plmn_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_plmn_list_t *)pkbuf->data;
plmn_list->length = source->length;
size = plmn_list->length + sizeof(plmn_list->length);
@@ -464,7 +513,14 @@ int ogs_nas_eps_encode_additional_update_type(ogs_pkbuf_t *pkbuf, ogs_nas_additi
int ogs_nas_eps_decode_authentication_failure_parameter(ogs_nas_authentication_failure_parameter_t *authentication_failure_parameter, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_authentication_failure_parameter_t *source = (ogs_nas_authentication_failure_parameter_t *)pkbuf->data;
+ ogs_nas_authentication_failure_parameter_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_authentication_failure_parameter_t *)pkbuf->data;
authentication_failure_parameter->length = source->length;
size = authentication_failure_parameter->length + sizeof(authentication_failure_parameter->length);
@@ -571,7 +627,14 @@ int ogs_nas_eps_encode_eps_attach_type(ogs_pkbuf_t *pkbuf, ogs_nas_eps_attach_ty
int ogs_nas_eps_decode_eps_mobile_identity(ogs_nas_eps_mobile_identity_t *eps_mobile_identity, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_mobile_identity_t *source = (ogs_nas_eps_mobile_identity_t *)pkbuf->data;
+ ogs_nas_eps_mobile_identity_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_mobile_identity_t *)pkbuf->data;
eps_mobile_identity->length = source->length;
size = eps_mobile_identity->length + sizeof(eps_mobile_identity->length);
@@ -621,7 +684,14 @@ int ogs_nas_eps_encode_eps_mobile_identity(ogs_pkbuf_t *pkbuf, ogs_nas_eps_mobil
int ogs_nas_eps_decode_eps_network_feature_support(ogs_nas_eps_network_feature_support_t *eps_network_feature_support, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_network_feature_support_t *source = (ogs_nas_eps_network_feature_support_t *)pkbuf->data;
+ ogs_nas_eps_network_feature_support_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_network_feature_support_t *)pkbuf->data;
eps_network_feature_support->length = source->length;
size = eps_network_feature_support->length + sizeof(eps_network_feature_support->length);
@@ -728,7 +798,14 @@ int ogs_nas_eps_encode_eps_update_type(ogs_pkbuf_t *pkbuf, ogs_nas_eps_update_ty
int ogs_nas_eps_decode_esm_message_container(ogs_nas_esm_message_container_t *esm_message_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_esm_message_container_t *source = (ogs_nas_esm_message_container_t *)pkbuf->data;
+ ogs_nas_esm_message_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_esm_message_container_t *)pkbuf->data;
esm_message_container->length = be16toh(source->length);
size = esm_message_container->length + sizeof(esm_message_container->length);
@@ -808,7 +885,14 @@ int ogs_nas_eps_encode_gprs_timer(ogs_pkbuf_t *pkbuf, ogs_nas_gprs_timer_t *gprs
int ogs_nas_eps_decode_gprs_timer_2(ogs_nas_gprs_timer_2_t *gprs_timer_2, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_gprs_timer_2_t *source = (ogs_nas_gprs_timer_2_t *)pkbuf->data;
+ ogs_nas_gprs_timer_2_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_gprs_timer_2_t *)pkbuf->data;
gprs_timer_2->length = source->length;
size = gprs_timer_2->length + sizeof(gprs_timer_2->length);
@@ -847,7 +931,14 @@ int ogs_nas_eps_encode_gprs_timer_2(ogs_pkbuf_t *pkbuf, ogs_nas_gprs_timer_2_t *
int ogs_nas_eps_decode_gprs_timer_3(ogs_nas_gprs_timer_3_t *gprs_timer_3, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_gprs_timer_3_t *source = (ogs_nas_gprs_timer_3_t *)pkbuf->data;
+ ogs_nas_gprs_timer_3_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_gprs_timer_3_t *)pkbuf->data;
gprs_timer_3->length = source->length;
size = gprs_timer_3->length + sizeof(gprs_timer_3->length);
@@ -986,7 +1077,14 @@ int ogs_nas_eps_encode_ksi_and_sequence_number(ogs_pkbuf_t *pkbuf, ogs_nas_ksi_a
int ogs_nas_eps_decode_authentication_parameter_autn(ogs_nas_authentication_parameter_autn_t *authentication_parameter_autn, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_authentication_parameter_autn_t *source = (ogs_nas_authentication_parameter_autn_t *)pkbuf->data;
+ ogs_nas_authentication_parameter_autn_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_authentication_parameter_autn_t *)pkbuf->data;
authentication_parameter_autn->length = source->length;
size = authentication_parameter_autn->length + sizeof(authentication_parameter_autn->length);
@@ -1025,7 +1123,14 @@ int ogs_nas_eps_encode_authentication_parameter_autn(ogs_pkbuf_t *pkbuf, ogs_nas
int ogs_nas_eps_decode_ms_network_capability(ogs_nas_ms_network_capability_t *ms_network_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ms_network_capability_t *source = (ogs_nas_ms_network_capability_t *)pkbuf->data;
+ ogs_nas_ms_network_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ms_network_capability_t *)pkbuf->data;
ms_network_capability->length = source->length;
size = ms_network_capability->length + sizeof(ms_network_capability->length);
@@ -1128,7 +1233,14 @@ int ogs_nas_eps_encode_key_set_identifier(ogs_pkbuf_t *pkbuf, ogs_nas_key_set_id
int ogs_nas_eps_decode_eps_message_container(ogs_nas_eps_message_container_t *eps_message_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_message_container_t *source = (ogs_nas_eps_message_container_t *)pkbuf->data;
+ ogs_nas_eps_message_container_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_message_container_t *)pkbuf->data;
eps_message_container->length = source->length;
size = eps_message_container->length + sizeof(eps_message_container->length);
@@ -1201,7 +1313,14 @@ int ogs_nas_eps_encode_security_algorithms(ogs_pkbuf_t *pkbuf, ogs_nas_security_
int ogs_nas_eps_decode_network_name(ogs_nas_network_name_t *network_name, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_network_name_t *source = (ogs_nas_network_name_t *)pkbuf->data;
+ ogs_nas_network_name_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_network_name_t *)pkbuf->data;
network_name->length = source->length;
size = network_name->length + sizeof(network_name->length);
@@ -1240,7 +1359,14 @@ int ogs_nas_eps_encode_network_name(ogs_pkbuf_t *pkbuf, ogs_nas_network_name_t *
int ogs_nas_eps_decode_network_resource_identifier_container(ogs_nas_network_resource_identifier_container_t *network_resource_identifier_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_network_resource_identifier_container_t *source = (ogs_nas_network_resource_identifier_container_t *)pkbuf->data;
+ ogs_nas_network_resource_identifier_container_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_network_resource_identifier_container_t *)pkbuf->data;
network_resource_identifier_container->length = source->length;
size = network_resource_identifier_container->length + sizeof(network_resource_identifier_container->length);
@@ -1665,7 +1791,14 @@ int ogs_nas_eps_encode_tracking_area_identity(ogs_pkbuf_t *pkbuf, ogs_nas_tracki
int ogs_nas_eps_decode_tracking_area_identity_list(ogs_nas_tracking_area_identity_list_t *tracking_area_identity_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_tracking_area_identity_list_t *source = (ogs_nas_tracking_area_identity_list_t *)pkbuf->data;
+ ogs_nas_tracking_area_identity_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_tracking_area_identity_list_t *)pkbuf->data;
tracking_area_identity_list->length = source->length;
size = tracking_area_identity_list->length + sizeof(tracking_area_identity_list->length);
@@ -1704,7 +1837,14 @@ int ogs_nas_eps_encode_tracking_area_identity_list(ogs_pkbuf_t *pkbuf, ogs_nas_t
int ogs_nas_eps_decode_ue_network_capability(ogs_nas_ue_network_capability_t *ue_network_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_network_capability_t *source = (ogs_nas_ue_network_capability_t *)pkbuf->data;
+ ogs_nas_ue_network_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_network_capability_t *)pkbuf->data;
ue_network_capability->length = source->length;
size = ue_network_capability->length + sizeof(ue_network_capability->length);
@@ -1775,7 +1915,14 @@ int ogs_nas_eps_encode_ue_radio_capability_information_update_needed(ogs_pkbuf_t
int ogs_nas_eps_decode_ue_security_capability(ogs_nas_ue_security_capability_t *ue_security_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_security_capability_t *source = (ogs_nas_ue_security_capability_t *)pkbuf->data;
+ ogs_nas_ue_security_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_security_capability_t *)pkbuf->data;
ue_security_capability->length = source->length;
size = ue_security_capability->length + sizeof(ue_security_capability->length);
@@ -1814,7 +1961,14 @@ int ogs_nas_eps_encode_ue_security_capability(ogs_pkbuf_t *pkbuf, ogs_nas_ue_sec
int ogs_nas_eps_decode_emergency_number_list(ogs_nas_emergency_number_list_t *emergency_number_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_emergency_number_list_t *source = (ogs_nas_emergency_number_list_t *)pkbuf->data;
+ ogs_nas_emergency_number_list_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_emergency_number_list_t *)pkbuf->data;
emergency_number_list->length = source->length;
size = emergency_number_list->length + sizeof(emergency_number_list->length);
@@ -1853,7 +2007,14 @@ int ogs_nas_eps_encode_emergency_number_list(ogs_pkbuf_t *pkbuf, ogs_nas_emergen
int ogs_nas_eps_decode_extended_emergency_number_list(ogs_nas_extended_emergency_number_list_t *extended_emergency_number_list, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_emergency_number_list_t *source = (ogs_nas_extended_emergency_number_list_t *)pkbuf->data;
+ ogs_nas_extended_emergency_number_list_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_emergency_number_list_t *)pkbuf->data;
extended_emergency_number_list->length = be16toh(source->length);
size = extended_emergency_number_list->length + sizeof(extended_emergency_number_list->length);
@@ -1899,7 +2060,14 @@ int ogs_nas_eps_encode_extended_emergency_number_list(ogs_pkbuf_t *pkbuf, ogs_na
int ogs_nas_eps_decode_cli(ogs_nas_cli_t *cli, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_cli_t *source = (ogs_nas_cli_t *)pkbuf->data;
+ ogs_nas_cli_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_cli_t *)pkbuf->data;
cli->length = source->length;
size = cli->length + sizeof(cli->length);
@@ -1972,7 +2140,14 @@ int ogs_nas_eps_encode_ss_code(ogs_pkbuf_t *pkbuf, ogs_nas_ss_code_t *ss_code)
int ogs_nas_eps_decode_authentication_response_parameter(ogs_nas_authentication_response_parameter_t *authentication_response_parameter, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_authentication_response_parameter_t *source = (ogs_nas_authentication_response_parameter_t *)pkbuf->data;
+ ogs_nas_authentication_response_parameter_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_authentication_response_parameter_t *)pkbuf->data;
authentication_response_parameter->length = source->length;
size = authentication_response_parameter->length + sizeof(authentication_response_parameter->length);
@@ -2045,7 +2220,14 @@ int ogs_nas_eps_encode_lcs_indicator(ogs_pkbuf_t *pkbuf, ogs_nas_lcs_indicator_t
int ogs_nas_eps_decode_lcs_client_identity(ogs_nas_lcs_client_identity_t *lcs_client_identity, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_lcs_client_identity_t *source = (ogs_nas_lcs_client_identity_t *)pkbuf->data;
+ ogs_nas_lcs_client_identity_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_lcs_client_identity_t *)pkbuf->data;
lcs_client_identity->length = source->length;
size = lcs_client_identity->length + sizeof(lcs_client_identity->length);
@@ -2118,7 +2300,14 @@ int ogs_nas_eps_encode_generic_message_container_type(ogs_pkbuf_t *pkbuf, ogs_na
int ogs_nas_eps_decode_generic_message_container(ogs_nas_generic_message_container_t *generic_message_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_generic_message_container_t *source = (ogs_nas_generic_message_container_t *)pkbuf->data;
+ ogs_nas_generic_message_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_generic_message_container_t *)pkbuf->data;
generic_message_container->length = be16toh(source->length);
size = generic_message_container->length + sizeof(generic_message_container->length);
@@ -2164,7 +2353,14 @@ int ogs_nas_eps_encode_generic_message_container(ogs_pkbuf_t *pkbuf, ogs_nas_gen
int ogs_nas_eps_decode_voice_domain_preference_and_ue_usage_setting(ogs_nas_voice_domain_preference_and_ue_usage_setting_t *voice_domain_preference_and_ue_usage_setting, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_voice_domain_preference_and_ue_usage_setting_t *source = (ogs_nas_voice_domain_preference_and_ue_usage_setting_t *)pkbuf->data;
+ ogs_nas_voice_domain_preference_and_ue_usage_setting_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_voice_domain_preference_and_ue_usage_setting_t *)pkbuf->data;
voice_domain_preference_and_ue_usage_setting->length = source->length;
size = voice_domain_preference_and_ue_usage_setting->length + sizeof(voice_domain_preference_and_ue_usage_setting->length);
@@ -2235,7 +2431,14 @@ int ogs_nas_eps_encode_guti_type(ogs_pkbuf_t *pkbuf, ogs_nas_guti_type_t *guti_t
int ogs_nas_eps_decode_extended_drx_parameters(ogs_nas_extended_drx_parameters_t *extended_drx_parameters, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_drx_parameters_t *source = (ogs_nas_extended_drx_parameters_t *)pkbuf->data;
+ ogs_nas_extended_drx_parameters_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_drx_parameters_t *)pkbuf->data;
extended_drx_parameters->length = source->length;
size = extended_drx_parameters->length + sizeof(extended_drx_parameters->length);
@@ -2274,7 +2477,14 @@ int ogs_nas_eps_encode_extended_drx_parameters(ogs_pkbuf_t *pkbuf, ogs_nas_exten
int ogs_nas_eps_decode_dcn_id(ogs_nas_dcn_id_t *dcn_id, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_dcn_id_t *source = (ogs_nas_dcn_id_t *)pkbuf->data;
+ ogs_nas_dcn_id_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_dcn_id_t *)pkbuf->data;
dcn_id->length = source->length;
size = dcn_id->length + sizeof(dcn_id->length);
@@ -2441,7 +2651,14 @@ int ogs_nas_eps_encode_csfb_response(ogs_pkbuf_t *pkbuf, ogs_nas_csfb_response_t
int ogs_nas_eps_decode_hashmme(ogs_nas_hashmme_t *hashmme, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_hashmme_t *source = (ogs_nas_hashmme_t *)pkbuf->data;
+ ogs_nas_hashmme_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_hashmme_t *)pkbuf->data;
hashmme->length = source->length;
size = hashmme->length + sizeof(hashmme->length);
@@ -2480,7 +2697,14 @@ int ogs_nas_eps_encode_hashmme(ogs_pkbuf_t *pkbuf, ogs_nas_hashmme_t *hashmme)
int ogs_nas_eps_decode_replayed_nas_message_container(ogs_nas_replayed_nas_message_container_t *replayed_nas_message_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_replayed_nas_message_container_t *source = (ogs_nas_replayed_nas_message_container_t *)pkbuf->data;
+ ogs_nas_replayed_nas_message_container_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_replayed_nas_message_container_t *)pkbuf->data;
replayed_nas_message_container->length = be16toh(source->length);
size = replayed_nas_message_container->length + sizeof(replayed_nas_message_container->length);
@@ -2558,7 +2782,14 @@ int ogs_nas_eps_encode_network_policy(ogs_pkbuf_t *pkbuf, ogs_nas_network_policy
int ogs_nas_eps_decode_ue_additional_security_capability(ogs_nas_ue_additional_security_capability_t *ue_additional_security_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_additional_security_capability_t *source = (ogs_nas_ue_additional_security_capability_t *)pkbuf->data;
+ ogs_nas_ue_additional_security_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_additional_security_capability_t *)pkbuf->data;
ue_additional_security_capability->length = source->length;
size = ue_additional_security_capability->length + sizeof(ue_additional_security_capability->length);
@@ -2597,7 +2828,14 @@ int ogs_nas_eps_encode_ue_additional_security_capability(ogs_pkbuf_t *pkbuf, ogs
int ogs_nas_eps_decode_ue_status(ogs_nas_ue_status_t *ue_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_status_t *source = (ogs_nas_ue_status_t *)pkbuf->data;
+ ogs_nas_ue_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_status_t *)pkbuf->data;
ue_status->length = source->length;
size = ue_status->length + sizeof(ue_status->length);
@@ -2670,7 +2908,14 @@ int ogs_nas_eps_encode_additional_information_requested(ogs_pkbuf_t *pkbuf, ogs_
int ogs_nas_eps_decode_ciphering_key_data(ogs_nas_ciphering_key_data_t *ciphering_key_data, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ciphering_key_data_t *source = (ogs_nas_ciphering_key_data_t *)pkbuf->data;
+ ogs_nas_ciphering_key_data_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ciphering_key_data_t *)pkbuf->data;
ciphering_key_data->length = be16toh(source->length);
size = ciphering_key_data->length + sizeof(ciphering_key_data->length);
@@ -2716,7 +2961,14 @@ int ogs_nas_eps_encode_ciphering_key_data(ogs_pkbuf_t *pkbuf, ogs_nas_ciphering_
int ogs_nas_eps_decode_n1_ue_network_capability(ogs_nas_n1_ue_network_capability_t *n1_ue_network_capability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_n1_ue_network_capability_t *source = (ogs_nas_n1_ue_network_capability_t *)pkbuf->data;
+ ogs_nas_n1_ue_network_capability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_n1_ue_network_capability_t *)pkbuf->data;
n1_ue_network_capability->length = source->length;
size = n1_ue_network_capability->length + sizeof(n1_ue_network_capability->length);
@@ -2755,7 +3007,14 @@ int ogs_nas_eps_encode_n1_ue_network_capability(ogs_pkbuf_t *pkbuf, ogs_nas_n1_u
int ogs_nas_eps_decode_ue_radio_capability_id_availability(ogs_nas_ue_radio_capability_id_availability_t *ue_radio_capability_id_availability, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_radio_capability_id_availability_t *source = (ogs_nas_ue_radio_capability_id_availability_t *)pkbuf->data;
+ ogs_nas_ue_radio_capability_id_availability_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_radio_capability_id_availability_t *)pkbuf->data;
ue_radio_capability_id_availability->length = source->length;
size = ue_radio_capability_id_availability->length + sizeof(ue_radio_capability_id_availability->length);
@@ -2794,7 +3053,14 @@ int ogs_nas_eps_encode_ue_radio_capability_id_availability(ogs_pkbuf_t *pkbuf, o
int ogs_nas_eps_decode_ue_radio_capability_id_request(ogs_nas_ue_radio_capability_id_request_t *ue_radio_capability_id_request, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_radio_capability_id_request_t *source = (ogs_nas_ue_radio_capability_id_request_t *)pkbuf->data;
+ ogs_nas_ue_radio_capability_id_request_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_radio_capability_id_request_t *)pkbuf->data;
ue_radio_capability_id_request->length = source->length;
size = ue_radio_capability_id_request->length + sizeof(ue_radio_capability_id_request->length);
@@ -2833,7 +3099,14 @@ int ogs_nas_eps_encode_ue_radio_capability_id_request(ogs_pkbuf_t *pkbuf, ogs_na
int ogs_nas_eps_decode_daylight_saving_time(ogs_nas_daylight_saving_time_t *daylight_saving_time, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_daylight_saving_time_t *source = (ogs_nas_daylight_saving_time_t *)pkbuf->data;
+ ogs_nas_daylight_saving_time_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_daylight_saving_time_t *)pkbuf->data;
daylight_saving_time->length = source->length;
size = daylight_saving_time->length + sizeof(daylight_saving_time->length);
@@ -2872,7 +3145,14 @@ int ogs_nas_eps_encode_daylight_saving_time(ogs_pkbuf_t *pkbuf, ogs_nas_daylight
int ogs_nas_eps_decode_ue_radio_capability_id(ogs_nas_ue_radio_capability_id_t *ue_radio_capability_id, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_radio_capability_id_t *source = (ogs_nas_ue_radio_capability_id_t *)pkbuf->data;
+ ogs_nas_ue_radio_capability_id_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_radio_capability_id_t *)pkbuf->data;
ue_radio_capability_id->length = source->length;
size = ue_radio_capability_id->length + sizeof(ue_radio_capability_id->length);
@@ -2943,7 +3223,14 @@ int ogs_nas_eps_encode_ue_radio_capability_id_deletion_indication(ogs_pkbuf_t *p
int ogs_nas_eps_decode_wus_assistance_information(ogs_nas_wus_assistance_information_t *wus_assistance_information, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_wus_assistance_information_t *source = (ogs_nas_wus_assistance_information_t *)pkbuf->data;
+ ogs_nas_wus_assistance_information_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_wus_assistance_information_t *)pkbuf->data;
wus_assistance_information->length = source->length;
size = wus_assistance_information->length + sizeof(wus_assistance_information->length);
@@ -2982,7 +3269,14 @@ int ogs_nas_eps_encode_wus_assistance_information(ogs_pkbuf_t *pkbuf, ogs_nas_wu
int ogs_nas_eps_decode_nb_s1_drx_parameter(ogs_nas_nb_s1_drx_parameter_t *nb_s1_drx_parameter, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_nb_s1_drx_parameter_t *source = (ogs_nas_nb_s1_drx_parameter_t *)pkbuf->data;
+ ogs_nas_nb_s1_drx_parameter_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_nb_s1_drx_parameter_t *)pkbuf->data;
nb_s1_drx_parameter->length = source->length;
size = nb_s1_drx_parameter->length + sizeof(nb_s1_drx_parameter->length);
@@ -3021,7 +3315,14 @@ int ogs_nas_eps_encode_nb_s1_drx_parameter(ogs_pkbuf_t *pkbuf, ogs_nas_nb_s1_drx
int ogs_nas_eps_decode_imsi_offset(ogs_nas_imsi_offset_t *imsi_offset, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_imsi_offset_t *source = (ogs_nas_imsi_offset_t *)pkbuf->data;
+ ogs_nas_imsi_offset_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_imsi_offset_t *)pkbuf->data;
imsi_offset->length = source->length;
size = imsi_offset->length + sizeof(imsi_offset->length);
@@ -3060,7 +3361,14 @@ int ogs_nas_eps_encode_imsi_offset(ogs_pkbuf_t *pkbuf, ogs_nas_imsi_offset_t *im
int ogs_nas_eps_decode_ue_request_type(ogs_nas_ue_request_type_t *ue_request_type, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_ue_request_type_t *source = (ogs_nas_ue_request_type_t *)pkbuf->data;
+ ogs_nas_ue_request_type_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_ue_request_type_t *)pkbuf->data;
ue_request_type->length = source->length;
size = ue_request_type->length + sizeof(ue_request_type->length);
@@ -3099,7 +3407,14 @@ int ogs_nas_eps_encode_ue_request_type(ogs_pkbuf_t *pkbuf, ogs_nas_ue_request_ty
int ogs_nas_eps_decode_paging_restriction(ogs_nas_paging_restriction_t *paging_restriction, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_paging_restriction_t *source = (ogs_nas_paging_restriction_t *)pkbuf->data;
+ ogs_nas_paging_restriction_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_paging_restriction_t *)pkbuf->data;
paging_restriction->length = source->length;
size = paging_restriction->length + sizeof(paging_restriction->length);
@@ -3138,7 +3453,14 @@ int ogs_nas_eps_encode_paging_restriction(ogs_pkbuf_t *pkbuf, ogs_nas_paging_res
int ogs_nas_eps_decode_eps_additional_request_result(ogs_nas_eps_additional_request_result_t *eps_additional_request_result, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_additional_request_result_t *source = (ogs_nas_eps_additional_request_result_t *)pkbuf->data;
+ ogs_nas_eps_additional_request_result_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_additional_request_result_t *)pkbuf->data;
eps_additional_request_result->length = source->length;
size = eps_additional_request_result->length + sizeof(eps_additional_request_result->length);
@@ -3279,7 +3601,14 @@ int ogs_nas_eps_encode_emm_cause(ogs_pkbuf_t *pkbuf, ogs_nas_emm_cause_t *emm_ca
int ogs_nas_eps_decode_access_point_name(ogs_nas_access_point_name_t *access_point_name, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_access_point_name_t *source = (ogs_nas_access_point_name_t *)pkbuf->data;
+ ogs_nas_access_point_name_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_access_point_name_t *)pkbuf->data;
access_point_name->length = source->length;
size = access_point_name->length + sizeof(access_point_name->length);
@@ -3331,7 +3660,14 @@ int ogs_nas_eps_encode_access_point_name(ogs_pkbuf_t *pkbuf, ogs_nas_access_poin
int ogs_nas_eps_decode_protocol_configuration_options(ogs_nas_protocol_configuration_options_t *protocol_configuration_options, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_protocol_configuration_options_t *source = (ogs_nas_protocol_configuration_options_t *)pkbuf->data;
+ ogs_nas_protocol_configuration_options_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_protocol_configuration_options_t *)pkbuf->data;
protocol_configuration_options->length = source->length;
size = protocol_configuration_options->length + sizeof(protocol_configuration_options->length);
@@ -3370,7 +3706,14 @@ int ogs_nas_eps_encode_protocol_configuration_options(ogs_pkbuf_t *pkbuf, ogs_na
int ogs_nas_eps_decode_quality_of_service(ogs_nas_quality_of_service_t *quality_of_service, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_quality_of_service_t *source = (ogs_nas_quality_of_service_t *)pkbuf->data;
+ ogs_nas_quality_of_service_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_quality_of_service_t *)pkbuf->data;
quality_of_service->length = source->length;
size = quality_of_service->length + sizeof(quality_of_service->length);
@@ -3441,7 +3784,14 @@ int ogs_nas_eps_encode_radio_priority(ogs_pkbuf_t *pkbuf, ogs_nas_radio_priority
int ogs_nas_eps_decode_re_attempt_indicator(ogs_nas_re_attempt_indicator_t *re_attempt_indicator, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_re_attempt_indicator_t *source = (ogs_nas_re_attempt_indicator_t *)pkbuf->data;
+ ogs_nas_re_attempt_indicator_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_re_attempt_indicator_t *)pkbuf->data;
re_attempt_indicator->length = source->length;
size = re_attempt_indicator->length + sizeof(re_attempt_indicator->length);
@@ -3514,7 +3864,14 @@ int ogs_nas_eps_encode_request_type(ogs_pkbuf_t *pkbuf, ogs_nas_request_type_t *
int ogs_nas_eps_decode_traffic_flow_aggregate_description(ogs_nas_traffic_flow_aggregate_description_t *traffic_flow_aggregate_description, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_traffic_flow_aggregate_description_t *source = (ogs_nas_traffic_flow_aggregate_description_t *)pkbuf->data;
+ ogs_nas_traffic_flow_aggregate_description_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_traffic_flow_aggregate_description_t *)pkbuf->data;
traffic_flow_aggregate_description->length = source->length;
size = traffic_flow_aggregate_description->length + sizeof(traffic_flow_aggregate_description->length);
@@ -3553,7 +3910,14 @@ int ogs_nas_eps_encode_traffic_flow_aggregate_description(ogs_pkbuf_t *pkbuf, og
int ogs_nas_eps_decode_traffic_flow_template(ogs_nas_traffic_flow_template_t *traffic_flow_template, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_traffic_flow_template_t *source = (ogs_nas_traffic_flow_template_t *)pkbuf->data;
+ ogs_nas_traffic_flow_template_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_traffic_flow_template_t *)pkbuf->data;
traffic_flow_template->length = source->length;
size = traffic_flow_template->length + sizeof(traffic_flow_template->length);
@@ -3592,7 +3956,14 @@ int ogs_nas_eps_encode_traffic_flow_template(ogs_pkbuf_t *pkbuf, ogs_nas_traffic
int ogs_nas_eps_decode_transaction_identifier(ogs_nas_transaction_identifier_t *transaction_identifier, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_transaction_identifier_t *source = (ogs_nas_transaction_identifier_t *)pkbuf->data;
+ ogs_nas_transaction_identifier_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_transaction_identifier_t *)pkbuf->data;
transaction_identifier->length = source->length;
size = transaction_identifier->length + sizeof(transaction_identifier->length);
@@ -3663,7 +4034,14 @@ int ogs_nas_eps_encode_wlan_offload_acceptability(ogs_pkbuf_t *pkbuf, ogs_nas_wl
int ogs_nas_eps_decode_nbifom_container(ogs_nas_nbifom_container_t *nbifom_container, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_nbifom_container_t *source = (ogs_nas_nbifom_container_t *)pkbuf->data;
+ ogs_nas_nbifom_container_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_nbifom_container_t *)pkbuf->data;
nbifom_container->length = source->length;
size = nbifom_container->length + sizeof(nbifom_container->length);
@@ -3702,7 +4080,14 @@ int ogs_nas_eps_encode_nbifom_container(ogs_pkbuf_t *pkbuf, ogs_nas_nbifom_conta
int ogs_nas_eps_decode_apn_aggregate_maximum_bit_rate(ogs_nas_apn_aggregate_maximum_bit_rate_t *apn_aggregate_maximum_bit_rate, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_apn_aggregate_maximum_bit_rate_t *source = (ogs_nas_apn_aggregate_maximum_bit_rate_t *)pkbuf->data;
+ ogs_nas_apn_aggregate_maximum_bit_rate_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_apn_aggregate_maximum_bit_rate_t *)pkbuf->data;
apn_aggregate_maximum_bit_rate->length = source->length;
size = apn_aggregate_maximum_bit_rate->length + sizeof(apn_aggregate_maximum_bit_rate->length);
@@ -3741,7 +4126,14 @@ int ogs_nas_eps_encode_apn_aggregate_maximum_bit_rate(ogs_pkbuf_t *pkbuf, ogs_na
int ogs_nas_eps_decode_header_compression_configuration(ogs_nas_header_compression_configuration_t *header_compression_configuration, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_header_compression_configuration_t *source = (ogs_nas_header_compression_configuration_t *)pkbuf->data;
+ ogs_nas_header_compression_configuration_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_header_compression_configuration_t *)pkbuf->data;
header_compression_configuration->length = source->length;
size = header_compression_configuration->length + sizeof(header_compression_configuration->length);
@@ -3816,7 +4208,14 @@ int ogs_nas_eps_encode_control_plane_only_indication(ogs_pkbuf_t *pkbuf, ogs_nas
int ogs_nas_eps_decode_extended_protocol_configuration_options(ogs_nas_extended_protocol_configuration_options_t *extended_protocol_configuration_options, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_protocol_configuration_options_t *source = (ogs_nas_extended_protocol_configuration_options_t *)pkbuf->data;
+ ogs_nas_extended_protocol_configuration_options_t *source = NULL;
+
+ if (pkbuf->len < 2) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_protocol_configuration_options_t *)pkbuf->data;
extended_protocol_configuration_options->length = be16toh(source->length);
size = extended_protocol_configuration_options->length + sizeof(extended_protocol_configuration_options->length);
@@ -3862,7 +4261,14 @@ int ogs_nas_eps_encode_extended_protocol_configuration_options(ogs_pkbuf_t *pkbu
int ogs_nas_eps_decode_header_compression_configuration_status(ogs_nas_header_compression_configuration_status_t *header_compression_configuration_status, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_header_compression_configuration_status_t *source = (ogs_nas_header_compression_configuration_status_t *)pkbuf->data;
+ ogs_nas_header_compression_configuration_status_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_header_compression_configuration_status_t *)pkbuf->data;
header_compression_configuration_status->length = source->length;
size = header_compression_configuration_status->length + sizeof(header_compression_configuration_status->length);
@@ -3901,7 +4307,14 @@ int ogs_nas_eps_encode_header_compression_configuration_status(ogs_pkbuf_t *pkbu
int ogs_nas_eps_decode_serving_plmn_rate_control(ogs_nas_serving_plmn_rate_control_t *serving_plmn_rate_control, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_serving_plmn_rate_control_t *source = (ogs_nas_serving_plmn_rate_control_t *)pkbuf->data;
+ ogs_nas_serving_plmn_rate_control_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_serving_plmn_rate_control_t *)pkbuf->data;
serving_plmn_rate_control->length = source->length;
size = serving_plmn_rate_control->length + sizeof(serving_plmn_rate_control->length);
@@ -3940,7 +4353,14 @@ int ogs_nas_eps_encode_serving_plmn_rate_control(ogs_pkbuf_t *pkbuf, ogs_nas_ser
int ogs_nas_eps_decode_extended_apn_aggregate_maximum_bit_rate(ogs_nas_extended_apn_aggregate_maximum_bit_rate_t *extended_apn_aggregate_maximum_bit_rate, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_apn_aggregate_maximum_bit_rate_t *source = (ogs_nas_extended_apn_aggregate_maximum_bit_rate_t *)pkbuf->data;
+ ogs_nas_extended_apn_aggregate_maximum_bit_rate_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_apn_aggregate_maximum_bit_rate_t *)pkbuf->data;
extended_apn_aggregate_maximum_bit_rate->length = source->length;
size = extended_apn_aggregate_maximum_bit_rate->length + sizeof(extended_apn_aggregate_maximum_bit_rate->length);
@@ -4011,7 +4431,14 @@ int ogs_nas_eps_encode_connectivity_type(ogs_pkbuf_t *pkbuf, ogs_nas_connectivit
int ogs_nas_eps_decode_eps_quality_of_service(ogs_nas_eps_quality_of_service_t *eps_quality_of_service, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_eps_quality_of_service_t *source = (ogs_nas_eps_quality_of_service_t *)pkbuf->data;
+ ogs_nas_eps_quality_of_service_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_eps_quality_of_service_t *)pkbuf->data;
eps_quality_of_service->length = source->length;
size = eps_quality_of_service->length + sizeof(eps_quality_of_service->length);
@@ -4050,7 +4477,14 @@ int ogs_nas_eps_encode_eps_quality_of_service(ogs_pkbuf_t *pkbuf, ogs_nas_eps_qu
int ogs_nas_eps_decode_extended_quality_of_service(ogs_nas_extended_quality_of_service_t *extended_quality_of_service, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_extended_quality_of_service_t *source = (ogs_nas_extended_quality_of_service_t *)pkbuf->data;
+ ogs_nas_extended_quality_of_service_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_extended_quality_of_service_t *)pkbuf->data;
extended_quality_of_service->length = source->length;
size = extended_quality_of_service->length + sizeof(extended_quality_of_service->length);
@@ -4223,7 +4657,14 @@ int ogs_nas_eps_encode_llc_service_access_point_identifier(ogs_pkbuf_t *pkbuf, o
int ogs_nas_eps_decode_packet_flow_identifier(ogs_nas_packet_flow_identifier_t *packet_flow_identifier, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_packet_flow_identifier_t *source = (ogs_nas_packet_flow_identifier_t *)pkbuf->data;
+ ogs_nas_packet_flow_identifier_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_packet_flow_identifier_t *)pkbuf->data;
packet_flow_identifier->length = source->length;
size = packet_flow_identifier->length + sizeof(packet_flow_identifier->length);
@@ -4262,7 +4703,14 @@ int ogs_nas_eps_encode_packet_flow_identifier(ogs_pkbuf_t *pkbuf, ogs_nas_packet
int ogs_nas_eps_decode_pdn_address(ogs_nas_pdn_address_t *pdn_address, ogs_pkbuf_t *pkbuf)
{
int size = 0;
- ogs_nas_pdn_address_t *source = (ogs_nas_pdn_address_t *)pkbuf->data;
+ ogs_nas_pdn_address_t *source = NULL;
+
+ if (pkbuf->len < 1) {
+ ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
+ return -1;
+ }
+
+ source = (ogs_nas_pdn_address_t *)pkbuf->data;
pdn_address->length = source->length;
size = pdn_address->length + sizeof(pdn_address->length);
diff --git a/lib/nas/eps/ies.h b/lib/nas/eps/ies.h
index 5235f3a8d0..4e4b797ec5 100644
--- a/lib/nas/eps/ies.h
+++ b/lib/nas/eps/ies.h
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-02 22:57:51.844510 by acetcom
+ * Created on: 2024-01-21 18:50:03.400537 by acetcom
* from 24301-h90.docx
******************************************************************************/
diff --git a/lib/nas/eps/message.h b/lib/nas/eps/message.h
index 058f3b9975..424f174d17 100644
--- a/lib/nas/eps/message.h
+++ b/lib/nas/eps/message.h
@@ -28,7 +28,7 @@
/*******************************************************************************
* This file had been created by nas-message.py script v0.1.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-03-02 22:57:51.852650 by acetcom
+ * Created on: 2024-01-21 18:50:03.409367 by acetcom
* from 24301-h90.docx
******************************************************************************/
diff --git a/lib/nas/eps/support/nas-message.py b/lib/nas/eps/support/nas-message.py
index 421238888d..03a47c3206 100644
--- a/lib/nas/eps/support/nas-message.py
+++ b/lib/nas/eps/support/nas-message.py
@@ -461,7 +461,12 @@ def write_cells_to_file(name, cells):
f.write("int ogs_nas_eps_decode_%s(ogs_nas_%s_t *%s, ogs_pkbuf_t *pkbuf)\n" % (v_lower(k), v_lower(k), v_lower(k)))
f.write("{\n")
f.write(" int size = 0;\n")
- f.write(" ogs_nas_%s_t *source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % (v_lower(k), v_lower(k)))
+ f.write(" ogs_nas_%s_t *source = NULL;\n\n" % v_lower(k))
+ f.write(" if (pkbuf->len < 2) {\n")
+ f.write(" ogs_error(\"Not enough pkbuf [len:%d]\", pkbuf->len);\n")
+ f.write(" return -1;\n")
+ f.write(" }\n\n")
+ f.write(" source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % v_lower(k))
f.write(" %s->length = be16toh(source->length);\n" % v_lower(k))
f.write(" size = %s->length + sizeof(%s->length);\n\n" % (v_lower(k), v_lower(k)))
f.write(" if (ogs_pkbuf_pull(pkbuf, size) == NULL) {\n")
@@ -494,7 +499,12 @@ def write_cells_to_file(name, cells):
f.write("int ogs_nas_eps_decode_%s(ogs_nas_%s_t *%s, ogs_pkbuf_t *pkbuf)\n" % (v_lower(k), v_lower(k), v_lower(k)))
f.write("{\n")
f.write(" int size = 0;\n")
- f.write(" ogs_nas_%s_t *source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % (v_lower(k), v_lower(k)))
+ f.write(" ogs_nas_%s_t *source = NULL;\n\n" % v_lower(k))
+ f.write(" if (pkbuf->len < 1) {\n")
+ f.write(" ogs_error(\"Not enough pkbuf [len:%d]\", pkbuf->len);\n")
+ f.write(" return -1;\n")
+ f.write(" }\n\n")
+ f.write(" source = (ogs_nas_%s_t *)pkbuf->data;\n\n" % v_lower(k))
f.write(" %s->length = source->length;\n" % v_lower(k))
f.write(" size = %s->length + sizeof(%s->length);\n\n" % (v_lower(k), v_lower(k)))
f.write(" if (ogs_pkbuf_pull(pkbuf, size) == NULL) {\n")
@@ -747,15 +757,14 @@ def write_cells_to_file(name, cells):
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_eps_message_t));
size = sizeof(ogs_nas_emm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_eps_message_t));
memcpy(&message->emm.h, pkbuf->data - size, size);
decoded += size;
@@ -806,15 +815,14 @@ def write_cells_to_file(name, cells):
ogs_assert(pkbuf);
ogs_assert(pkbuf->data);
- ogs_assert(pkbuf->len);
-
- memset(message, 0, sizeof(ogs_nas_eps_message_t));
size = sizeof(ogs_nas_esm_header_t);
if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
return OGS_ERROR;
}
+
+ memset(message, 0, sizeof(ogs_nas_eps_message_t));
memcpy(&message->esm.h, pkbuf->data - size, size);
decoded += size;
diff --git a/lib/ngap/build.c b/lib/ngap/build.c
index d306a534f5..8f2675862a 100644
--- a/lib/ngap/build.c
+++ b/lib/ngap/build.c
@@ -20,7 +20,7 @@
#include "ogs-ngap.h"
ogs_pkbuf_t *ogs_ngap_build_error_indication(
- uint32_t *ran_ue_ngap_id,
+ uint64_t *ran_ue_ngap_id,
uint64_t *amf_ue_ngap_id,
NGAP_Cause_PR group, long cause)
{
@@ -72,7 +72,7 @@ ogs_pkbuf_t *ogs_ngap_build_error_indication(
RAN_UE_NGAP_ID = &ie->value.choice.RAN_UE_NGAP_ID;
*RAN_UE_NGAP_ID = *ran_ue_ngap_id;
- ogs_debug(" RAN_UE_NGAP_ID[%d]", (int)*ran_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld]", (long long)*ran_ue_ngap_id);
}
ie = CALLOC(1, sizeof(NGAP_ErrorIndicationIEs_t));
@@ -155,7 +155,7 @@ ogs_pkbuf_t *ogs_ngap_build_ng_reset(
void ogs_ngap_build_part_of_ng_interface(
NGAP_UE_associatedLogicalNG_connectionList_t *partOfNG_Interface,
- uint32_t *ran_ue_ngap_id, uint64_t *amf_ue_ngap_id)
+ uint64_t *ran_ue_ngap_id, uint64_t *amf_ue_ngap_id)
{
NGAP_UE_associatedLogicalNG_connectionItem_t *item = NULL;
@@ -223,7 +223,7 @@ ogs_pkbuf_t *ogs_ngap_build_ng_reset_ack(
for (i = 0; i < partOfNG_Interface->list.count; i++) {
NGAP_UE_associatedLogicalNG_connectionItem_t *item = NULL;
uint64_t amf_ue_ngap_id = 0;
- uint32_t ran_ue_ngap_id = 0;
+ uint64_t ran_ue_ngap_id = 0;
item = partOfNG_Interface->list.array[i];
ogs_assert(item);
@@ -235,8 +235,7 @@ ogs_pkbuf_t *ogs_ngap_build_ng_reset_ack(
}
if (item->aMF_UE_NGAP_ID)
- asn_INTEGER2ulong(item->aMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id);
+ asn_INTEGER2uint64(item->aMF_UE_NGAP_ID, &amf_ue_ngap_id);
if (item->rAN_UE_NGAP_ID)
ran_ue_ngap_id = *item->rAN_UE_NGAP_ID;
@@ -246,8 +245,8 @@ ogs_pkbuf_t *ogs_ngap_build_ng_reset_ack(
item->rAN_UE_NGAP_ID ? &ran_ue_ngap_id : NULL,
item->aMF_UE_NGAP_ID ? &amf_ue_ngap_id : NULL);
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- item->rAN_UE_NGAP_ID ? ran_ue_ngap_id : -1,
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ item->rAN_UE_NGAP_ID ? (long long)ran_ue_ngap_id : -1,
item->aMF_UE_NGAP_ID ? (long long)amf_ue_ngap_id : -1);
}
}
diff --git a/lib/ngap/build.h b/lib/ngap/build.h
index ec45cbb399..b782568045 100644
--- a/lib/ngap/build.h
+++ b/lib/ngap/build.h
@@ -29,7 +29,7 @@ extern "C" {
#endif
ogs_pkbuf_t *ogs_ngap_build_error_indication(
- uint32_t *ran_ue_ngap_id,
+ uint64_t *ran_ue_ngap_id,
uint64_t *amf_ue_ngap_id,
NGAP_Cause_PR group, long cause);
@@ -39,7 +39,7 @@ ogs_pkbuf_t *ogs_ngap_build_ng_reset(
void ogs_ngap_build_part_of_ng_interface(
NGAP_UE_associatedLogicalNG_connectionList_t *partOfNG_Interface,
- uint32_t *ran_ue_ngap_id, uint64_t *amf_ue_ngap_id);
+ uint64_t *ran_ue_ngap_id, uint64_t *amf_ue_ngap_id);
ogs_pkbuf_t *ogs_ngap_build_ng_reset_ack(
NGAP_UE_associatedLogicalNG_connectionList_t *partOfNG_Interface);
diff --git a/lib/pfcp/build.c b/lib/pfcp/build.c
index 56899bd767..ec7086d804 100644
--- a/lib/pfcp/build.c
+++ b/lib/pfcp/build.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -355,6 +355,11 @@ void ogs_pfcp_build_create_pdr(
message->pdi.source_interface.presence = 1;
message->pdi.source_interface.u8 = pdr->src_if;
+ if (pdr->src_if_type_presence) {
+ message->pdi.source_interface_type.presence = 1;
+ message->pdi.source_interface_type.u8 = pdr->src_if_type;
+ }
+
if (pdr->dnn) {
message->pdi.network_instance.presence = 1;
message->pdi.network_instance.len = ogs_fqdn_build(
@@ -364,10 +369,19 @@ void ogs_pfcp_build_create_pdr(
memset(pfcp_sdf_filter, 0, sizeof(pfcp_sdf_filter));
for (j = 0; j < pdr->num_of_flow && j < OGS_MAX_NUM_OF_FLOW_IN_PDR; j++) {
- pfcp_sdf_filter[j].fd = 1;
- pfcp_sdf_filter[j].flow_description_len =
- strlen(pdr->flow_description[j]);
- pfcp_sdf_filter[j].flow_description = pdr->flow_description[j];
+ ogs_assert(pdr->flow[j].fd || pdr->flow[j].bid);
+
+ if (pdr->flow[j].fd) {
+ pfcp_sdf_filter[j].fd = 1;
+ pfcp_sdf_filter[j].flow_description_len =
+ strlen(pdr->flow[j].description);
+ pfcp_sdf_filter[j].flow_description = pdr->flow[j].description;
+ }
+ if (pdr->flow[j].bid) {
+ pfcp_sdf_filter[j].bid = 1;
+ pfcp_sdf_filter[j].sdf_filter_id = pdr->flow[j].sdf_filter_id;
+ }
+
len = sizeof(ogs_pfcp_sdf_filter_t) +
pfcp_sdf_filter[j].flow_description_len;
@@ -467,7 +481,8 @@ bool ogs_pfcp_build_created_pdr(
}
void ogs_pfcp_build_update_pdr(
- ogs_pfcp_tlv_update_pdr_t *message, int i, ogs_pfcp_pdr_t *pdr)
+ ogs_pfcp_tlv_update_pdr_t *message, int i,
+ ogs_pfcp_pdr_t *pdr, uint64_t modify_flags)
{
ogs_pfcp_sdf_filter_t pfcp_sdf_filter[OGS_MAX_NUM_OF_FLOW_IN_PDR];
int j = 0;
@@ -476,55 +491,60 @@ void ogs_pfcp_build_update_pdr(
ogs_assert(message);
ogs_assert(pdr);
+ ogs_assert(modify_flags &
+ (OGS_PFCP_MODIFY_TFT_NEW|OGS_PFCP_MODIFY_TFT_ADD|
+ OGS_PFCP_MODIFY_TFT_REPLACE|OGS_PFCP_MODIFY_TFT_DELETE|
+ OGS_PFCP_MODIFY_EPC_TFT_UPDATE|
+ OGS_PFCP_MODIFY_OUTER_HEADER_REMOVAL));
+
message->presence = 1;
message->pdr_id.presence = 1;
message->pdr_id.u16 = pdr->id;
- message->pdi.presence = 1;
- message->pdi.source_interface.presence = 1;
- message->pdi.source_interface.u8 = pdr->src_if;
-
- if (pdr->dnn) {
- message->pdi.network_instance.presence = 1;
- message->pdi.network_instance.len = ogs_fqdn_build(
- pdrbuf[i].dnn, pdr->dnn, strlen(pdr->dnn));
- message->pdi.network_instance.data = pdrbuf[i].dnn;
- }
-
- memset(pfcp_sdf_filter, 0, sizeof(pfcp_sdf_filter));
- for (j = 0; j < pdr->num_of_flow && j < OGS_MAX_NUM_OF_FLOW_IN_PDR; j++) {
- pfcp_sdf_filter[j].fd = 1;
- pfcp_sdf_filter[j].flow_description_len =
- strlen(pdr->flow_description[j]);
- pfcp_sdf_filter[j].flow_description = pdr->flow_description[j];
- len = sizeof(ogs_pfcp_sdf_filter_t) +
- pfcp_sdf_filter[j].flow_description_len;
+ if (modify_flags &
+ (OGS_PFCP_MODIFY_TFT_NEW|OGS_PFCP_MODIFY_TFT_ADD|
+ OGS_PFCP_MODIFY_TFT_REPLACE|OGS_PFCP_MODIFY_TFT_DELETE|
+ OGS_PFCP_MODIFY_EPC_TFT_UPDATE)) {
+ message->pdi.presence = 1;
+ message->pdi.source_interface.presence = 1;
+ message->pdi.source_interface.u8 = pdr->src_if;
+
+ if (pdr->src_if_type_presence) {
+ message->pdi.source_interface_type.presence = 1;
+ message->pdi.source_interface_type.u8 = pdr->src_if_type;
+ }
- message->pdi.sdf_filter[j].presence = 1;
- pdrbuf[i].sdf_filter[j] = ogs_calloc(1, len);
- ogs_assert(pdrbuf[i].sdf_filter[j]);
- ogs_pfcp_build_sdf_filter(&message->pdi.sdf_filter[j],
- &pfcp_sdf_filter[j], pdrbuf[i].sdf_filter[j], len);
- }
+ memset(pfcp_sdf_filter, 0, sizeof(pfcp_sdf_filter));
+ for (j = 0; j < pdr->num_of_flow && j < OGS_MAX_NUM_OF_FLOW_IN_PDR; j++) {
+ ogs_assert(pdr->flow[j].fd || pdr->flow[j].bid);
- if (pdr->ue_ip_addr_len) {
- message->pdi.ue_ip_address.presence = 1;
- message->pdi.ue_ip_address.data = &pdr->ue_ip_addr;
- message->pdi.ue_ip_address.len = pdr->ue_ip_addr_len;
- }
+ if (pdr->flow[j].fd) {
+ pfcp_sdf_filter[j].fd = 1;
+ pfcp_sdf_filter[j].flow_description_len =
+ strlen(pdr->flow[j].description);
+ pfcp_sdf_filter[j].flow_description = pdr->flow[j].description;
+ }
+ if (pdr->flow[j].bid) {
+ pfcp_sdf_filter[j].bid = 1;
+ pfcp_sdf_filter[j].sdf_filter_id = pdr->flow[j].sdf_filter_id;
+ }
- if (pdr->f_teid_len) {
- memcpy(&pdrbuf[i].f_teid, &pdr->f_teid, pdr->f_teid_len);
- pdrbuf[i].f_teid.teid = htobe32(pdr->f_teid.teid);
+ len = sizeof(ogs_pfcp_sdf_filter_t) +
+ pfcp_sdf_filter[j].flow_description_len;
- message->pdi.local_f_teid.presence = 1;
- message->pdi.local_f_teid.data = &pdrbuf[i].f_teid;
- message->pdi.local_f_teid.len = pdr->f_teid_len;
+ message->pdi.sdf_filter[j].presence = 1;
+ pdrbuf[i].sdf_filter[j] = ogs_calloc(1, len);
+ ogs_assert(pdrbuf[i].sdf_filter[j]);
+ ogs_pfcp_build_sdf_filter(&message->pdi.sdf_filter[j],
+ &pfcp_sdf_filter[j], pdrbuf[i].sdf_filter[j], len);
+ }
}
-
- if (pdr->qfi) {
- message->pdi.qfi.presence = 1;
- message->pdi.qfi.u8 = pdr->qfi;
+ if (modify_flags & OGS_PFCP_MODIFY_OUTER_HEADER_REMOVAL) {
+ if (pdr->outer_header_removal_len) {
+ message->outer_header_removal.presence = 1;
+ message->outer_header_removal.data = &pdr->outer_header_removal;
+ message->outer_header_removal.len = pdr->outer_header_removal_len;
+ }
}
}
@@ -556,6 +576,13 @@ void ogs_pfcp_build_create_far(
message->forwarding_parameters.destination_interface.u8 =
far->dst_if;
+ if (far->dst_if_type_presence) {
+ message->forwarding_parameters.destination_interface_type.
+ presence = 1;
+ message->forwarding_parameters.destination_interface_type.
+ u8 = far->dst_if_type;
+ }
+
if (far->dnn) {
message->forwarding_parameters.network_instance.presence = 1;
message->forwarding_parameters.network_instance.len =
@@ -627,6 +654,13 @@ void ogs_pfcp_build_update_far_activate(
message->update_forwarding_parameters.
destination_interface.u8 = far->dst_if;
+ if (far->dst_if_type_presence) {
+ message->update_forwarding_parameters.destination_interface_type.
+ presence = 1;
+ message->update_forwarding_parameters.destination_interface_type.
+ u8 = far->dst_if_type;
+ }
+
if (far->dnn) {
message->update_forwarding_parameters.network_instance.presence = 1;
message->update_forwarding_parameters.network_instance.len =
@@ -755,21 +789,23 @@ void ogs_pfcp_build_update_urr(
/* No change requested, skip. */
if (!(modify_flags & (OGS_PFCP_MODIFY_URR_MEAS_METHOD|
OGS_PFCP_MODIFY_URR_REPORT_TRIGGER|
- OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME|
- OGS_PFCP_MODIFY_URR_VOLUME_QUOTA|
OGS_PFCP_MODIFY_URR_VOLUME_THRESH|
+ OGS_PFCP_MODIFY_URR_VOLUME_QUOTA|
+ OGS_PFCP_MODIFY_URR_TIME_THRESH|
OGS_PFCP_MODIFY_URR_TIME_QUOTA|
- OGS_PFCP_MODIFY_URR_TIME_THRESH)))
+ OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME)))
return;
/* Change request: Send only changed IEs */
message->presence = 1;
message->urr_id.presence = 1;
message->urr_id.u32 = urr->id;
+
if (modify_flags & OGS_PFCP_MODIFY_URR_MEAS_METHOD) {
message->measurement_method.presence = 1;
message->measurement_method.u8 = urr->meas_method;
}
+
if (modify_flags & OGS_PFCP_MODIFY_URR_REPORT_TRIGGER) {
message->reporting_triggers.presence = 1;
message->reporting_triggers.u24 = (urr->rep_triggers.reptri_5 << 16)
@@ -786,12 +822,35 @@ void ogs_pfcp_build_update_urr(
}
}
+ if (modify_flags & OGS_PFCP_MODIFY_URR_VOLUME_QUOTA) {
+ if (urr->vol_quota.flags) {
+ message->volume_quota.presence = 1;
+ ogs_pfcp_build_volume(
+ &message->volume_quota, &urr->vol_quota,
+ &urrbuf[i].vol_quota, sizeof(urrbuf[i].vol_quota));
+ }
+ }
+
if (modify_flags & OGS_PFCP_MODIFY_URR_TIME_THRESH) {
if (urr->time_threshold) {
message->time_threshold.presence = 1;
message->time_threshold.u32 = urr->time_threshold;
}
}
+
+ if (modify_flags & OGS_PFCP_MODIFY_URR_TIME_QUOTA) {
+ if (urr->time_quota) {
+ message->time_quota.presence = 1;
+ message->time_quota.u32 = urr->time_quota;
+ }
+ }
+
+ if (modify_flags & OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME) {
+ if (urr->quota_validity_time) {
+ message->quota_validity_time.presence = 1;
+ message->quota_validity_time.u32 = urr->quota_validity_time;
+ }
+ }
}
static struct {
diff --git a/lib/pfcp/build.h b/lib/pfcp/build.h
index eb83f2f61d..538d93e2f2 100644
--- a/lib/pfcp/build.h
+++ b/lib/pfcp/build.h
@@ -43,7 +43,8 @@ void ogs_pfcp_build_create_pdr(
bool ogs_pfcp_build_created_pdr(
ogs_pfcp_tlv_created_pdr_t *message, int i, ogs_pfcp_pdr_t *pdr);
void ogs_pfcp_build_update_pdr(
- ogs_pfcp_tlv_update_pdr_t *message, int i, ogs_pfcp_pdr_t *pdr);
+ ogs_pfcp_tlv_update_pdr_t *message, int i,
+ ogs_pfcp_pdr_t *pdr, uint64_t modify_flags);
void ogs_pfcp_build_create_far(
ogs_pfcp_tlv_create_far_t *message, int i, ogs_pfcp_far_t *far);
diff --git a/lib/pfcp/context.c b/lib/pfcp/context.c
index 3a44ff35ae..439de9a244 100644
--- a/lib/pfcp/context.c
+++ b/lib/pfcp/context.c
@@ -26,7 +26,6 @@ static int context_initialized = 0;
static OGS_POOL(ogs_pfcp_node_pool, ogs_pfcp_node_t);
-static OGS_POOL(ogs_pfcp_sess_pool, ogs_pfcp_sess_t);
static OGS_POOL(ogs_pfcp_far_pool, ogs_pfcp_far_t);
static OGS_POOL(ogs_pfcp_urr_pool, ogs_pfcp_urr_t);
static OGS_POOL(ogs_pfcp_qer_pool, ogs_pfcp_qer_t);
@@ -55,8 +54,6 @@ void ogs_pfcp_context_init(void)
ogs_pool_init(&ogs_pfcp_node_pool, ogs_app()->pool.nf);
- ogs_pool_init(&ogs_pfcp_sess_pool, ogs_app()->pool.sess);
-
ogs_pool_init(&ogs_pfcp_far_pool,
ogs_app()->pool.sess * OGS_MAX_NUM_OF_FAR);
ogs_pool_init(&ogs_pfcp_urr_pool,
@@ -116,7 +113,6 @@ void ogs_pfcp_context_final(void)
ogs_pool_final(&ogs_pfcp_pdr_teid_pool);
ogs_free(pdr_random_to_index);
- ogs_pool_final(&ogs_pfcp_sess_pool);
ogs_pool_final(&ogs_pfcp_far_pool);
ogs_pool_final(&ogs_pfcp_urr_pool);
ogs_pool_final(&ogs_pfcp_qer_pool);
@@ -154,7 +150,9 @@ static int ogs_pfcp_check_subnet_overlapping(void)
ogs_list_for_each(&self.subnet_list, subnet){
for (next_subnet = ogs_list_next(subnet); (next_subnet);
next_subnet = ogs_list_next(next_subnet)) {
- if (strcmp(subnet->dnn, next_subnet->dnn) == 0 &&
+ if ((strlen(subnet->dnn) == 0 ||
+ strlen(next_subnet->dnn) == 0 ||
+ (strcmp(subnet->dnn, next_subnet->dnn)) == 0) &&
subnet->gw.family == next_subnet->gw.family) {
uint32_t *addr1 = subnet->sub.sub;
uint32_t *addr2 = next_subnet->sub.sub;
@@ -217,6 +215,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -228,7 +227,8 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, local)) {
+ if ((!strcmp(root_key, local)) &&
+ idx++ == ogs_app()->config_section_id) {
ogs_yaml_iter_t local_iter;
ogs_yaml_iter_recurse(&root_iter, &local_iter);
while (ogs_yaml_iter_next(&local_iter)) {
@@ -367,6 +367,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
server_key);
}
+ /* Add address information */
addr = NULL;
for (i = 0; i < num; i++) {
rv = ogs_addaddrinfo(&addr,
@@ -374,20 +375,34 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
ogs_assert(rv == OGS_OK);
}
+ /* Add each address as a separate socknode */
if (addr) {
- if (ogs_global_conf()->
- parameter.no_ipv4 == 0)
- ogs_socknode_add(
- &self.pfcp_list, AF_INET, addr,
- is_option ? &option : NULL);
- if (ogs_global_conf()->
- parameter.no_ipv6 == 0)
- ogs_socknode_add(
- &self.pfcp_list6, AF_INET6, addr,
- is_option ? &option : NULL);
+ ogs_sockaddr_t *current = addr;
+ while (current) {
+ if (current->ogs_sa_family ==
+ AF_INET &&
+ ogs_global_conf()->
+ parameter.no_ipv4 == 0) {
+ ogs_socknode_add(&self.pfcp_list,
+ AF_INET, current,
+ is_option ?
+ &option : NULL);
+ }
+ if (current->ogs_sa_family ==
+ AF_INET6 &&
+ ogs_global_conf()->
+ parameter.no_ipv6 == 0) {
+ ogs_socknode_add(&self.pfcp_list6,
+ AF_INET6, current,
+ is_option ?
+ &option : NULL);
+ }
+ current = current->next;
+ }
ogs_freeaddrinfo(addr);
}
+ /* Process advertise addresses if needed */
addr = NULL;
for (i = 0; i < num_of_advertise; i++) {
rv = ogs_addaddrinfo(&addr,
@@ -416,6 +431,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
ogs_freeaddrinfo(addr);
}
+ /* Bind to device if specified */
if (dev) {
rv = ogs_socknode_probe(
ogs_global_conf()->
@@ -634,7 +650,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
if (v) {
e_cell_id[
num_of_e_cell_id] =
- ogs_uint64_from_string(
+ ogs_uint64_from_string_hexadecimal(
(char*)v);
num_of_e_cell_id++;
}
@@ -670,7 +686,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
if (v) {
nr_cell_id[
num_of_nr_cell_id] =
- ogs_uint64_from_string(
+ ogs_uint64_from_string_hexadecimal(
(char*)v);
num_of_nr_cell_id++;
}
@@ -741,6 +757,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
do {
ogs_pfcp_subnet_t *subnet = NULL;
const char *ipstr = NULL;
+ const char *gateway = NULL;
const char *mask_or_numbits = NULL;
const char *dnn = NULL;
const char *dev = self.tun_ifname;
@@ -748,6 +765,9 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
const char *high[OGS_MAX_NUM_OF_SUBNET_RANGE];
int i, num = 0;
+ memset(low, 0, sizeof(low));
+ memset(high, 0, sizeof(high));
+
if (ogs_yaml_iter_type(&subnet_array) ==
YAML_MAPPING_NODE) {
memcpy(&subnet_iter, &subnet_array,
@@ -776,6 +796,8 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
mask_or_numbits = (const char *)v;
}
}
+ } else if (!strcmp(subnet_key, "gateway")) {
+ gateway = ogs_yaml_iter_value(&subnet_iter);
} else if (!strcmp(subnet_key, "apn") ||
!strcmp(subnet_key, "dnn")) {
dnn = ogs_yaml_iter_value(&subnet_iter);
@@ -820,7 +842,7 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
}
subnet = ogs_pfcp_subnet_add(
- ipstr, mask_or_numbits, dnn, dev);
+ ipstr, mask_or_numbits, gateway, dnn, dev);
ogs_assert(subnet);
subnet->num_of_range = num;
@@ -842,20 +864,43 @@ int ogs_pfcp_context_parse_config(const char *local, const char *remote)
return OGS_OK;
}
-ogs_pfcp_node_t *ogs_pfcp_node_new(ogs_sockaddr_t *sa_list)
+/******************************************************************************
+ * ogs_pfcp_node_new()
+ * - Initialize node_id.type to OGS_PFCP_NODE_ID_UNKNOWN
+ * - So the node can later be updated with a real Node ID via
+ * ogs_pfcp_node_merge() once we learn it from PFCP messages.
+ ******************************************************************************/
+ogs_pfcp_node_t *ogs_pfcp_node_new(ogs_sockaddr_t *config_addr)
{
+ int rv;
ogs_pfcp_node_t *node = NULL;
- ogs_assert(sa_list);
-
ogs_pool_alloc(&ogs_pfcp_node_pool, &node);
if (!node) {
- ogs_error("No memory: ogs_pool_alloc() failed");
+ ogs_error("No memory: ogs_pool_alloc() failed [%s]",
+ ogs_sockaddr_to_string_static(config_addr));
return NULL;
}
memset(node, 0, sizeof(ogs_pfcp_node_t));
- node->sa_list = sa_list;
+ /* Store config_addr, if any */
+ node->config_addr = config_addr;
+
+ /* If config_addr is given, copy it immediately into addr_list */
+ if (config_addr) {
+ rv = ogs_copyaddrinfo(&node->addr_list, config_addr);
+ if (rv != OGS_OK) {
+ ogs_error("ogs_copyaddrinfo() failed");
+ ogs_pool_free(&ogs_pfcp_node_pool, node);
+ return NULL;
+ }
+ }
+
+ /*
+ * Initialize node->node_id to UNKNOWN, meaning "no Node ID assigned yet".
+ */
+ memset(&node->node_id, 0, sizeof(node->node_id));
+ node->node_id.type = OGS_PFCP_NODE_ID_UNKNOWN;
ogs_list_init(&node->local_list);
ogs_list_init(&node->remote_list);
@@ -873,49 +918,199 @@ void ogs_pfcp_node_free(ogs_pfcp_node_t *node)
ogs_pfcp_xact_delete_all(node);
- ogs_freeaddrinfo(node->sa_list);
+ ogs_freeaddrinfo(node->config_addr);
+ ogs_freeaddrinfo(node->addr_list);
+
ogs_pool_free(&ogs_pfcp_node_pool, node);
}
-ogs_pfcp_node_t *ogs_pfcp_node_add(
- ogs_list_t *list, ogs_sockaddr_t *addr)
+/******************************************************************************
+ * ogs_pfcp_node_add()
+ * - Create a new PFCP node, then call ogs_pfcp_node_merge() to handle
+ * IPv4/IPv6 or FQDN logic.
+ ******************************************************************************/
+ogs_pfcp_node_t *ogs_pfcp_node_add(ogs_list_t *list,
+ ogs_pfcp_node_id_t *node_id, ogs_sockaddr_t *from)
{
ogs_pfcp_node_t *node = NULL;
- ogs_sockaddr_t *new = NULL;
ogs_assert(list);
- ogs_assert(addr);
+ ogs_assert(node_id && from);
- ogs_assert(OGS_OK == ogs_copyaddrinfo(&new, addr));
- node = ogs_pfcp_node_new(new);
+ /*
+ * We only handle IPv4, IPv6, and FQDN types here. If the incoming
+ * node_id has any other type, we treat it as invalid. This ensures
+ * we do not merge a node with an unsupported PFCP Node ID.
+ */
+ if (node_id->type != OGS_PFCP_NODE_ID_IPV4 &&
+ node_id->type != OGS_PFCP_NODE_ID_IPV6 &&
+ node_id->type != OGS_PFCP_NODE_ID_FQDN) {
+ ogs_error("Invalid PFCP Node Type = %d", node_id->type);
+ return NULL;
+ }
+
+ /* Create node with no config_addr initially */
+ node = ogs_pfcp_node_new(NULL);
if (!node) {
- ogs_error("No memory : ogs_pfcp_node_new() failed");
- ogs_freeaddrinfo(new);
+ ogs_error("No memory: ogs_pfcp_node_add() failed node_id:%s from:%s",
+ ogs_pfcp_node_id_to_string_static(node_id),
+ ogs_sockaddr_to_string_static(from));
return NULL;
}
- ogs_assert(node);
- memcpy(&node->addr, new, sizeof node->addr);
+ /* Set node->node_id, reset last_dns_refresh. */
+ memcpy(&node->node_id, node_id, sizeof(node->node_id));
+ node->last_dns_refresh = 0;
+
+ /* Merge addresses => fill node->addr_list if conditions are met */
+ if (ogs_pfcp_node_merge(node, node_id, from) != OGS_OK) {
+ ogs_error("ogs_pfcp_node_merge() failed node_id [%s] from [%s]",
+ ogs_pfcp_node_id_to_string_static(node_id),
+ ogs_sockaddr_to_string_static(from));
+ ogs_pool_free(&ogs_pfcp_node_pool, node);
+ return NULL;
+ }
ogs_list_add(list, node);
return node;
}
-ogs_pfcp_node_t *ogs_pfcp_node_find(
- ogs_list_t *list, ogs_sockaddr_t *addr)
+/******************************************************************************
+ * ogs_pfcp_node_find()
+ * - No DNS logic here. Merely finds a node by node_id (if provided) and
+ * checks if 'from' address is in node->addr_list.
+ ******************************************************************************/
+ogs_pfcp_node_t *ogs_pfcp_node_find(ogs_list_t *list,
+ ogs_pfcp_node_id_t *node_id, ogs_sockaddr_t *from)
{
- ogs_pfcp_node_t *node = NULL;
+ ogs_pfcp_node_t *cur;
ogs_assert(list);
- ogs_assert(addr);
+ ogs_assert(node_id || from);
- ogs_list_for_each(list, node) {
- if (ogs_sockaddr_is_equal(&node->addr, addr) == true)
- break;
+ ogs_list_for_each(list, cur) {
+ /*
+ * If the node currently has a known Node ID (not UNKNOWN)
+ * and the caller provided a node_id to match, then compare them.
+ * If they do not match, skip this node. This allows config-based nodes
+ * (with an UNKNOWN node_id) to be found by IP address alone,
+ * while nodes with a definite ID must match the incoming node_id.
+ */
+ if (cur->node_id.type != OGS_PFCP_NODE_ID_UNKNOWN && node_id) {
+ if (!ogs_pfcp_node_id_compare(&cur->node_id, node_id))
+ continue;
+ }
+ if (!from)
+ return cur;
+
+ /* Check if 'from' is in cur->addr_list. */
+ if (ogs_sockaddr_check_any_match(cur->addr_list, NULL,
+ from, /* compare_port= */ true)) {
+ return cur;
+ }
}
- return node;
+ /* No match found. */
+ return NULL;
+}
+
+/******************************************************************************
+ * ogs_pfcp_node_merge():
+ * - If node_id changes to FQDN, we check last_dns_refresh.
+ * => If 0, do an immediate DNS resolution (first time).
+ * => If >= 300 seconds passed, do a periodic refresh.
+ * => Otherwise, skip.
+ * - If node_id changes to IPv4/IPv6, convert IP addresses immediately.
+ * - Merge the 'from' address into addr_list if provided.
+ ******************************************************************************/
+int ogs_pfcp_node_merge(ogs_pfcp_node_t *node,
+ ogs_pfcp_node_id_t *node_id, ogs_sockaddr_t *from)
+{
+ ogs_sockaddr_t single;
+ ogs_sockaddr_t *tmp_list = NULL;
+
+ ogs_assert(node);
+ ogs_assert(node_id || from);
+
+ if (node_id) {
+ /*
+ * We only handle IPv4, IPv6, and FQDN types here. If the incoming
+ * node_id has any other type, we treat it as invalid. This ensures
+ * we do not merge a node with an unsupported PFCP Node ID.
+ */
+ if (node_id->type != OGS_PFCP_NODE_ID_IPV4 &&
+ node_id->type != OGS_PFCP_NODE_ID_IPV6 &&
+ node_id->type != OGS_PFCP_NODE_ID_FQDN) {
+ ogs_error("Invalid PFCP Node Type = %d", node_id->type);
+ return OGS_ERROR;
+ }
+
+ /* Check if node_id is different from node->node_id. */
+ if (!ogs_pfcp_node_id_compare(&node->node_id, node_id)) {
+ /* Update the node's ID and reset the refresh timestamp. */
+ memcpy(&node->node_id, node_id, sizeof(node->node_id));
+ node->last_dns_refresh = 0;
+ }
+
+ /* If FQDN, do a DNS lookup (immediate or periodic). */
+ if (node->node_id.type == OGS_PFCP_NODE_ID_FQDN) {
+/*
+ * We perform a DNS resolution if 'last_dns_refresh' is zero, which means
+ * this FQDN node has never been resolved yet (first-time resolution), or if
+ * at least 300 seconds have passed since the last refresh. Without checking
+ * '== 0', a newly created FQDN node might skip resolution if 'now' is less
+ * than the 300-second threshold.
+ */
+ ogs_time_t now = ogs_time_now();
+
+/* For 300-second refresh interval in microseconds. */
+#define OGS_PFCP_NODE_DNS_REFRESH_INTERVAL \
+ ((ogs_time_t)(300) * OGS_USEC_PER_SEC)
+ if (node->last_dns_refresh == 0 ||
+ (now - node->last_dns_refresh) >=
+ OGS_PFCP_NODE_DNS_REFRESH_INTERVAL) {
+
+ tmp_list = ogs_pfcp_node_id_to_addrinfo(&node->node_id);
+ if (!tmp_list) {
+ ogs_error("DNS resolution failed for FQDN [%s]",
+ node->node_id.fqdn);
+ return OGS_ERROR;
+ }
+
+ ogs_freeaddrinfo(node->addr_list);
+ node->addr_list = tmp_list;
+ node->last_dns_refresh = now;
+ tmp_list = NULL;
+ }
+ }
+ /* If IPv4/IPv6, convert immediately. */
+ else if (node->node_id.type == OGS_PFCP_NODE_ID_IPV4 ||
+ node->node_id.type == OGS_PFCP_NODE_ID_IPV6) {
+ tmp_list = ogs_pfcp_node_id_to_addrinfo(&node->node_id);
+ if (!tmp_list) {
+ ogs_error("Failed to convert node ID to address info");
+ return OGS_ERROR;
+ }
+ ogs_merge_addrinfo(&node->addr_list, tmp_list);
+ ogs_freeaddrinfo(tmp_list);
+ tmp_list = NULL;
+ }
+ else {
+ /* Not IPv4, IPv6, or FQDN => invalid node type. */
+ ogs_error("Invalid Node ID type [%d]", node->node_id.type);
+ return OGS_ERROR;
+ }
+ }
+
+ /* Merge 'from' into addr_list if provided. */
+ if (from) {
+ memcpy(&single, from, sizeof(single));
+ single.next = NULL;
+ ogs_merge_addrinfo(&node->addr_list, &single);
+ }
+
+ return OGS_OK;
}
void ogs_pfcp_node_remove(ogs_list_t *list, ogs_pfcp_node_t *node)
@@ -937,6 +1132,37 @@ void ogs_pfcp_node_remove_all(ogs_list_t *list)
ogs_pfcp_node_remove(list, node);
}
+/******************************************************************************
+ * Compare two node IDs for equality. Returns true if they match, else false.
+ ******************************************************************************/
+bool ogs_pfcp_node_id_compare(
+ const ogs_pfcp_node_id_t *id1, const ogs_pfcp_node_id_t *id2)
+{
+ if (id1->type != id2->type)
+ return false; /* Types do not match */
+
+ switch (id1->type) {
+ case OGS_PFCP_NODE_ID_IPV4:
+ if (id1->addr != id2->addr) return false;
+ return true;
+
+ case OGS_PFCP_NODE_ID_IPV6:
+ if (memcmp(id1->addr6, id2->addr6, OGS_IPV6_LEN) != 0)
+ return false;
+ return true;
+
+ case OGS_PFCP_NODE_ID_FQDN:
+ if (strcmp(id1->fqdn, id2->fqdn) != 0)
+ return false;
+ return true;
+
+ default:
+ ogs_error("Unexpected Node Type [%d]", id1->type);
+ ogs_abort();
+ return false; /* Unknown types do not match */
+ }
+}
+
ogs_gtpu_resource_t *ogs_pfcp_find_gtpu_resource(ogs_list_t *list,
char *dnn, ogs_pfcp_interface_t source_interface)
{
@@ -1134,6 +1360,7 @@ void ogs_pfcp_pdr_swap_teid(ogs_pfcp_pdr_t *pdr)
int i = 0;
ogs_assert(pdr);
+ ogs_assert(!pdr->f_teid.ch);
ogs_assert(pdr->f_teid.teid > 0 &&
pdr->f_teid.teid <= ogs_pfcp_pdr_teid_pool.size);
@@ -1181,7 +1408,7 @@ void ogs_pfcp_object_teid_hash_set(
ogs_gtpu_resource_t *resource = NULL;
resource = ogs_pfcp_find_gtpu_resource(
&ogs_gtp_self()->gtpu_resource_list,
- pdr->dnn, OGS_PFCP_INTERFACE_ACCESS);
+ pdr->dnn, pdr->src_if);
if (resource) {
ogs_assert(
(resource->info.v4 && pdr->f_teid.ipv4) ||
@@ -1861,10 +2088,10 @@ void ogs_pfcp_bar_delete(ogs_pfcp_bar_t *bar)
if (bar->id_node)
ogs_pool_free(&bar->sess->bar_id_pool, bar->id_node);
- ogs_pool_free(&ogs_pfcp_bar_pool, bar);
-
bar->sess = NULL;
sess->bar = NULL;
+
+ ogs_pool_free(&ogs_pfcp_bar_pool, bar);
}
ogs_pfcp_rule_t *ogs_pfcp_rule_add(ogs_pfcp_pdr_t *pdr)
@@ -2140,7 +2367,7 @@ ogs_pfcp_dev_t *ogs_pfcp_dev_find_by_ifname(const char *ifname)
ogs_pfcp_subnet_t *ogs_pfcp_subnet_add(
const char *ipstr, const char *mask_or_numbits,
- const char *dnn, const char *ifname)
+ const char *gateway, const char *dnn, const char *ifname)
{
int rv;
ogs_pfcp_dev_t *dev = NULL;
@@ -2169,6 +2396,41 @@ ogs_pfcp_subnet_t *ogs_pfcp_subnet_add(
subnet->family = subnet->gw.family;
subnet->prefixlen = atoi(mask_or_numbits);
+
+ if (memcmp(subnet->gw.sub, subnet->sub.sub,
+ sizeof(subnet->gw.sub)) != 0) {
+ char *subnet_string = NULL;
+
+ if (subnet->family == AF_INET) {
+ subnet_string = ogs_ipv4_to_string(subnet->sub.sub[0]);
+ ogs_assert(subnet_string);
+ } else if (subnet->family == AF_INET6) {
+ subnet_string = ogs_ipv6addr_to_string(
+ (uint8_t*)&subnet->sub.sub[0]);
+ ogs_assert(subnet_string);
+ }
+
+ ogs_warn("Please change the configuration files of "
+ "smf.yaml and upf.yaml as below.");
+ ogs_log_print(OGS_LOG_WARN, "\n\n");
+ ogs_log_print(OGS_LOG_WARN, "smf:\n");
+ ogs_log_print(OGS_LOG_WARN, " session:\n");
+ ogs_log_print(OGS_LOG_WARN, " - subnet: %s/%s\n",
+ ipstr, mask_or_numbits);
+ ogs_log_print(OGS_LOG_WARN, "\n\n");
+ ogs_log_print(OGS_LOG_WARN, "smf:\n");
+ ogs_log_print(OGS_LOG_WARN, " session:\n");
+ ogs_log_print(OGS_LOG_WARN, " - subnet: %s/%s\n",
+ subnet_string ? subnet_string : "Unknown", mask_or_numbits);
+ ogs_log_print(OGS_LOG_WARN, " gateway: %s\n\n\n", ipstr);
+
+ ogs_free(subnet_string);
+ }
+ }
+
+ if (gateway) {
+ rv = ogs_ipsubnet(&subnet->gw, gateway, NULL);
+ ogs_assert(rv == OGS_OK);
}
if (dnn)
diff --git a/lib/pfcp/context.h b/lib/pfcp/context.h
index 0dcd98e4b0..f18c8bf319 100644
--- a/lib/pfcp/context.h
+++ b/lib/pfcp/context.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -28,10 +28,10 @@
extern "C" {
#endif
-#define OGS_PFCP_DEFAULT_PDR_PRECEDENCE 255
-#define OGS_PFCP_INDIRECT_PDR_PRECEDENCE 1
-#define OGS_PFCP_UP2CP_PDR_PRECEDENCE 1
-#define OGS_PFCP_CP2UP_PDR_PRECEDENCE 1000
+#define OGS_PFCP_DEFAULT_PDR_PRECEDENCE 65535
+#define OGS_PFCP_INDIRECT_PDR_PRECEDENCE 4096
+#define OGS_PFCP_UP2CP_PDR_PRECEDENCE 255
+#define OGS_PFCP_CP2UP_PDR_PRECEDENCE 255
#define OGS_PFCP_DEFAULT_CHOOSE_ID 5
#define OGS_PFCP_INDIRECT_DATA_FORWARDING_CHOOSE_ID 10
@@ -84,10 +84,20 @@ typedef struct ogs_pfcp_context_s {
typedef struct ogs_pfcp_node_s {
ogs_lnode_t lnode; /* A node of list_t */
- ogs_sockaddr_t *sa_list; /* Socket Address List Candidate */
+ ogs_sockaddr_t *config_addr; /* Configured addresses */
+ ogs_pfcp_node_id_t node_id; /* PFCP node ID */
- ogs_sock_t *sock; /* Socket Instance */
- ogs_sockaddr_t addr; /* Remote Address */
+ /* List of addresses:: final merged address list */
+ ogs_sockaddr_t *addr_list;
+
+ /*
+ * Iterator for round-robin sendto operations.
+ * Points to the current address in the round-robin sequence.
+ */
+ ogs_sockaddr_t *current_addr;
+
+ /* Timestamp of last DNS refresh for FQDN nodes. */
+ ogs_time_t last_dns_refresh;
ogs_list_t local_list;
ogs_list_t remote_list;
@@ -156,6 +166,9 @@ typedef struct ogs_pfcp_pdr_s {
ogs_pfcp_precedence_t precedence;
ogs_pfcp_interface_t src_if;
+ bool src_if_type_presence;
+ ogs_pfcp_3gpp_interface_type_t src_if_type;
+
union {
char *apn;
char *dnn;
@@ -186,7 +199,21 @@ typedef struct ogs_pfcp_pdr_s {
ogs_pfcp_qer_t *qer;
int num_of_flow;
- char *flow_description[OGS_MAX_NUM_OF_FLOW_IN_PDR];
+ struct {
+ union {
+ struct {
+ ED6(uint8_t spare1:3;,
+ uint8_t bid:1;,
+ uint8_t fl:1;,
+ uint8_t spi:1;,
+ uint8_t ttc:1;,
+ uint8_t fd:1;)
+ };
+ uint8_t flags;
+ };
+ char *description;
+ uint32_t sdf_filter_id;
+ } flow[OGS_MAX_NUM_OF_FLOW_IN_PDR];;
ogs_list_t rule_list; /* Rule List */
@@ -224,6 +251,10 @@ typedef struct ogs_pfcp_far_s {
ogs_pfcp_far_id_t id;
ogs_pfcp_apply_action_t apply_action;
ogs_pfcp_interface_t dst_if;
+
+ bool dst_if_type_presence;
+ ogs_pfcp_3gpp_interface_type_t dst_if_type;
+
ogs_pfcp_outer_header_creation_t outer_header_creation;
int outer_header_creation_len;
@@ -378,15 +409,19 @@ void ogs_pfcp_context_final(void);
ogs_pfcp_context_t *ogs_pfcp_self(void);
int ogs_pfcp_context_parse_config(const char *local, const char *remote);
-ogs_pfcp_node_t *ogs_pfcp_node_new(ogs_sockaddr_t *sa_list);
+ogs_pfcp_node_t *ogs_pfcp_node_new(ogs_sockaddr_t *config_addr);
void ogs_pfcp_node_free(ogs_pfcp_node_t *node);
-ogs_pfcp_node_t *ogs_pfcp_node_add(
- ogs_list_t *list, ogs_sockaddr_t *addr);
-ogs_pfcp_node_t *ogs_pfcp_node_find(
- ogs_list_t *list, ogs_sockaddr_t *addr);
+ogs_pfcp_node_t *ogs_pfcp_node_add(ogs_list_t *list,
+ ogs_pfcp_node_id_t *node_id, ogs_sockaddr_t *from);
+ogs_pfcp_node_t *ogs_pfcp_node_find(ogs_list_t *list,
+ ogs_pfcp_node_id_t *node_id, ogs_sockaddr_t *from);
+int ogs_pfcp_node_merge(ogs_pfcp_node_t *node,
+ ogs_pfcp_node_id_t *node_id, ogs_sockaddr_t *from);
void ogs_pfcp_node_remove(ogs_list_t *list, ogs_pfcp_node_t *node);
void ogs_pfcp_node_remove_all(ogs_list_t *list);
+bool ogs_pfcp_node_id_compare(
+ const ogs_pfcp_node_id_t *id1, const ogs_pfcp_node_id_t *id2);
ogs_gtpu_resource_t *ogs_pfcp_find_gtpu_resource(ogs_list_t *list,
char *dnn, ogs_pfcp_interface_t source_interface);
@@ -476,7 +511,7 @@ ogs_pfcp_dev_t *ogs_pfcp_dev_find_by_ifname(const char *ifname);
ogs_pfcp_subnet_t *ogs_pfcp_subnet_add(
const char *ipstr, const char *mask_or_numbits,
- const char *dnn, const char *ifname);
+ const char *gateway, const char *dnn, const char *ifname);
ogs_pfcp_subnet_t *ogs_pfcp_subnet_next(ogs_pfcp_subnet_t *subnet);
void ogs_pfcp_subnet_remove(ogs_pfcp_subnet_t *subnet);
void ogs_pfcp_subnet_remove_all(void);
diff --git a/lib/pfcp/handler.c b/lib/pfcp/handler.c
index e540c1d8e6..caee63eb9f 100644
--- a/lib/pfcp/handler.c
+++ b/lib/pfcp/handler.c
@@ -94,6 +94,7 @@ bool ogs_pfcp_cp_handle_association_setup_request(
ogs_pfcp_association_setup_request_t *req)
{
int i;
+ int16_t decoded;
ogs_assert(xact);
ogs_assert(node);
@@ -112,8 +113,11 @@ bool ogs_pfcp_cp_handle_association_setup_request(
if (message->presence == 0)
break;
- ogs_pfcp_parse_user_plane_ip_resource_info(&info, message);
- ogs_gtpu_resource_add(&node->gtpu_resource_list, &info);
+ decoded = ogs_pfcp_parse_user_plane_ip_resource_info(&info, message);
+ if (message->len == decoded)
+ ogs_gtpu_resource_add(&node->gtpu_resource_list, &info);
+ else
+ ogs_error("Invalid User Plane IP Resource Info");
}
if (req->up_function_features.presence) {
@@ -126,14 +130,9 @@ bool ogs_pfcp_cp_handle_association_setup_request(
}
}
- if (node->up_function_features.ftup == 0) {
- char buf[OGS_ADDRSTRLEN];
- ogs_sockaddr_t *addr = node->sa_list;
- ogs_assert(addr);
-
- ogs_warn("F-TEID allocation/release not supported with peer [%s]:%d",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
- }
+ if (node->up_function_features.ftup == 0)
+ ogs_warn("F-TEID allocation/release not supported with peer %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
return true;
}
@@ -143,6 +142,7 @@ bool ogs_pfcp_cp_handle_association_setup_response(
ogs_pfcp_association_setup_response_t *rsp)
{
int i;
+ int16_t decoded;
ogs_assert(xact);
ogs_pfcp_xact_commit(xact);
@@ -160,8 +160,11 @@ bool ogs_pfcp_cp_handle_association_setup_response(
if (message->presence == 0)
break;
- ogs_pfcp_parse_user_plane_ip_resource_info(&info, message);
- ogs_gtpu_resource_add(&node->gtpu_resource_list, &info);
+ decoded = ogs_pfcp_parse_user_plane_ip_resource_info(&info, message);
+ if (message->len == decoded)
+ ogs_gtpu_resource_add(&node->gtpu_resource_list, &info);
+ else
+ ogs_error("Invalid User Plane IP Resource Info");
}
if (rsp->up_function_features.presence) {
@@ -174,14 +177,9 @@ bool ogs_pfcp_cp_handle_association_setup_response(
}
}
- if (node->up_function_features.ftup == 0) {
- char buf[OGS_ADDRSTRLEN];
- ogs_sockaddr_t *addr = node->sa_list;
- ogs_assert(addr);
-
- ogs_warn("F-TEID allocation/release not supported with peer [%s]:%d",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
- }
+ if (node->up_function_features.ftup == 0)
+ ogs_warn("F-TEID allocation/release not supported with peer %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
return true;
}
@@ -219,14 +217,13 @@ bool ogs_pfcp_up_handle_association_setup_response(
bool ogs_pfcp_up_handle_pdr(
ogs_pfcp_pdr_t *pdr, uint8_t type,
- ogs_gtp2_header_desc_t *recvhdr, ogs_pkbuf_t *recvbuf,
+ ogs_gtp2_header_desc_t *recvhdr, ogs_pkbuf_t *sendbuf,
ogs_pfcp_user_plane_report_t *report)
{
ogs_pfcp_far_t *far = NULL;
- ogs_pkbuf_t *sendbuf = NULL;
bool buffering;
- ogs_assert(recvbuf);
+ ogs_assert(sendbuf);
ogs_assert(type);
ogs_assert(pdr);
ogs_assert(report);
@@ -236,12 +233,6 @@ bool ogs_pfcp_up_handle_pdr(
memset(report, 0, sizeof(*report));
- sendbuf = ogs_pkbuf_copy(recvbuf);
- if (!sendbuf) {
- ogs_error("ogs_pkbuf_copy() failed");
- return false;
- }
-
buffering = false;
if (!far->gnode) {
@@ -412,6 +403,11 @@ ogs_pfcp_pdr_t *ogs_pfcp_handle_create_pdr(ogs_pfcp_sess_t *sess,
pdr->src_if = message->pdi.source_interface.u8;
+ if (message->pdi.source_interface_type.presence) {
+ pdr->src_if_type_presence = true;
+ pdr->src_if_type = message->pdi.source_interface_type.u8;
+ }
+
ogs_pfcp_rule_remove_all(pdr);
for (i = 0; i < OGS_MAX_NUM_OF_FLOW_IN_PDR; i++) {
@@ -424,7 +420,10 @@ ogs_pfcp_pdr_t *ogs_pfcp_handle_create_pdr(ogs_pfcp_sess_t *sess,
len = ogs_pfcp_parse_sdf_filter(
&sdf_filter, &message->pdi.sdf_filter[i]);
- ogs_assert(message->pdi.sdf_filter[i].len == len);
+ if (message->pdi.sdf_filter[i].len != len) {
+ ogs_error("Invalid SDF Filter");
+ break;
+ }
/* Check Previous SDF Filter ID */
if (sdf_filter.bid) {
@@ -518,12 +517,13 @@ ogs_pfcp_pdr_t *ogs_pfcp_handle_create_pdr(ogs_pfcp_sess_t *sess,
if (message->pdi.network_instance.presence) {
char dnn[OGS_MAX_DNN_LEN+1];
- ogs_assert(0 < ogs_fqdn_parse(dnn,
- message->pdi.network_instance.data,
- ogs_min(message->pdi.network_instance.len, OGS_MAX_DNN_LEN)));
-
- pdr->dnn = ogs_strdup(dnn);
- ogs_assert(pdr->dnn);
+ if (ogs_fqdn_parse(dnn, message->pdi.network_instance.data,
+ ogs_min(message->pdi.network_instance.len, OGS_MAX_DNN_LEN)) > 0) {
+ pdr->dnn = ogs_strdup(dnn);
+ ogs_assert(pdr->dnn);
+ } else {
+ ogs_error("Invalid pdi.network_instance");
+ }
}
pdr->chid = false;
@@ -753,6 +753,11 @@ ogs_pfcp_pdr_t *ogs_pfcp_handle_update_pdr(ogs_pfcp_sess_t *sess,
pdr->src_if = message->pdi.source_interface.u8;
+ if (message->pdi.source_interface_type.presence) {
+ pdr->src_if_type_presence = true;
+ pdr->src_if_type = message->pdi.source_interface_type.u8;
+ }
+
ogs_pfcp_rule_remove_all(pdr);
for (i = 0; i < OGS_MAX_NUM_OF_FLOW_IN_PDR; i++) {
@@ -765,7 +770,10 @@ ogs_pfcp_pdr_t *ogs_pfcp_handle_update_pdr(ogs_pfcp_sess_t *sess,
len = ogs_pfcp_parse_sdf_filter(
&sdf_filter, &message->pdi.sdf_filter[i]);
- ogs_assert(message->pdi.sdf_filter[i].len == len);
+ if (message->pdi.sdf_filter[i].len != len) {
+ ogs_error("Invalid SDF Filter");
+ break;
+ }
/* Check Previous SDF Filter ID */
if (sdf_filter.bid) {
@@ -855,14 +863,16 @@ ogs_pfcp_pdr_t *ogs_pfcp_handle_update_pdr(ogs_pfcp_sess_t *sess,
if (message->pdi.network_instance.presence) {
char dnn[OGS_MAX_DNN_LEN+1];
- ogs_assert(0 < ogs_fqdn_parse(dnn,
- message->pdi.network_instance.data,
- ogs_min(message->pdi.network_instance.len, OGS_MAX_DNN_LEN)));
-
- if (pdr->dnn)
- ogs_free(pdr->dnn);
- pdr->dnn = ogs_strdup(dnn);
- ogs_assert(pdr->dnn);
+ if (ogs_fqdn_parse(dnn, message->pdi.network_instance.data,
+ ogs_min(message->pdi.network_instance.len,
+ OGS_MAX_DNN_LEN)) > 0) {
+ if (pdr->dnn)
+ ogs_free(pdr->dnn);
+ pdr->dnn = ogs_strdup(dnn);
+ ogs_assert(pdr->dnn);
+ } else {
+ ogs_error("Invalid pdi.network_instance");
+ }
}
if (message->pdi.local_f_teid.presence) {
@@ -961,16 +971,25 @@ ogs_pfcp_far_t *ogs_pfcp_handle_create_far(ogs_pfcp_sess_t *sess,
message->forwarding_parameters.destination_interface.u8;
}
+ if (message->forwarding_parameters.destination_interface_type.
+ presence) {
+ far->dst_if_type_presence = true;
+ far->dst_if_type = message->forwarding_parameters.
+ destination_interface_type.u8;
+ }
+
if (message->forwarding_parameters.network_instance.presence) {
char dnn[OGS_MAX_DNN_LEN+1];
- ogs_assert(0 < ogs_fqdn_parse(dnn,
+ if (ogs_fqdn_parse(dnn,
message->forwarding_parameters.network_instance.data,
- ogs_min(message->forwarding_parameters.network_instance.len,
- OGS_MAX_DNN_LEN)));
-
- far->dnn = ogs_strdup(dnn);
- ogs_assert(far->dnn);
+ ogs_min(message->forwarding_parameters.network_instance.len,
+ OGS_MAX_DNN_LEN)) > 0) {
+ far->dnn = ogs_strdup(dnn);
+ ogs_assert(far->dnn);
+ } else {
+ ogs_error("Invalid forwarding_parameters.network_instance");
+ }
}
if (message->forwarding_parameters.outer_header_creation.presence) {
@@ -1066,18 +1085,28 @@ ogs_pfcp_far_t *ogs_pfcp_handle_update_far(ogs_pfcp_sess_t *sess,
message->update_forwarding_parameters.destination_interface.u8;
}
+ if (message->update_forwarding_parameters.destination_interface_type.
+ presence) {
+ far->dst_if_type_presence = true;
+ far->dst_if_type = message->update_forwarding_parameters.
+ destination_interface_type.u8;
+ }
+
if (message->update_forwarding_parameters.network_instance.presence) {
char dnn[OGS_MAX_DNN_LEN+1];
- ogs_assert(0 < ogs_fqdn_parse(dnn,
+ if (ogs_fqdn_parse(dnn,
message->update_forwarding_parameters.network_instance.data,
- ogs_min(message->update_forwarding_parameters.
- network_instance.len, OGS_MAX_DNN_LEN)));
-
- if (far->dnn)
- ogs_free(far->dnn);
- far->dnn = ogs_strdup(dnn);
- ogs_assert(far->dnn);
+ ogs_min(message->update_forwarding_parameters.
+ network_instance.len, OGS_MAX_DNN_LEN)) > 0) {
+ if (far->dnn)
+ ogs_free(far->dnn);
+ far->dnn = ogs_strdup(dnn);
+ ogs_assert(far->dnn);
+ } else {
+ ogs_error("Invalid "
+ "update_forwarding_parameters.network_instance");
+ }
}
if (message->update_forwarding_parameters.
@@ -1307,6 +1336,7 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_create_urr(ogs_pfcp_sess_t *sess,
ogs_pfcp_tlv_create_urr_t *message,
uint8_t *cause_value, uint8_t *offending_ie_value)
{
+ int16_t decoded;
ogs_pfcp_urr_t *urr = NULL;
ogs_assert(message);
@@ -1355,12 +1385,26 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_create_urr(ogs_pfcp_sess_t *sess,
if (message->volume_threshold.presence &&
(urr->meas_method & OGS_PFCP_MEASUREMENT_METHOD_VOLUME)) {
- ogs_pfcp_parse_volume(&urr->vol_threshold, &message->volume_threshold);
+ decoded = ogs_pfcp_parse_volume(
+ &urr->vol_threshold, &message->volume_threshold);
+ if (message->volume_threshold.len != decoded) {
+ ogs_error("Invalid Volume Threshold");
+ *cause_value = OGS_PFCP_CAUSE_MANDATORY_IE_INCORRECT;
+ *offending_ie_value = OGS_PFCP_VOLUME_THRESHOLD_TYPE;
+ return NULL;
+ }
}
if (message->volume_quota.presence &&
(urr->meas_method & OGS_PFCP_MEASUREMENT_METHOD_VOLUME)) {
- ogs_pfcp_parse_volume(&urr->vol_quota, &message->volume_quota);
+ decoded = ogs_pfcp_parse_volume(
+ &urr->vol_quota, &message->volume_quota);
+ if (message->volume_quota.len != decoded) {
+ ogs_error("Invalid Volume Quota");
+ *cause_value = OGS_PFCP_CAUSE_MANDATORY_IE_INCORRECT;
+ *offending_ie_value = OGS_PFCP_VOLUME_QUOTA_TYPE;
+ return NULL;
+ }
}
if (message->event_threshold.presence &&
@@ -1409,6 +1453,7 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_update_urr(ogs_pfcp_sess_t *sess,
ogs_pfcp_tlv_update_urr_t *message,
uint8_t *cause_value, uint8_t *offending_ie_value)
{
+ int16_t decoded;
ogs_pfcp_urr_t *urr = NULL;
ogs_assert(message);
@@ -1447,12 +1492,26 @@ ogs_pfcp_urr_t *ogs_pfcp_handle_update_urr(ogs_pfcp_sess_t *sess,
if (message->volume_threshold.presence &&
(urr->meas_method & OGS_PFCP_MEASUREMENT_METHOD_VOLUME)) {
- ogs_pfcp_parse_volume(&urr->vol_threshold, &message->volume_threshold);
+ decoded = ogs_pfcp_parse_volume(
+ &urr->vol_threshold, &message->volume_threshold);
+ if (message->volume_threshold.len != decoded) {
+ ogs_error("Invalid Volume Threshold");
+ *cause_value = OGS_PFCP_CAUSE_MANDATORY_IE_INCORRECT;
+ *offending_ie_value = OGS_PFCP_VOLUME_THRESHOLD_TYPE;
+ return NULL;
+ }
}
if (message->volume_quota.presence &&
(urr->meas_method & OGS_PFCP_MEASUREMENT_METHOD_VOLUME)) {
- ogs_pfcp_parse_volume(&urr->vol_quota, &message->volume_quota);
+ decoded = ogs_pfcp_parse_volume(
+ &urr->vol_quota, &message->volume_quota);
+ if (message->volume_quota.len != decoded) {
+ ogs_error("Invalid Volume Quota");
+ *cause_value = OGS_PFCP_CAUSE_MANDATORY_IE_INCORRECT;
+ *offending_ie_value = OGS_PFCP_VOLUME_QUOTA_TYPE;
+ return NULL;
+ }
}
if (message->event_threshold.presence &&
diff --git a/lib/pfcp/meson.build b/lib/pfcp/meson.build
index 910b50828c..50b524852d 100644
--- a/lib/pfcp/meson.build
+++ b/lib/pfcp/meson.build
@@ -45,6 +45,7 @@ libpfcp_sources = files('''
xact.h
context.h
rule-match.h
+ util.h
message.c
types.c
@@ -55,6 +56,7 @@ libpfcp_sources = files('''
xact.c
context.c
rule-match.c
+ util.c
'''.split())
libpfcp_inc = include_directories('.')
diff --git a/lib/pfcp/message.c b/lib/pfcp/message.c
index efde7b333c..59c0060d29 100644
--- a/lib/pfcp/message.c
+++ b/lib/pfcp/message.c
@@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by pfcp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-08-18 22:15:59.596820 by acetcom
+ * Created on: 2024-10-20 22:37:02.550243 by acetcom
* from 29244-h71-modified.docx
******************************************************************************/
@@ -1348,10 +1348,10 @@ ogs_tlv_desc_t ogs_pfcp_tlv_desc_apn_dnn =
ogs_tlv_desc_t ogs_pfcp_tlv_desc__interface_type =
{
- OGS_TLV_VAR_STR,
+ OGS_TLV_UINT8,
"3GPP Interface Type",
OGS_PFCP__INTERFACE_TYPE_TYPE,
- 0,
+ 1,
0,
sizeof(ogs_pfcp_tlv__interface_type_t),
{ NULL }
@@ -2369,17 +2369,6 @@ ogs_tlv_desc_t ogs_pfcp_tlv_desc_predefined_rules_name =
{ NULL }
};
-ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4mb_information =
-{
- OGS_TLV_VAR_STR,
- "MBS Session N4mb Information",
- OGS_PFCP_MBS_SESSION_N4MB_INFORMATION_TYPE,
- 0,
- 0,
- sizeof(ogs_pfcp_tlv_mbs_session_n4mb_information_t),
- { NULL }
-};
-
ogs_tlv_desc_t ogs_pfcp_tlv_desc_remove_mbs_unicast_parameters =
{
OGS_TLV_VAR_STR,
@@ -4188,14 +4177,14 @@ ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4mb_control_information =
}
};
-ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4_information =
+ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4mb_information =
{
OGS_TLV_COMPOUND,
- "MBS Session N4 Information",
- OGS_PFCP_MBS_SESSION_N4_INFORMATION_TYPE,
+ "MBS Session N4mb Information",
+ OGS_PFCP_MBS_SESSION_N4MB_INFORMATION_TYPE,
0,
0,
- sizeof(ogs_pfcp_tlv_mbs_session_n4_information_t),
+ sizeof(ogs_pfcp_tlv_mbs_session_n4mb_information_t),
{
&ogs_pfcp_tlv_desc_multicast_transport_information,
NULL,
@@ -4218,6 +4207,23 @@ ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4_control_information =
}
};
+ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4_information =
+{
+ OGS_TLV_COMPOUND,
+ "MBS Session N4 Information",
+ OGS_PFCP_MBS_SESSION_N4_INFORMATION_TYPE,
+ 0,
+ 0,
+ sizeof(ogs_pfcp_tlv_mbs_session_n4_information_t),
+ {
+ &ogs_pfcp_tlv_desc_mbs_session_identifier,
+ &ogs_pfcp_tlv_desc_area_session_id,
+ &ogs_pfcp_tlv_desc_f_teid,
+ &ogs_pfcp_tlv_desc_mbsn4resp_flags,
+ NULL,
+ }
+};
+
ogs_tlv_desc_t ogs_pfcp_tlv_desc_dscp_to_ppi_control_information =
{
OGS_TLV_COMPOUND,
diff --git a/lib/pfcp/message.h b/lib/pfcp/message.h
index e10796db49..e24749d766 100644
--- a/lib/pfcp/message.h
+++ b/lib/pfcp/message.h
@@ -20,7 +20,7 @@
/*******************************************************************************
* This file had been created by pfcp-tlv.py script v0.1.0
* Please do not modify this file but regenerate it via script.
- * Created on: 2023-08-18 22:15:59.578047 by acetcom
+ * Created on: 2024-10-20 22:37:02.530796 by acetcom
* from 29244-h71-modified.docx
******************************************************************************/
@@ -626,7 +626,6 @@ extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_event_notification_uri;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_notification_correlation_id;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_reporting_flags;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_predefined_rules_name;
-extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4mb_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_remove_mbs_unicast_parameters;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_identifier;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_multicast_transport_information;
@@ -733,8 +732,9 @@ extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_l2tp_session_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_created_l2tp_session;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_pfcp_session_change_info;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4mb_control_information;
-extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4_information;
+extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4mb_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4_control_information;
+extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_mbs_session_n4_information;
extern ogs_tlv_desc_t ogs_pfcp_tlv_desc_dscp_to_ppi_control_information;
/* Message Descriptor */
@@ -885,7 +885,7 @@ typedef ogs_tlv_octet_t ogs_pfcp_tlv_time_stamp_t;
typedef ogs_tlv_uint32_t ogs_pfcp_tlv_averaging_window_t;
typedef ogs_tlv_uint8_t ogs_pfcp_tlv_paging_policy_indicator_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_apn_dnn_t;
-typedef ogs_tlv_octet_t ogs_pfcp_tlv__interface_type_t;
+typedef ogs_tlv_uint8_t ogs_pfcp_tlv__interface_type_t;
typedef ogs_tlv_uint8_t ogs_pfcp_tlv_pfcpsrreq_flags_t;
typedef ogs_tlv_uint8_t ogs_pfcp_tlv_pfcpaureq_flags_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_activation_time_t;
@@ -978,7 +978,6 @@ typedef ogs_tlv_octet_t ogs_pfcp_tlv_event_notification_uri_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_notification_correlation_id_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_reporting_flags_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_predefined_rules_name_t;
-typedef ogs_tlv_octet_t ogs_pfcp_tlv_mbs_session_n4mb_information_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_remove_mbs_unicast_parameters_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_mbs_session_identifier_t;
typedef ogs_tlv_octet_t ogs_pfcp_tlv_multicast_transport_information_t;
@@ -1827,10 +1826,10 @@ typedef struct ogs_pfcp_tlv_mbs_session_n4mb_control_information_s {
ogs_pfcp_tlv_multicast_transport_information_t multicast_transport_information_for_n3mb_and_or_n19mb;
} ogs_pfcp_tlv_mbs_session_n4mb_control_information_t;
-typedef struct ogs_pfcp_tlv_mbs_session_n4_information_s {
+typedef struct ogs_pfcp_tlv_mbs_session_n4mb_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_multicast_transport_information_t multicast_transport_information;
-} ogs_pfcp_tlv_mbs_session_n4_information_t;
+} ogs_pfcp_tlv_mbs_session_n4mb_information_t;
typedef struct ogs_pfcp_tlv_mbs_session_n4_control_information_s {
ogs_tlv_presence_t presence;
@@ -1839,6 +1838,14 @@ typedef struct ogs_pfcp_tlv_mbs_session_n4_control_information_s {
ogs_pfcp_tlv_multicast_transport_information_t multicast_transport_information;
} ogs_pfcp_tlv_mbs_session_n4_control_information_t;
+typedef struct ogs_pfcp_tlv_mbs_session_n4_information_s {
+ ogs_tlv_presence_t presence;
+ ogs_pfcp_tlv_mbs_session_identifier_t mbs_session_identifier;
+ ogs_pfcp_tlv_area_session_id_t area_session_id;
+ ogs_pfcp_tlv_f_teid_t n19mb_dl_tunnel_id;
+ ogs_pfcp_tlv_mbsn4resp_flags_t mbsn4resp_flags;
+} ogs_pfcp_tlv_mbs_session_n4_information_t;
+
typedef struct ogs_pfcp_tlv_dscp_to_ppi_control_information_s {
ogs_tlv_presence_t presence;
ogs_pfcp_tlv_dscp_to_ppi_mapping_information_t dscp_to_ppi_mapping_information;
diff --git a/lib/pfcp/ogs-pfcp.h b/lib/pfcp/ogs-pfcp.h
index 7403ba80d8..e6ea050a39 100644
--- a/lib/pfcp/ogs-pfcp.h
+++ b/lib/pfcp/ogs-pfcp.h
@@ -43,6 +43,7 @@
#include "pfcp/path.h"
#include "pfcp/xact.h"
#include "pfcp/handler.h"
+#include "pfcp/util.h"
#ifdef __cplusplus
extern "C" {
diff --git a/lib/pfcp/path.c b/lib/pfcp/path.c
index 82e3a3467c..8877d80eb2 100644
--- a/lib/pfcp/path.c
+++ b/lib/pfcp/path.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2025 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -36,67 +36,89 @@ ogs_sock_t *ogs_pfcp_server(ogs_socknode_t *node)
return pfcp;
}
-int ogs_pfcp_connect(
- ogs_sock_t *ipv4, ogs_sock_t *ipv6, ogs_pfcp_node_t *node)
-{
- ogs_sockaddr_t *addr;
- char buf[OGS_ADDRSTRLEN];
-
- ogs_assert(ipv4 || ipv6);
- ogs_assert(node);
- ogs_assert(node->sa_list);
-
- addr = node->sa_list;
- while (addr) {
- ogs_sock_t *sock = NULL;
-
- if (addr->ogs_sa_family == AF_INET)
- sock = ipv4;
- else if (addr->ogs_sa_family == AF_INET6)
- sock = ipv6;
- else
- ogs_assert_if_reached();
+/* Minimum PFCP header length (e.g., 12 bytes) */
+#define MIN_PFCP_HEADER_LENGTH 12
- if (sock) {
- ogs_info("ogs_pfcp_connect() [%s]:%d",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
+/*
+ * ogs_pfcp_recvfrom
+ *
+ * Receives a PFCP message from the socket 'fd'. It allocates a pkbuf,
+ * receives the message, trims the pkbuf, and verifies the header.
+ * If any error occurs (e.g., too short message, unsupported version, or
+ * incomplete message), the function frees the pkbuf and returns NULL.
+ *
+ * The sender's address is stored in 'from'.
+ *
+ * Returns a pointer to ogs_pkbuf_t on success, or NULL on failure.
+ */
+ogs_pkbuf_t *ogs_pfcp_recvfrom(ogs_socket_t fd, ogs_sockaddr_t *from)
+{
+ ogs_pkbuf_t *pkbuf;
+ ssize_t size;
+ ogs_pfcp_header_t *h;
+ uint16_t pfcp_body_length;
+ size_t expected_total_length;
+
+ ogs_assert(fd != INVALID_SOCKET);
+ ogs_assert(from);
+
+ /* Allocate buffer for maximum SDU length */
+ pkbuf = ogs_pkbuf_alloc(NULL, OGS_MAX_SDU_LEN);
+ if (pkbuf == NULL) {
+ ogs_error("ogs_pkbuf_alloc() failed");
+ return NULL;
+ }
+ ogs_pkbuf_put(pkbuf, OGS_MAX_SDU_LEN);
- node->sock = sock;
- memcpy(&node->addr, addr, sizeof node->addr);
- break;
+ size = ogs_recvfrom(fd, pkbuf->data, pkbuf->len, 0, from);
+ if (size <= 0) {
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "ogs_recvfrom() failed");
+ ogs_pkbuf_free(pkbuf);
+ return NULL;
+ }
+ ogs_pkbuf_trim(pkbuf, size);
+
+ /* Check that the data is at least as long as the header */
+ if (size < MIN_PFCP_HEADER_LENGTH) {
+ ogs_error("Received PFCP message too short: %ld bytes (min %d)",
+ (long)size, MIN_PFCP_HEADER_LENGTH);
+ ogs_pkbuf_free(pkbuf);
+ return NULL;
+ }
+
+ h = (ogs_pfcp_header_t *)pkbuf->data;
+
+ /* Verify PFCP version */
+ if (h->version != OGS_PFCP_VERSION) {
+ ogs_pfcp_header_t rsp;
+ memset(&rsp, 0, sizeof(rsp));
+ ogs_error("Not supported version[%d]", h->version);
+ rsp.flags = (OGS_PFCP_VERSION << 5);
+ rsp.type = OGS_PFCP_VERSION_NOT_SUPPORTED_RESPONSE_TYPE;
+ rsp.length = htobe16(4);
+ rsp.sqn_only = h->sqn_only;
+ if (ogs_sendto(fd, &rsp, 8, 0, from) < 0) {
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "ogs_sendto() failed");
}
-
- addr = addr->next;
+ ogs_pkbuf_free(pkbuf);
+ return NULL;
}
- if (addr == NULL) {
- ogs_error("ogs_pfcp_connect() [%s]:%d failed",
- OGS_ADDR(node->sa_list, buf), OGS_PORT(node->sa_list));
- ogs_error("Please check the IP version between SMF and UPF nodes.");
- return OGS_ERROR;
+ /* Check total PFCP message length.
+ Assume the header's length field indicates the body length,
+ excluding the first 4 bytes. */
+ pfcp_body_length = be16toh(h->length);
+ expected_total_length = pfcp_body_length + 4;
+ if ((size_t)size != expected_total_length) {
+ ogs_error("Invalid PFCP Header Length: expected %zu bytes, "
+ "received %ld bytes", expected_total_length, (long)size);
+ ogs_pkbuf_free(pkbuf);
+ return NULL;
}
- return OGS_OK;
-}
-
-int ogs_pfcp_send(ogs_pfcp_node_t *node, ogs_pkbuf_t *pkbuf)
-{
- ssize_t sent;
- ogs_sock_t *sock = NULL;
-
- ogs_assert(node);
- ogs_assert(pkbuf);
- sock = node->sock;
- ogs_assert(sock);
-
- sent = ogs_send(sock->fd, pkbuf->data, pkbuf->len, 0);
- if (sent < 0 || sent != pkbuf->len) {
- ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "ogs_pfcp_send() failed");
- return OGS_ERROR;
- }
-
- return OGS_OK;
+ return pkbuf;
}
int ogs_pfcp_sendto(ogs_pfcp_node_t *node, ogs_pkbuf_t *pkbuf)
@@ -107,11 +129,34 @@ int ogs_pfcp_sendto(ogs_pfcp_node_t *node, ogs_pkbuf_t *pkbuf)
ogs_assert(node);
ogs_assert(pkbuf);
- sock = node->sock;
- ogs_assert(sock);
- addr = &node->addr;
+ ogs_assert(node->addr_list);
+
+ /* Initialize round-robin iterator if needed */
+ if (node->current_addr == NULL) {
+ node->current_addr = node->addr_list;
+ }
+ addr = node->current_addr;
ogs_assert(addr);
+ if (addr->ogs_sa_family == AF_INET) {
+ sock = ogs_pfcp_self()->pfcp_sock;
+ if (!sock) {
+ ogs_error("IPv4 socket (pfcp_sock) is not available. "
+ "Ensure that 'pfcp.server.address: 127.0.0.1' "
+ "is set in the YAML configuration file.");
+ return OGS_ERROR;
+ }
+ } else if (addr->ogs_sa_family == AF_INET6) {
+ sock = ogs_pfcp_self()->pfcp_sock6;
+ if (!sock) {
+ ogs_error("IPv6 socket (pfcp_sock) is not available. "
+ "Ensure that 'pfcp.server.address: [::1]' "
+ "is set in the YAML configuration file.");
+ return OGS_ERROR;
+ }
+ } else
+ ogs_assert_if_reached();
+
sent = ogs_sendto(sock->fd, pkbuf->data, pkbuf->len, 0, addr);
if (sent < 0 || sent != pkbuf->len) {
if (ogs_socket_errno != OGS_EAGAIN) {
@@ -125,6 +170,13 @@ int ogs_pfcp_sendto(ogs_pfcp_node_t *node, ogs_pkbuf_t *pkbuf)
return OGS_ERROR;
}
+ /* Move to next address in round-robin sequence */
+ if (node->current_addr->next)
+ node->current_addr = node->current_addr->next;
+ else
+ /* If end of list reached, wrap around to the start */
+ node->current_addr = node->addr_list;
+
return OGS_OK;
}
diff --git a/lib/pfcp/path.h b/lib/pfcp/path.h
index 379e992ebe..c715b6d4f9 100644
--- a/lib/pfcp/path.h
+++ b/lib/pfcp/path.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2025 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -56,12 +56,10 @@ extern "C" {
typedef struct ogs_pfcp_xact_s ogs_pfcp_xact_t;
ogs_sock_t *ogs_pfcp_server(ogs_socknode_t *node);
-int ogs_pfcp_connect(
- ogs_sock_t *ipv4, ogs_sock_t *ipv6, ogs_pfcp_node_t *node);
-
-int ogs_pfcp_send(ogs_pfcp_node_t *node, ogs_pkbuf_t *pkbuf);
int ogs_pfcp_sendto(ogs_pfcp_node_t *node, ogs_pkbuf_t *pkbuf);
+ogs_pkbuf_t *ogs_pfcp_recvfrom(ogs_socket_t fd, ogs_sockaddr_t *from);
+
ogs_pkbuf_t *ogs_pfcp_handle_echo_req(ogs_pkbuf_t *pkt);
int ogs_pfcp_send_heartbeat_request(ogs_pfcp_node_t *node,
diff --git a/lib/pfcp/support/29244-h71-modified.docx b/lib/pfcp/support/29244-h71-modified.docx
index 45f8447805..1b06faefd4 100644
Binary files a/lib/pfcp/support/29244-h71-modified.docx and b/lib/pfcp/support/29244-h71-modified.docx differ
diff --git a/lib/pfcp/support/cache/tlv-group-list.py b/lib/pfcp/support/cache/tlv-group-list.py
index c1fee51590..fb8b7d5fbf 100644
--- a/lib/pfcp/support/cache/tlv-group-list.py
+++ b/lib/pfcp/support/cache/tlv-group-list.py
@@ -327,7 +327,13 @@
group_list["Created L2TP Session"] = { "index" : "379", "type" : "279", "ies" : ies }
ies = []
ies.append({ "ie_type" : "Multicast Transport Information", "ie_value" : "Multicast Transport Information", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present to include a low layer source specific multicast address information (i.e. multicast destination address and related source IP address) and a GTP-U Common Tunnel EndPoint Identifier (C-TEID) if the CP function has requested to allocate such information for multicast transport over N3mb and/or N19mb."})
-group_list["MBS Session N4 Information"] = { "index" : "403", "type" : "303", "ies" : ies }
+group_list["MBS Session N4mb Information"] = { "index" : "403", "type" : "303", "ies" : ies }
+ies = []
+ies.append({ "ie_type" : "MBS Session Identifier", "ie_value" : "MBS Session Identifier", "presence" : "M", "tlv_more" : "0", "comment" : ""})
+ies.append({ "ie_type" : "Area Session ID", "ie_value" : "Area Session ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present for a location dependent MBS service. When present, it shall contain the Area Session ID, which together with the MBS Session Identifier, uniquely identify the service area part of the content data of the MBS service. "})
+ies.append({ "ie_type" : "F-TEID", "ie_value" : "N19mb DL Tunnel ID", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be present when the SMF has requested the UPF to allocate a Local F-TEID in the PDI or in the Create Traffic Endpoint IE. (NOTE1)"})
+ies.append({ "ie_type" : "MBSN4Resp-Flags", "ie_value" : "MBSN4Resp-Flags", "presence" : "C", "tlv_more" : "0", "comment" : "This IE shall be included if at least one of the flags is set to 1. NOTE2.- NN19DT (New N19mb Downlink Tunnel): the UPF shall set this flag if it has allocated a new N19mb DL TEID for the MBS session;- JMTI (Joined N19mb Multicast Tree Indication): the UPF shall set this flag if it has joined the multicast tree from the MB-UPF;- N19DTR (N19mb Downlink Tunnel Removal): the UPF shall set this flag if it is about to remove the N19mb DL Tunnel for receiving the MBS session data. "})
+group_list["MBS Session N4 Information"] = { "index" : "411", "type" : "311", "ies" : ies }
ies = []
ies.append({ "ie_type" : "PDR ID", "ie_value" : "PDR ID", "presence" : "M", "tlv_more" : "0", "comment" : ""})
ies.append({ "ie_type" : "F-TEID", "ie_value" : "Local F-TEID", "presence" : "C", "tlv_more" : "0", "comment" : "If the UP function allocates the F-TEID, this IE shall be present and shall contain the local F-TEID to be used for this PDR."})
diff --git a/lib/pfcp/support/pfcp-tlv.py b/lib/pfcp/support/pfcp-tlv.py
index 671b81640c..0c4935a425 100644
--- a/lib/pfcp/support/pfcp-tlv.py
+++ b/lib/pfcp/support/pfcp-tlv.py
@@ -516,6 +516,7 @@ def write_cells_to_file(name, cells):
type_list["Event Threshold"]["size"] = 4 # Type 149
type_list["Averaging Window"]["size"] = 4 # Type 157
type_list["Paging Policy Indicator"]["size"] = 1 # Type 158
+type_list["3GPP Interface Type"]["size"] = 1 # Type 160
type_list["PFCPSRReq-Flags"]["size"] = 1 # Type 161
type_list["PFCPAUReq-Flags"]["size"] = 1 # Type 162
type_list["Quota Validity Time"]["size"] = 4 # Type 181
diff --git a/lib/pfcp/types.c b/lib/pfcp/types.c
index 50debd3fee..3538acf6c1 100644
--- a/lib/pfcp/types.c
+++ b/lib/pfcp/types.c
@@ -149,14 +149,22 @@ int16_t ogs_pfcp_parse_user_plane_ip_resource_info(
size++;
if (info->teidri) {
- ogs_assert(size + sizeof(info->teid_range) <= octet->len);
+ if (size + sizeof(info->teid_range) > octet->len) {
+ ogs_error("size[%d]+sizeof(info->teid_range)[%d] > IE Length[%d]",
+ size, (int)sizeof(info->teid_range), octet->len);
+ return 0;
+ }
memcpy(&info->teid_range, (unsigned char *)octet->data + size,
sizeof(info->teid_range));
size += sizeof(info->teid_range);
}
if (info->v4) {
- ogs_assert(size + sizeof(info->addr) <= octet->len);
+ if (size + sizeof(info->addr) > octet->len) {
+ ogs_error("size[%d]+sizeof(info->addr)[%d] > IE Length[%d]",
+ size, (int)sizeof(info->addr), octet->len);
+ return 0;
+ }
memcpy(&info->addr,
(unsigned char *)octet->data + size,
sizeof(info->addr));
@@ -164,30 +172,51 @@ int16_t ogs_pfcp_parse_user_plane_ip_resource_info(
}
if (info->v6) {
- ogs_assert(size + OGS_IPV6_LEN <= octet->len);
+ if (size + OGS_IPV6_LEN > octet->len) {
+ ogs_error("size[%d]+OGS_IPV6_LEN[%d] > IE Length[%d]",
+ size, (int)OGS_IPV6_LEN, octet->len);
+ return 0;
+ }
memcpy(&info->addr6, (unsigned char *)octet->data + size, OGS_IPV6_LEN);
size += OGS_IPV6_LEN;
}
if (info->assoni) {
int len = octet->len - size;
- if (info->assosi) len--;
+ if (len <= 0) {
+ ogs_error("len[%d] octect->len[%d] size[%d]", len, octet->len, size);
+ return 0;
+ }
- ogs_assert(0 < ogs_fqdn_parse(
- info->network_instance, (char *)octet->data + size,
- ogs_min(len, OGS_MAX_APN_LEN)));
+ if (info->assosi) len--;
+ if (len <= 0) {
+ ogs_error("info->assosi[%d] len[%d] octect->len[%d] size[%d]",
+ info->assosi, len, octet->len, size);
+ return 0;
+ }
+
+ if (ogs_fqdn_parse(info->network_instance, (char *)octet->data + size,
+ ogs_min(len, OGS_MAX_APN_LEN)) <= 0) {
+ ogs_error("Invalid info->network_instance");
+ info->network_instance[0] = 0;
+ }
size += len;
}
if (info->assosi) {
- ogs_assert(size + sizeof(info->source_interface) <=
- octet->len);
+ if (size + sizeof(info->source_interface) > octet->len) {
+ ogs_error("size[%d]+sizeof(info->source_interface)[%d] > "
+ "IE Length[%d]",
+ size, (int)sizeof(info->source_interface), octet->len);
+ return 0;
+ }
memcpy(&info->source_interface, (unsigned char *)octet->data + size,
sizeof(info->source_interface));
size += sizeof(info->source_interface);
}
- ogs_assert(size == octet->len);
+ if (size != octet->len)
+ ogs_error("Mismatch IE Length[%d] != Decoded[%d]", octet->len, size);
return size;
}
@@ -282,18 +311,32 @@ int16_t ogs_pfcp_parse_sdf_filter(
memset(filter, 0, sizeof(ogs_pfcp_sdf_filter_t));
- ogs_assert(size + sizeof(filter->flags) <= octet->len);
+ if (size + sizeof(filter->flags) > octet->len) {
+ ogs_error("size[%d]+sizeof(filter->flags)[%d] > IE Length[%d]",
+ size, (int)sizeof(filter->flags), octet->len);
+ return 0;
+ }
memcpy(&filter->flags,
(unsigned char *)octet->data + size, sizeof(filter->flags));
size++;
- ogs_assert(size + sizeof(filter->spare2) <= octet->len);
+ if (size + sizeof(filter->spare2) > octet->len) {
+ ogs_error("size[%d]+sizeof(filter->spare2)[%d] > IE Length[%d]",
+ size, (int)sizeof(filter->spare2), octet->len);
+ return 0;
+ }
memcpy(&filter->spare2,
(unsigned char *)octet->data + size, sizeof(filter->flags));
size++;
if (filter->fd) {
- ogs_assert(size + sizeof(filter->flow_description_len) <= octet->len);
+ if (size + sizeof(filter->flow_description_len) > octet->len) {
+ ogs_error("size[%d]+sizeof(filter->flow_description_len)[%d] "
+ "> IE Length[%d]",
+ size, (int)sizeof(filter->flow_description_len),
+ octet->len);
+ return 0;
+ }
memcpy(&filter->flow_description_len,
(unsigned char *)octet->data + size,
sizeof(filter->flow_description_len));
@@ -305,7 +348,12 @@ int16_t ogs_pfcp_parse_sdf_filter(
}
if (filter->ttc) {
- ogs_assert(size + sizeof(filter->tos_traffic_class) <= octet->len);
+ if (size + sizeof(filter->tos_traffic_class) > octet->len) {
+ ogs_error("size[%d]+sizeof(filter->tos_traffic_class)[%d] "
+ "> IE Length[%d]",
+ size, (int)sizeof(filter->tos_traffic_class), octet->len);
+ return 0;
+ }
memcpy(&filter->tos_traffic_class,
(unsigned char *)octet->data + size,
sizeof(filter->tos_traffic_class));
@@ -314,8 +362,13 @@ int16_t ogs_pfcp_parse_sdf_filter(
}
if (filter->spi) {
- ogs_assert(size + sizeof(filter->security_parameter_index) <=
- octet->len);
+ if (size + sizeof(filter->security_parameter_index) > octet->len) {
+ ogs_error("size[%d]+sizeof(filter->security_parameter_index)[%d] "
+ "> IE Length[%d]",
+ size, (int)sizeof(filter->security_parameter_index),
+ octet->len);
+ return 0;
+ }
memcpy(&filter->security_parameter_index,
(unsigned char *)octet->data + size,
sizeof(filter->security_parameter_index));
@@ -326,7 +379,11 @@ int16_t ogs_pfcp_parse_sdf_filter(
if (filter->fl) {
int bit24_len = 3;
- ogs_assert(size + bit24_len <= octet->len);
+ if (size + bit24_len > octet->len) {
+ ogs_error("size[%d]+bit24_len[%d] > IE Length[%d]",
+ size, bit24_len, octet->len);
+ return 0;
+ }
memcpy(&filter->flow_label,
(unsigned char *)octet->data + size, bit24_len);
filter->flow_label = be32toh(filter->flow_label);
@@ -334,14 +391,20 @@ int16_t ogs_pfcp_parse_sdf_filter(
}
if (filter->bid) {
- ogs_assert(size + sizeof(filter->sdf_filter_id) <= octet->len);
+ if (size + sizeof(filter->sdf_filter_id) > octet->len) {
+ ogs_error("size[%d]+sizeof(filter->sdf_filter_id)[%d]"
+ "> IE Length[%d]",
+ size, (int)sizeof(filter->sdf_filter_id), octet->len);
+ return 0;
+ }
memcpy(&filter->sdf_filter_id, (unsigned char *)octet->data + size,
sizeof(filter->sdf_filter_id));
filter->sdf_filter_id = be32toh(filter->sdf_filter_id);
size += sizeof(filter->sdf_filter_id);
}
- ogs_assert(size == octet->len);
+ if (size != octet->len)
+ ogs_error("Mismatch IE Length[%d] != Decoded[%d]", octet->len, size);
return size;
}
@@ -479,25 +542,44 @@ int16_t ogs_pfcp_parse_volume(
size += sizeof(volume->flags);
if (volume->tovol) {
+ if (size + sizeof(volume->total_volume) > octet->len) {
+ ogs_error("size[%d]+sizeof(volume->total_volume)[%d] "
+ "> IE Length[%d]",
+ size, (int)sizeof(volume->total_volume), octet->len);
+ return 0;
+ }
memcpy(&volume->total_volume, (unsigned char *)octet->data + size,
sizeof(volume->total_volume));
volume->total_volume = be64toh(volume->total_volume);
size += sizeof(volume->total_volume);
}
if (volume->ulvol) {
+ if (size + sizeof(volume->uplink_volume) > octet->len) {
+ ogs_error("size[%d]+sizeof(volume->uplink_volume)[%d] "
+ "> IE Length[%d]",
+ size, (int)sizeof(volume->uplink_volume), octet->len);
+ return 0;
+ }
memcpy(&volume->uplink_volume, (unsigned char *)octet->data + size,
sizeof(volume->uplink_volume));
volume->uplink_volume = be64toh(volume->uplink_volume);
size += sizeof(volume->uplink_volume);
}
if (volume->dlvol) {
+ if (size + sizeof(volume->downlink_volume) > octet->len) {
+ ogs_error("size[%d]+sizeof(volume->downlink_volume)[%d] "
+ "> IE Length[%d]",
+ size, (int)sizeof(volume->downlink_volume), octet->len);
+ return 0;
+ }
memcpy(&volume->downlink_volume, (unsigned char *)octet->data + size,
sizeof(volume->downlink_volume));
volume->downlink_volume = be64toh(volume->downlink_volume);
size += sizeof(volume->downlink_volume);
}
- ogs_assert(size == octet->len);
+ if (size != octet->len)
+ ogs_error("Mismatch IE Length[%d] != Decoded[%d]", octet->len, size);
return size;
}
diff --git a/lib/pfcp/types.h b/lib/pfcp/types.h
index 895a7efd2c..cbe9df7de8 100644
--- a/lib/pfcp/types.h
+++ b/lib/pfcp/types.h
@@ -441,8 +441,6 @@ ED7(uint8_t spare:2;,
#define OGS_PFCP_APPLY_ACTION_MBSU (1<<4)
typedef uint16_t ogs_pfcp_apply_action_t;
-
-
/* 8.2.58 CP Function Features */
typedef struct ogs_pfcp_cp_function_features_s {
union {
@@ -552,9 +550,17 @@ typedef struct ogs_pfcp_outer_header_removal_s {
uint8_t gtpu_extheader_deletion;
} ogs_pfcp_outer_header_removal_t;
+/******************************************************************************
+ * PFCP Node ID structure
+ ******************************************************************************/
#define OGS_PFCP_NODE_ID_IPV4 0
#define OGS_PFCP_NODE_ID_IPV6 1
#define OGS_PFCP_NODE_ID_FQDN 2
+
+/******************************************************************************
+ * Add this line to define the UNKNOWN type. We use '3' since 0,1,2 are taken.
+ ******************************************************************************/
+#define OGS_PFCP_NODE_ID_UNKNOWN 0xf
typedef struct ogs_pfcp_node_id_s {
ED2(uint8_t spare:4;,
uint8_t type:4;)
@@ -1651,6 +1657,54 @@ int16_t ogs_pfcp_build_user_id(
ogs_tlv_octet_t *octet, ogs_pfcp_user_id_t *user_id,
void *data, int data_len);
+/*
+ * 8.2.118 3GPP Interface Type
+ *
+ * NOTE 1: If separation of roaming and non-roaming traffic is desired
+ * this value should only be used for the S5-U interface
+ * and "S8-U" (decimal 19) should be used for the S8-U interface.
+ * NOTE 2: If separation of roaming and non-roaming traffic is desired
+ * this value should only be used for the Gn-U interface
+ * and "Gp-U" (decimal 20) should be used for the Gp-U interface.
+ * NOTE 3: If separation of roaming and non-roaming traffic is desired,
+ * this value should only be used for N9 non-roaming interfaces
+ * and (decimal value "21") should be used for N9 roaming interfaces.
+ */
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S1_U 0
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S5_S8_U 1 /* NOTE 1 */
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S4_U 2
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S11_U 3
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S12 4
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_GN_GP_U 5 /* NOTE 2 */
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S2A_U 6
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S2B_U 7
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_ENB_GTP_U_FOR_DL_DATA_FORWARDING 8
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_ENB_GTP_U_FOR_UL_DATA_FORWARDING 9
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_SGW_UPF_GTP_U_FOR_DL_DATA_FORWARDING 10
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N3_3GPP_ACCESS 11
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N3_TRUSTED_NON_3GPP_ACCESS 12
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N3_UNTRUSTED_NON_3GPP_ACCESS 13
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N3_FOR_DATA_FORWARDING 14
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N9 15 /* NOTE 3 */
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_SGI 16
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N6 17
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N19 18
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_S8_U 19
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_GP_U 20
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N9_FOR_ROAMING 21
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_IU_U 22
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N9_FOR_DATA_FORWARDING 23
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_SXA_U 24
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_SXB_U 25
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_SXC_U 26
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N4_U 27
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_SGW_UPF_GTP_U_FOR_UL_DATA_FORWARDING 28
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N6MB_NMB9 29
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N3MB 30
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_N19MB 31
+#define OGS_PFCP_3GPP_INTERFACE_TYPE_UNKNOWN 0xff
+typedef uint8_t ogs_pfcp_3gpp_interface_type_t;
+
/*
* 8.2.136 PFCPSEReq-Flags
*
diff --git a/lib/pfcp/util.c b/lib/pfcp/util.c
new file mode 100644
index 0000000000..295f1211cd
--- /dev/null
+++ b/lib/pfcp/util.c
@@ -0,0 +1,316 @@
+/*
+ * Copyright (C) 2025 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "ogs-pfcp.h"
+
+/*
+ * Requirements of Node ID:
+ * NONE : Node ID must not be present
+ * OPTIONAL : Node ID may or may not be present
+ * MANDATORY : Node ID must be present
+ */
+#define OGS_PFCP_NODE_ID_NONE 0
+#define OGS_PFCP_NODE_ID_OPTIONAL 1
+#define OGS_PFCP_NODE_ID_MANDATORY 2
+
+/*
+ * This function extracts the PFCP Node ID from the given PFCP message.
+ * It determines the Node ID field location and requirement based on
+ * the message type. Then it validates presence and copies data into
+ * 'node_id'. If Node ID is not consistent with the requirement, an
+ * error status is returned.
+ */
+ogs_pfcp_status_e
+ogs_pfcp_extract_node_id(ogs_pfcp_message_t *message,
+ ogs_pfcp_node_id_t *node_id)
+{
+
+ /* For C89 compliance, all variables are declared upfront. */
+ ogs_pfcp_tlv_node_id_t *tlv_node_id = NULL;
+ int requirement = OGS_PFCP_NODE_ID_NONE;
+ ogs_pfcp_status_e status = OGS_PFCP_STATUS_SUCCESS;
+
+ /* Validate input pointers */
+ ogs_assert(message);
+ ogs_assert(node_id);
+
+ /* Initialize the output structure */
+ memset(node_id, 0, sizeof(*node_id));
+
+ /* Determine the location of node_id TLV and requirement */
+ switch (message->h.type) {
+ case OGS_PFCP_PFD_MANAGEMENT_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_pfd_management_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_OPTIONAL;
+ break;
+
+ case OGS_PFCP_PFD_MANAGEMENT_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_pfd_management_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_OPTIONAL;
+ break;
+
+ case OGS_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_association_setup_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_ASSOCIATION_SETUP_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_association_setup_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_ASSOCIATION_UPDATE_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_association_update_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_ASSOCIATION_UPDATE_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_association_update_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_ASSOCIATION_RELEASE_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_association_release_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_ASSOCIATION_RELEASE_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_association_release_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_NODE_REPORT_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_node_report_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_NODE_REPORT_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_node_report_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_SESSION_SET_DELETION_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_session_set_deletion_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_SESSION_SET_DELETION_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_session_set_deletion_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_SESSION_SET_MODIFICATION_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_session_set_modification_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_SESSION_SET_MODIFICATION_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_session_set_modification_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_SESSION_ESTABLISHMENT_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_session_establishment_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE:
+ tlv_node_id = &message->pfcp_session_establishment_response.node_id;
+ requirement = OGS_PFCP_NODE_ID_MANDATORY;
+ break;
+
+ case OGS_PFCP_SESSION_MODIFICATION_REQUEST_TYPE:
+ tlv_node_id = &message->pfcp_session_modification_request.node_id;
+ requirement = OGS_PFCP_NODE_ID_OPTIONAL;
+ break;
+
+ /* Add other message types with node_id here as needed */
+
+ case OGS_PFCP_HEARTBEAT_REQUEST_TYPE:
+ case OGS_PFCP_HEARTBEAT_RESPONSE_TYPE:
+ case OGS_PFCP_VERSION_NOT_SUPPORTED_RESPONSE_TYPE:
+ case OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE:
+ case OGS_PFCP_SESSION_DELETION_REQUEST_TYPE:
+ case OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE:
+ case OGS_PFCP_SESSION_REPORT_REQUEST_TYPE:
+ case OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE:
+ /* Node ID must not be present for these messages */
+ requirement = OGS_PFCP_NODE_ID_NONE;
+ break;
+
+ default:
+ /* Unknown message type */
+ ogs_error("Unknown message type %d", message->h.type);
+ return OGS_PFCP_ERROR_UNKNOWN_MESSAGE;
+ }
+
+ /* Check requirement vs. tlv_node_id existence */
+ switch (requirement) {
+ case OGS_PFCP_NODE_ID_MANDATORY:
+ /* Must have tlv_node_id. presence must be 1. */
+ ogs_assert(tlv_node_id);
+ if (!tlv_node_id->presence) {
+ status = OGS_PFCP_ERROR_NODE_ID_NOT_PRESENT;
+ goto done;
+ }
+ break;
+
+ case OGS_PFCP_NODE_ID_OPTIONAL:
+ /*
+ * Must have tlv_node_id. presence=1 => real Node ID
+ * presence=0 => no Node ID
+ */
+ ogs_assert(tlv_node_id);
+ if (!tlv_node_id->presence) {
+ status = OGS_PFCP_STATUS_NODE_ID_OPTIONAL_ABSENT;
+ goto done;
+ }
+ break;
+
+ case OGS_PFCP_NODE_ID_NONE:
+ /* Must be NULL => no Node ID field */
+ ogs_assert(tlv_node_id == NULL);
+ status = OGS_PFCP_STATUS_NODE_ID_NONE;
+ goto done;
+
+ default:
+ status = OGS_PFCP_ERROR_UNKNOWN_MESSAGE;
+ goto done;
+ }
+
+ memcpy(node_id, tlv_node_id->data, tlv_node_id->len);
+
+ if (node_id->type != OGS_PFCP_NODE_ID_IPV4 &&
+ node_id->type != OGS_PFCP_NODE_ID_IPV6 &&
+ node_id->type != OGS_PFCP_NODE_ID_FQDN) {
+ ogs_error("Semantic incorrect message[%d] type[%d]",
+ message->h.type, node_id->type);
+ return OGS_PFCP_ERROR_SEMANTIC_INCORRECT_MESSAGE;
+ }
+
+ /* Node ID is valid */
+ status = OGS_PFCP_STATUS_SUCCESS;
+
+done:
+ return status;
+}
+
+ogs_sockaddr_t *ogs_pfcp_node_id_to_addrinfo(const ogs_pfcp_node_id_t *node_id)
+{
+ ogs_sockaddr_t *p;
+ int ret;
+ uint16_t port = ogs_pfcp_self()->pfcp_port;
+ char fqdn[OGS_MAX_FQDN_LEN+1];
+
+ ogs_assert(node_id);
+ switch (node_id->type) {
+
+ /*------------------------------------------------
+ * 1) IPv4
+ *-----------------------------------------------*/
+ case OGS_PFCP_NODE_ID_IPV4:
+ p = (ogs_sockaddr_t *)ogs_calloc(1, sizeof(*p));
+ if (!p) {
+ ogs_error("ogs_calloc() failed");
+ return NULL;
+ }
+ p->sa.sa_family = AF_INET;
+ p->sin.sin_port = htobe16(port);
+ p->sin.sin_addr.s_addr = node_id->addr;
+ p->next = NULL;
+ return p;
+
+ /*------------------------------------------------
+ * 2) IPv6
+ *-----------------------------------------------*/
+ case OGS_PFCP_NODE_ID_IPV6:
+ p = (ogs_sockaddr_t *)ogs_calloc(1, sizeof(*p));
+ if (!p) {
+ ogs_error("ogs_calloc() failed");
+ return NULL;
+ }
+ p->sa.sa_family = AF_INET6;
+ p->sin6.sin6_port = htobe16(port);
+ /* Copy 16 bytes of IPv6 address */
+ memcpy(&p->sin6.sin6_addr, node_id->addr6, 16);
+ p->next = NULL;
+ return p;
+
+ /*------------------------------------------------
+ * 3) FQDN
+ *-----------------------------------------------*/
+ case OGS_PFCP_NODE_ID_FQDN:
+ /* If the FQDN is not empty, we attempt DNS resolution.
+ * ogs_addaddrinfo() is a placeholder for your actual
+ * DNS -> ogs_sockaddr_t function (often wraps getaddrinfo).
+ */
+ /* Port=0 or set as needed, family=AF_UNSPEC, flags=0. */
+ if (ogs_fqdn_parse(fqdn, node_id->fqdn, strlen(node_id->fqdn)) <= 0) {
+ ogs_error("ogs_fqdn_parse() error [%s]", node_id->fqdn);
+ return NULL;
+ }
+ ret = ogs_getaddrinfo(&p, AF_UNSPEC, fqdn, port, 0);
+ if (ret != 0) {
+ /* DNS resolution failed => *out remains NULL */
+ ogs_error("ogs_addaddrinfo() failed");
+ return NULL;
+ }
+ /* If FQDN is empty, just return with no addresses. */
+ return p;
+
+ /*------------------------------------------------
+ * 4) Unsupported type or default
+ *-----------------------------------------------*/
+ default:
+ /* Optionally handle an error or just return success
+ * with no addresses.
+ */
+ ogs_error("Unknown type [%d]", node_id->type);
+ return NULL;
+ }
+}
+
+/* Utility function to convert node_id to string for logging */
+const char *ogs_pfcp_node_id_to_string_static(
+ const ogs_pfcp_node_id_t *node_id)
+{
+ static char buffer[OGS_MAX_FQDN_LEN+1] = { 0, };
+
+ if (node_id) {
+ switch (node_id->type) {
+ case OGS_PFCP_NODE_ID_IPV4:
+ inet_ntop(AF_INET, &node_id->addr, buffer, sizeof(buffer));
+ break;
+ case OGS_PFCP_NODE_ID_IPV6:
+ inet_ntop(AF_INET6, node_id->addr6, buffer, sizeof(buffer));
+ break;
+ case OGS_PFCP_NODE_ID_FQDN:
+ if (ogs_fqdn_parse(buffer,
+ node_id->fqdn,
+ strlen(node_id->fqdn)) <= 0)
+ snprintf(buffer, sizeof(buffer), "%s", node_id->fqdn);
+ break;
+ default:
+ snprintf(buffer, sizeof(buffer), "Unknown");
+ break;
+ }
+ }
+
+ return buffer;
+}
diff --git a/lib/pfcp/util.h b/lib/pfcp/util.h
new file mode 100644
index 0000000000..ef6ae5d9a6
--- /dev/null
+++ b/lib/pfcp/util.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2025 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#if !defined(OGS_PFCP_INSIDE) && !defined(OGS_PFCP_COMPILATION)
+#error "This header cannot be included directly."
+#endif
+
+#ifndef OGS_PFCP_UTIL_H
+#define OGS_PFCP_UTIL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ /* Success with actual Node ID */
+ OGS_PFCP_STATUS_SUCCESS = 0,
+
+ /* Success with no Node ID (NONE type) */
+ OGS_PFCP_STATUS_NODE_ID_NONE,
+
+ /* Success with OPTIONAL node_id_tlv, but presence=0 */
+ OGS_PFCP_STATUS_NODE_ID_OPTIONAL_ABSENT,
+
+ /* Error codes */
+ OGS_PFCP_ERROR_SEMANTIC_INCORRECT_MESSAGE,
+ OGS_PFCP_ERROR_NODE_ID_NOT_PRESENT,
+ OGS_PFCP_ERROR_NODE_ID_NOT_FOUND,
+ OGS_PFCP_ERROR_UNKNOWN_MESSAGE
+
+} ogs_pfcp_status_e;
+
+ogs_pfcp_status_e
+ogs_pfcp_extract_node_id(ogs_pfcp_message_t *message,
+ ogs_pfcp_node_id_t *node_id);
+
+ogs_sockaddr_t *ogs_pfcp_node_id_to_addrinfo(const ogs_pfcp_node_id_t *node_id);
+const char *ogs_pfcp_node_id_to_string_static(
+ const ogs_pfcp_node_id_t *node_id);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OGS_PFCP_UTIL_H */
diff --git a/lib/pfcp/xact.c b/lib/pfcp/xact.c
index 878bec7141..fbbc2d97c5 100644
--- a/lib/pfcp/xact.c
+++ b/lib/pfcp/xact.c
@@ -70,14 +70,12 @@ void ogs_pfcp_xact_final(void)
ogs_pfcp_xact_t *ogs_pfcp_xact_local_create(ogs_pfcp_node_t *node,
void (*cb)(ogs_pfcp_xact_t *xact, void *data), void *data)
{
- char buf[OGS_ADDRSTRLEN];
ogs_pfcp_xact_t *xact = NULL;
ogs_assert(node);
- ogs_pool_alloc(&pool, &xact);
+ ogs_pool_id_calloc(&pool, &xact);
ogs_assert(xact);
- memset(xact, 0, sizeof *xact);
xact->index = ogs_pool_index(&pool, xact);
xact->org = OGS_PFCP_LOCAL_ORIGINATOR;
@@ -87,19 +85,22 @@ ogs_pfcp_xact_t *ogs_pfcp_xact_local_create(ogs_pfcp_node_t *node,
xact->data = data;
xact->tm_response = ogs_timer_add(
- ogs_app()->timer_mgr, response_timeout, xact);
+ ogs_app()->timer_mgr, response_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_response);
xact->response_rcount =
ogs_local_conf()->time.message.pfcp.n1_response_rcount;
xact->tm_holding = ogs_timer_add(
- ogs_app()->timer_mgr, holding_timeout, xact);
+ ogs_app()->timer_mgr, holding_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_holding);
xact->holding_rcount =
ogs_local_conf()->time.message.pfcp.n1_holding_rcount;
xact->tm_delayed_commit = ogs_timer_add(
- ogs_app()->timer_mgr, delayed_commit_timeout, xact);
+ ogs_app()->timer_mgr, delayed_commit_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_delayed_commit);
ogs_list_add(xact->org == OGS_PFCP_LOCAL_ORIGINATOR ?
@@ -107,11 +108,10 @@ ogs_pfcp_xact_t *ogs_pfcp_xact_local_create(ogs_pfcp_node_t *node,
ogs_list_init(&xact->pdr_to_create_list);
- ogs_debug("[%d] %s Create peer [%s]:%d",
+ ogs_debug("[%d] %s Create peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_sockaddr_to_string_static(node->addr_list));
return xact;
}
@@ -119,14 +119,12 @@ ogs_pfcp_xact_t *ogs_pfcp_xact_local_create(ogs_pfcp_node_t *node,
static ogs_pfcp_xact_t *ogs_pfcp_xact_remote_create(
ogs_pfcp_node_t *node, uint32_t sqn)
{
- char buf[OGS_ADDRSTRLEN];
ogs_pfcp_xact_t *xact = NULL;
ogs_assert(node);
- ogs_pool_alloc(&pool, &xact);
+ ogs_pool_id_calloc(&pool, &xact);
ogs_assert(xact);
- memset(xact, 0, sizeof *xact);
xact->index = ogs_pool_index(&pool, xact);
xact->org = OGS_PFCP_REMOTE_ORIGINATOR;
@@ -134,38 +132,35 @@ static ogs_pfcp_xact_t *ogs_pfcp_xact_remote_create(
xact->node = node;
xact->tm_response = ogs_timer_add(
- ogs_app()->timer_mgr, response_timeout, xact);
+ ogs_app()->timer_mgr, response_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_response);
xact->response_rcount =
ogs_local_conf()->time.message.pfcp.n1_response_rcount;
xact->tm_holding = ogs_timer_add(
- ogs_app()->timer_mgr, holding_timeout, xact);
+ ogs_app()->timer_mgr, holding_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_holding);
xact->holding_rcount =
ogs_local_conf()->time.message.pfcp.n1_holding_rcount;
xact->tm_delayed_commit = ogs_timer_add(
- ogs_app()->timer_mgr, delayed_commit_timeout, xact);
+ ogs_app()->timer_mgr, delayed_commit_timeout,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_assert(xact->tm_delayed_commit);
ogs_list_add(xact->org == OGS_PFCP_LOCAL_ORIGINATOR ?
&xact->node->local_list : &xact->node->remote_list, xact);
- ogs_debug("[%d] %s Create peer [%s]:%d",
+ ogs_debug("[%d] %s Create peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_sockaddr_to_string_static(node->addr_list));
return xact;
}
-ogs_pfcp_xact_t *ogs_pfcp_xact_cycle(ogs_pfcp_xact_t *xact)
-{
- return ogs_pool_cycle(&pool, xact);
-}
-
void ogs_pfcp_xact_delete_all(ogs_pfcp_node_t *node)
{
ogs_pfcp_xact_t *xact = NULL, *next_xact = NULL;
@@ -176,10 +171,14 @@ void ogs_pfcp_xact_delete_all(ogs_pfcp_node_t *node)
ogs_pfcp_xact_delete(xact);
}
+ogs_pfcp_xact_t *ogs_pfcp_xact_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&pool, id);
+}
+
int ogs_pfcp_xact_update_tx(ogs_pfcp_xact_t *xact,
ogs_pfcp_header_t *hdesc, ogs_pkbuf_t *pkbuf)
{
- char buf[OGS_ADDRSTRLEN];
ogs_pfcp_xact_stage_t stage;
ogs_pfcp_header_t *h = NULL;
int pfcp_hlen = 0;
@@ -189,12 +188,11 @@ int ogs_pfcp_xact_update_tx(ogs_pfcp_xact_t *xact,
ogs_assert(hdesc);
ogs_assert(pkbuf);
- ogs_debug("[%d] %s UPD TX-%d peer [%s]:%d",
+ ogs_debug("[%d] %s UPD TX-%d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
hdesc->type,
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
stage = ogs_pfcp_xact_get_stage(hdesc->type, xact->xid);
if (xact->org == OGS_PFCP_LOCAL_ORIGINATOR) {
@@ -286,15 +284,13 @@ int ogs_pfcp_xact_update_tx(ogs_pfcp_xact_t *xact,
static int ogs_pfcp_xact_update_rx(ogs_pfcp_xact_t *xact, uint8_t type)
{
- char buf[OGS_ADDRSTRLEN];
ogs_pfcp_xact_stage_t stage;
- ogs_debug("[%d] %s UPD RX-%d peer [%s]:%d",
+ ogs_debug("[%d] %s UPD RX-%d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
type,
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
stage = ogs_pfcp_xact_get_stage(type, xact->xid);
if (xact->org == OGS_PFCP_LOCAL_ORIGINATOR) {
@@ -321,25 +317,23 @@ static int ogs_pfcp_xact_update_rx(ogs_pfcp_xact_t *xact, uint8_t type)
pfcp.t1_holding_duration);
ogs_warn("[%d] %s Request Duplicated. Retransmit!"
- " for step %d type %d peer [%s]:%d",
+ " for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ?
"LOCAL " : "REMOTE",
xact->step, type,
- OGS_ADDR(&xact->node->addr,
- buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(
+ xact->node->addr_list));
ogs_expect(OGS_OK == ogs_pfcp_sendto(xact->node, pkbuf));
} else {
ogs_warn("[%d] %s Request Duplicated. Discard!"
- " for step %d type %d peer [%s]:%d",
+ " for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ?
"LOCAL " : "REMOTE",
xact->step, type,
- OGS_ADDR(&xact->node->addr,
- buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(
+ xact->node->addr_list));
}
return OGS_RETRY;
@@ -387,25 +381,23 @@ static int ogs_pfcp_xact_update_rx(ogs_pfcp_xact_t *xact, uint8_t type)
pfcp.t1_holding_duration);
ogs_warn("[%d] %s Request Duplicated. Retransmit!"
- " for step %d type %d peer [%s]:%d",
+ " for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ?
"LOCAL " : "REMOTE",
xact->step, type,
- OGS_ADDR(&xact->node->addr,
- buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(
+ xact->node->addr_list));
ogs_expect(OGS_OK == ogs_pfcp_sendto(xact->node, pkbuf));
} else {
ogs_warn("[%d] %s Request Duplicated. Discard!"
- " for step %d type %d peer [%s]:%d",
+ " for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ?
"LOCAL " : "REMOTE",
xact->step, type,
- OGS_ADDR(&xact->node->addr,
- buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(
+ xact->node->addr_list));
}
return OGS_RETRY;
@@ -458,8 +450,6 @@ static int ogs_pfcp_xact_update_rx(ogs_pfcp_xact_t *xact, uint8_t type)
int ogs_pfcp_xact_commit(ogs_pfcp_xact_t *xact)
{
- char buf[OGS_ADDRSTRLEN];
-
uint8_t type;
ogs_pkbuf_t *pkbuf = NULL;
ogs_pfcp_xact_stage_t stage;
@@ -467,11 +457,10 @@ int ogs_pfcp_xact_commit(ogs_pfcp_xact_t *xact)
ogs_assert(xact);
ogs_assert(xact->node);
- ogs_debug("[%d] %s Commit peer [%s]:%d",
+ ogs_debug("[%d] %s Commit peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
type = xact->seq[xact->step-1].type;
stage = ogs_pfcp_xact_get_stage(type, xact->xid);
@@ -577,19 +566,26 @@ void ogs_pfcp_xact_delayed_commit(ogs_pfcp_xact_t *xact, ogs_time_t duration)
static void response_timeout(void *data)
{
- char buf[OGS_ADDRSTRLEN];
- ogs_pfcp_xact_t *xact = data;
+ ogs_pool_id_t xact_id = OGS_INVALID_POOL_ID;
+ ogs_pfcp_xact_t *xact = NULL;
- ogs_assert(xact);
+ ogs_assert(data);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
+
+ xact = ogs_pfcp_xact_find_by_id(xact_id);
+ if (!xact) {
+ ogs_error("PFCP Transaction has already been removed [%d]", xact_id);
+ return;;
+ }
ogs_assert(xact->node);
ogs_debug("[%d] %s Response Timeout "
- "for step %d type %d peer [%s]:%d",
+ "for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
xact->step, xact->seq[xact->step-1].type,
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
if (--xact->response_rcount > 0) {
ogs_pkbuf_t *pkbuf = NULL;
@@ -604,12 +600,11 @@ static void response_timeout(void *data)
ogs_expect(OGS_OK == ogs_pfcp_sendto(xact->node, pkbuf));
} else {
ogs_warn("[%d] %s No Reponse. Give up! "
- "for step %d type %d peer [%s]:%d",
+ "for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
xact->step, xact->seq[xact->step-1].type,
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
if (xact->cb)
xact->cb(xact, xact->data);
@@ -620,19 +615,26 @@ static void response_timeout(void *data)
static void holding_timeout(void *data)
{
- char buf[OGS_ADDRSTRLEN];
- ogs_pfcp_xact_t *xact = data;
+ ogs_pool_id_t xact_id = OGS_INVALID_POOL_ID;
+ ogs_pfcp_xact_t *xact = NULL;
- ogs_assert(xact);
+ ogs_assert(data);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
+
+ xact = ogs_pfcp_xact_find_by_id(xact_id);
+ if (!xact) {
+ ogs_error("PFCP Transaction has already been removed [%d]", xact_id);
+ return;;
+ }
ogs_assert(xact->node);
ogs_debug("[%d] %s Holding Timeout "
- "for step %d type %d peer [%s]:%d",
+ "for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
xact->step, xact->seq[xact->step-1].type,
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
if (--xact->holding_rcount > 0) {
if (xact->tm_holding)
@@ -640,31 +642,37 @@ static void holding_timeout(void *data)
ogs_local_conf()->time.message.pfcp.t1_holding_duration);
} else {
ogs_debug("[%d] %s Delete Transaction "
- "for step %d type %d peer [%s]:%d",
+ "for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
xact->step, xact->seq[xact->step-1].type,
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
ogs_pfcp_xact_delete(xact);
}
}
static void delayed_commit_timeout(void *data)
{
- char buf[OGS_ADDRSTRLEN];
- ogs_pfcp_xact_t *xact = data;
+ ogs_pool_id_t xact_id = OGS_INVALID_POOL_ID;
+ ogs_pfcp_xact_t *xact = NULL;
- ogs_assert(xact);
+ ogs_assert(data);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
+
+ xact = ogs_pfcp_xact_find_by_id(xact_id);
+ if (!xact) {
+ ogs_error("PFCP Transaction has already been removed [%d]", xact_id);
+ return;;
+ }
ogs_assert(xact->node);
ogs_debug("[%d] %s Delayed Send Timeout "
- "for step %d type %d peer [%s]:%d",
+ "for step %d type %d peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
xact->step, xact->seq[xact->step-1].type,
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
ogs_pfcp_xact_commit(xact);
}
@@ -673,7 +681,6 @@ int ogs_pfcp_xact_receive(
ogs_pfcp_node_t *node, ogs_pfcp_header_t *h, ogs_pfcp_xact_t **xact)
{
int rv;
- char buf[OGS_ADDRSTRLEN];
uint8_t type;
uint32_t sqn, xid;
@@ -700,35 +707,33 @@ int ogs_pfcp_xact_receive(
list = &node->local_list;
break;
default:
- ogs_error("[%d] Unexpected type %u from PFCP peer [%s]:%d",
- xid, type, OGS_ADDR(&node->addr, buf), OGS_PORT(&node->addr));
+ ogs_error("[%d] Unexpected type %u from PFCP peer %s",
+ xid, type, ogs_sockaddr_to_string_static(node->addr_list));
return OGS_ERROR;
}
ogs_assert(list);
ogs_list_for_each(list, new) {
if (new->xid == xid) {
- ogs_debug("[%d] %s Find peer [%s]:%d",
+ ogs_debug("[%d] %s Find peer %s",
new->xid,
new->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_sockaddr_to_string_static(node->addr_list));
break;
}
}
if (!new) {
- ogs_debug("[%d] Cannot find new type %u from PFCP peer [%s]:%d",
- xid, type, OGS_ADDR(&node->addr, buf), OGS_PORT(&node->addr));
+ ogs_debug("[%d] Cannot find new type %u from PFCP peer %s",
+ xid, type, ogs_sockaddr_to_string_static(node->addr_list));
new = ogs_pfcp_xact_remote_create(node, sqn);
}
ogs_assert(new);
- ogs_debug("[%d] %s Receive peer [%s]:%d",
+ ogs_debug("[%d] %s Receive peer %s",
new->xid,
new->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_sockaddr_to_string_static(node->addr_list));
rv = ogs_pfcp_xact_update_rx(new, type);
if (rv == OGS_ERROR) {
@@ -780,16 +785,13 @@ static ogs_pfcp_xact_stage_t ogs_pfcp_xact_get_stage(uint8_t type, uint32_t xid)
int ogs_pfcp_xact_delete(ogs_pfcp_xact_t *xact)
{
- char buf[OGS_ADDRSTRLEN];
-
ogs_assert(xact);
ogs_assert(xact->node);
- ogs_debug("[%d] %s Delete peer [%s]:%d",
+ ogs_debug("[%d] %s Delete peer %s",
xact->xid,
xact->org == OGS_PFCP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
- OGS_ADDR(&xact->node->addr, buf),
- OGS_PORT(&xact->node->addr));
+ ogs_sockaddr_to_string_static(xact->node->addr_list));
if (xact->seq[0].pkbuf)
ogs_pkbuf_free(xact->seq[0].pkbuf);
@@ -807,7 +809,7 @@ int ogs_pfcp_xact_delete(ogs_pfcp_xact_t *xact)
ogs_list_remove(xact->org == OGS_PFCP_LOCAL_ORIGINATOR ?
&xact->node->local_list : &xact->node->remote_list, xact);
- ogs_pool_free(&pool, xact);
+ ogs_pool_id_free(&pool, xact);
return OGS_OK;
}
diff --git a/lib/pfcp/xact.h b/lib/pfcp/xact.h
index 580b80b463..d41aedf96c 100644
--- a/lib/pfcp/xact.h
+++ b/lib/pfcp/xact.h
@@ -35,6 +35,8 @@ typedef struct ogs_pfcp_xact_s {
ogs_lnode_t lnode; /**< A node of list */
ogs_lnode_t tmpnode; /**< A node of temp-list */
+ ogs_pool_id_t id;
+
ogs_pool_id_t index;
#define OGS_PFCP_LOCAL_ORIGINATOR 0
@@ -68,13 +70,13 @@ typedef struct ogs_pfcp_xact_s {
uint64_t local_seid; /**< Local SEID,
expected in reply from peer */
- void *assoc_xact; /**< Associated GTP transaction */
+ ogs_pool_id_t assoc_xact_id; /**< Associated GTP transaction ID */
ogs_pkbuf_t *gtpbuf; /**< GTP packet buffer */
uint8_t gtp_pti; /**< GTP Procedure transaction identity */
uint8_t gtp_cause; /**< GTP Cause Value */
- void *assoc_stream; /**< Associated SBI session */
+ ogs_pool_id_t assoc_stream_id; /**< Associated SBI session ID */
bool epc; /**< EPC or 5GC */
@@ -98,21 +100,23 @@ typedef struct ogs_pfcp_xact_s {
#define OGS_PFCP_MODIFY_QOS_CREATE ((uint64_t)1<<14)
#define OGS_PFCP_MODIFY_QOS_MODIFY ((uint64_t)1<<15)
#define OGS_PFCP_MODIFY_QOS_DELETE ((uint64_t)1<<16)
-#define OGS_PFCP_MODIFY_ACTIVATE ((uint64_t)1<<17)
-#define OGS_PFCP_MODIFY_DEACTIVATE ((uint64_t)1<<18)
-#define OGS_PFCP_MODIFY_END_MARKER ((uint64_t)1<<19)
-#define OGS_PFCP_MODIFY_ERROR_INDICATION ((uint64_t)1<<20)
-#define OGS_PFCP_MODIFY_XN_HANDOVER ((uint64_t)1<<21)
-#define OGS_PFCP_MODIFY_N2_HANDOVER ((uint64_t)1<<22)
-#define OGS_PFCP_MODIFY_HANDOVER_CANCEL ((uint64_t)1<<23)
-#define OGS_PFCP_MODIFY_URR ((uint64_t)1<<24) /* type of trigger */
-#define OGS_PFCP_MODIFY_URR_MEAS_METHOD ((uint64_t)1<<25)
-#define OGS_PFCP_MODIFY_URR_REPORT_TRIGGER ((uint64_t)1<<26)
-#define OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME ((uint64_t)1<<27)
-#define OGS_PFCP_MODIFY_URR_VOLUME_QUOTA ((uint64_t)1<<28)
-#define OGS_PFCP_MODIFY_URR_TIME_QUOTA ((uint64_t)1<<29)
-#define OGS_PFCP_MODIFY_URR_VOLUME_THRESH ((uint64_t)1<<30)
-#define OGS_PFCP_MODIFY_URR_TIME_THRESH ((uint64_t)1<<31)
+#define OGS_PFCP_MODIFY_OUTER_HEADER_REMOVAL ((uint64_t)1<<17)
+#define OGS_PFCP_MODIFY_ACTIVATE ((uint64_t)1<<18)
+#define OGS_PFCP_MODIFY_DEACTIVATE ((uint64_t)1<<19)
+#define OGS_PFCP_MODIFY_END_MARKER ((uint64_t)1<<20)
+#define OGS_PFCP_MODIFY_ERROR_INDICATION ((uint64_t)1<<21)
+#define OGS_PFCP_MODIFY_XN_HANDOVER ((uint64_t)1<<22)
+#define OGS_PFCP_MODIFY_N2_HANDOVER ((uint64_t)1<<23)
+#define OGS_PFCP_MODIFY_HANDOVER_CANCEL ((uint64_t)1<<24)
+#define OGS_PFCP_MODIFY_HOME_ROUTED_ROAMING ((uint64_t)1<<25)
+#define OGS_PFCP_MODIFY_URR ((uint64_t)1<<26) /* type of trigger */
+#define OGS_PFCP_MODIFY_URR_MEAS_METHOD ((uint64_t)1<<27)
+#define OGS_PFCP_MODIFY_URR_REPORT_TRIGGER ((uint64_t)1<<28)
+#define OGS_PFCP_MODIFY_URR_QUOTA_VALIDITY_TIME ((uint64_t)1<<29)
+#define OGS_PFCP_MODIFY_URR_VOLUME_QUOTA ((uint64_t)1<<30)
+#define OGS_PFCP_MODIFY_URR_TIME_QUOTA ((uint64_t)1<<31)
+#define OGS_PFCP_MODIFY_URR_VOLUME_THRESH ((uint64_t)1<<32)
+#define OGS_PFCP_MODIFY_URR_TIME_THRESH ((uint64_t)1<<33)
uint64_t modify_flags;
#define OGS_PFCP_DELETE_TRIGGER_LOCAL_INITIATED 1
@@ -133,8 +137,8 @@ void ogs_pfcp_xact_final(void);
ogs_pfcp_xact_t *ogs_pfcp_xact_local_create(ogs_pfcp_node_t *node,
void (*cb)(ogs_pfcp_xact_t *xact, void *data), void *data);
-ogs_pfcp_xact_t *ogs_pfcp_xact_cycle(ogs_pfcp_xact_t *xact);
void ogs_pfcp_xact_delete_all(ogs_pfcp_node_t *node);
+ogs_pfcp_xact_t *ogs_pfcp_xact_find_by_id(ogs_pool_id_t id);
int ogs_pfcp_xact_update_tx(ogs_pfcp_xact_t *xact,
ogs_pfcp_header_t *hdesc, ogs_pkbuf_t *pkbuf);
diff --git a/lib/proto/types.c b/lib/proto/types.c
index b6e4110b7b..62f48136fb 100644
--- a/lib/proto/types.c
+++ b/lib/proto/types.c
@@ -146,6 +146,13 @@ char *ogs_home_network_domain_from_plmn_id(const ogs_plmn_id_t *plmn_id)
ogs_plmn_id_mnc(plmn_id), ogs_plmn_id_mcc(plmn_id));
}
+char *ogs_epc_domain_from_plmn_id(const ogs_plmn_id_t *plmn_id)
+{
+ ogs_assert(plmn_id);
+ return ogs_msprintf("epc.mnc%03d.mcc%03d" FQDN_3GPPNETWORK_ORG,
+ ogs_plmn_id_mnc(plmn_id), ogs_plmn_id_mcc(plmn_id));
+}
+
char *ogs_nrf_fqdn_from_plmn_id(const ogs_plmn_id_t *plmn_id)
{
return ogs_msprintf("nrf.5gc.mnc%03d.mcc%03d" FQDN_3GPPNETWORK_ORG,
@@ -391,7 +398,7 @@ ogs_uint24_t ogs_s_nssai_sd_from_string(const char *hex)
if (hex == NULL)
return sd;
- return ogs_uint24_from_string((char *)hex);
+ return ogs_uint24_from_string_hexadecimal((char *)hex);
}
int ogs_fqdn_build(char *dst, const char *src, int length)
@@ -416,13 +423,13 @@ int ogs_fqdn_parse(char *dst, const char *src, int length)
int i = 0, j = 0;
uint8_t len = 0;
- while (i+1 < length) {
+ while (i+1 <= length) {
len = src[i++];
if ((j + len + 1) > length) {
- ogs_error("Invalid FQDN encoding[len:%d] + 1 > length[%d]",
- len, length);
+ ogs_error("Invalid FQDN encoding[j:%d+len:%d] + 1 > length[%d]",
+ j, len, length);
ogs_log_hexdump(OGS_LOG_ERROR, (unsigned char *)src, length);
- return 0;
+ return -EINVAL;
}
memcpy(&dst[j], &src[i], len);
diff --git a/lib/proto/types.h b/lib/proto/types.h
index 3ae4295d97..43d6824605 100644
--- a/lib/proto/types.h
+++ b/lib/proto/types.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -34,20 +34,45 @@ extern "C" {
#define OGS_MAX_NUM_OF_PACKET_BUFFER 64 /* Num of PacketBuffer per UE */
/*
- * The array of TLV messages is limited to 8.
- * So, Flow(PDI.SDF_Filter) in PDR is limited to 8.
+ * TS24.008
+ * 10.5.6.12 Traffic Flow Template
+ * Table 10.5.162: Traffic flow template information element
*
- * However, the number of flow in bearer context seems to need more than 16.
+ * Number of packet filters (octet 3)
+ * The number of packet filters contains the binary coding
+ * for the number of packet filters in the packet filter list.
+ * The number of packet filters field is encoded in bits 4
+ * through 1 of octet 3 where bit 4 is the most significant
+ * and bit 1 is the least significant bit.
*
- * Therefore, the maximum number of flows of messages is defined as 8,
- * and the maximum number of flows stored by the context is 16.
+ * For the "delete existing TFT" operation and
+ * for the "no TFT operation", the number of packet filters shall be
+ * coded as 0. For all other operations, the number of packet filters
+ * shall be greater than 0 and less than or equal to 15.
+ *
+ * TS24.501
+ * 9.11.4.13 QoS rules
+ * Table 9.11.4.13.1: QoS rules information element
+ *
+ * For the "delete existing QoS rule" operation and for the "modify existing
+ * QoS rule without modifying packet filters" operation, the number of packet
+ * filters shall be coded as 0. For the "create new QoS rule" operation
+ * and the "modify existing QoS rule and replace all packet filters" operation,
+ * the number of packet filters shall be greater than or equal to 0
+ * and less than or equal to 15. For all other operations, the number of packet
+ * filters shall be greater than 0 and less than or equal to 15.
+ *
+ * The array of TLV messages is limited to 15.
+ * So, Flow(PDI.SDF_Filter) in PDR is limited to 15.
+ *
+ * Therefore, we defined the maximum number of flows as 15.
*/
-#define OGS_MAX_NUM_OF_FLOW_IN_PDR 8
+#define OGS_MAX_NUM_OF_FLOW_IN_PDR 15
#define OGS_MAX_NUM_OF_FLOW_IN_GTP OGS_MAX_NUM_OF_FLOW_IN_PDR
#define OGS_MAX_NUM_OF_FLOW_IN_NAS OGS_MAX_NUM_OF_FLOW_IN_PDR
#define OGS_MAX_NUM_OF_FLOW_IN_PCC_RULE OGS_MAX_NUM_OF_FLOW_IN_PDR
#define OGS_MAX_NUM_OF_FLOW_IN_MEDIA_SUB_COMPONENT OGS_MAX_NUM_OF_FLOW_IN_PDR
-#define OGS_MAX_NUM_OF_FLOW_IN_BEARER 16
+#define OGS_MAX_NUM_OF_FLOW_IN_BEARER 15
#define OGS_MAX_NUM_OF_GTPU_RESOURCE 4
#define OGS_MAX_NUM_OF_FRAMED_ROUTES_IN_PDI 8
@@ -85,6 +110,8 @@ extern "C" {
#define OGS_MAX_NUM_OF_ALGORITHM 8
+#define OGS_MAX_5G_GUTI_LEN 28
+
#define OGS_MAX_NUM_OF_SERVED_GUMMEI 8 /* maxnoofRATs: 8 */
#define OGS_MAX_NUM_OF_SERVED_GUAMI 256 /* maxnoofServedGUAMIs: 256 */
#define OGS_MAX_NUM_OF_SUPPORTED_TA 256 /* maxnoofTACs: 256 */
@@ -118,7 +145,9 @@ extern "C" {
#define OGS_TIME_TO_BCD(x) \
(((((x) % 10) << 4) & 0xf0) | (((x) / 10) & 0x0f))
+/* 3GPP TS 24.007 Table 11.6: */
#define OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED 0
+/* 3GPP TS 24.007 Table 11.2.3.1c.1: */
#define OGS_NAS_PDU_SESSION_IDENTITY_UNASSIGNED 0
#define OGS_ACCESS_TYPE_3GPP 1
@@ -213,6 +242,7 @@ char *ogs_plmn_id_to_string(const ogs_plmn_id_t *plmn_id, char *buf);
char *ogs_serving_network_name_from_plmn_id(const ogs_plmn_id_t *plmn_id);
char *ogs_home_network_domain_from_plmn_id(const ogs_plmn_id_t *plmn_id);
+char *ogs_epc_domain_from_plmn_id(const ogs_plmn_id_t *plmn_id);
char *ogs_nrf_fqdn_from_plmn_id(const ogs_plmn_id_t *plmn_id);
char *ogs_nssf_fqdn_from_plmn_id(const ogs_plmn_id_t *plmn_id);
char *ogs_home_network_domain_from_fqdn(char *fqdn);
@@ -269,10 +299,11 @@ ogs_amf_id_t *ogs_amf_id_build(ogs_amf_id_t *amf_id,
#define OGS_PROTECTION_SCHEME_PROFILE_B 2
/************************************
- * SUPI/GPSI */
+ * SUPI/GPSI/GUTI */
#define OGS_ID_SUPI_TYPE_IMSI "imsi"
#define OGS_ID_GPSI_TYPE_MSISDN "msisdn"
#define OGS_ID_SUPI_TYPE_IMEISV "imeisv"
+#define OGS_ID_5G_GUTI_TYPE "5g-guti"
char *ogs_id_get_type(const char *str);
char *ogs_id_get_value(const char *str);
@@ -374,11 +405,6 @@ ED2(uint8_t spare:4;,
typedef struct ogs_paa_s {
ED2(uint8_t spare:5;,
/* 8.34 PDN Type */
-#define OGS_PDU_SESSION_TYPE_IS_VALID(x) \
- ((x) == OGS_PDU_SESSION_TYPE_IPV4 || \
- (x) == OGS_PDU_SESSION_TYPE_IPV6 || \
- (x) == OGS_PDU_SESSION_TYPE_IPV4V6) \
-
uint8_t session_type:3;)
union {
/* PDU_SESSION_TYPE_IPV4 */
@@ -459,9 +485,40 @@ typedef struct ogs_qos_s {
int ogs_check_qos_conf(ogs_qos_t *qos);
/**********************************
- * Flow Structure */
+ * TS29.212
+ * Ch 5.3.65 Flow-Direction AVP
+ *
+ * The Flow-Direction AVP (AVP code 1080) is of type Enumerated.
+ * It indicates the direction/directions that a filter is applicable,
+ * downlink only, uplink only or both down- and uplink (bidirectional).
+ *
+ * UNSPECIFIED (0)
+ * The corresponding filter applies for traffic to the UE (downlink),
+ * but has no specific direction declared. The service data flow detection
+ * shall apply the filter for uplink traffic as if the filter was
+ * bidirectional. The PCRF shall not use the value UNSPECIFIED
+ * in filters created by the network in NW-initiated procedures.
+ * The PCRF shall only include the value UNSPECIFIED in filters
+ * in UE-initiated procedures if the same value is received from
+ * in the CCR request from the PCEF.
+ *
+ * DOWNLINK (1)
+ * The corresponding filter applies for traffic to the UE.
+ *
+ * UPLINK (2)
+ * The corresponding filter applies for traffic from the UE.
+ *
+ * BIDIRECTIONAL (3)
+ * The corresponding filter applies for traffic both to and from the UE.
+ *
+ * NOTE: The corresponding filter data is unidirectional. The filter
+ * for the opposite direction has the same parameters, but having
+ * the source and destination address/port parameters swapped.
+ */
+#define OGS_FLOW_UNSPECIFIED 0
#define OGS_FLOW_DOWNLINK_ONLY 1
#define OGS_FLOW_UPLINK_ONLY 2
+#define OGS_FLOW_BIDIRECTIONAL 3
typedef struct ogs_flow_s {
uint8_t direction;
char *description;
@@ -477,7 +534,11 @@ typedef struct ogs_flow_s {
} while(0)
/**********************************
- * PCC Rule Structure */
+ * TS29.212
+ * Ch 5.3.2 Charging-Rule-Install AVP
+ *
+ * PCC Rule Structure
+ */
typedef struct ogs_pcc_rule_s {
#define OGS_PCC_RULE_TYPE_INSTALL 1
#define OGS_PCC_RULE_TYPE_REMOVE 2
@@ -491,6 +552,7 @@ typedef struct ogs_pcc_rule_s {
int flow_status;
uint32_t precedence;
+ uint32_t rating_group;
ogs_qos_t qos;
} ogs_pcc_rule_t;
@@ -567,7 +629,6 @@ typedef struct ogs_session_s {
ogs_qos_t qos;
ogs_bitrate_t ambr; /* APN-AMBR */
- ogs_paa_t paa;
ogs_ip_t ue_ip;
char **ipv4_framed_routes;
char **ipv6_framed_routes;
@@ -638,7 +699,7 @@ typedef struct ogs_pco_id_s {
void *data;
} ogs_pco_id_t;
-#define OGS_MAX_NUM_OF_PROTOCOL_OR_CONTAINER_ID 16
+#define OGS_MAX_NUM_OF_PROTOCOL_OR_CONTAINER_ID 32
typedef struct ogs_pco_s {
ED3(uint8_t ext:1;,
uint8_t spare:4;,
diff --git a/lib/sbi/client.c b/lib/sbi/client.c
index 16ec19515b..d9fef9bb91 100644
--- a/lib/sbi/client.c
+++ b/lib/sbi/client.c
@@ -129,6 +129,9 @@ ogs_sbi_client_t *ogs_sbi_client_add(
ogs_strdup(ogs_sbi_self()->tls.client.private_key);
if (ogs_sbi_self()->tls.client.cert)
client->cert = ogs_strdup(ogs_sbi_self()->tls.client.cert);
+ if (ogs_sbi_self()->tls.client.sslkeylog)
+ client->sslkeylog =
+ ogs_strdup(ogs_sbi_self()->tls.client.sslkeylog);
ogs_debug("ogs_sbi_client_add [%s]", OpenAPI_uri_scheme_ToString(scheme));
OGS_OBJECT_REF(client);
@@ -212,6 +215,8 @@ void ogs_sbi_client_remove(ogs_sbi_client_t *client)
ogs_free(client->private_key);
if (client->cert)
ogs_free(client->cert);
+ if (client->sslkeylog)
+ ogs_free(client->sslkeylog);
if (client->fqdn)
ogs_free(client->fqdn);
@@ -250,9 +255,15 @@ ogs_sbi_client_t *ogs_sbi_client_find(
if (fqdn) {
if (!client->fqdn)
continue;
- if (strcmp(client->fqdn, fqdn) != 0 ||
- client->fqdn_port != fqdn_port)
+ if (strcmp(client->fqdn, fqdn) != 0)
continue;
+
+ if (fqdn_port) {
+ if (!client->fqdn_port)
+ continue;
+ if (client->fqdn_port != fqdn_port)
+ continue;
+ }
}
if (addr) {
if (!client->addr)
@@ -363,6 +374,26 @@ static char *add_params_to_uri(CURL *easy, char *uri, ogs_hash_t *params)
return uri;
}
+/* User-defined SSL_CTX callback function */
+static CURLcode sslctx_callback(CURL *curl, void *sslctx, void *userdata)
+{
+ SSL_CTX *ctx = (SSL_CTX *)sslctx;
+ ogs_sbi_client_t *client = userdata;
+
+ ogs_assert(ctx);
+ ogs_assert(userdata);
+
+ /* Ensure app data is set for SSL objects */
+ SSL_CTX_set_app_data(ctx, client->sslkeylog);
+
+#if OPENSSL_VERSION_NUMBER >= 0x10101000L
+ /* Set the SSL Key Log callback */
+ SSL_CTX_set_keylog_callback(ctx, ogs_sbi_keylog_callback);
+#endif
+
+ return CURLE_OK;
+}
+
static connection_t *connection_add(
ogs_sbi_client_t *client, ogs_sbi_client_cb_f client_cb,
ogs_sbi_request_t *request, void *data)
@@ -453,6 +484,7 @@ static connection_t *connection_add(
curl_easy_setopt(conn->easy, CURLOPT_BUFFERSIZE, OGS_MAX_SDU_LEN);
+ /* HTTPS certificate-related settings */
if (client->scheme == OpenAPI_uri_scheme_https) {
if (client->insecure_skip_verify) {
curl_easy_setopt(conn->easy, CURLOPT_SSL_VERIFYPEER, 0);
@@ -462,13 +494,23 @@ static connection_t *connection_add(
curl_easy_setopt(conn->easy, CURLOPT_CAINFO, client->cacert);
}
+ /* Set private key & certificate */
if (client->private_key && client->cert) {
curl_easy_setopt(conn->easy, CURLOPT_SSLKEY, client->private_key);
curl_easy_setopt(conn->easy, CURLOPT_SSLCERT, client->cert);
}
+
+ if (client->sslkeylog) {
+ /* Set SSL_CTX callback */
+ curl_easy_setopt(conn->easy, CURLOPT_SSL_CTX_FUNCTION,
+ sslctx_callback);
+
+ /* Optionally set additional user data */
+ curl_easy_setopt(conn->easy, CURLOPT_SSL_CTX_DATA, client);
+ }
}
- /* HTTP Method */
+ /* Configure HTTP Method */
if (strcmp(request->h.method, OGS_SBI_HTTP_METHOD_PUT) == 0 ||
strcmp(request->h.method, OGS_SBI_HTTP_METHOD_PATCH) == 0 ||
strcmp(request->h.method, OGS_SBI_HTTP_METHOD_DELETE) == 0 ||
diff --git a/lib/sbi/client.h b/lib/sbi/client.h
index 221bc7c59d..e9bfbc918f 100644
--- a/lib/sbi/client.h
+++ b/lib/sbi/client.h
@@ -57,6 +57,19 @@ extern "C" {
OGS_OBJECT_REF(__pClient); \
((__cTX)->client) = (__pClient); \
ogs_debug("CLIENT Ref [%d]", (__pClient)->reference_count); \
+ if ((__pClient)->fqdn) { \
+ ogs_info("NF EndPoint(fqdn) setup [%s:%d]", \
+ (__pClient)->fqdn, (__pClient)->fqdn_port); \
+ } \
+ if ((__pClient)->addr) { \
+ ogs_info("NF EndPoint(addr) setup [%s:%d]", \
+ OGS_ADDR((__pClient)->addr, buf), OGS_PORT((__pClient)->addr)); \
+ } \
+ if ((__pClient)->addr6) { \
+ ogs_info("NF EndPoint(addr6) setup [%s:%d]", \
+ OGS_ADDR((__pClient)->addr6, buf), \
+ OGS_PORT((__pClient)->addr6)); \
+ } \
} while(0)
typedef int (*ogs_sbi_client_cb_f)(
@@ -67,7 +80,7 @@ typedef struct ogs_sbi_client_s {
OpenAPI_uri_scheme_e scheme;
bool insecure_skip_verify;
- char *cacert, *private_key, *cert;
+ char *cacert, *private_key, *cert, *sslkeylog;
char *fqdn;
uint16_t fqdn_port;
diff --git a/lib/sbi/context.c b/lib/sbi/context.c
index 87c47a5743..886accca6f 100644
--- a/lib/sbi/context.c
+++ b/lib/sbi/context.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -29,6 +29,7 @@ static OGS_POOL(xact_pool, ogs_sbi_xact_t);
static OGS_POOL(subscription_spec_pool, ogs_sbi_subscription_spec_t);
static OGS_POOL(subscription_data_pool, ogs_sbi_subscription_data_t);
static OGS_POOL(smf_info_pool, ogs_sbi_smf_info_t);
+static OGS_POOL(amf_info_pool, ogs_sbi_amf_info_t);
static OGS_POOL(nf_info_pool, ogs_sbi_nf_info_t);
void ogs_sbi_context_init(OpenAPI_nf_type_e nf_type)
@@ -61,6 +62,7 @@ void ogs_sbi_context_init(OpenAPI_nf_type_e nf_type)
ogs_pool_init(&subscription_data_pool, ogs_app()->pool.subscription);
ogs_pool_init(&smf_info_pool, ogs_app()->pool.nf);
+ ogs_pool_init(&amf_info_pool, ogs_app()->pool.nf);
ogs_pool_init(&nf_info_pool, ogs_app()->pool.nf * OGS_MAX_NUM_OF_NF_INFO);
@@ -107,6 +109,7 @@ void ogs_sbi_context_final(void)
ogs_pool_final(&nf_instance_pool);
ogs_pool_final(&nf_service_pool);
ogs_pool_final(&smf_info_pool);
+ ogs_pool_final(&amf_info_pool);
ogs_pool_final(&nf_info_pool);
@@ -131,56 +134,73 @@ static int ogs_sbi_context_prepare(void)
self.tls.server.scheme = OpenAPI_uri_scheme_http;
self.tls.client.scheme = OpenAPI_uri_scheme_http;
+ /* Initialize delegated config with defaults */
+ self.client_delegated_config.nrf.nfm = OGS_SBI_CLIENT_DELEGATED_AUTO;
+ self.client_delegated_config.nrf.disc = OGS_SBI_CLIENT_DELEGATED_AUTO;
+ self.client_delegated_config.scp.next = OGS_SBI_CLIENT_DELEGATED_AUTO;
+
return OGS_OK;
}
static int ogs_sbi_context_validation(
const char *local, const char *nrf, const char *scp)
{
+#define MAX_MODE 3
+ int i;
+ ogs_sbi_client_delegated_mode_e mode[MAX_MODE];
+
+ ogs_assert(context_initialized == 1);
+
/* If SMF is only used in 4G EPC, no SBI interface is required. */
if (local && strcmp(local, "smf") != 0 && ogs_sbi_server_first() == NULL) {
ogs_error("No %s.sbi.address: in '%s'", local, ogs_app()->file);
return OGS_ERROR;
}
- ogs_assert(context_initialized == 1);
- switch (self.discovery_config.delegated) {
- case OGS_SBI_DISCOVERY_DELEGATED_AUTO:
- if (local && strcmp(local, "nrf") == 0) {
- /* Skip NRF */
- } else if (local && strcmp(local, "scp") == 0) {
- /* Skip SCP */
- } else if (local && strcmp(local, "smf") == 0) {
- /* Skip SMF since SMF can run 4G */
- } else {
- if (NF_INSTANCE_CLIENT(self.nrf_instance) ||
- NF_INSTANCE_CLIENT(self.scp_instance)) {
+ mode[0] = self.client_delegated_config.nrf.nfm;
+ mode[1] = self.client_delegated_config.nrf.disc;
+ mode[2] = self.client_delegated_config.scp.next;
+
+ for (i = 0; i < MAX_MODE; i++) {
+ switch (mode[i]) {
+ case OGS_SBI_CLIENT_DELEGATED_AUTO:
+ if (local && strcmp(local, "nrf") == 0) {
+ /* Skip NRF */
+ } else if (local && strcmp(local, "scp") == 0) {
+ /* Skip SCP */
+ } else if (local && strcmp(local, "smf") == 0) {
+ /* Skip SMF since SMF can run 4G */
} else {
- ogs_error("DELEGATED_AUTO - Both NRF and %s are unavailable",
- scp && strcmp(scp, "next_scp") == 0 ?
+ if (NF_INSTANCE_CLIENT(self.nrf_instance) ||
+ NF_INSTANCE_CLIENT(self.scp_instance)) {
+ } else {
+ ogs_error("[%d] DELEGATED_AUTO - "
+ "Both NRF and %s are unavailable",
+ i, scp && strcmp(scp, "next_scp") == 0 ?
+ "Next-hop SCP" : "SCP");
+ return OGS_ERROR;
+ }
+ }
+ break;
+ case OGS_SBI_CLIENT_DELEGATED_YES:
+ if (NF_INSTANCE_CLIENT(self.scp_instance) == NULL) {
+ ogs_error("[%d] DELEGATED_YES - no %s available",
+ i, scp && strcmp(scp, "next_scp") == 0 ?
"Next-hop SCP" : "SCP");
return OGS_ERROR;
}
+ break;
+ case OGS_SBI_CLIENT_DELEGATED_NO:
+ if (NF_INSTANCE_CLIENT(self.nrf_instance) == NULL) {
+ ogs_error("[%d] DELEGATED_NO - no NRF available", i);
+ return OGS_ERROR;
+ }
+ break;
+ default:
+ ogs_fatal("[%d] Invalid dicovery-config delegated [%d]",
+ i, mode[i]);
+ ogs_assert_if_reached();
}
- break;
- case OGS_SBI_DISCOVERY_DELEGATED_YES:
- if (NF_INSTANCE_CLIENT(self.scp_instance) == NULL) {
- ogs_error("DELEGATED_YES - no %s available",
- scp && strcmp(scp, "next_scp") == 0 ?
- "Next-hop SCP" : "SCP");
- return OGS_ERROR;
- }
- break;
- case OGS_SBI_DISCOVERY_DELEGATED_NO:
- if (NF_INSTANCE_CLIENT(self.nrf_instance) == NULL) {
- ogs_error("DELEGATED_NO - no NRF available");
- return OGS_ERROR;
- }
- break;
- default:
- ogs_fatal("Invalid dicovery-config delegated [%d]",
- self.discovery_config.delegated);
- ogs_assert_if_reached();
}
if (ogs_sbi_self()->tls.server.scheme == OpenAPI_uri_scheme_https) {
@@ -210,6 +230,7 @@ int ogs_sbi_context_parse_config(
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -221,7 +242,8 @@ int ogs_sbi_context_parse_config(
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (local && !strcmp(root_key, local)) {
+ if (local && !strcmp(root_key, local) &&
+ idx++ == ogs_app()->config_section_id) {
ogs_yaml_iter_t local_iter;
ogs_yaml_iter_recurse(&root_iter, &local_iter);
while (ogs_yaml_iter_next(&local_iter)) {
@@ -276,6 +298,11 @@ int ogs_sbi_context_parse_config(
self.tls.server.cert =
ogs_yaml_iter_value(
&server_iter);
+ } else if (!strcmp(server_key,
+ "sslkeylogfile")) {
+ self.tls.server.sslkeylog =
+ ogs_yaml_iter_value(
+ &server_iter);
} else if (!strcmp(server_key,
"verify_client")) {
self.tls.server.verify_client =
@@ -335,6 +362,11 @@ int ogs_sbi_context_parse_config(
self.tls.client.cert =
ogs_yaml_iter_value(
&client_iter);
+ } else if (!strcmp(client_key,
+ "client_sslkeylogfile")) {
+ self.tls.client.sslkeylog =
+ ogs_yaml_iter_value(
+ &client_iter);
}
}
}
@@ -346,11 +378,13 @@ int ogs_sbi_context_parse_config(
}
}
+ idx = 0;
ogs_yaml_iter_init(&root_iter, document);
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (local && !strcmp(root_key, local)) {
+ if (local && !strcmp(root_key, local) &&
+ idx++ == ogs_app()->config_section_id) {
ogs_yaml_iter_t local_iter;
ogs_yaml_iter_recurse(&root_iter, &local_iter);
while (ogs_yaml_iter_next(&local_iter)) {
@@ -474,6 +508,115 @@ int ogs_sbi_context_parse_config(
} while (ogs_yaml_iter_type(&scp_array) ==
YAML_SEQUENCE_NODE);
}
+ /* Parse delegated section */
+ else if (!strcmp(client_key, "delegated")) {
+ ogs_yaml_iter_t delegated_iter;
+ ogs_yaml_iter_recurse(&client_iter,
+ &delegated_iter);
+
+ while (ogs_yaml_iter_next(
+ &delegated_iter)) {
+ const char *del_key =
+ ogs_yaml_iter_key(
+ &delegated_iter);
+ if (!strcmp(del_key, "nrf")) {
+ ogs_yaml_iter_t nrf_iter;
+ ogs_yaml_iter_recurse(
+ &delegated_iter, &nrf_iter);
+ while (ogs_yaml_iter_next(
+ &nrf_iter)) {
+ const char *nrf_key =
+ ogs_yaml_iter_key(
+ &nrf_iter);
+ const char *nrf_val =
+ ogs_yaml_iter_value(
+ &nrf_iter);
+ ogs_assert(nrf_key);
+
+ if (!strcmp(nrf_key,"nfm")) {
+ if (!strcmp(nrf_val,"no")) {
+ self.client_delegated_config.nrf.nfm =
+ OGS_SBI_CLIENT_DELEGATED_NO;
+ } else if (!strcmp(
+ nrf_val,"yes")) {
+ self.client_delegated_config.nrf.nfm =
+ OGS_SBI_CLIENT_DELEGATED_YES;
+ } else if (!strcmp(
+ nrf_val,"auto")) {
+ self.client_delegated_config.nrf.nfm =
+ OGS_SBI_CLIENT_DELEGATED_AUTO;
+ } else {
+ ogs_warn("unknown "
+ "'nfm' `%s`",
+ nrf_val);
+ }
+ } else if (!strcmp(
+ nrf_key,"disc")) {
+ if (!strcmp(nrf_val,"no")) {
+ self.client_delegated_config.nrf.disc =
+ OGS_SBI_CLIENT_DELEGATED_NO;
+ } else if (!strcmp(
+ nrf_val,"yes")) {
+ self.client_delegated_config.nrf.disc =
+ OGS_SBI_CLIENT_DELEGATED_YES;
+ } else if (!strcmp(
+ nrf_val,"auto")) {
+ self.client_delegated_config.nrf.disc =
+ OGS_SBI_CLIENT_DELEGATED_AUTO;
+ } else {
+ ogs_warn("unknown "
+ "'disc' `%s`",
+ nrf_val);
+ }
+ } else {
+ ogs_warn("unknown nrf "
+ "delegated key `%s`",
+ nrf_key);
+ }
+ }
+ } else if (!strcmp(del_key, "scp")) {
+ ogs_yaml_iter_t scp_iter;
+ ogs_yaml_iter_recurse(
+ &delegated_iter, &scp_iter);
+ while (ogs_yaml_iter_next(
+ &scp_iter)) {
+ const char *scp_key =
+ ogs_yaml_iter_key(
+ &scp_iter);
+ const char *scp_val =
+ ogs_yaml_iter_value(
+ &scp_iter);
+ ogs_assert(scp_key);
+
+ if (!strcmp(scp_key,"next")) {
+ if (!strcmp(scp_val,"no")) {
+ self.client_delegated_config.scp.next =
+ OGS_SBI_CLIENT_DELEGATED_NO;
+ } else if (!strcmp(
+ scp_val,"yes")) {
+ self.client_delegated_config.scp.next =
+ OGS_SBI_CLIENT_DELEGATED_YES;
+ } else if (!strcmp(
+ scp_val,"auto")) {
+ self.client_delegated_config.scp.next =
+ OGS_SBI_CLIENT_DELEGATED_AUTO;
+ } else {
+ ogs_warn("unknown "
+ "'next' `%s`",
+ scp_val);
+ }
+ } else {
+ ogs_warn("unknown scp "
+ "delegated key `%s`",
+ scp_key);
+ }
+ }
+ } else {
+ ogs_warn("unknown delegated "
+ "key `%s`", del_key);
+ }
+ }
+ }
}
} else
ogs_warn("unknown key `%s`", sbi_key);
@@ -500,52 +643,6 @@ int ogs_sbi_context_parse_config(
} while (ogs_yaml_iter_type(
&service_name_iter) == YAML_SEQUENCE_NODE);
- } else if (!strcmp(local_key, "discovery")) {
- ogs_yaml_iter_t discovery_iter;
- ogs_yaml_iter_recurse(&local_iter, &discovery_iter);
- while (ogs_yaml_iter_next(&discovery_iter)) {
- const char *discovery_key =
- ogs_yaml_iter_key(&discovery_iter);
- ogs_assert(discovery_key);
- if (!strcmp(discovery_key, "delegated")) {
- const char *delegated =
- ogs_yaml_iter_value(&discovery_iter);
- if (!strcmp(delegated, "auto"))
- self.discovery_config.delegated =
- OGS_SBI_DISCOVERY_DELEGATED_AUTO;
- else if (!strcmp(delegated, "yes"))
- self.discovery_config.delegated =
- OGS_SBI_DISCOVERY_DELEGATED_YES;
- else if (!strcmp(delegated, "no"))
- self.discovery_config.delegated =
- OGS_SBI_DISCOVERY_DELEGATED_NO;
- else
- ogs_warn("unknown 'delegated' value `%s`",
- delegated);
- } else if (!strcmp(discovery_key, "option")) {
- ogs_yaml_iter_t option_iter;
- ogs_yaml_iter_recurse(
- &discovery_iter, &option_iter);
-
- while (ogs_yaml_iter_next(&option_iter)) {
- const char *option_key =
- ogs_yaml_iter_key(&option_iter);
- ogs_assert(option_key);
-
- if (!strcmp(option_key, "no_service_names")) {
- self.discovery_config.no_service_names =
- ogs_yaml_iter_bool(&option_iter);
- } else if (!strcmp(option_key,
- "prefer_requester_nf_instance_id")) {
- self.discovery_config.
- prefer_requester_nf_instance_id =
- ogs_yaml_iter_bool(&option_iter);
- } else
- ogs_warn("unknown key `%s`", option_key);
- }
- } else
- ogs_warn("unknown key `%s`", discovery_key);
- }
}
}
}
@@ -657,7 +754,7 @@ int ogs_sbi_context_parse_server_config(
const char *dev = NULL;
ogs_sockaddr_t *addr = NULL;
- const char *private_key = NULL, *cert = NULL;
+ const char *private_key = NULL, *cert = NULL, *sslkeylog = NULL;
bool verify_client = false;
const char *verify_client_cacert = NULL;
@@ -752,6 +849,8 @@ int ogs_sbi_context_parse_server_config(
private_key = ogs_yaml_iter_value(&server_iter);
} else if (!strcmp(server_key, "cert")) {
cert = ogs_yaml_iter_value(&server_iter);
+ } else if (!strcmp(server_key, "sslkeylogfile")) {
+ sslkeylog = ogs_yaml_iter_value(&server_iter);
} else if (!strcmp(server_key, "verify_client")) {
verify_client = ogs_yaml_iter_bool(&server_iter);
} else if (!strcmp(server_key, "verify_client_cacert")) {
@@ -804,9 +903,38 @@ int ogs_sbi_context_parse_server_config(
}
addr = NULL;
+ /* ----- Process advertise (Host+Port Parsing Logic) ----- */
for (i = 0; i < num_of_advertise; i++) {
- rv = ogs_addaddrinfo(&addr, family, advertise[i], port, 0);
+ uint16_t adv_port = port; /* Default to server's port */
+ char *hostbuf = NULL;
+ const char *colon_pos = strchr(advertise[i], ':');
+
+ if (colon_pos) {
+ /* If a colon exists, split host and port */
+ size_t host_len = colon_pos - advertise[i];
+
+ /* Allocate memory for the host part */
+ hostbuf = (char *)ogs_malloc(host_len + 1);
+ ogs_assert(hostbuf);
+
+ /* Copy the host part into hostbuf */
+ memcpy(hostbuf, advertise[i], host_len);
+ hostbuf[host_len] = '\0';
+
+ /* Parse the port part */
+ adv_port = (uint16_t)atoi(colon_pos + 1);
+ } else {
+ /* If no colon, treat the entire string as the host */
+ hostbuf = ogs_strdup(advertise[i]);
+ ogs_assert(hostbuf);
+ }
+
+ /* Add the parsed address info */
+ rv = ogs_addaddrinfo(&addr, family, hostbuf, adv_port, 0);
ogs_assert(rv == OGS_OK);
+
+ /* Free the allocated memory */
+ ogs_free(hostbuf);
}
node = ogs_list_first(&list);
@@ -846,6 +974,12 @@ int ogs_sbi_context_parse_server_config(
server->cert = ogs_strdup(cert);
ogs_assert(server->cert);
}
+ if (sslkeylog) {
+ if (server->sslkeylog)
+ ogs_free(server->sslkeylog);
+ server->sslkeylog = ogs_strdup(sslkeylog);
+ ogs_assert(server->sslkeylog);
+ }
if (scheme == OpenAPI_uri_scheme_https) {
if (!server->private_key) {
@@ -895,6 +1029,12 @@ int ogs_sbi_context_parse_server_config(
server->cert = ogs_strdup(cert);
ogs_assert(server->cert);
}
+ if (sslkeylog) {
+ if (server->sslkeylog)
+ ogs_free(server->sslkeylog);
+ server->sslkeylog = ogs_strdup(sslkeylog);
+ ogs_assert(server->sslkeylog);
+ }
if (scheme == OpenAPI_uri_scheme_https) {
if (!server->private_key) {
@@ -932,6 +1072,7 @@ ogs_sbi_client_t *ogs_sbi_context_parse_client_config(ogs_yaml_iter_t *iter)
const char *client_private_key = NULL;
const char *client_cert = NULL;
+ const char *client_sslkeylog = NULL;
bool rc;
@@ -973,6 +1114,8 @@ ogs_sbi_client_t *ogs_sbi_context_parse_client_config(ogs_yaml_iter_t *iter)
client_private_key = ogs_yaml_iter_value(iter);
} else if (!strcmp(key, "client_cert")) {
client_cert = ogs_yaml_iter_value(iter);
+ } else if (!strcmp(key, "client_sslkeylogfile")) {
+ client_sslkeylog = ogs_yaml_iter_value(iter);
}
}
@@ -1042,6 +1185,13 @@ ogs_sbi_client_t *ogs_sbi_context_parse_client_config(ogs_yaml_iter_t *iter)
ogs_assert(client->cert);
}
+ if (client_sslkeylog) {
+ if (client->sslkeylog)
+ ogs_free(client->sslkeylog);
+ client->sslkeylog = ogs_strdup(client_sslkeylog);
+ ogs_assert(client->sslkeylog);
+ }
+
if ((!client_private_key && client_cert) ||
(client_private_key && !client_cert)) {
ogs_error("Either the private key or certificate is missing.");
@@ -1082,8 +1232,6 @@ ogs_sbi_nf_instance_t *ogs_sbi_nf_instance_add(void)
ogs_assert(nf_instance);
memset(nf_instance, 0, sizeof(ogs_sbi_nf_instance_t));
- OGS_OBJECT_REF(nf_instance);
-
nf_instance->time.heartbeat_interval =
ogs_local_conf()->time.nf_instance.heartbeat_interval;
@@ -1093,10 +1241,10 @@ ogs_sbi_nf_instance_t *ogs_sbi_nf_instance_add(void)
ogs_list_add(&ogs_sbi_self()->nf_instance_list, nf_instance);
- ogs_debug("[%s] NFInstance added with Ref [%s:%d]",
+ ogs_debug("[%s] NFInstance added with Ref [%s]",
nf_instance->nf_type ?
OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
+ nf_instance->id);
return nf_instance;
}
@@ -1193,20 +1341,10 @@ void ogs_sbi_nf_instance_remove(ogs_sbi_nf_instance_t *nf_instance)
{
ogs_assert(nf_instance);
- ogs_debug("[%s] NFInstance UnRef [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
-
- if (OGS_OBJECT_IS_REF(nf_instance)) {
- OGS_OBJECT_UNREF(nf_instance);
- return;
- }
-
- ogs_debug("[%s] NFInstance removed [%s:%d]",
+ ogs_debug("[%s] NFInstance removed [%s]",
nf_instance->nf_type ?
OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
+ nf_instance->id);
ogs_list_remove(&ogs_sbi_self()->nf_instance_list, nf_instance);
@@ -1530,7 +1668,13 @@ ogs_sbi_nf_info_t *ogs_sbi_nf_info_add(
static void amf_info_free(ogs_sbi_amf_info_t *amf_info)
{
- /* Nothing */
+ ogs_assert(amf_info);
+
+ amf_info->num_of_guami = 0;
+ amf_info->num_of_nr_tai = 0;
+ amf_info->num_of_nr_tai_range = 0;
+
+ ogs_pool_free(&amf_info_pool, amf_info);
}
static void smf_info_free(ogs_sbi_smf_info_t *smf_info)
@@ -1621,6 +1765,26 @@ ogs_sbi_nf_info_t *ogs_sbi_nf_info_find(
return NULL;
}
+bool ogs_sbi_check_amf_info_guami(
+ ogs_sbi_amf_info_t *amf_info, ogs_guami_t *guami)
+{
+ int i;
+
+ ogs_assert(amf_info);
+ ogs_assert(guami);
+
+ for (i = 0; i < amf_info->num_of_guami; i++) {
+ if ((memcmp(&amf_info->guami[i].amf_id, &guami->amf_id,
+ sizeof(ogs_amf_id_t)) == 0) &&
+ (memcmp(&amf_info->guami[i].plmn_id, &guami->plmn_id,
+ OGS_PLMN_ID_LEN) == 0)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
bool ogs_sbi_check_smf_info_slice(
ogs_sbi_smf_info_t *smf_info, ogs_s_nssai_t *s_nssai, char *dnn)
{
@@ -1697,11 +1861,8 @@ void ogs_sbi_nf_instance_build_default(ogs_sbi_nf_instance_t *nf_instance)
ogs_assert(advertise);
/* First FQDN is selected */
- if (!hostname) {
+ if (!hostname)
hostname = ogs_gethostname(advertise);
- if (hostname)
- continue;
- }
if (nf_instance->num_of_ipv4 < OGS_SBI_MAX_NUM_OF_IP_ADDRESS) {
ogs_sockaddr_t *addr = NULL;
@@ -1771,11 +1932,8 @@ ogs_sbi_nf_service_t *ogs_sbi_nf_service_build_default(
ogs_assert(advertise);
/* First FQDN is selected */
- if (!hostname) {
+ if (!hostname)
hostname = ogs_gethostname(advertise);
- if (hostname)
- continue;
- }
if (nf_service->num_of_addr < OGS_SBI_MAX_NUM_OF_IP_ADDRESS) {
bool is_port = true;
@@ -1888,6 +2046,7 @@ static void nf_service_associate_client(ogs_sbi_nf_service_t *nf_service)
{
ogs_sbi_client_t *client = NULL;
ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+ uint16_t port = 0;
ogs_assert(nf_service->scheme);
@@ -1895,15 +2054,28 @@ static void nf_service_associate_client(ogs_sbi_nf_service_t *nf_service)
if (nf_service->num_of_addr) {
addr = nf_service->addr[0].ipv4;
addr6 = nf_service->addr[0].ipv6;
+
+ /*
+ * Added support for using custom port numbers with FQDN.
+ *
+ * This code checks if a user-defined port number is provided in the
+ * NFService structure. If the is_port flag is set, the port is
+ * assigned the specified value.
+ *
+ * This ensures that services using non-default ports can be accessed
+ * correctly, regardless of whether TLS is enabled or not.
+ */
+ if (nf_service->addr[0].is_port)
+ port = nf_service->addr[0].port;
}
if (nf_service->fqdn || addr || addr6) {
client = ogs_sbi_client_find(
- nf_service->scheme, nf_service->fqdn, 0, addr, addr6);
+ nf_service->scheme, nf_service->fqdn, port, addr, addr6);
if (!client) {
ogs_debug("%s: ogs_sbi_client_add()", OGS_FUNC);
client = ogs_sbi_client_add(
- nf_service->scheme, nf_service->fqdn, 0, addr, addr6);
+ nf_service->scheme, nf_service->fqdn, port, addr, addr6);
if (!client) {
ogs_error("%s: ogs_sbi_client_add() failed", OGS_FUNC);
return;
@@ -1964,6 +2136,13 @@ bool ogs_sbi_discovery_option_is_matched(
}
switch (nf_info->nf_type) {
+ case OpenAPI_nf_type_AMF:
+ if (requester_nf_type == OpenAPI_nf_type_AMF &&
+ discovery_option->guami_presence &&
+ ogs_sbi_check_amf_info_guami(&nf_info->amf,
+ &discovery_option->guami) == false)
+ return false;
+ break;
case OpenAPI_nf_type_SMF:
if (discovery_option->num_of_snssais && discovery_option->dnn &&
ogs_sbi_check_smf_info_slice(&nf_info->smf,
@@ -2094,9 +2273,6 @@ bool ogs_sbi_discovery_param_is_matched(
if (NF_INSTANCE_EXCLUDED_FROM_DISCOVERY(nf_instance))
return false;
- if (!OGS_FSM_CHECK(&nf_instance->sm, ogs_sbi_nf_state_registered))
- return false;
-
if (nf_instance->nf_type != target_nf_type)
return false;
@@ -2166,10 +2342,10 @@ void ogs_sbi_client_associate(ogs_sbi_nf_instance_t *nf_instance)
client = nf_instance_find_client(nf_instance);
ogs_assert(client);
- ogs_debug("[%s] NFInstance associated [%s:%d]",
+ ogs_debug("[%s] NFInstance associated [%s]",
nf_instance->nf_type ?
OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
+ nf_instance->id);
OGS_SBI_SETUP_CLIENT(nf_instance, client);
@@ -2224,33 +2400,19 @@ ogs_sbi_client_t *ogs_sbi_client_find_by_service_type(
return nf_service->client;
}
- return nf_instance->client;
+ return NULL;
}
void ogs_sbi_object_free(ogs_sbi_object_t *sbi_object)
{
- int i;
-
ogs_assert(sbi_object);
if (ogs_list_count(&sbi_object->xact_list))
ogs_error("SBI running [%d]", ogs_list_count(&sbi_object->xact_list));
-
- for (i = 0; i < OGS_SBI_MAX_NUM_OF_SERVICE_TYPE; i++) {
- ogs_sbi_nf_instance_t *nf_instance =
- sbi_object->service_type_array[i].nf_instance;
- if (nf_instance)
- ogs_sbi_nf_instance_remove(nf_instance);
- }
- for (i = 0; i < OGS_SBI_MAX_NUM_OF_NF_TYPE; i++) {
- ogs_sbi_nf_instance_t *nf_instance =
- sbi_object->nf_type_array[i].nf_instance;
- if (nf_instance)
- ogs_sbi_nf_instance_remove(nf_instance);
- }
}
ogs_sbi_xact_t *ogs_sbi_xact_add(
+ ogs_pool_id_t sbi_object_id,
ogs_sbi_object_t *sbi_object,
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
@@ -2260,13 +2422,13 @@ ogs_sbi_xact_t *ogs_sbi_xact_add(
ogs_assert(sbi_object);
- ogs_pool_alloc(&xact_pool, &xact);
+ ogs_pool_id_calloc(&xact_pool, &xact);
if (!xact) {
- ogs_error("ogs_pool_alloc() failed");
+ ogs_error("ogs_pool_id_calloc() failed");
return NULL;
}
- memset(xact, 0, sizeof(ogs_sbi_xact_t));
+ xact->sbi_object_id = sbi_object_id;
xact->sbi_object = sbi_object;
xact->service_type = service_type;
xact->requester_nf_type = NF_INSTANCE_TYPE(ogs_sbi_self()->nf_instance);
@@ -2295,13 +2457,14 @@ ogs_sbi_xact_t *ogs_sbi_xact_add(
xact->discovery_option = discovery_option;
xact->t_response = ogs_timer_add(
- ogs_app()->timer_mgr, ogs_timer_sbi_client_wait_expire, xact);
+ ogs_app()->timer_mgr, ogs_timer_sbi_client_wait_expire,
+ OGS_UINT_TO_POINTER(xact->id));
if (!xact->t_response) {
ogs_error("ogs_timer_add() failed");
if (xact->discovery_option)
ogs_sbi_discovery_option_free(xact->discovery_option);
- ogs_pool_free(&xact_pool, xact);
+ ogs_pool_id_free(&xact_pool, xact);
return NULL;
}
@@ -2318,7 +2481,7 @@ ogs_sbi_xact_t *ogs_sbi_xact_add(
ogs_sbi_discovery_option_free(xact->discovery_option);
ogs_timer_delete(xact->t_response);
- ogs_pool_free(&xact_pool, xact);
+ ogs_pool_id_free(&xact_pool, xact);
return NULL;
}
@@ -2377,7 +2540,7 @@ void ogs_sbi_xact_remove(ogs_sbi_xact_t *xact)
ogs_free(xact->target_apiroot);
ogs_list_remove(&sbi_object->xact_list, xact);
- ogs_pool_free(&xact_pool, xact);
+ ogs_pool_id_free(&xact_pool, xact);
}
void ogs_sbi_xact_remove_all(ogs_sbi_object_t *sbi_object)
@@ -2390,9 +2553,9 @@ void ogs_sbi_xact_remove_all(ogs_sbi_object_t *sbi_object)
ogs_sbi_xact_remove(xact);
}
-ogs_sbi_xact_t *ogs_sbi_xact_cycle(ogs_sbi_xact_t *xact)
+ogs_sbi_xact_t *ogs_sbi_xact_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&xact_pool, xact);
+ return ogs_pool_find_by_id(&xact_pool, id);
}
ogs_sbi_subscription_spec_t *ogs_sbi_subscription_spec_add(
@@ -2457,12 +2620,26 @@ ogs_sbi_subscription_data_t *ogs_sbi_subscription_data_add(void)
return subscription_data;
}
+void ogs_sbi_subscription_data_set_resource_uri(
+ ogs_sbi_subscription_data_t *subscription_data, char *resource_uri)
+{
+ ogs_assert(subscription_data);
+ ogs_assert(resource_uri);
+
+ if (subscription_data->resource_uri)
+ ogs_free(subscription_data->resource_uri);
+ subscription_data->resource_uri = ogs_strdup(resource_uri);
+ ogs_assert(subscription_data->resource_uri);
+}
+
void ogs_sbi_subscription_data_set_id(
ogs_sbi_subscription_data_t *subscription_data, char *id)
{
ogs_assert(subscription_data);
ogs_assert(id);
+ if (subscription_data->id)
+ ogs_free(subscription_data->id);
subscription_data->id = ogs_strdup(id);
ogs_assert(subscription_data->id);
}
@@ -2480,11 +2657,17 @@ void ogs_sbi_subscription_data_remove(
if (subscription_data->notification_uri)
ogs_free(subscription_data->notification_uri);
+ if (subscription_data->resource_uri)
+ ogs_free(subscription_data->resource_uri);
+
if (subscription_data->req_nf_instance_id)
ogs_free(subscription_data->req_nf_instance_id);
if (subscription_data->subscr_cond.service_name)
ogs_free(subscription_data->subscr_cond.service_name);
+
+ if (subscription_data->subscr_cond.nf_instance_id)
+ ogs_free(subscription_data->subscr_cond.nf_instance_id);
if (subscription_data->t_validity)
ogs_timer_delete(subscription_data->t_validity);
@@ -2637,3 +2820,29 @@ bool ogs_sbi_fqdn_in_vplmn(char *fqdn)
return false;
}
+
+/* OpenSSL Key Log Callback */
+void ogs_sbi_keylog_callback(const SSL *ssl, const char *line)
+{
+ SSL_CTX *ctx = NULL;
+ FILE *file = NULL;
+ const char *sslkeylog_file = NULL;
+
+ ogs_assert(ssl);
+ ogs_assert(line);
+
+ /* Retrieve SSL_CTX from SSL object */
+ ctx = SSL_get_SSL_CTX(ssl);
+ ogs_assert(ctx);
+
+ sslkeylog_file = (const char *)SSL_CTX_get_app_data(ctx);
+ ogs_assert(sslkeylog_file);
+
+ file = fopen(sslkeylog_file, "a");
+ if (file) {
+ fprintf(file, "%s\n", line);
+ fclose(file);
+ } else {
+ ogs_error("Failed to open SSL key log file: %s", sslkeylog_file);
+ }
+}
diff --git a/lib/sbi/context.h b/lib/sbi/context.h
index 2537403ca2..e7cae0e30f 100644
--- a/lib/sbi/context.h
+++ b/lib/sbi/context.h
@@ -36,19 +36,25 @@ typedef struct ogs_sbi_smf_info_s ogs_sbi_smf_info_t;
typedef struct ogs_sbi_nf_instance_s ogs_sbi_nf_instance_t;
typedef enum {
- OGS_SBI_DISCOVERY_DELEGATED_AUTO = 0,
- OGS_SBI_DISCOVERY_DELEGATED_YES,
- OGS_SBI_DISCOVERY_DELEGATED_NO,
-} ogs_sbi_discovery_delegated_mode;
+ OGS_SBI_CLIENT_DELEGATED_AUTO = 0,
+ OGS_SBI_CLIENT_DELEGATED_YES,
+ OGS_SBI_CLIENT_DELEGATED_NO,
+} ogs_sbi_client_delegated_mode_e;
-typedef struct ogs_sbi_discovery_config_s {
- ogs_sbi_discovery_delegated_mode delegated;
- bool no_service_names;
- bool prefer_requester_nf_instance_id;
-} ogs_sbi_discovery_config_t;
+/* To hold all delegated config under sbi.client.delegated */
+typedef struct ogs_sbi_client_delegated_config_s {
+ struct {
+ ogs_sbi_client_delegated_mode_e nfm; /* e.g. Registration, Heartbeat */
+ ogs_sbi_client_delegated_mode_e disc; /* NF discovery */
+ } nrf;
+ struct {
+ ogs_sbi_client_delegated_mode_e next; /* Next-hop SCP delegation */
+ } scp;
+} ogs_sbi_client_delegated_config_t;
typedef struct ogs_sbi_context_s {
- ogs_sbi_discovery_config_t discovery_config; /* SCP Discovery Delegated */
+ /* For sbi.client.delegated */
+ ogs_sbi_client_delegated_config_t client_delegated_config;
#define OGS_HOME_NETWORK_PKI_VALUE_MIN 1
#define OGS_HOME_NETWORK_PKI_VALUE_MAX 254
@@ -65,6 +71,7 @@ typedef struct ogs_sbi_context_s {
const char *private_key;
const char *cert;
+ const char *sslkeylog;
bool verify_client;
const char *verify_client_cacert;
@@ -77,6 +84,7 @@ typedef struct ogs_sbi_context_s {
const char *private_key;
const char *cert;
+ const char *sslkeylog;
} client;
} tls;
@@ -175,7 +183,6 @@ typedef struct ogs_sbi_nf_instance_s {
#define NF_INSTANCE_CLIENT(__nFInstance) \
((__nFInstance) ? ((__nFInstance)->client) : NULL)
void *client; /* only used in CLIENT */
- unsigned int reference_count; /* reference count for memory free */
} ogs_sbi_nf_instance_t;
typedef enum {
@@ -194,6 +201,16 @@ typedef struct ogs_sbi_object_s {
struct {
ogs_sbi_nf_instance_t *nf_instance;
+
+ /*
+ * Search.Result stored in nf_instance->time.validity_duration;
+ *
+ * validity_timeout = nf_instance->validity->timeout =
+ * ogs_get_monotonic_time() + nf_instance->time.validity_duration;
+ *
+ * if no validityPeriod in SearchResult, validity_timeout is 0.
+ */
+ ogs_time_t validity_timeout;
} nf_type_array[OGS_SBI_MAX_NUM_OF_NF_TYPE],
service_type_array[OGS_SBI_MAX_NUM_OF_SERVICE_TYPE];
@@ -207,6 +224,8 @@ typedef ogs_sbi_request_t *(*ogs_sbi_build_f)(
typedef struct ogs_sbi_xact_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
+
ogs_sbi_service_type_e service_type;
OpenAPI_nf_type_e requester_nf_type;
ogs_sbi_discovery_option_t *discovery_option;
@@ -214,11 +233,13 @@ typedef struct ogs_sbi_xact_s {
ogs_sbi_request_t *request;
ogs_timer_t *t_response;
- ogs_sbi_stream_t *assoc_stream;
+ ogs_pool_id_t assoc_stream_id;
+
int state;
char *target_apiroot;
ogs_sbi_object_t *sbi_object;
+ ogs_pool_id_t sbi_object_id;
} ogs_sbi_xact_t;
typedef struct ogs_sbi_nf_service_s {
@@ -272,12 +293,7 @@ typedef struct ogs_sbi_subscription_spec_s {
typedef struct ogs_sbi_subscription_data_s {
ogs_lnode_t lnode;
-#define OGS_SBI_VALIDITY_SEC(v) \
- ogs_time_sec(v) + (ogs_time_usec(v) ? 1 : 0)
- struct {
- int validity_duration;
- } time;
-
+ ogs_time_t validity_duration; /* valditiyTime(unit: usec) */
ogs_timer_t *t_validity; /* check validation */
ogs_timer_t *t_patch; /* for sending PATCH */
@@ -286,16 +302,18 @@ typedef struct ogs_sbi_subscription_data_s {
OpenAPI_nf_type_e req_nf_type; /* reqNfType */
OpenAPI_nf_status_e nf_status;
char *notification_uri;
+ char *resource_uri;
struct {
OpenAPI_nf_type_e nf_type; /* nfType */
char *service_name; /* ServiceName */
+ char *nf_instance_id; /* NF Instance Id */
} subscr_cond;
uint64_t requester_features;
uint64_t nrf_supported_features;
- void *client; /* only used in SERVER */
+ void *client;
} ogs_sbi_subscription_data_t;
typedef struct ogs_sbi_smf_info_s {
@@ -341,8 +359,8 @@ typedef struct ogs_sbi_sepp_info_s {
} ogs_sbi_sepp_info_t;
typedef struct ogs_sbi_amf_info_s {
- int amf_set_id;
- int amf_region_id;
+ uint8_t amf_set_id;
+ uint16_t amf_region_id;
int num_of_guami;
ogs_guami_t guami[OGS_MAX_NUM_OF_SERVED_GUAMI];
@@ -437,6 +455,8 @@ void ogs_sbi_nf_info_remove_all(ogs_list_t *list);
ogs_sbi_nf_info_t *ogs_sbi_nf_info_find(
ogs_list_t *list, OpenAPI_nf_type_e nf_type);
+bool ogs_sbi_check_amf_info_guami(
+ ogs_sbi_amf_info_t *amf_info, ogs_guami_t *guami);
bool ogs_sbi_check_smf_info_slice(
ogs_sbi_smf_info_t *smf_info, ogs_s_nssai_t *s_nssai, char *dnn);
bool ogs_sbi_check_smf_info_tai(
@@ -459,18 +479,47 @@ int ogs_sbi_default_client_port(OpenAPI_uri_scheme_e scheme);
#define OGS_SBI_SETUP_NF_INSTANCE(__cTX, __nFInstance) \
do { \
ogs_assert(__nFInstance); \
+ ogs_assert((__nFInstance)->id); \
+ ogs_assert((__nFInstance)->t_validity); \
\
if ((__cTX).nf_instance) { \
- ogs_warn("NF Instance [%s] updated [%s]", \
- OpenAPI_nf_type_ToString((__nFInstance)->nf_type), \
- (__nFInstance)->id); \
- ogs_sbi_nf_instance_remove((__cTX).nf_instance); \
+ ogs_warn("[%s] NF Instance updated [type:%s validity:%ds]", \
+ ((__cTX).nf_instance)->id, \
+ OpenAPI_nf_type_ToString(((__cTX).nf_instance)->nf_type), \
+ ((__cTX).nf_instance)->time.validity_duration); \
} \
\
- OGS_OBJECT_REF(__nFInstance); \
- ((__cTX).nf_instance) = (__nFInstance); \
+ ((__cTX).nf_instance) = __nFInstance; \
+ if ((__nFInstance)->time.validity_duration) { \
+ ((__cTX).validity_timeout) = (__nFInstance)->t_validity->timeout; \
+ } else { \
+ ((__cTX).validity_timeout) = 0; \
+ } \
+ ogs_info("[%s] NF Instance setup [type:%s validity:%ds]", \
+ (__nFInstance)->id, \
+ OpenAPI_nf_type_ToString((__nFInstance)->nf_type), \
+ (__nFInstance)->time.validity_duration); \
} while(0)
+/*
+ * Search.Result stored in nf_instance->time.validity_duration;
+ *
+ * validity_timeout = nf_instance->validity->timeout =
+ * ogs_get_monotonic_time() + nf_instance->time.validity_duration;
+ *
+ * if no validityPeriod in SearchResult, validity_timeout is 0.
+ */
+#define OGS_SBI_GET_NF_INSTANCE(__cTX) \
+ ((__cTX).validity_timeout == 0 || \
+ (__cTX).validity_timeout > ogs_get_monotonic_time() ? \
+ ((__cTX).nf_instance) : NULL)
+
+#define OGS_SBI_NF_INSTANCE_VALID(__nFInstance) \
+ (((__nFInstance) && ((__nFInstance)->t_validity) && \
+ ((__nFInstance)->time.validity_duration == 0 || \
+ (__nFInstance)->t_validity->timeout > ogs_get_monotonic_time())) ? \
+ true : false)
+
bool ogs_sbi_discovery_param_is_matched(
ogs_sbi_nf_instance_t *nf_instance,
OpenAPI_nf_type_e target_nf_type,
@@ -498,13 +547,14 @@ bool ogs_sbi_discovery_option_target_plmn_list_is_matched(
void ogs_sbi_object_free(ogs_sbi_object_t *sbi_object);
ogs_sbi_xact_t *ogs_sbi_xact_add(
+ ogs_pool_id_t sbi_object_id,
ogs_sbi_object_t *sbi_object,
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
ogs_sbi_build_f build, void *context, void *data);
void ogs_sbi_xact_remove(ogs_sbi_xact_t *xact);
void ogs_sbi_xact_remove_all(ogs_sbi_object_t *sbi_object);
-ogs_sbi_xact_t *ogs_sbi_xact_cycle(ogs_sbi_xact_t *xact);
+ogs_sbi_xact_t *ogs_sbi_xact_find_by_id(ogs_pool_id_t id);
ogs_sbi_subscription_spec_t *ogs_sbi_subscription_spec_add(
OpenAPI_nf_type_e nf_type, const char *service_name);
@@ -513,6 +563,8 @@ void ogs_sbi_subscription_spec_remove(
void ogs_sbi_subscription_spec_remove_all(void);
ogs_sbi_subscription_data_t *ogs_sbi_subscription_data_add(void);
+void ogs_sbi_subscription_data_set_resource_uri(
+ ogs_sbi_subscription_data_t *subscription_data, char *resource_uri);
void ogs_sbi_subscription_data_set_id(
ogs_sbi_subscription_data_t *subscription_data, char *id);
void ogs_sbi_subscription_data_remove(
@@ -526,6 +578,8 @@ bool ogs_sbi_supi_in_vplmn(char *supi);
bool ogs_sbi_plmn_id_in_vplmn(ogs_plmn_id_t *plmn_id);
bool ogs_sbi_fqdn_in_vplmn(char *fqdn);
+void ogs_sbi_keylog_callback(const SSL *ssl, const char *line);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/sbi/conv.c b/lib/sbi/conv.c
index 5fb0724816..99ba983358 100644
--- a/lib/sbi/conv.c
+++ b/lib/sbi/conv.c
@@ -94,9 +94,16 @@ char *ogs_supi_from_suci(char *suci)
return NULL;
}
+ /* Clang scan-build SA: Branch condition evaluates to a garbage value: If array "array" is not fully populated
+ * in the while loop below then later access in the following switch-case may check uninitialized values.
+ * Initialize "array" to NULL pointers to fix the issue. */
+ for (i = 0; i < MAX_SUCI_TOKEN; i++) {
+ array[i] = NULL;
+ }
+
p = tmp;
i = 0;
- while((array[i++] = strsep(&p, "-"))) {
+ while((i < MAX_SUCI_TOKEN) && (array[i++] = strsep(&p, "-"))) {
/* Empty Body */
}
@@ -715,12 +722,12 @@ char *ogs_sbi_bitrate_to_string(uint64_t bitrate, int unit)
uint64_t ogs_sbi_bitrate_from_string(char *str)
{
char *unit = NULL;
- uint64_t bitrate = 0;
+ double bitrate = 0;
ogs_assert(str);
uint64_t mul = 1;
unit = strrchr(str, ' ');
- bitrate = atoll(str);
+ bitrate = atof(str);
if (!unit) {
ogs_error("No Unit [%s]", str);
@@ -748,7 +755,7 @@ uint64_t ogs_sbi_bitrate_from_string(char *str)
else
bitrate *= mul;
- return bitrate;
+ return (uint64_t) bitrate;
}
#define MAX_TIMESTR_LEN 128
@@ -1063,7 +1070,7 @@ bool ogs_sbi_s_nssai_from_string(ogs_s_nssai_t *s_nssai, char *str)
ogs_error("ogs_strdup[%s:%s] failed", str, token);
goto cleanup;
}
- s_nssai->sd = ogs_uint24_from_string(sd);
+ s_nssai->sd = ogs_uint24_from_string_hexadecimal(sd);
}
rc = true;
@@ -1198,6 +1205,35 @@ void ogs_sbi_free_plmn_list(OpenAPI_list_t *PlmnList)
OpenAPI_list_free(PlmnList);
}
+/**
+ * Compares an ogs_plmn_id_t structure with an OpenAPI_plmn_id_t structure.
+ *
+ * @param plmn_list The PLMN-ID in ogs_plmn_id_t format.
+ * @param PlmnList The PLMN-ID in OpenAPI_plmn_id_t format.
+ * @return true if the PLMN-IDs are equal; otherwise, false.
+ */
+bool ogs_sbi_compare_plmn_list(
+ ogs_plmn_id_t *plmn_id, OpenAPI_plmn_id_t *PlmnId)
+{
+ ogs_plmn_id_t temp_plmn_id;
+
+ ogs_assert(plmn_id);
+ ogs_assert(PlmnId);
+ ogs_assert(PlmnId->mcc);
+ ogs_assert(PlmnId->mnc);
+
+ /* Convert OpenAPI_plmn_id_t to ogs_plmn_id_t */
+ ogs_sbi_parse_plmn_id(&temp_plmn_id, PlmnId);
+
+ /* Compare MCC and MNC values */
+ if (ogs_plmn_id_mcc(plmn_id) == ogs_plmn_id_mcc(&temp_plmn_id) &&
+ ogs_plmn_id_mnc(plmn_id) == ogs_plmn_id_mnc(&temp_plmn_id)) {
+ return true;
+ }
+
+ return false;
+}
+
OpenAPI_plmn_id_nid_t *ogs_sbi_build_plmn_id_nid(ogs_plmn_id_t *plmn_id)
{
OpenAPI_plmn_id_nid_t *PlmnIdNid = NULL;
@@ -1378,7 +1414,7 @@ bool ogs_sbi_parse_nr_location(ogs_5gs_tai_t *tai, ogs_nr_cgi_t *nr_cgi,
if (Tai->plmn_id)
ogs_sbi_parse_plmn_id(&tai->plmn_id, Tai->plmn_id);
if (Tai->tac)
- tai->tac = ogs_uint24_from_string(Tai->tac);
+ tai->tac = ogs_uint24_from_string_hexadecimal(Tai->tac);
}
Ncgi = NrLocation->ncgi;
@@ -1386,7 +1422,8 @@ bool ogs_sbi_parse_nr_location(ogs_5gs_tai_t *tai, ogs_nr_cgi_t *nr_cgi,
if (Ncgi->plmn_id)
ogs_sbi_parse_plmn_id(&nr_cgi->plmn_id, Ncgi->plmn_id);
if (Ncgi->nr_cell_id)
- nr_cgi->cell_id = ogs_uint64_from_string(Ncgi->nr_cell_id);
+ nr_cgi->cell_id = ogs_uint64_from_string_hexadecimal(
+ Ncgi->nr_cell_id);
}
@@ -1466,6 +1503,9 @@ OpenAPI_pcc_rule_t *ogs_sbi_build_pcc_rule(
else if (flow->direction == OGS_FLOW_DOWNLINK_ONLY)
FlowInformation->flow_direction =
OpenAPI_flow_direction_DOWNLINK;
+ else if (flow->direction == OGS_FLOW_BIDIRECTIONAL)
+ FlowInformation->flow_direction =
+ OpenAPI_flow_direction_BIDIRECTIONAL;
else {
ogs_fatal("Unsupported direction [%d]", flow->direction);
ogs_assert_if_reached();
diff --git a/lib/sbi/conv.h b/lib/sbi/conv.h
index dc01e3069f..6a7d055f77 100644
--- a/lib/sbi/conv.h
+++ b/lib/sbi/conv.h
@@ -98,6 +98,8 @@ OpenAPI_list_t *ogs_sbi_build_plmn_list(
int ogs_sbi_parse_plmn_list(
ogs_plmn_id_t *plmn_list, OpenAPI_list_t *PlmnList);
void ogs_sbi_free_plmn_list(OpenAPI_list_t *PlmnList);
+bool ogs_sbi_compare_plmn_list(
+ ogs_plmn_id_t *plmn_id, OpenAPI_plmn_id_t *PlmnId);
OpenAPI_plmn_id_nid_t *ogs_sbi_build_plmn_id_nid(ogs_plmn_id_t *plmn_id);
bool ogs_sbi_parse_plmn_id_nid(
diff --git a/lib/sbi/message.c b/lib/sbi/message.c
index f7c99a4b3f..e747fed350 100644
--- a/lib/sbi/message.c
+++ b/lib/sbi/message.c
@@ -189,6 +189,14 @@ void ogs_sbi_message_free(ogs_sbi_message_t *message)
OpenAPI_sec_negotiate_req_data_free(message->SecNegotiateReqData);
if (message->SecNegotiateRspData)
OpenAPI_sec_negotiate_rsp_data_free(message->SecNegotiateRspData);
+ if (message->UeContextTransferReqData)
+ OpenAPI_ue_context_transfer_req_data_free(message->UeContextTransferReqData);
+ if (message->UeContextTransferRspData)
+ OpenAPI_ue_context_transfer_rsp_data_free(message->UeContextTransferRspData);
+ if (message->UeRegStatusUpdateReqData)
+ OpenAPI_ue_reg_status_update_req_data_free(message->UeRegStatusUpdateReqData);
+ if (message->UeRegStatusUpdateRspData)
+ OpenAPI_ue_reg_status_update_rsp_data_free(message->UeRegStatusUpdateRspData);
/* HTTP Part */
for (i = 0; i < message->num_of_part; i++) {
@@ -282,6 +290,7 @@ ogs_sbi_request_t *ogs_sbi_build_request(ogs_sbi_message_t *message)
int i;
ogs_sbi_request_t *request = NULL;
OpenAPI_nf_type_e nf_type = OpenAPI_nf_type_NULL;
+
char sender_timestamp[OGS_SBI_RFC7231_DATE_LEN];
char *max_rsp_time = NULL;
@@ -389,8 +398,21 @@ ogs_sbi_request_t *ogs_sbi_build_request(ogs_sbi_message_t *message)
OGS_SBI_PARAM_REQUESTER_NF_INSTANCE_ID,
discovery_option->requester_nf_instance_id);
}
- if (ogs_sbi_self()->discovery_config.no_service_names == false &&
- discovery_option->num_of_service_names) {
+ if (discovery_option->guami_presence) {
+ char *v = ogs_sbi_discovery_option_build_guami(discovery_option);
+ if (v) {
+ ogs_sbi_header_set(request->http.params,
+ OGS_SBI_PARAM_GUAMI, v);
+ ogs_free(v);
+ } else {
+ ogs_error("build failed: guami[PLMN_ID:%06x,AMF_ID:%d]",
+ ogs_plmn_id_hexdump(
+ &discovery_option->guami.plmn_id),
+ ogs_amf_id_hexdump(
+ &discovery_option->guami.amf_id));
+ }
+ }
+ if (discovery_option->num_of_service_names) {
/*
* Issues #1730
@@ -590,11 +612,6 @@ ogs_sbi_request_t *ogs_sbi_build_request(ogs_sbi_message_t *message)
char *v = NULL;
cJSON *item = NULL;
- if (!message->param.s_nssai.sst) {
- ogs_error("No S-NSSAI SST");
- ogs_sbi_request_free(request);
- return NULL;
- }
if (!message->param.roaming_indication) {
ogs_error("No Roaming Indication");
ogs_sbi_request_free(request);
@@ -817,9 +834,14 @@ int ogs_sbi_parse_request(
ogs_sbi_discovery_option_parse_snssais(discovery_option, v);
discovery_option_presence = true;
}
+ } else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_GUAMI)) {
+ char *v = ogs_hash_this_val(hi);
+ if (v) {
+ ogs_sbi_discovery_option_parse_guami(discovery_option, v);
+ discovery_option_presence = true;
+ }
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_DNN)) {
char *v = ogs_hash_this_val(hi);
-
if (v) {
ogs_sbi_discovery_option_set_dnn(discovery_option, v);
discovery_option_presence = true;
@@ -853,12 +875,13 @@ int ogs_sbi_parse_request(
char *v = ogs_hash_this_val(hi);
if (v) {
discovery_option->requester_features =
- ogs_uint64_from_string(v);
+ ogs_uint64_from_string_hexadecimal(v);
discovery_option_presence = true;
}
+ }
/* URL Query Parameter */
- } else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_NF_ID)) {
+ if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_NF_ID)) {
message->param.nf_id = ogs_hash_this_val(hi);
} else if (!strcmp(ogs_hash_this_key(hi), OGS_SBI_PARAM_NF_TYPE)) {
message->param.nf_type =
@@ -1339,6 +1362,22 @@ static char *build_json(ogs_sbi_message_t *message)
item = OpenAPI_sec_negotiate_rsp_data_convertToJSON(
message->SecNegotiateRspData);
ogs_assert(item);
+ } else if (message->UeContextTransferReqData) {
+ item = OpenAPI_ue_context_transfer_req_data_convertToJSON(
+ message->UeContextTransferReqData);
+ ogs_assert(item);
+ } else if (message->UeContextTransferRspData) {
+ item = OpenAPI_ue_context_transfer_rsp_data_convertToJSON(
+ message->UeContextTransferRspData);
+ ogs_assert(item);
+ } else if (message->UeRegStatusUpdateReqData) {
+ item = OpenAPI_ue_reg_status_update_req_data_convertToJSON(
+ message->UeRegStatusUpdateReqData);
+ ogs_assert(item);
+ } else if (message->UeRegStatusUpdateRspData) {
+ item = OpenAPI_ue_reg_status_update_rsp_data_convertToJSON(
+ message->UeRegStatusUpdateRspData);
+ ogs_assert(item);
}
if (item) {
@@ -2081,6 +2120,48 @@ static int parse_json(ogs_sbi_message_t *message,
}
break;
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER)
+ if (message->res_status == 0) {
+ message->UeContextTransferReqData =
+ OpenAPI_ue_context_transfer_req_data_parseFromJSON(item);
+ if (!message->UeContextTransferReqData) {
+ rv = OGS_ERROR;
+ ogs_error("JSON parse error");
+ }
+ } else if (message->res_status == OGS_SBI_HTTP_STATUS_OK) {
+ message->UeContextTransferRspData =
+ OpenAPI_ue_context_transfer_rsp_data_parseFromJSON(item);
+ if (!message->UeContextTransferRspData) {
+ rv = OGS_ERROR;
+ ogs_error("JSON parse error");
+ }
+ } else {
+ ogs_error("HTTP ERROR Status : %d",
+ message->res_status);
+ }
+ break;
+
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER_UPDATE)
+ if (message->res_status == 0) {
+ message->UeRegStatusUpdateReqData =
+ OpenAPI_ue_reg_status_update_req_data_parseFromJSON(item);
+ if (!message->UeRegStatusUpdateReqData) {
+ rv = OGS_ERROR;
+ ogs_error("JSON parse error");
+ }
+ } else if (message->res_status == OGS_SBI_HTTP_STATUS_OK) {
+ message->UeRegStatusUpdateRspData =
+ OpenAPI_ue_reg_status_update_rsp_data_parseFromJSON(item);
+ if (!message->UeRegStatusUpdateRspData) {
+ rv = OGS_ERROR;
+ ogs_error("JSON parse error");
+ }
+ } else {
+ ogs_error("HTTP ERROR Status : %d",
+ message->res_status);
+ }
+ break;
+
DEFAULT
rv = OGS_ERROR;
ogs_error("Unknown resource name [%s]",
@@ -2436,6 +2517,19 @@ static int parse_json(ogs_sbi_message_t *message,
END
break;
+ CASE(OGS_SBI_RESOURCE_NAME_SDMSUBSCRIPTION_NOTIFY)
+ if (message->res_status < 300) {
+ message->ModificationNotification =
+ OpenAPI_modification_notification_parseFromJSON(item);
+ if (!message->ModificationNotification) {
+ rv = OGS_ERROR;
+ ogs_error("JSON parse error");
+ }
+ } else {
+ ogs_error("HTTP ERROR Status : %d", message->res_status);
+ }
+ break;
+
DEFAULT
rv = OGS_ERROR;
ogs_error("Unknown resource name [%s]",
@@ -2627,7 +2721,7 @@ static int parse_multipart(
ogs_sbi_message_t *message, ogs_sbi_http_message_t *http)
{
char *boundary = NULL;
- int i;
+ int i, preamble;
multipart_parser_settings settings;
multipart_parser_data_t data;
@@ -2643,19 +2737,23 @@ static int parse_multipart(
settings.on_part_data = &on_part_data;
settings.on_part_data_end = &on_part_data_end;
- for (i = 0; i < http->content_length; i++) {
+ preamble = 0;
+ if (http->content[0] == '\r' && http->content[1] == '\n')
+ preamble = 2;
+
+ for (i = preamble; i < (http->content_length-preamble); i++) {
if (http->content[i] == '\r' && http->content[i+1] == '\n')
break;
}
- if (i >= http->content_length) {
+ if (i >= (http->content_length-preamble)) {
ogs_error("Invalid HTTP content [%d]", i);
ogs_log_hexdump(OGS_LOG_ERROR,
(unsigned char *)http->content, http->content_length);
return OGS_ERROR;
}
- boundary = ogs_strndup(http->content, i);
+ boundary = ogs_strndup(http->content+preamble, i-preamble);
ogs_assert(boundary);
parser = multipart_parser_init(boundary, &settings);
@@ -2663,7 +2761,8 @@ static int parse_multipart(
memset(&data, 0, sizeof(data));
multipart_parser_set_data(parser, &data);
- multipart_parser_execute(parser, http->content, http->content_length);
+ multipart_parser_execute(parser,
+ http->content+preamble, http->content_length-preamble);
multipart_parser_free(parser);
ogs_free(boundary);
@@ -2788,6 +2887,10 @@ static bool build_multipart(
}
last = p + OGS_MAX_SDU_LEN;
+#if SBI_MIME_PREAMBLE_CRLF /* Preamble CLRF */
+ p = ogs_slprintf(p, last, "\r\n");
+#endif
+
/* First boundary */
p = ogs_slprintf(p, last, "--%s\r\n", boundary);
@@ -3119,6 +3222,80 @@ void ogs_sbi_discovery_option_parse_snssais(
ogs_free(v);
}
+void ogs_sbi_discovery_option_set_guami(
+ ogs_sbi_discovery_option_t *discovery_option, ogs_guami_t *guami)
+{
+ ogs_assert(discovery_option);
+ ogs_assert(guami);
+
+ ogs_assert(discovery_option->guami_presence == false);
+
+ memcpy(&discovery_option->guami, guami, sizeof(ogs_guami_t));
+ discovery_option->guami_presence = true;
+}
+
+char *ogs_sbi_discovery_option_build_guami(
+ ogs_sbi_discovery_option_t *discovery_option)
+{
+ OpenAPI_guami_t *Guami = NULL;
+ cJSON *guamiItem = NULL;
+ char *v = NULL;
+
+ ogs_assert(discovery_option);
+ ogs_assert(discovery_option->guami_presence);
+
+ Guami = ogs_sbi_build_guami(&discovery_option->guami);
+ ogs_assert(Guami);
+ guamiItem = OpenAPI_guami_convertToJSON(Guami);
+ ogs_assert(guamiItem);
+ ogs_sbi_free_guami(Guami);
+
+ v = cJSON_PrintUnformatted(guamiItem);
+ ogs_expect(v);
+ cJSON_Delete(guamiItem);
+
+ return v;
+}
+
+void ogs_sbi_discovery_option_parse_guami(
+ ogs_sbi_discovery_option_t *discovery_option, char *guami)
+{
+ OpenAPI_guami_t *Guami = NULL;
+ cJSON *guamItem = NULL;
+ char *v = NULL;
+
+ ogs_assert(discovery_option);
+ ogs_assert(guami);
+
+ v = ogs_sbi_url_decode(guami);
+ if (!v) {
+ ogs_error("ogs_sbi_url_decode() failed : guami[%s]", guami);
+ return;
+ }
+
+ guamItem = cJSON_Parse(v);
+ if (!guamItem) {
+ ogs_error("Cannot parse guami[%s]", guami);
+ ogs_free(v);
+ return;
+ }
+
+ Guami = OpenAPI_guami_parseFromJSON(guamItem);
+
+ if (Guami) {
+ ogs_guami_t guami;
+ ogs_sbi_parse_guami(&guami, Guami);
+ ogs_sbi_discovery_option_set_guami(discovery_option, &guami);
+ OpenAPI_guami_free(Guami);
+ } else {
+ ogs_error("OpenAPI_guami_parseFromJSON() failed : guami[%s]",
+ guami);
+ }
+ cJSON_Delete(guamItem);
+
+ ogs_free(v);
+}
+
void ogs_sbi_discovery_option_set_tai(
ogs_sbi_discovery_option_t *discovery_option, ogs_5gs_tai_t *tai)
{
@@ -3192,7 +3369,7 @@ void ogs_sbi_discovery_option_parse_tai(
if (Tai->plmn_id)
ogs_sbi_parse_plmn_id(&tai.plmn_id, Tai->plmn_id);
if (Tai->tac)
- tai.tac = ogs_uint24_from_string(Tai->tac);
+ tai.tac = ogs_uint24_from_string_hexadecimal(Tai->tac);
ogs_sbi_discovery_option_set_tai(discovery_option, &tai);
diff --git a/lib/sbi/message.h b/lib/sbi/message.h
index 5ea06e6979..e303862e67 100644
--- a/lib/sbi/message.h
+++ b/lib/sbi/message.h
@@ -48,7 +48,7 @@ extern "C" {
#define OGS_SBI_HTTP_STATUS_UNAUTHORIZED 401 /* ALL */
#define OGS_SBI_HTTP_STATUS_FORBIDDEN 403 /* ALL */
#define OGS_SBI_HTTP_STATUS_NOT_FOUND 404 /* ALL */
-#define OGS_SBI_HTTP_STATUS_MEHTOD_NOT_ALLOWED 405 /* ALL */
+#define OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED 405 /* ALL */
#define OGS_SBI_HTTP_STATUS_NOT_ACCEPTABLE 406 /* GET OPTIONS */
#define OGS_SBI_HTTP_STATUS_REQUEST_TIMEOUT 408 /* ALL */
#define OGS_SBI_HTTP_STATUS_CONFLICT 409 /* PATCH POST PUT */
@@ -124,6 +124,8 @@ extern "C" {
#define OGS_SBI_RESOURCE_NAME_UE_CONTEXTS "ue-contexts"
#define OGS_SBI_RESOURCE_NAME_N1_N2_MESSAGES "n1-n2-messages"
+#define OGS_SBI_RESOURCE_NAME_TRANSFER "transfer"
+#define OGS_SBI_RESOURCE_NAME_TRANSFER_UPDATE "transfer-update"
#define OGS_SBI_RESOURCE_NAME_SM_CONTEXT_STATUS "sm-context-status"
#define OGS_SBI_RESOURCE_NAME_AM_POLICY_NOTIFY "am-policy-notify"
@@ -148,6 +150,7 @@ extern "C" {
#define OGS_SBI_PATCH_PATH_NF_STATUS "/nfStatus"
#define OGS_SBI_PATCH_PATH_LOAD "/load"
+#define OGS_SBI_PATCH_PATH_PLMN_LIST "/plmnList"
#define OGS_SBI_PATCH_PATH_VALIDITY_TIME "/validityTime"
@@ -168,6 +171,13 @@ extern "C" {
#define OGS_SBI_NPCF_AM_POLICY_CONTROL_MULTIPLE_ACCESS_TYPES 5
#define OGS_SBI_NPCF_AM_POLICY_CONTROL_WIRELINE_WIRELESS_CONVERGE 6
+#define OGS_SBI_NUDM_SDM_SHARED_DATA 1
+#define OGS_SBI_NUDM_SDM_IMMEDIATE_REPORT 2
+#define OGS_SBI_NUDM_SDM_PATCH_REPORT 3
+#define OGS_SBI_NUDM_SDM_NSSAA 4
+#define OGS_SBI_NUDM_SDM_CAG_FEATURE 5
+#define OGS_SBI_NUDM_SDM_LIMITED_SUBSCRIPTIONS 13
+
#define OGS_SBI_NPCF_SMPOLICYCONTROL_TSC 1
#define OGS_SBI_NPCF_SMPOLICYCONTROL_RES_SHARE 2
#define OGS_SBI_NPCF_SMPOLICYCONTROL_3GPP_PS_DATA_OFF 3
@@ -295,6 +305,8 @@ extern "C" {
OGS_SBI_CUSTOM_DISCOVERY_COMMON OGS_SBI_PARAM_REQUESTER_PLMN_LIST
#define OGS_SBI_CUSTOM_DISCOVERY_REQUESTER_FEATURES \
OGS_SBI_CUSTOM_DISCOVERY_COMMON OGS_SBI_PARAM_REQUESTER_FEATURES
+#define OGS_SBI_CUSTOM_DISCOVERY_GUAMI \
+ OGS_SBI_CUSTOM_DISCOVERY_COMMON OGS_SBI_PARAM_GUAMI
#define OGS_SBI_CUSTOM_PRODUCER_ID \
OGS_SBI_CUSTOM_3GPP_COMMON "Producer-Id"
#define OGS_SBI_CUSTOM_OCI \
@@ -330,6 +342,7 @@ extern "C" {
#define OGS_SBI_PARAM_PLMN_ID "plmn-id"
#define OGS_SBI_PARAM_SINGLE_NSSAI "single-nssai"
#define OGS_SBI_PARAM_SNSSAI "snssai"
+#define OGS_SBI_PARAM_GUAMI "guami"
#define OGS_SBI_PARAM_SNSSAIS "snssais"
#define OGS_SBI_PARAM_TAI "tai"
#define OGS_SBI_PARAM_SLICE_INFO_REQUEST_FOR_PDU_SESSION \
@@ -431,6 +444,9 @@ typedef struct ogs_sbi_discovery_option_s {
bool tai_presence;
ogs_5gs_tai_t tai;
+ bool guami_presence;
+ ogs_guami_t guami;
+
int num_of_target_plmn_list;
ogs_plmn_id_t target_plmn_list[OGS_MAX_NUM_OF_PLMN];
int num_of_requester_plmn_list;
@@ -542,6 +558,10 @@ typedef struct ogs_sbi_message_s {
OpenAPI_smf_registration_t *SmfRegistration;
OpenAPI_sec_negotiate_req_data_t *SecNegotiateReqData;
OpenAPI_sec_negotiate_rsp_data_t *SecNegotiateRspData;
+ OpenAPI_ue_context_transfer_req_data_t *UeContextTransferReqData;
+ OpenAPI_ue_context_transfer_rsp_data_t *UeContextTransferRspData;
+ OpenAPI_ue_reg_status_update_req_data_t *UeRegStatusUpdateReqData;
+ OpenAPI_ue_reg_status_update_rsp_data_t *UeRegStatusUpdateRspData;
ogs_sbi_links_t *links;
@@ -641,6 +661,13 @@ char *ogs_sbi_discovery_option_build_snssais(
void ogs_sbi_discovery_option_parse_snssais(
ogs_sbi_discovery_option_t *discovery_option, char *snssais);
+void ogs_sbi_discovery_option_set_guami(
+ ogs_sbi_discovery_option_t *discovery_option, ogs_guami_t *guami);
+char *ogs_sbi_discovery_option_build_guami(
+ ogs_sbi_discovery_option_t *discovery_option);
+void ogs_sbi_discovery_option_parse_guami(
+ ogs_sbi_discovery_option_t *discovery_option, char *guami);
+
void ogs_sbi_discovery_option_set_tai(
ogs_sbi_discovery_option_t *discovery_option, ogs_5gs_tai_t *tai);
char *ogs_sbi_discovery_option_build_tai(
diff --git a/lib/sbi/mhd-server.c b/lib/sbi/mhd-server.c
index 913d0f931a..c2ca0a97bf 100644
--- a/lib/sbi/mhd-server.c
+++ b/lib/sbi/mhd-server.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019,2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -41,6 +41,9 @@ static bool server_send_response(
static ogs_sbi_server_t *server_from_stream(ogs_sbi_stream_t *stream);
+static ogs_pool_id_t id_from_stream(ogs_sbi_stream_t *stream);
+static void *stream_find_by_id(ogs_pool_id_t id);
+
const ogs_sbi_server_actions_t ogs_mhd_server_actions = {
server_init,
server_final,
@@ -52,6 +55,8 @@ const ogs_sbi_server_actions_t ogs_mhd_server_actions = {
server_send_response,
server_from_stream,
+ id_from_stream,
+ stream_find_by_id,
};
static void run(short when, ogs_socket_t fd, void *data);
@@ -79,6 +84,8 @@ static void session_timer_expired(void *data);
typedef struct ogs_sbi_session_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
+
struct MHD_Connection *connection;
ogs_sbi_request_t *request;
@@ -125,9 +132,8 @@ static ogs_sbi_session_t *session_add(ogs_sbi_server_t *server,
ogs_assert(request);
ogs_assert(connection);
- ogs_pool_alloc(&session_pool, &sbi_sess);
+ ogs_pool_id_calloc(&session_pool, &sbi_sess);
ogs_assert(sbi_sess);
- memset(sbi_sess, 0, sizeof(ogs_sbi_session_t));
sbi_sess->server = server;
sbi_sess->request = request;
@@ -137,7 +143,7 @@ static ogs_sbi_session_t *session_add(ogs_sbi_server_t *server,
ogs_app()->timer_mgr, session_timer_expired, sbi_sess);
if (!sbi_sess->timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&session_pool, sbi_sess);
+ ogs_pool_id_free(&session_pool, sbi_sess);
return NULL;
}
@@ -170,7 +176,7 @@ static void session_remove(ogs_sbi_session_t *sbi_sess)
MHD_resume_connection(connection);
- ogs_pool_free(&session_pool, sbi_sess);
+ ogs_pool_id_free(&session_pool, sbi_sess);
}
static void session_timer_expired(void *data)
@@ -320,12 +326,8 @@ static bool server_send_rspmem_persistent(
ogs_sbi_session_t *sbi_sess = NULL;
ogs_assert(response);
-
- sbi_sess = ogs_pool_cycle(&session_pool, (ogs_sbi_session_t *)stream);
- if (!sbi_sess) {
- ogs_error("session has already been removed");
- return true;
- }
+ sbi_sess = (ogs_sbi_session_t *)stream;
+ ogs_assert(sbi_sess);
connection = sbi_sess->connection;
ogs_assert(connection);
@@ -571,12 +573,12 @@ static _MHD_Result access_handler(
ogs_assert(sbi_sess);
ogs_assert(server->cb);
- if (server->cb(request, sbi_sess) != OGS_OK) {
+ if (server->cb(request, OGS_UINT_TO_POINTER(sbi_sess->id)) != OGS_OK) {
ogs_warn("server callback error");
ogs_assert(true ==
ogs_sbi_server_send_error((ogs_sbi_stream_t *)sbi_sess,
OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
- "server callback error", NULL));
+ "server callback error", NULL, NULL));
return MHD_YES;
}
@@ -608,3 +610,16 @@ static ogs_sbi_server_t *server_from_stream(ogs_sbi_stream_t *stream)
return sbi_sess->server;
}
+
+static ogs_pool_id_t id_from_stream(ogs_sbi_stream_t *stream)
+{
+ ogs_sbi_session_t *sbi_sess = (ogs_sbi_session_t *)stream;
+
+ ogs_assert(sbi_sess);
+ return sbi_sess->id;
+}
+
+static void *stream_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&session_pool, id);
+}
diff --git a/lib/sbi/nf-sm.c b/lib/sbi/nf-sm.c
index 39e2d76e1e..87aec76244 100644
--- a/lib/sbi/nf-sm.c
+++ b/lib/sbi/nf-sm.c
@@ -32,19 +32,6 @@ void ogs_sbi_nf_fsm_init(ogs_sbi_nf_instance_t *nf_instance)
ogs_sbi_nf_state_initial, ogs_sbi_nf_state_final, &e);
}
-void ogs_sbi_nf_fsm_tran(ogs_sbi_nf_instance_t *nf_instance, void *state)
-{
- ogs_event_t e;
-
- ogs_assert(nf_instance);
- ogs_assert(OGS_FSM_STATE(&nf_instance->sm));
-
- memset(&e, 0, sizeof(e));
- e.sbi.data = nf_instance;
-
- ogs_fsm_tran(&nf_instance->sm, state, &e);
-}
-
void ogs_sbi_nf_fsm_fini(ogs_sbi_nf_instance_t *nf_instance)
{
ogs_event_t e;
@@ -307,7 +294,7 @@ void ogs_sbi_nf_state_registered(ogs_fsm_t *s, ogs_event_t *e)
break;
case OGS_TIMER_NF_INSTANCE_NO_HEARTBEAT:
- ogs_error("[%s:%s] No heartbeat",
+ ogs_error("[%s] No heartbeat [type:%s]",
NF_INSTANCE_ID(ogs_sbi_self()->nf_instance),
OpenAPI_nf_type_ToString(
NF_INSTANCE_TYPE(ogs_sbi_self()->nf_instance)));
@@ -318,22 +305,24 @@ void ogs_sbi_nf_state_registered(ogs_fsm_t *s, ogs_event_t *e)
ogs_assert(!NF_INSTANCE_TYPE_IS_NRF(nf_instance));
ogs_assert(nf_instance->id);
- ogs_info("[%s] NF expired", nf_instance->id);
+ ogs_info("[%s] NF expired [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
OGS_FSM_TRAN(s, &ogs_sbi_nf_state_de_registered);
break;
default:
- ogs_error("[%s:%s] Unknown timer[%s:%d]",
- OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ ogs_error("[%s] Unknown timer [type:%s timer:%s:%d]",
nf_instance->id ? nf_instance->id : "Undefined",
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
ogs_timer_get_name(e->timer_id), e->timer_id);
}
break;
default:
- ogs_error("[%s:%s] Unknown event %s",
- OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ ogs_error("[%s] Unknown event [type:%s event:%s]",
nf_instance->id ? nf_instance->id : "Undefined",
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
ogs_event_get_name(e));
break;
}
@@ -353,19 +342,20 @@ void ogs_sbi_nf_state_de_registered(ogs_fsm_t *s, ogs_event_t *e)
switch (e->id) {
case OGS_FSM_ENTRY_SIG:
- if (NF_INSTANCE_TYPE_IS_NRF(nf_instance)) {
- ogs_info("[%s] NF de-registered",
- NF_INSTANCE_ID(ogs_sbi_self()->nf_instance));
- }
+ ogs_info("[%s] NF de-registered [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
+ ogs_sbi_nf_fsm_fini(nf_instance);
+ ogs_sbi_nf_instance_remove(nf_instance);
break;
case OGS_FSM_EXIT_SIG:
break;
default:
- ogs_error("[%s:%s] Unknown event %s",
- OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ ogs_error("[%s] Unknown event [type:%s event:%s]",
nf_instance->id ? nf_instance->id : "Undefined",
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
ogs_event_get_name(e));
break;
}
@@ -409,9 +399,9 @@ void ogs_sbi_nf_state_exception(ogs_fsm_t *s, ogs_event_t *e)
break;
default:
- ogs_error("[%s:%s] Unknown timer[%s:%d]",
- OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ ogs_error("[%s] Unknown timer[type:%s timer:%s:%d]",
nf_instance->id ? nf_instance->id : "Undefined",
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
ogs_timer_get_name(e->timer_id), e->timer_id);
}
break;
@@ -437,9 +427,9 @@ void ogs_sbi_nf_state_exception(ogs_fsm_t *s, ogs_event_t *e)
break;
default:
- ogs_error("[%s:%s] Unknown event %s",
- OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ ogs_error("[%s] Unknown event [type:%s event:%s]",
nf_instance->id ? nf_instance->id : "Undefined",
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
ogs_event_get_name(e));
break;
}
diff --git a/lib/sbi/nf-sm.h b/lib/sbi/nf-sm.h
index 8873e61bae..c6b44e191c 100644
--- a/lib/sbi/nf-sm.h
+++ b/lib/sbi/nf-sm.h
@@ -29,7 +29,6 @@ extern "C" {
#endif
void ogs_sbi_nf_fsm_init(ogs_sbi_nf_instance_t *nf_instance);
-void ogs_sbi_nf_fsm_tran(ogs_sbi_nf_instance_t *nf_instance, void *state);
void ogs_sbi_nf_fsm_fini(ogs_sbi_nf_instance_t *nf_instance);
void ogs_sbi_nf_state_initial(ogs_fsm_t *s, ogs_event_t *e);
diff --git a/lib/sbi/nghttp2-server.c b/lib/sbi/nghttp2-server.c
index 43074beb99..9fcbd108df 100644
--- a/lib/sbi/nghttp2-server.c
+++ b/lib/sbi/nghttp2-server.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019,2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -39,6 +39,9 @@ static bool server_send_response(
static ogs_sbi_server_t *server_from_stream(ogs_sbi_stream_t *stream);
+static ogs_pool_id_t id_from_stream(ogs_sbi_stream_t *stream);
+static void *stream_find_by_id(ogs_pool_id_t id);
+
const ogs_sbi_server_actions_t ogs_nghttp2_server_actions = {
server_init,
server_final,
@@ -50,6 +53,9 @@ const ogs_sbi_server_actions_t ogs_nghttp2_server_actions = {
server_send_response,
server_from_stream,
+
+ id_from_stream,
+ stream_find_by_id,
};
struct h2_settings {
@@ -81,6 +87,8 @@ typedef struct ogs_sbi_session_s {
typedef struct ogs_sbi_stream_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
+
int32_t stream_id;
ogs_sbi_request_t *request;
bool memory_overflow;
@@ -188,7 +196,9 @@ static int ssl_ctx_set_proto_versions(SSL_CTX *ssl_ctx, int min, int max)
#endif /* OPENSSL_VERSION_NUMBER >= 0x1010000fL */
}
-static SSL_CTX *create_ssl_ctx(const char *key_file, const char *cert_file)
+static SSL_CTX *create_ssl_ctx(
+ const char *key_file, const char *cert_file,
+ const char *sslkeylog_file)
{
SSL_CTX *ssl_ctx;
uint64_t ssl_opts;
@@ -202,6 +212,16 @@ static SSL_CTX *create_ssl_ctx(const char *key_file, const char *cert_file)
return NULL;
}
+ /* Set key log files for each SSL_CTX */
+ if (sslkeylog_file) {
+ /* Ensure app data is set for SSL objects */
+ SSL_CTX_set_app_data(ssl_ctx, sslkeylog_file);
+#if OPENSSL_VERSION_NUMBER >= 0x10101000L
+ /* Set the SSL Key Log callback */
+ SSL_CTX_set_keylog_callback(ssl_ctx, ogs_sbi_keylog_callback);
+#endif
+ }
+
ssl_opts = (SSL_OP_ALL & ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS) |
SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_COMPRESSION |
SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION |
@@ -314,7 +334,8 @@ static int server_start(ogs_sbi_server_t *server,
/* Create SSL CTX */
if (server->scheme == OpenAPI_uri_scheme_https) {
- server->ssl_ctx = create_ssl_ctx(server->private_key, server->cert);
+ server->ssl_ctx = create_ssl_ctx(
+ server->private_key, server->cert, server->sslkeylog);
if (!server->ssl_ctx) {
ogs_error("Cannot create SSL CTX");
return OGS_ERROR;
@@ -360,7 +381,9 @@ static int server_start(ogs_sbi_server_t *server,
SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
verify_callback);
- context = ogs_sbi_server_id_context(server);
+ ogs_assert(server->id >= OGS_MIN_POOL_ID &&
+ server->id <= OGS_MAX_POOL_ID);
+ context = ogs_msprintf("%d", server->id);
if (!context) {
ogs_error("ogs_sbi_server_id_context() failed");
@@ -580,12 +603,7 @@ static bool server_send_rspmem_persistent(
return false;
}
- stream = ogs_pool_cycle(&stream_pool, stream);
- if (!stream) {
- ogs_error("stream has already been removed");
- return true;
- }
-
+ ogs_assert(stream);
sbi_sess = stream->session;
ogs_assert(sbi_sess);
ogs_assert(sbi_sess->session);
@@ -706,17 +724,16 @@ static ogs_sbi_stream_t *stream_add(
ogs_assert(sbi_sess);
- ogs_pool_alloc(&stream_pool, &stream);
+ ogs_pool_id_calloc(&stream_pool, &stream);
if (!stream) {
- ogs_error("ogs_pool_alloc() failed");
+ ogs_error("ogs_pool_id_calloc() failed");
return NULL;
}
- memset(stream, 0, sizeof(ogs_sbi_stream_t));
stream->request = ogs_sbi_request_new();
if (!stream->request) {
ogs_error("ogs_sbi_request_new() failed");
- ogs_pool_free(&stream_pool, stream);
+ ogs_pool_id_free(&stream_pool, stream);
return NULL;
}
@@ -743,7 +760,7 @@ static void stream_remove(ogs_sbi_stream_t *stream)
ogs_assert(stream->request);
ogs_sbi_request_free(stream->request);
- ogs_pool_free(&stream_pool, stream);
+ ogs_pool_id_free(&stream_pool, stream);
}
static void stream_remove_all(ogs_sbi_session_t *sbi_sess)
@@ -756,6 +773,17 @@ static void stream_remove_all(ogs_sbi_session_t *sbi_sess)
stream_remove(stream);
}
+static ogs_pool_id_t id_from_stream(ogs_sbi_stream_t *stream)
+{
+ ogs_assert(stream);
+ return stream->id;
+}
+
+static void *stream_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&stream_pool, id);
+}
+
static ogs_sbi_session_t *session_add(
ogs_sbi_server_t *server, ogs_sock_t *sock)
{
@@ -1169,12 +1197,13 @@ static int on_frame_recv(nghttp2_session *session,
break;
}
- if (server->cb(request, stream) != OGS_OK) {
+ if (server->cb(request,
+ OGS_UINT_TO_POINTER(stream->id)) != OGS_OK) {
ogs_warn("server callback error");
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
- "server callback error", NULL));
+ "server callback error", NULL, NULL));
return 0;
}
diff --git a/lib/sbi/nnrf-build.c b/lib/sbi/nnrf-build.c
index 0259a1deca..84bf5c33b1 100644
--- a/lib/sbi/nnrf-build.c
+++ b/lib/sbi/nnrf-build.c
@@ -61,6 +61,28 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_register(void)
goto end;
}
+ /*
+ * TS29510
+ * 6.1.6.2 Structured data types
+ * 6.1.6.2.2 Type: NFProfile
+ * Table 6.1.6.2.2-1: Definition of type NFProfile
+ *
+ * NF Profile Changes Support Indicator.
+ * See Annex B.
+ *
+ * This IE may be present in the NFRegister or
+ * NFUpdate (NF Profile Complete Replacement)
+ * request and shall be absent in the response.
+ *
+ * true: the NF Service Consumer supports receiving
+ * NF Profile Changes in the response.
+ *
+ * false (default): the NF Service Consumer does not
+ * support receiving NF Profile Changes in the response.
+ */
+ NFProfile->is_nf_profile_changes_support_ind = true;
+ NFProfile->nf_profile_changes_support_ind = true;
+
message.NFProfile = NFProfile;
request = ogs_sbi_build_request(&message);
@@ -146,9 +168,6 @@ OpenAPI_nf_profile_t *ogs_nnrf_nfm_build_nf_profile(
OpenAPI_list_free(PlmnIdList);
}
- NFProfile->is_nf_profile_changes_support_ind = true;
- NFProfile->nf_profile_changes_support_ind = true;
-
if (nf_instance->fqdn)
NFProfile->fqdn = ogs_strdup(nf_instance->fqdn);
@@ -242,12 +261,6 @@ OpenAPI_nf_profile_t *ogs_nnrf_nfm_build_nf_profile(
return NULL;
}
- if (service_map == true) {
- NFProfile->nf_service_list = NFServiceList;
- } else {
- NFProfile->nf_services = NFServiceList;
- }
-
ogs_list_for_each(&nf_instance->nf_service_list, nf_service) {
OpenAPI_nf_service_t *NFService = NULL;
@@ -290,6 +303,16 @@ OpenAPI_nf_profile_t *ogs_nnrf_nfm_build_nf_profile(
}
}
+ if (NFServiceList->count) {
+ if (service_map == true) {
+ NFProfile->nf_service_list = NFServiceList;
+ } else {
+ NFProfile->nf_services = NFServiceList;
+ }
+ }
+ else
+ OpenAPI_list_free(NFServiceList);
+
InfoList = OpenAPI_list_create();
ogs_assert(InfoList);
@@ -1708,11 +1731,7 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_status_update(
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_PATCH;
- message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NNRF_NFM;
- message.h.api.version = (char *)OGS_SBI_API_V1;
- message.h.resource.component[0] =
- (char *)OGS_SBI_RESOURCE_NAME_SUBSCRIPTIONS;
- message.h.resource.component[1] = subscription_data->id;
+ message.h.uri = subscription_data->resource_uri;
message.http.content_type = (char *)OGS_SBI_CONTENT_PATCH_TYPE;
@@ -1722,10 +1741,9 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_status_update(
goto end;
}
- ogs_assert(subscription_data->time.validity_duration);
+ ogs_assert(subscription_data->validity_duration);
validity_time = ogs_sbi_localtime_string(
- ogs_time_now() +
- ogs_time_from_sec(subscription_data->time.validity_duration));
+ ogs_time_now() + subscription_data->validity_duration);
ogs_assert(validity_time);
ValidityItem.op = OpenAPI_patch_operation_replace;
@@ -1767,11 +1785,7 @@ ogs_sbi_request_t *ogs_nnrf_nfm_build_status_unsubscribe(
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_DELETE;
- message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NNRF_NFM;
- message.h.api.version = (char *)OGS_SBI_API_V1;
- message.h.resource.component[0] =
- (char *)OGS_SBI_RESOURCE_NAME_SUBSCRIPTIONS;
- message.h.resource.component[1] = subscription_data->id;
+ message.h.uri = subscription_data->resource_uri;
message.http.custom.callback =
(char *)OGS_SBI_CALLBACK_NNRF_NFMANAGEMENT_NF_STATUS_NOTIFY;
diff --git a/lib/sbi/nnrf-handler.c b/lib/sbi/nnrf-handler.c
index 57f7dedbc9..81c14c1211 100644
--- a/lib/sbi/nnrf-handler.c
+++ b/lib/sbi/nnrf-handler.c
@@ -24,9 +24,11 @@ static void handle_nf_service(
static void handle_smf_info(
ogs_sbi_nf_instance_t *nf_instance, OpenAPI_smf_info_t *SmfInfo);
static void handle_scp_info(
- ogs_sbi_nf_instance_t *nf_instance, OpenAPI_scp_info_t *SeppInfo);
+ ogs_sbi_nf_instance_t *nf_instance, OpenAPI_scp_info_t *ScpInfo);
static void handle_sepp_info(
ogs_sbi_nf_instance_t *nf_instance, OpenAPI_sepp_info_t *SeppInfo);
+static void handle_amf_info(
+ ogs_sbi_nf_instance_t *nf_instance, OpenAPI_amf_info_t *AmfInfo);
void ogs_nnrf_nfm_handle_nf_register(
ogs_sbi_nf_instance_t *nf_instance, ogs_sbi_message_t *recvmsg)
@@ -52,6 +54,15 @@ void ogs_nnrf_nfm_handle_nf_register(
OpenAPI_list_for_each(NFProfile->plmn_list, node) {
OpenAPI_plmn_id_t *PlmnId = node->data;
if (PlmnId) {
+ if (ogs_local_conf()->num_of_serving_plmn_id >=
+ OGS_ARRAY_SIZE(ogs_local_conf()->serving_plmn_id)) {
+ ogs_error("OVERFLOW NFProfile->plmn_list [%d:%d:%d]",
+ ogs_local_conf()->num_of_serving_plmn_id,
+ OGS_MAX_NUM_OF_PLMN,
+ (int)OGS_ARRAY_SIZE(
+ ogs_local_conf()->serving_plmn_id));
+ break;
+ }
ogs_sbi_parse_plmn_id(
&ogs_local_conf()->serving_plmn_id[
ogs_local_conf()->num_of_serving_plmn_id], PlmnId);
@@ -94,6 +105,13 @@ void ogs_nnrf_nfm_handle_nf_profile(
OpenAPI_list_for_each(NFProfile->plmn_list, node) {
OpenAPI_plmn_id_t *PlmnId = node->data;
if (PlmnId) {
+ if (nf_instance->num_of_plmn_id >=
+ OGS_ARRAY_SIZE(nf_instance->plmn_id)) {
+ ogs_error("OVERFLOW NFProfile->plmn_list [%d:%d:%d]",
+ nf_instance->num_of_plmn_id, OGS_MAX_NUM_OF_PLMN,
+ (int)OGS_ARRAY_SIZE(nf_instance->plmn_id));
+ break;
+ }
ogs_sbi_parse_plmn_id(
&nf_instance->plmn_id[nf_instance->num_of_plmn_id], PlmnId);
nf_instance->num_of_plmn_id++;
@@ -256,7 +274,14 @@ void ogs_nnrf_nfm_handle_nf_profile(
if (SmfInfoMap && SmfInfoMap->value)
handle_smf_info(nf_instance, SmfInfoMap->value);
}
+ if (NFProfile->amf_info)
+ handle_amf_info(nf_instance, NFProfile->amf_info);
+ OpenAPI_list_for_each(NFProfile->amf_info_list, node) {
+ OpenAPI_map_t *AmfInfoMap = node->data;
+ if (AmfInfoMap && AmfInfoMap->value)
+ handle_amf_info(nf_instance, AmfInfoMap->value);
+ }
if (NFProfile->scp_info)
handle_scp_info(nf_instance, NFProfile->scp_info);
if (NFProfile->sepp_info)
@@ -447,7 +472,7 @@ static void handle_smf_info(
nr_tai = &nf_info->smf.nr_tai[nf_info->smf.num_of_nr_tai];
ogs_assert(nr_tai);
ogs_sbi_parse_plmn_id(&nr_tai->plmn_id, TaiItem->plmn_id);
- nr_tai->tac = ogs_uint24_from_string(TaiItem->tac);
+ nr_tai->tac = ogs_uint24_from_string_hexadecimal(TaiItem->tac);
nf_info->smf.num_of_nr_tai++;
}
@@ -458,8 +483,12 @@ static void handle_smf_info(
TaiRangeItem = node->data;
if (TaiRangeItem && TaiRangeItem->plmn_id &&
TaiRangeItem->tac_range_list) {
- ogs_assert(nf_info->smf.num_of_nr_tai_range <
- OGS_MAX_NUM_OF_TAI);
+
+ if (nf_info->smf.num_of_nr_tai_range >= OGS_MAX_NUM_OF_TAI) {
+ ogs_error("OVERFLOW TaiRangeItem [%d:%d]",
+ nf_info->smf.num_of_nr_tai_range, OGS_MAX_NUM_OF_TAI);
+ break;
+ }
ogs_sbi_parse_plmn_id(
&nf_info->smf.nr_tai_range
@@ -478,11 +507,13 @@ static void handle_smf_info(
nf_info->smf.nr_tai_range
[nf_info->smf.num_of_nr_tai_range].
start[tac_index] =
- ogs_uint24_from_string(TacRangeItem->start);
+ ogs_uint24_from_string_hexadecimal(
+ TacRangeItem->start);
nf_info->smf.nr_tai_range
[nf_info->smf.num_of_nr_tai_range].
end[tac_index] =
- ogs_uint24_from_string(TacRangeItem->end);
+ ogs_uint24_from_string_hexadecimal(
+ TacRangeItem->end);
nf_info->smf.nr_tai_range
[nf_info->smf.num_of_nr_tai_range].
@@ -653,37 +684,160 @@ static void handle_sepp_info(
}
}
+static void handle_amf_info(
+ ogs_sbi_nf_instance_t *nf_instance, OpenAPI_amf_info_t *AmfInfo)
+{
+ ogs_sbi_nf_info_t *nf_info = NULL;
+ OpenAPI_list_t *GuamiList = NULL;
+ OpenAPI_guami_t *GuamiAmfInfoItem = NULL;
+ OpenAPI_list_t *TaiList = NULL;
+ OpenAPI_tai_t *TaiItem = NULL;
+ OpenAPI_list_t *TaiRangeList = NULL;
+ OpenAPI_tai_range_t *TaiRangeItem = NULL;
+ OpenAPI_list_t *TacRangeList = NULL;
+ OpenAPI_tac_range_t *TacRangeItem = NULL;
+ OpenAPI_lnode_t *node = NULL, *node2 = NULL;
+
+ ogs_assert(nf_instance);
+ ogs_assert(AmfInfo);
+
+ nf_info = ogs_sbi_nf_info_add(
+ &nf_instance->nf_info_list, OpenAPI_nf_type_AMF);
+ ogs_assert(nf_info);
+
+ nf_info->amf.amf_set_id = ogs_uint64_from_string_hexadecimal(
+ AmfInfo->amf_set_id);
+ nf_info->amf.amf_region_id = ogs_uint64_from_string_hexadecimal(
+ AmfInfo->amf_region_id);
+ GuamiList = AmfInfo->guami_list;
+
+ OpenAPI_list_for_each(GuamiList, node) {
+ GuamiAmfInfoItem = node->data;
+ if (GuamiAmfInfoItem) {
+ ogs_assert(nf_info->amf.num_of_guami < OGS_MAX_NUM_OF_SERVED_GUAMI);
+
+ if (GuamiAmfInfoItem->amf_id && GuamiAmfInfoItem->plmn_id &&
+ GuamiAmfInfoItem->plmn_id->mnc &&
+ GuamiAmfInfoItem->plmn_id->mcc) {
+
+ ogs_sbi_parse_guami(
+ &nf_info->amf.guami[nf_info->amf.num_of_guami],
+ GuamiAmfInfoItem);
+ nf_info->amf.num_of_guami++;
+ }
+ }
+ }
+
+ TaiList = AmfInfo->tai_list;
+ OpenAPI_list_for_each(TaiList, node) {
+ TaiItem = node->data;
+ if (TaiItem && TaiItem->plmn_id && TaiItem->tac) {
+ ogs_5gs_tai_t *nr_tai = NULL;
+
+ if (nf_info->amf.num_of_nr_tai >= OGS_MAX_NUM_OF_TAI) {
+ ogs_error("OVERFLOW TaiItem [%d:%d]",
+ nf_info->amf.num_of_nr_tai, OGS_MAX_NUM_OF_TAI);
+ break;
+ }
+
+ nr_tai = &nf_info->amf.nr_tai[nf_info->amf.num_of_nr_tai];
+ ogs_assert(nr_tai);
+ ogs_sbi_parse_plmn_id(&nr_tai->plmn_id, TaiItem->plmn_id);
+ nr_tai->tac = ogs_uint24_from_string_hexadecimal(TaiItem->tac);
+ nf_info->amf.num_of_nr_tai++;
+ }
+ }
+
+ TaiRangeList = AmfInfo->tai_range_list;
+ OpenAPI_list_for_each(TaiRangeList, node) {
+ TaiRangeItem = node->data;
+ if (TaiRangeItem && TaiRangeItem->plmn_id &&
+ TaiRangeItem->tac_range_list) {
+ ogs_assert(nf_info->amf.num_of_nr_tai_range <
+ OGS_MAX_NUM_OF_TAI);
+
+ if (nf_info->amf.num_of_nr_tai_range >= OGS_MAX_NUM_OF_TAI) {
+ ogs_error("OVERFLOW TaiRangeItem [%d:%d]",
+ nf_info->amf.num_of_nr_tai_range, OGS_MAX_NUM_OF_TAI);
+ break;
+ }
+
+ ogs_sbi_parse_plmn_id(
+ &nf_info->amf.nr_tai_range
+ [nf_info->amf.num_of_nr_tai_range].plmn_id,
+ TaiRangeItem->plmn_id);
+
+ TacRangeList = TaiRangeItem->tac_range_list;
+ OpenAPI_list_for_each(TacRangeList, node2) {
+ TacRangeItem = node2->data;
+ if (TacRangeItem &&
+ TacRangeItem->start && TacRangeItem->end) {
+ int tac_index = nf_info->amf.nr_tai_range
+ [nf_info->amf.num_of_nr_tai_range].num_of_tac_range;
+ ogs_assert(tac_index < OGS_MAX_NUM_OF_TAI);
+
+ nf_info->amf.nr_tai_range
+ [nf_info->amf.num_of_nr_tai_range].start[tac_index] =
+ ogs_uint24_from_string_hexadecimal(
+ TacRangeItem->start);
+ nf_info->amf.nr_tai_range
+ [nf_info->amf.num_of_nr_tai_range].end[tac_index] =
+ ogs_uint24_from_string_hexadecimal(
+ TacRangeItem->end);
+
+ nf_info->amf.nr_tai_range
+ [nf_info->amf.num_of_nr_tai_range].num_of_tac_range++;
+ }
+ }
+ nf_info->amf.num_of_nr_tai_range++;
+ }
+ }
+}
+
static void handle_validity_time(
ogs_sbi_subscription_data_t *subscription_data,
char *validity_time, const char *action)
{
ogs_time_t time, validity, patch;
+ char *validity_time_string = NULL;
- ogs_assert(validity_time);
ogs_assert(subscription_data);
ogs_assert(action);
- if (ogs_sbi_time_from_string(&time, validity_time) == false) {
- ogs_error("[%s] Subscription %s until %s [parser error]",
- subscription_data->id, action, validity_time);
- return;
- }
-
- validity = time - ogs_time_now();
- if (validity < 0) {
- ogs_error("[%s] Subscription %s until %s [validity:%d.%06d]",
- subscription_data->id, action, validity_time,
- (int)ogs_time_sec(validity), (int)ogs_time_usec(validity));
- return;
- }
-
/*
- * Store subscription_data->time.validity_duration to derive NRF validity.
- * It will be used in ogs_nnrf_nfm_build_status_update().
+ * If there is a validity_time, then the NRF is updating
+ * the validity_time by sending HTTP_STATUS to 200.
+ * Therefore, change subscription_data->valdity_duration
+ * according to this value.
*
- * So, you should not remove the following lines.
+ * If validity_time is NULL, NRF sent an HTTP_STATUS of 204 (No content).
+ * In this case, use the existing subscription_data->validity_duration.
*/
- subscription_data->time.validity_duration = OGS_SBI_VALIDITY_SEC(validity);
+ if (validity_time) {
+ if (ogs_sbi_time_from_string(&time, validity_time) == false) {
+ ogs_error("[%s] Subscription %s until %s [parser error]",
+ subscription_data->id, action, validity_time);
+ return;
+ }
+
+ validity = time - ogs_time_now();
+ if (validity < 0) {
+ ogs_error("[%s] Subscription %s until %s [validity:%d.%06d]",
+ subscription_data->id, action, validity_time,
+ (int)ogs_time_sec(validity), (int)ogs_time_usec(validity));
+ return;
+ }
+
+ /*
+ * Store subscription_data->validity_duration to derive NRF validity.
+ * It will be used in ogs_nnrf_nfm_build_status_update().
+ *
+ * So, you should not remove the following lines.
+ */
+ subscription_data->validity_duration =
+ /* Normalize seconds */
+ ogs_time_from_sec(ogs_time_to_sec(validity));
+ }
if (!subscription_data->t_validity) {
subscription_data->t_validity =
@@ -691,13 +845,14 @@ static void handle_validity_time(
ogs_timer_subscription_validity, subscription_data);
ogs_assert(subscription_data->t_validity);
}
- ogs_timer_start(subscription_data->t_validity, validity);
+ ogs_timer_start(subscription_data->t_validity,
+ subscription_data->validity_duration);
/*
* PATCH request will be sent before VALIDITY is expired.
*/
#define PATCH_TIME_FROM_VALIDITY(x) ((x) / 2)
- patch = PATCH_TIME_FROM_VALIDITY(validity);
+ patch = PATCH_TIME_FROM_VALIDITY(subscription_data->validity_duration);
if (!subscription_data->t_patch) {
subscription_data->t_patch =
@@ -707,12 +862,24 @@ static void handle_validity_time(
}
ogs_timer_start(subscription_data->t_patch, patch);
+ if (validity_time) {
+ validity_time_string = ogs_strdup(validity_time);
+ ogs_assert(validity_time_string);
+ } else {
+ validity_time_string = ogs_sbi_localtime_string(
+ ogs_time_now() + subscription_data->validity_duration);
+ ogs_assert(validity_time_string);
+ }
+
ogs_info("[%s] Subscription %s until %s "
- "[duration:%d,validity:%d.%06d,patch:%d.%06d]",
- subscription_data->id, action, validity_time,
- subscription_data->time.validity_duration,
- (int)ogs_time_sec(validity), (int)ogs_time_usec(validity),
+ "[duration:%lld,validity:%d.%06d,patch:%d.%06d]",
+ subscription_data->id, action, validity_time_string,
+ (long long)subscription_data->validity_duration,
+ (int)ogs_time_sec(subscription_data->validity_duration),
+ (int)ogs_time_usec(subscription_data->validity_duration),
(int)ogs_time_sec(patch), (int)ogs_time_usec(patch));
+
+ ogs_free(validity_time_string);
}
void ogs_nnrf_nfm_handle_nf_status_subscribe(
@@ -721,6 +888,17 @@ void ogs_nnrf_nfm_handle_nf_status_subscribe(
{
OpenAPI_subscription_data_t *SubscriptionData = NULL;
+ int rv;
+ ogs_sbi_message_t message;
+ ogs_sbi_header_t header;
+
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+
ogs_assert(recvmsg);
ogs_assert(subscription_data);
@@ -730,49 +908,68 @@ void ogs_nnrf_nfm_handle_nf_status_subscribe(
return;
}
- if (recvmsg->http.location) {
- int rv;
- ogs_sbi_message_t message;
- ogs_sbi_header_t header;
+ if (!recvmsg->http.location) {
+ ogs_error("No http.location");
+ return;
+ }
- memset(&header, 0, sizeof(header));
- header.uri = recvmsg->http.location;
+ memset(&header, 0, sizeof(header));
+ header.uri = recvmsg->http.location;
- rv = ogs_sbi_parse_header(&message, &header);
- if (rv != OGS_OK) {
- ogs_error("Cannot parse http.location [%s]",
- recvmsg->http.location);
- return;
- }
+ rv = ogs_sbi_parse_header(&message, &header);
+ if (rv != OGS_OK) {
+ ogs_error("Cannot parse http.location [%s]",
+ recvmsg->http.location);
+ return;
+ }
+
+ if (!message.h.resource.component[1]) {
+ ogs_error("No Subscription ID [%s]", recvmsg->http.location);
+ ogs_sbi_header_free(&header);
+ return;
+ }
+
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, header.uri);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ ogs_error("Invalid URI [%s]", header.uri);
+ ogs_sbi_header_free(&header);
+ return;
+ }
+
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("%s: ogs_sbi_client_add()", OGS_FUNC);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_error("%s: ogs_sbi_client_add() failed", OGS_FUNC);
- if (!message.h.resource.component[1]) {
- ogs_error("No Subscription ID [%s]", recvmsg->http.location);
ogs_sbi_header_free(&header);
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
return;
}
+ }
+ OGS_SBI_SETUP_CLIENT(subscription_data, client);
- ogs_sbi_subscription_data_set_id(
- subscription_data, message.h.resource.component[1]);
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
- ogs_sbi_header_free(&header);
+ ogs_sbi_subscription_data_set_resource_uri(
+ subscription_data, header.uri);
+ ogs_sbi_subscription_data_set_id(
+ subscription_data, message.h.resource.component[1]);
- } else if (SubscriptionData->subscription_id) {
- /*
- * For compatibility with v2.5.x and lower versions
- *
- * Deprecated : It will be removed soon.
- */
- ogs_sbi_subscription_data_set_id(
- subscription_data, SubscriptionData->subscription_id);
- } else {
- ogs_error("No Subscription ID");
- return;
- }
+ ogs_sbi_header_free(&header);
/* SBI Features */
if (SubscriptionData->nrf_supported_features) {
subscription_data->nrf_supported_features =
- ogs_uint64_from_string(SubscriptionData->nrf_supported_features);
+ ogs_uint64_from_string_hexadecimal(
+ SubscriptionData->nrf_supported_features);
} else {
subscription_data->nrf_supported_features = 0;
}
@@ -788,20 +985,37 @@ void ogs_nnrf_nfm_handle_nf_status_update(
ogs_sbi_message_t *recvmsg)
{
OpenAPI_subscription_data_t *SubscriptionData = NULL;
+ char *validity_time = NULL;
+ const char *action = NULL;
ogs_assert(recvmsg);
ogs_assert(subscription_data);
- SubscriptionData = recvmsg->SubscriptionData;
- if (!SubscriptionData) {
- ogs_error("No SubscriptionData");
- return;
+ if (recvmsg->res_status == OGS_SBI_HTTP_STATUS_OK) {
+ SubscriptionData = recvmsg->SubscriptionData;
+ if (!SubscriptionData) {
+ ogs_error("No SubscriptionData");
+ return;
+ }
+ if (!SubscriptionData->validity_time) {
+ ogs_error("No validityTime");
+ return;
+ }
+
+ validity_time = SubscriptionData->validity_time;
+ action = "updated(200 OK)";
+ } else if (recvmsg->res_status == OGS_SBI_HTTP_STATUS_NO_CONTENT) {
+ /* No valdityTime. Re-use current subscription_data->valdity_duration */
+ action = "updated(204 No Content)";
+ } else {
+ ogs_fatal("[%s] HTTP response error [%d]",
+ subscription_data->id ? subscription_data->id : "Unknown",
+ recvmsg->res_status);
+ ogs_assert_if_reached();
}
- /* Subscription Validity Time */
- if (SubscriptionData->validity_time)
- handle_validity_time(
- subscription_data, SubscriptionData->validity_time, "updated");
+ /* Update Subscription Validity Time */
+ handle_validity_time(subscription_data, validity_time, action);
}
bool ogs_nnrf_nfm_handle_nf_status_notify(
@@ -824,7 +1038,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_error("No NotificationData");
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NotificationData", NULL));
+ recvmsg, "No NotificationData", NULL, NULL));
return false;
}
@@ -832,7 +1046,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_error("No nfInstanceUri");
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No nfInstanceUri", NULL));
+ recvmsg, "No nfInstanceUri", NULL, NULL));
return false;
}
@@ -844,7 +1058,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_error("Cannot parse nfInstanceUri [%s]", header.uri);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "Cannot parse nfInstanceUri", header.uri));
+ recvmsg, "Cannot parse nfInstanceUri", header.uri, NULL));
return false;
}
@@ -852,7 +1066,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_error("No nfInstanceId [%s]", header.uri);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "Cannot parse nfInstanceUri", header.uri));
+ recvmsg, "Cannot parse nfInstanceUri", header.uri, NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -863,7 +1077,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_FORBIDDEN,
recvmsg, "The notification is not allowed",
- message.h.resource.component[1]));
+ message.h.resource.component[1], NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -879,7 +1093,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile", NULL));
+ recvmsg, "No NFProfile", NULL, NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -889,7 +1103,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile.NFInstanceId", NULL));
+ recvmsg, "No NFProfile.NFInstanceId", NULL, NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -899,7 +1113,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile.NFType", NULL));
+ recvmsg, "No NFProfile.NFType", NULL, NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -909,7 +1123,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile.NFStatus", NULL));
+ recvmsg, "No NFProfile.NFStatus", NULL, NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -923,24 +1137,23 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
nf_instance, message.h.resource.component[1]);
ogs_sbi_nf_fsm_init(nf_instance);
- ogs_info("(NRF-notify) NF registered [%s:%d]",
- nf_instance->id, nf_instance->reference_count);
+ ogs_info("[%s] (NRF-notify) NF registered", nf_instance->id);
} else {
- ogs_warn("[%s] (NRF-notify) NF has already been added [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
-
- ogs_assert(OGS_FSM_STATE(&nf_instance->sm));
- ogs_sbi_nf_fsm_tran(nf_instance, ogs_sbi_nf_state_registered);
+ ogs_warn("[%s] (NRF-notify) NF has already been added [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
+ if (!OGS_FSM_CHECK(&nf_instance->sm, ogs_sbi_nf_state_registered)) {
+ ogs_error("[%s] (NRF-notify) NF invalid state [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
+ }
}
ogs_nnrf_nfm_handle_nf_profile(nf_instance, NFProfile);
- ogs_info("[%s] (NRF-notify) NF Profile updated [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
+ ogs_info("[%s] (NRF-notify) NF Profile updated [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
ogs_sbi_client_associate(nf_instance);
@@ -956,34 +1169,19 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
OpenAPI_notification_event_type_NF_DEREGISTERED) {
nf_instance = ogs_sbi_nf_instance_find(message.h.resource.component[1]);
if (nf_instance) {
- if (OGS_OBJECT_IS_REF(nf_instance)) {
- /* There are references to other contexts. */
- ogs_warn("[%s] (NRF-notify) NF was referenced "
- "in other contexts [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) :
- "NULL",
- nf_instance->id, nf_instance->reference_count);
-
- ogs_assert(OGS_FSM_STATE(&nf_instance->sm));
- ogs_sbi_nf_fsm_tran(
- nf_instance, ogs_sbi_nf_state_de_registered);
- } else {
- ogs_info("[%s] (NRF-notify) NF_DEREGISTERED event [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) :
- "NULL",
- nf_instance->id, nf_instance->reference_count);
- ogs_sbi_nf_fsm_fini((nf_instance));
- ogs_sbi_nf_instance_remove(nf_instance);
- }
+ ogs_info("[%s] (NRF-notify) NF_DEREGISTERED event [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
+ ogs_sbi_nf_fsm_fini(nf_instance);
+ ogs_sbi_nf_instance_remove(nf_instance);
} else {
ogs_warn("[%s] (NRF-notify) Not found",
message.h.resource.component[1]);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
- recvmsg, "Not found", message.h.resource.component[1]));
+ recvmsg, "Not found", message.h.resource.component[1],
+ NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -995,7 +1193,7 @@ bool ogs_nnrf_nfm_handle_nf_status_notify(
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
recvmsg, "Not supported event",
- eventstr ? eventstr : "Unknown"));
+ eventstr ? eventstr : "Unknown", NULL));
ogs_sbi_header_free(&header);
return false;
}
@@ -1051,18 +1249,18 @@ void ogs_nnrf_disc_handle_nf_discover_search_result(
ogs_sbi_nf_instance_set_id(nf_instance, NFProfile->nf_instance_id);
ogs_sbi_nf_fsm_init(nf_instance);
- ogs_info("[%s] (NRF-discover) NF registered [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
+ ogs_info("[%s] (NRF-discover) NF registered [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
} else {
- ogs_warn("[%s] (NRF-discover) NF has already been added [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
-
- ogs_assert(OGS_FSM_STATE(&nf_instance->sm));
- ogs_sbi_nf_fsm_tran(nf_instance, ogs_sbi_nf_state_registered);
+ ogs_warn("[%s] (NRF-discover) NF has already been added [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
+ if (!OGS_FSM_CHECK(&nf_instance->sm, ogs_sbi_nf_state_registered)) {
+ ogs_error("[%s] (NRF-notify) NF invalid state [type:%s]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type));
+ }
}
if (NF_INSTANCE_ID_IS_OTHERS(nf_instance->id)) {
@@ -1089,15 +1287,18 @@ void ogs_nnrf_disc_handle_nf_discover_search_result(
ogs_time_from_sec(nf_instance->time.validity_duration));
} else
- ogs_warn("[%s] NF Instance validity-time should not 0 [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
-
- ogs_info("[%s] (NF-discover) NF Profile updated [%s:%d]",
+ ogs_warn("[%s] NF Instance validity-time should not 0 "
+ "[type:%s]",
+ nf_instance->id,
nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
+ OpenAPI_nf_type_ToString(nf_instance->nf_type) :
+ "NULL");
+
+ ogs_info("[%s] (NF-discover) NF Profile updated "
+ "[type:%s validity:%ds]",
+ nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ nf_instance->time.validity_duration);
}
}
}
diff --git a/lib/sbi/nnrf-path.c b/lib/sbi/nnrf-path.c
index 957f633e20..3ecf5ba7e3 100644
--- a/lib/sbi/nnrf-path.c
+++ b/lib/sbi/nnrf-path.c
@@ -32,8 +32,9 @@ bool ogs_nnrf_nfm_send_nf_register(ogs_sbi_nf_instance_t *nf_instance)
return false;
}
- rc = ogs_sbi_send_notification_request(
- OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL, request, nf_instance);
+ rc = ogs_sbi_send_request_to_nrf(
+ OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL,
+ ogs_sbi_client_handler, request, nf_instance);
ogs_expect(rc == true);
ogs_sbi_request_free(request);
@@ -54,8 +55,9 @@ bool ogs_nnrf_nfm_send_nf_update(ogs_sbi_nf_instance_t *nf_instance)
return false;
}
- rc = ogs_sbi_send_notification_request(
- OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL, request, nf_instance);
+ rc = ogs_sbi_send_request_to_nrf(
+ OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL,
+ ogs_sbi_client_handler, request, nf_instance);
ogs_expect(rc == true);
ogs_sbi_request_free(request);
@@ -76,8 +78,9 @@ bool ogs_nnrf_nfm_send_nf_de_register(ogs_sbi_nf_instance_t *nf_instance)
return false;
}
- rc = ogs_sbi_send_notification_request(
- OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL, request, nf_instance);
+ rc = ogs_sbi_send_request_to_nrf(
+ OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL,
+ ogs_sbi_client_handler, request, nf_instance);
ogs_expect(rc == true);
ogs_sbi_request_free(request);
@@ -120,8 +123,9 @@ bool ogs_nnrf_nfm_send_nf_status_subscribe(
return false;
}
- rc = ogs_sbi_send_notification_request(
- OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL, request, subscription_data);
+ rc = ogs_sbi_send_request_to_nrf(
+ OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL,
+ ogs_sbi_client_handler, request, subscription_data);
ogs_expect(rc == true);
ogs_sbi_request_free(request);
@@ -143,8 +147,9 @@ bool ogs_nnrf_nfm_send_nf_status_update(
return false;
}
- rc = ogs_sbi_send_notification_request(
- OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL, request, subscription_data);
+ rc = ogs_sbi_send_request_to_nrf(
+ OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL,
+ ogs_sbi_client_handler, request, subscription_data);
ogs_expect(rc == true);
ogs_sbi_request_free(request);
@@ -166,8 +171,9 @@ bool ogs_nnrf_nfm_send_nf_status_unsubscribe(
return false;
}
- rc = ogs_sbi_send_notification_request(
- OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL, request, subscription_data);
+ rc = ogs_sbi_send_request_to_nrf(
+ OGS_SBI_SERVICE_TYPE_NNRF_NFM, NULL,
+ ogs_sbi_client_handler, request, subscription_data);
ogs_expect(rc == true);
ogs_sbi_request_free(request);
diff --git a/lib/sbi/ogs-sbi.h b/lib/sbi/ogs-sbi.h
index cafa2b7283..14adc28c38 100644
--- a/lib/sbi/ogs-sbi.h
+++ b/lib/sbi/ogs-sbi.h
@@ -84,6 +84,10 @@
#include "model/sec_negotiate_rsp_data.h"
#include "model/patch_item.h"
#include "model/ue_authentication_ctx.h"
+#include "model/ue_context_transfer_req_data.h"
+#include "model/ue_context_transfer_rsp_data.h"
+#include "model/ue_reg_status_update_req_data.h"
+#include "model/ue_reg_status_update_rsp_data.h"
#include "custom/links.h"
diff --git a/lib/sbi/path.c b/lib/sbi/path.c
index b4451110bd..bccb32979c 100644
--- a/lib/sbi/path.c
+++ b/lib/sbi/path.c
@@ -90,6 +90,7 @@ static int client_discover_cb(
ogs_event_t *e = NULL;
ogs_sbi_xact_t *xact = NULL;
+ ogs_pool_id_t xact_id = 0;
ogs_sbi_object_t *sbi_object = NULL;
ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
ogs_sbi_discovery_option_t *discovery_option = NULL;
@@ -99,10 +100,10 @@ static int client_discover_cb(
ogs_hash_index_t *hi = NULL;
char *producer_id = NULL;
- xact = data;
- ogs_assert(xact);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
- xact = ogs_sbi_xact_cycle(xact);
+ xact = ogs_sbi_xact_find_by_id(xact_id);
if (!xact) {
ogs_error("SBI transaction has already been removed");
if (response)
@@ -208,18 +209,19 @@ static int client_discover_cb(
ogs_sbi_nf_fsm_init(nf_instance);
- ogs_info("[%s] (SCP-discover) NF registered [%s:%d]",
+ ogs_info("[%s] (SCP-discover) NF registered [%s]",
nf_instance->nf_type ?
OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
+ nf_instance->id);
} else {
- ogs_warn("[%s] (SCP-discover) NF has already been added [%s:%d]",
- nf_instance->nf_type ?
- OpenAPI_nf_type_ToString(nf_instance->nf_type) : "NULL",
- nf_instance->id, nf_instance->reference_count);
-
- ogs_assert(OGS_FSM_STATE(&nf_instance->sm));
- ogs_sbi_nf_fsm_tran(nf_instance, ogs_sbi_nf_state_registered);
+ ogs_warn("[%s] (SCP-discover) NF has already been added [%s]",
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ nf_instance->id);
+ if (!OGS_FSM_CHECK(&nf_instance->sm, ogs_sbi_nf_state_registered)) {
+ ogs_error("[%s] (SCP-discover) NF invalid state [%s]",
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ nf_instance->id);
+ }
}
OGS_SBI_SETUP_NF_INSTANCE(
@@ -271,20 +273,26 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
discovery_option = xact->discovery_option;
/* SCP Availability */
- if (ogs_sbi_self()->discovery_config.delegated ==
- OGS_SBI_DISCOVERY_DELEGATED_AUTO) {
+ if (ogs_sbi_self()->client_delegated_config.nrf.disc ==
+ OGS_SBI_CLIENT_DELEGATED_AUTO) {
scp_client = NF_INSTANCE_CLIENT(ogs_sbi_self()->scp_instance);
- } else if (ogs_sbi_self()->discovery_config.delegated ==
- OGS_SBI_DISCOVERY_DELEGATED_YES) {
+ } else if (ogs_sbi_self()->client_delegated_config.nrf.disc ==
+ OGS_SBI_CLIENT_DELEGATED_YES) {
scp_client = NF_INSTANCE_CLIENT(ogs_sbi_self()->scp_instance);
ogs_assert(scp_client);
}
/* Target NF-Instance */
- nf_instance = sbi_object->service_type_array[service_type].nf_instance;
+ nf_instance = OGS_SBI_GET_NF_INSTANCE(
+ sbi_object->service_type_array[service_type]);
+ ogs_debug("OGS_SBI_GET_NF_INSTANCE [nf_instance:%p,service_name:%s]",
+ nf_instance, ogs_sbi_service_type_to_name(service_type));
if (!nf_instance) {
nf_instance = ogs_sbi_nf_instance_find_by_discovery_param(
target_nf_type, requester_nf_type, discovery_option);
+ ogs_debug("ogs_sbi_nf_instance_find_by_discovery_param() "
+ "[nf_instance:%p,service_name:%s]",
+ nf_instance, ogs_sbi_service_type_to_name(service_type));
if (nf_instance)
OGS_SBI_SETUP_NF_INSTANCE(
sbi_object->service_type_array[service_type], nf_instance);
@@ -313,6 +321,11 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
ogs_free(fqdn);
ogs_freeaddrinfo(addr);
ogs_freeaddrinfo(addr6);
+
+ if (!client) {
+ ogs_fatal("No Client : [%s]", request->h.uri);
+ ogs_assert_if_reached();
+ }
}
if (scp_client) {
@@ -330,13 +343,15 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
apiroot = ogs_sbi_client_apiroot(client);
ogs_assert(apiroot);
+ ogs_debug("apiroot [%s]", apiroot);
ogs_sbi_header_set(request->http.headers,
OGS_SBI_CUSTOM_TARGET_APIROOT, apiroot);
ogs_free(apiroot);
rc = ogs_sbi_client_send_via_scp_or_sepp(
- scp_client, ogs_sbi_client_handler, request, xact);
+ scp_client, ogs_sbi_client_handler, request,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_expect(rc == true);
return (rc == true) ? OGS_OK : OGS_ERROR;
@@ -348,6 +363,8 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
*/
if (discovery_option &&
discovery_option->target_nf_instance_id) {
+ ogs_debug("target_nf_instance_id [%s]",
+ discovery_option->target_nf_instance_id);
ogs_sbi_header_set(request->http.headers,
OGS_SBI_CUSTOM_DISCOVERY_TARGET_NF_INSTANCE_ID,
discovery_option->target_nf_instance_id);
@@ -355,6 +372,7 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
ogs_sbi_header_set(request->http.headers,
OGS_SBI_CUSTOM_DISCOVERY_TARGET_NF_INSTANCE_ID,
nf_instance->id);
+ ogs_debug("nf_instance->id [%s]", nf_instance->id);
}
if (discovery_option && discovery_option->num_of_snssais) {
@@ -366,6 +384,7 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
if (v) {
char *encoded = ogs_sbi_url_encode(v);
ogs_expect(encoded);
+ ogs_debug("snssai [%s]", v);
if (encoded) {
/*
@@ -392,6 +411,7 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
}
if (discovery_option && discovery_option->dnn) {
+ ogs_debug("dnn [%s]", discovery_option->dnn);
ogs_sbi_header_set(request->http.headers,
OGS_SBI_CUSTOM_DISCOVERY_DNN, discovery_option->dnn);
}
@@ -401,9 +421,11 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
char *v = ogs_sbi_discovery_option_build_tai(discovery_option);
ogs_expect(v);
+
if (v) {
char *encoded = ogs_sbi_url_encode(v);
ogs_expect(encoded);
+ ogs_debug("tai [%s]", v);
if (encoded) {
ogs_sbi_header_set(request->http.headers,
@@ -422,6 +444,34 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
discovery_option->tai.tac.v);
}
+ if (discovery_option && discovery_option->guami_presence) {
+ bool rc = false;
+ char *v = ogs_sbi_discovery_option_build_guami(discovery_option);
+ ogs_expect(v);
+
+ if (v) {
+ char *encoded = ogs_sbi_url_encode(v);
+ ogs_expect(encoded);
+ ogs_debug("guami [%s]", v);
+
+ if (encoded) {
+ ogs_sbi_header_set(request->http.headers,
+ OGS_SBI_CUSTOM_DISCOVERY_GUAMI, encoded);
+ ogs_free(encoded);
+
+ rc = true;
+ }
+ ogs_free(v);
+ }
+
+ if (rc == false)
+ ogs_error("build failed: guami[PLMN_ID:%06x,AMF_ID:%x]",
+ ogs_plmn_id_hexdump(
+ &discovery_option->guami.plmn_id),
+ ogs_amf_id_hexdump(
+ &discovery_option->guami.amf_id));
+ }
+
if (discovery_option &&
discovery_option->requester_features) {
char *v = ogs_uint64_to_string(
@@ -438,7 +488,8 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
}
rc = ogs_sbi_client_send_via_scp_or_sepp(
- scp_client, client_discover_cb, request, xact);
+ scp_client, client_discover_cb, request,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_expect(rc == true);
return (rc == true) ? OGS_OK : OGS_ERROR;
}
@@ -450,7 +501,8 @@ int ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact)
/* If `client` instance is available, use direct communication */
rc = ogs_sbi_send_request_to_client(
- client, ogs_sbi_client_handler, request, xact);
+ client, ogs_sbi_client_handler, request,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_expect(rc == true);
return (rc == true) ? OGS_OK : OGS_ERROR;
@@ -510,7 +562,8 @@ int ogs_sbi_discover_only(ogs_sbi_xact_t *xact)
}
rc = ogs_sbi_client_send_request(
- client, ogs_sbi_client_handler, request, xact);
+ client, ogs_sbi_client_handler, request,
+ OGS_UINT_TO_POINTER(xact->id));
ogs_expect(rc == true);
ogs_sbi_request_free(request);
@@ -632,7 +685,8 @@ bool ogs_sbi_send_request_to_nf_instance(
}
rc = ogs_sbi_client_send_request(
- nrf_client, sepp_discover_handler, nrf_request, xact);
+ nrf_client, sepp_discover_handler, nrf_request,
+ OGS_UINT_TO_POINTER(xact->id));
if (rc == false) {
ogs_error("ogs_sbi_client_send_request() failed");
ogs_sbi_xact_remove(xact);
@@ -645,7 +699,8 @@ bool ogs_sbi_send_request_to_nf_instance(
}
rc = ogs_sbi_send_request_to_client(
- client, ogs_sbi_client_handler, request, xact);
+ client, ogs_sbi_client_handler, request,
+ OGS_UINT_TO_POINTER(xact->id));
if (rc == false) {
ogs_error("ogs_sbi_send_request_to_client() failed");
ogs_sbi_xact_remove(xact);
@@ -724,63 +779,88 @@ bool ogs_sbi_send_request_to_client(
return rc;
}
-bool ogs_sbi_send_notification_request(
- ogs_sbi_service_type_e service_type,
+bool ogs_sbi_send_request_to_nrf(
+ ogs_sbi_service_type_e nrf_service_type,
ogs_sbi_discovery_option_t *discovery_option,
+ ogs_sbi_client_cb_f client_cb,
ogs_sbi_request_t *request, void *data)
{
bool rc;
- ogs_sbi_client_t *client = NULL, *scp_client = NULL;
- OpenAPI_nf_type_e target_nf_type = OpenAPI_nf_type_NULL;
+ ogs_sbi_client_t *nrf_client = NULL, *scp_client = NULL;
+ ogs_sbi_client_delegated_mode_e mode = OGS_SBI_CLIENT_DELEGATED_AUTO;
- ogs_assert(service_type);
- target_nf_type = ogs_sbi_service_type_to_nf_type(service_type);
- ogs_assert(target_nf_type);
+ ogs_assert(nrf_service_type);
ogs_assert(request);
scp_client = NF_INSTANCE_CLIENT(ogs_sbi_self()->scp_instance);
- if (target_nf_type == OpenAPI_nf_type_NRF)
- client = NF_INSTANCE_CLIENT(ogs_sbi_self()->nrf_instance);
- else {
- ogs_fatal("Not implemented[%s]",
- ogs_sbi_service_type_to_name(service_type));
- ogs_assert_if_reached();
- }
-
- if (scp_client) {
- /*************************
- * INDIRECT COMMUNICATION
- *************************/
- build_default_discovery_parameter(
- request, service_type, discovery_option);
-
- rc = ogs_sbi_client_send_via_scp_or_sepp(
- scp_client, ogs_sbi_client_handler, request, data);
+ nrf_client = NF_INSTANCE_CLIENT(ogs_sbi_self()->nrf_instance);
+
+ /* Decide which delegated mode to use */
+ if (nrf_service_type == OGS_SBI_SERVICE_TYPE_NNRF_NFM)
+ mode = ogs_sbi_self()->client_delegated_config.nrf.nfm;
+ else if (nrf_service_type == OGS_SBI_SERVICE_TYPE_NNRF_DISC)
+ mode = ogs_sbi_self()->client_delegated_config.nrf.disc;
+ /* else if it's some other Nnrf service, fallback to AUTO or keep default */
+
+ switch (mode) {
+ case OGS_SBI_CLIENT_DELEGATED_NO:
+ /* NO => Direct communication (NRF must exist) */
+ if (!nrf_client) {
+ ogs_fatal("[No-NRF] Cannot send request [%s:%s:%s]",
+ ogs_sbi_service_type_to_name(nrf_service_type),
+ request->h.service.name, request->h.api.version);
+ ogs_assert_if_reached();
+ return false;
+ }
+ /* Send directly to NRF */
+ rc = ogs_sbi_client_send_request(nrf_client, client_cb,
+ request, data);
ogs_expect(rc == true);
+ break;
- } else if (client) {
-
- /***********************
- * DIRECT COMMUNICATION
- ***********************/
-
- /* NRF is available */
- rc = ogs_sbi_client_send_request(
- client, ogs_sbi_client_handler, request, data);
+ case OGS_SBI_CLIENT_DELEGATED_YES:
+ /* YES => Indirect communication (SCP must exist) */
+ if (!scp_client) {
+ ogs_fatal("[No-SCP] Cannot send request [%s:%s:%s]",
+ ogs_sbi_service_type_to_name(nrf_service_type),
+ request->h.service.name, request->h.api.version);
+ ogs_assert_if_reached();
+ return false;
+ }
+ /* Indirect via SCP, build discovery parameter if needed */
+ build_default_discovery_parameter(request, nrf_service_type,
+ discovery_option);
+ rc = ogs_sbi_client_send_via_scp_or_sepp(scp_client, client_cb,
+ request, data);
ogs_expect(rc == true);
-
-
- } else {
- ogs_fatal("[%s:%s] Cannot send request [%s:%s:%s]",
- client ? "CLIENT" : "No-CLIENT",
- scp_client ? "SCP" : "No-SCP",
- ogs_sbi_service_type_to_name(service_type),
+ break;
+
+ case OGS_SBI_CLIENT_DELEGATED_AUTO:
+ default:
+ /*
+ * AUTO => If SCP is present, use it; otherwise direct.
+ */
+ if (scp_client) {
+ build_default_discovery_parameter(request, nrf_service_type,
+ discovery_option);
+ rc = ogs_sbi_client_send_via_scp_or_sepp(scp_client, client_cb,
+ request, data);
+ ogs_expect(rc == true);
+ } else if (nrf_client) {
+ rc = ogs_sbi_client_send_request(nrf_client, client_cb,
+ request, data);
+ ogs_expect(rc == true);
+ } else {
+ ogs_fatal("[No-NRF:No-SCP] Cannot send request [%s:%s:%s]",
+ ogs_sbi_service_type_to_name(nrf_service_type),
request->h.service.name, request->h.api.version);
- rc = false;
- ogs_assert_if_reached();
+ ogs_assert_if_reached();
+ return false;
+ }
+ break;
}
- return true;
+ return rc;
}
bool ogs_sbi_send_response(ogs_sbi_stream_t *stream, int status)
@@ -808,26 +888,40 @@ static int sepp_discover_handler(
char *strerror = NULL;
ogs_sbi_message_t message;
- ogs_sbi_xact_t *xact = data;
+ ogs_sbi_xact_t *xact = NULL;
+ ogs_pool_id_t xact_id = 0;
ogs_sbi_request_t *request = NULL;
ogs_sbi_client_t *scp_client = NULL, *sepp_client = NULL;
- ogs_assert(xact);
- request = xact->request;
- ogs_assert(request);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
- if (status != OGS_OK) {
+ xact = ogs_sbi_xact_find_by_id(xact_id);
+ if (!xact) {
+ ogs_error("SBI transaction has already been removed");
+ if (response)
+ ogs_sbi_response_free(response);
+
+ return OGS_ERROR;
+ }
+ if (status != OGS_OK) {
ogs_log_message(
status == OGS_DONE ? OGS_LOG_DEBUG : OGS_LOG_WARN, 0,
"sepp_discover_handler() failed [%d]", status);
+ if (response)
+ ogs_sbi_response_free(response);
+
ogs_sbi_xact_remove(xact);
+
return OGS_ERROR;
}
ogs_assert(response);
+ request = xact->request;
+ ogs_assert(request);
rv = ogs_sbi_parse_response(&message, response);
if (rv != OGS_OK) {
@@ -867,7 +961,8 @@ static int sepp_discover_handler(
if (false == ogs_sbi_client_send_via_scp_or_sepp(
scp_client ? scp_client : sepp_client,
- ogs_sbi_client_handler, request, xact)) {
+ ogs_sbi_client_handler, request,
+ OGS_UINT_TO_POINTER(xact->id))) {
strerror = ogs_msprintf("ogs_sbi_client_send_via_scp_or_sepp() failed");
goto cleanup;
}
@@ -939,9 +1034,7 @@ static void build_default_discovery_parameter(
OGS_SBI_CUSTOM_DISCOVERY_REQUESTER_NF_INSTANCE_ID,
discovery_option->requester_nf_instance_id);
}
- if (ogs_sbi_self()->discovery_config.
- no_service_names == false &&
- discovery_option->num_of_service_names) {
+ if (discovery_option->num_of_service_names) {
bool rc = false;
/* send array items separated by a comma */
diff --git a/lib/sbi/path.h b/lib/sbi/path.h
index 7a9d007785..a5e3a79455 100644
--- a/lib/sbi/path.h
+++ b/lib/sbi/path.h
@@ -38,9 +38,10 @@ bool ogs_sbi_send_request_to_nf_instance(
bool ogs_sbi_send_request_to_client(
ogs_sbi_client_t *client, ogs_sbi_client_cb_f client_cb,
ogs_sbi_request_t *request, void *data);
-bool ogs_sbi_send_notification_request(
- ogs_sbi_service_type_e service_type,
+bool ogs_sbi_send_request_to_nrf(
+ ogs_sbi_service_type_e nrf_service_type,
ogs_sbi_discovery_option_t *discovery_option,
+ ogs_sbi_client_cb_f client_cb,
ogs_sbi_request_t *request, void *data);
#define ogs_sbi_send_http_status_no_content(__sTREAM) \
diff --git a/lib/sbi/server.c b/lib/sbi/server.c
index 151bcf0336..e0bc83e8c9 100644
--- a/lib/sbi/server.c
+++ b/lib/sbi/server.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019,2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -62,9 +62,8 @@ ogs_sbi_server_t *ogs_sbi_server_add(
ogs_assert(addr);
ogs_assert(scheme);
- ogs_pool_alloc(&server_pool, &server);
+ ogs_pool_id_calloc(&server_pool, &server);
ogs_assert(server);
- memset(server, 0, sizeof(ogs_sbi_server_t));
if (interface)
server->interface = ogs_strdup(interface);
@@ -76,6 +75,8 @@ ogs_sbi_server_t *ogs_sbi_server_add(
ogs_strdup(ogs_sbi_self()->tls.server.private_key);
if (ogs_sbi_self()->tls.server.cert)
server->cert = ogs_strdup(ogs_sbi_self()->tls.server.cert);
+ if (ogs_sbi_self()->tls.server.sslkeylog)
+ server->sslkeylog = ogs_strdup(ogs_sbi_self()->tls.server.sslkeylog);
server->verify_client = ogs_sbi_self()->tls.server.verify_client;
if (ogs_sbi_self()->tls.server.verify_client_cacert)
@@ -113,8 +114,10 @@ void ogs_sbi_server_remove(ogs_sbi_server_t *server)
ogs_free(server->private_key);
if (server->cert)
ogs_free(server->cert);
+ if (server->sslkeylog)
+ ogs_free(server->sslkeylog);
- ogs_pool_free(&server_pool, server);
+ ogs_pool_id_free(&server_pool, server);
}
void ogs_sbi_server_remove_all(void)
@@ -197,7 +200,7 @@ bool ogs_sbi_server_send_problem(
bool ogs_sbi_server_send_error(ogs_sbi_stream_t *stream,
int status, ogs_sbi_message_t *message,
- const char *title, const char *detail)
+ const char *title, const char *detail, const char *cause)
{
OpenAPI_problem_details_t problem;
@@ -224,6 +227,7 @@ bool ogs_sbi_server_send_error(ogs_sbi_stream_t *stream,
}
problem.title = (char*)title;
problem.detail = (char*)detail;
+ problem.cause = (char*)cause;
ogs_sbi_server_send_problem(stream, &problem);
@@ -237,12 +241,17 @@ bool ogs_sbi_server_send_error(ogs_sbi_stream_t *stream,
ogs_sbi_server_t *ogs_sbi_server_from_stream(ogs_sbi_stream_t *stream)
{
- return ogs_sbi_server_actions.from_stream(stream);
+ return ogs_sbi_server_actions.server_from_stream(stream);
}
-char *ogs_sbi_server_id_context(ogs_sbi_server_t *server)
+ogs_pool_id_t ogs_sbi_id_from_stream(ogs_sbi_stream_t *stream)
{
- return ogs_msprintf("%d", (int)ogs_pool_index(&server_pool, server));
+ return ogs_sbi_server_actions.id_from_stream(stream);
+}
+
+void *ogs_sbi_stream_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_sbi_server_actions.stream_find_by_id(id);
}
static ogs_sbi_server_t *ogs_sbi_server_find_by_interface(
diff --git a/lib/sbi/server.h b/lib/sbi/server.h
index 50480713f6..19db7d8060 100644
--- a/lib/sbi/server.h
+++ b/lib/sbi/server.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019,2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -37,9 +37,11 @@ typedef struct ogs_sbi_server_s {
ogs_socknode_t node;
ogs_sockaddr_t *advertise;
+ ogs_pool_id_t id;
+
char *interface;
OpenAPI_uri_scheme_e scheme;
- char *private_key, *cert;
+ char *private_key, *cert, *sslkeylog;
bool verify_client;
char *verify_client_cacert;
@@ -64,7 +66,10 @@ typedef struct ogs_sbi_server_actions_s {
bool (*send_response)(
ogs_sbi_stream_t *stream, ogs_sbi_response_t *response);
- ogs_sbi_server_t *(*from_stream)(ogs_sbi_stream_t *stream);
+ ogs_sbi_server_t *(*server_from_stream)(ogs_sbi_stream_t *stream);
+
+ ogs_pool_id_t (*id_from_stream)(ogs_sbi_stream_t *stream);
+ void *(*stream_find_by_id)(ogs_pool_id_t id);
} ogs_sbi_server_actions_t;
void ogs_sbi_server_init(int num_of_session_pool, int num_of_stream_pool);
@@ -90,12 +95,15 @@ bool ogs_sbi_server_send_response(
ogs_sbi_stream_t *stream, ogs_sbi_response_t *response);
bool ogs_sbi_server_send_error(ogs_sbi_stream_t *stream,
int status, ogs_sbi_message_t *message,
- const char *title, const char *detail);
+ const char *title, const char *detail, const char *cause);
+
bool ogs_sbi_server_send_problem(
ogs_sbi_stream_t *stream, OpenAPI_problem_details_t *problem);
ogs_sbi_server_t *ogs_sbi_server_from_stream(ogs_sbi_stream_t *stream);
-char *ogs_sbi_server_id_context(ogs_sbi_server_t *server);
+
+ogs_pool_id_t ogs_sbi_id_from_stream(ogs_sbi_stream_t *stream);
+void *ogs_sbi_stream_find_by_id(ogs_pool_id_t id);
ogs_sbi_server_t *ogs_sbi_server_first(void);
ogs_sbi_server_t *ogs_sbi_server_next(ogs_sbi_server_t *current);
diff --git a/lib/sctp/ogs-lksctp.c b/lib/sctp/ogs-lksctp.c
index a0548229d8..c40a991361 100644
--- a/lib/sctp/ogs-lksctp.c
+++ b/lib/sctp/ogs-lksctp.c
@@ -53,138 +53,367 @@ ogs_sock_t *ogs_sctp_socket(int family, int type)
return new;
}
-ogs_sock_t *ogs_sctp_server(
- int type, ogs_sockaddr_t *sa_list, ogs_sockopt_t *socket_option)
+/**
+ * Determines the appropriate SCTP socket family based on the provided
+ * address list.
+ * Returns AF_INET6 if any address in sa_list is IPv6, otherwise AF_INET.
+ * Returns AF_UNSPEC if sa_list is NULL or no suitable family is found.
+ *
+ * @param sa_list List of addresses to check.
+ * @return AF_INET6, AF_INET, or AF_UNSPEC if no suitable family is found.
+ */
+static int sctp_socket_family_from_addr_list(const ogs_sockaddr_t *sa_list)
{
- int rv;
- char buf[OGS_ADDRSTRLEN];
+ const ogs_sockaddr_t *addr = sa_list;
- ogs_sock_t *new = NULL;
+ if (!sa_list) {
+ ogs_error("Address list is NULL");
+ return AF_UNSPEC;
+ }
+
+ /* Iterate through the address list to find an IPv6 address */
+ while (addr != NULL) {
+ if (addr->ogs_sa_family == AF_INET6) {
+ return AF_INET6;
+ }
+ addr = addr->next;
+ }
+
+ /* Default to AF_INET if no IPv6 address is found */
+ return AF_INET;
+}
+
+
+/**
+ * @brief
+ * 1) Count the number of addresses in sa_list and determine the total
+ * buffer size.
+ * 2) Allocate a single continuous buffer (unsigned char).
+ * 3) Copy each address (sockaddr_in or sockaddr_in6) into this continuous
+ * buffer.
+ *
+ * @param sa_list Linked list of ogs_sockaddr_t structures.
+ * @param out_count [OUT] Receives the number of addresses.
+ * @param out_total_len [OUT] Receives the total bytes for the continuous
+ * buffer.
+ *
+ * @return
+ * On success, returns a pointer to the allocated buffer containing all
+ * addresses. On failure, logs an error and returns NULL.
+ */
+static unsigned char *create_continuous_address_buffer(
+ ogs_sockaddr_t *sa_list,
+ int *out_count,
+ int *out_total_len)
+{
ogs_sockaddr_t *addr;
+ int addr_count = 0;
+ int total_len = 0;
+ unsigned char *addr_buf = NULL;
+ int offset = 0;
+
+ /* 1) Count addresses and total buffer size needed. */
+ for (addr = sa_list; addr; addr = addr->next) {
+ addr_count++;
+ /* E.g., sizeof(sockaddr_in) or sizeof(sockaddr_in6). */
+ total_len += ogs_sockaddr_len(addr);
+ }
+
+ if (addr_count == 0) {
+ ogs_error("No valid address in sa_list");
+ return NULL;
+ }
+
+ /* 2) Allocate the continuous buffer (unsigned char). */
+ addr_buf = ogs_calloc(1, total_len);
+ if (!addr_buf) {
+ ogs_error("Failed to allocate memory for addr_buf");
+ return NULL;
+ }
+
+ /* 3) Copy each address structure into addr_buf. */
+ offset = 0;
+ for (addr = sa_list; addr; addr = addr->next) {
+ socklen_t socklen = ogs_sockaddr_len(addr);
+ memcpy(addr_buf + offset, &addr->sa, socklen);
+ offset += socklen;
+ }
+
+ /* Pass back the number of addresses and total length. */
+ *out_count = addr_count;
+ *out_total_len = total_len;
+
+ return addr_buf;
+}
+
+/**
+ * @brief Create an SCTP server socket and bind multiple addresses at once
+ * using sctp_bindx().
+ *
+ * @param type SCTP socket type (e.g., SOCK_SEQPACKET or SOCK_STREAM)
+ * @param sa_list Linked list of ogs_sockaddr_t structures
+ * @param socket_option Additional socket/SCTP options
+ *
+ * @return
+ * On success, returns a pointer to an ogs_sock_t instance; on failure,
+ * returns NULL.
+ */
+ogs_sock_t *ogs_sctp_server(
+ int type,
+ ogs_sockaddr_t *sa_list,
+ ogs_sockopt_t *socket_option)
+{
+ int rv;
+ int sa_family;
+ ogs_sock_t *new_sock = NULL;
ogs_sockopt_t option;
+ /* Variables for sctp_bindx() usage. */
+ unsigned char *addr_buf = NULL;
+ int addr_count = 0;
+ int total_len = 0;
+
ogs_assert(sa_list);
+ /* Initialize socket options. */
ogs_sockopt_init(&option);
if (socket_option)
- memcpy(&option, socket_option, sizeof option);
+ memcpy(&option, socket_option, sizeof(option));
+
+ /*
+ * Obtain a contiguous buffer for all addresses:
+ * 1) Count the addresses.
+ * 2) Allocate the buffer.
+ * 3) Copy the addresses into the buffer.
+ */
+ addr_buf = create_continuous_address_buffer(
+ sa_list, &addr_count, &total_len);
+ if (!addr_buf) {
+ /* The helper logs errors, so just return. */
+ ogs_error("create_continuous_address_buffer() failed");
+ goto err;
+ }
- addr = sa_list;
- while (addr) {
- new = ogs_sctp_socket(addr->ogs_sa_family, type);
- if (new) {
- rv = ogs_sctp_peer_addr_params(new, &option);
- ogs_assert(rv == OGS_OK);
-
- rv = ogs_sctp_rto_info(new, &option);
- ogs_assert(rv == OGS_OK);
-
- rv = ogs_sctp_initmsg(new, &option);
- ogs_assert(rv == OGS_OK);
-
- if (option.sctp_nodelay == true) {
- rv = ogs_sctp_nodelay(new, true);
- ogs_assert(rv == OGS_OK);
- } else
- ogs_warn("SCTP NO_DELAY Disabled");
-
- if (option.so_linger.l_onoff == true) {
- rv = ogs_sctp_so_linger(new, option.so_linger.l_linger);
- ogs_assert(rv == OGS_OK);
- }
-
- rv = ogs_listen_reusable(new->fd, true);
- ogs_assert(rv == OGS_OK);
-
- if (ogs_sock_bind(new, addr) == OGS_OK) {
- ogs_debug("sctp_server() [%s]:%d",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
- break;
- }
-
- ogs_sock_destroy(new);
- }
+ /* Determine the appropriate address family from sa_list */
+ sa_family = sctp_socket_family_from_addr_list(sa_list);
+ if (sa_family == AF_UNSPEC) {
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "sctp_client() No suitable address family found "
+ "in sa_list");
+ goto err;
+ }
- addr = addr->next;
+ /* Create the SCTP socket using the determined address family */
+ new_sock = ogs_sctp_socket(sa_family, type);
+
+ /* Configure SCTP-specific options. */
+ rv = ogs_sctp_peer_addr_params(new_sock, &option);
+ ogs_assert(rv == OGS_OK);
+
+ rv = ogs_sctp_rto_info(new_sock, &option);
+ ogs_assert(rv == OGS_OK);
+
+ rv = ogs_sctp_initmsg(new_sock, &option);
+ ogs_assert(rv == OGS_OK);
+
+ if (option.sctp_nodelay == true) {
+ rv = ogs_sctp_nodelay(new_sock, true);
+ ogs_assert(rv == OGS_OK);
+ } else {
+ ogs_warn("SCTP NO_DELAY Disabled");
}
- if (addr == NULL) {
+ if (option.so_linger.l_onoff == true) {
+ rv = ogs_sctp_so_linger(new_sock, option.so_linger.l_linger);
+ ogs_assert(rv == OGS_OK);
+ }
+
+ /* Enable address reuse if needed. */
+ rv = ogs_listen_reusable(new_sock->fd, true);
+ ogs_assert(rv == OGS_OK);
+
+ /*
+ * Bind all addresses at once using sctp_bindx().
+ * (struct sockaddr *)addr_buf points to the contiguous buffer.
+ */
+ rv = sctp_bindx(new_sock->fd, (struct sockaddr *)addr_buf,
+ addr_count, SCTP_BINDX_ADD_ADDR);
+ if (rv < 0) {
ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "sctp_server() [%s]:%d failed",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
- return NULL;
+ "sctp_bindx() failed to bind multiple addresses");
+ goto err;
}
- ogs_assert(new);
+ /*
+ * Log debug info: only the first address is shown here as an example.
+ */
+ ogs_debug("sctp_server() %s (bound %d addresses)",
+ ogs_sockaddr_to_string_static(sa_list), addr_count);
- rv = ogs_sock_listen(new);
+ /* Start listening for connections. */
+ rv = ogs_sock_listen(new_sock);
ogs_assert(rv == OGS_OK);
- return new;
+ /* Success: free the buffer and return the socket. */
+ ogs_free(addr_buf);
+ return new_sock;
+
+err:
+ if (addr_buf)
+ ogs_free(addr_buf);
+ if (new_sock)
+ ogs_sock_destroy(new_sock);
+
+ /*
+ * On failure, log an error based on the first address
+ * in sa_list (customize as needed).
+ */
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "sctp_server() %s failed",
+ ogs_sockaddr_to_string_static(sa_list));
+
+ return NULL;
}
ogs_sock_t *ogs_sctp_client(
- int type, ogs_sockaddr_t *sa_list, ogs_sockopt_t *socket_option)
+ int type,
+ ogs_sockaddr_t *sa_list,
+ ogs_sockaddr_t *local_sa_list,
+ ogs_sockopt_t *socket_option)
{
int rv;
- char buf[OGS_ADDRSTRLEN];
-
- ogs_sock_t *new = NULL;
- ogs_sockaddr_t *addr;
+ int sa_family;
+ ogs_sock_t *new_sock = NULL;
ogs_sockopt_t option;
+ /* Buffers and counters for remote addresses. */
+ unsigned char *remote_buf = NULL;
+ int remote_count = 0;
+ int remote_len = 0;
+
+ /* Buffers and counters for local addresses (if provided). */
+ unsigned char *local_buf = NULL;
+ int local_count = 0;
+ int local_len = 0;
+
ogs_assert(sa_list);
+ /* Initialize socket options and copy user-provided options if present. */
ogs_sockopt_init(&option);
if (socket_option)
- memcpy(&option, socket_option, sizeof option);
+ memcpy(&option, socket_option, sizeof(option));
+
+ /*
+ * Build the contiguous buffer for REMOTE addresses using our helper
+ * function. This will be used later by sctp_connectx().
+ */
+ remote_buf = create_continuous_address_buffer(
+ sa_list, &remote_count, &remote_len);
+ if (!remote_buf) {
+ ogs_error("create_continuous_address_buffer() failed");
+ goto err;
+ }
- addr = sa_list;
- while (addr) {
- new = ogs_sctp_socket(addr->ogs_sa_family, type);
- if (new) {
- rv = ogs_sctp_peer_addr_params(new, &option);
- ogs_assert(rv == OGS_OK);
-
- rv = ogs_sctp_rto_info(new, &option);
- ogs_assert(rv == OGS_OK);
-
- rv = ogs_sctp_initmsg(new, &option);
- ogs_assert(rv == OGS_OK);
-
- if (option.sctp_nodelay == true) {
- rv = ogs_sctp_nodelay(new, true);
- ogs_assert(rv == OGS_OK);
- } else
- ogs_warn("SCTP NO_DELAY Disabled");
-
- if (option.so_linger.l_onoff == true) {
- rv = ogs_sctp_so_linger(new, option.so_linger.l_linger);
- ogs_assert(rv == OGS_OK);
- }
-
- if (ogs_sock_connect(new, addr) == OGS_OK) {
- ogs_debug("sctp_client() [%s]:%d",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
- break;
- }
-
- ogs_sock_destroy(new);
- }
+ /* Determine the appropriate address family from sa_list */
+ sa_family = sctp_socket_family_from_addr_list(sa_list);
+ if (sa_family == AF_UNSPEC) {
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "sctp_client() No suitable address family found "
+ "in sa_list");
+ goto err;
+ }
- addr = addr->next;
+ /* Create the SCTP socket using the determined address family */
+ new_sock = ogs_sctp_socket(sa_family, type);
+
+ /* Configure SCTP-specific options. */
+ rv = ogs_sctp_peer_addr_params(new_sock, &option);
+ ogs_assert(rv == OGS_OK);
+
+ rv = ogs_sctp_rto_info(new_sock, &option);
+ ogs_assert(rv == OGS_OK);
+
+ rv = ogs_sctp_initmsg(new_sock, &option);
+ ogs_assert(rv == OGS_OK);
+
+ if (option.sctp_nodelay == true) {
+ rv = ogs_sctp_nodelay(new_sock, true);
+ ogs_assert(rv == OGS_OK);
+ } else {
+ ogs_warn("SCTP NO_DELAY Disabled");
}
- if (addr == NULL) {
- ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "sctp_client() [%s]:%d failed",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
- return NULL;
+ if (option.so_linger.l_onoff == true) {
+ rv = ogs_sctp_so_linger(new_sock, option.so_linger.l_linger);
+ ogs_assert(rv == OGS_OK);
}
- ogs_assert(new);
+ /*
+ * If local_sa_list is provided, bind those addresses before connecting.
+ * (Optional: some clients do not need explicit local bind.)
+ */
+ if (local_sa_list) {
+ local_buf = create_continuous_address_buffer(
+ local_sa_list, &local_count, &local_len);
+ if (!local_buf) {
+ /* Error already logged. */
+ goto err;
+ }
+ /* We can bind them using sctp_bindx() if desired. */
+ rv = sctp_bindx(new_sock->fd,
+ (struct sockaddr *)local_buf,
+ local_count,
+ SCTP_BINDX_ADD_ADDR);
+ if (rv < 0) {
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "sctp_client() bind local addresses failed");
+ goto err;
+ }
+ ogs_debug("sctp_client() bound %d local addresses", local_count);
+ }
- return new;
+ /*
+ * Connect to the REMOTE addresses using sctp_connectx().
+ * (struct sockaddr *)remote_buf is the contiguous buffer.
+ */
+ rv = sctp_connectx(new_sock->fd,
+ (struct sockaddr *)remote_buf,
+ remote_count,
+ NULL /* assoc_id */);
+ if (rv < 0) {
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "sctp_connectx() failed to connect");
+ goto err;
+ }
+
+ /* Debug log for the first remote address. */
+ ogs_debug("sctp_client() connected to %s",
+ ogs_sockaddr_to_string_static(sa_list));
+
+ /* Success: free buffers and return the new socket. */
+ if (local_buf)
+ ogs_free(local_buf);
+ if (remote_buf)
+ ogs_free(remote_buf);
+ return new_sock;
+
+err:
+ if (local_buf)
+ ogs_free(local_buf);
+ if (remote_buf)
+ ogs_free(remote_buf);
+ if (new_sock)
+ ogs_sock_destroy(new_sock);
+
+ /*
+ * On failure, log an error based on the first remote address.
+ * Adjust to your needs, e.g., log local too if necessary.
+ */
+ ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
+ "sctp_client() %s failed",
+ ogs_sockaddr_to_string_static(sa_list));
+
+ return NULL;
}
int ogs_sctp_connect(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
@@ -194,6 +423,10 @@ int ogs_sctp_connect(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
ogs_assert(sock);
+ /* Clang scan-build SA: NULL pointer dereference: if addr=sa_list=NULL then the macro OGS_PORT(sa_list) will
+ * dereference the NULL pointer. */
+ ogs_assert(sa_list);
+
addr = sa_list;
while (addr) {
if (ogs_sock_connect(sock, addr) == OGS_OK) {
@@ -207,8 +440,9 @@ int ogs_sctp_connect(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
if (addr == NULL) {
ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "sctp_connect() [%s]:%d failed",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
+ "sctp_connect() %s failed",
+ ogs_sockaddr_to_string_static(sa_list));
+
return OGS_ERROR;
}
diff --git a/lib/sctp/ogs-sctp.c b/lib/sctp/ogs-sctp.c
index 6f39a84c04..c91d144d8a 100644
--- a/lib/sctp/ogs-sctp.c
+++ b/lib/sctp/ogs-sctp.c
@@ -32,19 +32,20 @@ int ogs_sctp_recvdata(ogs_sock_t *sock, void *msg, size_t len,
do {
size = ogs_sctp_recvmsg(sock, msg, len, from, sinfo, &flags);
- if (size < 0) {
- ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "ogs_sctp_recvdata(%d)", size);
+ if (size < 0 || size >= OGS_MAX_SDU_LEN) {
+ ogs_error("ogs_sctp_recvmsg(%d) failed(%d:%s)",
+ size, errno, strerror(errno));
return size;
}
if (flags & MSG_NOTIFICATION) {
/* Nothing */
- }
- else if (flags & MSG_EOR) {
+ } else if (flags & MSG_EOR) {
break;
- }
- else {
+ } else {
+ ogs_fatal("ogs_sctp_recvmsg(%d) failed(%d:%s-0x%x)",
+ size, errno, strerror(errno), flags);
+ ogs_fatal("Probably MME might be crashed");
ogs_assert_if_reached();
}
} while(1);
diff --git a/lib/sctp/ogs-sctp.h b/lib/sctp/ogs-sctp.h
index 3384a98dfa..f698bf6af2 100644
--- a/lib/sctp/ogs-sctp.h
+++ b/lib/sctp/ogs-sctp.h
@@ -109,7 +109,9 @@ ogs_sock_t *ogs_sctp_socket(int family, int type);
ogs_sock_t *ogs_sctp_server(
int type, ogs_sockaddr_t *sa_list, ogs_sockopt_t *socket_option);
ogs_sock_t *ogs_sctp_client(
- int type, ogs_sockaddr_t *sa_list, ogs_sockopt_t *socket_option);
+ int type,
+ ogs_sockaddr_t *sa_list, ogs_sockaddr_t *local_sa_list,
+ ogs_sockopt_t *socket_option);
int ogs_sctp_bind(ogs_sock_t *sock, ogs_sockaddr_t *sa_list);
int ogs_sctp_connect(ogs_sock_t *sock, ogs_sockaddr_t *sa_list);
diff --git a/lib/sctp/ogs-usrsctp.c b/lib/sctp/ogs-usrsctp.c
index 60675ca93e..a587fbcaed 100644
--- a/lib/sctp/ogs-usrsctp.c
+++ b/lib/sctp/ogs-usrsctp.c
@@ -142,8 +142,8 @@ ogs_sock_t *ogs_sctp_server(
}
if (addr == NULL) {
- ogs_error("sctp_server [%s]:%d failed",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
+ ogs_error("sctp_server %s failed",
+ ogs_sockaddr_to_string_static(sa_list));
return NULL;
}
@@ -156,7 +156,9 @@ ogs_sock_t *ogs_sctp_server(
}
ogs_sock_t *ogs_sctp_client(
- int type, ogs_sockaddr_t *sa_list, ogs_sockopt_t *socket_option)
+ int type,
+ ogs_sockaddr_t *sa_list, ogs_sockaddr_t *local_sa_list,
+ ogs_sockopt_t *socket_option)
{
int rv;
char buf[OGS_ADDRSTRLEN];
@@ -208,8 +210,8 @@ ogs_sock_t *ogs_sctp_client(
}
if (addr == NULL) {
- ogs_error("sctp_client [%s]:%d failed",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
+ ogs_error("sctp_client %s failed",
+ ogs_sockaddr_to_string_static(sa_list));
return NULL;
}
@@ -219,7 +221,6 @@ ogs_sock_t *ogs_sctp_client(
int ogs_sctp_bind(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
{
struct socket *socket = (struct socket *)sock;
- char buf[OGS_ADDRSTRLEN];
socklen_t addrlen;
ogs_assert(socket);
@@ -229,13 +230,13 @@ int ogs_sctp_bind(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
ogs_assert(addrlen);
if (usrsctp_bind(socket, &sa_list->sa, addrlen) != 0) {
- ogs_error("sctp_bind() [%s]:%d failed",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
+ ogs_error("sctp_bind() %s failed",
+ ogs_sockaddr_to_string_static(sa_list));
+
return OGS_ERROR;
}
- ogs_debug("sctp_bind() [%s]:%d",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
+ ogs_debug("sctp_bind() %s", ogs_sockaddr_to_string_static(sa_list));
return OGS_OK;
}
@@ -243,7 +244,6 @@ int ogs_sctp_bind(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
int ogs_sctp_connect(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
{
struct socket *socket = (struct socket *)sock;
- char buf[OGS_ADDRSTRLEN];
socklen_t addrlen;
ogs_assert(socket);
@@ -253,13 +253,11 @@ int ogs_sctp_connect(ogs_sock_t *sock, ogs_sockaddr_t *sa_list)
ogs_assert(addrlen);
if (usrsctp_connect(socket, &sa_list->sa, addrlen) != 0) {
- ogs_error("sctp_connect() [%s]:%d",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
+ ogs_error("sctp_connect() %s", ogs_sockaddr_to_string_static(sa_list));
return OGS_ERROR;
}
- ogs_debug("sctp_connect() [%s]:%d",
- OGS_ADDR(sa_list, buf), OGS_PORT(sa_list));
+ ogs_debug("sctp_connect() %s", ogs_sockaddr_to_string_static(sa_list));
return OGS_OK;
}
diff --git a/meson.build b/meson.build
index 1854a0ea81..c54a57768b 100644
--- a/meson.build
+++ b/meson.build
@@ -16,7 +16,7 @@
# along with this program. If not, see .
project('open5gs', 'c', 'cpp',
- version : '2.7.0',
+ version : '2.7.2',
license : 'AGPL-3.0-or-later',
meson_version : '>= 0.43.0',
default_options : [
@@ -25,7 +25,7 @@ project('open5gs', 'c', 'cpp',
],
)
-libogslib_version = '2.7.0'
+libogslib_version = '2.7.2'
prefix = get_option('prefix')
bindir = join_paths(prefix, get_option('bindir'))
@@ -57,7 +57,7 @@ if clangtidy.found() != true
endif
meson.add_install_script(python3_exe, '-c',
- mkdir_p.format(join_paths(localstatedir, 'log', 'open5gs')))
+ mkdir_p.format(join_paths(localstatedir, 'log', 'open5gs', 'tls')))
# Compiler flags
if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
diff --git a/misc/netconf.sh b/misc/netconf.sh
index d6a16b56ea..7a0999eab1 100755
--- a/misc/netconf.sh
+++ b/misc/netconf.sh
@@ -45,6 +45,7 @@ else
ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
+ ifconfig lo0 alias 127.0.0.50 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.200 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.201 netmask 255.255.255.255
ifconfig lo0 alias 127.0.0.202 netmask 255.255.255.255
@@ -70,6 +71,7 @@ else
ifconfig lo0 alias 127.0.1.18 netmask 255.255.255.255
ifconfig lo0 alias 127.0.1.19 netmask 255.255.255.255
ifconfig lo0 alias 127.0.1.20 netmask 255.255.255.255
+ ifconfig lo0 alias 127.0.1.50 netmask 255.255.255.255
ifconfig lo0 alias 127.0.1.200 netmask 255.255.255.255
ifconfig lo0 alias 127.0.1.201 netmask 255.255.255.255
ifconfig lo0 alias 127.0.1.202 netmask 255.255.255.255
@@ -95,6 +97,7 @@ else
ifconfig lo0 alias 127.0.2.18 netmask 255.255.255.255
ifconfig lo0 alias 127.0.2.19 netmask 255.255.255.255
ifconfig lo0 alias 127.0.2.20 netmask 255.255.255.255
+ ifconfig lo0 alias 127.0.2.50 netmask 255.255.255.255
ifconfig lo0 alias 127.0.2.200 netmask 255.255.255.255
ifconfig lo0 alias 127.0.2.201 netmask 255.255.255.255
ifconfig lo0 alias 127.0.2.202 netmask 255.255.255.255
@@ -120,6 +123,7 @@ else
ifconfig lo0 alias 127.0.3.18 netmask 255.255.255.255
ifconfig lo0 alias 127.0.3.19 netmask 255.255.255.255
ifconfig lo0 alias 127.0.3.20 netmask 255.255.255.255
+ ifconfig lo0 alias 127.0.3.50 netmask 255.255.255.255
ifconfig lo0 alias 127.0.3.200 netmask 255.255.255.255
ifconfig lo0 alias 127.0.3.201 netmask 255.255.255.255
ifconfig lo0 alias 127.0.3.202 netmask 255.255.255.255
diff --git a/src/amf/amf-sm.c b/src/amf/amf-sm.c
index c0e6ab0695..f47ab4b4f1 100644
--- a/src/amf/amf-sm.c
+++ b/src/amf/amf-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -64,9 +64,12 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
amf_sess_t *sess = NULL;
ogs_sbi_object_t *sbi_object = NULL;
+ ogs_pool_id_t sbi_object_id = OGS_INVALID_POOL_ID;
ogs_sbi_xact_t *sbi_xact = NULL;
+ ogs_pool_id_t sbi_xact_id = OGS_INVALID_POOL_ID;
int state = AMF_CREATE_SM_CONTEXT_NO_STATE;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *sbi_request = NULL;
ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
@@ -89,8 +92,16 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
case OGS_EVENT_SBI_SERVER:
sbi_request = e->h.sbi.request;
ogs_assert(sbi_request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
rv = ogs_sbi_parse_request(&sbi_message, sbi_request);
if (rv != OGS_OK) {
@@ -99,7 +110,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP sbi_message", NULL));
+ NULL, "cannot parse HTTP sbi_message", NULL, NULL));
break;
}
@@ -117,7 +128,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &sbi_message, "Not supported version", NULL));
+ &sbi_message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&sbi_message);
break;
}
@@ -137,7 +148,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &sbi_message,
- "Invalid HTTP method", sbi_message.h.method));
+ "Invalid HTTP method", sbi_message.h.method, NULL));
END
break;
@@ -148,7 +159,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &sbi_message,
"Invalid resource name",
- sbi_message.h.resource.component[0]));
+ sbi_message.h.resource.component[0], NULL));
END
break;
@@ -166,7 +177,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
&sbi_message,
- "No N1N2MessageTransferReqData", NULL));
+ "No N1N2MessageTransferReqData", NULL, NULL));
}
break;
@@ -176,7 +187,42 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &sbi_message,
- "Invalid HTTP method", sbi_message.h.method));
+ "Invalid HTTP method", sbi_message.h.method,
+ NULL));
+ END
+ break;
+
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER)
+ SWITCH(sbi_message.h.method)
+ CASE(OGS_SBI_HTTP_METHOD_POST)
+ amf_namf_comm_handle_ue_context_transfer_request(
+ stream, &sbi_message);
+ break;
+ DEFAULT
+ ogs_error("Invalid HTTP method [%s]",
+ sbi_message.h.method);
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_FORBIDDEN, &sbi_message,
+ "Invalid HTTP method", sbi_message.h.method,
+ NULL));
+ END
+ break;
+
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER_UPDATE)
+ SWITCH(sbi_message.h.method)
+ CASE(OGS_SBI_HTTP_METHOD_POST)
+ amf_namf_comm_handle_registration_status_update_request(
+ stream, &sbi_message);
+ break;
+ DEFAULT
+ ogs_error("Invalid HTTP method [%s]",
+ sbi_message.h.method);
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_FORBIDDEN, &sbi_message,
+ "Invalid HTTP method", sbi_message.h.method,
+ NULL));
END
break;
@@ -187,7 +233,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &sbi_message,
"Invalid resource name",
- sbi_message.h.resource.component[2]));
+ sbi_message.h.resource.component[2], NULL));
END
break;
@@ -198,7 +244,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &sbi_message,
"Invalid resource name",
- sbi_message.h.resource.component[0]));
+ sbi_message.h.resource.component[0], NULL));
END
break;
@@ -229,7 +275,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &sbi_message,
"Invalid resource name",
- sbi_message.h.resource.component[1]));
+ sbi_message.h.resource.component[1], NULL));
END
break;
@@ -238,7 +284,8 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &sbi_message,
- "Invalid API name", sbi_message.h.resource.component[0]));
+ "Invalid API name", sbi_message.h.resource.component[0],
+ NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
@@ -346,8 +393,18 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
CASE(OGS_SBI_SERVICE_NAME_NNRF_DISC)
SWITCH(sbi_message.h.resource.component[0])
CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
+ if (!sbi_xact) {
+ /* CLIENT_WAIT timer could remove SBI transaction
+ * before receiving SBI message */
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
+ break;
+ }
SWITCH(sbi_message.h.method)
CASE(OGS_SBI_HTTP_METHOD_GET)
@@ -375,25 +432,29 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
CASE(OGS_SBI_SERVICE_NAME_NUDM_UECM)
CASE(OGS_SBI_SERVICE_NAME_NUDM_SDM)
CASE(OGS_SBI_SERVICE_NAME_NPCF_AM_POLICY_CONTROL)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ CASE(OGS_SBI_SERVICE_NAME_NAMF_COMM)
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
- sbi_xact = ogs_sbi_xact_cycle(sbi_xact);
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
/* CLIENT_WAIT timer could remove SBI transaction
* before receiving SBI message */
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
state = sbi_xact->state;
- amf_ue = (amf_ue_t *)sbi_xact->sbi_object;
- ogs_assert(amf_ue);
+ sbi_object_id = sbi_xact->sbi_object_id;
+ ogs_assert(sbi_object_id >= OGS_MIN_POOL_ID &&
+ sbi_object_id <= OGS_MAX_POOL_ID);
ogs_sbi_xact_remove(sbi_xact);
- amf_ue = amf_ue_cycle(amf_ue);
+ amf_ue = amf_ue_find_by_id(sbi_object_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
break;
@@ -401,7 +462,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(OGS_FSM_STATE(&amf_ue->sm));
- e->amf_ue = amf_ue;
+ e->amf_ue_id = amf_ue->id;
e->h.sbi.message = &sbi_message;;
e->h.sbi.state = state;
@@ -409,25 +470,28 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
break;
CASE(OGS_SBI_SERVICE_NAME_NSMF_PDUSESSION)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
- sbi_xact = ogs_sbi_xact_cycle(sbi_xact);
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
/* CLIENT_WAIT timer could remove SBI transaction
* before receiving SBI message */
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
state = sbi_xact->state;
- sess = (amf_sess_t *)sbi_xact->sbi_object;
- ogs_assert(sess);
+ sbi_object_id = sbi_xact->sbi_object_id;
+ ogs_assert(sbi_object_id >= OGS_MIN_POOL_ID &&
+ sbi_object_id <= OGS_MAX_POOL_ID);
ogs_sbi_xact_remove(sbi_xact);
- sess = amf_sess_cycle(sess);
+ sess = amf_sess_find_by_id(sbi_object_id);
if (!sess) {
/*
* 1. If AMF-UE context is duplicated in Identity-Response,
@@ -465,15 +529,16 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
break;
}
- amf_ue = sess->amf_ue;
- ogs_assert(amf_ue);
- amf_ue = amf_ue_cycle(amf_ue);
- ogs_assert(amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
+ if (!amf_ue) {
+ ogs_error("UE(amf-ue) context has already been removed");
+ break;
+ }
ogs_assert(OGS_FSM_STATE(&amf_ue->sm));
- e->amf_ue = amf_ue;
- e->sess = sess;
+ e->amf_ue_id = amf_ue->id;
+ e->sess_id = sess->id;
e->h.sbi.message = &sbi_message;;
SWITCH(sbi_message.h.resource.component[2])
@@ -488,10 +553,9 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_info("[%s:%d] Release SM context [%d]",
amf_ue->supi, sess->psi, sbi_message.res_status);
} else {
- ogs_error("[%s] HTTP response error [%d]",
- amf_ue->supi, sbi_message.res_status);
+ ogs_error("[%s:%d] HTTP response error [%d]",
+ amf_ue->supi, sess->psi, sbi_message.res_status);
}
-
amf_nsmf_pdusession_handle_release_sm_context(sess, state);
break;
@@ -518,45 +582,51 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
* So, if CreateSMContext is failed,
* we'll clear SM_CONTEXT_REF.
*/
+ ogs_error("[%s:%d] create_sm_context failed() [%d]",
+ amf_ue->supi, sess->psi, sbi_message.res_status);
AMF_SESS_CLEAR(sess);
}
END
break;
CASE(OGS_SBI_SERVICE_NAME_NNSSF_NSSELECTION)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
- sbi_xact = ogs_sbi_xact_cycle(sbi_xact);
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
/* CLIENT_WAIT timer could remove SBI transaction
* before receiving SBI message */
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- sess = (amf_sess_t *)sbi_xact->sbi_object;
- ogs_assert(sess);
+ sbi_object_id = sbi_xact->sbi_object_id;
+ ogs_assert(sbi_object_id >= OGS_MIN_POOL_ID &&
+ sbi_object_id <= OGS_MAX_POOL_ID);
state = sbi_xact->state;
ogs_sbi_xact_remove(sbi_xact);
- sess = amf_sess_cycle(sess);
+ sess = amf_sess_find_by_id(sbi_object_id);
if (!sess) {
ogs_error("Session has already been removed");
break;
}
- amf_ue = sess->amf_ue;
- ogs_assert(amf_ue);
- amf_ue = amf_ue_cycle(amf_ue);
- ogs_assert(amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
+ if (!amf_ue) {
+ ogs_error("UE(amf-ue) context has already been removed");
+ break;
+ }
ogs_assert(OGS_FSM_STATE(&amf_ue->sm));
- e->amf_ue = amf_ue;
- e->sess = sess;
+ e->amf_ue_id = amf_ue->id;
+ e->sess_id = sess->id;
e->h.sbi.message = &sbi_message;;
e->h.sbi.state = state;
@@ -646,17 +716,26 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
* 4. timer expiration event is processed. (double-free SBI xact)
*
* To avoid double-free SBI xact,
- * we need to check ogs_sbi_xact_cycle()
+ * we need to check ogs_sbi_xact_find_by_id()
*/
- sbi_xact = ogs_sbi_xact_cycle(e->h.sbi.data);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
sbi_object = sbi_xact->sbi_object;
ogs_assert(sbi_object);
+ sbi_object_id = sbi_xact->sbi_object_id;
+ ogs_assert(sbi_object_id >= OGS_MIN_POOL_ID &&
+ sbi_object_id <= OGS_MAX_POOL_ID);
+
service_type = sbi_xact->service_type;
ogs_sbi_xact_remove(sbi_xact);
@@ -666,9 +745,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
switch(sbi_object->type) {
case OGS_SBI_OBJ_UE_TYPE:
- amf_ue = (amf_ue_t *)sbi_object;
- ogs_assert(amf_ue);
- amf_ue = amf_ue_cycle(amf_ue);
+ amf_ue = amf_ue_find_by_id(sbi_object_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
break;
@@ -682,15 +759,13 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
break;
case OGS_SBI_OBJ_SESS_TYPE:
- sess = (amf_sess_t *)sbi_object;
- ogs_assert(sess);
- sess = amf_sess_cycle(sess);
+ sess = amf_sess_find_by_id(sbi_object_id);
if (!sess) {
ogs_error("Session has already been removed");
break;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
break;
@@ -699,13 +774,15 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_error("[%d:%d] Cannot receive SBI message",
sess->psi, sess->pti);
if (sess->payload_container_type) {
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
+ r = nas_5gs_send_back_gsm_message(
+ ran_ue_find_by_id(sess->ran_ue_id), sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
- r = ngap_send_error_indication2(sess->ran_ue,
+ r = ngap_send_error_indication2(
+ ran_ue_find_by_id(sess->ran_ue_id),
NGAP_Cause_PR_transport,
NGAP_CauseTransport_transport_resource_unavailable);
ogs_expect(r == OGS_OK);
@@ -739,7 +816,11 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
gnb = amf_gnb_find_by_addr(addr);
if (!gnb) {
gnb = amf_gnb_add(sock, addr);
- ogs_assert(gnb);
+ if (!gnb) {
+ ogs_error("amf_gnb_add() failed");
+ ogs_sock_destroy(sock);
+ ogs_free(addr);
+ }
} else {
ogs_warn("gNB context duplicated with IP-address [%s]!!!",
OGS_ADDR(addr, buf));
@@ -761,7 +842,11 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
gnb = amf_gnb_find_by_addr(addr);
if (!gnb) {
gnb = amf_gnb_add(sock, addr);
- ogs_assert(gnb);
+ if (!gnb) {
+ ogs_error("amf_gnb_add() failed");
+ ogs_free(addr);
+ break;
+ }
} else {
ogs_free(addr);
}
@@ -812,7 +897,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
rc = ogs_ngap_decode(&ngap_message, pkbuf);
if (rc == OGS_OK) {
- e->gnb = gnb;
+ e->gnb_id = gnb->id;
e->ngap.message = &ngap_message;
ogs_fsm_dispatch(&gnb->sm, e);
} else {
@@ -829,13 +914,14 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
break;
case AMF_EVENT_NGAP_TIMER:
- ran_ue = e->ran_ue;
- ogs_assert(ran_ue);
+ ran_ue = ran_ue_find_by_id(e->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("NG Context has already been removed");
+ break;
+ }
switch (e->h.timer_id) {
case AMF_TIMER_NG_DELAYED_SEND:
- gnb = e->gnb;
- ogs_assert(gnb);
pkbuf = e->pkbuf;
ogs_assert(pkbuf);
@@ -846,8 +932,8 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
break;
case AMF_TIMER_NG_HOLDING:
ogs_warn("Implicit NG release");
- ogs_warn(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id,
+ ogs_warn(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
(long long)ran_ue->amf_ue_ngap_id);
ngap_handle_ue_context_release_action(ran_ue);
break;
@@ -859,18 +945,22 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
break;
case AMF_EVENT_5GMM_MESSAGE:
- ran_ue = e->ran_ue;
- ogs_assert(ran_ue);
pkbuf = e->pkbuf;
ogs_assert(pkbuf);
+ ran_ue = ran_ue_find_by_id(e->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("NG Context has already been removed");
+ break;
+ }
+
if (ogs_nas_5gmm_decode(&nas_message, pkbuf) != OGS_OK) {
ogs_error("ogs_nas_5gmm_decode() failed");
ogs_pkbuf_free(pkbuf);
break;
}
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
amf_ue = amf_ue_find_by_message(&nas_message);
if (!amf_ue) {
@@ -965,7 +1055,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(amf_ue);
ogs_assert(OGS_FSM_STATE(&amf_ue->sm));
- e->amf_ue = amf_ue;
+ e->amf_ue_id = amf_ue->id;
e->nas.message = &nas_message;
ogs_fsm_dispatch(&amf_ue->sm, e);
@@ -974,7 +1064,7 @@ void amf_state_operational(ogs_fsm_t *s, amf_event_t *e)
break;
case AMF_EVENT_5GMM_TIMER:
- amf_ue = amf_ue_cycle(e->amf_ue);
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
break;
diff --git a/src/amf/context.c b/src/amf/context.c
index 0b736c027e..6880c96042 100644
--- a/src/amf/context.c
+++ b/src/amf/context.c
@@ -40,6 +40,7 @@ static void stats_add_ran_ue(void);
static void stats_remove_ran_ue(void);
static void stats_add_amf_session(void);
static void stats_remove_amf_session(void);
+static bool amf_namf_comm_parse_guti(ogs_nas_5gs_guti_t *guti, char *ue_context_id);
void amf_context_init(void)
{
@@ -62,8 +63,12 @@ void amf_context_init(void)
ogs_pool_init(&amf_ue_pool, ogs_global_conf()->max.ue);
ogs_pool_init(&ran_ue_pool, ogs_global_conf()->max.ue);
ogs_pool_init(&amf_sess_pool, ogs_app()->pool.sess);
+ /* Increase size of TMSI pool (#1827) */
ogs_pool_init(&m_tmsi_pool, ogs_global_conf()->max.ue*2);
ogs_pool_random_id_generate(&m_tmsi_pool);
+#if 0 /* For debugging : Verify whether there are duplicates of M_TMSI. */
+ ogs_pool_assert_if_has_duplicate(&m_tmsi_pool);
+#endif
ogs_list_init(&self.gnb_list);
ogs_list_init(&self.amf_ue_list);
@@ -201,6 +206,7 @@ int amf_context_parse_config(void)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -212,7 +218,8 @@ int amf_context_parse_config(void)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, "amf")) {
+ if ((!strcmp(root_key, "amf")) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t amf_iter;
ogs_yaml_iter_recurse(&root_iter, &amf_iter);
while (ogs_yaml_iter_next(&amf_iter)) {
@@ -752,7 +759,7 @@ int amf_context_parse_config(void)
s_nssai->sst = atoi(sst);
if (sd)
s_nssai->sd =
- ogs_uint24_from_string(
+ ogs_uint24_from_string_hexadecimal(
(char*)sd);
else
s_nssai->sd.v =
@@ -1196,9 +1203,11 @@ amf_gnb_t *amf_gnb_add(ogs_sock_t *sock, ogs_sockaddr_t *addr)
ogs_assert(sock);
ogs_assert(addr);
- ogs_pool_alloc(&amf_gnb_pool, &gnb);
- ogs_assert(gnb);
- memset(gnb, 0, sizeof *gnb);
+ ogs_pool_id_calloc(&amf_gnb_pool, &gnb);
+ if (!gnb) {
+ ogs_error("ogs_pool_id_calloc() failed");
+ return NULL;
+ }
/* Defaut RAT-Type */
gnb->rat_type = OpenAPI_rat_type_NR;
@@ -1222,7 +1231,7 @@ amf_gnb_t *amf_gnb_add(ogs_sock_t *sock, ogs_sockaddr_t *addr)
gnb->sctp.addr, sizeof(ogs_sockaddr_t), gnb);
memset(&e, 0, sizeof(e));
- e.gnb = gnb;
+ e.gnb_id = gnb->id;
ogs_fsm_init(&gnb->sm, ngap_state_initial, ngap_state_final, &e);
ogs_list_add(&self.gnb_list, gnb);
@@ -1244,16 +1253,17 @@ void amf_gnb_remove(amf_gnb_t *gnb)
ogs_list_remove(&self.gnb_list, gnb);
memset(&e, 0, sizeof(e));
- e.gnb = gnb;
+ e.gnb_id = gnb->id;
ogs_fsm_fini(&gnb->sm, &e);
ogs_hash_set(self.gnb_addr_hash,
gnb->sctp.addr, sizeof(ogs_sockaddr_t), NULL);
- ogs_hash_set(self.gnb_id_hash, &gnb->gnb_id, sizeof(gnb->gnb_id), NULL);
+ if (gnb->gnb_id_presence == true)
+ ogs_hash_set(self.gnb_id_hash, &gnb->gnb_id, sizeof(gnb->gnb_id), NULL);
ogs_sctp_flush_and_destroy(&gnb->sctp);
- ogs_pool_free(&amf_gnb_pool, gnb);
+ ogs_pool_id_free(&amf_gnb_pool, gnb);
amf_metrics_inst_global_dec(AMF_METR_GLOB_GAUGE_GNB);
ogs_info("[Removed] Number of gNBs is now %d",
ogs_list_count(&self.gnb_list));
@@ -1285,11 +1295,14 @@ int amf_gnb_set_gnb_id(amf_gnb_t *gnb, uint32_t gnb_id)
{
ogs_assert(gnb);
- ogs_hash_set(self.gnb_id_hash, &gnb_id, sizeof(gnb_id), NULL);
+ if (gnb->gnb_id_presence == true)
+ ogs_hash_set(self.gnb_id_hash, &gnb->gnb_id, sizeof(gnb->gnb_id), NULL);
gnb->gnb_id = gnb_id;
ogs_hash_set(self.gnb_id_hash, &gnb->gnb_id, sizeof(gnb->gnb_id), gnb);
+ gnb->gnb_id_presence = true;
+
return OGS_OK;
}
@@ -1308,31 +1321,30 @@ int amf_gnb_sock_type(ogs_sock_t *sock)
return SOCK_STREAM;
}
-amf_gnb_t *amf_gnb_cycle(amf_gnb_t *gnb)
+amf_gnb_t *amf_gnb_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&amf_gnb_pool, gnb);
+ return ogs_pool_find_by_id(&amf_gnb_pool, id);
}
/** ran_ue_context handling function */
-ran_ue_t *ran_ue_add(amf_gnb_t *gnb, uint32_t ran_ue_ngap_id)
+ran_ue_t *ran_ue_add(amf_gnb_t *gnb, uint64_t ran_ue_ngap_id)
{
ran_ue_t *ran_ue = NULL;
ogs_assert(gnb);
- ogs_pool_alloc(&ran_ue_pool, &ran_ue);
+ ogs_pool_id_calloc(&ran_ue_pool, &ran_ue);
if (ran_ue == NULL) {
ogs_error("Could not allocate ran_ue context from pool");
return NULL;
}
- memset(ran_ue, 0, sizeof *ran_ue);
-
ran_ue->t_ng_holding = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_ng_holding_timer_expire, ran_ue);
+ ogs_app()->timer_mgr, amf_timer_ng_holding_timer_expire,
+ OGS_UINT_TO_POINTER(ran_ue->id));
if (!ran_ue->t_ng_holding) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&ran_ue_pool, ran_ue);
+ ogs_pool_id_free(&ran_ue_pool, ran_ue);
return NULL;
}
@@ -1352,7 +1364,7 @@ ran_ue_t *ran_ue_add(amf_gnb_t *gnb, uint32_t ran_ue_ngap_id)
ran_ue->gnb_ostream_id =
OGS_NEXT_ID(gnb->ostream_id, 1, gnb->max_num_of_ostreams-1);
- ran_ue->gnb = gnb;
+ ran_ue->gnb_id = gnb->id;
ogs_list_add(&gnb->ran_ue_list, ran_ue);
@@ -1363,37 +1375,44 @@ ran_ue_t *ran_ue_add(amf_gnb_t *gnb, uint32_t ran_ue_ngap_id)
void ran_ue_remove(ran_ue_t *ran_ue)
{
+ amf_gnb_t *gnb = NULL;
+
ogs_assert(ran_ue);
- ogs_assert(ran_ue->gnb);
- ogs_list_remove(&ran_ue->gnb->ran_ue_list, ran_ue);
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
+
+ if (gnb) ogs_list_remove(&gnb->ran_ue_list, ran_ue);
ogs_assert(ran_ue->t_ng_holding);
ogs_timer_delete(ran_ue->t_ng_holding);
- ogs_pool_free(&ran_ue_pool, ran_ue);
+ ogs_pool_id_free(&ran_ue_pool, ran_ue);
stats_remove_ran_ue();
}
void ran_ue_switch_to_gnb(ran_ue_t *ran_ue, amf_gnb_t *new_gnb)
{
+ amf_gnb_t *gnb = NULL;
+
ogs_assert(ran_ue);
- ogs_assert(ran_ue->gnb);
ogs_assert(new_gnb);
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
+ ogs_assert(gnb);
+
/* Remove from the old gnb */
- ogs_list_remove(&ran_ue->gnb->ran_ue_list, ran_ue);
+ ogs_list_remove(&gnb->ran_ue_list, ran_ue);
/* Add to the new gnb */
ogs_list_add(&new_gnb->ran_ue_list, ran_ue);
/* Switch to gnb */
- ran_ue->gnb = new_gnb;
+ ran_ue->gnb_id = new_gnb->id;
}
ran_ue_t *ran_ue_find_by_ran_ue_ngap_id(
- amf_gnb_t *gnb, uint32_t ran_ue_ngap_id)
+ amf_gnb_t *gnb, uint64_t ran_ue_ngap_id)
{
ran_ue_t *ran_ue = NULL;
@@ -1415,9 +1434,9 @@ ran_ue_t *ran_ue_find_by_amf_ue_ngap_id(uint64_t amf_ue_ngap_id)
return ran_ue_find(amf_ue_ngap_id);
}
-ran_ue_t *ran_ue_cycle(ran_ue_t *ran_ue)
+ran_ue_t *ran_ue_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&ran_ue_pool, ran_ue);
+ return ogs_pool_find_by_id(&ran_ue_pool, id);
}
void amf_ue_new_guti(amf_ue_t *amf_ue)
@@ -1496,7 +1515,7 @@ void amf_ue_confirm_guti(amf_ue_t *amf_ue)
* by performing the generic UE configuration update procedure.
*/
- /* Copying from Current to Next Guti */
+ /* Copying from Next to Current Guti */
amf_ue->current.m_tmsi = amf_ue->next.m_tmsi;
memcpy(&amf_ue->current.guti,
&amf_ue->next.guti, sizeof(ogs_nas_5gs_guti_t));
@@ -1515,39 +1534,44 @@ amf_ue_t *amf_ue_add(ran_ue_t *ran_ue)
amf_ue_t *amf_ue = NULL;
ogs_assert(ran_ue);
- gnb = ran_ue->gnb;
- ogs_assert(gnb);
- ogs_pool_alloc(&amf_ue_pool, &amf_ue);
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
+ if (!gnb) {
+ ogs_error("[%d] gNB has already been removed", ran_ue->gnb_id);
+ return NULL;
+ }
+
+ ogs_pool_id_calloc(&amf_ue_pool, &amf_ue);
if (amf_ue == NULL) {
ogs_error("Could not allocate amf_ue context from pool");
return NULL;
}
- memset(amf_ue, 0, sizeof *amf_ue);
-
/* Add All Timers */
amf_ue->t3513.timer = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_t3513_expire, amf_ue);
+ ogs_app()->timer_mgr, amf_timer_t3513_expire,
+ OGS_UINT_TO_POINTER(amf_ue->id));
if (!amf_ue->t3513.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->t3513.pkbuf = NULL;
amf_ue->t3522.timer = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_t3522_expire, amf_ue);
+ ogs_app()->timer_mgr, amf_timer_t3522_expire,
+ OGS_UINT_TO_POINTER(amf_ue->id));
if (!amf_ue->t3522.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->t3522.pkbuf = NULL;
amf_ue->t3550.timer = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_t3550_expire, amf_ue);
+ ogs_app()->timer_mgr, amf_timer_t3550_expire,
+ OGS_UINT_TO_POINTER(amf_ue->id));
if (!amf_ue->t3550.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->t3550.pkbuf = NULL;
@@ -1555,39 +1579,43 @@ amf_ue_t *amf_ue_add(ran_ue_t *ran_ue)
ogs_app()->timer_mgr, amf_timer_t3555_expire, amf_ue);
if (!amf_ue->t3555.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->t3555.pkbuf = NULL;
amf_ue->t3560.timer = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_t3560_expire, amf_ue);
+ ogs_app()->timer_mgr, amf_timer_t3560_expire,
+ OGS_UINT_TO_POINTER(amf_ue->id));
if (!amf_ue->t3560.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->t3560.pkbuf = NULL;
amf_ue->t3570.timer = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_t3570_expire, amf_ue);
+ ogs_app()->timer_mgr, amf_timer_t3570_expire,
+ OGS_UINT_TO_POINTER(amf_ue->id));
if (!amf_ue->t3570.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->t3570.pkbuf = NULL;
amf_ue->mobile_reachable.timer = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_mobile_reachable_expire, amf_ue);
+ ogs_app()->timer_mgr, amf_timer_mobile_reachable_expire,
+ OGS_UINT_TO_POINTER(amf_ue->id));
if (!amf_ue->mobile_reachable.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->mobile_reachable.pkbuf = NULL;
amf_ue->implicit_deregistration.timer = ogs_timer_add(
- ogs_app()->timer_mgr, amf_timer_implicit_deregistration_expire, amf_ue);
+ ogs_app()->timer_mgr, amf_timer_implicit_deregistration_expire,
+ OGS_UINT_TO_POINTER(amf_ue->id));
if (!amf_ue->implicit_deregistration.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
return NULL;
}
amf_ue->implicit_deregistration.pkbuf = NULL;
@@ -1600,6 +1628,7 @@ amf_ue_t *amf_ue_add(ran_ue_t *ran_ue)
OGS_SBI_NPCF_AM_POLICY_CONTROL_UE_AMBR_AUTHORIZATION);
amf_ue->rat_restrictions = OpenAPI_list_create();
+ amf_ue->to_release_session_list = OpenAPI_list_create();
ogs_list_init(&amf_ue->sess_list);
@@ -1639,6 +1668,7 @@ void amf_ue_remove(amf_ue_t *amf_ue)
AMF_UE_CLEAR_5GSM_MESSAGE(amf_ue);
OpenAPI_list_free(amf_ue->rat_restrictions);
+ OpenAPI_list_free(amf_ue->to_release_session_list);
/* Remove all session context */
amf_sess_remove_all(amf_ue);
@@ -1671,13 +1701,17 @@ void amf_ue_remove(amf_ue_t *amf_ue)
/* Clear SubscribedInfo */
amf_clear_subscribed_info(amf_ue);
- if (amf_ue->policy_association_id)
- ogs_free(amf_ue->policy_association_id);
- if (amf_ue->data_change_subscription_id)
- ogs_free(amf_ue->data_change_subscription_id);
+ PCF_AM_POLICY_CLEAR(amf_ue);
+ if (amf_ue->policy_association.client)
+ ogs_sbi_client_remove(amf_ue->policy_association.client);
+
+ UDM_SDM_CLEAR(amf_ue);
+ if (amf_ue->data_change_subscription.client)
+ ogs_sbi_client_remove(amf_ue->data_change_subscription.client);
- if (amf_ue->confirmation_url_for_5g_aka)
- ogs_free(amf_ue->confirmation_url_for_5g_aka);
+ CLEAR_5G_AKA_CONFIRMATION(amf_ue);
+ if (amf_ue->confirmation_for_5g_aka.client)
+ ogs_sbi_client_remove(amf_ue->confirmation_for_5g_aka.client);
/* Free UeRadioCapability */
OGS_ASN_CLEAR_DATA(&amf_ue->ueRadioCapability);
@@ -1704,7 +1738,7 @@ void amf_ue_remove(amf_ue_t *amf_ue)
amf_ue_deassociate(amf_ue);
- ogs_pool_free(&amf_ue_pool, amf_ue);
+ ogs_pool_id_free(&amf_ue_pool, amf_ue);
ogs_info("[Removed] Number of AMF-UEs is now %d",
ogs_list_count(&self.amf_ue_list));
@@ -1715,7 +1749,7 @@ void amf_ue_remove_all(void)
amf_ue_t *amf_ue = NULL, *next = NULL;;
ogs_list_for_each_safe(&self.amf_ue_list, next, amf_ue) {
- ran_ue_t *ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue_t *ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (ran_ue) ran_ue_remove(ran_ue);
@@ -1730,7 +1764,7 @@ void amf_ue_fsm_init(amf_ue_t *amf_ue)
ogs_assert(amf_ue);
memset(&e, 0, sizeof(e));
- e.amf_ue = amf_ue;
+ e.amf_ue_id = amf_ue->id;
ogs_fsm_init(&amf_ue->sm, gmm_state_initial, gmm_state_final, &e);
}
@@ -1741,7 +1775,7 @@ void amf_ue_fsm_fini(amf_ue_t *amf_ue)
ogs_assert(amf_ue);
memset(&e, 0, sizeof(e));
- e.amf_ue = amf_ue;
+ e.amf_ue_id = amf_ue->id;
ogs_fsm_fini(&amf_ue->sm, &e);
}
@@ -1951,6 +1985,100 @@ amf_ue_t *amf_ue_find_by_message(ogs_nas_5gs_message_t *message)
return amf_ue;
}
+static bool amf_namf_comm_parse_guti(ogs_nas_5gs_guti_t *guti, char *ue_context_id)
+{
+#define MIN_LENGTH_OF_MNC 2
+#define MAX_LENGTH_OF_MNC 3
+#define LENGTH_OF_MCC 3
+#define LENGTH_OF_AMF_ID 6
+#define LENGTH_OF_TMSI 8
+
+ char amf_id_string[LENGTH_OF_AMF_ID + 1];
+ char tmsi_string[LENGTH_OF_TMSI + 1];
+ char mcc_string[LENGTH_OF_MCC + 1];
+ char mnc_string[MAX_LENGTH_OF_MNC + 1];
+ OpenAPI_plmn_id_t Plmn_id;
+ ogs_plmn_id_t plmn_id;
+
+ /* TS29.518 6.1.3.2.2 Guti pattern (27 or 28 characters):
+ "5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}" */
+
+ short index = 8; /* start parsing guti after "5g-guti-" */
+
+ ogs_cpystrn(mcc_string, &ue_context_id[index], LENGTH_OF_MCC+1);
+ index += LENGTH_OF_MCC;
+
+ if (strlen(ue_context_id) == OGS_MAX_5G_GUTI_LEN - 1) {
+ /* mnc is 2 characters long */
+ ogs_cpystrn(mnc_string, &ue_context_id[index], MIN_LENGTH_OF_MNC+1);
+ index += MIN_LENGTH_OF_MNC;
+ } else if (strlen(ue_context_id) == OGS_MAX_5G_GUTI_LEN) {
+ /* mnc is 3 characters long */
+ ogs_cpystrn(mnc_string, &ue_context_id[index], MAX_LENGTH_OF_MNC+1);
+ index += MAX_LENGTH_OF_MNC;
+ } else {
+ ogs_error("Invalid Ue context id");
+ return false;
+ }
+
+ ogs_cpystrn(amf_id_string, &ue_context_id[index], LENGTH_OF_AMF_ID+1);
+ index += LENGTH_OF_AMF_ID;
+
+ ogs_cpystrn(tmsi_string, &ue_context_id[index], LENGTH_OF_TMSI+1);
+
+ memset(&Plmn_id, 0, sizeof(Plmn_id));
+ Plmn_id.mcc = mcc_string;
+ Plmn_id.mnc = mnc_string;
+
+ memset(&plmn_id, 0, sizeof(plmn_id));
+ ogs_sbi_parse_plmn_id(&plmn_id, &Plmn_id);
+ ogs_nas_from_plmn_id(&guti->nas_plmn_id, &plmn_id);
+ ogs_amf_id_from_string(&guti->amf_id, amf_id_string);
+
+ guti->m_tmsi = (u_int32_t)strtol(tmsi_string, NULL, 16);
+ return true;
+}
+
+amf_ue_t *amf_ue_find_by_ue_context_id(char *ue_context_id)
+{
+ amf_ue_t *amf_ue = NULL;
+
+ ogs_assert(ue_context_id);
+
+ if (strncmp(ue_context_id, OGS_ID_SUPI_TYPE_IMSI,
+ strlen(OGS_ID_SUPI_TYPE_IMSI)) == 0) {
+
+ amf_ue = amf_ue_find_by_supi(ue_context_id);
+ if (!amf_ue) {
+ ogs_info("[%s] Unknown UE by SUPI", ue_context_id);
+ return NULL;
+ }
+
+ } else if (strncmp(ue_context_id, OGS_ID_5G_GUTI_TYPE,
+ strlen(OGS_ID_5G_GUTI_TYPE)) == 0) {
+
+ ogs_nas_5gs_guti_t guti;
+ memset(&guti, 0, sizeof(guti));
+
+ if (amf_namf_comm_parse_guti(&guti, ue_context_id) == false) {
+ ogs_error("amf_namf_comm_parse_guti() failed");
+ return NULL;
+ }
+
+ amf_ue = amf_ue_find_by_guti(&guti);
+ if (!amf_ue) {
+ ogs_info("[%s] Unknown UE by GUTI", ue_context_id);
+ return NULL;
+ }
+
+ } else {
+ ogs_error("Unsupported UE context ID type");
+ return NULL;
+ }
+
+ return amf_ue;
+}
+
void amf_ue_set_suci(amf_ue_t *amf_ue,
ogs_nas_5gs_mobile_identity_t *mobile_identity)
{
@@ -1972,12 +2100,20 @@ void amf_ue_set_suci(amf_ue_t *amf_ue,
ogs_pool_index(&amf_ue_pool, old_amf_ue)) {
ogs_warn("[%s] OLD UE Context Release", suci);
if (CM_CONNECTED(old_amf_ue)) {
+ ran_ue_t *ran_ue = ran_ue_find_by_id(old_amf_ue->ran_ue_id);
/* Implcit NG release */
ogs_warn("[%s] Implicit NG release", suci);
- ogs_warn("[%s] RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- old_amf_ue->suci, old_amf_ue->ran_ue->ran_ue_ngap_id,
- (long long)old_amf_ue->ran_ue->amf_ue_ngap_id);
- ran_ue_remove(old_amf_ue->ran_ue);
+ if (ran_ue) {
+ ogs_warn("[%s] RAN_UE_NGAP_ID[%lld] "
+ "AMF_UE_NGAP_ID[%lld]",
+ old_amf_ue->suci,
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
+ ran_ue_remove(ran_ue);
+ } else {
+ ogs_error("[%s] RAN-NG Context has already been removed",
+ old_amf_ue->suci);
+ }
}
/*
@@ -1995,7 +2131,7 @@ void amf_ue_set_suci(amf_ue_t *amf_ue,
/* Phase-1 : Change AMF-UE Context in Session Context */
ogs_list_for_each(&old_amf_ue->sess_list, old_sess)
- old_sess->amf_ue = amf_ue;
+ old_sess->amf_ue_id = amf_ue->id;
/* Phase-2 : Move Session Context from OLD to NEW AMF-UE Context */
memcpy(&amf_ue->sess_list,
@@ -2034,10 +2170,17 @@ OpenAPI_rat_type_e amf_ue_rat_type(amf_ue_t *amf_ue)
amf_gnb_t *gnb = NULL;
ran_ue_t *ran_ue = NULL;
- ran_ue = amf_ue->ran_ue;
- ogs_assert(ran_ue);
- gnb = ran_ue->gnb;
- ogs_assert(gnb);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] RAN-NG Context has already been removed", amf_ue->suci);
+ return OpenAPI_rat_type_NULL;
+ }
+
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
+ if (!gnb) {
+ ogs_error("[%d] gNB has already been removed", ran_ue->gnb_id);
+ return OpenAPI_rat_type_NULL;
+ }
return gnb->rat_type;
}
@@ -2047,35 +2190,31 @@ void amf_ue_associate_ran_ue(amf_ue_t *amf_ue, ran_ue_t *ran_ue)
ogs_assert(amf_ue);
ogs_assert(ran_ue);
- amf_ue->ran_ue = ran_ue;
- ran_ue->amf_ue = amf_ue;
+ amf_ue->ran_ue_id = ran_ue->id;
+ ran_ue->amf_ue_id = amf_ue->id;
}
void ran_ue_deassociate(ran_ue_t *ran_ue)
{
ogs_assert(ran_ue);
- ran_ue->amf_ue = NULL;
+ ran_ue->amf_ue_id = OGS_INVALID_POOL_ID;
}
void amf_ue_deassociate(amf_ue_t *amf_ue)
{
ogs_assert(amf_ue);
- amf_ue->ran_ue = NULL;
+ amf_ue->ran_ue_id = OGS_INVALID_POOL_ID;
}
void source_ue_associate_target_ue(
ran_ue_t *source_ue, ran_ue_t *target_ue)
{
- amf_ue_t *amf_ue = NULL;
-
ogs_assert(source_ue);
ogs_assert(target_ue);
- amf_ue = source_ue->amf_ue;
- ogs_assert(amf_ue);
- target_ue->amf_ue = amf_ue;
- target_ue->source_ue = source_ue;
- source_ue->target_ue = target_ue;
+ target_ue->amf_ue_id = source_ue->amf_ue_id;
+ target_ue->source_ue_id = source_ue->id;
+ source_ue->target_ue_id = target_ue->id;
}
void source_ue_deassociate_target_ue(ran_ue_t *ran_ue)
@@ -2084,22 +2223,28 @@ void source_ue_deassociate_target_ue(ran_ue_t *ran_ue)
ran_ue_t *target_ue = NULL;
ogs_assert(ran_ue);
- if (ran_ue->target_ue) {
+ if (ran_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ ran_ue->target_ue_id <= OGS_MAX_POOL_ID) {
source_ue = ran_ue;
- target_ue = ran_ue->target_ue;
-
- ogs_assert(source_ue->target_ue);
- ogs_assert(target_ue->source_ue);
- source_ue->target_ue = NULL;
- target_ue->source_ue = NULL;
- } else if (ran_ue->source_ue) {
+ target_ue = ran_ue_find_by_id(ran_ue->target_ue_id);
+
+ ogs_assert(source_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ source_ue->target_ue_id <= OGS_MAX_POOL_ID);
+ ogs_assert(target_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ target_ue->source_ue_id <= OGS_MAX_POOL_ID);
+ source_ue->target_ue_id = OGS_INVALID_POOL_ID;
+ target_ue->source_ue_id = OGS_INVALID_POOL_ID;
+ } else if (ran_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ ran_ue->source_ue_id <= OGS_MAX_POOL_ID) {
target_ue = ran_ue;
- source_ue = ran_ue->source_ue;
-
- ogs_assert(source_ue->target_ue);
- ogs_assert(target_ue->source_ue);
- source_ue->target_ue = NULL;
- target_ue->source_ue = NULL;
+ source_ue = ran_ue_find_by_id(ran_ue->source_ue_id);
+
+ ogs_assert(source_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ source_ue->target_ue_id <= OGS_MAX_POOL_ID);
+ ogs_assert(target_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ target_ue->source_ue_id <= OGS_MAX_POOL_ID);
+ source_ue->target_ue_id = OGS_INVALID_POOL_ID;
+ target_ue->source_ue_id = OGS_INVALID_POOL_ID;
}
}
@@ -2110,17 +2255,17 @@ amf_sess_t *amf_sess_add(amf_ue_t *amf_ue, uint8_t psi)
ogs_assert(amf_ue);
ogs_assert(psi != OGS_NAS_PDU_SESSION_IDENTITY_UNASSIGNED);
- ogs_pool_alloc(&amf_sess_pool, &sess);
+ ogs_pool_id_calloc(&amf_sess_pool, &sess);
ogs_assert(sess);
- memset(sess, 0, sizeof *sess);
sess->sbi.type = OGS_SBI_OBJ_SESS_TYPE;
- sess->amf_ue = amf_ue;
+ sess->amf_ue_id = amf_ue->id;
sess->psi = psi;
sess->s_nssai.sst = 0;
sess->s_nssai.sd.v = OGS_S_NSSAI_NO_SD_VALUE;
+ sess->mapped_hplmn_presence = false;
sess->mapped_hplmn.sst = 0;
sess->mapped_hplmn.sd.v = OGS_S_NSSAI_NO_SD_VALUE;
@@ -2133,10 +2278,15 @@ amf_sess_t *amf_sess_add(amf_ue_t *amf_ue, uint8_t psi)
void amf_sess_remove(amf_sess_t *sess)
{
+ amf_ue_t *amf_ue = NULL;
+
ogs_assert(sess);
- ogs_assert(sess->amf_ue);
- ogs_list_remove(&sess->amf_ue->sess_list, sess);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
+ if (amf_ue)
+ ogs_list_remove(&amf_ue->sess_list, sess);
+ else
+ ogs_error("UE(amf-ue) context has already been removed");
/* Free SBI object memory */
if (ogs_list_count(&sess->sbi.xact_list))
@@ -2144,8 +2294,10 @@ void amf_sess_remove(amf_sess_t *sess)
ogs_list_count(&sess->sbi.xact_list));
ogs_sbi_object_free(&sess->sbi);
- if (sess->sm_context_ref)
- ogs_free(sess->sm_context_ref);
+ CLEAR_SESSION_CONTEXT(sess);
+
+ if (sess->sm_context.client)
+ ogs_sbi_client_remove(sess->sm_context.client);
if (sess->payload_container)
ogs_pkbuf_free(sess->payload_container);
@@ -2171,7 +2323,7 @@ void amf_sess_remove(amf_sess_t *sess)
if (sess->nssf.nrf.client)
ogs_sbi_client_remove(sess->nssf.nrf.client);
- ogs_pool_free(&amf_sess_pool, sess);
+ ogs_pool_id_free(&amf_sess_pool, sess);
stats_remove_amf_session();
}
@@ -2196,14 +2348,14 @@ amf_sess_t *amf_sess_find_by_psi(amf_ue_t *amf_ue, uint8_t psi)
return NULL;
}
-amf_ue_t *amf_ue_cycle(amf_ue_t *amf_ue)
+amf_ue_t *amf_ue_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&amf_ue_pool, amf_ue);
+ return ogs_pool_find_by_id(&amf_ue_pool, id);
}
-amf_sess_t *amf_sess_cycle(amf_sess_t *sess)
+amf_sess_t *amf_sess_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&amf_sess_pool, sess);
+ return ogs_pool_find_by_id(&amf_sess_pool, id);
}
void amf_sbi_select_nf(
@@ -2214,7 +2366,6 @@ void amf_sbi_select_nf(
{
OpenAPI_nf_type_e target_nf_type = OpenAPI_nf_type_NULL;
ogs_sbi_nf_instance_t *nf_instance = NULL;
- amf_sess_t *sess = NULL;
ogs_assert(sbi_object);
ogs_assert(service_type);
@@ -2222,35 +2373,11 @@ void amf_sbi_select_nf(
ogs_assert(target_nf_type);
ogs_assert(requester_nf_type);
- switch(sbi_object->type) {
- case OGS_SBI_OBJ_UE_TYPE:
- nf_instance = ogs_sbi_nf_instance_find_by_discovery_param(
- target_nf_type, requester_nf_type, discovery_option);
- if (nf_instance)
- OGS_SBI_SETUP_NF_INSTANCE(
- sbi_object->service_type_array[service_type], nf_instance);
- break;
- case OGS_SBI_OBJ_SESS_TYPE:
- sess = (amf_sess_t *)sbi_object;
- ogs_assert(sess);
-
- ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance) {
- if (ogs_sbi_discovery_param_is_matched(
- nf_instance,
- target_nf_type, requester_nf_type, discovery_option) ==
- false)
- continue;
-
- OGS_SBI_SETUP_NF_INSTANCE(
- sbi_object->service_type_array[service_type], nf_instance);
- break;
- }
- break;
- default:
- ogs_fatal("(NF discover search result) Not implemented [%d]",
- sbi_object->type);
- ogs_assert_if_reached();
- }
+ nf_instance = ogs_sbi_nf_instance_find_by_discovery_param(
+ target_nf_type, requester_nf_type, discovery_option);
+ if (nf_instance)
+ OGS_SBI_SETUP_NF_INSTANCE(
+ sbi_object->service_type_array[service_type], nf_instance);
}
int amf_sess_xact_count(amf_ue_t *amf_ue)
@@ -2487,7 +2614,8 @@ int amf_m_tmsi_free(amf_m_tmsi_t *m_tmsi)
ogs_assert(m_tmsi);
/* Restore M-TMSI by Issue #2307 */
- *m_tmsi &= 0x003fffff;
+ *m_tmsi &= 0x3fffffff;
+ *m_tmsi = ((*m_tmsi & 0xffff) | ((*m_tmsi & 0x3f000000) >> 8));
ogs_pool_free(&m_tmsi_pool, m_tmsi);
return OGS_OK;
@@ -2641,15 +2769,16 @@ bool amf_update_allowed_nssai(amf_ue_t *amf_ue)
ran_ue_t *ran_ue = NULL;
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
ogs_error("[%s] RAN-NG Context has already been removed",
amf_ue->supi);
return false;
}
- gnb = amf_gnb_cycle(ran_ue->gnb);
+
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
if (!gnb) {
- ogs_error("gNB has already been removed");
+ ogs_error("[%d] gNB has already been removed", ran_ue->gnb_id);
return false;
}
@@ -2746,7 +2875,7 @@ bool amf_update_allowed_nssai(amf_ue_t *amf_ue)
s_nssai[amf_ue->rejected_nssai.num_of_s_nssai];
bool ta_supported = false;
-
+ ogs_assert(amf_ue->num_of_slice);
slice = ogs_slice_find_by_s_nssai(
amf_ue->slice, amf_ue->num_of_slice,
(ogs_s_nssai_t *)requested);
@@ -2759,6 +2888,8 @@ bool amf_update_allowed_nssai(amf_ue_t *amf_ue)
allowed->sst = requested->sst;
allowed->sd.v = requested->sd.v;
+ allowed->mapped_hplmn_sst_presence =
+ requested->mapped_hplmn_sst_presence;
allowed->mapped_hplmn_sst = requested->mapped_hplmn_sst;
allowed->mapped_hplmn_sd.v = requested->mapped_hplmn_sd.v;
@@ -2795,6 +2926,7 @@ bool amf_update_allowed_nssai(amf_ue_t *amf_ue)
allowed->sst = slice->s_nssai.sst;
allowed->sd.v = slice->s_nssai.sd.v;
+ allowed->mapped_hplmn_sst_presence = false;
allowed->mapped_hplmn_sst = 0;
allowed->mapped_hplmn_sd.v = OGS_S_NSSAI_NO_SD_VALUE;
@@ -2877,3 +3009,34 @@ bool amf_ue_is_rat_restricted(amf_ue_t *amf_ue)
}
return false;
}
+
+void amf_ue_save_to_release_session_list(amf_ue_t *amf_ue)
+{
+ amf_sess_t *sess = NULL;
+
+ OpenAPI_list_clear(amf_ue->to_release_session_list);
+
+ ogs_list_for_each(&amf_ue->sess_list, sess) {
+ bool supported_s_nssai = false;
+ int i;
+ for (i = 0; i < amf_self()->num_of_plmn_support; i++) {
+ int j;
+ for (j = 0; j < amf_self()->plmn_support[i].num_of_s_nssai; j++) {
+ if (memcmp(&sess->s_nssai,
+ &amf_self()->plmn_support[i].s_nssai[j],
+ sizeof(ogs_s_nssai_t)) == 0) {
+ supported_s_nssai = true;
+ break;
+ }
+ }
+ if (supported_s_nssai)
+ break;
+ }
+ if (!supported_s_nssai) {
+ double *psi = ogs_calloc(1, sizeof(*psi));
+ ogs_assert(psi);
+ *psi = (double)sess->psi;
+ OpenAPI_list_add(amf_ue->to_release_session_list, psi);
+ }
+ }
+}
diff --git a/src/amf/context.h b/src/amf/context.h
index f10262887e..92732dd1dd 100644
--- a/src/amf/context.h
+++ b/src/amf/context.h
@@ -45,6 +45,14 @@ typedef struct amf_ue_s amf_ue_t;
typedef uint32_t amf_m_tmsi_t;
+typedef enum {
+ UE_CONTEXT_INITIAL_STATE = 0,
+ UE_CONTEXT_TRANSFER_OLD_AMF_STATE,
+ UE_CONTEXT_TRANSFER_NEW_AMF_STATE,
+ REGISTRATION_STATUS_UPDATE_OLD_AMF_STATE,
+ REGISTRATION_STATUS_UPDATE_NEW_AMF_STATE,
+} amf_ue_context_transfer_state_t;
+
typedef struct amf_context_s {
/* Served GUAMI */
int num_of_served_guami;
@@ -127,8 +135,11 @@ typedef struct amf_context_s {
typedef struct amf_gnb_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
+
ogs_fsm_t sm; /* A state machine */
+ bool gnb_id_presence;
uint32_t gnb_id; /* gNB_ID received from gNB */
ogs_plmn_id_t plmn_id; /* gNB PLMN-ID received from gNB */
ogs_sctp_sock_t sctp; /* SCTP socket */
@@ -162,10 +173,11 @@ typedef struct amf_gnb_s {
struct ran_ue_s {
ogs_lnode_t lnode;
uint32_t index;
+ ogs_pool_id_t id;
/* UE identity */
-#define INVALID_UE_NGAP_ID 0xffffffff /* Initial value of ran_ue_ngap_id */
- uint32_t ran_ue_ngap_id; /* eNB-UE-NGAP-ID received from eNB */
+#define INVALID_UE_NGAP_ID 0xffffffffffffffffULL /* Initial value of ran_ue_ngap_id */
+ uint64_t ran_ue_ngap_id; /* RAN-UE-NGAP-ID received from RAN */
uint64_t amf_ue_ngap_id; /* AMF-UE-NGAP-ID received from AMF */
uint16_t gnb_ostream_id; /* SCTP output stream id for eNB */
@@ -176,13 +188,14 @@ struct ran_ue_s {
#define CONTEXT_SETUP_ESTABLISHED(__aMF) \
CM_CONNECTED(__aMF) && \
- ((__aMF)->ran_ue->initial_context_setup_response_received == true)
+ (ran_ue_find_by_id((__aMF)->ran_ue_id)-> \
+ initial_context_setup_response_received == true)
bool initial_context_setup_response_received;
bool ue_ambr_sent;
/* Handover Info */
- ran_ue_t *source_ue;
- ran_ue_t *target_ue;
+ ogs_pool_id_t source_ue_id;
+ ogs_pool_id_t target_ue_id;
/* Use amf_ue->nr_tai, amf_ue->nr_cgi.
* Do not access ran_ue->saved.tai ran_ue->saved.nr_cgi.
@@ -213,13 +226,21 @@ struct ran_ue_s {
uint16_t activated; /* Activated PSI Mask */
} psimask;
+ /* UEContextReleaseRequest or InitialContextSetupFailure */
+ struct {
+ NGAP_Cause_PR group;
+ long cause;
+ } deactivation;
+
/* Related Context */
- amf_gnb_t *gnb;
- amf_ue_t *amf_ue;
+ ogs_pool_id_t gnb_id;
+ ogs_pool_id_t amf_ue_id;
};
struct amf_ue_s {
ogs_sbi_object_t sbi;
+ ogs_pool_id_t id;
+
ogs_fsm_t sm;
struct {
@@ -247,6 +268,8 @@ struct amf_ue_s {
/* UE identity */
#define AMF_UE_HAVE_SUCI(__aMF) \
((__aMF) && ((__aMF)->suci))
+#define AMF_UE_HAVE_SUPI(__aMF) \
+ ((__aMF) && ((__aMF)->supi))
char *suci; /* TS33.501 : SUCI */
char *supi; /* TS33.501 : SUPI */
ogs_nas_5gs_mobile_identity_suci_t nas_mobile_identity_suci;
@@ -268,6 +291,11 @@ struct amf_ue_s {
ogs_nas_5gs_guti_t guti;
} current, next;
+ /* UE context transfer and Registration status update */
+ ogs_nas_5gs_guti_t old_guti;
+ amf_ue_context_transfer_state_t amf_ue_context_transfer_state;
+ OpenAPI_list_t *to_release_session_list;
+
/* UE Info */
ogs_guami_t *guami;
uint16_t gnb_ostream_id;
@@ -290,13 +318,33 @@ struct amf_ue_s {
/* PCF sends the RESPONSE
* of [POST] /npcf-am-polocy-control/v1/policies */
#define PCF_AM_POLICY_ASSOCIATED(__aMF) \
- ((__aMF) && ((__aMF)->policy_association_id))
-
+ ((__aMF) && ((__aMF)->policy_association.id))
#define PCF_AM_POLICY_CLEAR(__aMF) \
- OGS_MEM_CLEAR((__aMF)->policy_association_id);
-#define PCF_AM_POLICY_STORE(__aMF, __iD) \
- OGS_STRING_DUP((__aMF)->policy_association_id, __iD);
- char *policy_association_id;
+ do { \
+ ogs_assert((__aMF)); \
+ if ((__aMF)->policy_association.resource_uri) \
+ ogs_free((__aMF)->policy_association.resource_uri); \
+ (__aMF)->policy_association.resource_uri = NULL; \
+ if ((__aMF)->policy_association.id) \
+ ogs_free((__aMF)->policy_association.id); \
+ (__aMF)->policy_association.id = NULL; \
+ } while(0)
+#define PCF_AM_POLICY_STORE(__aMF, __rESOURCE_URI, __iD) \
+ do { \
+ ogs_assert((__aMF)); \
+ ogs_assert((__rESOURCE_URI)); \
+ ogs_assert((__iD)); \
+ PCF_AM_POLICY_CLEAR(__aMF); \
+ (__aMF)->policy_association.resource_uri = ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__aMF)->policy_association.resource_uri); \
+ (__aMF)->policy_association.id = ogs_strdup(__iD); \
+ ogs_assert((__aMF)->policy_association.id); \
+ } while(0)
+ struct {
+ char *resource_uri;
+ char *id;
+ ogs_sbi_client_t *client;
+ } policy_association;
/* 5GMM Capability */
struct {
@@ -322,7 +370,27 @@ struct amf_ue_s {
/* Security Context */
ogs_nas_ue_security_capability_t ue_security_capability;
ogs_nas_ue_network_capability_t ue_network_capability;
- char *confirmation_url_for_5g_aka;
+#define CHECK_5G_AKA_CONFIRMATION(__aMF) \
+ ((__aMF) && ((__aMF)->confirmation_for_5g_aka.resource_uri))
+#define STORE_5G_AKA_CONFIRMATION(__aMF, __rESOURCE_URI) \
+ do { \
+ ogs_assert((__aMF)); \
+ CLEAR_5G_AKA_CONFIRMATION(__aMF); \
+ (__aMF)->confirmation_for_5g_aka.resource_uri = \
+ ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__aMF)->confirmation_for_5g_aka.resource_uri); \
+ } while(0)
+#define CLEAR_5G_AKA_CONFIRMATION(__aMF) \
+ do { \
+ ogs_assert((__aMF)); \
+ if ((__aMF)->confirmation_for_5g_aka.resource_uri) \
+ ogs_free((__aMF)->confirmation_for_5g_aka.resource_uri); \
+ (__aMF)->confirmation_for_5g_aka.resource_uri = NULL; \
+ } while(0)
+ struct {
+ char *resource_uri;
+ ogs_sbi_client_t *client;
+ } confirmation_for_5g_aka;
uint8_t rand[OGS_RAND_LEN];
uint8_t autn[OGS_AUTN_LEN];
uint8_t xres_star[OGS_MAX_RES_LEN];
@@ -375,51 +443,67 @@ struct amf_ue_s {
uint64_t am_policy_control_features; /* SBI Features */
#define CM_CONNECTED(__aMF) \
- ((__aMF) && ((__aMF)->ran_ue != NULL) && ran_ue_cycle((__aMF)->ran_ue))
+ ((__aMF) && \
+ ((__aMF)->ran_ue_id >= OGS_MIN_POOL_ID) && \
+ ((__aMF)->ran_ue_id <= OGS_MAX_POOL_ID) && \
+ (ran_ue_find_by_id((__aMF)->ran_ue_id)))
#define CM_IDLE(__aMF) \
((__aMF) && \
- (((__aMF)->ran_ue == NULL) || (ran_ue_cycle((__aMF)->ran_ue) == NULL)))
+ (((__aMF)->ran_ue_id < OGS_MIN_POOL_ID) || \
+ ((__aMF)->ran_ue_id > OGS_MAX_POOL_ID) || \
+ (ran_ue_find_by_id((__aMF)->ran_ue_id) == NULL)))
/* NG UE context */
- ran_ue_t *ran_ue;
+ ogs_pool_id_t ran_ue_id;
#define HOLDING_NG_CONTEXT(__aMF) \
do { \
- ran_ue_deassociate((__aMF)->ran_ue); \
+ ran_ue_t *ran_ue_holding = NULL; \
\
- (__aMF)->ran_ue_holding = ran_ue_cycle((__aMF)->ran_ue); \
- if ((__aMF)->ran_ue_holding) { \
+ (__aMF)->ran_ue_holding_id = OGS_INVALID_POOL_ID; \
+ \
+ ran_ue_holding = ran_ue_find_by_id((__aMF)->ran_ue_id); \
+ if (ran_ue_holding) { \
+ ran_ue_deassociate(ran_ue_holding); \
+ \
ogs_warn("[%s] Holding NG Context", (__aMF)->suci); \
- ogs_warn("[%s] RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]", \
- (__aMF)->suci, (__aMF)->ran_ue_holding->ran_ue_ngap_id, \
- (long long)(__aMF)->ran_ue_holding->amf_ue_ngap_id); \
+ ogs_warn("[%s] RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]", \
+ (__aMF)->suci, \
+ (long long)ran_ue_holding->ran_ue_ngap_id, \
+ (long long)ran_ue_holding->amf_ue_ngap_id); \
\
- (__aMF)->ran_ue_holding->ue_ctx_rel_action = \
+ ran_ue_holding->ue_ctx_rel_action = \
NGAP_UE_CTX_REL_NG_CONTEXT_REMOVE; \
- ogs_timer_start((__aMF)->ran_ue_holding->t_ng_holding, \
+ ogs_timer_start(ran_ue_holding->t_ng_holding, \
amf_timer_cfg(AMF_TIMER_NG_HOLDING)->duration); \
+ \
+ (__aMF)->ran_ue_holding_id = (__aMF)->ran_ue_id; \
} else \
ogs_error("[%s] NG Context has already been removed", \
(__aMF)->suci); \
} while(0)
#define CLEAR_NG_CONTEXT(__aMF) \
do { \
- if (ran_ue_cycle((__aMF)->ran_ue_holding)) { \
+ ran_ue_t *ran_ue_holding = NULL; \
+ \
+ ran_ue_holding = ran_ue_find_by_id((__aMF)->ran_ue_holding_id); \
+ if (ran_ue_holding) { \
int r; \
ogs_warn("[%s] Clear NG Context", (__aMF)->suci); \
- ogs_warn("[%s] RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]", \
- (__aMF)->suci, (__aMF)->ran_ue_holding->ran_ue_ngap_id, \
- (long long)(__aMF)->ran_ue_holding->amf_ue_ngap_id); \
+ ogs_warn("[%s] RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]", \
+ (__aMF)->suci, \
+ (long long)ran_ue_holding->ran_ue_ngap_id, \
+ (long long)ran_ue_holding->amf_ue_ngap_id); \
\
r = ngap_send_ran_ue_context_release_command( \
- (__aMF)->ran_ue_holding, \
+ ran_ue_holding, \
NGAP_Cause_PR_nas, NGAP_CauseNas_normal_release, \
NGAP_UE_CTX_REL_NG_CONTEXT_REMOVE, 0); \
ogs_expect(r == OGS_OK); \
ogs_assert(r != OGS_ERROR); \
} \
- (__aMF)->ran_ue_holding = NULL; \
+ (__aMF)->ran_ue_holding_id = OGS_INVALID_POOL_ID; \
} while(0)
- ran_ue_t *ran_ue_holding;
+ ogs_pool_id_t ran_ue_holding_id;
#define CLEAR_AMF_UE_ALL_TIMERS(__aMF) \
do { \
@@ -450,12 +534,6 @@ struct amf_ue_s {
/* UE Radio Capability */
OCTET_STRING_t ueRadioCapability;
- /* UEContextReleaseRequest or InitialContextSetupFailure */
- struct {
- NGAP_Cause_PR group;
- long cause;
- } deactivation;
-
/* Handover Info */
struct {
NGAP_HandoverType_t type;
@@ -466,8 +544,34 @@ struct amf_ue_s {
/* SubscriptionId of Subscription to Data Change Notification to UDM */
#define UDM_SDM_SUBSCRIBED(__aMF) \
- ((__aMF) && ((__aMF)->data_change_subscription_id))
- char *data_change_subscription_id;
+ ((__aMF) && ((__aMF)->data_change_subscription.id))
+#define UDM_SDM_CLEAR(__aMF) \
+ do { \
+ ogs_assert((__aMF)); \
+ if ((__aMF)->data_change_subscription.resource_uri) \
+ ogs_free((__aMF)->data_change_subscription.resource_uri); \
+ (__aMF)->data_change_subscription.resource_uri = NULL; \
+ if ((__aMF)->data_change_subscription.id) \
+ ogs_free((__aMF)->data_change_subscription.id); \
+ (__aMF)->data_change_subscription.id = NULL; \
+ } while(0)
+#define UDM_SDM_STORE(__aMF, __rESOURCE_URI, __iD) \
+ do { \
+ ogs_assert((__aMF)); \
+ ogs_assert((__rESOURCE_URI)); \
+ ogs_assert((__iD)); \
+ UDM_SDM_CLEAR(__aMF); \
+ (__aMF)->data_change_subscription.resource_uri = \
+ ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__aMF)->data_change_subscription.resource_uri); \
+ (__aMF)->data_change_subscription.id = ogs_strdup(__iD); \
+ ogs_assert((__aMF)->data_change_subscription.id); \
+ } while(0)
+ struct {
+ char *resource_uri;
+ char *id;
+ ogs_sbi_client_t *client;
+ } data_change_subscription;
struct {
/*
@@ -492,23 +596,45 @@ struct amf_ue_s {
typedef struct amf_sess_s {
ogs_sbi_object_t sbi;
+ ogs_pool_id_t id;
uint8_t psi; /* PDU Session Identity */
uint8_t pti; /* Procedure Trasaction Identity */
#define SESSION_CONTEXT_IN_SMF(__sESS) \
- ((__sESS) && (__sESS)->sm_context_ref)
-#define CLEAR_SM_CONTEXT_REF(__sESS) \
+ ((__sESS) && (__sESS)->sm_context.ref)
+#define STORE_SESSION_CONTEXT(__sESS, __rESOURCE_URI, __rEF) \
+ do { \
+ ogs_assert(__sESS); \
+ ogs_assert(__rESOURCE_URI); \
+ ogs_assert(__rEF); \
+ CLEAR_SESSION_CONTEXT(__sESS); \
+ (__sESS)->sm_context.resource_uri = ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__sESS)->sm_context.resource_uri); \
+ (__sESS)->sm_context.ref = ogs_strdup(__rEF); \
+ ogs_assert((__sESS)->sm_context.ref); \
+ } while(0);
+#define CLEAR_SESSION_CONTEXT(__sESS) \
do { \
ogs_assert(__sESS); \
- ogs_assert((__sESS)->sm_context_ref); \
- ogs_free((__sESS)->sm_context_ref); \
- (__sESS)->sm_context_ref = NULL; \
+ if ((__sESS)->sm_context.ref) \
+ ogs_free((__sESS)->sm_context.ref); \
+ (__sESS)->sm_context.ref = NULL; \
+ if ((__sESS)->sm_context.resource_uri) \
+ ogs_free((__sESS)->sm_context.resource_uri); \
+ (__sESS)->sm_context.resource_uri = NULL; \
} while(0);
/* SMF sends the RESPONSE
* of [POST] /nsmf-pdusession/v1/sm-contexts */
- char *sm_context_ref;
+ struct {
+ char *resource_uri;
+ char *ref;
+ ogs_sbi_client_t *client;
+ } sm_context;
+
+ bool pdu_session_release_complete_received;
+ bool pdu_session_resource_release_response_received;
/* SMF sends the REQUEST
* of [POST] /namf-comm/v1/ue-contexts/{supi}/n1-n2-messages */
@@ -565,10 +691,12 @@ typedef struct amf_sess_s {
#define AMF_SESS_STORE_N2_TRANSFER(__sESS, __n2Type, __n2Buf) \
do { \
ogs_assert(__sESS); \
- ogs_assert((__sESS)->amf_ue); \
if ((__sESS)->transfer.__n2Type) { \
- ogs_warn("[%s:%d] N2 transfer message duplicated. Overwritten", \
- ((__sESS)->amf_ue)->supi, (__sESS)->psi); \
+ amf_ue_t *amf_ue = amf_ue_find_by_id((__sESS)->amf_ue_id); \
+ if (amf_ue) \
+ ogs_warn("[%s:%d] " \
+ "N2 transfer message duplicated. Overwritten", \
+ amf_ue->supi, (__sESS)->psi); \
ogs_pkbuf_free((__sESS)->transfer.__n2Type); \
} \
(__sESS)->transfer.__n2Type = __n2Buf; \
@@ -642,22 +770,27 @@ typedef struct amf_sess_s {
#define AMF_SESS_STORE_5GSM_MESSAGE(__sESS, __tYPE, __n1Buf, __n2Buf) \
do { \
+ amf_ue_t *amf_ue = NULL; \
ogs_assert(__sESS); \
- ogs_assert((__sESS)->amf_ue); \
+ amf_ue = amf_ue_find_by_id((__sESS)->amf_ue_id); \
if ((__sESS)->gsm_message.n1buf) { \
- ogs_warn("[%s:%d] N1 message duplicated. Overwritten", \
- ((__sESS)->amf_ue)->supi, (__sESS)->psi); \
+ if (amf_ue) \
+ ogs_warn("[%s:%d] N1 message duplicated. Overwritten", \
+ amf_ue->supi, (__sESS)->psi); \
ogs_pkbuf_free((__sESS)->gsm_message.n1buf); \
} \
(__sESS)->gsm_message.n1buf = __n1Buf; \
- ogs_assert((__sESS)->gsm_message.n1buf); \
+ \
if ((__sESS)->gsm_message.n2buf) { \
- ogs_warn("[%s:%d] N2 message duplicated. Overwritten", \
- ((__sESS)->amf_ue)->supi, (__sESS)->psi); \
+ if (amf_ue) \
+ ogs_warn("[%s:%d] N2 message duplicated. Overwritten", \
+ amf_ue->supi, (__sESS)->psi); \
ogs_pkbuf_free((__sESS)->gsm_message.n2buf); \
} \
(__sESS)->gsm_message.n2buf = __n2Buf; \
+ \
ogs_assert((__sESS)->gsm_message.n2buf); \
+ \
(__sESS)->gsm_message.type = __tYPE; \
} while(0);
@@ -696,11 +829,12 @@ typedef struct amf_sess_s {
ogs_list_t bearer_list;
/* Related Context */
- amf_ue_t *amf_ue;
- ran_ue_t *ran_ue;
+ ogs_pool_id_t amf_ue_id;
+ ogs_pool_id_t ran_ue_id;
ogs_s_nssai_t s_nssai;
ogs_s_nssai_t mapped_hplmn;
+ bool mapped_hplmn_presence;
char *dnn;
} amf_sess_t;
@@ -719,16 +853,16 @@ amf_gnb_t *amf_gnb_find_by_addr(ogs_sockaddr_t *addr);
amf_gnb_t *amf_gnb_find_by_gnb_id(uint32_t gnb_id);
int amf_gnb_set_gnb_id(amf_gnb_t *gnb, uint32_t gnb_id);
int amf_gnb_sock_type(ogs_sock_t *sock);
-amf_gnb_t *amf_gnb_cycle(amf_gnb_t *gnb);
+amf_gnb_t *amf_gnb_find_by_id(ogs_pool_id_t id);
-ran_ue_t *ran_ue_add(amf_gnb_t *gnb, uint32_t ran_ue_ngap_id);
+ran_ue_t *ran_ue_add(amf_gnb_t *gnb, uint64_t ran_ue_ngap_id);
void ran_ue_remove(ran_ue_t *ran_ue);
void ran_ue_switch_to_gnb(ran_ue_t *ran_ue, amf_gnb_t *new_gnb);
ran_ue_t *ran_ue_find_by_ran_ue_ngap_id(
- amf_gnb_t *gnb, uint32_t ran_ue_ngap_id);
+ amf_gnb_t *gnb, uint64_t ran_ue_ngap_id);
ran_ue_t *ran_ue_find(uint32_t index);
ran_ue_t *ran_ue_find_by_amf_ue_ngap_id(uint64_t amf_ue_ngap_id);
-ran_ue_t *ran_ue_cycle(ran_ue_t *ran_ue);
+ran_ue_t *ran_ue_find_by_id(ogs_pool_id_t id);
void amf_ue_new_guti(amf_ue_t *amf_ue);
void amf_ue_confirm_guti(amf_ue_t *amf_ue);
@@ -743,6 +877,7 @@ void amf_ue_fsm_fini(amf_ue_t *amf_ue);
amf_ue_t *amf_ue_find_by_guti(ogs_nas_5gs_guti_t *nas_guti);
amf_ue_t *amf_ue_find_by_suci(char *suci);
amf_ue_t *amf_ue_find_by_supi(char *supi);
+amf_ue_t *amf_ue_find_by_ue_context_id(char *ue_context_id);
amf_ue_t *amf_ue_find_by_message(ogs_nas_5gs_message_t *message);
void amf_ue_set_suci(amf_ue_t *amf_ue,
@@ -818,7 +953,6 @@ amf_sess_t *amf_sess_add(amf_ue_t *amf_ue, uint8_t psi);
sbi_object = &(__sESS)->sbi; \
ogs_assert(sbi_object); \
\
- ogs_error("AMF_SESS_CLEAR"); \
if (ogs_list_count(&sbi_object->xact_list)) { \
ogs_error("SBI running [%d]", \
ogs_list_count(&sbi_object->xact_list)); \
@@ -831,8 +965,8 @@ void amf_sess_remove_all(amf_ue_t *amf_ue);
amf_sess_t *amf_sess_find_by_psi(amf_ue_t *amf_ue, uint8_t psi);
amf_sess_t *amf_sess_find_by_dnn(amf_ue_t *amf_ue, char *dnn);
-amf_ue_t *amf_ue_cycle(amf_ue_t *amf_ue);
-amf_sess_t *amf_sess_cycle(amf_sess_t *sess);
+amf_ue_t *amf_ue_find_by_id(ogs_pool_id_t id);
+amf_sess_t *amf_sess_find_by_id(ogs_pool_id_t id);
void amf_sbi_select_nf(
ogs_sbi_object_t *sbi_object,
@@ -877,6 +1011,7 @@ void amf_clear_subscribed_info(amf_ue_t *amf_ue);
bool amf_update_allowed_nssai(amf_ue_t *amf_ue);
bool amf_ue_is_rat_restricted(amf_ue_t *amf_ue);
int amf_instance_get_load(void);
+void amf_ue_save_to_release_session_list(amf_ue_t *amf_ue);
#ifdef __cplusplus
}
diff --git a/src/amf/event.h b/src/amf/event.h
index 0a53b467df..3300d1b1e2 100644
--- a/src/amf/event.h
+++ b/src/amf/event.h
@@ -74,11 +74,10 @@ typedef struct amf_event_s {
ogs_nas_5gs_message_t *message;
} nas;
- amf_gnb_t *gnb;
- ran_ue_t *ran_ue;
- amf_ue_t *amf_ue;
- amf_sess_t *sess;
- amf_bearer_t *bearer;
+ ogs_pool_id_t gnb_id;
+ ogs_pool_id_t ran_ue_id;
+ ogs_pool_id_t amf_ue_id;
+ ogs_pool_id_t sess_id;
ogs_timer_t *timer;
} amf_event_t;
diff --git a/src/amf/gmm-build.c b/src/amf/gmm-build.c
index 6ce07d194c..9bf003ec16 100644
--- a/src/amf/gmm-build.c
+++ b/src/amf/gmm-build.c
@@ -425,9 +425,6 @@ ogs_pkbuf_t *gmm_build_security_mode_command(amf_ue_t *amf_ue)
OGS_NAS_EXTENDED_PROTOCOL_DISCRIMINATOR_5GMM;
message.gmm.h.message_type = OGS_NAS_5GS_SECURITY_MODE_COMMAND;
- amf_ue->selected_int_algorithm = amf_selected_int_algorithm(amf_ue);
- amf_ue->selected_enc_algorithm = amf_selected_enc_algorithm(amf_ue);
-
selected_nas_security_algorithms->type_of_integrity_protection_algorithm =
amf_ue->selected_int_algorithm;
selected_nas_security_algorithms->type_of_ciphering_algorithm =
@@ -474,12 +471,8 @@ ogs_pkbuf_t *gmm_build_security_mode_command(amf_ue_t *amf_ue)
additional_security_information->
retransmission_of_initial_nas_message_request = 1;
- if (amf_ue->selected_int_algorithm == OGS_NAS_SECURITY_ALGORITHMS_EIA0) {
- ogs_error("Encrypt[0x%x] can be skipped with NEA0, "
- "but Integrity[0x%x] cannot be bypassed with NIA0",
- amf_ue->selected_enc_algorithm, amf_ue->selected_int_algorithm);
- return NULL;
- }
+ ogs_assert(amf_ue->selected_int_algorithm !=
+ OGS_NAS_SECURITY_ALGORITHMS_EIA0);
ogs_kdf_nas_5gs(OGS_KDF_NAS_INT_ALG, amf_ue->selected_int_algorithm,
amf_ue->kamf, amf_ue->knas_int);
@@ -636,7 +629,7 @@ ogs_pkbuf_t *gmm_build_dl_nas_transport(amf_sess_t *sess,
ogs_nas_gprs_timer_3_t *back_off_timer_value = NULL;
ogs_assert(sess);
- amf_ue = sess->amf_ue;
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
ogs_assert(payload_container_type);
ogs_assert(payload_container);
diff --git a/src/amf/gmm-handler.c b/src/amf/gmm-handler.c
index a6720c171d..b15040dca1 100644
--- a/src/amf/gmm-handler.c
+++ b/src/amf/gmm-handler.c
@@ -29,7 +29,7 @@
#define OGS_LOG_DOMAIN __gmm_log_domain
static ogs_nas_5gmm_cause_t gmm_handle_nas_message_container(
- amf_ue_t *amf_ue, uint8_t message_type,
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue, uint8_t message_type,
ogs_nas_message_container_t *nas_message_container);
static uint8_t gmm_cause_from_access_control(ogs_plmn_id_t *plmn_id);
@@ -48,10 +48,9 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_request(amf_ue_t *amf_ue,
ogs_nas_5gs_mobile_identity_suci_t *mobile_identity_suci = NULL;
ogs_nas_5gs_mobile_identity_guti_t *mobile_identity_guti = NULL;
ogs_nas_ue_security_capability_t *ue_security_capability = NULL;
- ogs_nas_5gs_guti_t nas_guti;
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ogs_assert(registration_request);
@@ -108,7 +107,8 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_request(amf_ue_t *amf_ue,
(OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_PRESENT| \
OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_PRESENT| \
OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_PRESENT| \
- OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT)
+ OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT| \
+ OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_PRESENT)
if (ngap_code == NGAP_ProcedureCode_id_InitialUEMessage &&
registration_request->presencemask &
@@ -130,9 +130,17 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_request(amf_ue_t *amf_ue,
return OGS_5GMM_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE;
}
+ if (mobile_identity->length < OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE) {
+ ogs_error("The length of Mobile Identity(%d) is less then the min(%d)",
+ mobile_identity->length, OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE);
+ return OGS_5GMM_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE;
+ }
+
mobile_identity_header =
(ogs_nas_5gs_mobile_identity_header_t *)mobile_identity->buffer;
+ memset(&amf_ue->old_guti, 0, sizeof(ogs_nas_5gs_guti_t));
+
switch (mobile_identity_header->type) {
case OGS_NAS_5GS_MOBILE_IDENTITY_SUCI:
mobile_identity_suci =
@@ -174,11 +182,12 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_request(amf_ue_t *amf_ue,
}
ogs_nas_5gs_mobile_identity_guti_to_nas_guti(
- mobile_identity_guti, &nas_guti);
+ mobile_identity_guti, &amf_ue->old_guti);
ogs_info("[%s] 5G-S_GUTI[AMF_ID:0x%x,M_TMSI:0x%x]",
AMF_UE_HAVE_SUCI(amf_ue) ? amf_ue->suci : "Unknown ID",
- ogs_amf_id_hexdump(&nas_guti.amf_id), nas_guti.m_tmsi);
+ ogs_amf_id_hexdump(&amf_ue->old_guti.amf_id),
+ amf_ue->old_guti.m_tmsi);
break;
default:
ogs_error("Unknown SUCI type [%d]", mobile_identity_header->type);
@@ -333,7 +342,8 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_request(amf_ue_t *amf_ue,
return OGS_5GMM_CAUSE_REQUEST_ACCEPTED;
}
-ogs_nas_5gmm_cause_t gmm_handle_registration_update(amf_ue_t *amf_ue,
+ogs_nas_5gmm_cause_t gmm_handle_registration_update(
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue,
ogs_nas_5gs_registration_request_t *registration_request)
{
amf_sess_t *sess = NULL;
@@ -346,6 +356,7 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_update(amf_ue_t *amf_ue,
ogs_nas_5gs_update_type_t *update_type = NULL;
ogs_assert(amf_ue);
+ ogs_assert(ran_ue);
ogs_assert(registration_request);
last_visited_registered_tai =
@@ -370,7 +381,7 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_update(amf_ue_t *amf_ue,
OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT) {
return gmm_handle_nas_message_container(
- amf_ue, OGS_NAS_5GS_REGISTRATION_REQUEST,
+ ran_ue, amf_ue, OGS_NAS_5GS_REGISTRATION_REQUEST,
®istration_request->nas_message_container);
}
@@ -466,7 +477,7 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_update(amf_ue_t *amf_ue,
if ((psimask & (1 << sess->psi)) == 0) {
if (SESSION_CONTEXT_IN_SMF(sess))
amf_sbi_send_release_session(
- sess, AMF_RELEASE_SM_CONTEXT_REGISTRATION_ACCEPT);
+ ran_ue, sess, AMF_RELEASE_SM_CONTEXT_REGISTRATION_ACCEPT);
}
}
}
@@ -485,7 +496,8 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_update(amf_ue_t *amf_ue,
if (psimask & (1 << sess->psi)) {
if (SESSION_CONTEXT_IN_SMF(sess))
amf_sbi_send_activating_session(
- sess, AMF_UPDATE_SM_CONTEXT_REGISTRATION_REQUEST);
+ ran_ue, sess,
+ AMF_UPDATE_SM_CONTEXT_REGISTRATION_REQUEST);
}
}
}
@@ -531,6 +543,86 @@ ogs_nas_5gmm_cause_t gmm_handle_registration_update(amf_ue_t *amf_ue,
return OGS_5GMM_CAUSE_REQUEST_ACCEPTED;
}
+bool gmm_registration_request_from_old_amf(amf_ue_t *amf_ue,
+ ogs_nas_5gs_registration_request_t *registration_request)
+{
+ ogs_nas_5gs_mobile_identity_t *mobile_identity = NULL;
+ ogs_nas_5gs_mobile_identity_header_t *mobile_identity_header = NULL;
+
+ int i;
+ ogs_plmn_id_t plmn_id;
+
+ ogs_assert(amf_ue);
+ ogs_assert(registration_request);
+ mobile_identity = ®istration_request->mobile_identity;
+ mobile_identity_header =
+ (ogs_nas_5gs_mobile_identity_header_t *)mobile_identity->buffer;
+
+ if (mobile_identity_header->type != OGS_NAS_5GS_MOBILE_IDENTITY_GUTI) {
+ return false;
+ }
+
+ /*
+ * TODO : FIXME
+ *
+ * Typically, UEs send 5G-GUTIs with all 0. In such cases,
+ * we need to prevent context transfer betwen AMFs by the N14 interface
+ * because they are not included in served_guami.
+ *
+ * We don't yet know how to check for 5G GUTI conformance,
+ * so we've implemented the following as a temporary solution.
+ */
+ if ((amf_ue->old_guti.amf_id.region == 0 &&
+ amf_ue->old_guti.amf_id.set2 == 0) &&
+ (amf_ue->old_guti.nas_plmn_id.mcc1 == 0 &&
+ amf_ue->old_guti.nas_plmn_id.mcc2 == 0 &&
+ amf_ue->old_guti.nas_plmn_id.mcc3 == 0) &&
+ (amf_ue->old_guti.nas_plmn_id.mnc1 == 0 &&
+ amf_ue->old_guti.nas_plmn_id.mnc2 == 0 &&
+ amf_ue->old_guti.nas_plmn_id.mnc3 == 0)) {
+ return false;
+ }
+
+ /*
+ * TS 23.502
+ * 4.2.2.2.2 General Registration
+ * (Without UDSF Deployment): If the UE's 5G-GUTI was included in the
+ * Registration Request and the serving AMF has changed since last
+ * Registration procedure, the new AMF may invoke the
+ * Namf_Communication_UEContextTransfer service operation on the
+ * old AMF including the complete Registration Request NAS message,
+ * which may be integrity protected, as well as the Access Type,
+ * to request the UE's SUPI and UE Context. See clause 5.2.2.2.2
+ * for details of this service operation.
+ */
+ ogs_nas_to_plmn_id(&plmn_id, &amf_ue->old_guti.nas_plmn_id);
+
+ ogs_info("[%s] 5G-S_GUTI[PLMN_ID:0x%x,AMF_ID:0x%x,M_TMSI:0x%x]",
+ AMF_UE_HAVE_SUCI(amf_ue) ? amf_ue->suci : "Unknown ID",
+ ogs_plmn_id_hexdump(&plmn_id),
+ ogs_amf_id_hexdump(&amf_ue->old_guti.amf_id),
+ amf_ue->old_guti.m_tmsi);
+
+ for (i = 0; i < amf_self()->num_of_served_guami; i++) {
+ if (memcmp(&amf_self()->served_guami[i].plmn_id,
+ &plmn_id, OGS_PLMN_ID_LEN) == 0 &&
+ memcmp(&amf_self()->served_guami[i].amf_id,
+ &amf_ue->old_guti.amf_id, sizeof(ogs_amf_id_t)) == 0) {
+ return false;
+ }
+ }
+
+ ogs_info("Serving AMF Changed [NumberOfServedGuami:%d]",
+ amf_self()->num_of_served_guami);
+ for (i = 0; i < amf_self()->num_of_served_guami; i++) {
+ ogs_info("Served Guami[PLMN_ID:0x%x,AMF_ID:0x%x]",
+ ogs_plmn_id_hexdump(&amf_self()->served_guami[i].plmn_id),
+ ogs_amf_id_hexdump(&amf_self()->served_guami[i].amf_id));
+ }
+
+ return true;
+}
+
ogs_nas_5gmm_cause_t gmm_handle_service_request(amf_ue_t *amf_ue,
ogs_nas_security_header_type_t h, NGAP_ProcedureCode_t ngap_code,
ogs_nas_5gs_service_request_t *service_request)
@@ -541,7 +633,7 @@ ogs_nas_5gmm_cause_t gmm_handle_service_request(amf_ue_t *amf_ue,
ogs_nas_key_set_identifier_t *ngksi = NULL;
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ngksi = &service_request->ngksi;
@@ -647,7 +739,8 @@ ogs_nas_5gmm_cause_t gmm_handle_service_request(amf_ue_t *amf_ue,
return OGS_5GMM_CAUSE_REQUEST_ACCEPTED;
}
-ogs_nas_5gmm_cause_t gmm_handle_service_update(amf_ue_t *amf_ue,
+ogs_nas_5gmm_cause_t gmm_handle_service_update(
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue,
ogs_nas_5gs_service_request_t *service_request)
{
amf_sess_t *sess = NULL;
@@ -659,6 +752,8 @@ ogs_nas_5gmm_cause_t gmm_handle_service_update(amf_ue_t *amf_ue,
ogs_nas_allowed_pdu_session_status_t *allowed_pdu_session_status = NULL;
ogs_assert(amf_ue);
+ ogs_assert(ran_ue);
+ ogs_assert(service_request);
uplink_data_status = &service_request->uplink_data_status;
ogs_assert(uplink_data_status);
@@ -671,7 +766,7 @@ ogs_nas_5gmm_cause_t gmm_handle_service_update(amf_ue_t *amf_ue,
OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT) {
return gmm_handle_nas_message_container(
- amf_ue, OGS_NAS_5GS_SERVICE_REQUEST,
+ ran_ue, amf_ue, OGS_NAS_5GS_SERVICE_REQUEST,
&service_request->nas_message_container);
}
@@ -706,7 +801,7 @@ ogs_nas_5gmm_cause_t gmm_handle_service_update(amf_ue_t *amf_ue,
if ((psimask & (1 << sess->psi)) == 0) {
if (SESSION_CONTEXT_IN_SMF(sess))
amf_sbi_send_release_session(
- sess, AMF_RELEASE_SM_CONTEXT_SERVICE_ACCEPT);
+ ran_ue, sess, AMF_RELEASE_SM_CONTEXT_SERVICE_ACCEPT);
}
}
}
@@ -733,7 +828,8 @@ ogs_nas_5gmm_cause_t gmm_handle_service_update(amf_ue_t *amf_ue,
if (psimask & (1 << sess->psi)) {
if (SESSION_CONTEXT_IN_SMF(sess))
amf_sbi_send_activating_session(
- sess, AMF_UPDATE_SM_CONTEXT_SERVICE_REQUEST);
+ ran_ue, sess,
+ AMF_UPDATE_SM_CONTEXT_SERVICE_REQUEST);
}
}
}
@@ -751,9 +847,12 @@ int gmm_handle_deregistration_request(amf_ue_t *amf_ue,
ogs_nas_5gs_deregistration_request_from_ue_t *deregistration_request)
{
int r, state, xact_count = 0;
+ ran_ue_t *ran_ue = NULL;
ogs_nas_de_registration_type_t *de_registration_type = NULL;
ogs_assert(amf_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ ogs_assert(ran_ue);
ogs_assert(deregistration_request);
de_registration_type = &deregistration_request->de_registration_type;
@@ -784,7 +883,7 @@ int gmm_handle_deregistration_request(amf_ue_t *amf_ue,
xact_count = amf_sess_xact_count(amf_ue);
state = AMF_UE_INITIATED_DE_REGISTERED;
- amf_sbi_send_release_all_sessions(amf_ue, state);
+ amf_sbi_send_release_all_sessions(ran_ue, amf_ue, state);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -876,8 +975,9 @@ ogs_nas_5gmm_cause_t gmm_handle_identity_response(amf_ue_t *amf_ue,
ogs_assert(identity_response);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
+ ogs_assert(identity_response);
mobile_identity = &identity_response->mobile_identity;
@@ -886,6 +986,12 @@ ogs_nas_5gmm_cause_t gmm_handle_identity_response(amf_ue_t *amf_ue,
return OGS_5GMM_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE;
}
+ if (mobile_identity->length < OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE) {
+ ogs_error("The length of Mobile Identity(%d) is less then the min(%d)",
+ mobile_identity->length, OGS_NAS_5GS_MOBILE_IDENTITY_SUCI_MIN_SIZE);
+ return OGS_5GMM_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE;
+ }
+
mobile_identity_header =
(ogs_nas_5gs_mobile_identity_header_t *)mobile_identity->buffer;
@@ -928,12 +1034,15 @@ ogs_nas_5gmm_cause_t gmm_handle_identity_response(amf_ue_t *amf_ue,
}
ogs_nas_5gmm_cause_t gmm_handle_security_mode_complete(amf_ue_t *amf_ue,
- ogs_nas_5gs_security_mode_complete_t *security_mode_complete)
+ ogs_nas_5gs_security_mode_complete_t *security_mode_complete)
{
+ ran_ue_t *ran_ue = NULL;
ogs_nas_5gs_mobile_identity_t *imeisv = NULL;
ogs_nas_mobile_identity_imeisv_t *mobile_identity_imeisv = NULL;
ogs_assert(amf_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ ogs_assert(ran_ue);
ogs_assert(security_mode_complete);
/*
@@ -1009,7 +1118,7 @@ ogs_nas_5gmm_cause_t gmm_handle_security_mode_complete(amf_ue_t *amf_ue,
OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT) {
return gmm_handle_nas_message_container(
- amf_ue, OGS_NAS_5GS_SECURITY_MODE_COMPLETE,
+ ran_ue, amf_ue, OGS_NAS_5GS_SECURITY_MODE_COMPLETE,
&security_mode_complete->nas_message_container);
}
@@ -1031,8 +1140,8 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
ogs_nas_dnn_t *dnn = NULL;
ogs_nas_5gsm_header_t *gsm_header = NULL;
- ogs_assert(amf_ue_cycle(amf_ue));
- ogs_assert(ran_ue_cycle(ran_ue));
+ ogs_assert(amf_ue);
+ ogs_assert(ran_ue);
ogs_assert(ul_nas_transport);
payload_container_type = &ul_nas_transport->payload_container_type;
@@ -1099,6 +1208,23 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
if (!sess) {
sess = amf_sess_add(amf_ue, *pdu_session_id);
ogs_assert(sess);
+ } else {
+ /*
+ * These are variables that should be initialized
+ * when a PDU session establishment message is received
+ * for an existing session.
+ *
+ * It should be noted that XXX_recieved, which is initialized now,
+ * has a different initialization location than XXX_gsm_type.
+ *
+ * XXX_received is initialized in the ESTABLISHMENT phase,
+ * but XXX_gsm_type is initialized in the RELEASE phase
+ * when a PDU session release command with a Reactivation Request
+ * and a PDU session release complete are sent simultaneously.
+ */
+ sess->pdu_session_resource_release_response_received = false;
+ sess->pdu_session_release_complete_received = false;
+
}
} else {
sess = amf_sess_find_by_psi(amf_ue, *pdu_session_id);
@@ -1161,6 +1287,12 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
if (ie.sst == amf_ue->slice[i].s_nssai.sst &&
ie.sd.v == amf_ue->slice[i].s_nssai.sd.v) {
+ if (ie.mapped_hplmn_sst_presence) {
+ sess->mapped_hplmn_presence = true;
+ sess->mapped_hplmn.sst = ie.mapped_hplmn_sst;
+ sess->mapped_hplmn.sd.v = ie.mapped_hplmn_sd.v;
+ }
+
/* PASS */
} else {
@@ -1240,9 +1372,11 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
sess->s_nssai.sd.v = selected_slice->s_nssai.sd.v;
ogs_info("UE SUPI[%s] DNN[%s] S_NSSAI[SST:%d SD:0x%x] "
- "smContextRef [%s]",
+ "smContextRef[%s] smContextResourceURI[%s]",
amf_ue->supi, sess->dnn, sess->s_nssai.sst, sess->s_nssai.sd.v,
- sess->sm_context_ref ? sess->sm_context_ref : "NULL");
+ sess->sm_context.ref ? sess->sm_context.ref : "NULL",
+ sess->sm_context.resource_uri ?
+ sess->sm_context.resource_uri : "NULL");
if (!SESSION_CONTEXT_IN_SMF(sess)) {
ogs_sbi_nf_instance_t *nf_instance = NULL;
@@ -1260,8 +1394,8 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
ogs_sbi_discovery_option_set_tai(
discovery_option, &amf_ue->nr_tai);
- nf_instance = sess->sbi.
- service_type_array[service_type].nf_instance;
+ nf_instance = OGS_SBI_GET_NF_INSTANCE(
+ sess->sbi.service_type_array[service_type]);
if (!nf_instance) {
OpenAPI_nf_type_e requester_nf_type =
NF_INSTANCE_TYPE(ogs_sbi_self()->nf_instance);
@@ -1272,8 +1406,8 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION,
requester_nf_type,
discovery_option);
- nf_instance = sess->sbi.
- service_type_array[service_type].nf_instance;
+ nf_instance = OGS_SBI_GET_NF_INSTANCE(
+ sess->sbi.service_type_array[service_type]);
if (!nf_instance)
ogs_info("No SMF Instance");
@@ -1287,14 +1421,15 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION,
discovery_option,
amf_nsmf_pdusession_build_create_sm_context,
- sess, AMF_CREATE_SM_CONTEXT_NO_STATE, NULL);
+ ran_ue, sess, AMF_CREATE_SM_CONTEXT_NO_STATE, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NNSSF_NSSELECTION,
discovery_option,
- amf_nnssf_nsselection_build_get, sess, 0, NULL);
+ amf_nnssf_nsselection_build_get,
+ ran_ue, sess, 0, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
@@ -1308,7 +1443,8 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_DUPLICATED_PDU_SESSION_ID,
+ ran_ue, sess,
+ AMF_UPDATE_SM_CONTEXT_DUPLICATED_PDU_SESSION_ID,
¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1337,7 +1473,8 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_N1_RELEASED, ¶m);
+ ran_ue, sess,
+ AMF_UPDATE_SM_CONTEXT_N1_RELEASED, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
@@ -1345,7 +1482,7 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_MODIFIED, ¶m);
+ ran_ue, sess, AMF_UPDATE_SM_CONTEXT_MODIFIED, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
@@ -1386,8 +1523,10 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
}
break;
case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE:
- /* Prevent to invoke SMF for this session */
- CLEAR_SM_CONTEXT_REF(sess);
+ sess->pdu_session_release_complete_received = true;
+ if (sess->pdu_session_resource_release_response_received ==
+ true)
+ CLEAR_SESSION_CONTEXT(sess);
break;
default:
break;
@@ -1409,7 +1548,7 @@ int gmm_handle_ul_nas_transport(ran_ue_t *ran_ue, amf_ue_t *amf_ue,
}
static ogs_nas_5gmm_cause_t gmm_handle_nas_message_container(
- amf_ue_t *amf_ue, uint8_t message_type,
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue, uint8_t message_type,
ogs_nas_message_container_t *nas_message_container)
{
int gmm_cause;
@@ -1418,6 +1557,7 @@ static ogs_nas_5gmm_cause_t gmm_handle_nas_message_container(
ogs_nas_5gs_message_t nas_message;
ogs_assert(amf_ue);
+ ogs_assert(ran_ue);
ogs_assert(nas_message_container);
if (!nas_message_container->buffer || !nas_message_container->length) {
@@ -1474,12 +1614,12 @@ static ogs_nas_5gmm_cause_t gmm_handle_nas_message_container(
case OGS_NAS_5GS_REGISTRATION_REQUEST:
ogs_debug("Registration request in NAS message container");
gmm_cause = gmm_handle_registration_update(
- amf_ue, &nas_message.gmm.registration_request);
+ ran_ue, amf_ue, &nas_message.gmm.registration_request);
break;
case OGS_NAS_5GS_SERVICE_REQUEST:
ogs_debug("Service request in NAS message container");
gmm_cause = gmm_handle_service_update(
- amf_ue, &nas_message.gmm.service_request);
+ ran_ue, amf_ue, &nas_message.gmm.service_request);
break;
default:
ogs_error("Unknown message [%d]", nas_message.gmm.h.message_type);
diff --git a/src/amf/gmm-handler.h b/src/amf/gmm-handler.h
index d89dd9f833..f750b86bd3 100644
--- a/src/amf/gmm-handler.h
+++ b/src/amf/gmm-handler.h
@@ -21,6 +21,7 @@
#define GMM_HANDLER_H
#include "context.h"
+#include "namf-handler.h"
#ifdef __cplusplus
extern "C" {
@@ -29,13 +30,17 @@ extern "C" {
ogs_nas_5gmm_cause_t gmm_handle_registration_request(amf_ue_t *amf_ue,
ogs_nas_security_header_type_t h, NGAP_ProcedureCode_t ngap_code,
ogs_nas_5gs_registration_request_t *registration_request);
-ogs_nas_5gmm_cause_t gmm_handle_registration_update(amf_ue_t *amf_ue,
+ogs_nas_5gmm_cause_t gmm_handle_registration_update(
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue,
+ ogs_nas_5gs_registration_request_t *registration_request);
+bool gmm_registration_request_from_old_amf(amf_ue_t *amf_ue,
ogs_nas_5gs_registration_request_t *registration_request);
ogs_nas_5gmm_cause_t gmm_handle_service_request(amf_ue_t *amf_ue,
ogs_nas_security_header_type_t h, NGAP_ProcedureCode_t ngap_code,
ogs_nas_5gs_service_request_t *service_request);
-ogs_nas_5gmm_cause_t gmm_handle_service_update(amf_ue_t *amf_ue,
+ogs_nas_5gmm_cause_t gmm_handle_service_update(
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue,
ogs_nas_5gs_service_request_t *service_request);
int gmm_handle_deregistration_request(amf_ue_t *amf_ue,
diff --git a/src/amf/gmm-sm.c b/src/amf/gmm-sm.c
index 3386a33f84..78b79d0dbe 100644
--- a/src/amf/gmm-sm.c
+++ b/src/amf/gmm-sm.c
@@ -27,8 +27,10 @@
#include "nsmf-handler.h"
#include "nudm-handler.h"
#include "npcf-handler.h"
+#include "namf-handler.h"
#include "sbi-path.h"
#include "amf-sm.h"
+#include "namf-build.h"
#undef OGS_LOG_DOMAIN
#define OGS_LOG_DOMAIN __gmm_log_domain
@@ -65,19 +67,19 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
ogs_sbi_message_t *sbi_message = NULL;
- int r, state = 0;
+ int r, state = 0, xact_count;
ogs_assert(s);
ogs_assert(e);
amf_sm_debug(e);
- if (e->sess) {
- sess = e->sess;
- amf_ue = sess->amf_ue;
+ sess = amf_sess_find_by_id(e->sess_id);
+ if (sess) {
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
} else {
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
}
@@ -272,9 +274,7 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
break;
CASE(OGS_SBI_HTTP_METHOD_DELETE)
- if (amf_ue->confirmation_url_for_5g_aka)
- ogs_free(amf_ue->confirmation_url_for_5g_aka);
- amf_ue->confirmation_url_for_5g_aka = NULL;
+ CLEAR_5G_AKA_CONFIRMATION(amf_ue);
if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE ||
state == AMF_UE_INITIATED_DE_REGISTERED) {
@@ -298,8 +298,8 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
state ==
AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) {
- int xact_count = amf_sess_xact_count(amf_ue);
- amf_sbi_send_release_all_sessions(amf_ue, state);
+ xact_count = amf_sess_xact_count(amf_ue);
+ amf_sbi_send_release_all_sessions(NULL, amf_ue, state);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -376,10 +376,7 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
*/
if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE ||
state == AMF_UE_INITIATED_DE_REGISTERED) {
- if (amf_ue->data_change_subscription_id) {
- ogs_free(amf_ue->data_change_subscription_id);
- amf_ue->data_change_subscription_id = NULL;
- }
+ UDM_SDM_CLEAR(amf_ue);
r = amf_ue_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NUDM_UECM, NULL,
@@ -445,7 +442,7 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE ||
state == AMF_UE_INITIATED_DE_REGISTERED) {
- if (amf_ue->confirmation_url_for_5g_aka) {
+ if (CHECK_5G_AKA_CONFIRMATION(amf_ue)) {
r = amf_ue_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NAUSF_AUTH,
NULL,
@@ -546,6 +543,75 @@ void gmm_state_de_registered(ogs_fsm_t *s, amf_event_t *e)
END
break;
+ CASE(OGS_SBI_SERVICE_NAME_NAMF_COMM)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXTS)
+ SWITCH(sbi_message->h.resource.component[2])
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER)
+
+ r = OGS_ERROR;
+
+ if (sbi_message->res_status == OGS_SBI_HTTP_STATUS_OK) {
+ amf_ue->amf_ue_context_transfer_state =
+ UE_CONTEXT_TRANSFER_NEW_AMF_STATE;
+ r = amf_namf_comm_handle_ue_context_transfer_response(
+ sbi_message, amf_ue);
+ if (r != OGS_OK) {
+ ogs_error("failed to handle "
+ "UE_CONTEXT_TRANSFER response");
+ amf_ue->amf_ue_context_transfer_state =
+ UE_CONTEXT_INITIAL_STATE;
+ }
+ } else {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ amf_ue->amf_ue_context_transfer_state =
+ UE_CONTEXT_INITIAL_STATE;
+ }
+
+ if (r != OGS_OK) {
+ if (!(AMF_UE_HAVE_SUCI(amf_ue) ||
+ AMF_UE_HAVE_SUPI(amf_ue))) {
+ CLEAR_AMF_UE_TIMER(amf_ue->t3570);
+ r = nas_5gs_send_identity_request(amf_ue);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ break;
+ }
+ }
+
+ xact_count = amf_sess_xact_count(amf_ue);
+ amf_sbi_send_release_all_sessions(
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
+ AMF_RELEASE_SM_CONTEXT_NO_STATE);
+
+ if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
+ amf_sess_xact_count(amf_ue) == xact_count) {
+ r = amf_ue_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NAUSF_AUTH, NULL,
+ amf_nausf_auth_build_authenticate,
+ amf_ue, 0, NULL);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ }
+
+ OGS_FSM_TRAN(s, &gmm_state_authentication);
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[2]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
DEFAULT
ogs_error("Invalid service name [%s]", sbi_message->h.service.name);
ogs_assert_if_reached();
@@ -571,12 +637,12 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
amf_sm_debug(e);
- if (e->sess) {
- sess = e->sess;
- amf_ue = sess->amf_ue;
+ sess = amf_sess_find_by_id(e->sess_id);
+ if (sess) {
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
} else {
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
}
@@ -802,9 +868,7 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
break;
CASE(OGS_SBI_HTTP_METHOD_DELETE)
- if (amf_ue->confirmation_url_for_5g_aka)
- ogs_free(amf_ue->confirmation_url_for_5g_aka);
- amf_ue->confirmation_url_for_5g_aka = NULL;
+ CLEAR_5G_AKA_CONFIRMATION(amf_ue);
if (state == AMF_RELEASE_SM_CONTEXT_NO_STATE ||
state == AMF_UE_INITIATED_DE_REGISTERED) {
@@ -829,7 +893,7 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) {
int xact_count = amf_sess_xact_count(amf_ue);
- amf_sbi_send_release_all_sessions(amf_ue, state);
+ amf_sbi_send_release_all_sessions(NULL, amf_ue, state);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -912,10 +976,7 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
AMF_NETWORK_INITIATED_IMPLICIT_DE_REGISTERED ||
state ==
AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) {
- if (amf_ue->data_change_subscription_id) {
- ogs_free(amf_ue->data_change_subscription_id);
- amf_ue->data_change_subscription_id = NULL;
- }
+ UDM_SDM_CLEAR(amf_ue);
r = amf_ue_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NUDM_UECM, NULL,
@@ -989,7 +1050,7 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
state ==
AMF_NETWORK_INITIATED_EXPLICIT_DE_REGISTERED) {
- if (amf_ue->confirmation_url_for_5g_aka) {
+ if (amf_ue->confirmation_for_5g_aka.resource_uri) {
r = amf_ue_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NAUSF_AUTH,
NULL,
@@ -1000,7 +1061,8 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
} else {
- amf_sbi_send_release_all_sessions(amf_ue, state);
+ amf_sbi_send_release_all_sessions(
+ NULL, amf_ue, state);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -1087,7 +1149,7 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
if (amf_ue->explict_de_registered.n1_done == true) {
r = ngap_send_ran_ue_context_release_command(
- amf_ue->ran_ue,
+ ran_ue_find_by_id(amf_ue->ran_ue_id),
NGAP_Cause_PR_misc,
NGAP_CauseMisc_om_intervention,
NGAP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
@@ -1114,6 +1176,75 @@ void gmm_state_registered(ogs_fsm_t *s, amf_event_t *e)
END
break;
+ CASE(OGS_SBI_SERVICE_NAME_NAMF_COMM)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXTS)
+ SWITCH(sbi_message->h.resource.component[2])
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER)
+
+ r = OGS_ERROR;
+
+ if (sbi_message->res_status == OGS_SBI_HTTP_STATUS_OK) {
+ amf_ue->amf_ue_context_transfer_state =
+ UE_CONTEXT_TRANSFER_NEW_AMF_STATE;
+ r = amf_namf_comm_handle_ue_context_transfer_response(
+ sbi_message, amf_ue);
+ if (r != OGS_OK) {
+ ogs_error("failed to handle "
+ "UE_CONTEXT_TRANSFER response");
+ amf_ue->amf_ue_context_transfer_state =
+ UE_CONTEXT_INITIAL_STATE;
+ }
+ } else {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ amf_ue->amf_ue_context_transfer_state =
+ UE_CONTEXT_INITIAL_STATE;
+ }
+
+ if (r != OGS_OK) {
+ if (!(AMF_UE_HAVE_SUCI(amf_ue) ||
+ AMF_UE_HAVE_SUPI(amf_ue))) {
+ CLEAR_AMF_UE_TIMER(amf_ue->t3570);
+ r = nas_5gs_send_identity_request(amf_ue);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ break;
+ }
+ }
+
+ xact_count = amf_sess_xact_count(amf_ue);
+ amf_sbi_send_release_all_sessions(
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
+ AMF_RELEASE_SM_CONTEXT_NO_STATE);
+
+ if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
+ amf_sess_xact_count(amf_ue) == xact_count) {
+ r = amf_ue_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NAUSF_AUTH, NULL,
+ amf_nausf_auth_build_authenticate,
+ amf_ue, 0, NULL);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ }
+
+ OGS_FSM_TRAN(s, &gmm_state_authentication);
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[2]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
DEFAULT
ogs_error("Invalid service name [%s]", sbi_message->h.service.name);
ogs_assert_if_reached();
@@ -1139,12 +1270,12 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
ogs_assert(e);
- if (e->sess) {
- sess = e->sess;
- amf_ue = sess->amf_ue;
+ sess = amf_sess_find_by_id(e->sess_id);
+ if (sess) {
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
} else {
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
}
@@ -1153,7 +1284,7 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
nas_message = e->nas.message;
ogs_assert(nas_message);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
h.type = e->nas.type;
@@ -1194,6 +1325,37 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
break;
}
+ if (gmm_registration_request_from_old_amf(amf_ue,
+ &nas_message->gmm.registration_request) == true) {
+ /* Send UE context transfer to old AMF */
+ ogs_sbi_discovery_option_t *discovery_option = NULL;
+ ogs_guami_t guami;
+
+ amf_ue->amf_ue_context_transfer_state = UE_CONTEXT_INITIAL_STATE;
+
+ discovery_option = ogs_sbi_discovery_option_new();
+ ogs_assert(discovery_option);
+
+ /* Configure Home PLMN ID */
+ ogs_nas_to_plmn_id(
+ &amf_ue->home_plmn_id, &amf_ue->old_guti.nas_plmn_id);
+
+ memcpy(&guami.plmn_id, &amf_ue->home_plmn_id,
+ sizeof(ogs_plmn_id_t));
+ memcpy(&guami.amf_id, &amf_ue->old_guti.amf_id,
+ sizeof(ogs_amf_id_t));
+
+ ogs_sbi_discovery_option_set_guami(discovery_option, &guami);
+
+ r = amf_ue_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NAMF_COMM, discovery_option,
+ amf_namf_comm_build_ue_context_transfer,
+ amf_ue, state, nas_message);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ break;
+ }
+
if (!AMF_UE_HAVE_SUCI(amf_ue)) {
CLEAR_AMF_UE_TIMER(amf_ue->t3570);
r = nas_5gs_send_identity_request(amf_ue);
@@ -1212,7 +1374,7 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
CLEAR_NG_CONTEXT(amf_ue);
gmm_cause = gmm_handle_registration_update(
- amf_ue, &nas_message->gmm.registration_request);
+ ran_ue, amf_ue, &nas_message->gmm.registration_request);
if (gmm_cause != OGS_5GMM_CAUSE_REQUEST_ACCEPTED) {
ogs_error("[%s] gmm_handle_registration_update() "
"failed [%d]", amf_ue->suci, gmm_cause);
@@ -1271,7 +1433,7 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
} else {
amf_sbi_send_release_all_sessions(
- amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
+ ran_ue, amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -1341,7 +1503,7 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
CLEAR_NG_CONTEXT(amf_ue);
gmm_cause = gmm_handle_service_update(
- amf_ue, &nas_message->gmm.service_request);
+ ran_ue, amf_ue, &nas_message->gmm.service_request);
if (gmm_cause != OGS_5GMM_CAUSE_REQUEST_ACCEPTED) {
ogs_error("[%s] gmm_handle_service_update() failed [%d]",
amf_ue->suci, gmm_cause);
@@ -1356,6 +1518,18 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
break;
case OGS_NAS_5GS_IDENTITY_RESPONSE:
+ if (amf_ue->nas.message_type == 0) {
+ ogs_warn("No Received NAS message");
+ r = ngap_send_error_indication2(
+ ran_ue,
+ NGAP_Cause_PR_protocol,
+ NGAP_CauseProtocol_semantic_error);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ OGS_FSM_TRAN(s, gmm_state_exception);
+ break;
+ }
+
CLEAR_AMF_UE_TIMER(amf_ue->t3570);
ogs_info("Identity response");
@@ -1382,7 +1556,7 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
}
amf_sbi_send_release_all_sessions(
- amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
+ ran_ue, amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -1398,9 +1572,8 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
break;
case OGS_NAS_5GS_5GMM_STATUS:
- ogs_warn("[%s] 5GMM STATUS : Cause[%d]", amf_ue->suci,
- nas_message->gmm.gmm_status.gmm_cause);
- OGS_FSM_TRAN(s, &gmm_state_exception);
+ ogs_warn("[%s] 5GMM STATUS : Cause[%d]",
+ amf_ue->suci, nas_message->gmm.gmm_status.gmm_cause);
break;
case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE:
@@ -1431,7 +1604,7 @@ static void common_register_state(ogs_fsm_t *s, amf_event_t *e,
amf_ue->explict_de_registered.n1_done = true;
if (amf_ue->explict_de_registered.sbi_done == true) {
- r = ngap_send_ran_ue_context_release_command(amf_ue->ran_ue,
+ r = ngap_send_ran_ue_context_release_command(ran_ue,
NGAP_Cause_PR_misc, NGAP_CauseMisc_om_intervention,
NGAP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
@@ -1524,12 +1697,12 @@ void gmm_state_authentication(ogs_fsm_t *s, amf_event_t *e)
amf_sm_debug(e);
- if (e->sess) {
- sess = e->sess;
- amf_ue = sess->amf_ue;
+ sess = amf_sess_find_by_id(e->sess_id);
+ if (sess) {
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
} else {
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
}
@@ -1542,7 +1715,7 @@ void gmm_state_authentication(ogs_fsm_t *s, amf_event_t *e)
nas_message = e->nas.message;
ogs_assert(nas_message);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
h.type = e->nas.type;
@@ -1648,7 +1821,6 @@ void gmm_state_authentication(ogs_fsm_t *s, amf_event_t *e)
case OGS_NAS_5GS_5GMM_STATUS:
ogs_warn("[%s] 5GMM STATUS : Cause[%d]",
amf_ue->suci, nas_message->gmm.gmm_status.gmm_cause);
- OGS_FSM_TRAN(s, &gmm_state_exception);
break;
case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE:
@@ -1739,6 +1911,22 @@ void gmm_state_authentication(ogs_fsm_t *s, amf_event_t *e)
ogs_assert(r != OGS_ERROR);
OGS_FSM_TRAN(&amf_ue->sm, &gmm_state_exception);
} else {
+ amf_ue->selected_int_algorithm =
+ amf_selected_int_algorithm(amf_ue);
+ amf_ue->selected_enc_algorithm =
+ amf_selected_enc_algorithm(amf_ue);
+
+ if (amf_ue->selected_int_algorithm ==
+ OGS_NAS_SECURITY_ALGORITHMS_EIA0) {
+ ogs_error("Encrypt[0x%x] can be skipped "
+ "with NEA0, but Integrity[0x%x] cannot be "
+ "bypassed with NIA0",
+ amf_ue->selected_enc_algorithm,
+ amf_ue->selected_int_algorithm);
+ OGS_FSM_TRAN(&amf_ue->sm, &gmm_state_exception);
+ break;
+ }
+
OGS_FSM_TRAN(&amf_ue->sm, &gmm_state_security_mode);
}
break;
@@ -1789,6 +1977,54 @@ void gmm_state_authentication(ogs_fsm_t *s, amf_event_t *e)
END
break;
+ CASE(OGS_SBI_SERVICE_NAME_NUDM_SDM)
+ if ((sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK) &&
+ (sbi_message->res_status != OGS_SBI_HTTP_STATUS_CREATED) &&
+ (sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT)) {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->supi, sbi_message->res_status);
+ }
+
+ SWITCH(sbi_message->h.resource.component[1])
+ CASE(OGS_SBI_RESOURCE_NAME_AM_DATA)
+ CASE(OGS_SBI_RESOURCE_NAME_SMF_SELECT_DATA)
+ CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXT_IN_SMF_DATA)
+ CASE(OGS_SBI_RESOURCE_NAME_SDM_SUBSCRIPTIONS)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->supi);
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[1]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ CASE(OGS_SBI_SERVICE_NAME_NPCF_AM_POLICY_CONTROL)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_POLICIES)
+ SWITCH(sbi_message->h.method)
+ CASE(OGS_SBI_HTTP_METHOD_POST)
+ if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_CREATED) {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->supi, sbi_message->res_status);
+ }
+ ogs_error("[%s] Ignore SBI message", amf_ue->supi);
+ break;
+
+ DEFAULT
+ ogs_error("Unknown method [%s]", sbi_message->h.method);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
DEFAULT
ogs_error("Invalid service name [%s]", sbi_message->h.service.name);
ogs_assert_if_reached();
@@ -1809,13 +2045,14 @@ void gmm_state_security_mode(ogs_fsm_t *s, amf_event_t *e)
ran_ue_t *ran_ue = NULL;
ogs_nas_5gs_message_t *nas_message = NULL;
ogs_nas_security_header_type_t h;
+ ogs_sbi_message_t *sbi_message = NULL;
ogs_assert(s);
ogs_assert(e);
amf_sm_debug(e);
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
switch (e->h.id) {
@@ -1831,7 +2068,7 @@ void gmm_state_security_mode(ogs_fsm_t *s, amf_event_t *e)
nas_message = e->nas.message;
ogs_assert(nas_message);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
h.type = e->nas.type;
@@ -1889,6 +2126,38 @@ void gmm_state_security_mode(ogs_fsm_t *s, amf_event_t *e)
break;
}
+ if (amf_ue->amf_ue_context_transfer_state == UE_CONTEXT_TRANSFER_NEW_AMF_STATE) {
+ /*
+ * UE context transfer message has been sent
+ * to old AMF after Registration request.
+ * Now Registrations status update needs to be sent.
+ */
+ ogs_sbi_discovery_option_t *discovery_option = NULL;
+ ogs_guami_t guami;
+ int state = e->h.sbi.state;
+
+ discovery_option = ogs_sbi_discovery_option_new();
+ ogs_assert(discovery_option);
+
+ memcpy(&guami.plmn_id, &amf_ue->home_plmn_id,
+ sizeof(ogs_plmn_id_t));
+ memcpy(&guami.amf_id, &amf_ue->old_guti.amf_id,
+ sizeof(ogs_amf_id_t));
+
+ ogs_sbi_discovery_option_set_guami(discovery_option, &guami);
+
+ r = amf_ue_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NAMF_COMM, discovery_option,
+ amf_namf_comm_build_registration_status_update,
+ amf_ue, state,
+ (void *)OpenAPI_ue_context_transfer_status_TRANSFERRED);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ amf_ue->amf_ue_context_transfer_state = REGISTRATION_STATUS_UPDATE_NEW_AMF_STATE;
+ break;
+ }
+
ogs_kdf_kgnb_and_kn3iwf(
amf_ue->kamf, amf_ue->ul_count.i32,
amf_ue->nas.access_type, amf_ue->kgnb);
@@ -1954,7 +2223,6 @@ void gmm_state_security_mode(ogs_fsm_t *s, amf_event_t *e)
case OGS_NAS_5GS_5GMM_STATUS:
ogs_warn("[%s] 5GMM STATUS : Cause[%d]",
amf_ue->supi, nas_message->gmm.gmm_status.gmm_cause);
- OGS_FSM_TRAN(s, &gmm_state_exception);
break;
case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE:
@@ -1970,13 +2238,128 @@ void gmm_state_security_mode(ogs_fsm_t *s, amf_event_t *e)
break;
}
break;
+ case OGS_EVENT_SBI_CLIENT:
+ sbi_message = e->h.sbi.message;
+ ogs_assert(sbi_message);
+
+ SWITCH(sbi_message->h.service.name)
+ CASE(OGS_SBI_SERVICE_NAME_NAUSF_AUTH)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_UE_AUTHENTICATIONS)
+
+ if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_CREATED &&
+ sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK &&
+ sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT) {
+ if (sbi_message->res_status ==
+ OGS_SBI_HTTP_STATUS_NOT_FOUND) {
+ ogs_warn("[%s] Cannot find SUCI [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ } else {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ }
+ }
+
+ SWITCH(sbi_message->h.method)
+ CASE(OGS_SBI_HTTP_METHOD_POST)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ CASE(OGS_SBI_HTTP_METHOD_PUT)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ CASE(OGS_SBI_HTTP_METHOD_DELETE)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ DEFAULT
+ ogs_error("[%s] Invalid HTTP method [%s]",
+ amf_ue->suci, sbi_message->h.method);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ CASE(OGS_SBI_RESOURCE_NAME_5G_AKA)
+ CASE(OGS_SBI_RESOURCE_NAME_5G_AKA_CONFIRMATION)
+ CASE(OGS_SBI_RESOURCE_NAME_EAP_SESSION)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->supi);
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ CASE(OGS_SBI_SERVICE_NAME_NAMF_COMM)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXTS)
+ SWITCH(sbi_message->h.resource.component[2])
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER_UPDATE)
+ if (amf_ue->amf_ue_context_transfer_state != REGISTRATION_STATUS_UPDATE_NEW_AMF_STATE) {
+ ogs_error("UE context transfer state not correct");
+ }
+ if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK) {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->supi, sbi_message->res_status);
+ }
+ r = amf_namf_comm_handle_registration_status_update_response(sbi_message, amf_ue);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ amf_ue->amf_ue_context_transfer_state = UE_CONTEXT_INITIAL_STATE;
+
+ /* Continue with registration */
+ ogs_kdf_kgnb_and_kn3iwf(
+ amf_ue->kamf, amf_ue->ul_count.i32,
+ amf_ue->nas.access_type, amf_ue->kgnb);
+ ogs_kdf_nh_gnb(amf_ue->kamf, amf_ue->kgnb, amf_ue->nh);
+ amf_ue->nhcc = 1;
+
+ r = amf_ue_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NUDM_UECM, NULL,
+ amf_nudm_uecm_build_registration, amf_ue, 0, NULL);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ if (amf_ue->nas.message_type == OGS_NAS_5GS_REGISTRATION_REQUEST) {
+ OGS_FSM_TRAN(s, &gmm_state_initial_context_setup);
+ } else if (amf_ue->nas.message_type ==
+ OGS_NAS_5GS_SERVICE_REQUEST) {
+ OGS_FSM_TRAN(s, &gmm_state_registered);
+ } else {
+ ogs_fatal("Invalid OGS_NAS_5GS[%d]", amf_ue->nas.message_type);
+ ogs_assert_if_reached();
+ }
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[2]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid service name [%s]", sbi_message->h.service.name);
+ ogs_assert_if_reached();
+ END
+ break;
+
case AMF_EVENT_5GMM_TIMER:
switch (e->h.timer_id) {
case AMF_TIMER_T3560:
if (amf_ue->t3560.retry_count >=
amf_timer_cfg(AMF_TIMER_T3560)->max_count) {
ogs_warn("[%s] Retransmission failed. Stop", amf_ue->supi);
- r = nas_5gs_send_gmm_reject(amf_ue->ran_ue, amf_ue,
+ r = nas_5gs_send_gmm_reject(
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
OGS_5GMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2020,12 +2403,12 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
amf_sm_debug(e);
- if (e->sess) {
- sess = e->sess;
- amf_ue = sess->amf_ue;
+ sess = amf_sess_find_by_id(e->sess_id);
+ if (sess) {
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
} else {
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
}
@@ -2041,6 +2424,53 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
state = e->h.sbi.state;
SWITCH(sbi_message->h.service.name)
+ CASE(OGS_SBI_SERVICE_NAME_NAUSF_AUTH)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_UE_AUTHENTICATIONS)
+
+ if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_CREATED &&
+ sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK &&
+ sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT) {
+ if (sbi_message->res_status ==
+ OGS_SBI_HTTP_STATUS_NOT_FOUND) {
+ ogs_warn("[%s] Cannot find SUCI [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ } else {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ }
+ }
+
+ SWITCH(sbi_message->h.method)
+ CASE(OGS_SBI_HTTP_METHOD_POST)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ CASE(OGS_SBI_HTTP_METHOD_PUT)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ CASE(OGS_SBI_HTTP_METHOD_DELETE)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ DEFAULT
+ ogs_error("[%s] Invalid HTTP method [%s]",
+ amf_ue->suci, sbi_message->h.method);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ CASE(OGS_SBI_RESOURCE_NAME_5G_AKA)
+ CASE(OGS_SBI_RESOURCE_NAME_5G_AKA_CONFIRMATION)
+ CASE(OGS_SBI_RESOURCE_NAME_EAP_SESSION)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->supi);
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
CASE(OGS_SBI_SERVICE_NAME_NUDM_UECM)
SWITCH(sbi_message->h.resource.component[1])
@@ -2051,7 +2481,7 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
ogs_error("[%s] HTTP response error [%d]",
amf_ue->supi, sbi_message->res_status);
r = nas_5gs_send_gmm_reject(
- amf_ue->ran_ue, amf_ue,
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
OGS_5GMM_CAUSE_5GS_SERVICES_NOT_ALLOWED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2096,7 +2526,7 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
ogs_error("[%s] HTTP response error [%d]",
amf_ue->supi, sbi_message->res_status);
r = nas_5gs_send_gmm_reject(
- amf_ue->ran_ue, amf_ue,
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
OGS_5GMM_CAUSE_5GS_SERVICES_NOT_ALLOWED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2183,7 +2613,7 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
nas_message = e->nas.message;
ogs_assert(nas_message);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
h.type = e->nas.type;
@@ -2289,7 +2719,7 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
}
amf_sbi_send_release_all_sessions(
- amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
+ ran_ue, amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -2315,7 +2745,6 @@ void gmm_state_initial_context_setup(ogs_fsm_t *s, amf_event_t *e)
case OGS_NAS_5GS_5GMM_STATUS:
ogs_warn("[%s] 5GMM STATUS : Cause[%d]",
amf_ue->supi, nas_message->gmm.gmm_status.gmm_cause);
- OGS_FSM_TRAN(s, &gmm_state_exception);
break;
case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE:
@@ -2368,12 +2797,12 @@ void gmm_state_ue_context_will_remove(ogs_fsm_t *s, amf_event_t *e)
amf_sm_debug(e);
- if (e->sess) {
- sess = e->sess;
- amf_ue = sess->amf_ue;
+ sess = amf_sess_find_by_id(e->sess_id);
+ if (sess) {
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
} else {
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
}
@@ -2400,18 +2829,19 @@ void gmm_state_exception(ogs_fsm_t *s, amf_event_t *e)
ran_ue_t *ran_ue = NULL;
ogs_nas_5gs_message_t *nas_message = NULL;
ogs_nas_security_header_type_t h;
+ ogs_sbi_message_t *sbi_message = NULL;
ogs_assert(s);
ogs_assert(e);
amf_sm_debug(e);
- if (e->sess) {
- sess = e->sess;
- amf_ue = sess->amf_ue;
+ sess = amf_sess_find_by_id(e->sess_id);
+ if (sess) {
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
} else {
- amf_ue = e->amf_ue;
+ amf_ue = amf_ue_find_by_id(e->amf_ue_id);
ogs_assert(amf_ue);
}
@@ -2422,14 +2852,48 @@ void gmm_state_exception(ogs_fsm_t *s, amf_event_t *e)
AMF_UE_CLEAR_5GSM_MESSAGE(amf_ue);
CLEAR_AMF_UE_ALL_TIMERS(amf_ue);
+ if (amf_ue->amf_ue_context_transfer_state == UE_CONTEXT_TRANSFER_NEW_AMF_STATE) {
+ /*
+ * UE context transfer message has been sent
+ * to old AMF after Registration request.
+ * Now Registrations status update needs to be sent.
+ */
+ ogs_sbi_discovery_option_t *discovery_option = NULL;
+ ogs_guami_t guami;
+ int state = e->h.sbi.state;
+
+ discovery_option = ogs_sbi_discovery_option_new();
+ ogs_assert(discovery_option);
+
+ memcpy(&guami.plmn_id, &amf_ue->home_plmn_id,
+ sizeof(ogs_plmn_id_t));
+ memcpy(&guami.amf_id, &amf_ue->old_guti.amf_id,
+ sizeof(ogs_amf_id_t));
+
+ ogs_sbi_discovery_option_set_guami(discovery_option, &guami);
+
+ r = amf_ue_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NAMF_COMM, discovery_option,
+ amf_namf_comm_build_registration_status_update,
+ amf_ue, state,
+ (void *)OpenAPI_ue_context_transfer_status_NOT_TRANSFERRED);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ amf_ue->amf_ue_context_transfer_state = REGISTRATION_STATUS_UPDATE_NEW_AMF_STATE;
+ break;
+ }
+
xact_count = amf_sess_xact_count(amf_ue);
amf_sbi_send_release_all_sessions(
- amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
+ AMF_RELEASE_SM_CONTEXT_NO_STATE);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
- r = ngap_send_amf_ue_context_release_command(amf_ue,
+ r = ngap_send_ran_ue_context_release_command(
+ ran_ue_find_by_id(amf_ue->ran_ue_id),
NGAP_Cause_PR_nas, NGAP_CauseNas_normal_release,
NGAP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
@@ -2443,7 +2907,7 @@ void gmm_state_exception(ogs_fsm_t *s, amf_event_t *e)
nas_message = e->nas.message;
ogs_assert(nas_message);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
h.type = e->nas.type;
@@ -2486,7 +2950,7 @@ void gmm_state_exception(ogs_fsm_t *s, amf_event_t *e)
CLEAR_NG_CONTEXT(amf_ue);
gmm_cause = gmm_handle_registration_update(
- amf_ue, &nas_message->gmm.registration_request);
+ ran_ue, amf_ue, &nas_message->gmm.registration_request);
if (gmm_cause != OGS_5GMM_CAUSE_REQUEST_ACCEPTED) {
ogs_error("[%s] gmm_handle_registration_update() "
"failed [%d]", amf_ue->suci, gmm_cause);
@@ -2537,7 +3001,7 @@ void gmm_state_exception(ogs_fsm_t *s, amf_event_t *e)
} else {
amf_sbi_send_release_all_sessions(
- amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
+ ran_ue, amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
amf_sess_xact_count(amf_ue) == xact_count) {
@@ -2557,6 +3021,115 @@ void gmm_state_exception(ogs_fsm_t *s, amf_event_t *e)
ogs_error("Unknown message [%d]", nas_message->gmm.h.message_type);
}
break;
+ case OGS_EVENT_SBI_CLIENT:
+ sbi_message = e->h.sbi.message;
+ ogs_assert(sbi_message);
+
+ ran_ue_t *ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ ogs_assert(ran_ue);
+
+ SWITCH(sbi_message->h.service.name)
+ CASE(OGS_SBI_SERVICE_NAME_NAUSF_AUTH)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_UE_AUTHENTICATIONS)
+
+ if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_CREATED &&
+ sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK &&
+ sbi_message->res_status != OGS_SBI_HTTP_STATUS_NO_CONTENT) {
+ if (sbi_message->res_status ==
+ OGS_SBI_HTTP_STATUS_NOT_FOUND) {
+ ogs_warn("[%s] Cannot find SUCI [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ } else {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->suci, sbi_message->res_status);
+ }
+ }
+
+ SWITCH(sbi_message->h.method)
+ CASE(OGS_SBI_HTTP_METHOD_POST)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ CASE(OGS_SBI_HTTP_METHOD_PUT)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ CASE(OGS_SBI_HTTP_METHOD_DELETE)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->suci);
+ break;
+ DEFAULT
+ ogs_error("[%s] Invalid HTTP method [%s]",
+ amf_ue->suci, sbi_message->h.method);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ CASE(OGS_SBI_RESOURCE_NAME_5G_AKA)
+ CASE(OGS_SBI_RESOURCE_NAME_5G_AKA_CONFIRMATION)
+ CASE(OGS_SBI_RESOURCE_NAME_EAP_SESSION)
+ ogs_warn("[%s] Ignore SBI message", amf_ue->supi);
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ CASE(OGS_SBI_SERVICE_NAME_NAMF_COMM)
+ SWITCH(sbi_message->h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXTS)
+ SWITCH(sbi_message->h.resource.component[2])
+ CASE(OGS_SBI_RESOURCE_NAME_TRANSFER_UPDATE)
+ if (amf_ue->amf_ue_context_transfer_state != REGISTRATION_STATUS_UPDATE_NEW_AMF_STATE) {
+ ogs_error("UE context transfer state not correct");
+ }
+ if (sbi_message->res_status != OGS_SBI_HTTP_STATUS_OK) {
+ ogs_error("[%s] HTTP response error [%d]",
+ amf_ue->supi, sbi_message->res_status);
+ }
+ r = amf_namf_comm_handle_registration_status_update_response(sbi_message, amf_ue);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ amf_ue->amf_ue_context_transfer_state = UE_CONTEXT_INITIAL_STATE;
+
+ /* Continue with release command */
+ xact_count = amf_sess_xact_count(amf_ue);
+ amf_sbi_send_release_all_sessions(
+ ran_ue, amf_ue, AMF_RELEASE_SM_CONTEXT_NO_STATE);
+
+ if (!AMF_SESSION_RELEASE_PENDING(amf_ue) &&
+ amf_sess_xact_count(amf_ue) == xact_count) {
+ r = ngap_send_ran_ue_context_release_command(
+ ran_ue_find_by_id(amf_ue->ran_ue_id),
+ NGAP_Cause_PR_nas, NGAP_CauseNas_normal_release,
+ NGAP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ }
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[2]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ sbi_message->h.resource.component[0]);
+ ogs_assert_if_reached();
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid service name [%s]", sbi_message->h.service.name);
+ ogs_assert_if_reached();
+
+ END
+ break;
default:
ogs_error("Unknown event[%s]", amf_event_get_name(e));
diff --git a/src/amf/init.c b/src/amf/init.c
index 9a43ecadf7..fe477a0245 100644
--- a/src/amf/init.c
+++ b/src/amf/init.c
@@ -38,6 +38,10 @@ int amf_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_AMF);
amf_context_init();
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
+ if (rv != OGS_OK) return rv;
+
rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
if (rv != OGS_OK) return rv;
@@ -50,10 +54,6 @@ int amf_initialize(void)
rv = amf_context_nf_info();
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
- if (rv != OGS_OK) return rv;
-
ogs_metrics_context_open(ogs_metrics_self());
rv = amf_sbi_open();
diff --git a/src/amf/meson.build b/src/amf/meson.build
index 3ec5041e55..88ab0bc44f 100644
--- a/src/amf/meson.build
+++ b/src/amf/meson.build
@@ -40,6 +40,7 @@ libamf_sources = files('''
nnrf-build.c
nnrf-handler.c
+ namf-build.c
namf-handler.c
sbi-path.c
diff --git a/src/amf/namf-build.c b/src/amf/namf-build.c
new file mode 100644
index 0000000000..f4721f3066
--- /dev/null
+++ b/src/amf/namf-build.c
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2019,2020 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "namf-build.h"
+
+static char* ogs_guti_to_string(ogs_nas_5gs_guti_t *nas_guti)
+{
+ ogs_plmn_id_t plmn_id;
+ char plmn_id_buff[OGS_PLMNIDSTRLEN];
+ char *amf_id = NULL;
+ char *tmsi = NULL;
+ char *guti = NULL;
+
+ ogs_assert(nas_guti);
+
+ memset(&plmn_id, 0, sizeof(plmn_id));
+ ogs_nas_to_plmn_id(&plmn_id, &nas_guti->nas_plmn_id);
+ amf_id = ogs_amf_id_to_string(&nas_guti->amf_id);
+ tmsi = ogs_uint32_to_0string(nas_guti->m_tmsi);
+
+ guti = ogs_msprintf("5g-guti-%s%s%s",
+ ogs_plmn_id_to_string(&plmn_id, plmn_id_buff),
+ amf_id,
+ tmsi);
+
+ /* TS29.518 6.1.3.2.2 Guti pattern (27 or 28 characters):
+ "5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}" */
+ ogs_assert(strlen(guti) == (OGS_MAX_5G_GUTI_LEN - 1) ||
+ (strlen(guti)) == OGS_MAX_5G_GUTI_LEN);
+
+ ogs_free(amf_id);
+ ogs_free(tmsi);
+
+ return guti;
+}
+
+static char* amf_ue_to_context_id(amf_ue_t *amf_ue)
+{
+ char *ue_context_id = NULL;
+
+ if (amf_ue->supi) {
+ ue_context_id = ogs_strdup(amf_ue->supi);
+ } else {
+ ue_context_id = ogs_guti_to_string(&amf_ue->old_guti);
+ }
+
+ return ue_context_id;
+}
+
+ogs_sbi_request_t *amf_namf_comm_build_ue_context_transfer(
+ amf_ue_t *amf_ue, void *data)
+{
+ ogs_sbi_message_t message;
+ ogs_sbi_request_t *request = NULL;
+ OpenAPI_ue_context_transfer_req_data_t UeContextTransferReqData;
+ char *ue_context_id = NULL;
+
+ ogs_assert(amf_ue);
+
+ ue_context_id = amf_ue_to_context_id(amf_ue);
+ ogs_assert(ue_context_id);
+
+ memset(&UeContextTransferReqData, 0, sizeof(UeContextTransferReqData));
+ UeContextTransferReqData.access_type = amf_ue->nas.access_type;
+ UeContextTransferReqData.reason = amf_ue->nas.registration.value;
+
+ memset(&message, 0, sizeof(message));
+ message.h.method = (char *)OGS_SBI_HTTP_METHOD_POST;
+ message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NAMF_COMM;
+ message.h.api.version = (char *)OGS_SBI_API_V1;
+ message.h.resource.component[0] = (char *)OGS_SBI_RESOURCE_NAME_UE_CONTEXTS;
+ message.h.resource.component[1] = ue_context_id;
+ message.h.resource.component[2] = (char *)OGS_SBI_RESOURCE_NAME_TRANSFER;
+ message.UeContextTransferReqData = &UeContextTransferReqData;
+
+ request = ogs_sbi_build_request(&message);
+ ogs_expect(request);
+
+ if (ue_context_id)
+ ogs_free(ue_context_id);
+
+ return request;
+}
+
+ogs_sbi_request_t *amf_namf_comm_build_registration_status_update(
+ amf_ue_t *amf_ue, void *data)
+{
+ ogs_sbi_message_t message;
+ ogs_sbi_request_t *request = NULL;
+
+ OpenAPI_ue_reg_status_update_req_data_t UeRegStatusUpdateReqData;
+ char *ue_context_id = NULL;
+
+ ogs_assert(amf_ue);
+ ogs_assert(data);
+
+ ue_context_id = ogs_guti_to_string(&amf_ue->old_guti);
+ ogs_assert(ue_context_id);
+
+ memset(&message, 0, sizeof(message));
+ message.h.method = (char *)OGS_SBI_HTTP_METHOD_POST;
+ message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NAMF_COMM;
+ message.h.api.version = (char *)OGS_SBI_API_V1;
+ message.h.resource.component[0] =
+ (char *)OGS_SBI_RESOURCE_NAME_UE_CONTEXTS;
+ message.h.resource.component[1] = ue_context_id;
+ message.h.resource.component[2] =
+ (char *)OGS_SBI_RESOURCE_NAME_TRANSFER_UPDATE;
+ message.UeRegStatusUpdateReqData = &UeRegStatusUpdateReqData;
+
+ memset(&UeRegStatusUpdateReqData, 0, sizeof(UeRegStatusUpdateReqData));
+
+ UeRegStatusUpdateReqData.transfer_status = OGS_POINTER_TO_UINT(data);
+ /*
+ * TS 29.518
+ * 5.2.2.2.2 Registration Status Update
+ * If any network slice(s) become no longer available and there are PDU
+ * Session(s) associated with them, the target AMF shall include these
+ * PDU session(s) in the toReleaseSessionList attribute in the payload.
+ */
+ if (UeRegStatusUpdateReqData.transfer_status ==
+ OpenAPI_ue_context_transfer_status_TRANSFERRED) {
+ ogs_assert(amf_ue->to_release_session_list); /* For safety */
+ if (amf_ue->to_release_session_list->count) {
+ UeRegStatusUpdateReqData.to_release_session_list =
+ amf_ue->to_release_session_list;
+ }
+ }
+
+ request = ogs_sbi_build_request(&message);
+ ogs_expect(request);
+
+ if (ue_context_id)
+ ogs_free(ue_context_id);
+
+ return request;
+}
diff --git a/src/amf/namf-build.h b/src/amf/namf-build.h
new file mode 100644
index 0000000000..3f6aa8d7db
--- /dev/null
+++ b/src/amf/namf-build.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2019,2020 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef AMF_NAMF_BUILD_H
+#define AMF_NAMF_BUILD_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "context.h"
+
+ogs_sbi_request_t *amf_namf_comm_build_ue_context_transfer(
+ amf_ue_t *amf_ue, void *data);
+ogs_sbi_request_t *amf_namf_comm_build_registration_status_update(
+ amf_ue_t *amf_ue, void *data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AMF_NAMF_BUILD_H */
diff --git a/src/amf/namf-handler.c b/src/amf/namf-handler.c
index 43410c8ddb..4f9defeae1 100644
--- a/src/amf/namf-handler.c
+++ b/src/amf/namf-handler.c
@@ -177,7 +177,7 @@ int amf_namf_comm_handle_n1_n2_message_transfer(
* 4.3.2 PDU Session Establishment *
***********************************/
- ran_ue = ran_ue_cycle(sess->ran_ue);
+ ran_ue = ran_ue_find_by_id(sess->ran_ue_id);
if (ran_ue) {
if (sess->pdu_session_establishment_accept) {
ogs_pkbuf_free(sess->pdu_session_establishment_accept);
@@ -246,7 +246,7 @@ int amf_namf_comm_handle_n1_n2_message_transfer(
amf_ue->supi, sess->psi,
N1N2MessageTransferReqData->
n1n2_failure_txf_notif_uri);
- return OGS_ERROR;;
+ return OGS_ERROR;
}
client = ogs_sbi_client_find(
@@ -287,7 +287,7 @@ int amf_namf_comm_handle_n1_n2_message_transfer(
header.resource.component[1] = amf_ue->supi;
header.resource.component[2] =
(char *)OGS_SBI_RESOURCE_NAME_N1_N2_MESSAGES;
- header.resource.component[3] = sess->sm_context_ref;
+ header.resource.component[3] = sess->sm_context.ref;
sendmsg.http.location = ogs_sbi_server_uri(server, &header);
@@ -349,13 +349,12 @@ int amf_namf_comm_handle_n1_n2_message_transfer(
header.resource.component[1] = amf_ue->supi;
header.resource.component[2] =
(char *)OGS_SBI_RESOURCE_NAME_N1_N2_MESSAGES;
- header.resource.component[3] = sess->sm_context_ref;
+ header.resource.component[3] = sess->sm_context.ref;
sendmsg.http.location = ogs_sbi_server_uri(server, &header);
/* Store Paging Info */
- AMF_SESS_STORE_PAGING_INFO(
- sess, sendmsg.http.location, NULL);
+ AMF_SESS_STORE_PAGING_INFO(sess, sendmsg.http.location, NULL);
/* Store 5GSM Message */
AMF_SESS_STORE_5GSM_MESSAGE(sess,
@@ -424,13 +423,12 @@ int amf_namf_comm_handle_n1_n2_message_transfer(
header.resource.component[1] = amf_ue->supi;
header.resource.component[2] =
(char *)OGS_SBI_RESOURCE_NAME_N1_N2_MESSAGES;
- header.resource.component[3] = sess->sm_context_ref;
+ header.resource.component[3] = sess->sm_context.ref;
sendmsg.http.location = ogs_sbi_server_uri(server, &header);
/* Store Paging Info */
- AMF_SESS_STORE_PAGING_INFO(
- sess, sendmsg.http.location, NULL);
+ AMF_SESS_STORE_PAGING_INFO(sess, sendmsg.http.location, NULL);
/* Store 5GSM Message */
AMF_SESS_STORE_5GSM_MESSAGE(sess,
@@ -482,7 +480,8 @@ int amf_namf_comm_handle_n1_n2_message_transfer(
ogs_error("[%d:%d] PDU session establishment reject",
sess->psi, sess->pti);
- r = nas_5gs_send_gsm_reject(sess->ran_ue, sess,
+ r = nas_5gs_send_gsm_reject(
+ ran_ue_find_by_id(sess->ran_ue_id), sess,
OGS_NAS_PAYLOAD_CONTAINER_N1_SM_INFORMATION, n1buf);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1005,7 +1004,7 @@ int amf_namf_callback_handle_sdm_data_change_notify(
}
if (amf_ue) {
- ran_ue_t *ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue_t *ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
ogs_error("NG context has already been removed");
/* ran_ue is required for amf_ue_is_rat_restricted() */
@@ -1079,3 +1078,875 @@ int amf_namf_callback_handle_sdm_data_change_notify(
return OGS_OK;
}
+
+static char *amf_namf_comm_base64_encode_ue_security_capability(
+ ogs_nas_ue_security_capability_t ue_security_capability);
+static char *amf_namf_comm_base64_encode_5gmm_capability(amf_ue_t *amf_ue);
+static OpenAPI_list_t *amf_namf_comm_encode_ue_session_context_list(
+ amf_ue_t *amf_ue);
+static OpenAPI_list_t *amf_namf_comm_encode_ue_mm_context_list(
+ amf_ue_t *amf_ue);
+
+int amf_namf_comm_handle_ue_context_transfer_request(
+ ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg)
+{
+ ogs_sbi_response_t *response = NULL;
+ ogs_sbi_message_t sendmsg;
+ amf_ue_t *amf_ue = NULL;
+
+ OpenAPI_ambr_t *UeAmbr = NULL;
+ OpenAPI_list_t *MmContextList = NULL;
+ OpenAPI_mm_context_t *MmContext = NULL;
+ OpenAPI_list_t *SessionContextList = NULL;
+ OpenAPI_pdu_session_context_t *PduSessionContext = NULL;
+ OpenAPI_lnode_t *node = NULL;
+ OpenAPI_ue_context_t UeContext;
+ OpenAPI_seaf_data_t SeafData;
+ OpenAPI_ng_ksi_t Ng_ksi;
+ OpenAPI_key_amf_t Key_amf;
+ OpenAPI_sc_type_e Tsc_type;
+
+ OpenAPI_ue_context_transfer_rsp_data_t UeContextTransferRspData;
+
+ ogs_sbi_nf_instance_t *pcf_nf_instance = NULL;
+
+ char *encoded_gmm_capability = NULL;
+ int status = OGS_SBI_HTTP_STATUS_OK;
+ char hxkamf_string[OGS_KEYSTRLEN(OGS_SHA256_DIGEST_SIZE)];
+ char *strerror = NULL;
+
+ ogs_assert(stream);
+ ogs_assert(recvmsg);
+
+ memset(&UeContextTransferRspData, 0, sizeof(UeContextTransferRspData));
+ memset(&UeContext, 0, sizeof(UeContext));
+ UeContextTransferRspData.ue_context = &UeContext;
+
+ memset(&sendmsg, 0, sizeof(sendmsg));
+ sendmsg.UeContextTransferRspData = &UeContextTransferRspData;
+
+ if (!recvmsg->h.resource.component[1]) {
+ status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
+ strerror = ogs_msprintf("No UE context ID");
+ goto cleanup;
+ }
+
+ amf_ue = amf_ue_find_by_ue_context_id(recvmsg->h.resource.component[1]);
+ if (!amf_ue) {
+ status = OGS_SBI_HTTP_STATUS_NOT_FOUND;
+ strerror = ogs_msprintf("Cannot find Context ID [%s]",
+ recvmsg->h.resource.component[1]);
+ goto cleanup;
+ }
+
+ if (amf_ue->amf_ue_context_transfer_state != UE_CONTEXT_INITIAL_STATE) {
+ ogs_warn("Incorrect UE context transfer state");
+ }
+
+ if (amf_ue->supi) {
+ UeContext.supi = amf_ue->supi;
+ if (amf_ue->auth_result !=
+ OpenAPI_auth_result_AUTHENTICATION_SUCCESS) {
+ UeContext.is_supi_unauth_ind = true;
+ UeContext.supi_unauth_ind = amf_ue->auth_result;
+ }
+ }
+
+ /* TODO UeContext.gpsi_list */
+
+ if (amf_ue->pei) {
+ UeContext.pei = amf_ue->pei;
+ }
+
+ if ((amf_ue->ue_ambr.uplink > 0) || (amf_ue->ue_ambr.downlink > 0)) {
+ UeAmbr = ogs_calloc(1, sizeof(*UeAmbr));
+ ogs_assert(UeAmbr);
+
+ if (amf_ue->ue_ambr.uplink > 0)
+ UeAmbr->uplink = ogs_sbi_bitrate_to_string(
+ amf_ue->ue_ambr.uplink, OGS_SBI_BITRATE_KBPS);
+ if (amf_ue->ue_ambr.downlink > 0)
+ UeAmbr->downlink = ogs_sbi_bitrate_to_string(
+ amf_ue->ue_ambr.downlink, OGS_SBI_BITRATE_KBPS);
+ UeContext.sub_ue_ambr = UeAmbr;
+ }
+
+ if ((amf_ue->nas.ue.ksi != 0) && (amf_ue->nas.ue.tsc != 0)) {
+ memset(&SeafData, 0, sizeof(SeafData));
+ Tsc_type = (amf_ue->nas.ue.tsc == 0) ?
+ OpenAPI_sc_type_NATIVE : OpenAPI_sc_type_MAPPED;
+
+ memset(&Ng_ksi, 0, sizeof(Ng_ksi));
+ SeafData.ng_ksi = &Ng_ksi;
+ Ng_ksi.tsc = Tsc_type;
+ Ng_ksi.ksi = (int)amf_ue->nas.ue.ksi;
+
+ memset(&Key_amf, 0, sizeof(Key_amf));
+ SeafData.key_amf = &Key_amf;
+ OpenAPI_key_amf_type_e temp_key_type =
+ (OpenAPI_key_amf_type_e)OpenAPI_key_amf_type_KAMF;
+ Key_amf.key_type = temp_key_type;
+ ogs_hex_to_ascii(amf_ue->kamf, sizeof(amf_ue->kamf),
+ hxkamf_string, sizeof(hxkamf_string));
+ Key_amf.key_val = hxkamf_string;
+ UeContext.seaf_data = &SeafData;
+ }
+
+ encoded_gmm_capability =
+ amf_namf_comm_base64_encode_5gmm_capability(amf_ue);
+ UeContext._5g_mm_capability = encoded_gmm_capability;
+
+ pcf_nf_instance = OGS_SBI_GET_NF_INSTANCE(
+ amf_ue->sbi.service_type_array[
+ OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL]);
+ if (pcf_nf_instance) {
+ UeContext.pcf_id = pcf_nf_instance->id;
+ } else {
+ ogs_warn("No PCF NF Instnace");
+ }
+
+ /* TODO UeContext.pcfAmPolicyUri */
+ /* TODO UeContext.pcfUePolicyUri */
+
+ MmContextList = amf_namf_comm_encode_ue_mm_context_list(amf_ue);
+ UeContext.mm_context_list = MmContextList;
+
+ if (recvmsg->UeContextTransferReqData->reason ==
+ OpenAPI_transfer_reason_MOBI_REG) {
+ SessionContextList =
+ amf_namf_comm_encode_ue_session_context_list(amf_ue);
+ if (SessionContextList->count == 0) {
+ OpenAPI_list_free(SessionContextList);
+ SessionContextList = NULL;
+ }
+ UeContext.session_context_list = SessionContextList;
+ }
+
+ /* TODO ueRadioCapability */
+
+ response = ogs_sbi_build_response(&sendmsg, status);
+ ogs_assert(response);
+ ogs_assert(true == ogs_sbi_server_send_response(stream, response));
+
+ amf_ue->amf_ue_context_transfer_state = UE_CONTEXT_TRANSFER_OLD_AMF_STATE;
+
+ if (encoded_gmm_capability)
+ ogs_free(encoded_gmm_capability);
+
+ if (UeAmbr)
+ OpenAPI_ambr_free(UeAmbr);
+
+ if (SessionContextList) {
+ OpenAPI_list_for_each(SessionContextList, node) {
+ PduSessionContext = node->data;
+ OpenAPI_pdu_session_context_free(PduSessionContext);
+ }
+ OpenAPI_list_free(SessionContextList);
+ }
+
+ if (MmContextList) {
+ OpenAPI_list_for_each(MmContextList, node) {
+ MmContext = node->data;
+ OpenAPI_mm_context_free(MmContext);
+ }
+ OpenAPI_list_free(MmContextList);
+ }
+
+ /*
+ * Ue context is transfered, but we must keep the UE context until the
+ * registartion status update is received.
+ *
+ * TS 23.502
+ * 4.2.2.2.2 General Registration
+ *
+ * 10. [Conditional] new AMF to old AMF: Namf_Communication_RegistrationStatusUpdate
+ * (PDU Session ID(s) to be released due to slice not supported).
+ * If the authentication/security procedure fails, then the Registration shall be
+ * rejected and the new AMF invokes the Namf_Communication_RegistrationStatusUpdate
+ * service operation with a reject indication towards the old AMF. The old AMF continues
+ * as if the UE context transfer service operation was never received.
+ */
+
+ return OGS_OK;
+
+cleanup:
+ ogs_assert(strerror);
+ ogs_error("%s", strerror);
+
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream, status, NULL, strerror, NULL, NULL));
+ ogs_free(strerror);
+
+ return OGS_ERROR;
+}
+
+static ogs_nas_5gmm_capability_t
+ amf_namf_comm_base64_decode_5gmm_capability(char *encoded);
+static ogs_nas_ue_security_capability_t
+ amf_namf_comm_base64_decode_ue_security_capability(char *encoded);
+static void amf_namf_comm_decode_ue_mm_context_list(
+ amf_ue_t *amf_ue, OpenAPI_list_t *MmContextList);
+static void amf_namf_comm_decode_ue_session_context_list(
+ amf_ue_t *amf_ue, OpenAPI_list_t *SessionContextList);
+
+int amf_namf_comm_handle_ue_context_transfer_response(
+ ogs_sbi_message_t *recvmsg, amf_ue_t *amf_ue)
+{
+ OpenAPI_ue_context_t *UeContext = NULL;
+
+ if (!recvmsg->UeContextTransferRspData) {
+ ogs_error("No UeContextTransferRspData");
+ return OGS_ERROR;
+ }
+
+ if (!recvmsg->UeContextTransferRspData->ue_context) {
+ ogs_error("No UE context");
+ return OGS_ERROR;
+ }
+
+ UeContext = recvmsg->UeContextTransferRspData->ue_context;
+
+ if (!UeContext->supi) {
+ ogs_error("No SUPI");
+ return OGS_ERROR;
+ }
+
+ amf_ue_set_supi(amf_ue, UeContext->supi);
+ if (!UeContext->supi_unauth_ind){
+ amf_ue->auth_result = OpenAPI_auth_result_AUTHENTICATION_SUCCESS;
+ }
+
+ if (UeContext->pei) {
+ if (amf_ue->pei)
+ ogs_free(amf_ue->pei);
+ amf_ue->pei = ogs_strdup(UeContext->pei);
+ }
+
+ if (UeContext->sub_ue_ambr) {
+ amf_ue->ue_ambr.downlink =
+ ogs_sbi_bitrate_from_string(UeContext->sub_ue_ambr->downlink);
+ amf_ue->ue_ambr.uplink =
+ ogs_sbi_bitrate_from_string(UeContext->sub_ue_ambr->uplink);
+ }
+
+ if (UeContext->seaf_data) {
+ if (UeContext->seaf_data->ng_ksi->tsc != OpenAPI_sc_type_NULL) {
+ amf_ue->nas.ue.tsc =
+ (UeContext->seaf_data->ng_ksi->tsc ==
+ OpenAPI_sc_type_NATIVE) ? 0 : 1;
+ amf_ue->nas.ue.ksi = (uint8_t)UeContext->seaf_data->ng_ksi->ksi;
+
+ ogs_ascii_to_hex(
+ UeContext->seaf_data->key_amf->key_val,
+ strlen(UeContext->seaf_data->key_amf->key_val),
+ amf_ue->kamf,
+ sizeof(amf_ue->kamf));
+ }
+ }
+
+ if (UeContext->_5g_mm_capability) {
+ ogs_nas_5gmm_capability_t gmm_capability;
+
+ gmm_capability = amf_namf_comm_base64_decode_5gmm_capability(
+ UeContext->_5g_mm_capability);
+ amf_ue->gmm_capability.lte_positioning_protocol_capability =
+ (bool)gmm_capability.lte_positioning_protocol_capability;
+ amf_ue->gmm_capability.ho_attach = (bool)gmm_capability.ho_attach;
+ amf_ue->gmm_capability.s1_mode = (bool)gmm_capability.s1_mode;
+ }
+
+ if (UeContext->pcf_id) {
+ /* TODO */
+ }
+
+ /* TODO UeContext->pcfAmPolicyUri */
+ /* TODO UeContext->pcfUePolicyUri */
+
+ if (UeContext->mm_context_list)
+ amf_namf_comm_decode_ue_mm_context_list(
+ amf_ue, UeContext->mm_context_list);
+
+ if (UeContext->session_context_list) {
+ amf_namf_comm_decode_ue_session_context_list(
+ amf_ue, UeContext->session_context_list);
+ /* Save a list of sessions to be released on old AMF */
+ if (UeContext->mm_context_list)
+ amf_ue_save_to_release_session_list(amf_ue);
+ }
+ /* TODO ueRadioCapability */
+
+ return OGS_OK;
+}
+
+static char *amf_namf_comm_base64_encode_ue_security_capability(
+ ogs_nas_ue_security_capability_t ue_security_capability)
+{
+ char *enc = NULL;
+ int enc_len = 0;
+
+ char num_of_octets =
+ ue_security_capability.length +
+ sizeof(ue_security_capability.length) +
+ sizeof((uint8_t)OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE);
+ /*
+ * size [sizeof(ue_security_capability) + 1] is a sum of lengths:
+ * ue_security_capability (9 octets) +
+ * type (1 octet)
+ */
+ char security_octets_string[sizeof(ue_security_capability) + 1];
+
+ /* Security guarantee */
+ num_of_octets = ogs_min(
+ num_of_octets, sizeof(ue_security_capability) + 1);
+ enc_len = ogs_base64_encode_len(num_of_octets);
+
+ enc = ogs_calloc(1, enc_len);
+ ogs_assert(enc);
+
+ security_octets_string[0] = (uint8_t)
+ OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE;
+ memcpy(security_octets_string + 1, &ue_security_capability, num_of_octets);
+ ogs_base64_encode(enc , security_octets_string, num_of_octets);
+
+ return enc;
+}
+
+static char *amf_namf_comm_base64_encode_5gmm_capability(amf_ue_t *amf_ue)
+{
+ ogs_nas_5gmm_capability_t nas_gmm_capability;
+ int enc_len = 0;
+ char *enc = NULL;
+
+ memset(&nas_gmm_capability, 0, sizeof(nas_gmm_capability));
+
+ /* 1 octet is mandatory, n.3 from TS 24.501 V16.12.0, 9.11.3.1 */
+ nas_gmm_capability.length = 1;
+ nas_gmm_capability.lte_positioning_protocol_capability =
+ amf_ue->gmm_capability.lte_positioning_protocol_capability;
+ nas_gmm_capability.ho_attach = amf_ue->gmm_capability.ho_attach;
+ nas_gmm_capability.s1_mode = amf_ue->gmm_capability.s1_mode;
+
+ uint8_t num_of_octets;
+
+ char gmm_capability_octets_string[sizeof(ogs_nas_5gmm_capability_t) + 1];
+
+ num_of_octets =
+ nas_gmm_capability.length +
+ sizeof(nas_gmm_capability.length) +
+ sizeof((uint8_t)
+ OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE);
+
+ /* Security guarantee. + 1 stands for 5GMM capability IEI */
+ num_of_octets = ogs_min(
+ num_of_octets, sizeof(ogs_nas_5gmm_capability_t) + 1);
+
+ enc_len = ogs_base64_encode_len(num_of_octets);
+ enc = ogs_calloc(1, enc_len);
+ ogs_assert(enc);
+
+ /* Fill the bytes of data */
+ gmm_capability_octets_string[0] =
+ (uint8_t)OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE;
+ memcpy(gmm_capability_octets_string + 1,
+ &nas_gmm_capability, num_of_octets);
+ ogs_base64_encode(enc, gmm_capability_octets_string, num_of_octets);
+
+ return enc;
+}
+
+static OpenAPI_list_t *amf_namf_comm_encode_ue_session_context_list(
+ amf_ue_t *amf_ue)
+{
+ ogs_assert(amf_ue);
+
+ amf_sess_t *sess = NULL;
+ OpenAPI_list_t *PduSessionList = NULL;
+ OpenAPI_pdu_session_context_t *PduSessionContext = NULL;
+ OpenAPI_snssai_t *sNSSAI = NULL;
+
+ PduSessionList = OpenAPI_list_create();
+ ogs_assert(PduSessionList);
+
+ ogs_list_for_each(&amf_ue->sess_list, sess) {
+ PduSessionContext = ogs_calloc(1, sizeof(*PduSessionContext));
+ ogs_assert(PduSessionContext);
+
+ sNSSAI = ogs_calloc(1, sizeof(*sNSSAI));
+ ogs_assert(sNSSAI);
+
+ PduSessionContext->pdu_session_id = sess->psi;
+ ogs_assert(sess->sm_context.resource_uri);
+ PduSessionContext->sm_context_ref =
+ ogs_strdup(sess->sm_context.resource_uri);
+
+ sNSSAI->sst = sess->s_nssai.sst;
+ sNSSAI->sd = ogs_s_nssai_sd_to_string(sess->s_nssai.sd);
+ PduSessionContext->s_nssai = sNSSAI;
+
+ ogs_assert(sess->dnn);
+ PduSessionContext->dnn = ogs_strdup(sess->dnn);
+ PduSessionContext->access_type =
+ (OpenAPI_access_type_e)amf_ue->nas.access_type;
+
+ OpenAPI_list_add(PduSessionList, PduSessionContext);
+ }
+
+ return PduSessionList;
+}
+
+static OpenAPI_list_t *amf_namf_comm_encode_ue_mm_context_list(amf_ue_t *amf_ue)
+{
+ OpenAPI_list_t *MmContextList = NULL;
+ OpenAPI_mm_context_t *MmContext = NULL;
+
+ int i;
+
+ ogs_assert(amf_ue);
+
+ MmContextList = OpenAPI_list_create();
+ ogs_assert(MmContextList);
+
+ MmContext = ogs_malloc(sizeof(*MmContext));
+ ogs_assert(MmContext);
+ memset(MmContext, 0, sizeof(*MmContext));
+
+ MmContext->access_type = (OpenAPI_access_type_e)amf_ue->nas.access_type;
+
+ if ((OpenAPI_ciphering_algorithm_e)amf_ue->selected_enc_algorithm &&
+ (OpenAPI_integrity_algorithm_e)amf_ue->selected_int_algorithm) {
+
+ OpenAPI_nas_security_mode_t *NasSecurityMode;
+
+ NasSecurityMode = ogs_calloc(1, sizeof(*NasSecurityMode));
+ ogs_assert(NasSecurityMode);
+
+ NasSecurityMode->ciphering_algorithm =
+ (OpenAPI_ciphering_algorithm_e)amf_ue->selected_enc_algorithm;
+ NasSecurityMode->integrity_algorithm =
+ (OpenAPI_integrity_algorithm_e)amf_ue->selected_int_algorithm;
+
+ MmContext->nas_security_mode = NasSecurityMode;
+ }
+
+ if (amf_ue->dl_count > 0) {
+ MmContext->is_nas_downlink_count = true;
+ MmContext->nas_downlink_count = amf_ue->dl_count;
+ }
+
+ if (amf_ue->ul_count.i32 > 0) {
+ MmContext->is_nas_uplink_count = true;
+ MmContext->nas_uplink_count = amf_ue->ul_count.i32;
+ }
+
+ if (amf_ue->ue_security_capability.length > 0) {
+ MmContext->ue_security_capability =
+ amf_namf_comm_base64_encode_ue_security_capability(
+ amf_ue->ue_security_capability);
+ }
+
+ if (amf_ue->allowed_nssai.num_of_s_nssai) {
+
+ OpenAPI_list_t *AllowedNssaiList;
+
+ /* This IE shall be present if the source AMF and the target AMF are
+ * in the same PLMN and if available. When present, this IE shall
+ * contain the allowed NSSAI for the access type.
+ */
+ AllowedNssaiList = OpenAPI_list_create();
+
+ ogs_assert(AllowedNssaiList);
+
+ for (i = 0; i < amf_ue->allowed_nssai.num_of_s_nssai; i++) {
+ OpenAPI_snssai_t *AllowedNssai;
+
+ AllowedNssai = ogs_calloc(1, sizeof(*AllowedNssai));
+ ogs_assert(AllowedNssai);
+
+ AllowedNssai->sst = amf_ue->allowed_nssai.s_nssai[i].sst;
+ AllowedNssai->sd = ogs_s_nssai_sd_to_string(
+ amf_ue->allowed_nssai.s_nssai[i].sd);
+
+ OpenAPI_list_add(AllowedNssaiList, AllowedNssai);
+ }
+
+ MmContext->allowed_nssai = AllowedNssaiList;
+ }
+
+ OpenAPI_list_add(MmContextList, MmContext);
+
+ return MmContextList;
+}
+
+static ogs_nas_5gmm_capability_t
+ amf_namf_comm_base64_decode_5gmm_capability(char *encoded)
+{
+ ogs_nas_5gmm_capability_t gmm_capability;
+ char *gmm_capability_octets_string = NULL;
+ uint8_t gmm_capability_iei = 0;
+ int len;
+
+ memset(&gmm_capability, 0, sizeof(gmm_capability));
+ gmm_capability_octets_string =
+ (char*) ogs_calloc(sizeof(gmm_capability) + 1, sizeof(char));
+ ogs_assert(gmm_capability_octets_string);
+
+ len = ogs_base64_decode(gmm_capability_octets_string, encoded);
+
+ if (len == 0)
+ ogs_error("Gmm capability not decoded");
+
+ ogs_assert(sizeof(gmm_capability_octets_string) <=
+ sizeof(gmm_capability) + 1);
+
+ gmm_capability_iei = // not copied anywhere for now
+ gmm_capability_octets_string[0];
+ if (gmm_capability_iei !=
+ OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE) {
+ ogs_error("Type of 5GMM capability IEI is incorrect");
+ }
+ memcpy(&gmm_capability,
+ gmm_capability_octets_string + 1,
+ sizeof(gmm_capability));
+ if (gmm_capability_octets_string) {
+ ogs_free(gmm_capability_octets_string);
+ }
+
+ return gmm_capability;
+}
+
+static ogs_nas_ue_security_capability_t
+ amf_namf_comm_base64_decode_ue_security_capability(char *encoded)
+{
+ ogs_nas_ue_security_capability_t ue_security_capability;
+ char *ue_security_capability_octets_string = NULL;
+ uint8_t ue_security_capability_iei = 0;
+
+ memset(&ue_security_capability, 0, sizeof(ue_security_capability));
+ ue_security_capability_octets_string =
+ (char*) ogs_calloc(sizeof(ue_security_capability), sizeof(char));
+ ogs_assert(ue_security_capability_octets_string);
+
+ ogs_base64_decode(ue_security_capability_octets_string, encoded);
+
+ ogs_assert(sizeof(ue_security_capability_octets_string) <=
+ sizeof(ogs_nas_ue_security_capability_t) + 1);
+
+ ue_security_capability_iei = // not copied anywhere for now
+ ue_security_capability_octets_string[0];
+ if (ue_security_capability_iei !=
+ OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE) {
+ ogs_error("UE security capability IEI is incorrect");
+ }
+
+ memcpy(&ue_security_capability, ue_security_capability_octets_string + 1,
+ sizeof(ue_security_capability));
+
+ if (ue_security_capability_octets_string) {
+ ogs_free(ue_security_capability_octets_string);
+ }
+
+ return ue_security_capability;
+}
+
+static void amf_namf_comm_decode_ue_mm_context_list(
+ amf_ue_t *amf_ue, OpenAPI_list_t *MmContextList) {
+
+ OpenAPI_lnode_t *node = NULL;
+
+ OpenAPI_list_for_each(MmContextList, node) {
+
+ OpenAPI_mm_context_t *MmContext = NULL;
+ OpenAPI_list_t *AllowedNssaiList = NULL;
+ OpenAPI_lnode_t *node1 = NULL;
+ OpenAPI_list_t *NssaiMappingList = NULL;
+ int num_of_s_nssai = 0;
+ int num_of_nssai_mapping = 0;
+
+ MmContext = node->data;
+
+ AllowedNssaiList = MmContext->allowed_nssai;
+ NssaiMappingList = MmContext->nssai_mapping_list;
+
+ OpenAPI_list_for_each(AllowedNssaiList, node1) {
+ OpenAPI_snssai_t *AllowedNssai = node1->data;
+
+ ogs_assert(num_of_s_nssai < OGS_MAX_NUM_OF_SLICE);
+
+ amf_ue->allowed_nssai.s_nssai[num_of_s_nssai].sst =
+ (uint8_t)AllowedNssai->sst;
+ amf_ue->allowed_nssai.s_nssai[num_of_s_nssai].sd =
+ ogs_s_nssai_sd_from_string(AllowedNssai->sd);
+
+ num_of_s_nssai++;
+ amf_ue->allowed_nssai.num_of_s_nssai = num_of_s_nssai;
+ }
+
+ OpenAPI_list_for_each(NssaiMappingList, node1) {
+ OpenAPI_nssai_mapping_t *NssaiMapping = node1->data;
+ OpenAPI_snssai_t *HSnssai = NssaiMapping->h_snssai;
+
+ ogs_assert(num_of_nssai_mapping < OGS_MAX_NUM_OF_SLICE);
+
+ amf_ue->allowed_nssai.s_nssai[num_of_nssai_mapping].
+ mapped_hplmn_sst = HSnssai->sst;
+ amf_ue->allowed_nssai.s_nssai[num_of_nssai_mapping].
+ mapped_hplmn_sd = ogs_s_nssai_sd_from_string(HSnssai->sd);
+
+ num_of_nssai_mapping++;
+ }
+
+ if (MmContext->ue_security_capability) {
+ amf_ue->ue_security_capability =
+ amf_namf_comm_base64_decode_ue_security_capability(
+ MmContext->ue_security_capability);
+ }
+ }
+}
+
+static void amf_namf_comm_decode_ue_session_context_list(
+ amf_ue_t *amf_ue, OpenAPI_list_t *SessionContextList)
+{
+ OpenAPI_lnode_t *node = NULL;
+
+ OpenAPI_list_for_each(SessionContextList, node) {
+ OpenAPI_pdu_session_context_t *PduSessionContext;
+ PduSessionContext = node->data;
+ amf_sess_t *sess = NULL;
+
+ int rv;
+ ogs_sbi_message_t message;
+ ogs_sbi_header_t header;
+
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+
+ if (!PduSessionContext->sm_context_ref) {
+ ogs_error("No smContextRef [PSI:%d]",
+ PduSessionContext->pdu_session_id);
+ continue;
+ }
+
+ if (!PduSessionContext->s_nssai) {
+ ogs_error("No sNSSI [PSI:%d]", PduSessionContext->pdu_session_id);
+ continue;
+ }
+
+ if (!PduSessionContext->dnn) {
+ ogs_error("No DNN [PSI:%d]", PduSessionContext->pdu_session_id);
+ continue;
+ }
+
+ if (!PduSessionContext->access_type) {
+ ogs_error("No accessType [PSI:%d]",
+ PduSessionContext->pdu_session_id);
+ continue;
+ }
+
+ memset(&header, 0, sizeof(header));
+ header.uri = PduSessionContext->sm_context_ref;
+
+ rv = ogs_sbi_parse_header(&message, &header);
+ if (rv != OGS_OK) {
+ ogs_error("[%d] Cannot parse sm_context_ref [%s]",
+ PduSessionContext->pdu_session_id,
+ PduSessionContext->sm_context_ref);
+ continue;
+ }
+
+ if (!message.h.resource.component[1]) {
+ ogs_error("[%d] No SmContextRef [%s]",
+ PduSessionContext->pdu_session_id,
+ PduSessionContext->sm_context_ref);
+
+ ogs_sbi_header_free(&header);
+ continue;
+ }
+
+ sess = amf_sess_add(amf_ue, PduSessionContext->pdu_session_id);
+ ogs_assert(sess);
+
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, header.uri);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ ogs_error("[%s:%d] Invalid URI [%s]",
+ amf_ue->supi, sess->psi, header.uri);
+
+ ogs_sbi_header_free(&header);
+ continue;
+ }
+
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("[%s:%d] ogs_sbi_client_add()", amf_ue->supi, sess->psi);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_error("[%s:%d] ogs_sbi_client_add() failed",
+ amf_ue->supi, sess->psi);
+
+ ogs_sbi_header_free(&header);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ continue;
+ }
+ }
+ OGS_SBI_SETUP_CLIENT(&sess->sm_context, client);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ sess->sm_context.resource_uri =
+ ogs_strdup(PduSessionContext->sm_context_ref);
+ sess->sm_context.ref =
+ ogs_strdup(message.h.resource.component[1]);
+
+ memset(&sess->s_nssai, 0, sizeof(sess->s_nssai));
+
+ sess->s_nssai.sst = PduSessionContext->s_nssai->sst;
+ sess->s_nssai.sd = ogs_s_nssai_sd_from_string(
+ PduSessionContext->s_nssai->sd);
+
+ sess->dnn = ogs_strdup(PduSessionContext->dnn);
+ amf_ue->nas.access_type = (int)PduSessionContext->access_type;
+
+ ogs_sbi_header_free(&header);
+ }
+}
+
+int amf_namf_comm_handle_registration_status_update_request(
+ ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg) {
+
+ ogs_sbi_response_t *response = NULL;
+ ogs_sbi_message_t sendmsg;
+ amf_ue_t *amf_ue = NULL;
+ ran_ue_t *ran_ue = NULL;
+ amf_sess_t *sess = NULL;
+
+ OpenAPI_ue_reg_status_update_req_data_t *UeRegStatusUpdateReqData =
+ recvmsg->UeRegStatusUpdateReqData;
+ OpenAPI_ue_reg_status_update_rsp_data_t UeRegStatusUpdateRspData;
+
+ int status = 0;
+ char *strerror = NULL;
+
+ ogs_assert(stream);
+ ogs_assert(recvmsg);
+
+ if (!recvmsg->h.resource.component[1]) {
+ status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
+ strerror = ogs_msprintf("No UE context ID");
+ goto cleanup;
+ }
+ amf_ue = amf_ue_find_by_ue_context_id(recvmsg->h.resource.component[1]);
+ if (!amf_ue) {
+ status = OGS_SBI_HTTP_STATUS_NOT_FOUND;
+ strerror = ogs_msprintf("Cannot find Context ID [%s]",
+ recvmsg->h.resource.component[1]);
+ goto cleanup;
+ }
+
+ if (amf_ue->amf_ue_context_transfer_state != UE_CONTEXT_TRANSFER_OLD_AMF_STATE) {
+ status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
+ strerror = ogs_msprintf("Incorrect UE context transfer state");
+ goto cleanup;
+ }
+
+ memset(&UeRegStatusUpdateRspData, 0, sizeof(UeRegStatusUpdateRspData));
+ memset(&sendmsg, 0, sizeof(sendmsg));
+ sendmsg.UeRegStatusUpdateRspData = &UeRegStatusUpdateRspData;
+
+ if (UeRegStatusUpdateReqData->transfer_status ==
+ OpenAPI_ue_context_transfer_status_TRANSFERRED) {
+ /*
+ * TS 29.518
+ * 5.2.2.2.2 Registration Status Update
+ * Once the update is received, the source AMF shall:
+ * - remove the individual ueContext resource and release any PDU session(s) in the
+ * toReleaseSessionList attribute, if the transferStatus attribute included in the
+ * POST request body is set to "TRANSFERRED" and if the source AMF transferred the
+ * complete UE Context including all MM contexts and PDU Session Contexts.
+ */
+ UeRegStatusUpdateRspData.reg_status_transfer_complete = 1;
+
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+
+ if (ran_ue) {
+ if (UeRegStatusUpdateReqData->to_release_session_list) {
+ OpenAPI_lnode_t *node = NULL;
+ OpenAPI_list_for_each(UeRegStatusUpdateReqData->to_release_session_list, node) {
+ /* A double must be read */
+ uint8_t psi = *(double *)node->data;
+ sess = amf_sess_find_by_psi(amf_ue, psi);
+ if (SESSION_CONTEXT_IN_SMF(sess)) {
+ amf_sbi_send_release_session(ran_ue, sess, AMF_RELEASE_SM_CONTEXT_NO_STATE);
+ } else {
+ ogs_error("[%s] No Session Context PSI[%d]",
+ amf_ue->supi, psi);
+ UeRegStatusUpdateRspData.reg_status_transfer_complete = 0;
+ }
+ }
+ }
+ }
+
+ /* Clear UE context */
+ CLEAR_NG_CONTEXT(amf_ue);
+ AMF_UE_CLEAR_PAGING_INFO(amf_ue);
+ AMF_UE_CLEAR_N2_TRANSFER(amf_ue, pdu_session_resource_setup_request);
+ AMF_UE_CLEAR_5GSM_MESSAGE(amf_ue);
+ CLEAR_AMF_UE_ALL_TIMERS(amf_ue);
+ OGS_ASN_CLEAR_DATA(&amf_ue->ueRadioCapability);
+
+ } else if (UeRegStatusUpdateReqData->transfer_status ==
+ OpenAPI_ue_context_transfer_status_NOT_TRANSFERRED) {
+ /*
+ * TS 23.502
+ * 4.2.2.2.2
+ * If the authentication/security procedure fails, then the Registration shall be rejected and
+ * the new AMF invokes the Namf_Communication_RegistrationStatusUpdate service operation with
+ * a reject indication towards the old AMF. The old AMF continues as if the UE context transfer
+ * service operation was never received.
+ */
+ UeRegStatusUpdateRspData.reg_status_transfer_complete = 0;
+
+ } else {
+ status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
+ strerror = ogs_msprintf("Transfer status not supported: [%d]",
+ UeRegStatusUpdateReqData->transfer_status);
+ goto cleanup;
+ }
+
+ status = OGS_SBI_HTTP_STATUS_OK;
+ response = ogs_sbi_build_response(&sendmsg, status);
+ ogs_assert(response);
+ ogs_assert(true == ogs_sbi_server_send_response(stream, response));
+
+ amf_ue->amf_ue_context_transfer_state = UE_CONTEXT_INITIAL_STATE;
+
+ return OGS_OK;
+
+cleanup:
+ ogs_assert(strerror);
+ ogs_error("%s", strerror);
+
+ ogs_assert(true == ogs_sbi_server_send_error(stream, status, NULL, strerror, NULL, NULL));
+ ogs_free(strerror);
+
+ amf_ue->amf_ue_context_transfer_state = UE_CONTEXT_INITIAL_STATE;
+
+ return OGS_ERROR;
+}
+
+int amf_namf_comm_handle_registration_status_update_response(
+ ogs_sbi_message_t *recvmsg, amf_ue_t *amf_ue) {
+
+ /* Nothing to do */
+
+ return OGS_OK;
+}
diff --git a/src/amf/namf-handler.h b/src/amf/namf-handler.h
index 9581260ec2..d5fd1c7200 100644
--- a/src/amf/namf-handler.h
+++ b/src/amf/namf-handler.h
@@ -34,6 +34,14 @@ int amf_namf_callback_handle_dereg_notify(
ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg);
int amf_namf_callback_handle_sdm_data_change_notify(
ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg);
+int amf_namf_comm_handle_ue_context_transfer_request(
+ ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg);
+int amf_namf_comm_handle_ue_context_transfer_response(
+ ogs_sbi_message_t *recvmsg, amf_ue_t *amf_ue);
+int amf_namf_comm_handle_registration_status_update_request(
+ ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg);
+int amf_namf_comm_handle_registration_status_update_response(
+ ogs_sbi_message_t *recvmsg, amf_ue_t *amf_ue);
#ifdef __cplusplus
}
diff --git a/src/amf/nas-path.c b/src/amf/nas-path.c
index aa341c55ad..d58064318c 100644
--- a/src/amf/nas-path.c
+++ b/src/amf/nas-path.c
@@ -25,29 +25,34 @@
int nas_5gs_send_to_gnb(amf_ue_t *amf_ue, ogs_pkbuf_t *pkbuf)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_assert(pkbuf);
- amf_ue = amf_ue_cycle(amf_ue);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
ogs_pkbuf_free(pkbuf);
return OGS_NOTFOUND;
}
- rv = ngap_send_to_ran_ue(amf_ue->ran_ue, pkbuf);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] RAN-NG Context has already been removed", amf_ue->suci);
+ return OGS_NOTFOUND;
+ }
+
+ rv = ngap_send_to_ran_ue(ran_ue, pkbuf);
ogs_expect(rv == OGS_OK);
return rv;
}
int nas_5gs_send_to_downlink_nas_transport(
- ran_ue_t *ran_ue, amf_ue_t *amf_ue, ogs_pkbuf_t *pkbuf)
+ ran_ue_t *ran_ue, ogs_pkbuf_t *pkbuf)
{
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- ogs_assert(ran_ue_cycle(ran_ue));
- ogs_assert(amf_ue_cycle(amf_ue));
+ ogs_assert(ran_ue);
ogs_assert(pkbuf);
ngapbuf = ngap_build_downlink_nas_transport(ran_ue, pkbuf, false, false);
@@ -72,14 +77,14 @@ int nas_5gs_send_registration_accept(amf_ue_t *amf_ue)
ogs_pkbuf_t *ngapbuf = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
- ogs_error("NG context has already been removed");
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -178,8 +183,8 @@ int nas_5gs_send_registration_reject(
int rv;
ogs_pkbuf_t *gmmbuf = NULL;
- ogs_assert(ran_ue_cycle(ran_ue));
- ogs_assert(amf_ue_cycle(amf_ue));
+ ogs_assert(ran_ue);
+ ogs_assert(amf_ue);
switch (amf_ue->nas.registration.value) {
case OGS_NAS_5GS_REGISTRATION_TYPE_INITIAL:
@@ -211,7 +216,7 @@ int nas_5gs_send_registration_reject(
return OGS_ERROR;
}
- rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -226,14 +231,14 @@ int nas_5gs_send_service_accept(amf_ue_t *amf_ue)
ogs_pkbuf_t *gmmbuf = NULL;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
- ogs_error("NG context has already been removed");
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -290,8 +295,7 @@ int nas_5gs_send_service_accept(amf_ue_t *amf_ue)
rv = nas_5gs_send_to_gnb(amf_ue, ngapbuf);
ogs_expect(rv == OGS_OK);
} else {
- rv = nas_5gs_send_to_downlink_nas_transport(
- amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
}
}
@@ -305,8 +309,8 @@ int nas_5gs_send_service_reject(
int rv;
ogs_pkbuf_t *gmmbuf = NULL;
- ogs_assert(ran_ue_cycle(ran_ue));
- ogs_assert(amf_ue_cycle(amf_ue));
+ ogs_assert(ran_ue);
+ ogs_assert(amf_ue);
ogs_debug("[%s] Service reject", amf_ue->supi);
@@ -316,7 +320,7 @@ int nas_5gs_send_service_reject(
return OGS_ERROR;
}
- rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -329,14 +333,14 @@ int nas_5gs_send_de_registration_accept(amf_ue_t *amf_ue)
ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
- ogs_error("NG context has already been removed");
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -351,8 +355,7 @@ int nas_5gs_send_de_registration_accept(amf_ue_t *amf_ue)
return OGS_ERROR;
}
- rv = nas_5gs_send_to_downlink_nas_transport(
- amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
if (rv != OGS_OK) {
ogs_error("nas_5gs_send_to_downlink_nas_transport() failed");
return rv;
@@ -377,14 +380,14 @@ int nas_5gs_send_de_registration_request(
ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
- ogs_error("NG context has already been removed");
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -410,8 +413,7 @@ int nas_5gs_send_de_registration_request(
ogs_timer_start(amf_ue->t3522.timer,
amf_timer_cfg(AMF_TIMER_T3522)->duration);
- rv = nas_5gs_send_to_downlink_nas_transport(
- amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -420,15 +422,17 @@ int nas_5gs_send_de_registration_request(
int nas_5gs_send_identity_request(amf_ue_t *amf_ue)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!ran_ue_cycle(amf_ue->ran_ue)) {
- ogs_error("NG context has already been removed");
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -453,8 +457,7 @@ int nas_5gs_send_identity_request(amf_ue_t *amf_ue)
ogs_timer_start(amf_ue->t3570.timer,
amf_timer_cfg(AMF_TIMER_T3570)->duration);
- rv = nas_5gs_send_to_downlink_nas_transport(
- amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -463,15 +466,17 @@ int nas_5gs_send_identity_request(amf_ue_t *amf_ue)
int nas_5gs_send_authentication_request(amf_ue_t *amf_ue)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!ran_ue_cycle(amf_ue->ran_ue)) {
- ogs_error("NG context has already been removed");
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -498,7 +503,7 @@ int nas_5gs_send_authentication_request(amf_ue_t *amf_ue)
amf_metrics_inst_global_inc(AMF_METR_GLOB_CTR_AMF_AUTH_REQ);
- rv = nas_5gs_send_to_downlink_nas_transport(amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -507,15 +512,17 @@ int nas_5gs_send_authentication_request(amf_ue_t *amf_ue)
int nas_5gs_send_authentication_reject(amf_ue_t *amf_ue)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!ran_ue_cycle(amf_ue->ran_ue)) {
- ogs_error("NG context has already been removed");
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -529,7 +536,7 @@ int nas_5gs_send_authentication_reject(amf_ue_t *amf_ue)
amf_metrics_inst_global_inc(AMF_METR_GLOB_CTR_AMF_AUTH_REJECT);
- rv = nas_5gs_send_to_downlink_nas_transport(amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -538,15 +545,17 @@ int nas_5gs_send_authentication_reject(amf_ue_t *amf_ue)
int nas_5gs_send_security_mode_command(amf_ue_t *amf_ue)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!ran_ue_cycle(amf_ue->ran_ue)) {
- ogs_error("NG context has already been removed");
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -571,7 +580,7 @@ int nas_5gs_send_security_mode_command(amf_ue_t *amf_ue)
ogs_timer_start(amf_ue->t3560.timer,
amf_timer_cfg(AMF_TIMER_T3560)->duration);
- rv = nas_5gs_send_to_downlink_nas_transport(amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -581,15 +590,17 @@ int nas_5gs_send_configuration_update_command(
amf_ue_t *amf_ue, gmm_configuration_update_command_param_t *param)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!ran_ue_cycle(amf_ue->ran_ue)) {
- ogs_error("NG context has already been removed");
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -632,7 +643,7 @@ int nas_5gs_send_configuration_update_command(
amf_metrics_inst_global_inc(AMF_METR_GLOB_CTR_MM_CONF_UPDATE);
- rv = nas_5gs_send_to_downlink_nas_transport(amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -650,16 +661,16 @@ int nas_send_pdu_session_setup_request(amf_sess_t *sess,
ogs_pkbuf_t *ngapbuf = NULL;
ogs_assert(sess);
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
if (n1smbuf) ogs_pkbuf_free(n1smbuf);
ogs_pkbuf_free(n2smbuf);
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
- ogs_warn("NG context has already been removed");
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
if (n1smbuf) ogs_pkbuf_free(n1smbuf);
ogs_pkbuf_free(n2smbuf);
return OGS_NOTFOUND;
@@ -714,16 +725,16 @@ int nas_send_pdu_session_modification_command(amf_sess_t *sess,
ogs_pkbuf_t *ngapbuf = NULL;
ogs_assert(sess);
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
if (n1smbuf) ogs_pkbuf_free(n1smbuf);
ogs_pkbuf_free(n2smbuf);
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
- ogs_warn("[%s] NG context has already been removed", amf_ue->supi);
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
if (n1smbuf) ogs_pkbuf_free(n1smbuf);
ogs_pkbuf_free(n2smbuf);
return OGS_NOTFOUND;
@@ -775,16 +786,16 @@ int nas_send_pdu_session_release_command(amf_sess_t *sess,
ogs_assert(n2smbuf);
ogs_assert(sess);
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
if (n1smbuf) ogs_pkbuf_free(n1smbuf);
ogs_pkbuf_free(n2smbuf);
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
- ogs_warn("NG context has already been removed");
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
if (n1smbuf) ogs_pkbuf_free(n1smbuf);
ogs_pkbuf_free(n2smbuf);
return OGS_NOTFOUND;
@@ -867,15 +878,17 @@ int nas_send_pdu_session_release_command(amf_sess_t *sess,
int nas_5gs_send_gmm_status(amf_ue_t *amf_ue, ogs_nas_5gmm_cause_t cause)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *gmmbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!ran_ue_cycle(amf_ue->ran_ue)) {
- ogs_error("NG context has already been removed");
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
}
@@ -887,7 +900,7 @@ int nas_5gs_send_gmm_status(amf_ue_t *amf_ue, ogs_nas_5gmm_cause_t cause)
return OGS_ERROR;
}
- rv = nas_5gs_send_to_downlink_nas_transport(amf_ue->ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -898,13 +911,11 @@ int nas_5gs_send_gmm_reject(
{
int rv;
- amf_ue = amf_ue_cycle(amf_ue);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(ran_ue);
if (!ran_ue) {
ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
@@ -955,11 +966,17 @@ static ogs_nas_5gmm_cause_t gmm_cause_from_sbi(int status)
int nas_5gs_send_gmm_reject_from_sbi(amf_ue_t *amf_ue, int status)
{
int rv;
+ ran_ue_t *ran_ue = NULL;
ogs_assert(amf_ue);
- rv = nas_5gs_send_gmm_reject(
- amf_ue->ran_ue, amf_ue, gmm_cause_from_sbi(status));
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
+ return OGS_NOTFOUND;
+ }
+
+ rv = nas_5gs_send_gmm_reject(ran_ue, amf_ue, gmm_cause_from_sbi(status));
ogs_expect(rv == OGS_OK);
return rv;
@@ -974,20 +991,17 @@ int nas_5gs_send_dl_nas_transport(ran_ue_t *ran_ue, amf_sess_t *sess,
ogs_pkbuf_t *gmmbuf = NULL;
amf_ue_t *amf_ue = NULL;
- ogs_assert(sess);
- sess = amf_sess_cycle(sess);
if (!sess) {
ogs_error("Session has already been removed");
return OGS_NOTFOUND;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(ran_ue);
if (!ran_ue) {
ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
@@ -1004,7 +1018,7 @@ int nas_5gs_send_dl_nas_transport(ran_ue_t *ran_ue, amf_sess_t *sess,
ogs_error("gmm_build_dl_nas_transport() failed");
return OGS_ERROR;
}
- rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, amf_ue, gmmbuf);
+ rv = nas_5gs_send_to_downlink_nas_transport(ran_ue, gmmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -1030,19 +1044,18 @@ int nas_5gs_send_gsm_reject(ran_ue_t *ran_ue, amf_sess_t *sess,
amf_ue_t *amf_ue = NULL;
ogs_assert(sess);
- sess = amf_sess_cycle(sess);
+
if (!sess) {
ogs_error("Session has already been removed");
return OGS_NOTFOUND;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(ran_ue);
if (!ran_ue) {
ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
@@ -1066,20 +1079,17 @@ int nas_5gs_send_back_gsm_message(
ogs_pkbuf_t *pbuf = NULL;
amf_ue_t *amf_ue = NULL;
- ogs_assert(sess);
- sess = amf_sess_cycle(sess);
if (!sess) {
ogs_error("Session has already been removed");
return OGS_NOTFOUND;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(ran_ue);
if (!ran_ue) {
ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
diff --git a/src/amf/nas-path.h b/src/amf/nas-path.h
index 0c86ca35ae..a1a8816a17 100644
--- a/src/amf/nas-path.h
+++ b/src/amf/nas-path.h
@@ -30,7 +30,7 @@ extern "C" {
int nas_5gs_send_to_gnb(amf_ue_t *amf_ue, ogs_pkbuf_t *pkbuf);
int nas_5gs_send_to_downlink_nas_transport(
- ran_ue_t *ran_ue, amf_ue_t *amf_ue, ogs_pkbuf_t *pkbuf);
+ ran_ue_t *ran_ue, ogs_pkbuf_t *pkbuf);
int nas_5gs_send_registration_accept(amf_ue_t *amf_ue);
int nas_5gs_send_registration_reject(
diff --git a/src/amf/nas-security.c b/src/amf/nas-security.c
index 8879ae5894..aaf38b1d25 100644
--- a/src/amf/nas-security.c
+++ b/src/amf/nas-security.c
@@ -178,6 +178,10 @@ int nas_5gs_security_decode(amf_ue_t *amf_ue,
if (security_header_type.ciphered) {
/* decrypt NAS message */
+ if (pkbuf->len == 0) {
+ ogs_error("Cannot decrypt Malformed NAS Message");
+ return OGS_ERROR;
+ }
ogs_nas_encrypt(amf_ue->selected_enc_algorithm,
amf_ue->knas_enc, amf_ue->ul_count.i32,
amf_ue->nas.access_type,
diff --git a/src/amf/nausf-build.c b/src/amf/nausf-build.c
index 72c8aee607..5330744bc9 100644
--- a/src/amf/nausf-build.c
+++ b/src/amf/nausf-build.c
@@ -46,8 +46,18 @@ ogs_sbi_request_t *amf_nausf_auth_build_authenticate(
memset(&AuthenticationInfo, 0, sizeof(AuthenticationInfo));
- ogs_assert(amf_ue->suci);
- AuthenticationInfo.supi_or_suci = amf_ue->suci;
+ if (amf_ue->suci)
+ AuthenticationInfo.supi_or_suci = amf_ue->suci;
+ else
+ AuthenticationInfo.supi_or_suci = amf_ue->supi;
+
+ if (!AuthenticationInfo.supi_or_suci) {
+ ogs_error("No SUPI[%s] or SUCI[%s]",
+ amf_ue->supi ? amf_ue->supi : "NULL",
+ amf_ue->suci ? amf_ue->suci : "NULL");
+ goto end;
+ }
+
AuthenticationInfo.serving_network_name =
ogs_serving_network_name_from_plmn_id(&amf_ue->nr_tai.plmn_id);
if (!AuthenticationInfo.serving_network_name) {
@@ -87,11 +97,11 @@ ogs_sbi_request_t *amf_nausf_auth_build_authenticate_delete(
ogs_sbi_request_t *request = NULL;
ogs_assert(amf_ue);
- ogs_assert(amf_ue->confirmation_url_for_5g_aka);
+ ogs_assert(amf_ue->confirmation_for_5g_aka.resource_uri);
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_DELETE;
- message.h.uri = amf_ue->confirmation_url_for_5g_aka;
+ message.h.uri = amf_ue->confirmation_for_5g_aka.resource_uri;
request = ogs_sbi_build_request(&message);
ogs_expect(request);
@@ -110,11 +120,11 @@ ogs_sbi_request_t *amf_nausf_auth_build_authenticate_confirmation(
OpenAPI_confirmation_data_t *ConfirmationData = NULL;
ogs_assert(amf_ue);
- ogs_assert(amf_ue->confirmation_url_for_5g_aka);
+ ogs_assert(amf_ue->confirmation_for_5g_aka.resource_uri);
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_PUT;
- message.h.uri = amf_ue->confirmation_url_for_5g_aka;
+ message.h.uri = amf_ue->confirmation_for_5g_aka.resource_uri;
ConfirmationData = ogs_calloc(1, sizeof(*ConfirmationData));
if (!ConfirmationData) {
diff --git a/src/amf/nausf-handler.c b/src/amf/nausf-handler.c
index d5cd875bff..9ce6cab1ba 100644
--- a/src/amf/nausf-handler.c
+++ b/src/amf/nausf-handler.c
@@ -30,9 +30,21 @@ int amf_nausf_auth_handle_authenticate(
OpenAPI_map_t *LinksValueScheme = NULL;
OpenAPI_lnode_t *node = NULL;
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+
ogs_assert(amf_ue);
ogs_assert(message);
+ if (!message->http.location) {
+ ogs_error("[%s] No http.location", amf_ue->suci);
+ return OGS_ERROR;
+ }
+
UeAuthenticationCtx = message->UeAuthenticationCtx;
if (!UeAuthenticationCtx) {
ogs_error("[%s] No UeAuthenticationCtx", amf_ue->suci);
@@ -92,11 +104,36 @@ int amf_nausf_auth_handle_authenticate(
return OGS_ERROR;
}
- if (amf_ue->confirmation_url_for_5g_aka)
- ogs_free(amf_ue->confirmation_url_for_5g_aka);
- amf_ue->confirmation_url_for_5g_aka =
- ogs_strdup(LinksValueSchemeValue->href);
- ogs_assert(amf_ue->confirmation_url_for_5g_aka);
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, message->http.location);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ ogs_error("[%s] Invalid URI [%s]",
+ amf_ue->suci, message->http.location);
+ return OGS_ERROR;
+ }
+
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("[%s] ogs_sbi_client_add()", amf_ue->suci);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_error("[%s] ogs_sbi_client_add() failed", amf_ue->suci);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ return OGS_ERROR;
+ }
+ }
+
+ OGS_SBI_SETUP_CLIENT(&amf_ue->confirmation_for_5g_aka, client);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ STORE_5G_AKA_CONFIRMATION(amf_ue, LinksValueSchemeValue->href);
ogs_ascii_to_hex(AV5G_AKA->rand, strlen(AV5G_AKA->rand),
amf_ue->rand, sizeof(amf_ue->rand));
diff --git a/src/amf/ngap-build.c b/src/amf/ngap-build.c
index e41725fc0c..d84b3b8978 100644
--- a/src/amf/ngap-build.c
+++ b/src/amf/ngap-build.c
@@ -313,9 +313,8 @@ ogs_pkbuf_t *ngap_build_downlink_nas_transport(
NGAP_AllowedNSSAI_t *AllowedNSSAI = NULL;
ogs_assert(gmmbuf);
- ran_ue = ran_ue_cycle(ran_ue);
ogs_assert(ran_ue);
- amf_ue = amf_ue_cycle(ran_ue->amf_ue);
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
ogs_assert(amf_ue);
ogs_debug("DownlinkNASTransport");
@@ -361,8 +360,9 @@ ogs_pkbuf_t *ngap_build_downlink_nas_transport(
NAS_PDU = &ie->value.choice.NAS_PDU;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -469,9 +469,8 @@ ogs_pkbuf_t *ngap_ue_build_initial_context_setup_request(
NGAP_MaskedIMEISV_t *MaskedIMEISV = NULL;
NGAP_NAS_PDU_t *NAS_PDU = NULL;
- amf_ue = amf_ue_cycle(amf_ue);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ogs_debug("InitialContextSetupRequest(UE)");
@@ -623,8 +622,9 @@ ogs_pkbuf_t *ngap_ue_build_initial_context_setup_request(
SecurityKey = &ie->value.choice.SecurityKey;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -779,9 +779,8 @@ ogs_pkbuf_t *ngap_build_ue_context_modification_request(amf_ue_t *amf_ue)
NGAP_UESecurityCapabilities_t *UESecurityCapabilities = NULL;
NGAP_SecurityKey_t *SecurityKey = NULL;
- amf_ue = amf_ue_cycle(amf_ue);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ogs_debug("UEContextModificationRequest(UE)");
@@ -858,8 +857,9 @@ ogs_pkbuf_t *ngap_build_ue_context_modification_request(amf_ue_t *amf_ue)
SecurityKey = &ie->value.choice.SecurityKey;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -929,9 +929,8 @@ ogs_pkbuf_t *ngap_sess_build_initial_context_setup_request(
NGAP_MaskedIMEISV_t *MaskedIMEISV = NULL;
ogs_assert(sess);
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(ran_ue);
ogs_assert(ran_ue);
ogs_debug("InitialContextSetupRequest(Session)");
@@ -1091,8 +1090,9 @@ ogs_pkbuf_t *ngap_sess_build_initial_context_setup_request(
SecurityKey = &ie->value.choice.SecurityKey;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -1218,7 +1218,6 @@ ogs_pkbuf_t *ngap_build_ue_context_release_command(
NGAP_UE_NGAP_IDs_t *UE_NGAP_IDs = NULL;
NGAP_Cause_t *Cause = NULL;
- ran_ue = ran_ue_cycle(ran_ue);
ogs_assert(ran_ue);
ogs_debug("UEContextReleaseCommand");
@@ -1294,9 +1293,8 @@ ogs_pkbuf_t *ngap_ue_build_pdu_session_resource_setup_request(
NGAP_PDUSessionResourceSetupListSUReq_t *PDUSessionList = NULL;
NGAP_PDUSessionResourceSetupItemSUReq_t *PDUSessionItem = NULL;
- amf_ue = amf_ue_cycle(amf_ue);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ogs_debug("PDUSessionResourceSetupRequest(UE)");
@@ -1335,8 +1333,9 @@ ogs_pkbuf_t *ngap_ue_build_pdu_session_resource_setup_request(
RAN_UE_NGAP_ID = &ie->value.choice.RAN_UE_NGAP_ID;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -1461,9 +1460,8 @@ ogs_pkbuf_t *ngap_sess_build_pdu_session_resource_setup_request(
ogs_assert(n2smbuf);
ogs_assert(sess);
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(ran_ue);
ogs_assert(ran_ue);
ogs_debug("PDUSessionResourceSetupRequest(Session)");
@@ -1511,8 +1509,9 @@ ogs_pkbuf_t *ngap_sess_build_pdu_session_resource_setup_request(
PDUSessionList = &ie->value.choice.PDUSessionResourceSetupListSUReq;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -1603,9 +1602,9 @@ ogs_pkbuf_t *ngap_build_pdu_session_resource_modify_request(
ogs_assert(n2smbuf);
ogs_assert(sess);
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ogs_debug("PDUSessionResourceModifyRequest");
@@ -1653,8 +1652,9 @@ ogs_pkbuf_t *ngap_build_pdu_session_resource_modify_request(
PDUSessionList = &ie->value.choice.PDUSessionResourceModifyListModReq;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -1702,9 +1702,9 @@ ogs_pkbuf_t *ngap_build_pdu_session_resource_release_command(
ogs_assert(n2smbuf);
ogs_assert(sess);
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ogs_debug("PDUSessionResourceReleaseCommand");
@@ -1743,8 +1743,9 @@ ogs_pkbuf_t *ngap_build_pdu_session_resource_release_command(
RAN_UE_NGAP_ID = &ie->value.choice.RAN_UE_NGAP_ID;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -1807,7 +1808,6 @@ ogs_pkbuf_t *ngap_build_paging(amf_ue_t *amf_ue)
NGAP_TAIListForPagingItem_t *TAIItem = NULL;
NGAP_TAI_t *tAI = NULL;
- amf_ue = amf_ue_cycle(amf_ue);
ogs_assert(amf_ue);
ogs_debug("Paging");
@@ -1934,9 +1934,8 @@ ogs_pkbuf_t *ngap_build_path_switch_ack(amf_ue_t *amf_ue)
NGAP_PDUSessionResourceSwitchedList_t *PDUSessionResourceSwitchedList;
NGAP_AllowedNSSAI_t *AllowedNSSAI = NULL;
- amf_ue = amf_ue_cycle(amf_ue);
ogs_assert(amf_ue);
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
ogs_assert(ran_ue);
ogs_debug("PathSwitchAcknowledge");
@@ -1991,8 +1990,9 @@ ogs_pkbuf_t *ngap_build_path_switch_ack(amf_ue_t *amf_ue)
ie->criticality = NGAP_Criticality_ignore;
ie->value.present = NGAP_PathSwitchRequestAcknowledgeIEs__value_PR_PDUSessionResourceSwitchedList;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, ran_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = ran_ue->ran_ue_ngap_id;
@@ -2101,9 +2101,8 @@ ogs_pkbuf_t *ngap_build_handover_request(ran_ue_t *target_ue)
*SourceToTarget_TransparentContainer = NULL;
NGAP_GUAMI_t *GUAMI = NULL;
- target_ue = ran_ue_cycle(target_ue);
ogs_assert(target_ue);
- amf_ue = amf_ue_cycle(target_ue->amf_ue);
+ amf_ue = amf_ue_find_by_id(target_ue->amf_ue_id);
ogs_assert(amf_ue);
ogs_debug("HandoverRequest");
@@ -2131,8 +2130,9 @@ ogs_pkbuf_t *ngap_build_handover_request(ran_ue_t *target_ue)
AMF_UE_NGAP_ID = &ie->value.choice.AMF_UE_NGAP_ID;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, target_ue->amf_ue_ngap_id);
@@ -2400,7 +2400,6 @@ ogs_pkbuf_t *ngap_build_handover_preparation_failure(
NGAP_RAN_UE_NGAP_ID_t *RAN_UE_NGAP_ID = NULL;
NGAP_Cause_t *Cause = NULL;
- source_ue = ran_ue_cycle(source_ue);
ogs_assert(source_ue);
ogs_assert(cause);
@@ -2443,8 +2442,9 @@ ogs_pkbuf_t *ngap_build_handover_preparation_failure(
RAN_UE_NGAP_ID = &ie->value.choice.RAN_UE_NGAP_ID;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, source_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = source_ue->ran_ue_ngap_id;
@@ -2484,9 +2484,8 @@ ogs_pkbuf_t *ngap_build_handover_command(ran_ue_t *source_ue)
NGAP_TargetToSource_TransparentContainer_t
*TargetToSource_TransparentContainer = NULL;
- source_ue = ran_ue_cycle(source_ue);
ogs_assert(source_ue);
- amf_ue = amf_ue_cycle(source_ue->amf_ue);
+ amf_ue = amf_ue_find_by_id(source_ue->amf_ue_id);
ogs_assert(amf_ue);
ogs_debug("HandoverCommand");
@@ -2524,8 +2523,9 @@ ogs_pkbuf_t *ngap_build_handover_command(ran_ue_t *source_ue)
RAN_UE_NGAP_ID = &ie->value.choice.RAN_UE_NGAP_ID;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, source_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = source_ue->ran_ue_ngap_id;
@@ -2602,7 +2602,6 @@ ogs_pkbuf_t *ngap_build_handover_cancel_ack(ran_ue_t *source_ue)
NGAP_AMF_UE_NGAP_ID_t *AMF_UE_NGAP_ID = NULL;
NGAP_RAN_UE_NGAP_ID_t *RAN_UE_NGAP_ID = NULL;
- source_ue = ran_ue_cycle(source_ue);
ogs_assert(source_ue);
ogs_debug("HandoverCancelAcknowledge");
@@ -2642,8 +2641,9 @@ ogs_pkbuf_t *ngap_build_handover_cancel_ack(ran_ue_t *source_ue)
RAN_UE_NGAP_ID = &ie->value.choice.RAN_UE_NGAP_ID;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, source_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = source_ue->ran_ue_ngap_id;
@@ -2667,7 +2667,6 @@ ogs_pkbuf_t *ngap_build_downlink_ran_status_transfer(
NGAP_RANStatusTransfer_TransparentContainer_t
*RANStatusTransfer_TransparentContainer = NULL;
- target_ue = ran_ue_cycle(target_ue);
ogs_assert(target_ue);
ogs_assert(transfer);
@@ -2707,8 +2706,9 @@ ogs_pkbuf_t *ngap_build_downlink_ran_status_transfer(
RAN_UE_NGAP_ID = &ie->value.choice.RAN_UE_NGAP_ID;
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
asn_uint642INTEGER(AMF_UE_NGAP_ID, target_ue->amf_ue_ngap_id);
*RAN_UE_NGAP_ID = target_ue->ran_ue_ngap_id;
diff --git a/src/amf/ngap-handler.c b/src/amf/ngap-handler.c
index 300bbac5f6..bbb316bf63 100644
--- a/src/amf/ngap-handler.c
+++ b/src/amf/ngap-handler.c
@@ -38,14 +38,16 @@ static bool maximum_number_of_gnbs_is_reached(void)
static bool gnb_plmn_id_is_foreign(amf_gnb_t *gnb)
{
- int i, j;
-
- for (i = 0; i < gnb->num_of_supported_ta_list; i++) {
- for (j = 0; j < gnb->supported_ta_list[i].num_of_bplmn_list; j++) {
- if (memcmp(&gnb->plmn_id,
- &gnb->supported_ta_list[i].bplmn_list[j].plmn_id,
- OGS_PLMN_ID_LEN) == 0)
- return false;
+ int i, j, k;
+ for (i = 0; i < amf_self()->num_of_plmn_support; i++) {
+ for (j = 0; j < gnb->num_of_supported_ta_list; j++) {
+ for (k = 0; k < gnb->supported_ta_list[j].num_of_bplmn_list; k++) {
+ if (memcmp(&amf_self()->plmn_support[i].plmn_id,
+ &gnb->supported_ta_list[j].bplmn_list[k].plmn_id,
+ OGS_PLMN_ID_LEN) == 0){
+ return false;
+ }
+ }
}
}
@@ -209,6 +211,16 @@ void ngap_handle_ng_setup_request(amf_gnb_t *gnb, ogs_ngap_message_t *message)
i++) {
NGAP_SupportedTAItem_t *SupportedTAItem = NULL;
+ if (gnb->num_of_supported_ta_list >=
+ OGS_ARRAY_SIZE(gnb->supported_ta_list)) {
+ ogs_error("OVERFLOW GNB->num_of_supported_ta_list "
+ "[%d:%d:%d]",
+ gnb->num_of_supported_ta_list,
+ OGS_MAX_NUM_OF_SUPPORTED_TA,
+ (int)OGS_ARRAY_SIZE(gnb->supported_ta_list));
+ break;
+ }
+
SupportedTAItem = (NGAP_SupportedTAItem_t *)
SupportedTAList->list.array[i];
if (!SupportedTAItem) {
@@ -235,6 +247,17 @@ void ngap_handle_ng_setup_request(amf_gnb_t *gnb, ogs_ngap_message_t *message)
NGAP_BroadcastPLMNItem_t *BroadcastPLMNItem = NULL;
NGAP_PLMNIdentity_t *pLMNIdentity = NULL;
+ if (gnb->supported_ta_list[i].num_of_bplmn_list >=
+ OGS_ARRAY_SIZE(gnb->supported_ta_list[i].bplmn_list)) {
+ ogs_error("OVERFLOW GNB->supported_ta_list.num_of_bplmn_list "
+ "[%d:%d:%d]",
+ gnb->supported_ta_list[i].num_of_bplmn_list,
+ OGS_MAX_NUM_OF_BPLMN,
+ (int)OGS_ARRAY_SIZE(
+ gnb->supported_ta_list[i].bplmn_list));
+ break;
+ }
+
BroadcastPLMNItem = (NGAP_BroadcastPLMNItem_t *)
SupportedTAItem->broadcastPLMNList.list.array[j];
if (!BroadcastPLMNItem) {
@@ -268,6 +291,19 @@ void ngap_handle_ng_setup_request(amf_gnb_t *gnb, ogs_ngap_message_t *message)
NGAP_SliceSupportItem_t *SliceSupportItem = NULL;
NGAP_S_NSSAI_t *s_NSSAI = NULL;
+ if (gnb->supported_ta_list[i].bplmn_list[j].num_of_s_nssai >=
+ OGS_ARRAY_SIZE(
+ gnb->supported_ta_list[i].bplmn_list[j].s_nssai)) {
+ ogs_error("OVERFLOW GNB->supported_ta_list."
+ "bplmn_list.num_of_s_nssai [%d:%d:%d]",
+ gnb->supported_ta_list[i].bplmn_list[j].
+ num_of_s_nssai,
+ OGS_MAX_NUM_OF_SLICE_SUPPORT,
+ (int)OGS_ARRAY_SIZE(gnb->
+ supported_ta_list[i].bplmn_list[j].s_nssai));
+ break;
+ }
+
SliceSupportItem = (NGAP_SliceSupportItem_t *)
BroadcastPLMNItem->tAISliceSupportList.list.array[k];
if (!SliceSupportItem) {
@@ -559,9 +595,9 @@ void ngap_handle_initial_ue_message(amf_gnb_t *gnb, ogs_ngap_message_t *message)
ogs_ngap_ASN_to_5gs_tai(
&UserLocationInformationNR->tAI, &ran_ue->saved.nr_tai);
- ogs_info(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] "
+ ogs_info(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] "
"TAC[%d] CellID[0x%llx]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id,
+ (long long)ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id,
ran_ue->saved.nr_tai.tac.v, (long long)ran_ue->saved.nr_cgi.cell_id);
if (UEContextRequest) {
@@ -633,17 +669,16 @@ void ngap_handle_uplink_nas_transport(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -655,7 +690,7 @@ void ngap_handle_uplink_nas_transport(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -663,7 +698,7 @@ void ngap_handle_uplink_nas_transport(
return;
}
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -730,9 +765,9 @@ void ngap_handle_uplink_nas_transport(
ogs_ngap_ASN_to_5gs_tai(
&UserLocationInformationNR->tAI, &ran_ue->saved.nr_tai);
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] "
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] "
"TAC[%d] CellID[0x%llx]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id,
+ (long long)ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id,
ran_ue->saved.nr_tai.tac.v, (long long)ran_ue->saved.nr_cgi.cell_id);
/* Copy NR-TAI/NR-CGI from ran_ue */
@@ -750,6 +785,7 @@ void ngap_handle_ue_radio_capability_info_indication(
int i, r;
ran_ue_t *ran_ue = NULL;
+ amf_ue_t *amf_ue = NULL;
uint64_t amf_ue_ngap_id;
NGAP_InitiatingMessage_t *initiatingMessage = NULL;
@@ -796,17 +832,16 @@ void ngap_handle_ue_radio_capability_info_indication(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -818,7 +853,7 @@ void ngap_handle_ue_radio_capability_info_indication(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -826,8 +861,9 @@ void ngap_handle_ue_radio_capability_info_indication(
return;
}
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
if (!UERadioCapability) {
ogs_error("No UERadioCapability");
@@ -839,9 +875,9 @@ void ngap_handle_ue_radio_capability_info_indication(
return;
}
- if (ran_ue->amf_ue)
- OGS_ASN_STORE_DATA(&ran_ue->amf_ue->ueRadioCapability,
- UERadioCapability);
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
+ if (amf_ue)
+ OGS_ASN_STORE_DATA(&amf_ue->ueRadioCapability, UERadioCapability);
}
void ngap_handle_initial_context_setup_response(
@@ -901,17 +937,16 @@ void ngap_handle_initial_context_setup_response(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -923,7 +958,7 @@ void ngap_handle_initial_context_setup_response(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -931,12 +966,13 @@ void ngap_handle_initial_context_setup_response(
return;
}
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
ran_ue->initial_context_setup_response_received = true;
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -1019,7 +1055,7 @@ void ngap_handle_initial_context_setup_response(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_ACTIVATED, ¶m);
+ ran_ue, sess, AMF_UPDATE_SM_CONTEXT_ACTIVATED, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1180,17 +1216,16 @@ void ngap_handle_initial_context_setup_failure(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1202,7 +1237,7 @@ void ngap_handle_initial_context_setup_failure(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -1210,8 +1245,9 @@ void ngap_handle_initial_context_setup_failure(
return;
}
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
if (!Cause) {
ogs_error("No Cause");
@@ -1235,7 +1271,7 @@ void ngap_handle_initial_context_setup_failure(
* may in principle be adopted. The RAN should ensure
* that no hanging resources remain at the RAN.
*/
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (amf_ue) {
/*
* if T3550 is running, Registration complete will be sent.
@@ -1245,11 +1281,11 @@ void ngap_handle_initial_context_setup_failure(
old_xact_count = amf_sess_xact_count(amf_ue);
- amf_ue->deactivation.group = NGAP_Cause_PR_nas;
- amf_ue->deactivation.cause = NGAP_CauseNas_normal_release;
+ ran_ue->deactivation.group = NGAP_Cause_PR_nas;
+ ran_ue->deactivation.cause = NGAP_CauseNas_normal_release;
amf_sbi_send_deactivate_all_sessions(
- amf_ue, AMF_UPDATE_SM_CONTEXT_DEACTIVATED,
+ ran_ue, amf_ue, AMF_UPDATE_SM_CONTEXT_DEACTIVATED,
Cause->present, (int)Cause->choice.radioNetwork);
new_xact_count = amf_sess_xact_count(amf_ue);
@@ -1320,8 +1356,7 @@ void ngap_handle_ue_context_modification_response(
if (AMF_UE_NGAP_ID) {
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_warn("Invalid AMF_UE_NGAP_ID");
}
@@ -1388,8 +1423,7 @@ void ngap_handle_ue_context_modification_failure(
if (AMF_UE_NGAP_ID) {
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_warn("Invalid AMF_UE_NGAP_ID");
}
@@ -1398,8 +1432,9 @@ void ngap_handle_ue_context_modification_failure(
ogs_warn("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
else
- ogs_warn(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_warn(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
} else if (RAN_UE_NGAP_ID) {
ran_ue = ran_ue_find_by_ran_ue_ngap_id(gnb, *RAN_UE_NGAP_ID);
@@ -1407,8 +1442,9 @@ void ngap_handle_ue_context_modification_failure(
ogs_warn("No RAN UE Context : RAN_UE_NGAP_ID[%d]",
(int)*RAN_UE_NGAP_ID);
else
- ogs_warn(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_warn(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
}
if (Cause) {
@@ -1476,17 +1512,16 @@ void ngap_handle_ue_context_release_request(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1498,7 +1533,7 @@ void ngap_handle_ue_context_release_request(
ogs_warn("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -1506,8 +1541,9 @@ void ngap_handle_ue_context_release_request(
return;
}
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
if (!Cause) {
ogs_error("No Cause");
@@ -1532,11 +1568,16 @@ void ngap_handle_ue_context_release_request(
ogs_warn("NAS-Cause[%d]", (int)Cause->choice.nas);
break;
default:
- ogs_warn("Invalid cause group[%d]", Cause->present);
- break;
+ ogs_error("Invalid cause group [%d]", Cause->present);
+ r = ngap_send_error_indication(
+ gnb, &ran_ue->ran_ue_ngap_id, &ran_ue->amf_ue_ngap_id,
+ NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ return;
}
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -1548,12 +1589,12 @@ void ngap_handle_ue_context_release_request(
} else {
int xact_count = amf_sess_xact_count(amf_ue);
- amf_ue->deactivation.group = Cause->present;
- amf_ue->deactivation.cause = (int)Cause->choice.radioNetwork;
+ ran_ue->deactivation.group = Cause->present;
+ ran_ue->deactivation.cause = (int)Cause->choice.radioNetwork;
if (!PDUSessionList) {
amf_sbi_send_deactivate_all_sessions(
- amf_ue, AMF_UPDATE_SM_CONTEXT_DEACTIVATED,
+ ran_ue, amf_ue, AMF_UPDATE_SM_CONTEXT_DEACTIVATED,
Cause->present, (int)Cause->choice.radioNetwork);
} else {
for (i = 0; i < PDUSessionList->list.count; i++) {
@@ -1585,14 +1626,14 @@ void ngap_handle_ue_context_release_request(
PDUSessionItem->pDUSessionID);
if (SESSION_CONTEXT_IN_SMF(sess)) {
amf_sbi_send_deactivate_session(
- sess, AMF_UPDATE_SM_CONTEXT_DEACTIVATED,
+ ran_ue, sess, AMF_UPDATE_SM_CONTEXT_DEACTIVATED,
Cause->present, (int)Cause->choice.radioNetwork);
}
}
}
if (amf_sess_xact_count(amf_ue) == xact_count) {
- r = ngap_send_amf_ue_context_release_command(amf_ue,
+ r = ngap_send_ran_ue_context_release_command(ran_ue,
Cause->present, (int)Cause->choice.radioNetwork,
NGAP_UE_CTX_REL_NG_REMOVE_AND_UNLINK, 0);
ogs_expect(r == OGS_OK);
@@ -1648,17 +1689,16 @@ void ngap_handle_ue_context_release_complete(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1670,7 +1710,7 @@ void ngap_handle_ue_context_release_complete(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -1688,16 +1728,12 @@ void ngap_handle_ue_context_release_action(ran_ue_t *ran_ue)
ogs_assert(ran_ue);
- if (ran_ue_cycle(ran_ue) == NULL) {
- ogs_error("NG context has already been removed");
- return;
- }
-
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
ogs_info("UE Context Release [Action:%d]", ran_ue->ue_ctx_rel_action);
- ogs_info(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_info(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
if (amf_ue) {
ogs_info(" SUCI[%s]", amf_ue->suci ? amf_ue->suci : "Unknown");
@@ -1788,12 +1824,14 @@ void ngap_handle_ue_context_release_action(ran_ue_t *ran_ue)
ogs_error("No UE(amf-ue) context");
return;
}
- if (!amf_ue->ran_ue) {
+
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
+ if (!ran_ue) {
ogs_error("No NG context");
return;
}
- r = ngap_send_handover_cancel_ack(amf_ue->ran_ue);
+ r = ngap_send_handover_cancel_ack(ran_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
break;
@@ -1879,17 +1917,16 @@ void ngap_handle_pdu_session_resource_setup_response(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1901,7 +1938,7 @@ void ngap_handle_pdu_session_resource_setup_response(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -1909,10 +1946,11 @@ void ngap_handle_pdu_session_resource_setup_response(
return;
}
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -2003,7 +2041,7 @@ void ngap_handle_pdu_session_resource_setup_response(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_ACTIVATED, ¶m);
+ ran_ue, sess, AMF_UPDATE_SM_CONTEXT_ACTIVATED, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2123,13 +2161,13 @@ void ngap_handle_pdu_session_resource_setup_response(
param.n2SmInfoType = OpenAPI_n2_sm_info_type_PDU_RES_SETUP_FAIL;
ogs_pkbuf_put_data(param.n2smbuf, transfer->buf, transfer->size);
- amf_ue->deactivation.group = NGAP_Cause_PR_nas;
- amf_ue->deactivation.cause = NGAP_CauseNas_normal_release;
+ ran_ue->deactivation.group = NGAP_Cause_PR_nas;
+ ran_ue->deactivation.cause = NGAP_CauseNas_normal_release;
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_SETUP_FAIL, ¶m);
+ ran_ue, sess, AMF_UPDATE_SM_CONTEXT_SETUP_FAIL, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2201,17 +2239,16 @@ void ngap_handle_pdu_session_resource_modify_response(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2223,7 +2260,7 @@ void ngap_handle_pdu_session_resource_modify_response(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -2231,10 +2268,11 @@ void ngap_handle_pdu_session_resource_modify_response(
return;
}
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -2322,7 +2360,7 @@ void ngap_handle_pdu_session_resource_modify_response(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_MODIFIED, ¶m);
+ ran_ue, sess, AMF_UPDATE_SM_CONTEXT_MODIFIED, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2388,17 +2426,16 @@ void ngap_handle_pdu_session_resource_release_response(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2410,7 +2447,7 @@ void ngap_handle_pdu_session_resource_release_response(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -2418,10 +2455,11 @@ void ngap_handle_pdu_session_resource_release_response(
return;
}
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -2509,12 +2547,17 @@ void ngap_handle_pdu_session_resource_release_response(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_N2_RELEASED, ¶m);
+ ran_ue, sess, AMF_UPDATE_SM_CONTEXT_N2_RELEASED, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
ogs_pkbuf_free(param.n2smbuf);
+
+ sess->pdu_session_resource_release_response_received = true;
+ if (sess->pdu_session_release_complete_received == true)
+ CLEAR_SESSION_CONTEXT(sess);
}
+
}
void ngap_handle_uplink_ran_configuration_transfer(
@@ -2735,17 +2778,16 @@ void ngap_handle_path_switch_request(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -2757,7 +2799,7 @@ void ngap_handle_path_switch_request(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -2765,7 +2807,7 @@ void ngap_handle_path_switch_request(
return;
}
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -2778,8 +2820,8 @@ void ngap_handle_path_switch_request(
return;
}
- ogs_info(" [OLD] RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_info(" [OLD] RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
ogs_info(" [OLD] TAC[%d] CellID[0x%llx]",
amf_ue->nr_tai.tac.v, (long long)amf_ue->nr_cgi.cell_id);
@@ -2836,8 +2878,8 @@ void ngap_handle_path_switch_request(
return;
}
- ogs_info(" [NEW] RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_info(" [NEW] RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
UserLocationInformationNR =
UserLocationInformation->choice.userLocationInformationNR;
@@ -2974,7 +3016,8 @@ void ngap_handle_path_switch_request(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_PATH_SWITCH_REQUEST, ¶m);
+ ran_ue, sess,
+ AMF_UPDATE_SM_CONTEXT_PATH_SWITCH_REQUEST, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -3062,17 +3105,16 @@ void ngap_handle_handover_required(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -3084,7 +3126,7 @@ void ngap_handle_handover_required(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -3092,10 +3134,11 @@ void ngap_handle_handover_required(
return;
}
- ogs_debug(" Source : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" Source : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
- amf_ue = source_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(source_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3213,6 +3256,46 @@ void ngap_handle_handover_required(
return;
}
+ target_ue = ran_ue_find_by_id(source_ue->target_ue_id);
+ if (target_ue) {
+ /*
+ * Issue #3014
+ *
+ * 1. HandoverRequired
+ * 2. HandoverRequest
+ * 3. HandoverFailure
+ * 4. UEContextReleaseCommand
+ * 5. HandoverPreparationFailure
+ *
+ * If UEContextReleaseComplete is not received,
+ * the Source-UE will have the Target-UE.
+ *
+ * 6. HandoverRequired
+ *
+ * There may be cases where the Source UE has a Target UE
+ * from a previous HandoverRequired process. In this case,
+ * it is recommended to force the deletion of the Target UE information
+ * when receiving a new HandoverRequired.
+ *
+ * 7. HandoverRequest
+ * 8. HandoverFailure
+ * 9. UEContextReleaseCommand
+ * 10. UEContextReleaseComplete
+ * 11. HandoverPreparationFailure
+ *
+ * ... Crashed ...
+ */
+ ogs_warn("DELETE the previously used TARGET in SOURCE");
+ ogs_warn(" Source : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
+ ogs_warn(" Target : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
+ source_ue_deassociate_target_ue(target_ue);
+ ran_ue_remove(target_ue);
+ }
+
/* Target UE */
target_ue = ran_ue_add(target_gnb, INVALID_UE_NGAP_ID);
if (target_ue == NULL) {
@@ -3235,8 +3318,9 @@ void ngap_handle_handover_required(
target_ue->psimask.activated = source_ue->psimask.activated;
- ogs_debug(" Target : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" Target : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
/* Store HandoverType */
amf_ue->handover.type = *HandoverType;
@@ -3322,7 +3406,8 @@ void ngap_handle_handover_required(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_HANDOVER_REQUIRED, ¶m);
+ source_ue, sess,
+ AMF_UPDATE_SM_CONTEXT_HANDOVER_REQUIRED, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -3401,17 +3486,16 @@ void ngap_handle_handover_request_ack(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -3423,7 +3507,7 @@ void ngap_handle_handover_request_ack(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -3442,7 +3526,7 @@ void ngap_handle_handover_request_ack(
target_ue->ran_ue_ngap_id = *RAN_UE_NGAP_ID;
- source_ue = target_ue->source_ue;
+ source_ue = ran_ue_find_by_id(target_ue->source_ue_id);
if (!source_ue) {
ogs_error("Cannot find Source-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3454,7 +3538,7 @@ void ngap_handle_handover_request_ack(
ogs_assert(r != OGS_ERROR);
return;
}
- amf_ue = target_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(target_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3467,10 +3551,12 @@ void ngap_handle_handover_request_ack(
return;
}
- ogs_debug(" Source : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
- ogs_debug(" Target : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" Source : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" Target : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
if (!PDUSessionList) {
ogs_error("No PDUSessionList");
@@ -3562,7 +3648,8 @@ void ngap_handle_handover_request_ack(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_HANDOVER_REQ_ACK, ¶m);
+ target_ue, sess,
+ AMF_UPDATE_SM_CONTEXT_HANDOVER_REQ_ACK, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -3624,8 +3711,7 @@ void ngap_handle_handover_failure(
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
r = ngap_send_error_indication(gnb, NULL, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
@@ -3647,7 +3733,7 @@ void ngap_handle_handover_failure(
return;
}
- source_ue = target_ue->source_ue;
+ source_ue = ran_ue_find_by_id(target_ue->source_ue_id);
if (!source_ue) {
ogs_error("Cannot find Source-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3660,10 +3746,12 @@ void ngap_handle_handover_failure(
return;
}
- ogs_debug(" Source : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
- ogs_debug(" Target : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" Source : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" Target : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
if (!Cause) {
ogs_error("No Cause");
@@ -3741,17 +3829,16 @@ void ngap_handle_handover_cancel(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -3763,7 +3850,7 @@ void ngap_handle_handover_cancel(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -3771,7 +3858,7 @@ void ngap_handle_handover_cancel(
return;
}
- target_ue = source_ue->target_ue;
+ target_ue = ran_ue_find_by_id(source_ue->target_ue_id);
if (!target_ue) {
ogs_error("Cannot find Source-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3783,7 +3870,7 @@ void ngap_handle_handover_cancel(
ogs_assert(r != OGS_ERROR);
return;
}
- amf_ue = source_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(source_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3796,10 +3883,12 @@ void ngap_handle_handover_cancel(
return;
}
- ogs_debug(" Source : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
- ogs_debug(" Target : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" Source : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" Target : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
if (!Cause) {
ogs_error("No Cause");
@@ -3814,6 +3903,16 @@ void ngap_handle_handover_cancel(
Cause->present, (int)Cause->choice.radioNetwork);
ogs_list_for_each(&amf_ue->sess_list, sess) {
+ if (!SESSION_CONTEXT_IN_SMF(sess)) {
+ ogs_error("Session Context is not in SMF [%d]", sess->psi);
+ r = ngap_send_error_indication2(source_ue,
+ NGAP_Cause_PR_radioNetwork,
+ NGAP_CauseRadioNetwork_handover_cancelled);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ return;
+ }
+
memset(¶m, 0, sizeof(param));
param.hoState = OpenAPI_ho_state_CANCELLED;
param.ngApCause.group = Cause->present;
@@ -3822,7 +3921,7 @@ void ngap_handle_handover_cancel(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_HANDOVER_CANCEL, ¶m);
+ source_ue, sess, AMF_UPDATE_SM_CONTEXT_HANDOVER_CANCEL, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
@@ -3882,17 +3981,16 @@ void ngap_handle_uplink_ran_status_transfer(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -3904,7 +4002,7 @@ void ngap_handle_uplink_ran_status_transfer(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -3912,7 +4010,7 @@ void ngap_handle_uplink_ran_status_transfer(
return;
}
- target_ue = source_ue->target_ue;
+ target_ue = ran_ue_find_by_id(source_ue->target_ue_id);
if (!target_ue) {
ogs_error("Cannot find Source-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3924,7 +4022,7 @@ void ngap_handle_uplink_ran_status_transfer(
ogs_assert(r != OGS_ERROR);
return;
}
- amf_ue = source_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(source_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -3937,10 +4035,12 @@ void ngap_handle_uplink_ran_status_transfer(
return;
}
- ogs_debug(" Source : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
- ogs_debug(" Target : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" Source : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" Target : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
r = ngap_send_downlink_ran_status_transfer(
target_ue, RANStatusTransfer_TransparentContainer);
@@ -4003,17 +4103,16 @@ void ngap_handle_handover_notification(
if (!AMF_UE_NGAP_ID) {
ogs_error("No AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return;
}
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
- r = ngap_send_error_indication(gnb, (uint32_t *)RAN_UE_NGAP_ID, NULL,
+ r = ngap_send_error_indication(gnb, (uint64_t *)RAN_UE_NGAP_ID, NULL,
NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -4025,7 +4124,7 @@ void ngap_handle_handover_notification(
ogs_error("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
r = ngap_send_error_indication(
- gnb, (uint32_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
+ gnb, (uint64_t *)RAN_UE_NGAP_ID, &amf_ue_ngap_id,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_unknown_local_UE_NGAP_ID);
ogs_expect(r == OGS_OK);
@@ -4033,7 +4132,7 @@ void ngap_handle_handover_notification(
return;
}
- source_ue = target_ue->source_ue;
+ source_ue = ran_ue_find_by_id(target_ue->source_ue_id);
if (!source_ue) {
ogs_error("Cannot find Source-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -4045,7 +4144,7 @@ void ngap_handle_handover_notification(
ogs_assert(r != OGS_ERROR);
return;
}
- amf_ue = target_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(target_ue->amf_ue_id);
if (!amf_ue) {
ogs_error("Cannot find AMF-UE Context [%lld]",
(long long)amf_ue_ngap_id);
@@ -4088,13 +4187,15 @@ void ngap_handle_handover_notification(
ogs_ngap_ASN_to_5gs_tai(
&UserLocationInformationNR->tAI, &target_ue->saved.nr_tai);
- ogs_debug(" Source : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- source_ue->ran_ue_ngap_id, (long long)source_ue->amf_ue_ngap_id);
+ ogs_debug(" Source : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)source_ue->ran_ue_ngap_id,
+ (long long)source_ue->amf_ue_ngap_id);
ogs_debug(" Source : TAC[%d] CellID[0x%llx]",
source_ue->saved.nr_tai.tac.v,
(long long)source_ue->saved.nr_cgi.cell_id);
- ogs_debug(" Target : RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] ",
- target_ue->ran_ue_ngap_id, (long long)target_ue->amf_ue_ngap_id);
+ ogs_debug(" Target : RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] ",
+ (long long)target_ue->ran_ue_ngap_id,
+ (long long)target_ue->amf_ue_ngap_id);
ogs_debug(" Target : TAC[%d] CellID[0x%llx]",
target_ue->saved.nr_tai.tac.v,
(long long)target_ue->saved.nr_cgi.cell_id);
@@ -4113,13 +4214,23 @@ void ngap_handle_handover_notification(
ogs_assert(r != OGS_ERROR);
ogs_list_for_each(&amf_ue->sess_list, sess) {
+ if (!SESSION_CONTEXT_IN_SMF(sess)) {
+ ogs_error("Session Context is not in SMF [%d]", sess->psi);
+ r = ngap_send_error_indication2(source_ue,
+ NGAP_Cause_PR_radioNetwork,
+ NGAP_CauseRadioNetwork_partial_handover);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ return;
+ }
+
memset(¶m, 0, sizeof(param));
param.hoState = OpenAPI_ho_state_COMPLETED;
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_update_sm_context,
- sess, AMF_UPDATE_SM_CONTEXT_HANDOVER_NOTIFY, ¶m);
+ source_ue, sess, AMF_UPDATE_SM_CONTEXT_HANDOVER_NOTIFY, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
@@ -4200,6 +4311,16 @@ void ngap_handle_ran_configuration_update(
i++) {
NGAP_SupportedTAItem_t *SupportedTAItem = NULL;
+ if (gnb->num_of_supported_ta_list >=
+ OGS_ARRAY_SIZE(gnb->supported_ta_list)) {
+ ogs_error("OVERFLOW GNB->num_of_supported_ta_list "
+ "[%d:%d:%d]",
+ gnb->num_of_supported_ta_list,
+ OGS_MAX_NUM_OF_SUPPORTED_TA,
+ (int)OGS_ARRAY_SIZE(gnb->supported_ta_list));
+ break;
+ }
+
SupportedTAItem = (NGAP_SupportedTAItem_t *)
SupportedTAList->list.array[i];
if (!SupportedTAItem) {
@@ -4227,6 +4348,17 @@ void ngap_handle_ran_configuration_update(
NGAP_BroadcastPLMNItem_t *BroadcastPLMNItem = NULL;
NGAP_PLMNIdentity_t *pLMNIdentity = NULL;
+ if (gnb->supported_ta_list[i].num_of_bplmn_list >=
+ OGS_ARRAY_SIZE(gnb->supported_ta_list[i].bplmn_list)) {
+ ogs_error("OVERFLOW GNB->supported_ta_list."
+ "num_of_bplm_list [%d:%d:%d]",
+ gnb->supported_ta_list[i].num_of_bplmn_list,
+ OGS_MAX_NUM_OF_BPLMN,
+ (int)OGS_ARRAY_SIZE(
+ gnb->supported_ta_list[i].bplmn_list));
+ break;
+ }
+
BroadcastPLMNItem = (NGAP_BroadcastPLMNItem_t *)
SupportedTAItem->broadcastPLMNList.list.array[j];
if (!BroadcastPLMNItem) {
@@ -4261,6 +4393,21 @@ void ngap_handle_ran_configuration_update(
NGAP_SliceSupportItem_t *SliceSupportItem = NULL;
NGAP_S_NSSAI_t *s_NSSAI = NULL;
+ if (gnb->supported_ta_list[i].
+ bplmn_list[j].num_of_s_nssai >=
+ OGS_ARRAY_SIZE(gnb->supported_ta_list[i].
+ bplmn_list[j].s_nssai)) {
+ ogs_error("OVERFLOW GNB->num_of_supported_ta_list."
+ "bplmn_list.num_of_s_nssai"
+ "[%d:%d:%d]",
+ gnb->supported_ta_list[i].bplmn_list[j].
+ num_of_s_nssai,
+ OGS_MAX_NUM_OF_SLICE_SUPPORT,
+ (int)OGS_ARRAY_SIZE(gnb->supported_ta_list[i].
+ bplmn_list[j].s_nssai));
+ break;
+ }
+
SliceSupportItem = (NGAP_SliceSupportItem_t *)
BroadcastPLMNItem->tAISliceSupportList.list.array[k];
if (!SliceSupportItem) {
@@ -4487,8 +4634,8 @@ void ngap_handle_ng_reset(
}
if (item->aMF_UE_NGAP_ID) {
- if (asn_INTEGER2ulong(item->aMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(item->aMF_UE_NGAP_ID,
+ &amf_ue_ngap_id) != 0) {
ogs_error("Invalid AMF_UE_NGAP_ID");
continue;
}
@@ -4521,7 +4668,7 @@ void ngap_handle_ng_reset(
/* RAN_UE Context where PartOfNG_interface was requested */
ran_ue->part_of_ng_reset_requested = true;
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
/*
* Issues #1928
*
@@ -4535,16 +4682,16 @@ void ngap_handle_ng_reset(
old_xact_count = amf_sess_xact_count(amf_ue);
amf_sbi_send_deactivate_all_sessions(
- amf_ue, AMF_REMOVE_S1_CONTEXT_BY_RESET_PARTIAL,
+ ran_ue, amf_ue, AMF_REMOVE_S1_CONTEXT_BY_RESET_PARTIAL,
NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_failure_in_radio_interface_procedure);
new_xact_count = amf_sess_xact_count(amf_ue);
} else {
ogs_warn("UE(amf-ue) context has already been removed");
- ogs_warn(" AMF_UE_NGAP_ID[%lld] RAN_UE_NGAP_ID[%d]",
+ ogs_warn(" AMF_UE_NGAP_ID[%lld] RAN_UE_NGAP_ID[%lld]",
(long long)ran_ue->amf_ue_ngap_id,
- ran_ue->ran_ue_ngap_id);
+ (long long)ran_ue->ran_ue_ngap_id);
}
if (old_xact_count == new_xact_count) ran_ue_remove(ran_ue);
@@ -4625,8 +4772,7 @@ void ngap_handle_error_indication(amf_gnb_t *gnb, ogs_ngap_message_t *message)
if (AMF_UE_NGAP_ID) {
- if (asn_INTEGER2ulong(AMF_UE_NGAP_ID,
- (unsigned long *)&amf_ue_ngap_id) != 0) {
+ if (asn_INTEGER2uint64(AMF_UE_NGAP_ID, &amf_ue_ngap_id) != 0) {
ogs_warn("Invalid AMF_UE_NGAP_ID");
}
@@ -4635,8 +4781,9 @@ void ngap_handle_error_indication(amf_gnb_t *gnb, ogs_ngap_message_t *message)
ogs_warn("No RAN UE Context : AMF_UE_NGAP_ID[%lld]",
(long long)amf_ue_ngap_id);
else
- ogs_warn(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_warn(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
} else if (RAN_UE_NGAP_ID) {
ran_ue = ran_ue_find_by_ran_ue_ngap_id(gnb, *RAN_UE_NGAP_ID);
@@ -4644,8 +4791,9 @@ void ngap_handle_error_indication(amf_gnb_t *gnb, ogs_ngap_message_t *message)
ogs_warn("No RAN UE Context : RAN_UE_NGAP_ID[%d]",
(int)*RAN_UE_NGAP_ID);
else
- ogs_warn(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_warn(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
}
if (Cause) {
diff --git a/src/amf/ngap-path.c b/src/amf/ngap-path.c
index 65cf408a5b..fda8957d6c 100644
--- a/src/amf/ngap-path.c
+++ b/src/amf/ngap-path.c
@@ -51,12 +51,7 @@ int ngap_send_to_gnb(amf_gnb_t *gnb, ogs_pkbuf_t *pkbuf, uint16_t stream_no)
char buf[OGS_ADDRSTRLEN];
ogs_assert(pkbuf);
-
- if (!amf_gnb_cycle(gnb)) {
- ogs_error("gNB has already been removed");
- ogs_pkbuf_free(pkbuf);
- return OGS_NOTFOUND;
- }
+ ogs_assert(gnb);
ogs_assert(gnb->sctp.sock);
if (gnb->sctp.sock->fd == INVALID_SOCKET) {
@@ -83,15 +78,24 @@ int ngap_send_to_gnb(amf_gnb_t *gnb, ogs_pkbuf_t *pkbuf, uint16_t stream_no)
int ngap_send_to_ran_ue(ran_ue_t *ran_ue, ogs_pkbuf_t *pkbuf)
{
int rv;
+ amf_gnb_t *gnb = NULL;
+
ogs_assert(pkbuf);
- if (!ran_ue_cycle(ran_ue)) {
+ if (!ran_ue) {
ogs_error("NG context has already been removed");
ogs_pkbuf_free(pkbuf);
return OGS_NOTFOUND;
}
- rv = ngap_send_to_gnb(ran_ue->gnb, pkbuf, ran_ue->gnb_ostream_id);
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
+ if (!gnb) {
+ ogs_error("[%d] gNB has already been removed", ran_ue->gnb_id);
+ ogs_pkbuf_free(pkbuf);
+ return OGS_NOTFOUND;
+ }
+
+ rv = ngap_send_to_gnb(gnb, pkbuf, ran_ue->gnb_ostream_id);
ogs_expect(rv == OGS_OK);
return rv;
@@ -112,8 +116,7 @@ int ngap_delayed_send_to_ran_ue(
ogs_app()->timer_mgr, amf_timer_ng_delayed_send, e);
ogs_assert(e->timer);
e->pkbuf = pkbuf;
- e->ran_ue = ran_ue;
- e->gnb = ran_ue->gnb;
+ e->ran_ue_id = ran_ue->id;
ogs_timer_start(e->timer, duration);
@@ -136,7 +139,7 @@ int ngap_send_to_5gsm(amf_ue_t *amf_ue, ogs_pkbuf_t *esmbuf)
e = amf_event_new(AMF_EVENT_5GSM_MESSAGE);
ogs_assert(e);
- e->amf_ue = amf_ue;
+ e->amf_ue_id = amf_ue->id;
e->pkbuf = esmbuf;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -153,6 +156,8 @@ int ngap_send_to_nas(ran_ue_t *ran_ue,
{
int rv;
+ amf_ue_t *amf_ue = NULL;
+
ogs_nas_5gs_security_header_t *sh = NULL;
ogs_nas_security_header_type_t security_header_type;
@@ -163,6 +168,14 @@ int ngap_send_to_nas(ran_ue_t *ran_ue,
ogs_assert(ran_ue);
ogs_assert(nasPdu);
+ if (nasPdu->size == 0) {
+ ogs_error("Empty NAS PDU");
+ ran_ue_remove(ran_ue);
+ return OGS_ERROR;
+ }
+
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
+
/* The Packet Buffer(pkbuf_t) for NAS message MUST make a HEADROOM.
* When calculating AES_CMAC, we need to use the headroom of the packet. */
nasbuf = ogs_pkbuf_alloc(NULL, OGS_NAS_HEADROOM+nasPdu->size);
@@ -200,19 +213,47 @@ int ngap_send_to_nas(ran_ue_t *ran_ue,
default:
ogs_error("Not implemented(security header type:0x%x)",
sh->security_header_type);
+ ran_ue_remove(ran_ue);
return OGS_ERROR;
}
- if (ran_ue->amf_ue) {
- if (nas_5gs_security_decode(ran_ue->amf_ue,
+ if (amf_ue) {
+ if (nas_5gs_security_decode(amf_ue,
security_header_type, nasbuf) != OGS_OK) {
ogs_error("nas_eps_security_decode failed()");
+ ran_ue_remove(ran_ue);
return OGS_ERROR;
}
}
h = (ogs_nas_5gmm_header_t *)nasbuf->data;
ogs_assert(h);
+ if (procedureCode == NGAP_ProcedureCode_id_InitialUEMessage) {
+ if (h->extended_protocol_discriminator !=
+ OGS_NAS_EXTENDED_PROTOCOL_DISCRIMINATOR_5GMM) {
+
+ ogs_error("Invalid extended_protocol_discriminator [%d]",
+ h->extended_protocol_discriminator);
+
+ ogs_pkbuf_free(nasbuf);
+ ran_ue_remove(ran_ue);
+
+ return OGS_ERROR;
+ }
+
+ if (h->message_type != OGS_NAS_5GS_REGISTRATION_REQUEST &&
+ h->message_type != OGS_NAS_5GS_SERVICE_REQUEST &&
+ h->message_type != OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE) {
+
+ ogs_error("Invalid 5GMM message type [%d]", h->message_type);
+
+ ogs_pkbuf_free(nasbuf);
+ ran_ue_remove(ran_ue);
+
+ return OGS_ERROR;
+ }
+ }
+
if (h->extended_protocol_discriminator ==
OGS_NAS_EXTENDED_PROTOCOL_DISCRIMINATOR_5GMM) {
e = amf_event_new(AMF_EVENT_5GMM_MESSAGE);
@@ -221,7 +262,7 @@ int ngap_send_to_nas(ran_ue_t *ran_ue,
ogs_pkbuf_free(nasbuf);
return OGS_ERROR;
}
- e->ran_ue = ran_ue;
+ e->ran_ue_id = ran_ue->id;
e->ngap.code = procedureCode;
e->nas.type = security_header_type.type;
e->pkbuf = nasbuf;
@@ -234,7 +275,6 @@ int ngap_send_to_nas(ran_ue_t *ran_ue,
return rv;
} else if (h->extended_protocol_discriminator ==
OGS_NAS_EXTENDED_PROTOCOL_DISCRIMINATOR_5GSM) {
- amf_ue_t *amf_ue = ran_ue->amf_ue;
if (!amf_ue) {
ogs_error("No UE Context");
ogs_pkbuf_free(nasbuf);
@@ -247,7 +287,10 @@ int ngap_send_to_nas(ran_ue_t *ran_ue,
} else {
ogs_error("Unknown NAS Protocol discriminator 0x%02x",
h->extended_protocol_discriminator);
+
ogs_pkbuf_free(nasbuf);
+ ran_ue_remove(ran_ue);
+
return OGS_ERROR;
}
}
@@ -257,12 +300,9 @@ int ngap_send_ng_setup_response(amf_gnb_t *gnb)
int rv;
ogs_pkbuf_t *ngap_buffer;
- ogs_debug("NG-Setup response");
+ ogs_assert(gnb);
- if (!amf_gnb_cycle(gnb)) {
- ogs_error("gNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("NG-Setup response");
ngap_buffer = ngap_build_ng_setup_response();
if (!ngap_buffer) {
@@ -282,12 +322,9 @@ int ngap_send_ng_setup_failure(
int rv;
ogs_pkbuf_t *ngap_buffer;
- ogs_debug("NG-Setup failure");
+ ogs_assert(gnb);
- if (!amf_gnb_cycle(gnb)) {
- ogs_error("gNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("NG-Setup failure");
ngap_buffer = ngap_build_ng_setup_failure(
group, cause, NGAP_TimeToWait_v10s);
@@ -307,12 +344,9 @@ int ngap_send_ran_configuration_update_ack(amf_gnb_t *gnb)
int rv;
ogs_pkbuf_t *ngap_buffer;
- ogs_debug("RANConfigurationUpdateAcknowledge");
+ ogs_assert(gnb);
- if (!amf_gnb_cycle(gnb)) {
- ogs_error("gNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("RANConfigurationUpdateAcknowledge");
ngap_buffer = ngap_build_ran_configuration_update_ack();
if (!ngap_buffer) {
@@ -332,12 +366,9 @@ int ngap_send_ran_configuration_update_failure(
int rv;
ogs_pkbuf_t *ngap_buffer;
- ogs_debug("RANConfigurationUpdateFailure");
+ ogs_assert(gnb);
- if (!amf_gnb_cycle(gnb)) {
- ogs_error("gNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("RANConfigurationUpdateFailure");
ngap_buffer = ngap_build_ran_configuration_update_failure(
group, cause, NGAP_TimeToWait_v10s);
@@ -359,14 +390,15 @@ int ngap_send_ran_ue_context_release_command(
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!ran_ue_cycle(ran_ue)) {
+ if (!ran_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
}
ogs_debug("UEContextReleaseCommand");
- ogs_debug(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
+ ogs_debug(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id);
ogs_assert(action != NGAP_UE_CTX_REL_INVALID_ACTION);
ran_ue->ue_ctx_rel_action = action;
@@ -389,25 +421,6 @@ int ngap_send_ran_ue_context_release_command(
return rv;
}
-int ngap_send_amf_ue_context_release_command(
- amf_ue_t *amf_ue, NGAP_Cause_PR group, long cause,
- uint8_t action, ogs_time_t duration)
-{
- int rv;
-
- if (!amf_ue_cycle(amf_ue)) {
- ogs_error("UE(amf-ue) context has already been removed");
- return OGS_NOTFOUND;
- }
-
- rv = ngap_send_ran_ue_context_release_command(
- amf_ue->ran_ue, group, cause, action, duration);
- ogs_expect(rv == OGS_OK);
- ogs_debug(" SUPI[%s]", amf_ue->supi);
-
- return rv;
-}
-
int ngap_send_paging(amf_ue_t *amf_ue)
{
ogs_pkbuf_t *ngapbuf = NULL;
@@ -417,7 +430,7 @@ int ngap_send_paging(amf_ue_t *amf_ue)
ogs_debug("NG-Paging");
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
@@ -471,10 +484,7 @@ int ngap_send_downlink_ran_configuration_transfer(
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!amf_gnb_cycle(target_gnb)) {
- ogs_error("gNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_assert(target_gnb);
ogs_assert(transfer);
ngapbuf = ngap_build_downlink_ran_configuration_transfer(transfer);
@@ -497,20 +507,18 @@ int ngap_send_path_switch_ack(amf_sess_t *sess)
ran_ue_t *ran_ue = NULL;
ogs_pkbuf_t *ngapbuf = NULL;
- ogs_assert(sess);
- sess = amf_sess_cycle(sess);
if (!sess) {
ogs_error("Session has already been removed");
return OGS_NOTFOUND;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ran_ue = ran_ue_cycle(amf_ue->ran_ue);
+ ran_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!ran_ue) {
ogs_error("[%s] NG context has already been removed", amf_ue->supi);
return OGS_NOTFOUND;
@@ -535,18 +543,18 @@ int ngap_send_handover_request(amf_ue_t *amf_ue)
ran_ue_t *source_ue = NULL, *target_ue = NULL;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- source_ue = ran_ue_cycle(amf_ue->ran_ue);
+ source_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!source_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
}
- target_ue = ran_ue_cycle(source_ue->target_ue);
+ target_ue = ran_ue_find_by_id(source_ue->target_ue_id);
if (!target_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
@@ -570,7 +578,7 @@ int ngap_send_handover_preparation_failure(
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!ran_ue_cycle(source_ue)) {
+ if (!source_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
}
@@ -596,12 +604,12 @@ int ngap_send_handover_command(amf_ue_t *amf_ue)
ran_ue_t *source_ue = NULL;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!amf_ue_cycle(amf_ue)) {
+ if (!amf_ue) {
ogs_error("UE(amf-ue) context has already been removed");
return OGS_NOTFOUND;
}
- source_ue = ran_ue_cycle(amf_ue->ran_ue);
+ source_ue = ran_ue_find_by_id(amf_ue->ran_ue_id);
if (!source_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
@@ -624,7 +632,7 @@ int ngap_send_handover_cancel_ack(ran_ue_t *source_ue)
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!ran_ue_cycle(source_ue)) {
+ if (!source_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
}
@@ -648,7 +656,7 @@ int ngap_send_downlink_ran_status_transfer(
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!ran_ue_cycle(target_ue)) {
+ if (!target_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
}
@@ -668,17 +676,14 @@ int ngap_send_downlink_ran_status_transfer(
int ngap_send_error_indication(
amf_gnb_t *gnb,
- uint32_t *ran_ue_ngap_id,
+ uint64_t *ran_ue_ngap_id,
uint64_t *amf_ue_ngap_id,
NGAP_Cause_PR group, long cause)
{
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!amf_gnb_cycle(gnb)) {
- ogs_error("gNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_assert(gnb);
ngapbuf = ogs_ngap_build_error_indication(
ran_ue_ngap_id, amf_ue_ngap_id, group, cause);
@@ -697,15 +702,21 @@ int ngap_send_error_indication2(
ran_ue_t *ran_ue, NGAP_Cause_PR group, long cause)
{
int rv;
+ amf_gnb_t *gnb = NULL;
- ran_ue = ran_ue_cycle(ran_ue);
if (!ran_ue) {
ogs_error("NG context has already been removed");
return OGS_NOTFOUND;
}
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
+ if (!gnb) {
+ ogs_error("[%d] gNB has already been removed", ran_ue->gnb_id);
+ return OGS_NOTFOUND;
+ }
+
rv = ngap_send_error_indication(
- ran_ue->gnb, &ran_ue->ran_ue_ngap_id, &ran_ue->amf_ue_ngap_id,
+ gnb, &ran_ue->ran_ue_ngap_id, &ran_ue->amf_ue_ngap_id,
group, cause);
ogs_expect(rv == OGS_OK);
@@ -719,10 +730,7 @@ int ngap_send_ng_reset_ack(
int rv;
ogs_pkbuf_t *ngapbuf = NULL;
- if (!amf_gnb_cycle(gnb)) {
- ogs_error("gNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_assert(gnb);
ngapbuf = ogs_ngap_build_ng_reset_ack(partOfNG_Interface);
if (!ngapbuf) {
diff --git a/src/amf/ngap-path.h b/src/amf/ngap-path.h
index 9cfa74ab92..116502744f 100644
--- a/src/amf/ngap-path.h
+++ b/src/amf/ngap-path.h
@@ -55,9 +55,6 @@ int ngap_send_ran_configuration_update_failure(
int ngap_send_ran_ue_context_release_command(
ran_ue_t *ran_ue, NGAP_Cause_PR group, long cause,
uint8_t action, ogs_time_t duration);
-int ngap_send_amf_ue_context_release_command(
- amf_ue_t *amf_ue, NGAP_Cause_PR group, long cause,
- uint8_t action, ogs_time_t duration);
int ngap_send_paging(amf_ue_t *amf_ue);
@@ -78,7 +75,7 @@ int ngap_send_downlink_ran_status_transfer(
int ngap_send_error_indication(
amf_gnb_t *gnb,
- uint32_t *ran_ue_ngap_id,
+ uint64_t *ran_ue_ngap_id,
uint64_t *amf_ue_ngap_id,
NGAP_Cause_PR group, long cause);
int ngap_send_error_indication2(
diff --git a/src/amf/ngap-sm.c b/src/amf/ngap-sm.c
index cf36e6c54b..7a1c84dda4 100644
--- a/src/amf/ngap-sm.c
+++ b/src/amf/ngap-sm.c
@@ -54,7 +54,7 @@ void ngap_state_operational(ogs_fsm_t *s, amf_event_t *e)
amf_sm_debug(e);
- gnb = e->gnb;
+ gnb = amf_gnb_find_by_id(e->gnb_id);
ogs_assert(gnb);
switch (e->h.id) {
@@ -191,10 +191,10 @@ void ngap_state_operational(ogs_fsm_t *s, amf_event_t *e)
case AMF_EVENT_NGAP_TIMER:
switch (e->h.timer_id) {
case AMF_TIMER_NG_DELAYED_SEND:
- ogs_assert(e->ran_ue);
ogs_assert(e->pkbuf);
- r = ngap_send_to_ran_ue(e->ran_ue, e->pkbuf);
+ r = ngap_send_to_ran_ue(
+ ran_ue_find_by_id(e->ran_ue_id), e->pkbuf);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
diff --git a/src/amf/nnrf-handler.c b/src/amf/nnrf-handler.c
index 95f9bf21fd..fbb2d2d135 100644
--- a/src/amf/nnrf-handler.c
+++ b/src/amf/nnrf-handler.c
@@ -57,7 +57,9 @@ void amf_nnrf_handle_nf_discover(
amf_sbi_select_nf(sbi_object,
service_type, requester_nf_type, discovery_option);
- nf_instance = sbi_object->service_type_array[service_type].nf_instance;
+ nf_instance = OGS_SBI_GET_NF_INSTANCE(
+ sbi_object->service_type_array[service_type]);
+
if (!nf_instance) {
amf_ue_t *amf_ue = NULL;
amf_sess_t *sess = NULL;
@@ -82,13 +84,15 @@ void amf_nnrf_handle_nf_discover(
ogs_error("[%d:%d] (NF discover) No [%s]", sess->psi, sess->pti,
ogs_sbi_service_type_to_name(service_type));
if (sess->payload_container_type) {
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
+ r = nas_5gs_send_back_gsm_message(
+ ran_ue_find_by_id(sess->ran_ue_id), sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
- r = ngap_send_error_indication2(sess->ran_ue,
+ r = ngap_send_error_indication2(
+ ran_ue_find_by_id(sess->ran_ue_id),
NGAP_Cause_PR_transport,
NGAP_CauseTransport_transport_resource_unavailable);
ogs_expect(r == OGS_OK);
diff --git a/src/amf/nnssf-handler.c b/src/amf/nnssf-handler.c
index 27e81650aa..6f2cc77043 100644
--- a/src/amf/nnssf-handler.c
+++ b/src/amf/nnssf-handler.c
@@ -42,21 +42,20 @@ int amf_nnssf_nsselection_handle_get(
ogs_assert(recvmsg);
ogs_assert(!SESSION_CONTEXT_IN_SMF(sess));
- sess = amf_sess_cycle(sess);
if (!sess) {
ogs_error("Session has already been removed");
return OGS_ERROR;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
return OGS_ERROR;
}
- ran_ue = ran_ue_cycle(sess->ran_ue);
+ ran_ue = ran_ue_find_by_id(sess->ran_ue_id);
if (!ran_ue) {
- ogs_error("NG context has already been removed");
+ ogs_error("[%s] RAN-NG Context has already been removed", amf_ue->supi);
return OGS_ERROR;
}
@@ -121,7 +120,7 @@ int amf_nnssf_nsselection_handle_get(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, discovery_option,
amf_nsmf_pdusession_build_create_sm_context,
- sess, AMF_CREATE_SM_CONTEXT_NO_STATE, ¶m);
+ ran_ue, sess, AMF_CREATE_SM_CONTEXT_NO_STATE, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
@@ -163,7 +162,8 @@ int amf_nnssf_nsselection_handle_get(
ogs_freeaddrinfo(addr6);
r = amf_sess_sbi_discover_by_nsi(
- sess, OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, discovery_option);
+ ran_ue, sess,
+ OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, discovery_option);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
diff --git a/src/amf/npcf-build.c b/src/amf/npcf-build.c
index ba42634120..366828f8db 100644
--- a/src/amf/npcf-build.c
+++ b/src/amf/npcf-build.c
@@ -38,7 +38,7 @@ ogs_sbi_request_t *amf_npcf_am_policy_control_build_create(
ogs_assert(amf_ue);
ogs_assert(amf_ue->supi);
- ogs_assert(ran_ue_cycle(amf_ue->ran_ue));
+ ogs_assert(ran_ue_find_by_id(amf_ue->ran_ue_id));
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_POST;
@@ -221,15 +221,11 @@ ogs_sbi_request_t *amf_npcf_am_policy_control_build_delete(
ogs_assert(amf_ue);
ogs_assert(amf_ue->supi);
- ogs_assert(amf_ue->policy_association_id);
+ ogs_assert(amf_ue->policy_association.resource_uri);
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_DELETE;
- message.h.service.name =
- (char *)OGS_SBI_SERVICE_NAME_NPCF_AM_POLICY_CONTROL;
- message.h.api.version = (char *)OGS_SBI_API_V1;
- message.h.resource.component[0] = (char *)OGS_SBI_RESOURCE_NAME_POLICIES;
- message.h.resource.component[1] = amf_ue->policy_association_id;
+ message.h.uri = amf_ue->policy_association.resource_uri;
request = ogs_sbi_build_request(&message);
ogs_expect(request);
diff --git a/src/amf/npcf-handler.c b/src/amf/npcf-handler.c
index 2ba4a58a20..71b90b0fc6 100644
--- a/src/amf/npcf-handler.c
+++ b/src/amf/npcf-handler.c
@@ -35,6 +35,13 @@ int amf_npcf_am_policy_control_handle_create(
ogs_sbi_message_t message;
ogs_sbi_header_t header;
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+
if (recvmsg->res_status != OGS_SBI_HTTP_STATUS_CREATED) {
ogs_error("[%s] HTTP response error [%d]",
amf_ue->supi, recvmsg->res_status);
@@ -98,12 +105,54 @@ int amf_npcf_am_policy_control_handle_create(
return OGS_ERROR;
}
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, header.uri);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ ogs_error("[%s] Invalid URI [%s]", amf_ue->supi, header.uri);
+
+ ogs_sbi_header_free(&header);
+ r = nas_5gs_send_gmm_reject_from_sbi(
+ amf_ue, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ return OGS_ERROR;
+ }
+
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("[%s] ogs_sbi_client_add()", amf_ue->supi);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_error("[%s] ogs_sbi_client_add() failed", amf_ue->supi);
+
+ ogs_sbi_header_free(&header);
+ r = nas_5gs_send_gmm_reject_from_sbi(
+ amf_ue, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ return OGS_ERROR;
+ }
+ }
+
+ OGS_SBI_SETUP_CLIENT(&amf_ue->policy_association, client);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ PCF_AM_POLICY_STORE(amf_ue, header.uri, message.h.resource.component[1]);
+
/* SBI Features */
- supported_features = ogs_uint64_from_string(PolicyAssociation->supp_feat);
+ supported_features = ogs_uint64_from_string_hexadecimal(
+ PolicyAssociation->supp_feat);
amf_ue->am_policy_control_features &= supported_features;
- PCF_AM_POLICY_STORE(amf_ue, message.h.resource.component[1]);
-
OpenAPI_list_for_each(PolicyAssociation->triggers, node) {
if (node->data) {
OpenAPI_request_trigger_e trigger = (intptr_t)node->data;
diff --git a/src/amf/nsmf-build.c b/src/amf/nsmf-build.c
index 4a36649a98..836b7449f9 100644
--- a/src/amf/nsmf-build.c
+++ b/src/amf/nsmf-build.c
@@ -39,10 +39,10 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_create_sm_context(
ogs_sbi_nf_instance_t *pcf_nf_instance = NULL;
ogs_assert(sess);
- amf_ue = sess->amf_ue;
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
ogs_assert(amf_ue->nas.access_type);
- ogs_assert(ran_ue_cycle(amf_ue->ran_ue));
+ ogs_assert(ran_ue_find_by_id(amf_ue->ran_ue_id));
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_POST;
@@ -133,7 +133,7 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_create_sm_context(
sNssai.sd = ogs_s_nssai_sd_to_string(sess->s_nssai.sd);
SmContextCreateData.s_nssai = &sNssai;
- if (sess->mapped_hplmn.sst) {
+ if (sess->mapped_hplmn_presence) {
hplmnSnssai.sst = sess->mapped_hplmn.sst;
hplmnSnssai.sd = ogs_s_nssai_sd_to_string(sess->mapped_hplmn.sd);
SmContextCreateData.hplmn_snssai = &hplmnSnssai;
@@ -190,13 +190,25 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_create_sm_context(
goto end;
}
- pcf_nf_instance = amf_ue->sbi.service_type_array[
- OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL].nf_instance;
- if (!pcf_nf_instance) {
+ /*
+ * We're experiencing an issue after changing SearchResult.validityTime
+ * from 3600 seconds to 30 seconds. (#3210)
+ *
+ * When AMF finds a PCF through Discovery, it can be deleted
+ * after 30 seconds by ValidityTime.
+ *
+ * We have changed our implementation to not send the PCF-ID in this case.
+ *
+ * What we need to do is proactively add a part that will re-discover
+ * the PCF when a situation arises where we really need the PCF-ID.
+ */
+ pcf_nf_instance = OGS_SBI_GET_NF_INSTANCE(
+ amf_ue->sbi.service_type_array[
+ OGS_SBI_SERVICE_TYPE_NPCF_AM_POLICY_CONTROL]);
+ if (pcf_nf_instance)
+ SmContextCreateData.pcf_id = pcf_nf_instance->id;
+ else
ogs_error("No pcf_nf_instance");
- goto end;
- }
- SmContextCreateData.pcf_id = pcf_nf_instance->id;
message.SmContextCreateData = &SmContextCreateData;
@@ -272,17 +284,15 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_update_sm_context(
ogs_assert(param);
ogs_assert(sess);
- ogs_assert(sess->sm_context_ref);
- amf_ue = sess->amf_ue;
+ ogs_assert(sess->sm_context.resource_uri);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
ogs_assert(amf_ue);
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_POST;
- message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NSMF_PDUSESSION;
- message.h.api.version = (char *)OGS_SBI_API_V1;
- message.h.resource.component[0] = (char *)OGS_SBI_RESOURCE_NAME_SM_CONTEXTS;
- message.h.resource.component[1] = sess->sm_context_ref;
- message.h.resource.component[2] = (char *)OGS_SBI_RESOURCE_NAME_MODIFY;
+ message.h.uri = ogs_msprintf("%s/%s",
+ sess->sm_context.resource_uri, OGS_SBI_RESOURCE_NAME_MODIFY);
+ ogs_assert(message.h.uri);
memset(&ueLocation, 0, sizeof(ueLocation));
memset(&SmContextUpdateData, 0, sizeof(SmContextUpdateData));
@@ -377,6 +387,8 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_update_sm_context(
ogs_expect(request);
end:
+ if (message.h.uri)
+ ogs_free(message.h.uri);
if (ueLocation.nr_location) {
if (ueLocation.nr_location->ue_location_timestamp)
ogs_free(ueLocation.nr_location->ue_location_timestamp);
@@ -405,18 +417,13 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_release_sm_context(
OpenAPI_user_location_t ueLocation;
ogs_assert(sess);
- ogs_assert(sess->sm_context_ref);
- amf_ue = sess->amf_ue;
- ogs_assert(amf_ue);
+ ogs_assert(sess->sm_context.resource_uri);
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_POST;
- message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NSMF_PDUSESSION;
- message.h.api.version = (char *)OGS_SBI_API_V1;
- message.h.resource.component[0] =
- (char *)OGS_SBI_RESOURCE_NAME_SM_CONTEXTS;
- message.h.resource.component[1] = sess->sm_context_ref;
- message.h.resource.component[2] = (char *)OGS_SBI_RESOURCE_NAME_RELEASE;
+ message.h.uri = ogs_msprintf("%s/%s",
+ sess->sm_context.resource_uri, OGS_SBI_RESOURCE_NAME_RELEASE);
+ ogs_assert(message.h.uri);
memset(&SmContextReleaseData, 0, sizeof(SmContextReleaseData));
@@ -430,10 +437,20 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_release_sm_context(
ngApCause.value = param->ngApCause.value;
}
- SmContextReleaseData._5g_mm_cause_value = param->gmm_cause;
+ if (param->gmm_cause) {
+ SmContextReleaseData._5g_mm_cause_value = param->gmm_cause;
+ SmContextReleaseData.is__5g_mm_cause_value = true;
+ }
}
memset(&ueLocation, 0, sizeof(ueLocation));
+
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
+ if (!amf_ue) {
+ ogs_error("UE(amf_ue) Context has already been removed");
+ goto end;
+ }
+
ueLocation.nr_location = ogs_sbi_build_nr_location(
&amf_ue->nr_tai, &amf_ue->nr_cgi);
if (!ueLocation.nr_location) {
@@ -460,6 +477,8 @@ ogs_sbi_request_t *amf_nsmf_pdusession_build_release_sm_context(
ogs_expect(request);
end:
+ if (message.h.uri)
+ ogs_free(message.h.uri);
if (ueLocation.nr_location) {
if (ueLocation.nr_location->ue_location_timestamp)
ogs_free(ueLocation.nr_location->ue_location_timestamp);
diff --git a/src/amf/nsmf-handler.c b/src/amf/nsmf-handler.c
index 8a1bd0717d..c681ad156b 100644
--- a/src/amf/nsmf-handler.c
+++ b/src/amf/nsmf-handler.c
@@ -33,20 +33,19 @@ int amf_nsmf_pdusession_handle_create_sm_context(
ran_ue_t *ran_ue = NULL;
ogs_assert(recvmsg);
- ogs_assert(sess);
- sess = amf_sess_cycle(sess);
+
if (!sess) {
ogs_error("Session has already been removed");
return OGS_ERROR;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
return OGS_ERROR;
}
- ran_ue = ran_ue_cycle(sess->ran_ue);
+ ran_ue = ran_ue_find_by_id(sess->ran_ue_id);
if (!ran_ue) {
ogs_error("[%s] RAN-NG Context has already been removed", amf_ue->supi);
return OGS_ERROR;
@@ -56,6 +55,13 @@ int amf_nsmf_pdusession_handle_create_sm_context(
ogs_sbi_message_t message;
ogs_sbi_header_t header;
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+
if (!recvmsg->http.location) {
ogs_error("[%d:%d] No http.location", sess->psi, sess->pti);
r = nas_5gs_send_back_gsm_message(ran_ue, sess,
@@ -97,6 +103,55 @@ int amf_nsmf_pdusession_handle_create_sm_context(
return OGS_ERROR;
}
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, header.uri);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ ogs_error("[%s:%d] Invalid URI [%s]",
+ amf_ue->supi, sess->psi, header.uri);
+
+ ogs_sbi_header_free(&header);
+ r = nas_5gs_send_back_gsm_message(ran_ue, sess,
+ OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
+ AMF_NAS_BACKOFF_TIME);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ return OGS_ERROR;
+ }
+
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("[%s:%d] ogs_sbi_client_add()", amf_ue->supi, sess->psi);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_error("[%s:%d] ogs_sbi_client_add() failed",
+ amf_ue->supi, sess->psi);
+
+ ogs_sbi_header_free(&header);
+ r = nas_5gs_send_back_gsm_message(ran_ue, sess,
+ OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
+ AMF_NAS_BACKOFF_TIME);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ return OGS_ERROR;
+ }
+ }
+ OGS_SBI_SETUP_CLIENT(&sess->sm_context, client);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ STORE_SESSION_CONTEXT(
+ sess, header.uri, message.h.resource.component[1]);
+
+ ogs_sbi_header_free(&header);
+
if (sess->pdu_session_establishment_accept) {
/*
* [1-SERVER] /namf-comm/v1/ue-contexts/{supi}/n1-n2-messages
@@ -117,7 +172,6 @@ int amf_nsmf_pdusession_handle_create_sm_context(
ogs_error("[%d:%d] nas_5gs_send_to_gnb() failed",
sess->psi, sess->pti);
- ogs_sbi_header_free(&header);
r = nas_5gs_send_back_gsm_message(ran_ue, sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
AMF_NAS_BACKOFF_TIME);
@@ -128,13 +182,6 @@ int amf_nsmf_pdusession_handle_create_sm_context(
}
}
- if (sess->sm_context_ref)
- ogs_free(sess->sm_context_ref);
- sess->sm_context_ref = ogs_strdup(message.h.resource.component[1]);
- ogs_assert(sess->sm_context_ref);
-
- ogs_sbi_header_free(&header);
-
} else {
OpenAPI_sm_context_create_error_t *SmContextCreateError = NULL;
OpenAPI_ref_to_binary_data_t *n1SmMsg = NULL;
@@ -207,20 +254,19 @@ int amf_nsmf_pdusession_handle_update_sm_context(
ran_ue_t *ran_ue = NULL;
ogs_assert(recvmsg);
- ogs_assert(sess);
- sess = amf_sess_cycle(sess);
+
if (!sess) {
ogs_error("Session has already been removed");
return OGS_ERROR;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
return OGS_ERROR;
}
- ran_ue = ran_ue_cycle(sess->ran_ue);
+ ran_ue = ran_ue_find_by_id(sess->ran_ue_id);
if (recvmsg->res_status == OGS_SBI_HTTP_STATUS_NO_CONTENT ||
recvmsg->res_status == OGS_SBI_HTTP_STATUS_OK) {
@@ -331,8 +377,9 @@ int amf_nsmf_pdusession_handle_update_sm_context(
case OpenAPI_n2_sm_info_type_PDU_RES_MOD_REQ:
if (!n1smbuf) {
- ogs_error("[%s:%d] No N1 SM Content [%s]",
- amf_ue->supi, sess->psi, n1SmMsg->content_id);
+ /* Clang scan-build SA: NULL pointer deference: n1SmMsg=NULL, remove logging of n1SmMsg->content_id. */
+ ogs_error("[%s:%d] No N1 SM Content",
+ amf_ue->supi, sess->psi);
r = nas_5gs_send_back_gsm_message(ran_ue, sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
AMF_NAS_BACKOFF_TIME);
@@ -373,8 +420,9 @@ int amf_nsmf_pdusession_handle_update_sm_context(
case OpenAPI_n2_sm_info_type_PDU_RES_REL_CMD:
if (!n1smbuf) {
- ogs_error("[%s:%d] No N1 SM Content [%s]",
- amf_ue->supi, sess->psi, n1SmMsg->content_id);
+ /* Clang scan-build SA: NULL pointer deference: n1SmMsg=NULL, remove logging of n1SmMsg->content_id. */
+ ogs_error("[%s:%d] No N1 SM Content",
+ amf_ue->supi, sess->psi);
r = nas_5gs_send_back_gsm_message(ran_ue, sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
AMF_NAS_BACKOFF_TIME);
@@ -538,11 +586,12 @@ int amf_nsmf_pdusession_handle_update_sm_context(
* 6. UEContextReleaseComplete
*/
ogs_warn("PDUSessionResourceSetupResponse(Unsuccessful)");
- ogs_assert(amf_ue->deactivation.group);
+ ogs_assert(ran_ue);
+ ogs_assert(ran_ue->deactivation.group);
- r = ngap_send_amf_ue_context_release_command(amf_ue,
- amf_ue->deactivation.group,
- amf_ue->deactivation.cause,
+ r = ngap_send_ran_ue_context_release_command(ran_ue,
+ ran_ue->deactivation.group,
+ ran_ue->deactivation.cause,
NGAP_UE_CTX_REL_NG_REMOVE_AND_UNLINK, 0);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -576,11 +625,12 @@ int amf_nsmf_pdusession_handle_update_sm_context(
*/
if (AMF_SESSION_SYNC_DONE(amf_ue, state)) {
- ogs_assert(amf_ue->deactivation.group);
+ ogs_assert(ran_ue);
+ ogs_assert(ran_ue->deactivation.group);
- r = ngap_send_amf_ue_context_release_command(amf_ue,
- amf_ue->deactivation.group,
- amf_ue->deactivation.cause,
+ r = ngap_send_ran_ue_context_release_command(ran_ue,
+ ran_ue->deactivation.group,
+ ran_ue->deactivation.cause,
NGAP_UE_CTX_REL_NG_REMOVE_AND_UNLINK, 0);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -631,11 +681,33 @@ int amf_nsmf_pdusession_handle_update_sm_context(
ogs_warn("[%s:%d] Receive Update SM context"
"(DUPLICATED_PDU_SESSION_ID)", amf_ue->supi, sess->psi);
- if (ran_ue) {
+ /*
+ * Issue #3710
+ *
+ * A duplicate PDU Session Establishment is received.
+ * The system intends to update the SM context via the SBI.
+ *
+ * The process is as follows:
+ * 1. Log a warning including the SUPI (subscriber ID) and psi.
+ * 2. Call amf_sess_sbi_discover_and_send() with a pointer
+ * to amf_nsmf_pdusession_build_create_sm_context().
+ * 3. This function (amf_nsmf_pdusession_build_create_sm_context)
+ * will eventually build the SBI request header and call
+ * ogs_sbi_server_uri(), which internally calls ogs_uridup().
+ * 4. If the SUPI (used as header.resource.component[0]) is NULL,
+ * ogs_uridup asserts on the NULL value and causes a crash.
+ *
+ * To prevent this, we check for a NULL SUPI before calling the
+ * update function.
+ */
+ if (!amf_ue->supi) {
+ ogs_warn("SUPI is NULL. Skipping update SM context for "
+ "duplicated PDU Session (psi: %d)", sess->psi);
+ } else if (ran_ue) {
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
amf_nsmf_pdusession_build_create_sm_context,
- sess, AMF_CREATE_SM_CONTEXT_NO_STATE, NULL);
+ ran_ue, sess, AMF_CREATE_SM_CONTEXT_NO_STATE, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
@@ -663,9 +735,9 @@ int amf_nsmf_pdusession_handle_update_sm_context(
if (AMF_SESSION_SYNC_DONE(amf_ue, state)) {
ran_ue_t *source_ue = NULL, *target_ue = NULL;
- source_ue = sess->ran_ue;
+ source_ue = ran_ue_find_by_id(sess->ran_ue_id);
ogs_assert(source_ue);
- target_ue = ran_ue_cycle(source_ue->target_ue);
+ target_ue = ran_ue_find_by_id(source_ue->target_ue_id);
if (target_ue) {
r = ngap_send_ran_ue_context_release_command(
target_ue,
@@ -735,13 +807,14 @@ int amf_nsmf_pdusession_handle_update_sm_context(
amf_ue_deassociate(amf_ue);
if (ran_ue) {
- amf_gnb_t *gnb = ran_ue->gnb;
- ogs_assert(gnb);
+ amf_gnb_t *gnb = NULL;
+
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
ogs_debug(" SUPI[%s]", amf_ue->supi);
ran_ue_remove(ran_ue);
- if (ogs_list_count(&gnb->ran_ue_list) == 0) {
+ if (gnb && ogs_list_count(&gnb->ran_ue_list) == 0) {
r = ngap_send_ng_reset_ack(gnb, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -791,33 +864,35 @@ int amf_nsmf_pdusession_handle_update_sm_context(
amf_ue_deassociate(amf_ue);
if (ran_ue) {
- amf_gnb_t *gnb = ran_ue->gnb;
- ogs_assert(gnb);
+ amf_gnb_t *gnb = NULL;
+
+ gnb = amf_gnb_find_by_id(ran_ue->gnb_id);
ogs_debug(" SUPI[%s]", amf_ue->supi);
ran_ue_remove(ran_ue);
- ogs_list_for_each(&gnb->ran_ue_list, iter) {
- if (iter->part_of_ng_reset_requested == true) {
- /* The GNB_UE context
- * where PartOfNG_interface was requested
- * still remains */
- return OGS_OK;
+ if (gnb) {
+ ogs_list_for_each(&gnb->ran_ue_list, iter) {
+ if (iter->part_of_ng_reset_requested == true) {
+ /* The GNB_UE context
+ * where PartOfNG_interface was requested
+ * still remains */
+ return OGS_OK;
+ }
}
- }
-
- /* All GNB_UE context
- * where PartOfNG_interface was requested
- * REMOVED */
- ogs_assert(gnb->ng_reset_ack);
- r = ngap_send_to_gnb(
- gnb, gnb->ng_reset_ack, NGAP_NON_UE_SIGNALLING);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- /* Clear NG-Reset Ack Buffer */
- gnb->ng_reset_ack = NULL;
+ /* All GNB_UE context
+ * where PartOfNG_interface was requested
+ * REMOVED */
+ ogs_assert(gnb->ng_reset_ack);
+ r = ngap_send_to_gnb(
+ gnb, gnb->ng_reset_ack, NGAP_NON_UE_SIGNALLING);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ /* Clear NG-Reset Ack Buffer */
+ gnb->ng_reset_ack = NULL;
+ }
} else {
ogs_warn("[%s] RAN-NG Context has already been removed",
amf_ue->supi);
@@ -888,8 +963,16 @@ int amf_nsmf_pdusession_handle_update_sm_context(
ogs_pkbuf_t *n2smbuf = NULL;
#endif
- amf_ue = sess->amf_ue;
- ogs_assert(amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
+ if (!amf_ue) {
+ ogs_error("[%d:%d] UE context has already been removed [%d]",
+ sess->psi, sess->pti, recvmsg->res_status);
+ r = ngap_send_error_indication2(ran_ue,
+ NGAP_Cause_PR_protocol, NGAP_CauseProtocol_semantic_error);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ return OGS_ERROR;
+ }
SmContextUpdateError = recvmsg->SmContextUpdateError;
if (!SmContextUpdateError) {
@@ -1024,20 +1107,18 @@ int amf_nsmf_pdusession_handle_release_sm_context(amf_sess_t *sess, int state)
amf_ue_t *amf_ue = NULL;
ran_ue_t *ran_ue = NULL;
- ogs_assert(sess);
- sess = amf_sess_cycle(sess);
if (!sess) {
ogs_error("Session has already been removed");
return OGS_ERROR;
}
- amf_ue = amf_ue_cycle(sess->amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
if (!amf_ue) {
ogs_error("UE(amf_ue) Context has already been removed");
return OGS_ERROR;
}
- ran_ue = ran_ue_cycle(sess->ran_ue);
+ ran_ue = ran_ue_find_by_id(sess->ran_ue_id);
/*
* To check if Reactivation Request has been used.
@@ -1056,8 +1137,21 @@ int amf_nsmf_pdusession_handle_release_sm_context(amf_sess_t *sess, int state)
ogs_error("[%s:%d] Do not remove Session due to Reactivation-requested",
amf_ue->supi, sess->psi);
- /* Initialize the context instead of using amf_sess_remove() */
-
+ /*
+ * Issue #2917
+ *
+ * These are variables that need to be initialized
+ * when a PDU session release command with a Reactivation Request
+ * and a PDU session release complete are sent at the same time.
+ *
+ * It is important to note that XXX_gsm_type, which is initialized now,
+ * has a different initialization location than
+ * pdu_session_release_complete_received/
+ * pdu_session_resource_release_response_received
+ *
+ * XXX_received is initialized in the ESTABLISHMENT phase,
+ * but XXX_gsm_type must be initialized in the RELEASE phase.
+ */
sess->old_gsm_type = 0;
sess->current_gsm_type = 0;
@@ -1068,7 +1162,7 @@ int amf_nsmf_pdusession_handle_release_sm_context(amf_sess_t *sess, int state)
} else {
ogs_info("[%s:%d] Release SM Context [state:%d]",
amf_ue->supi, sess->psi, state);
- amf_sess_remove(sess);
+ AMF_SESS_CLEAR(sess);
}
if (state == AMF_RELEASE_SM_CONTEXT_REGISTRATION_ACCEPT) {
@@ -1120,20 +1214,7 @@ int amf_nsmf_pdusession_handle_release_sm_context(amf_sess_t *sess, int state)
if (AMF_SESSION_SYNC_DONE(amf_ue, state)) {
- if (state == AMF_RELEASE_SM_CONTEXT_NG_CONTEXT_REMOVE) {
- /*
- * 1. Initial context setup failure
- * 2. Release All SM contexts
- * 3. UE Context release command
- * 4. UE Context release complete
- */
- r = ngap_send_amf_ue_context_release_command(amf_ue,
- NGAP_Cause_PR_nas, NGAP_CauseNas_normal_release,
- NGAP_UE_CTX_REL_NG_CONTEXT_REMOVE, 0);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
-
- } else if (state == AMF_RELEASE_SM_CONTEXT_REGISTRATION_ACCEPT) {
+ if (state == AMF_RELEASE_SM_CONTEXT_REGISTRATION_ACCEPT) {
/* Not reached here */
ogs_assert_if_reached();
@@ -1318,7 +1399,8 @@ int amf_nsmf_pdusession_handle_release_sm_context(amf_sess_t *sess, int state)
* 3. UE Context release command
* 4. UE Context release complete
*/
- r = ngap_send_amf_ue_context_release_command(amf_ue,
+ r = ngap_send_ran_ue_context_release_command(
+ ran_ue_find_by_id(amf_ue->ran_ue_id),
NGAP_Cause_PR_nas, NGAP_CauseNas_normal_release,
NGAP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
diff --git a/src/amf/nudm-build.c b/src/amf/nudm-build.c
index 2aff3561f1..db71e981d8 100644
--- a/src/amf/nudm-build.c
+++ b/src/amf/nudm-build.c
@@ -164,6 +164,10 @@ ogs_sbi_request_t *amf_nudm_sdm_build_get(amf_ue_t *amf_ue, void *data)
message.h.resource.component[0] = amf_ue->supi;
message.h.resource.component[1] = data;
+ message.param.plmn_id_presence = true;
+ memcpy(&message.param.plmn_id, &amf_ue->home_plmn_id,
+ sizeof(message.param.plmn_id));
+
request = ogs_sbi_build_request(&message);
ogs_expect(request);
@@ -178,6 +182,7 @@ ogs_sbi_request_t *amf_nudm_sdm_build_subscription(amf_ue_t *amf_ue, void *data)
ogs_sbi_server_t *server = NULL;
OpenAPI_sdm_subscription_t SDMSubscription;
+ uint64_t supported_features = 0;
char *monres = NULL;
@@ -228,6 +233,14 @@ ogs_sbi_request_t *amf_nudm_sdm_build_subscription(amf_ue_t *amf_ue, void *data)
SDMSubscription.is_implicit_unsubscribe = true;
SDMSubscription.implicit_unsubscribe = 1;
+ OGS_SBI_FEATURES_SET(supported_features,
+ OGS_SBI_NUDM_SDM_LIMITED_SUBSCRIPTIONS);
+ SDMSubscription.supported_features =
+ ogs_uint64_to_string(supported_features);
+
+ SDMSubscription.is_unique_subscription = true;
+ SDMSubscription.unique_subscription = 1;
+
message.SDMSubscription = &SDMSubscription;
message.http.custom.callback =
@@ -237,7 +250,8 @@ ogs_sbi_request_t *amf_nudm_sdm_build_subscription(amf_ue_t *amf_ue, void *data)
ogs_expect(request);
end:
-
+ if (SDMSubscription.supported_features)
+ ogs_free(SDMSubscription.supported_features);
if (monres)
ogs_free(monres);
OpenAPI_list_free(SDMSubscription.monitored_resource_uris);
@@ -255,16 +269,11 @@ ogs_sbi_request_t *amf_nudm_sdm_build_subscription_delete(
ogs_assert(amf_ue);
ogs_assert(amf_ue->supi);
- ogs_assert(amf_ue->data_change_subscription_id);
+ ogs_assert(amf_ue->data_change_subscription.resource_uri);
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_DELETE;
- message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NUDM_SDM;
- message.h.api.version = (char *)OGS_SBI_API_V2;
- message.h.resource.component[0] = amf_ue->supi;
- message.h.resource.component[1] =
- (char *)OGS_SBI_RESOURCE_NAME_SDM_SUBSCRIPTIONS;
- message.h.resource.component[2] = amf_ue->data_change_subscription_id;
+ message.h.uri = amf_ue->data_change_subscription.resource_uri;
request = ogs_sbi_build_request(&message);
ogs_expect(request);
diff --git a/src/amf/nudm-handler.c b/src/amf/nudm-handler.c
index 1eee28157a..8839090b92 100644
--- a/src/amf/nudm-handler.c
+++ b/src/amf/nudm-handler.c
@@ -144,7 +144,7 @@ int amf_nudm_sdm_handle_provisioned(
if (amf_update_allowed_nssai(amf_ue) == false) {
ogs_error("No Allowed-NSSAI");
r = nas_5gs_send_gmm_reject(
- amf_ue->ran_ue, amf_ue,
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
OGS_5GMM_CAUSE_NO_NETWORK_SLICES_AVAILABLE);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -154,7 +154,7 @@ int amf_nudm_sdm_handle_provisioned(
if (amf_ue_is_rat_restricted(amf_ue)) {
ogs_error("Registration rejected due to RAT restrictions");
r = nas_5gs_send_gmm_reject(
- amf_ue->ran_ue, amf_ue,
+ ran_ue_find_by_id(amf_ue->ran_ue_id), amf_ue,
OGS_5GMM_CAUSE_5GS_SERVICES_NOT_ALLOWED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -199,6 +199,7 @@ int amf_nudm_sdm_handle_provisioned(
continue;
}
+ ogs_assert(amf_ue->num_of_slice);
slice = ogs_slice_find_by_s_nssai(
amf_ue->slice, amf_ue->num_of_slice,
&s_nssai);
@@ -245,7 +246,7 @@ int amf_nudm_sdm_handle_provisioned(
break;
CASE(OGS_SBI_RESOURCE_NAME_UE_CONTEXT_IN_SMF_DATA)
- if (amf_ue->data_change_subscription_id) {
+ if (UDM_SDM_SUBSCRIBED(amf_ue)) {
/* we already have a SDM subscription to UDM; continue without
* subscribing again */
r = amf_ue_sbi_discover_and_send(
@@ -271,6 +272,13 @@ int amf_nudm_sdm_handle_provisioned(
ogs_sbi_message_t message;
ogs_sbi_header_t header;
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+
if (!recvmsg->http.location) {
ogs_error("[%s] No http.location", amf_ue->supi);
r = nas_5gs_send_gmm_reject_from_sbi(
@@ -287,10 +295,12 @@ int amf_nudm_sdm_handle_provisioned(
if (rv != OGS_OK) {
ogs_error("[%s] Cannot parse http.location [%s]",
amf_ue->supi, recvmsg->http.location);
+
r = nas_5gs_send_gmm_reject_from_sbi(
amf_ue, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+
return OGS_ERROR;
}
@@ -303,13 +313,52 @@ int amf_nudm_sdm_handle_provisioned(
amf_ue, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+
+ return OGS_ERROR;
+ }
+
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, header.uri);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ ogs_error("[%s] Invalid URI [%s]", amf_ue->supi, header.uri);
+
+ ogs_sbi_header_free(&header);
+ r = nas_5gs_send_gmm_reject_from_sbi(
+ amf_ue, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
return OGS_ERROR;
}
- if (amf_ue->data_change_subscription_id)
- ogs_free(amf_ue->data_change_subscription_id);
- amf_ue->data_change_subscription_id =
- ogs_strdup(message.h.resource.component[2]);
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("[%s] ogs_sbi_client_add()", amf_ue->supi);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_error("[%s] ogs_sbi_client_add() failed", amf_ue->supi);
+
+ ogs_sbi_header_free(&header);
+ r = nas_5gs_send_gmm_reject_from_sbi(
+ amf_ue, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ return OGS_ERROR;
+ }
+ }
+
+ OGS_SBI_SETUP_CLIENT(&amf_ue->data_change_subscription, client);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ UDM_SDM_STORE(amf_ue, header.uri, message.h.resource.component[2]);
ogs_sbi_header_free(&header);
diff --git a/src/amf/sbi-path.c b/src/amf/sbi-path.c
index ae00746502..dbe6f00a03 100644
--- a/src/amf/sbi-path.c
+++ b/src/amf/sbi-path.c
@@ -36,6 +36,7 @@ int amf_sbi_open(void)
ogs_sbi_nf_instance_build_default(nf_instance);
ogs_sbi_nf_instance_add_allowed_nf_type(nf_instance, OpenAPI_nf_type_SCP);
ogs_sbi_nf_instance_add_allowed_nf_type(nf_instance, OpenAPI_nf_type_SMF);
+ ogs_sbi_nf_instance_add_allowed_nf_type(nf_instance, OpenAPI_nf_type_AMF);
/* Build NF service information. It will be transmitted to NRF. */
if (ogs_sbi_nf_service_is_available(OGS_SBI_SERVICE_NAME_NAMF_COMM)) {
@@ -45,6 +46,7 @@ int amf_sbi_open(void)
ogs_sbi_nf_service_add_version(
service, OGS_SBI_API_V1, OGS_SBI_API_V1_0_0, NULL);
ogs_sbi_nf_service_add_allowed_nf_type(service, OpenAPI_nf_type_SMF);
+ ogs_sbi_nf_service_add_allowed_nf_type(service, OpenAPI_nf_type_AMF);
}
/* Initialize NRF NF Instance */
@@ -125,7 +127,7 @@ int amf_ue_sbi_discover_and_send(
}
xact = ogs_sbi_xact_add(
- &amf_ue->sbi, service_type, discovery_option,
+ amf_ue->id, &amf_ue->sbi, service_type, discovery_option,
(ogs_sbi_build_f)build, amf_ue, data);
if (!xact) {
ogs_error("amf_ue_sbi_discover_and_send() failed");
@@ -156,38 +158,29 @@ int amf_sess_sbi_discover_and_send(
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
ogs_sbi_request_t *(*build)(amf_sess_t *sess, void *data),
- amf_sess_t *sess, int state, void *data)
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state, void *data)
{
int r;
int rv;
ogs_sbi_xact_t *xact = NULL;
- amf_ue_t *amf_ue = NULL;
-
ogs_assert(service_type);
ogs_assert(sess);
ogs_assert(build);
- amf_ue = amf_ue_cycle(sess->amf_ue);
- if (!amf_ue) {
- ogs_error("UE(amf_ue) Context has already been removed");
- return OGS_NOTFOUND;
- }
-
- sess->ran_ue = ran_ue_cycle(amf_ue->ran_ue);
- if (!sess->ran_ue) {
- ogs_error("[%s] RAN-NG Context has already been removed",
- amf_ue->supi);
- return OGS_NOTFOUND;
- }
+ if (ran_ue) {
+ sess->ran_ue_id = ran_ue->id;
+ } else
+ sess->ran_ue_id = OGS_INVALID_POOL_ID;
xact = ogs_sbi_xact_add(
- &sess->sbi, service_type, discovery_option,
+ sess->id, &sess->sbi, service_type, discovery_option,
(ogs_sbi_build_f)build, sess, data);
if (!xact) {
ogs_error("amf_sess_sbi_discover_and_send() failed");
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
- OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED, AMF_NAS_BACKOFF_TIME);
+ r = nas_5gs_send_back_gsm_message(
+ ran_ue_find_by_id(sess->ran_ue_id), sess,
+ OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED, AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return OGS_ERROR;
@@ -199,8 +192,9 @@ int amf_sess_sbi_discover_and_send(
if (rv != OGS_OK) {
ogs_error("amf_sess_sbi_discover_and_send() failed");
ogs_sbi_xact_remove(xact);
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
- OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED, AMF_NAS_BACKOFF_TIME);
+ r = nas_5gs_send_back_gsm_message(
+ ran_ue_find_by_id(sess->ran_ue_id), sess,
+ OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED, AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return rv;
@@ -215,16 +209,18 @@ static int client_discover_cb(
ogs_sbi_message_t message;
ogs_sbi_xact_t *xact = NULL;
+ ogs_pool_id_t xact_id = OGS_INVALID_POOL_ID;
ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
OpenAPI_nf_type_e requester_nf_type = OpenAPI_nf_type_NULL;
ogs_sbi_discovery_option_t *discovery_option = NULL;
amf_ue_t *amf_ue = NULL;
+ ran_ue_t *ran_ue = NULL;
amf_sess_t *sess = NULL;
- xact = data;
- ogs_assert(xact);
+ xact_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(xact_id >= OGS_MIN_POOL_ID && xact_id <= OGS_MAX_POOL_ID);
- xact = ogs_sbi_xact_cycle(xact);
+ xact = ogs_sbi_xact_find_by_id(xact_id);
if (!xact) {
ogs_error("SBI transaction has already been removed");
if (response)
@@ -232,16 +228,13 @@ static int client_discover_cb(
return OGS_ERROR;
}
- sess = (amf_sess_t *)xact->sbi_object;
- ogs_assert(sess);
-
service_type = xact->service_type;
ogs_assert(service_type);
requester_nf_type = xact->requester_nf_type;
ogs_assert(requester_nf_type);
discovery_option = xact->discovery_option;
- sess = amf_sess_cycle(sess);
+ sess = amf_sess_find_by_id(xact->sbi_object_id);
if (!sess) {
ogs_error("Session has already been removed");
ogs_sbi_xact_remove(xact);
@@ -251,14 +244,30 @@ static int client_discover_cb(
}
ogs_assert(sess->sbi.type == OGS_SBI_OBJ_SESS_TYPE);
- amf_ue = sess->amf_ue;
- ogs_assert(amf_ue);
+ amf_ue = amf_ue_find_by_id(sess->amf_ue_id);
+ if (!amf_ue) {
+ ogs_error("UE(amf-ue) context has already been removed");
+ ogs_sbi_xact_remove(xact);
+ if (response)
+ ogs_sbi_response_free(response);
+ return OGS_ERROR;
+ }
+ ran_ue = ran_ue_find_by_id(sess->ran_ue_id);
+ if (!ran_ue) {
+ ogs_error("[%s] NG context has already been removed", amf_ue->supi);
+ ogs_sbi_xact_remove(xact);
+ if (response)
+ ogs_sbi_response_free(response);
+ return OGS_ERROR;
+ }
if (status != OGS_OK) {
ogs_log_message(
status == OGS_DONE ? OGS_LOG_DEBUG : OGS_LOG_WARN, 0,
"client_discover_cb() failed [%d]", status);
ogs_sbi_xact_remove(xact);
+ if (response)
+ ogs_sbi_response_free(response);
return OGS_ERROR;
}
@@ -267,7 +276,7 @@ static int client_discover_cb(
rv = ogs_sbi_parse_response(&message, response);
if (rv != OGS_OK) {
ogs_error("cannot parse HTTP response");
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
+ r = nas_5gs_send_back_gsm_message(ran_ue, sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED, AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -277,7 +286,7 @@ static int client_discover_cb(
if (message.res_status != OGS_SBI_HTTP_STATUS_OK) {
ogs_error("NF-Discover failed [%d]", message.res_status);
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
+ r = nas_5gs_send_back_gsm_message(ran_ue, sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED, AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -287,7 +296,7 @@ static int client_discover_cb(
if (!message.SearchResult) {
ogs_error("No SearchResult");
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
+ r = nas_5gs_send_back_gsm_message(ran_ue, sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED, AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -300,11 +309,12 @@ static int client_discover_cb(
amf_sbi_select_nf(&sess->sbi,
service_type, requester_nf_type, discovery_option);
- if (!sess->sbi.service_type_array[service_type].nf_instance) {
+ if (!OGS_SBI_GET_NF_INSTANCE(
+ sess->sbi.service_type_array[service_type])) {
ogs_error("[%s:%d] (NF discover) No [%s]",
amf_ue->supi, sess->psi,
ogs_sbi_service_type_to_name(service_type));
- r = nas_5gs_send_back_gsm_message(sess->ran_ue, sess,
+ r = nas_5gs_send_back_gsm_message(ran_ue, sess,
OGS_5GMM_CAUSE_PAYLOAD_WAS_NOT_FORWARDED,
AMF_NAS_BACKOFF_TIME);
ogs_expect(r == OGS_OK);
@@ -316,7 +326,7 @@ static int client_discover_cb(
r = amf_sess_sbi_discover_and_send(
service_type, NULL,
amf_nsmf_pdusession_build_create_sm_context,
- sess, AMF_CREATE_SM_CONTEXT_NO_STATE, NULL);
+ ran_ue, sess, AMF_CREATE_SM_CONTEXT_NO_STATE, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -337,15 +347,13 @@ static int client_discover_cb(
}
int amf_sess_sbi_discover_by_nsi(
- amf_sess_t *sess,
+ ran_ue_t *ran_ue, amf_sess_t *sess,
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option)
{
ogs_sbi_xact_t *xact = NULL;
ogs_sbi_client_t *client = NULL;
- amf_ue_t *amf_ue = NULL;
-
ogs_assert(sess);
client = sess->nssf.nrf.client;
ogs_assert(client);
@@ -354,21 +362,14 @@ int amf_sess_sbi_discover_by_nsi(
ogs_warn("Try to discover [%s]",
ogs_sbi_service_type_to_name(service_type));
- amf_ue = amf_ue_cycle(sess->amf_ue);
- if (!amf_ue) {
- ogs_error("UE(amf_ue) Context has already been removed");
- return OGS_NOTFOUND;
- }
-
- sess->ran_ue = ran_ue_cycle(amf_ue->ran_ue);
- if (!sess->ran_ue) {
- ogs_error("[%s] RAN-NG Context has already been removed",
- amf_ue->supi);
- return OGS_NOTFOUND;
- }
+ if (ran_ue) {
+ sess->ran_ue_id = ran_ue->id;
+ } else
+ sess->ran_ue_id = OGS_INVALID_POOL_ID;
xact = ogs_sbi_xact_add(
- &sess->sbi, service_type, discovery_option, NULL, NULL, NULL);
+ sess->id, &sess->sbi,
+ service_type, discovery_option, NULL, NULL, NULL);
if (!xact) {
ogs_error("ogs_sbi_xact_add() failed");
return OGS_ERROR;
@@ -383,10 +384,12 @@ int amf_sess_sbi_discover_by_nsi(
}
return ogs_sbi_client_send_request(
- client, client_discover_cb, xact->request, xact) == true ? OGS_OK : OGS_ERROR;
+ client, client_discover_cb, xact->request,
+ OGS_UINT_TO_POINTER(xact->id)) == true ? OGS_OK : OGS_ERROR;
}
-void amf_sbi_send_activating_session(amf_sess_t *sess, int state)
+void amf_sbi_send_activating_session(
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state)
{
amf_nsmf_pdusession_sm_context_param_t param;
int r;
@@ -398,13 +401,14 @@ void amf_sbi_send_activating_session(amf_sess_t *sess, int state)
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
- amf_nsmf_pdusession_build_update_sm_context, sess, state, ¶m);
+ amf_nsmf_pdusession_build_update_sm_context,
+ ran_ue, sess, state, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
void amf_sbi_send_deactivate_session(
- amf_sess_t *sess, int state, int group, int cause)
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state, int group, int cause)
{
amf_nsmf_pdusession_sm_context_param_t param;
int r;
@@ -420,13 +424,14 @@ void amf_sbi_send_deactivate_session(
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
- amf_nsmf_pdusession_build_update_sm_context, sess, state, ¶m);
+ amf_nsmf_pdusession_build_update_sm_context,
+ ran_ue, sess, state, ¶m);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
void amf_sbi_send_deactivate_all_sessions(
- amf_ue_t *amf_ue, int state, int group, int cause)
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue, int state, int group, int cause)
{
amf_sess_t *sess = NULL;
@@ -434,7 +439,7 @@ void amf_sbi_send_deactivate_all_sessions(
ogs_list_for_each(&amf_ue->sess_list, sess) {
if (SESSION_CONTEXT_IN_SMF(sess))
- amf_sbi_send_deactivate_session(sess, state, group, cause);
+ amf_sbi_send_deactivate_session(ran_ue, sess, state, group, cause);
}
}
@@ -446,13 +451,13 @@ void amf_sbi_send_deactivate_all_ue_in_gnb(amf_gnb_t *gnb, int state)
ogs_list_for_each_safe(&gnb->ran_ue_list, ran_ue_next, ran_ue) {
int old_xact_count = 0, new_xact_count = 0;
- amf_ue = ran_ue->amf_ue;
+ amf_ue = amf_ue_find_by_id(ran_ue->amf_ue_id);
if (amf_ue) {
old_xact_count = amf_sess_xact_count(amf_ue);
amf_sbi_send_deactivate_all_sessions(
- amf_ue, state, NGAP_Cause_PR_radioNetwork,
+ ran_ue, amf_ue, state, NGAP_Cause_PR_radioNetwork,
NGAP_CauseRadioNetwork_failure_in_radio_interface_procedure);
new_xact_count = amf_sess_xact_count(amf_ue);
@@ -463,8 +468,9 @@ void amf_sbi_send_deactivate_all_ue_in_gnb(amf_gnb_t *gnb, int state)
}
} else {
ogs_warn("amf_sbi_send_deactivate_all_ue_in_gnb()");
- ogs_warn(" RAN_UE_NGAP_ID[%d] AMF_UE_NGAP_ID[%lld] State[%d]",
- ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id,
+ ogs_warn(" RAN_UE_NGAP_ID[%lld] AMF_UE_NGAP_ID[%lld] State[%d]",
+ (long long)ran_ue->ran_ue_ngap_id,
+ (long long)ran_ue->amf_ue_ngap_id,
state);
if (state == AMF_REMOVE_S1_CONTEXT_BY_LO_CONNREFUSED ||
@@ -479,7 +485,8 @@ void amf_sbi_send_deactivate_all_ue_in_gnb(amf_gnb_t *gnb, int state)
}
}
-void amf_sbi_send_release_session(amf_sess_t *sess, int state)
+void amf_sbi_send_release_session(
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state)
{
int r;
@@ -487,15 +494,17 @@ void amf_sbi_send_release_session(amf_sess_t *sess, int state)
r = amf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NSMF_PDUSESSION, NULL,
- amf_nsmf_pdusession_build_release_sm_context, sess, state, NULL);
+ amf_nsmf_pdusession_build_release_sm_context,
+ ran_ue, sess, state, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
/* Prevent to invoke SMF for this session */
- CLEAR_SM_CONTEXT_REF(sess);
+ CLEAR_SESSION_CONTEXT(sess);
}
-void amf_sbi_send_release_all_sessions(amf_ue_t *amf_ue, int state)
+void amf_sbi_send_release_all_sessions(
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue, int state)
{
amf_sess_t *sess = NULL;
@@ -503,7 +512,7 @@ void amf_sbi_send_release_all_sessions(amf_ue_t *amf_ue, int state)
ogs_list_for_each(&amf_ue->sess_list, sess) {
if (SESSION_CONTEXT_IN_SMF(sess))
- amf_sbi_send_release_session(sess, state);
+ amf_sbi_send_release_session(ran_ue, sess, state);
}
}
diff --git a/src/amf/sbi-path.h b/src/amf/sbi-path.h
index da6952eb76..6ece6b3c9f 100644
--- a/src/amf/sbi-path.h
+++ b/src/amf/sbi-path.h
@@ -58,7 +58,6 @@ bool amf_sbi_send_request(
#define AMF_UPDATE_SM_CONTEXT_HANDOVER_NOTIFY 23
#define AMF_UPDATE_SM_CONTEXT_HANDOVER_CANCEL 24
#define AMF_RELEASE_SM_CONTEXT_NO_STATE 31
-#define AMF_RELEASE_SM_CONTEXT_NG_CONTEXT_REMOVE 32
#define AMF_RELEASE_SM_CONTEXT_REGISTRATION_ACCEPT 33
#define AMF_RELEASE_SM_CONTEXT_SERVICE_ACCEPT 34
#define AMF_REMOVE_S1_CONTEXT_BY_LO_CONNREFUSED 51
@@ -74,23 +73,26 @@ int amf_sess_sbi_discover_and_send(
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
ogs_sbi_request_t *(*build)(amf_sess_t *sess, void *data),
- amf_sess_t *sess, int state, void *data);
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state, void *data);
int amf_sess_sbi_discover_by_nsi(
- amf_sess_t *sess,
+ ran_ue_t *ran_ue, amf_sess_t *sess,
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option);
-void amf_sbi_send_activating_session(amf_sess_t *sess, int state);
+void amf_sbi_send_activating_session(
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state);
void amf_sbi_send_deactivate_session(
- amf_sess_t *sess, int state, int group, int cause);
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state, int group, int cause);
void amf_sbi_send_deactivate_all_sessions(
- amf_ue_t *amf_ue, int state, int group, int cause);
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue, int state, int group, int cause);
void amf_sbi_send_deactivate_all_ue_in_gnb(amf_gnb_t *gnb, int state);
-void amf_sbi_send_release_session(amf_sess_t *sess, int state);
-void amf_sbi_send_release_all_sessions(amf_ue_t *amf_ue, int state);
+void amf_sbi_send_release_session(
+ ran_ue_t *ran_ue, amf_sess_t *sess, int state);
+void amf_sbi_send_release_all_sessions(
+ ran_ue_t *ran_ue, amf_ue_t *amf_ue, int state);
bool amf_sbi_send_n1_n2_failure_notify(
amf_sess_t *sess, OpenAPI_n1_n2_message_transfer_cause_e cause);
diff --git a/src/amf/timer.c b/src/amf/timer.c
index 1908511ad5..fc29e7a178 100644
--- a/src/amf/timer.c
+++ b/src/amf/timer.c
@@ -49,9 +49,6 @@ static amf_timer_cfg_t g_amf_timer_cfg[MAX_NUM_OF_AMF_TIMER] = {
{ .have = true, .duration = ogs_time_from_sec(30) },
};
-static void gmm_timer_event_send(
- amf_timer_e timer_id, amf_ue_t *amf_ue);
-
amf_timer_cfg_t *amf_timer_cfg(amf_timer_e id)
{
ogs_assert(id < MAX_NUM_OF_AMF_TIMER);
@@ -124,16 +121,17 @@ void amf_timer_ng_delayed_send(void *data)
}
static void gmm_timer_event_send(
- amf_timer_e timer_id, amf_ue_t *amf_ue)
+ amf_timer_e timer_id, void *data)
{
int rv;
amf_event_t *e = NULL;
- ogs_assert(amf_ue);
+
+ ogs_assert(data);
e = amf_event_new(AMF_EVENT_5GMM_TIMER);
ogs_assert(e);
e->h.timer_id = timer_id;
- e->amf_ue = amf_ue;
+ e->amf_ue_id = OGS_POINTER_TO_UINT(data);
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -172,16 +170,14 @@ void amf_timer_ng_holding_timer_expire(void *data)
{
int rv;
amf_event_t *e = NULL;
- ran_ue_t *ran_ue = NULL;
ogs_assert(data);
- ran_ue = data;
e = amf_event_new(AMF_EVENT_NGAP_TIMER);
ogs_assert(e);
e->h.timer_id = AMF_TIMER_NG_HOLDING;
- e->ran_ue = ran_ue;
+ e->ran_ue_id = OGS_POINTER_TO_UINT(data);
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
diff --git a/src/ausf/ausf-sm.c b/src/ausf/ausf-sm.c
index a7eb5ae609..4790a80e6b 100644
--- a/src/ausf/ausf-sm.c
+++ b/src/ausf/ausf-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -39,6 +39,7 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
int rv;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_nf_instance_t *nf_instance = NULL;
@@ -46,8 +47,10 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_sbi_response_t *response = NULL;
ogs_sbi_message_t message;
ogs_sbi_xact_t *sbi_xact = NULL;
+ ogs_pool_id_t sbi_xact_id = OGS_INVALID_POOL_ID;
ausf_ue_t *ausf_ue = NULL;
+ ogs_pool_id_t ausf_ue_id = OGS_INVALID_POOL_ID;
ausf_sm_debug(e);
@@ -63,8 +66,16 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
case OGS_EVENT_SBI_SERVER:
request = e->h.sbi.request;
ogs_assert(request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
rv = ogs_sbi_parse_request(&message, request);
if (rv != OGS_OK) {
@@ -73,7 +84,7 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP message", NULL));
+ NULL, "cannot parse HTTP message", NULL, NULL));
break;
}
@@ -82,7 +93,7 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &message, "Not supported version", NULL));
+ &message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&message);
break;
}
@@ -104,7 +115,8 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN,
&message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method,
+ NULL));
END
break;
@@ -115,7 +127,7 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Unknown resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -124,7 +136,7 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
CASE(OGS_SBI_HTTP_METHOD_POST)
if (message.AuthenticationInfo &&
message.AuthenticationInfo->supi_or_suci) {
- ausf_ue = ausf_ue_find_by_suci(
+ ausf_ue = ausf_ue_find_by_suci_or_supi(
message.AuthenticationInfo->supi_or_suci);
if (!ausf_ue) {
ausf_ue = ausf_ue_add(
@@ -147,13 +159,13 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_NOT_FOUND,
- &message, "Not found", message.h.method));
+ &message, "Not found", message.h.method, NULL));
break;
}
ogs_assert(OGS_FSM_STATE(&ausf_ue->sm));
- e->ausf_ue = ausf_ue;
+ e->ausf_ue_id = ausf_ue->id;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&ausf_ue->sm, e);
if (OGS_FSM_CHECK(&ausf_ue->sm, ausf_ue_state_exception)) {
@@ -167,7 +179,8 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
- "Invalid API name", message.h.resource.component[0]));
+ "Invalid API name", message.h.resource.component[0],
+ NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
@@ -265,8 +278,18 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
CASE(OGS_SBI_SERVICE_NAME_NNRF_DISC)
SWITCH(message.h.resource.component[0])
CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
+ if (!sbi_xact) {
+ /* CLIENT_WAIT timer could remove SBI transaction
+ * before receiving SBI message */
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
+ break;
+ }
SWITCH(message.h.method)
CASE(OGS_SBI_HTTP_METHOD_GET)
@@ -291,31 +314,36 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
break;
CASE(OGS_SBI_SERVICE_NAME_NUDM_UEAU)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
- sbi_xact = ogs_sbi_xact_cycle(sbi_xact);
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
/* CLIENT_WAIT timer could remove SBI transaction
* before receiving SBI message */
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- ausf_ue = (ausf_ue_t *)sbi_xact->sbi_object;
- ogs_assert(ausf_ue);
+ ausf_ue_id = sbi_xact->sbi_object_id;
+ ogs_assert(ausf_ue_id >= OGS_MIN_POOL_ID &&
+ ausf_ue_id <= OGS_MAX_POOL_ID);
- e->h.sbi.data = sbi_xact->assoc_stream;
+ ogs_assert(sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID);
+ e->h.sbi.data = OGS_UINT_TO_POINTER(sbi_xact->assoc_stream_id);
ogs_sbi_xact_remove(sbi_xact);
- ausf_ue = ausf_ue_cycle(ausf_ue);
+ ausf_ue = ausf_ue_find_by_id(ausf_ue_id);
if (!ausf_ue) {
ogs_error("UE(ausf-ue) Context has already been removed");
break;
}
- e->ausf_ue = ausf_ue;
+ e->ausf_ue_id = ausf_ue->id;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&ausf_ue->sm, e);
@@ -411,24 +439,36 @@ void ausf_state_operational(ogs_fsm_t *s, ausf_event_t *e)
* 4. timer expiration event is processed. (double-free SBI xact)
*
* To avoid double-free SBI xact,
- * we need to check ogs_sbi_xact_cycle()
+ * we need to check ogs_sbi_xact_find_by_id()
*/
- sbi_xact = ogs_sbi_xact_cycle(e->h.sbi.data);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- stream = sbi_xact->assoc_stream;
- ogs_assert(stream);
+ ogs_assert(sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID);
+ stream = ogs_sbi_stream_find_by_id(sbi_xact->assoc_stream_id);
ogs_sbi_xact_remove(sbi_xact);
ogs_error("Cannot receive SBI message");
+
+ if (!stream) {
+ ogs_error("STREAM has alreadt been removed [%d]",
+ sbi_xact->assoc_stream_id);
+ break;
+ }
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot receive SBI message", NULL));
+ "Cannot receive SBI message", NULL, NULL));
break;
default:
ogs_error("Unknown timer[%s:%d]",
diff --git a/src/ausf/context.c b/src/ausf/context.c
index 6b96d4dd44..6514cc4651 100644
--- a/src/ausf/context.c
+++ b/src/ausf/context.c
@@ -83,6 +83,7 @@ int ausf_context_parse_config(void)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -94,7 +95,8 @@ int ausf_context_parse_config(void)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, "ausf")) {
+ if ((!strcmp(root_key, "ausf")) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t ausf_iter;
ogs_yaml_iter_recurse(&root_iter, &ausf_iter);
while (ogs_yaml_iter_next(&ausf_iter)) {
@@ -131,13 +133,11 @@ ausf_ue_t *ausf_ue_add(char *suci)
ogs_assert(suci);
- ogs_pool_alloc(&ausf_ue_pool, &ausf_ue);
+ ogs_pool_id_calloc(&ausf_ue_pool, &ausf_ue);
if (!ausf_ue) {
- ogs_error("ogs_pool_alloc() failed");
+ ogs_error("ogs_pool_id_calloc() failed");
return NULL;
}
- ogs_assert(ausf_ue);
- memset(ausf_ue, 0, sizeof *ausf_ue);
ausf_ue->ctx_id =
ogs_msprintf("%d", (int)ogs_pool_index(&ausf_ue_pool, ausf_ue));
@@ -148,7 +148,7 @@ ausf_ue_t *ausf_ue_add(char *suci)
ogs_hash_set(self.suci_hash, ausf_ue->suci, strlen(ausf_ue->suci), ausf_ue);
memset(&e, 0, sizeof(e));
- e.ausf_ue = ausf_ue;
+ e.ausf_ue_id = ausf_ue->id;
ogs_fsm_init(&ausf_ue->sm, ausf_ue_state_initial, ausf_ue_state_final, &e);
ogs_list_add(&self.ausf_ue_list, ausf_ue);
@@ -165,7 +165,7 @@ void ausf_ue_remove(ausf_ue_t *ausf_ue)
ogs_list_remove(&self.ausf_ue_list, ausf_ue);
memset(&e, 0, sizeof(e));
- e.ausf_ue = ausf_ue;
+ e.ausf_ue_id = ausf_ue->id;
ogs_fsm_fini(&ausf_ue->sm, &e);
/* Free SBI object memory */
@@ -184,13 +184,14 @@ void ausf_ue_remove(ausf_ue_t *ausf_ue)
ogs_free(ausf_ue->supi);
}
- if (ausf_ue->auth_events_url)
- ogs_free(ausf_ue->auth_events_url);
+ AUTH_EVENT_CLEAR(ausf_ue);
+ if (ausf_ue->auth_event.client)
+ ogs_sbi_client_remove(ausf_ue->auth_event.client);
if (ausf_ue->serving_network_name)
ogs_free(ausf_ue->serving_network_name);
- ogs_pool_free(&ausf_ue_pool, ausf_ue);
+ ogs_pool_id_free(&ausf_ue_pool, ausf_ue);
}
void ausf_ue_remove_all(void)
@@ -228,9 +229,9 @@ ausf_ue_t *ausf_ue_find_by_ctx_id(char *ctx_id)
return ogs_pool_find(&ausf_ue_pool, atoll(ctx_id));
}
-ausf_ue_t *ausf_ue_cycle(ausf_ue_t *ausf_ue)
+ausf_ue_t *ausf_ue_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&ausf_ue_pool, ausf_ue);
+ return ogs_pool_find_by_id(&ausf_ue_pool, id);
}
int get_ue_load(void)
diff --git a/src/ausf/context.h b/src/ausf/context.h
index 6da3a06c33..e885d6f8ab 100644
--- a/src/ausf/context.h
+++ b/src/ausf/context.h
@@ -44,6 +44,7 @@ typedef struct ausf_context_s {
struct ausf_ue_s {
ogs_sbi_object_t sbi;
+ ogs_pool_id_t id;
ogs_fsm_t sm;
char *ctx_id;
@@ -52,7 +53,25 @@ struct ausf_ue_s {
char *serving_network_name;
OpenAPI_auth_type_e auth_type;
- char *auth_events_url;
+#define AUTH_EVENT_CLEAR(__aUSF) \
+ do { \
+ ogs_assert((__aUSF)); \
+ if ((__aUSF)->auth_event.resource_uri) \
+ ogs_free((__aUSF)->auth_event.resource_uri); \
+ (__aUSF)->auth_event.resource_uri = NULL; \
+ } while(0)
+#define AUTH_EVENT_STORE(__aUSF, __rESOURCE_URI) \
+ do { \
+ ogs_assert((__aUSF)); \
+ ogs_assert((__rESOURCE_URI)); \
+ AUTH_EVENT_CLEAR(__aUSF); \
+ (__aUSF)->auth_event.resource_uri = ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__aUSF)->auth_event.resource_uri); \
+ } while(0)
+ struct {
+ char *resource_uri;
+ ogs_sbi_client_t *client;
+ } auth_event;
OpenAPI_auth_result_e auth_result;
uint8_t rand[OGS_RAND_LEN];
@@ -75,8 +94,8 @@ ausf_ue_t *ausf_ue_find_by_suci(char *suci);
ausf_ue_t *ausf_ue_find_by_supi(char *supi);
ausf_ue_t *ausf_ue_find_by_suci_or_supi(char *suci_or_supi);
ausf_ue_t *ausf_ue_find_by_ctx_id(char *ctx_id);
+ausf_ue_t *ausf_ue_find_by_id(ogs_pool_id_t id);
-ausf_ue_t *ausf_ue_cycle(ausf_ue_t *ausf_ue);
int get_ue_load(void);
#ifdef __cplusplus
diff --git a/src/ausf/event.h b/src/ausf/event.h
index 413c0b3d82..fa6461e325 100644
--- a/src/ausf/event.h
+++ b/src/ausf/event.h
@@ -31,7 +31,7 @@ typedef struct ausf_ue_s ausf_ue_t;
typedef struct ausf_event_s {
ogs_event_t h;
- ausf_ue_t *ausf_ue;
+ ogs_pool_id_t ausf_ue_id;
} ausf_event_t;
OGS_STATIC_ASSERT(OGS_EVENT_SIZE >= sizeof(ausf_event_t));
diff --git a/src/ausf/init.c b/src/ausf/init.c
index ac8824c0b9..c9d5b6cc5d 100644
--- a/src/ausf/init.c
+++ b/src/ausf/init.c
@@ -34,14 +34,14 @@ int ausf_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_AUSF);
ausf_context_init();
- rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
- rv = ausf_context_parse_config();
+ rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
+ rv = ausf_context_parse_config();
if (rv != OGS_OK) return rv;
rv = ausf_sbi_open();
diff --git a/src/ausf/nausf-handler.c b/src/ausf/nausf-handler.c
index a255a75088..2c4fd45e69 100644
--- a/src/ausf/nausf-handler.c
+++ b/src/ausf/nausf-handler.c
@@ -37,7 +37,7 @@ bool ausf_nausf_auth_handle_authenticate(ausf_ue_t *ausf_ue,
ogs_error("[%s] No AuthenticationInfo", ausf_ue->suci);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationInfo", ausf_ue->suci));
+ recvmsg, "No AuthenticationInfo", ausf_ue->suci, NULL));
return false;
}
@@ -46,7 +46,7 @@ bool ausf_nausf_auth_handle_authenticate(ausf_ue_t *ausf_ue,
ogs_error("[%s] No servingNetworkName", ausf_ue->suci);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No servingNetworkName", ausf_ue->suci));
+ recvmsg, "No servingNetworkName", ausf_ue->suci, NULL));
return false;
}
@@ -82,7 +82,7 @@ bool ausf_nausf_auth_handle_authenticate_confirmation(ausf_ue_t *ausf_ue,
ogs_error("[%s] No ConfirmationData", ausf_ue->suci);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No ConfirmationData", ausf_ue->suci));
+ recvmsg, "No ConfirmationData", ausf_ue->suci, NULL));
return false;
}
@@ -91,7 +91,7 @@ bool ausf_nausf_auth_handle_authenticate_confirmation(ausf_ue_t *ausf_ue,
ogs_error("[%s] No ConfirmationData.resStar", ausf_ue->suci);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No ConfirmationData.resStar", ausf_ue->suci));
+ recvmsg, "No ConfirmationData.resStar", ausf_ue->suci, NULL));
return false;
}
diff --git a/src/ausf/nudm-handler.c b/src/ausf/nudm-handler.c
index 8872b6026f..338fa4b1f3 100644
--- a/src/ausf/nudm-handler.c
+++ b/src/ausf/nudm-handler.c
@@ -63,7 +63,8 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationInfoResult", ausf_ue->suci));
+ recvmsg, "No AuthenticationInfoResult", ausf_ue->suci,
+ NULL));
return false;
}
@@ -75,7 +76,8 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_IMPLEMENTED,
- recvmsg, "Not supported Auth Method", ausf_ue->suci));
+ recvmsg, "Not supported Auth Method", ausf_ue->suci,
+ NULL));
return false;
}
@@ -86,17 +88,32 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationVector", ausf_ue->suci));
+ recvmsg, "No AuthenticationVector", ausf_ue->suci, NULL));
return false;
}
if (AuthenticationVector->av_type != OpenAPI_av_type_5G_HE_AKA) {
ogs_error("[%s] Not supported Auth Method [%d]",
ausf_ue->suci, AuthenticationVector->av_type);
+ /*
+ * TS29.509
+ * 5.2.2.2.2 5G AKA
+ *
+ * On failure or redirection, one of the HTTP status code
+ * listed in table 6.1.7.3-1 shall be returned with the message
+ * body containing a ProblemDetails structure with the "cause"
+ * attribute set to one of the application error listed in
+ * Table 6.1.7.3-1.
+ * Application Error: AUTHENTICATION_REJECTED
+ * HTTP status code: 403 Forbidden
+ * Description: The user cannot be authenticated with this
+ * authentication method e.g. only SIM data available
+ */
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN,
- recvmsg, "Not supported Auth Method", ausf_ue->suci));
+ recvmsg, "Not supported Auth Method", ausf_ue->suci,
+ "AUTHENTICATION_REJECTED"));
return false;
}
@@ -105,7 +122,8 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationVector.rand", ausf_ue->suci));
+ recvmsg, "No AuthenticationVector.rand", ausf_ue->suci,
+ NULL));
return false;
}
@@ -115,7 +133,8 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationVector.xresStar", ausf_ue->suci));
+ recvmsg, "No AuthenticationVector.xresStar", ausf_ue->suci,
+ NULL));
return false;
}
@@ -124,7 +143,8 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationVector.autn", ausf_ue->suci));
+ recvmsg, "No AuthenticationVector.autn", ausf_ue->suci,
+ NULL));
return false;
}
@@ -133,7 +153,8 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationVector.kausf", ausf_ue->suci));
+ recvmsg, "No AuthenticationVector.kausf", ausf_ue->suci,
+ NULL));
return false;
}
@@ -142,7 +163,8 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthenticationVector.supi", ausf_ue->suci));
+ recvmsg, "No AuthenticationVector.supi", ausf_ue->suci,
+ NULL));
return false;
}
@@ -222,8 +244,7 @@ bool ausf_nudm_ueau_handle_get(ausf_ue_t *ausf_ue,
sendmsg.UeAuthenticationCtx = &UeAuthenticationCtx;
- response = ogs_sbi_build_response(&sendmsg,
- OGS_SBI_HTTP_STATUS_CREATED);
+ response = ogs_sbi_build_response(&sendmsg, OGS_SBI_HTTP_STATUS_CREATED);
ogs_assert(response);
ogs_assert(true == ogs_sbi_server_send_response(stream, response));
@@ -264,6 +285,13 @@ bool ausf_nudm_ueau_handle_result_confirmation_inform(ausf_ue_t *ausf_ue,
OpenAPI_confirmation_data_response_t ConfirmationDataResponse;
OpenAPI_auth_event_t *AuthEvent = NULL;
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
+
ogs_assert(ausf_ue);
ogs_assert(stream);
@@ -274,7 +302,7 @@ bool ausf_nudm_ueau_handle_result_confirmation_inform(ausf_ue_t *ausf_ue,
ogs_error("[%s] No AuthEvent", ausf_ue->suci);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No AuthEvent", ausf_ue->suci));
+ recvmsg, "No AuthEvent", ausf_ue->suci, NULL));
return false;
}
@@ -282,14 +310,37 @@ bool ausf_nudm_ueau_handle_result_confirmation_inform(ausf_ue_t *ausf_ue,
ogs_error("[%s] No Location", ausf_ue->suci);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No Location", ausf_ue->suci));
+ recvmsg, "No Location", ausf_ue->suci, NULL));
+ return false;
+ }
+
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, recvmsg->http.location);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ ogs_error("[%s] Invalid URI [%s]",
+ ausf_ue->suci, recvmsg->http.location);
+
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ recvmsg, "Invalid URI", ausf_ue->suci, NULL));
+
return false;
}
- if (ausf_ue->auth_events_url)
- ogs_free(ausf_ue->auth_events_url);
- ausf_ue->auth_events_url = ogs_strdup(recvmsg->http.location);
- ogs_assert(ausf_ue->auth_events_url);
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("[%s] ogs_sbi_client_add()", ausf_ue->suci);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ ogs_assert(client);
+ }
+
+ OGS_SBI_SETUP_CLIENT(&ausf_ue->auth_event, client);
+
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
+
+ AUTH_EVENT_STORE(ausf_ue, recvmsg->http.location);
memset(&ConfirmationDataResponse, 0, sizeof(ConfirmationDataResponse));
diff --git a/src/ausf/sbi-path.c b/src/ausf/sbi-path.c
index d80c81aa46..0471a759b7 100644
--- a/src/ausf/sbi-path.c
+++ b/src/ausf/sbi-path.c
@@ -88,19 +88,24 @@ int ausf_sbi_discover_and_send(
ogs_assert(stream);
ogs_assert(build);
+ ogs_assert(ausf_ue->id >= OGS_MIN_POOL_ID &&
+ ausf_ue->id <= OGS_MAX_POOL_ID);
+
xact = ogs_sbi_xact_add(
- &ausf_ue->sbi, service_type, discovery_option,
+ ausf_ue->id, &ausf_ue->sbi, service_type, discovery_option,
(ogs_sbi_build_f)build, ausf_ue, data);
if (!xact) {
ogs_error("ausf_sbi_discover_and_send() failed");
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot discover", ausf_ue->suci));
+ "Cannot discover", ausf_ue->suci, NULL));
return OGS_ERROR;
}
- xact->assoc_stream = stream;
+ xact->assoc_stream_id = ogs_sbi_id_from_stream(stream);
+ ogs_assert(xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ xact->assoc_stream_id <= OGS_MAX_POOL_ID);
r = ogs_sbi_discover_and_send(xact);
if (r != OGS_OK) {
@@ -109,7 +114,7 @@ int ausf_sbi_discover_and_send(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot discover", ausf_ue->suci));
+ "Cannot discover", ausf_ue->suci, NULL));
return r;
}
diff --git a/src/ausf/ue-sm.c b/src/ausf/ue-sm.c
index f2f8f47164..86fd9b03f3 100644
--- a/src/ausf/ue-sm.c
+++ b/src/ausf/ue-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2022 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -31,7 +31,7 @@ void ausf_ue_state_initial(ogs_fsm_t *s, ausf_event_t *e)
ausf_sm_debug(e);
- ausf_ue = e->ausf_ue;
+ ausf_ue = ausf_ue_find_by_id(e->ausf_ue_id);
ogs_assert(ausf_ue);
OGS_FSM_TRAN(s, &ausf_ue_state_operational);
@@ -46,7 +46,7 @@ void ausf_ue_state_final(ogs_fsm_t *s, ausf_event_t *e)
ausf_sm_debug(e);
- ausf_ue = e->ausf_ue;
+ ausf_ue = ausf_ue_find_by_id(e->ausf_ue_id);
ogs_assert(ausf_ue);
}
@@ -56,6 +56,7 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ausf_ue_t *ausf_ue = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_message_t *message = NULL;
ogs_assert(s);
@@ -63,7 +64,7 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ausf_sm_debug(e);
- ausf_ue = e->ausf_ue;
+ ausf_ue = ausf_ue_find_by_id(e->ausf_ue_id);
ogs_assert(ausf_ue);
switch (e->h.id) {
@@ -76,8 +77,16 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.method)
CASE(OGS_SBI_HTTP_METHOD_POST)
@@ -95,7 +104,7 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- message, "[%s] No SUPI", ausf_ue->suci));
+ message, "[%s] No SUPI", ausf_ue->suci, NULL));
OGS_FSM_TRAN(s, ausf_ue_state_exception);
break;
}
@@ -114,7 +123,7 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- message, "[%s] No SUPI", ausf_ue->suci));
+ message, "[%s] No SUPI", ausf_ue->suci, NULL));
OGS_FSM_TRAN(s, ausf_ue_state_exception);
break;
}
@@ -133,7 +142,8 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, message,
- "Invalid HTTP method", message->h.method));
+ "Invalid HTTP method", message->h.method,
+ NULL));
END
break;
@@ -142,10 +152,18 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
message = e->h.sbi.message;
ogs_assert(message);
- ausf_ue = e->ausf_ue;
+ ausf_ue = ausf_ue_find_by_id(e->ausf_ue_id);
ogs_assert(ausf_ue);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_NUDM_UEAU)
@@ -162,7 +180,8 @@ void ausf_ue_state_operational(ogs_fsm_t *s, ausf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, message->res_status,
- NULL, "HTTP response error", ausf_ue->suci));
+ NULL, "HTTP response error", ausf_ue->suci,
+ message->ProblemDetails->cause));
break;
}
@@ -223,7 +242,7 @@ void ausf_ue_state_deleted(ogs_fsm_t *s, ausf_event_t *e)
ausf_sm_debug(e);
- ausf_ue = e->ausf_ue;
+ ausf_ue = ausf_ue_find_by_id(e->ausf_ue_id);
ogs_assert(ausf_ue);
switch (e->h.id) {
@@ -247,7 +266,7 @@ void ausf_ue_state_exception(ogs_fsm_t *s, ausf_event_t *e)
ausf_sm_debug(e);
- ausf_ue = e->ausf_ue;
+ ausf_ue = ausf_ue_find_by_id(e->ausf_ue_id);
ogs_assert(ausf_ue);
switch (e->h.id) {
diff --git a/src/bsf/bsf-sm.c b/src/bsf/bsf-sm.c
index e67ad24d4f..fff9f4ccd5 100644
--- a/src/bsf/bsf-sm.c
+++ b/src/bsf/bsf-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -44,6 +44,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
bsf_sess_t *sess = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_nf_instance_t *nf_instance = NULL;
@@ -51,6 +52,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_sbi_response_t *response = NULL;
ogs_sbi_message_t message;
ogs_sbi_xact_t *sbi_xact = NULL;
+ ogs_pool_id_t sbi_xact_id = OGS_INVALID_POOL_ID;
bsf_sm_debug(e);
@@ -66,8 +68,16 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
case OGS_EVENT_SBI_SERVER:
request = e->h.sbi.request;
ogs_assert(request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
rv = ogs_sbi_parse_request(&message, request);
if (rv != OGS_OK) {
@@ -76,7 +86,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP sbi_message", NULL));
+ NULL, "cannot parse HTTP sbi_message", NULL, NULL));
break;
}
@@ -85,7 +95,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &message, "Not supported version", NULL));
+ &message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&message);
break;
}
@@ -105,7 +115,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method, NULL));
END
break;
@@ -116,7 +126,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Invalid resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -166,7 +176,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
- &message, "Not found", message.h.uri));
+ &message, "Not found", message.h.uri, NULL));
break;
}
@@ -180,7 +190,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Invalid resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -189,7 +199,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
- "Invalid API name", message.h.service.name));
+ "Invalid API name", message.h.service.name, NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
@@ -285,8 +295,18 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
CASE(OGS_SBI_SERVICE_NAME_NNRF_DISC)
SWITCH(message.h.resource.component[0])
CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
+ if (!sbi_xact) {
+ /* CLIENT_WAIT timer could remove SBI transaction
+ * before receiving SBI message */
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
+ break;
+ }
SWITCH(message.h.method)
CASE(OGS_SBI_HTTP_METHOD_GET)
@@ -393,15 +413,22 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
* 4. timer expiration event is processed. (double-free SBI xact)
*
* To avoid double-free SBI xact,
- * we need to check ogs_sbi_xact_cycle()
+ * we need to check ogs_sbi_xact_find_by_id()
*/
- sbi_xact = ogs_sbi_xact_cycle(e->h.sbi.data);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- stream = sbi_xact->assoc_stream;
+ if (sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID)
+ stream = ogs_sbi_stream_find_by_id(sbi_xact->assoc_stream_id);
/* Here, we should not use ogs_assert(stream)
* since 'namf-comm' service has no an associated stream. */
@@ -412,7 +439,7 @@ void bsf_state_operational(ogs_fsm_t *s, bsf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot receive SBI message", NULL));
+ "Cannot receive SBI message", NULL, NULL));
}
break;
diff --git a/src/bsf/context.c b/src/bsf/context.c
index 21c419dfe0..da4744b942 100644
--- a/src/bsf/context.c
+++ b/src/bsf/context.c
@@ -82,6 +82,7 @@ int bsf_context_parse_config(void)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -93,7 +94,8 @@ int bsf_context_parse_config(void)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, "bsf")) {
+ if ((!strcmp(root_key, "bsf")) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t bsf_iter;
ogs_yaml_iter_recurse(&root_iter, &bsf_iter);
while (ogs_yaml_iter_next(&bsf_iter)) {
diff --git a/src/bsf/init.c b/src/bsf/init.c
index 6560c81782..118a50bd00 100644
--- a/src/bsf/init.c
+++ b/src/bsf/init.c
@@ -36,14 +36,14 @@ int bsf_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_BSF);
bsf_context_init();
- rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
- rv = bsf_context_parse_config();
+ rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
+ rv = bsf_context_parse_config();
if (rv != OGS_OK) return rv;
rv = bsf_sbi_open();
diff --git a/src/bsf/nbsf-handler.c b/src/bsf/nbsf-handler.c
index dbf3152942..1c58237c29 100644
--- a/src/bsf/nbsf-handler.c
+++ b/src/bsf/nbsf-handler.c
@@ -195,7 +195,8 @@ bool bsf_nbsf_management_handle_pcf_binding(
if (RecvPcfBinding->supp_feat) {
uint64_t supported_features =
- ogs_uint64_from_string(RecvPcfBinding->supp_feat);
+ ogs_uint64_from_string_hexadecimal(
+ RecvPcfBinding->supp_feat);
sess->management_features &= supported_features;
if (sess->management_features != supported_features) {
@@ -303,7 +304,8 @@ bool bsf_nbsf_management_handle_pcf_binding(
ogs_assert(status);
ogs_error("%s", strerror);
ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL));
+ ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL,
+ NULL));
ogs_free(strerror);
return false;
diff --git a/src/bsf/sbi-path.c b/src/bsf/sbi-path.c
index d9d9739059..e2054f1c97 100644
--- a/src/bsf/sbi-path.c
+++ b/src/bsf/sbi-path.c
@@ -89,18 +89,20 @@ int bsf_sbi_discover_and_send(
ogs_assert(build);
xact = ogs_sbi_xact_add(
- &sess->sbi, service_type, discovery_option,
+ 0, &sess->sbi, service_type, discovery_option,
(ogs_sbi_build_f)build, sess, data);
if (!xact) {
ogs_error("bsf_sbi_discover_and_send() failed");
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot discover", sess->dnn));
+ "Cannot discover", sess->dnn, NULL));
return OGS_ERROR;
}
- xact->assoc_stream = stream;
+ xact->assoc_stream_id = ogs_sbi_id_from_stream(stream);
+ ogs_assert(xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ xact->assoc_stream_id <= OGS_MAX_POOL_ID);
r = ogs_sbi_discover_and_send(xact);
if (r != OGS_OK) {
@@ -109,7 +111,7 @@ int bsf_sbi_discover_and_send(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot discover", sess->dnn));
+ "Cannot discover", sess->dnn, NULL));
return r;
}
diff --git a/src/hss/hss-context.c b/src/hss/hss-context.c
index b88725627c..d42c26655e 100644
--- a/src/hss/hss-context.c
+++ b/src/hss/hss-context.c
@@ -20,6 +20,7 @@
#include "ogs-dbi.h"
#include "hss-context.h"
#include "hss-event.h"
+#include "hss-fd-path.h"
#include "hss-s6a-path.h"
@@ -144,6 +145,7 @@ static int hss_context_prepare(void)
{
self.diam_config->cnf_port = DIAMETER_PORT;
self.diam_config->cnf_port_tls = DIAMETER_SECURE_PORT;
+ self.diam_config->stats.priv_stats_size = sizeof(hss_diam_stats_t);
return OGS_OK;
}
@@ -270,6 +272,7 @@ int hss_context_parse_config(void)
const char *identity = NULL;
const char *addr = NULL;
uint16_t port = 0;
+ int tc_timer = 0;
if (ogs_yaml_iter_type(&conn_array) ==
YAML_MAPPING_NODE) {
@@ -304,6 +307,10 @@ int hss_context_parse_config(void)
const char *v =
ogs_yaml_iter_value(&conn_iter);
if (v) port = atoi(v);
+ } else if (!strcmp(conn_key, "tc_timer")) {
+ const char *v =
+ ogs_yaml_iter_value(&conn_iter);
+ if (v) tc_timer = atoi(v);
} else
ogs_warn("unknown key `%s`",
conn_key);
@@ -319,24 +326,35 @@ int hss_context_parse_config(void)
self.diam_config->
conn[self.diam_config->num_of_conn].
port = port;
+ self.diam_config->
+ conn[self.diam_config->num_of_conn].
+ tc_timer = tc_timer;
self.diam_config->num_of_conn++;
}
} while (ogs_yaml_iter_type(&conn_array) ==
YAML_SEQUENCE_NODE);
+ } else if (!strcmp(fd_key, "tc_timer")) {
+ const char *v = ogs_yaml_iter_value(&fd_iter);
+ if (v) self.diam_config->cnf_timer_tc = atoi(v);
} else
ogs_warn("unknown key `%s`", fd_key);
}
}
+ } else if (!strcmp(hss_key, "diameter_stats_interval")) {
+ const char *v = ogs_yaml_iter_value(&hss_iter);
+ if (v) self.diam_config->stats.interval_sec = atoi(v);
} else if (!strcmp(hss_key, "sms_over_ims")) {
self.sms_over_ims =
ogs_yaml_iter_value(&hss_iter);
} else if (!strcmp(hss_key, "use_mongodb_change_stream")) {
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
+#if MONGOC_CHECK_VERSION(1, 9, 0)
self.use_mongodb_change_stream =
ogs_yaml_iter_bool(&hss_iter);
#else
self.use_mongodb_change_stream = false;
#endif
+ } else if (!strcmp(hss_key, "metrics")) {
+ /* handle config in metrics library */
} else
ogs_warn("unknown key `%s`", hss_key);
}
@@ -519,6 +537,7 @@ static hss_imsi_t *imsi_add(char *id)
ogs_hash_set(self.imsi_hash, imsi->id, strlen(imsi->id), imsi);
ogs_list_add(&self.imsi_list, imsi);
+ hss_metrics_inst_global_inc(HSS_METR_GLOB_GAUGE_IMSI);
return imsi;
}
@@ -528,6 +547,7 @@ static void imsi_remove(hss_imsi_t *imsi)
ogs_assert(imsi);
ogs_list_remove(&self.imsi_list, imsi);
+ hss_metrics_inst_global_dec(HSS_METR_GLOB_GAUGE_IMSI);
ogs_assert(imsi->id);
ogs_hash_set(self.imsi_hash, imsi->id, strlen(imsi->id), NULL);
@@ -569,6 +589,7 @@ static hss_impi_t *impi_add(char *id)
ogs_hash_set(self.impi_hash, impi->id, strlen(impi->id), impi);
ogs_list_add(&self.impi_list, impi);
+ hss_metrics_inst_global_inc(HSS_METR_GLOB_GAUGE_IMPI);
return impi;
}
@@ -578,6 +599,7 @@ static void impi_remove(hss_impi_t *impi)
ogs_assert(impi);
ogs_list_remove(&self.impi_list, impi);
+ hss_metrics_inst_global_dec(HSS_METR_GLOB_GAUGE_IMPI);
impu_remove_all(impi);
@@ -633,7 +655,9 @@ static hss_impu_t *impu_add(hss_impi_t *impi, char *id)
ogs_hash_set(self.impu_hash, impu->id, strlen(impu->id), impu);
impu->impi = impi;
+
ogs_list_add(&impi->impu_list, impu);
+ hss_metrics_inst_global_inc(HSS_METR_GLOB_GAUGE_IMPU);
return impu;
}
@@ -647,6 +671,7 @@ static void impu_remove(hss_impu_t *impu)
ogs_assert(impi);
ogs_list_remove(&impi->impu_list, impu);
+ hss_metrics_inst_global_dec(HSS_METR_GLOB_GAUGE_IMPU);
ogs_assert(impu->id);
ogs_hash_set(self.impu_hash, impu->id, strlen(impu->id), NULL);
@@ -1201,7 +1226,7 @@ int hss_db_poll_change_stream(void)
static int poll_change_stream(void)
{
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
+#if MONGOC_CHECK_VERSION(1, 9, 0)
int rv;
const bson_t *document;
diff --git a/src/hss/hss-context.h b/src/hss/hss-context.h
index b5afd46b4a..1fe0ddc701 100644
--- a/src/hss/hss-context.h
+++ b/src/hss/hss-context.h
@@ -25,6 +25,7 @@
#include "ogs-diameter-swx.h"
#include "ogs-dbi.h"
#include "ogs-app.h"
+#include "metrics.h"
#ifdef __cplusplus
extern "C" {
diff --git a/src/hss/hss-cx-path.c b/src/hss/hss-cx-path.c
index 7bfc6ed3c0..18dbdc60ee 100644
--- a/src/hss/hss-cx-path.c
+++ b/src/hss/hss-cx-path.c
@@ -34,17 +34,20 @@ static struct disp_hdl *hdl_cx_sar = NULL;
static struct disp_hdl *hdl_cx_lir = NULL;
/* Default callback for the application. */
-static int hss_ogs_diam_cx_fb_cb(struct msg **msg, struct avp *avp,
+static int hss_ogs_diam_cx_fb_cb(struct msg **msg, struct avp *avp,
struct session *session, void *opaque, enum disp_action *act)
{
/* This CB should never be called */
ogs_warn("Unexpected message received!");
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_unknown);
+ )
return ENOTSUP;
}
/* Callback for incoming User-Authorization-Request messages */
-static int hss_ogs_diam_cx_uar_cb( struct msg **msg, struct avp *avp,
+static int hss_ogs_diam_cx_uar_cb( struct msg **msg, struct avp *avp,
struct session *session, void *opaque, enum disp_action *act)
{
int rv, ret;
@@ -66,7 +69,7 @@ static int hss_ogs_diam_cx_uar_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("User-Authorization-Request");
+ ogs_debug("Rx User-Authorization-Request");
/* Create answer header */
qry = *msg;
@@ -163,12 +166,14 @@ static int hss_ogs_diam_cx_uar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("User-Authorization-Answer");
+ ogs_debug("Tx User-Authorization-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_uar);
+ HSS_DIAM_PRIV_STATS_INC(cx.tx_uaa);
+ )
ogs_free(user_name);
ogs_free(public_identity);
@@ -198,6 +203,11 @@ static int hss_ogs_diam_cx_uar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_uar);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_uar_error);
+ )
+
ogs_free(user_name);
ogs_free(public_identity);
ogs_free(visited_network_identifier);
@@ -250,7 +260,7 @@ static int hss_ogs_diam_cx_mar_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Multimedia-Auth-Request");
+ ogs_debug("Rx Multimedia-Auth-Request");
/* Create answer header */
qry = *msg;
@@ -552,12 +562,14 @@ static int hss_ogs_diam_cx_mar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Multimedia-Auth-Answer");
+ ogs_debug("Tx Multimedia-Auth-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_mar);
+ HSS_DIAM_PRIV_STATS_INC(cx.tx_maa);
+ )
if (authentication_scheme)
ogs_free(authentication_scheme);
@@ -593,6 +605,11 @@ static int hss_ogs_diam_cx_mar_cb( struct msg **msg, struct avp *avp,
if (authentication_scheme)
ogs_free(authentication_scheme);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_mar);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_mar_error);
+ )
+
ogs_free(user_name);
ogs_free(public_identity);
ogs_free(server_name);
@@ -627,7 +644,7 @@ static int hss_ogs_diam_cx_sar_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Server-Assignment-Request");
+ ogs_debug("Rx Server-Assignment-Request");
/* Create answer header */
qry = *msg;
@@ -812,12 +829,14 @@ static int hss_ogs_diam_cx_sar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Server-Assignment-Answer");
+ ogs_debug("Tx Server-Assignment-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_sar);
+ HSS_DIAM_PRIV_STATS_INC(cx.tx_saa);
+ )
if (user_data)
ogs_free(user_data);
@@ -849,6 +868,11 @@ static int hss_ogs_diam_cx_sar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_sar);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_sar_error);
+ )
+
if (user_data)
ogs_free(user_data);
ogs_free(user_name);
@@ -875,7 +899,7 @@ static int hss_ogs_diam_cx_lir_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Location-Info-Request");
+ ogs_debug("Rx Location-Info-Request");
/* Create answer header */
qry = *msg;
@@ -933,12 +957,14 @@ static int hss_ogs_diam_cx_lir_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Location-Info-Answer");
+ ogs_debug("Tx Location-Info-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_lir);
+ HSS_DIAM_PRIV_STATS_INC(cx.tx_lia);
+ )
ogs_free(public_identity);
@@ -966,6 +992,11 @@ static int hss_ogs_diam_cx_lir_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_lir);
+ HSS_DIAM_PRIV_STATS_INC(cx.rx_lir_error);
+ )
+
ogs_free(public_identity);
return 0;
diff --git a/src/hss/hss-fd-path.c b/src/hss/hss-fd-path.c
index a1021185ec..ffac26c700 100644
--- a/src/hss/hss-fd-path.c
+++ b/src/hss/hss-fd-path.c
@@ -22,6 +22,62 @@
#include "hss-context.h"
#include "hss-fd-path.h"
+static hss_diam_stats_t prev_st;
+
+static void hsss_diam_stats_update_cb(const ogs_diam_stats_t *stats, const void *priv_stats)
+{
+ const hss_diam_stats_t *st = (const hss_diam_stats_t *)priv_stats;
+
+ ogs_debug("%s(): Update HSS diameter metrics", __func__);
+
+ #define METRIC_ADD(metric_name, field) \
+ { \
+ int diff = st->field - prev_st.field; \
+ if (diff > 0) hss_metrics_inst_global_add(metric_name, diff); \
+ }
+
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_UNKNOWN, cx.rx_unknown);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_MAR, cx.rx_mar);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_MAR_ERROR, cx.rx_mar_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_SAR, cx.rx_sar);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_SAR_ERROR, cx.rx_sar_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_UAR, cx.rx_uar);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_UAR_ERROR, cx.rx_uar_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_LIR, cx.rx_lir);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_RX_LIR_ERROR, cx.rx_lir_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_TX_MAA, cx.tx_maa);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_TX_SAA, cx.tx_saa);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_TX_UAA, cx.tx_uaa);
+ METRIC_ADD(HSS_METR_GLOB_CTR_CX_TX_LIA, cx.tx_lia);
+
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_UNKNOWN, s6a.rx_unknown);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_AIR, s6a.rx_air);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_AIR_ERROR, s6a.rx_air_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_CLA, s6a.rx_cla);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_CLA_ERROR, s6a.rx_cla_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_IDA, s6a.rx_ida);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_IDA_ERROR, s6a.rx_ida_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_PUR, s6a.rx_pur);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_PUR_ERROR, s6a.rx_pur_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_ULR, s6a.rx_ulr);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_RX_ULR_ERROR, s6a.rx_ulr_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_TX_AIA, s6a.tx_aia);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_TX_CLR, s6a.tx_clr);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_TX_IDR, s6a.tx_idr);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_TX_PUA, s6a.tx_pua);
+ METRIC_ADD(HSS_METR_GLOB_CTR_S6a_TX_ULA, s6a.tx_ula);
+
+ METRIC_ADD(HSS_METR_GLOB_CTR_SWx_RX_UNKNOWN, swx.rx_unknown);
+ METRIC_ADD(HSS_METR_GLOB_CTR_SWx_RX_MAR, swx.rx_mar);
+ METRIC_ADD(HSS_METR_GLOB_CTR_SWx_RX_MAR_ERROR, swx.rx_mar_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_SWx_RX_SAR, swx.rx_sar);
+ METRIC_ADD(HSS_METR_GLOB_CTR_SWx_RX_SAR_ERROR, swx.rx_sar_error);
+ METRIC_ADD(HSS_METR_GLOB_CTR_SWx_TX_MAA, swx.tx_maa);
+ METRIC_ADD(HSS_METR_GLOB_CTR_SWx_TX_SAA, swx.tx_saa);
+
+ memcpy(&prev_st, st, sizeof(*st));
+}
+
int hss_fd_init(void)
{
int rv;
@@ -37,6 +93,8 @@ int hss_fd_init(void)
rv = hss_swx_init();
ogs_assert(rv == OGS_OK);
+ ogs_diam_stats_update_cb_register(hsss_diam_stats_update_cb);
+
rv = ogs_diam_start();
ogs_assert(rv == 0);
diff --git a/src/hss/hss-fd-path.h b/src/hss/hss-fd-path.h
index 3f88c35e72..5fa8f0a1ce 100644
--- a/src/hss/hss-fd-path.h
+++ b/src/hss/hss-fd-path.h
@@ -24,6 +24,60 @@
extern "C" {
#endif
+typedef struct hss_diam_stats_cx_s {
+ unsigned long long rx_unknown;
+ unsigned long long rx_mar;
+ unsigned long long rx_mar_error;
+ unsigned long long rx_sar;
+ unsigned long long rx_sar_error;
+ unsigned long long rx_uar;
+ unsigned long long rx_uar_error;
+ unsigned long long rx_lir;
+ unsigned long long rx_lir_error;
+ unsigned long long tx_maa;
+ unsigned long long tx_saa;
+ unsigned long long tx_uaa;
+ unsigned long long tx_lia;
+} hss_diam_stats_cx_t;
+
+typedef struct hss_diam_stats_s6a_s {
+ unsigned long long rx_unknown;
+ unsigned long long rx_air;
+ unsigned long long rx_air_error;
+ unsigned long long rx_cla;
+ unsigned long long rx_cla_error;
+ unsigned long long rx_ida;
+ unsigned long long rx_ida_error;
+ unsigned long long rx_pur;
+ unsigned long long rx_pur_error;
+ unsigned long long rx_ulr;
+ unsigned long long rx_ulr_error;
+ unsigned long long tx_aia;
+ unsigned long long tx_clr;
+ unsigned long long tx_idr;
+ unsigned long long tx_pua;
+ unsigned long long tx_ula;
+} hss_diam_stats_s6a_t;
+
+typedef struct hss_diam_stats_swx_s {
+ unsigned long long rx_unknown;
+ unsigned long long rx_mar;
+ unsigned long long rx_mar_error;
+ unsigned long long rx_sar;
+ unsigned long long rx_sar_error;
+ unsigned long long tx_maa;
+ unsigned long long tx_saa;
+} hss_diam_stats_swx_t;
+
+typedef struct hss_diam_stats_s {
+ hss_diam_stats_cx_t cx;
+ hss_diam_stats_s6a_t s6a;
+ hss_diam_stats_swx_t swx;
+} hss_diam_stats_t;
+
+#define HSS_DIAM_PRIV_STATS_ADD(field, val) ((hss_diam_stats_t *)ogs_diam_stats_self()->priv_stats)->field += val
+#define HSS_DIAM_PRIV_STATS_INC(field) HSS_DIAM_PRIV_STATS_ADD(field, 1)
+
int hss_fd_init(void);
void hss_fd_final(void);
diff --git a/src/hss/hss-init.c b/src/hss/hss-init.c
index 305d9ef22d..288a2c5373 100644
--- a/src/hss/hss-init.c
+++ b/src/hss/hss-init.c
@@ -20,6 +20,7 @@
#include "hss-context.h"
#include "hss-fd-path.h"
#include "hss-sm.h"
+#include "metrics.h"
static ogs_thread_t *thread;
@@ -35,16 +36,23 @@ int hss_initialize(void)
rv = ogs_app_parse_local_conf(APP_NAME);
if (rv != OGS_OK) return rv;
+ hss_metrics_init();
+
hss_context_init();
hss_event_init();
- rv = hss_context_parse_config();
- if (rv != OGS_OK) return rv;
-
rv = ogs_log_config_domain(
ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
+ rv = ogs_metrics_context_parse_config(APP_NAME);
+ if (rv != OGS_OK) return rv;
+
+ rv = hss_context_parse_config();
+ if (rv != OGS_OK) return rv;
+
+ ogs_metrics_context_open(ogs_metrics_self());
+
rv = ogs_dbi_init(ogs_app()->db_uri);
if (rv != OGS_OK) return rv;
@@ -65,12 +73,14 @@ void hss_terminate(void)
hss_event_term();
ogs_thread_destroy(thread);
+ ogs_metrics_context_close(ogs_metrics_self());
hss_fd_final();
ogs_dbi_final();
hss_context_final();
hss_event_final();
+ hss_metrics_final();
return;
}
diff --git a/src/hss/hss-s6a-path.c b/src/hss/hss-s6a-path.c
index d004a534f3..e078f943a6 100644
--- a/src/hss/hss-s6a-path.c
+++ b/src/hss/hss-s6a-path.c
@@ -49,6 +49,11 @@ struct sess_state {
static void state_cleanup(struct sess_state *sess_data, os0_t sid, void *opaque)
{
+ if (!sess_data) {
+ ogs_error("No session state");
+ return;
+ }
+
ogs_free(sess_data);
}
@@ -58,6 +63,9 @@ static int hss_ogs_diam_s6a_fb_cb(struct msg **msg, struct avp *avp,
{
/* This CB should never be called */
ogs_warn("Unexpected message received!");
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_unknown);
+ )
return ENOTSUP;
}
@@ -96,7 +104,7 @@ static int hss_ogs_diam_s6a_air_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Authentication-Information-Request");
+ ogs_debug("Rx Authentication-Information-Request");
/* Create answer header */
qry = *msg;
@@ -180,7 +188,8 @@ static int hss_ogs_diam_s6a_air_cb( struct msg **msg, struct avp *avp,
ogs_assert(ret == 0);
ret = fd_msg_avp_hdr(avp, &hdr);
ogs_assert(ret == 0);
- memcpy(&visited_plmn_id, hdr->avp_value->os.data, hdr->avp_value->os.len);
+ memcpy(&visited_plmn_id, hdr->avp_value->os.data,
+ ogs_min(hdr->avp_value->os.len, sizeof(visited_plmn_id)));
milenage_generate(opc, auth_info.amf, auth_info.k,
ogs_uint64_to_buffer(auth_info.sqn, OGS_SQN_LEN, sqn), auth_info.rand,
@@ -256,12 +265,14 @@ static int hss_ogs_diam_s6a_air_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Authentication-Information-Answer");
+ ogs_debug("Tx Authentication-Information-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_air);
+ HSS_DIAM_PRIV_STATS_INC(s6a.tx_aia);
+ )
return 0;
@@ -286,6 +297,11 @@ static int hss_ogs_diam_s6a_air_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_air);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_air_error);
+ )
+
return 0;
}
@@ -765,7 +781,7 @@ static int hss_ogs_diam_s6a_ulr_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Update-Location-Request");
+ ogs_debug("Rx Update-Location-Request");
memset(&subscription_data, 0, sizeof(ogs_subscription_data_t));
@@ -910,7 +926,8 @@ static int hss_ogs_diam_s6a_ulr_cb( struct msg **msg, struct avp *avp,
ogs_assert(ret == 0);
ret = fd_msg_avp_hdr(avp, &hdr);
ogs_assert(ret == 0);
- memcpy(&visited_plmn_id, hdr->avp_value->os.data, hdr->avp_value->os.len);
+ memcpy(&visited_plmn_id, hdr->avp_value->os.data,
+ ogs_min(hdr->avp_value->os.len, sizeof(visited_plmn_id)));
ret = fd_msg_search_avp(qry, ogs_diam_s6a_ulr_flags, &avp);
ogs_assert(ret == 0);
@@ -961,12 +978,14 @@ static int hss_ogs_diam_s6a_ulr_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Update-Location-Answer");
+ ogs_debug("Tx Update-Location-Answer");
/* Add this value to the stats */
- ogs_assert( pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert( pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_ulr);
+ HSS_DIAM_PRIV_STATS_INC(s6a.tx_ula);
+ )
ogs_subscription_data_free(&subscription_data);
@@ -1000,6 +1019,11 @@ static int hss_ogs_diam_s6a_ulr_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_ulr);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_ulr_error);
+ )
+
ogs_subscription_data_free(&subscription_data);
if (imsi_bcd)
@@ -1032,7 +1056,7 @@ static int hss_ogs_diam_s6a_pur_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Purge-UE-Request");
+ ogs_debug("Rx Purge-UE-Request");
memset(&subscription_data, 0, sizeof(ogs_subscription_data_t));
@@ -1118,12 +1142,14 @@ static int hss_ogs_diam_s6a_pur_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Purge-UE-Answer");
+ ogs_debug("Tx Purge-UE-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_pur);
+ HSS_DIAM_PRIV_STATS_INC(s6a.tx_pua);
+ )
ogs_subscription_data_free(&subscription_data);
@@ -1150,6 +1176,12 @@ static int hss_ogs_diam_s6a_pur_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_pur);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_pur_error);
+ )
+
ogs_subscription_data_free(&subscription_data);
return 0;
@@ -1167,7 +1199,7 @@ void hss_s6a_send_clr(char *imsi_bcd, char *mme_host, char *mme_realm,
struct sess_state *sess_data = NULL, *svg;
struct session *session = NULL;
- ogs_debug("[HSS] Cancel-Location-Request");
+ ogs_debug("[HSS] Tx Cancel-Location-Request");
/* Create the random value to store with the session */
sess_data = ogs_calloc(1, sizeof(*sess_data));
@@ -1277,9 +1309,10 @@ void hss_s6a_send_clr(char *imsi_bcd, char *mme_host, char *mme_realm,
ogs_assert(ret == 0);
/* Increment the counter */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_sent++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_sent);
+ HSS_DIAM_PRIV_STATS_INC(s6a.tx_clr);
+ )
}
@@ -1292,31 +1325,31 @@ static void hss_s6a_cla_cb(void *data, struct msg **msg)
struct session *session;
int new;
- ogs_debug("[HSS] Cancel-Location-Answer");
+ ogs_debug("[HSS] Rx Cancel-Location-Answer");
/* Search the session, retrieve its data */
ret = fd_msg_sess_get(fd_g_config->cnf_dict, *msg, &session, &new);
if (ret != 0) {
ogs_error("fd_msg_sess_get() failed");
- return;
+ goto out;
}
if (new != 0) {
ogs_error("fd_msg_sess_get() failed");
- return;
+ goto out;
}
ret = fd_sess_state_retrieve(hss_s6a_reg, session, &sess_data);
if (ret != 0) {
ogs_error("fd_sess_state_retrieve() failed");
- return;
+ goto out;
}
if (!sess_data) {
ogs_error("fd_sess_state_retrieve() failed");
- return;
+ goto out;
}
if ((void *)sess_data != data) {
ogs_error("fd_sess_state_retrieve() failed");
- return;
+ goto out;
}
ret = fd_msg_free(*msg);
@@ -1324,12 +1357,22 @@ static void hss_s6a_cla_cb(void *data, struct msg **msg)
*msg = NULL;
state_cleanup(sess_data, NULL, NULL);
+
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_cla);
+ )
return;
+
+out:
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_cla);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_cla_error);
+ )
}
/* HSS Sends Insert Subscriber Data Request to MME */
/* arguments: flags, subscriber data, imsi */
-int hss_s6a_send_idr(char *imsi_bcd, uint32_t idr_flags, uint32_t subdatamask)
+int hss_s6a_send_idr(char *imsi_bcd, uint32_t idr_flags, uint32_t subdata_mask)
{
int ret;
@@ -1341,7 +1384,7 @@ int hss_s6a_send_idr(char *imsi_bcd, uint32_t idr_flags, uint32_t subdatamask)
ogs_subscription_data_t subscription_data;
- ogs_debug("[HSS] Insert-Subscriber-Data-Request");
+ ogs_debug("[HSS] Tx Insert-Subscriber-Data-Request");
memset(&subscription_data, 0, sizeof(ogs_subscription_data_t));
@@ -1360,7 +1403,7 @@ int hss_s6a_send_idr(char *imsi_bcd, uint32_t idr_flags, uint32_t subdatamask)
* Subscriber-Status is SERVICE_GRANTED, since then the field has no
* meaning and won't be sent through the wire, so nothing really changes
* from the PoV of the peer. */
- if (subdatamask == OGS_DIAM_S6A_SUBDATA_OP_DET_BARRING &&
+ if (subdata_mask == OGS_DIAM_S6A_SUBDATA_OP_DET_BARRING &&
subscription_data.subscriber_status == OGS_SUBSCRIBER_STATUS_SERVICE_GRANTED) {
ogs_debug(" [%s] Skip sending IDR: Only Operator-Determined-Barring changed while"
" Subscriber-Status is SERVICE_GRANTED.", imsi_bcd);
@@ -1447,9 +1490,9 @@ int hss_s6a_send_idr(char *imsi_bcd, uint32_t idr_flags, uint32_t subdatamask)
/* Set the Subscription Data */
ret = fd_msg_avp_new(ogs_diam_s6a_subscription_data, 0, &avp);
ogs_assert(ret == 0);
- if (subdatamask) {
+ if (subdata_mask) {
ret = hss_s6a_avp_add_subscription_data(&subscription_data,
- avp, subdatamask);
+ avp, subdata_mask);
if (ret != OGS_OK) {
ogs_error(" [%s] Could not build Subscription-Data.",
imsi_bcd);
@@ -1478,9 +1521,10 @@ int hss_s6a_send_idr(char *imsi_bcd, uint32_t idr_flags, uint32_t subdatamask)
ogs_assert(ret == 0);
/* Increment the counter */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_sent++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_sent);
+ HSS_DIAM_PRIV_STATS_INC(s6a.tx_idr);
+ )
ogs_subscription_data_free(&subscription_data);
@@ -1496,31 +1540,31 @@ static void hss_s6a_ida_cb(void *data, struct msg **msg)
struct session *session;
int new;
- ogs_debug("[HSS] Insert-Subscriber-Data-Answer");
+ ogs_debug("[HSS] Rx Insert-Subscriber-Data-Answer");
/* Search the session, retrieve its data */
ret = fd_msg_sess_get(fd_g_config->cnf_dict, *msg, &session, &new);
if (ret != 0) {
ogs_error("fd_msg_sess_get() failed");
- return;
+ goto out;
}
if (new != 0) {
ogs_error("fd_msg_sess_get() failed");
- return;
+ goto out;
}
ret = fd_sess_state_retrieve(hss_s6a_reg, session, &sess_data);
if (ret != 0) {
ogs_error("fd_sess_state_retrieve() failed");
- return;
+ goto out;
}
if (!sess_data) {
ogs_error("fd_sess_state_retrieve() failed");
- return;
+ goto out;
}
if ((void *)sess_data != data) {
ogs_error("fd_sess_state_retrieve() failed");
- return;
+ goto out;
}
ret = fd_msg_free(*msg);
@@ -1528,6 +1572,17 @@ static void hss_s6a_ida_cb(void *data, struct msg **msg)
*msg = NULL;
state_cleanup(sess_data, NULL, NULL);
+
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_ida);
+ )
+ return;
+
+out:
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_ida);
+ HSS_DIAM_PRIV_STATS_INC(s6a.rx_ida_error);
+ )
return;
}
diff --git a/src/hss/hss-sm.c b/src/hss/hss-sm.c
index 9d3ed63fff..a2a11eedae 100644
--- a/src/hss/hss-sm.c
+++ b/src/hss/hss-sm.c
@@ -32,7 +32,7 @@ void hss_state_initial(ogs_fsm_t *s, hss_event_t *e)
ogs_assert(s);
-#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
+#if MONGOC_CHECK_VERSION(1, 9, 0)
if (hss_self()->use_mongodb_change_stream) {
ogs_dbi_collection_watch_init();
diff --git a/src/hss/hss-swx-path.c b/src/hss/hss-swx-path.c
index 84512010ab..d9490e32a8 100644
--- a/src/hss/hss-swx-path.c
+++ b/src/hss/hss-swx-path.c
@@ -35,6 +35,9 @@ static int hss_ogs_diam_swx_fb_cb(struct msg **msg, struct avp *avp,
{
/* This CB should never be called */
ogs_warn("Unexpected message received!");
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(swx.rx_unknown);
+ )
return ENOTSUP;
}
@@ -80,7 +83,7 @@ static int hss_ogs_diam_swx_mar_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Multimedia-Auth-Request");
+ ogs_debug("Rx Multimedia-Auth-Request");
/* Create answer header */
qry = *msg;
@@ -331,12 +334,14 @@ static int hss_ogs_diam_swx_mar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Multimedia-Auth-Answer");
+ ogs_debug("Tx Multimedia-Auth-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(swx.rx_mar);
+ HSS_DIAM_PRIV_STATS_INC(swx.tx_maa);
+ )
if (authentication_scheme)
ogs_free(authentication_scheme);
@@ -377,6 +382,11 @@ static int hss_ogs_diam_swx_mar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(swx.rx_mar);
+ HSS_DIAM_PRIV_STATS_INC(swx.rx_mar_error);
+ )
+
if (authentication_scheme)
ogs_free(authentication_scheme);
@@ -408,7 +418,7 @@ static int hss_ogs_diam_swx_sar_cb( struct msg **msg, struct avp *avp,
ogs_assert(msg);
- ogs_debug("Server-Assignment-Request");
+ ogs_debug("Rx Server-Assignment-Request");
memset(&subscription_data, 0, sizeof(ogs_subscription_data_t));
@@ -854,12 +864,14 @@ static int hss_ogs_diam_swx_sar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("Server-Assignment-Answer");
+ ogs_debug("Tx Server-Assignment-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ HSS_DIAM_PRIV_STATS_INC(swx.rx_sar);
+ HSS_DIAM_PRIV_STATS_INC(swx.tx_saa);
+ )
ogs_subscription_data_free(&subscription_data);
ogs_free(user_name);
@@ -898,6 +910,11 @@ static int hss_ogs_diam_swx_sar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ HSS_DIAM_PRIV_STATS_INC(swx.rx_sar);
+ HSS_DIAM_PRIV_STATS_INC(swx.rx_sar_error);
+ )
+
ogs_subscription_data_free(&subscription_data);
ogs_free(user_name);
diff --git a/src/hss/meson.build b/src/hss/meson.build
index 83130a4444..378139eea5 100644
--- a/src/hss/meson.build
+++ b/src/hss/meson.build
@@ -22,6 +22,7 @@ libhss_sources = files('''
hss-event.h
hss-timer.h
hss-sm.h
+ metrics.h
hss-init.c
hss-context.c
@@ -34,11 +35,14 @@ libhss_sources = files('''
hss-swx-path.c
hss-fd-path.c
+
+ metrics.c
'''.split())
libhss = static_library('hss',
sources : libhss_sources,
- dependencies : [libapp_dep,
+ dependencies : [libmetrics_dep,
+ libapp_dep,
libcrypt_dep,
libdbi_dep,
libdiameter_s6a_dep,
@@ -48,7 +52,8 @@ libhss = static_library('hss',
libhss_dep = declare_dependency(
link_with : libhss,
- dependencies : [libapp_dep,
+ dependencies : [libmetrics_dep,
+ libapp_dep,
libcrypt_dep,
libdbi_dep,
libdiameter_s6a_dep,
diff --git a/src/hss/metrics.c b/src/hss/metrics.c
new file mode 100644
index 0000000000..63f3c69cd0
--- /dev/null
+++ b/src/hss/metrics.c
@@ -0,0 +1,277 @@
+#include "ogs-app.h"
+#include "hss-context.h"
+
+#include "metrics.h"
+
+typedef struct hss_metrics_spec_def_s {
+ unsigned int type;
+ const char *name;
+ const char *description;
+ int initial_val;
+ unsigned int num_labels;
+ const char **labels;
+} hss_metrics_spec_def_t;
+
+/* Helper generic functions: */
+static int hss_metrics_init_inst(ogs_metrics_inst_t **inst, ogs_metrics_spec_t **specs,
+ unsigned int len, unsigned int num_labels, const char **labels)
+{
+ unsigned int i;
+ for (i = 0; i < len; i++)
+ inst[i] = ogs_metrics_inst_new(specs[i], num_labels, labels);
+ return OGS_OK;
+}
+
+static int hss_metrics_free_inst(ogs_metrics_inst_t **inst,
+ unsigned int len)
+{
+ unsigned int i;
+ for (i = 0; i < len; i++)
+ ogs_metrics_inst_free(inst[i]);
+ memset(inst, 0, sizeof(inst[0]) * len);
+ return OGS_OK;
+}
+
+static int hss_metrics_init_spec(ogs_metrics_context_t *ctx,
+ ogs_metrics_spec_t **dst, hss_metrics_spec_def_t *src, unsigned int len)
+{
+ unsigned int i;
+ for (i = 0; i < len; i++) {
+ dst[i] = ogs_metrics_spec_new(ctx, src[i].type,
+ src[i].name, src[i].description,
+ src[i].initial_val, src[i].num_labels, src[i].labels,
+ NULL);
+ }
+ return OGS_OK;
+}
+
+/* GLOBAL */
+ogs_metrics_spec_t *hss_metrics_spec_global[_HSS_METR_GLOB_MAX];
+ogs_metrics_inst_t *hss_metrics_inst_global[_HSS_METR_GLOB_MAX];
+hss_metrics_spec_def_t hss_metrics_spec_def_global[_HSS_METR_GLOB_MAX] = {
+/* Global Counters: */
+/* Global Counters: Cx */
+[HSS_METR_GLOB_CTR_CX_RX_UNKNOWN] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_unknown",
+ .description = "Received Cx unknown messages",
+},
+[HSS_METR_GLOB_CTR_CX_RX_MAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_mar",
+ .description = "Received Cx MAR messages",
+},
+[HSS_METR_GLOB_CTR_CX_RX_MAR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_mar_error",
+ .description = "Received Cx MAR messages failed",
+},
+[HSS_METR_GLOB_CTR_CX_RX_SAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_sar",
+ .description = "Received Cx SAR messages",
+},
+[HSS_METR_GLOB_CTR_CX_RX_SAR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_sar_error",
+ .description = "Received Cx SAR messages failed",
+},
+[HSS_METR_GLOB_CTR_CX_RX_UAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_uar",
+ .description = "Received Cx UAR messages",
+},
+[HSS_METR_GLOB_CTR_CX_RX_UAR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_uar_error",
+ .description = "Received Cx UAR messages failed",
+},
+[HSS_METR_GLOB_CTR_CX_RX_LIR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_lir",
+ .description = "Transmitted Cx LIR messages",
+},
+[HSS_METR_GLOB_CTR_CX_RX_LIR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_rx_lir_error",
+ .description = "Transmitted Cx LIR messages failed",
+},
+[HSS_METR_GLOB_CTR_CX_TX_MAA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_tx_maa",
+ .description = "Transmitted Cx MAA messages",
+},
+[HSS_METR_GLOB_CTR_CX_TX_SAA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_tx_saa",
+ .description = "Transmitted Cx SAA messages",
+},
+[HSS_METR_GLOB_CTR_CX_TX_UAA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_tx_uaa",
+ .description = "Transmitted Cx UAA messages",
+},
+[HSS_METR_GLOB_CTR_CX_TX_LIA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "cx_tx_lia",
+ .description = "Transmitted Cx LIA messages",
+},
+/* Global Counters: S6a */
+[HSS_METR_GLOB_CTR_S6a_RX_UNKNOWN] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_unknown",
+ .description = "Received S6a unknown messages",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_AIR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_air",
+ .description = "Received S6a AIR messages",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_AIR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_air_error",
+ .description = "Received S6a AIR messages failed",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_CLA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_cla",
+ .description = "Received S6a CLA messages",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_CLA_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_cla_error",
+ .description = "Received S6a CLA messages failed",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_IDA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_ida",
+ .description = "Received S6a IDA messages",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_IDA_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_ida_error",
+ .description = "Received S6a IDA messages failed",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_PUR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_pur",
+ .description = "Transmitted S6a PUR messages",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_PUR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_pur_error",
+ .description = "Transmitted S6a PUR messages failed",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_ULR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_ulr",
+ .description = "Transmitted S6a ULR messages",
+},
+[HSS_METR_GLOB_CTR_S6a_RX_ULR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_rx_ulr_error",
+ .description = "Transmitted S6a ULR messages failed",
+},
+[HSS_METR_GLOB_CTR_S6a_TX_AIA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_tx_aia",
+ .description = "Transmitted S6a AIA messages",
+},
+[HSS_METR_GLOB_CTR_S6a_TX_CLR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_tx_clr",
+ .description = "Transmitted S6a CLR messages",
+},
+[HSS_METR_GLOB_CTR_S6a_TX_IDR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_tx_idr",
+ .description = "Transmitted S6a IDR messages",
+},
+[HSS_METR_GLOB_CTR_S6a_TX_PUA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_tx_pua",
+ .description = "Transmitted S6a PUA messages",
+},
+[HSS_METR_GLOB_CTR_S6a_TX_ULA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "s6a_tx_ula",
+ .description = "Transmitted S6a ULA messages",
+},
+/* Global Counters: SWx */
+[HSS_METR_GLOB_CTR_SWx_RX_UNKNOWN] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "swx_rx_unknown",
+ .description = "Received SWx unknown messages",
+},
+[HSS_METR_GLOB_CTR_SWx_RX_MAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "swx_rx_mar",
+ .description = "Received SWx MAR messages",
+},
+[HSS_METR_GLOB_CTR_SWx_RX_MAR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "swx_rx_mar_error",
+ .description = "Received SWx MAR messages failed",
+},
+[HSS_METR_GLOB_CTR_SWx_RX_SAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "swx_rx_sar",
+ .description = "Received SWx SAR messages",
+},
+[HSS_METR_GLOB_CTR_SWx_RX_SAR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "swx_rx_sar_error",
+ .description = "Received SWx SAR messages failed",
+},
+[HSS_METR_GLOB_CTR_SWx_TX_MAA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "swx_tx_maa",
+ .description = "Transmitted SWx MAA messages",
+},
+[HSS_METR_GLOB_CTR_SWx_TX_SAA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "swx_tx_saa",
+ .description = "Transmitted SWx SAA messages",
+},
+/* Global Gauges: */
+[HSS_METR_GLOB_GAUGE_IMSI] = {
+ .type = OGS_METRICS_METRIC_TYPE_GAUGE,
+ .name = "hss_imsi",
+ .description = "Number of IMSIs attached to HSS",
+},
+[HSS_METR_GLOB_GAUGE_IMPI] = {
+ .type = OGS_METRICS_METRIC_TYPE_GAUGE,
+ .name = "hss_impi",
+ .description = "Number of IMPIs attached to HSS",
+},
+[HSS_METR_GLOB_GAUGE_IMPU] = {
+ .type = OGS_METRICS_METRIC_TYPE_GAUGE,
+ .name = "hss_impu",
+ .description = "Number of IMPUs attached to HSS",
+},
+};
+int hss_metrics_init_inst_global(void)
+{
+ return hss_metrics_init_inst(hss_metrics_inst_global, hss_metrics_spec_global,
+ _HSS_METR_GLOB_MAX, 0, NULL);
+}
+int hss_metrics_free_inst_global(void)
+{
+ return hss_metrics_free_inst(hss_metrics_inst_global, _HSS_METR_GLOB_MAX);
+}
+
+void hss_metrics_init(void)
+{
+ ogs_metrics_context_t *ctx = ogs_metrics_self();
+ ogs_metrics_context_init();
+
+ hss_metrics_init_spec(ctx, hss_metrics_spec_global, hss_metrics_spec_def_global,
+ _HSS_METR_GLOB_MAX);
+
+ hss_metrics_init_inst_global();
+}
+
+void hss_metrics_final(void)
+{
+ ogs_metrics_context_final();
+}
diff --git a/src/hss/metrics.h b/src/hss/metrics.h
new file mode 100644
index 0000000000..e03dcad651
--- /dev/null
+++ b/src/hss/metrics.h
@@ -0,0 +1,77 @@
+#ifndef HSS_METRICS_H
+#define HSS_METRICS_H
+
+#include "ogs-metrics.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GLOBAL */
+typedef enum hss_metric_type_global_s {
+ HSS_METR_GLOB_CTR_CX_RX_UNKNOWN,
+ HSS_METR_GLOB_CTR_CX_RX_MAR,
+ HSS_METR_GLOB_CTR_CX_RX_MAR_ERROR,
+ HSS_METR_GLOB_CTR_CX_RX_SAR,
+ HSS_METR_GLOB_CTR_CX_RX_SAR_ERROR,
+ HSS_METR_GLOB_CTR_CX_RX_UAR,
+ HSS_METR_GLOB_CTR_CX_RX_UAR_ERROR,
+ HSS_METR_GLOB_CTR_CX_RX_LIR,
+ HSS_METR_GLOB_CTR_CX_RX_LIR_ERROR,
+ HSS_METR_GLOB_CTR_CX_TX_MAA,
+ HSS_METR_GLOB_CTR_CX_TX_SAA,
+ HSS_METR_GLOB_CTR_CX_TX_UAA,
+ HSS_METR_GLOB_CTR_CX_TX_LIA,
+
+ HSS_METR_GLOB_CTR_S6a_RX_UNKNOWN,
+ HSS_METR_GLOB_CTR_S6a_RX_AIR,
+ HSS_METR_GLOB_CTR_S6a_RX_AIR_ERROR,
+ HSS_METR_GLOB_CTR_S6a_RX_CLA,
+ HSS_METR_GLOB_CTR_S6a_RX_CLA_ERROR,
+ HSS_METR_GLOB_CTR_S6a_RX_IDA,
+ HSS_METR_GLOB_CTR_S6a_RX_IDA_ERROR,
+ HSS_METR_GLOB_CTR_S6a_RX_PUR,
+ HSS_METR_GLOB_CTR_S6a_RX_PUR_ERROR,
+ HSS_METR_GLOB_CTR_S6a_RX_ULR,
+ HSS_METR_GLOB_CTR_S6a_RX_ULR_ERROR,
+ HSS_METR_GLOB_CTR_S6a_TX_AIA,
+ HSS_METR_GLOB_CTR_S6a_TX_CLR,
+ HSS_METR_GLOB_CTR_S6a_TX_IDR,
+ HSS_METR_GLOB_CTR_S6a_TX_PUA,
+ HSS_METR_GLOB_CTR_S6a_TX_ULA,
+
+ HSS_METR_GLOB_CTR_SWx_RX_UNKNOWN,
+ HSS_METR_GLOB_CTR_SWx_RX_MAR,
+ HSS_METR_GLOB_CTR_SWx_RX_MAR_ERROR,
+ HSS_METR_GLOB_CTR_SWx_RX_SAR,
+ HSS_METR_GLOB_CTR_SWx_RX_SAR_ERROR,
+ HSS_METR_GLOB_CTR_SWx_TX_MAA,
+ HSS_METR_GLOB_CTR_SWx_TX_SAA,
+
+ HSS_METR_GLOB_GAUGE_IMSI,
+ HSS_METR_GLOB_GAUGE_IMPI,
+ HSS_METR_GLOB_GAUGE_IMPU,
+ _HSS_METR_GLOB_MAX,
+} hss_metric_type_global_t;
+extern ogs_metrics_inst_t *hss_metrics_inst_global[_HSS_METR_GLOB_MAX];
+
+int hss_metrics_init_inst_global(void);
+int hss_metrics_free_inst_global(void);
+
+static inline void hss_metrics_inst_global_set(hss_metric_type_global_t t, int val)
+{ ogs_metrics_inst_set(hss_metrics_inst_global[t], val); }
+static inline void hss_metrics_inst_global_add(hss_metric_type_global_t t, int val)
+{ ogs_metrics_inst_add(hss_metrics_inst_global[t], val); }
+static inline void hss_metrics_inst_global_inc(hss_metric_type_global_t t)
+{ ogs_metrics_inst_inc(hss_metrics_inst_global[t]); }
+static inline void hss_metrics_inst_global_dec(hss_metric_type_global_t t)
+{ ogs_metrics_inst_dec(hss_metrics_inst_global[t]); }
+
+void hss_metrics_init(void);
+void hss_metrics_final(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HSS_METRICS_H */
diff --git a/src/main.c b/src/main.c
index 0f993a6a67..05cec90441 100644
--- a/src/main.c
+++ b/src/main.c
@@ -42,6 +42,7 @@ static void show_help(const char *name)
" -D : start as a daemon\n"
" -v : show version number and exit\n"
" -h : show this message and exit\n"
+ " -k : use config section\n"
"\n", name);
}
@@ -104,6 +105,7 @@ int main(int argc, const char *const argv[])
ogs_getopt_t options;
struct {
char *config_file;
+ char *config_section;
char *log_file;
char *log_level;
char *domain_mask;
@@ -116,7 +118,7 @@ int main(int argc, const char *const argv[])
memset(&optarg, 0, sizeof(optarg));
ogs_getopt_init(&options, (char**)argv);
- while ((opt = ogs_getopt(&options, "vhDc:l:e:m:dt")) != -1) {
+ while ((opt = ogs_getopt(&options, "vhDc:l:e:m:dtk:")) != -1) {
switch (opt) {
case 'v':
show_version();
@@ -164,6 +166,9 @@ int main(int argc, const char *const argv[])
case 't':
optarg.enable_trace = true;
break;
+ case 'k':
+ optarg.config_section = options.optarg;
+ break;
case '?':
fprintf(stderr, "%s: %s\n", argv[0], options.errmsg);
show_help(argv[0]);
@@ -196,6 +201,10 @@ int main(int argc, const char *const argv[])
argv_out[i++] = "-m";
argv_out[i++] = optarg.domain_mask;
}
+ if (optarg.config_section) {
+ argv_out[i++] = "-k";
+ argv_out[i++] = optarg.config_section;
+ }
argv_out[i] = NULL;
diff --git a/src/mme/emm-build.c b/src/mme/emm-build.c
index e4fb76c2ce..e9cc8e187a 100644
--- a/src/mme/emm-build.c
+++ b/src/mme/emm-build.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -83,6 +83,11 @@ ogs_pkbuf_t *emm_build_attach_accept(
if (mme_ue->network_access_mode == OGS_NETWORK_ACCESS_MODE_ONLY_PACKET) {
/* permit only EPS_ATTACH */
eps_attach_result->result = OGS_NAS_ATTACH_TYPE_EPS_ATTACH;
+ if (ogs_global_conf()->parameter.fake_csfb == true)
+ eps_attach_result->result =
+ OGS_NAS_ATTACH_TYPE_COMBINED_EPS_IMSI_ATTACH;
+ else
+ eps_attach_result->result = OGS_NAS_ATTACH_TYPE_EPS_ATTACH;
} else {
eps_attach_result->result = mme_ue->nas_eps.attach.value;
}
@@ -163,7 +168,7 @@ ogs_pkbuf_t *emm_build_attach_accept(
attach_accept->esm_message_container.buffer = esmbuf->data;
attach_accept->esm_message_container.length = esmbuf->len;
- if (mme_ue->next.m_tmsi) {
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue)) {
attach_accept->presencemask |= OGS_NAS_EPS_ATTACH_ACCEPT_GUTI_PRESENT;
ogs_debug(" [%s] GUTI[G:%d,C:%d,M_TMSI:0x%x]",
@@ -207,9 +212,9 @@ ogs_pkbuf_t *emm_build_attach_accept(
eps_network_feature_support->ims_voice_over_ps_session_in_s1_mode = 1;
eps_network_feature_support->extended_protocol_configuration_options = 1;
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(mme_ue->csmap);
- ogs_assert(mme_ue->p_tmsi);
+ ogs_assert(mme_ue->next.p_tmsi);
attach_accept->presencemask |=
OGS_NAS_EPS_ATTACH_ACCEPT_LOCATION_AREA_IDENTIFICATION_PRESENT;
@@ -224,7 +229,7 @@ ogs_pkbuf_t *emm_build_attach_accept(
tmsi->spare = 0xf;
tmsi->odd_even = 0;
tmsi->type = OGS_NAS_MOBILE_IDENTITY_TMSI;
- tmsi->tmsi = mme_ue->p_tmsi;
+ tmsi->tmsi = mme_ue->next.p_tmsi;
ogs_debug(" P-TMSI: 0x%08x", tmsi->tmsi);
}
@@ -345,9 +350,6 @@ ogs_pkbuf_t *emm_build_security_mode_command(mme_ue_t *mme_ue)
message.emm.h.protocol_discriminator = OGS_NAS_PROTOCOL_DISCRIMINATOR_EMM;
message.emm.h.message_type = OGS_NAS_EPS_SECURITY_MODE_COMMAND;
- mme_ue->selected_int_algorithm = mme_selected_int_algorithm(mme_ue);
- mme_ue->selected_enc_algorithm = mme_selected_enc_algorithm(mme_ue);
-
selected_nas_security_algorithms->type_of_integrity_protection_algorithm =
mme_ue->selected_int_algorithm;
selected_nas_security_algorithms->type_of_ciphering_algorithm =
@@ -443,12 +445,8 @@ ogs_pkbuf_t *emm_build_security_mode_command(mme_ue_t *mme_ue)
sizeof(mme_ue->ue_additional_security_capability));
}
- if (mme_ue->selected_int_algorithm == OGS_NAS_SECURITY_ALGORITHMS_EIA0) {
- ogs_error("Encrypt[0x%x] can be skipped with EEA0, "
- "but Integrity[0x%x] cannot be bypassed with EIA0",
- mme_ue->selected_enc_algorithm, mme_ue->selected_int_algorithm);
- return NULL;
- }
+ ogs_assert(mme_ue->selected_int_algorithm !=
+ OGS_NAS_SECURITY_ALGORITHMS_EIA0);
ogs_kdf_nas_eps(OGS_KDF_NAS_INT_ALG, mme_ue->selected_int_algorithm,
mme_ue->kasme, mme_ue->knas_int);
@@ -501,6 +499,10 @@ ogs_pkbuf_t *emm_build_tau_accept(mme_ue_t *mme_ue)
ogs_nas_eps_tracking_area_update_accept_t *tau_accept =
&message.emm.tracking_area_update_accept;
ogs_nas_eps_mobile_identity_t *nas_guti = &tau_accept->guti;
+ ogs_nas_location_area_identification_t *lai =
+ &tau_accept->location_area_identification;
+ ogs_nas_mobile_identity_t *ms_identity = &tau_accept->ms_identity;
+ ogs_nas_mobile_identity_tmsi_t *tmsi = &ms_identity->tmsi;;
ogs_nas_gprs_timer_t *t3412_value = &tau_accept->t3412_value;
ogs_nas_gprs_timer_t *t3402_value = &tau_accept->t3402_value;
ogs_nas_gprs_timer_t *t3423_value = &tau_accept->t3423_value;
@@ -537,7 +539,7 @@ ogs_pkbuf_t *emm_build_tau_accept(mme_ue_t *mme_ue)
OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_T3412_VALUE_PRESENT ;
}
- if (mme_ue->next.m_tmsi) {
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue)) {
tau_accept->presencemask |=
OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_GUTI_PRESENT;
@@ -602,6 +604,27 @@ ogs_pkbuf_t *emm_build_tau_accept(mme_ue_t *mme_ue)
sess = mme_sess_next(sess);
}
+ /* Location Area Identification & MS Identity */
+ if (MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ ogs_assert(mme_ue->csmap);
+ ogs_assert(mme_ue->next.p_tmsi);
+
+ tau_accept->presencemask |= OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_LOCATION_AREA_IDENTIFICATION_PRESENT;
+ lai->nas_plmn_id = mme_ue->csmap->lai.nas_plmn_id;
+ lai->lac = mme_ue->csmap->lai.lac;
+ ogs_debug(" LAI[PLMN_ID:%06x,LAC:%d]",
+ ogs_plmn_id_hexdump(&lai->nas_plmn_id), lai->lac);
+
+ tau_accept->presencemask |=
+ OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT_MS_IDENTITY_PRESENT;
+ ms_identity->length = 5;
+ tmsi->spare = 0xf;
+ tmsi->odd_even = 0;
+ tmsi->type = OGS_NAS_MOBILE_IDENTITY_TMSI;
+ tmsi->tmsi = mme_ue->next.p_tmsi;
+ ogs_debug(" P-TMSI: 0x%08x", tmsi->tmsi);
+ }
+
/* Set T3402 */
if (mme_self()->time.t3402.value) {
rv = ogs_nas_gprs_timer_from_sec(
diff --git a/src/mme/emm-handler.c b/src/mme/emm-handler.c
index 82059c8146..de8e8be5c6 100644
--- a/src/mme/emm-handler.c
+++ b/src/mme/emm-handler.c
@@ -34,7 +34,7 @@
static uint8_t emm_cause_from_access_control(mme_ue_t *mme_ue);
-int emm_handle_attach_request(mme_ue_t *mme_ue,
+int emm_handle_attach_request(enb_ue_t *enb_ue, mme_ue_t *mme_ue,
ogs_nas_eps_attach_request_t *attach_request, ogs_pkbuf_t *pkbuf)
{
int r;
@@ -44,7 +44,6 @@ int emm_handle_attach_request(mme_ue_t *mme_ue,
ogs_nas_eps_mobile_identity_guti_t *eps_mobile_identity_guti = NULL;
ogs_nas_eps_guti_t nas_guti;
- enb_ue_t *enb_ue = NULL;
ogs_nas_eps_attach_type_t *eps_attach_type =
&attach_request->eps_attach_type;
ogs_nas_eps_mobile_identity_t *eps_mobile_identity =
@@ -54,16 +53,13 @@ int emm_handle_attach_request(mme_ue_t *mme_ue,
char imsi_bcd[OGS_MAX_IMSI_BCD_LEN+1];
- MME_UE_LIST_CHECK;
-
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
ogs_assert(enb_ue);
ogs_assert(esm_message_container);
if (!esm_message_container->length) {
ogs_error("No ESM Message Container");
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -143,7 +139,7 @@ int emm_handle_attach_request(mme_ue_t *mme_ue,
/* Send Attach Reject */
ogs_warn("Cannot find Served TAI[PLMN_ID:%06x,TAC:%d]",
ogs_plmn_id_hexdump(&mme_ue->tai.plmn_id), mme_ue->tai.tac);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_TRACKING_AREA_NOT_ALLOWED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -187,7 +183,7 @@ int emm_handle_attach_request(mme_ue_t *mme_ue,
"but Integrity[0x%x] cannot be bypassed with EIA0",
mme_selected_enc_algorithm(mme_ue),
mme_selected_int_algorithm(mme_ue));
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_SECURITY_CAPABILITIES_MISMATCH,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -210,7 +206,7 @@ int emm_handle_attach_request(mme_ue_t *mme_ue,
emm_cause = emm_cause_from_access_control(mme_ue);
if (emm_cause != OGS_NAS_EMM_CAUSE_REQUEST_ACCEPTED) {
ogs_error("Rejected by PLMN-ID access control");
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
emm_cause, OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -252,7 +248,8 @@ int emm_handle_attach_request(mme_ue_t *mme_ue,
}
int emm_handle_attach_complete(
- mme_ue_t *mme_ue, ogs_nas_eps_attach_complete_t *attach_complete)
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_attach_complete_t *attach_complete)
{
int r, rv;
ogs_pkbuf_t *emmbuf = NULL;
@@ -270,9 +267,9 @@ int emm_handle_attach_complete(
struct tm gmt, local;
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
ogs_info(" IMSI[%s]", mme_ue->imsi_bcd);
- MME_UE_LIST_CHECK;
ogs_gettimeofday(&tv);
ogs_gmtime(tv.tv_sec, &gmt);
@@ -358,7 +355,7 @@ int emm_handle_attach_complete(
return OGS_ERROR;
}
- r = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ r = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -369,17 +366,16 @@ int emm_handle_attach_complete(
}
int emm_handle_identity_response(
- mme_ue_t *mme_ue, ogs_nas_eps_identity_response_t *identity_response)
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_identity_response_t *identity_response)
{
int r;
uint8_t emm_cause;
ogs_nas_mobile_identity_t *mobile_identity = NULL;
- enb_ue_t *enb_ue = NULL;
ogs_assert(identity_response);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
ogs_assert(enb_ue);
mobile_identity = &identity_response->mobile_identity;
@@ -391,7 +387,7 @@ int emm_handle_identity_response(
ogs_error("mobile_identity length (%d != %d)",
(int)sizeof(ogs_nas_mobile_identity_imsi_t),
mobile_identity->length);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -404,7 +400,7 @@ int emm_handle_identity_response(
emm_cause = emm_cause_from_access_control(mme_ue);
if (emm_cause != OGS_NAS_EMM_CAUSE_REQUEST_ACCEPTED) {
ogs_error("Rejected by PLMN-ID access control");
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
emm_cause, OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -417,7 +413,7 @@ int emm_handle_identity_response(
if (mme_ue->imsi_len != OGS_MAX_IMSI_LEN) {
ogs_error("Invalid IMSI LEN[%d]", mme_ue->imsi_len);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -434,12 +430,14 @@ int emm_handle_identity_response(
}
int emm_handle_detach_request(
- mme_ue_t *mme_ue, ogs_nas_eps_detach_request_from_ue_t *detach_request)
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_detach_request_from_ue_t *detach_request)
{
ogs_nas_detach_type_t *detach_type = NULL;
ogs_assert(detach_request);
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
detach_type = &detach_request->detach_type;
@@ -508,12 +506,14 @@ int emm_handle_detach_request(
}
int emm_handle_service_request(
- mme_ue_t *mme_ue, ogs_nas_eps_service_request_t *service_request)
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_service_request_t *service_request)
{
ogs_nas_ksi_and_sequence_number_t *ksi_and_sequence_number =
&service_request->ksi_and_sequence_number;
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
/* Set EPS Service */
mme_ue->nas_eps.type = MME_EPS_TYPE_SERVICE_REQUEST;
@@ -579,8 +579,10 @@ bool emm_tau_request_ue_comes_from_gb_or_iu(const ogs_nas_eps_tracking_area_upda
}
}
-int emm_handle_tau_request(mme_ue_t *mme_ue,
- ogs_nas_eps_tracking_area_update_request_t *tau_request, ogs_pkbuf_t *pkbuf)
+int emm_handle_tau_request(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_tracking_area_update_request_t *tau_request,
+ ogs_pkbuf_t *pkbuf)
{
int r;
int served_tai_index = 0;
@@ -592,10 +594,8 @@ int emm_handle_tau_request(mme_ue_t *mme_ue,
&tau_request->eps_update_type;
ogs_nas_eps_mobile_identity_t *eps_mobile_identity =
&tau_request->old_guti;
- enb_ue_t *enb_ue = NULL;
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
ogs_assert(enb_ue);
ogs_assert(pkbuf);
@@ -656,8 +656,8 @@ int emm_handle_tau_request(mme_ue_t *mme_ue,
/* Send TAU reject */
ogs_warn("Cannot find Served TAI[PLMN_ID:%06x,TAC:%d]",
ogs_plmn_id_hexdump(&mme_ue->tai.plmn_id), mme_ue->tai.tac);
- r = nas_eps_send_tau_reject(
- mme_ue, OGS_NAS_EMM_CAUSE_TRACKING_AREA_NOT_ALLOWED);
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
+ OGS_NAS_EMM_CAUSE_TRACKING_AREA_NOT_ALLOWED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return OGS_ERROR;
@@ -736,7 +736,8 @@ int emm_handle_tau_request(mme_ue_t *mme_ue,
return OGS_OK;
}
-int emm_handle_extended_service_request(mme_ue_t *mme_ue,
+int emm_handle_extended_service_request(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
ogs_nas_eps_extended_service_request_t *extended_service_request)
{
int r;
@@ -747,10 +748,8 @@ int emm_handle_extended_service_request(mme_ue_t *mme_ue,
ogs_nas_mobile_identity_t *mobile_identity =
&extended_service_request->m_tmsi;
ogs_nas_mobile_identity_tmsi_t *mobile_identity_tmsi = NULL;
- enb_ue_t *enb_ue = NULL;
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
ogs_assert(enb_ue);
/* Set Service Type */
@@ -793,8 +792,8 @@ int emm_handle_extended_service_request(mme_ue_t *mme_ue,
/* Send TAU reject */
ogs_warn("Cannot find Served TAI[PLMN_ID:%06x,TAC:%d]",
ogs_plmn_id_hexdump(&mme_ue->tai.plmn_id), mme_ue->tai.tac);
- r = nas_eps_send_tau_reject(
- mme_ue, OGS_NAS_EMM_CAUSE_TRACKING_AREA_NOT_ALLOWED);
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
+ OGS_NAS_EMM_CAUSE_TRACKING_AREA_NOT_ALLOWED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
return OGS_ERROR;
@@ -817,13 +816,14 @@ int emm_handle_extended_service_request(mme_ue_t *mme_ue,
return OGS_OK;
}
-int emm_handle_security_mode_complete(mme_ue_t *mme_ue,
- ogs_nas_eps_security_mode_complete_t *security_mode_complete)
+int emm_handle_security_mode_complete(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_security_mode_complete_t *security_mode_complete)
{
ogs_nas_mobile_identity_t *imeisv = &security_mode_complete->imeisv;
ogs_assert(mme_ue);
- MME_UE_LIST_CHECK;
+ ogs_assert(enb_ue);
if (security_mode_complete->presencemask &
OGS_NAS_EPS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT) {
diff --git a/src/mme/emm-handler.h b/src/mme/emm-handler.h
index 3bc1701a91..0c5af4d07c 100644
--- a/src/mme/emm-handler.h
+++ b/src/mme/emm-handler.h
@@ -26,32 +26,40 @@
extern "C" {
#endif
-int emm_handle_attach_request(mme_ue_t *mme_ue,
+int emm_handle_attach_request(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
ogs_nas_eps_attach_request_t *attach_request, ogs_pkbuf_t *pkbuf);
int emm_handle_attach_complete(
- mme_ue_t *mme_ue, ogs_nas_eps_attach_complete_t *attach_complete);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_attach_complete_t *attach_complete);
int emm_handle_identity_response(
- mme_ue_t *mme_ue, ogs_nas_eps_identity_response_t *identity_response);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_identity_response_t *identity_response);
int emm_handle_detach_request(
- mme_ue_t *mme_ue, ogs_nas_eps_detach_request_from_ue_t *detach_request);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_detach_request_from_ue_t *detach_request);
int emm_handle_service_request(
- mme_ue_t *mme_ue, ogs_nas_eps_service_request_t *service_request);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_service_request_t *service_request);
-int emm_handle_tau_request(mme_ue_t *mme_ue,
- ogs_nas_eps_tracking_area_update_request_t *tau_request,
- ogs_pkbuf_t *pkbuf);
+int emm_handle_tau_request(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_tracking_area_update_request_t *tau_request,
+ ogs_pkbuf_t *pkbuf);
-int emm_handle_extended_service_request(mme_ue_t *mme_ue,
- ogs_nas_eps_extended_service_request_t *extended_service_request);
+int emm_handle_extended_service_request(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_extended_service_request_t *extended_service_request);
-int emm_handle_security_mode_complete(mme_ue_t *mme_ue,
- ogs_nas_eps_security_mode_complete_t *security_mode_complete);
+int emm_handle_security_mode_complete(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_eps_security_mode_complete_t *security_mode_complete);
bool emm_tau_request_ue_comes_from_gb_or_iu(
- const ogs_nas_eps_tracking_area_update_request_t *tau_request);
+ const ogs_nas_eps_tracking_area_update_request_t *tau_request);
#ifdef __cplusplus
}
diff --git a/src/mme/emm-sm.c b/src/mme/emm-sm.c
index 27b59681a1..20643b71d0 100644
--- a/src/mme/emm-sm.c
+++ b/src/mme/emm-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -72,7 +72,7 @@ void emm_state_de_registered(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -123,7 +123,7 @@ void emm_state_registered(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -260,10 +260,14 @@ void emm_state_registered(ogs_fsm_t *s, mme_event_t *e)
* the network, the network shall implicitly detach the UE.
*/
mme_ue->detach_type = MME_DETACH_TYPE_MME_IMPLICIT;
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (enb_ue)
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
}
OGS_FSM_TRAN(s, &emm_state_de_registered);
@@ -291,12 +295,13 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
ogs_nas_eps_message_t *message = NULL;
ogs_nas_rai_t rai;
ogs_nas_security_header_type_t h;
+ ogs_nas_p_tmsi_signature_t *ptmsi_sig = NULL;
ogs_assert(e);
mme_sm_debug(e);
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -304,8 +309,18 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
message = e->nas_message;
ogs_assert(message);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
- ogs_assert(enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_fatal("No S1 Context IMSI[%s] NAS-Type[%d] "
+ "ENB-UE-ID[%d:%d][%p:%p]",
+ mme_ue->imsi_bcd, message->emm.h.message_type,
+ e->enb_ue_id, mme_ue->enb_ue_id,
+ enb_ue_find_by_id(e->enb_ue_id),
+ enb_ue_find_by_id(mme_ue->enb_ue_id));
+ ogs_assert(e->pkbuf);
+ ogs_log_hexdump(OGS_LOG_FATAL, e->pkbuf->data, e->pkbuf->len);
+ ogs_assert_if_reached();
+ }
h.type = e->nas_type;
@@ -318,7 +333,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (state != EMM_COMMON_STATE_REGISTERED) {
ogs_info("Service request : Not registered[%s]",
mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -327,7 +342,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
}
rv = emm_handle_service_request(
- mme_ue, &message->emm.service_request);
+ enb_ue, mme_ue, &message->emm.service_request);
if (rv != OGS_OK) {
ogs_error("emm_handle_service_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -336,7 +351,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!MME_UE_HAVE_IMSI(mme_ue)) {
ogs_info("Service request : Unknown UE");
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -346,7 +361,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
ogs_error("No Security Context : IMSI[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -356,7 +371,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!SESSION_CONTEXT_IS_AVAILABLE(mme_ue)) {
ogs_error("No Session Context : IMSI[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -366,7 +381,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!ACTIVE_EPS_BEARERS_IS_AVAIABLE(mme_ue)) {
ogs_error("No active EPS bearers : IMSI[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_NO_EPS_BEARER_CONTEXT_ACTIVATED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -390,10 +405,20 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
switch (message->emm.h.message_type) {
case OGS_NAS_EPS_IDENTITY_RESPONSE:
+ if (mme_ue->nas_eps.type == 0) {
+ ogs_warn("No Received NAS message");
+ r = s1ap_send_error_indication2(mme_ue,
+ S1AP_Cause_PR_protocol, S1AP_CauseProtocol_semantic_error);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ OGS_FSM_TRAN(s, emm_state_exception);
+ break;
+ }
+
ogs_info("Identity response");
CLEAR_MME_UE_TIMER(mme_ue->t3470);
- rv = emm_handle_identity_response(mme_ue,
+ rv = emm_handle_identity_response(enb_ue, mme_ue,
&message->emm.identity_response);
if (rv != OGS_OK) {
ogs_error("emm_handle_identity_response() failed");
@@ -407,13 +432,13 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
break;
}
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_SEND_AUTHENTICATION_REQUEST);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR) ==
xact_count) {
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
}
OGS_FSM_TRAN(s, &emm_state_authentication);
@@ -422,7 +447,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
case OGS_NAS_EPS_ATTACH_REQUEST:
ogs_info("[%s] Attach request", mme_ue->imsi_bcd);
rv = emm_handle_attach_request(
- mme_ue, &message->emm.attach_request, e->pkbuf);
+ enb_ue, mme_ue, &message->emm.attach_request, e->pkbuf);
if (rv != OGS_OK) {
ogs_error("emm_handle_attach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -445,7 +470,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
*/
CLEAR_S1_CONTEXT(mme_ue);
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_HANDLE_PDN_CONNECTIVITY_REQUEST);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
@@ -455,7 +480,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
&mme_ue->pdn_connectivity_request);
if (rv != OGS_OK) {
ogs_error("nas_eps_send_emm_to_esm() failed");
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -468,13 +493,13 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
OGS_FSM_TRAN(s, &emm_state_initial_context_setup);
} else {
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_SEND_AUTHENTICATION_REQUEST);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR) ==
xact_count) {
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
}
OGS_FSM_TRAN(s, &emm_state_authentication);
@@ -484,7 +509,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST:
ogs_info("[%s] Tracking area update request", mme_ue->imsi_bcd);
- rv = emm_handle_tau_request(mme_ue,
+ rv = emm_handle_tau_request(enb_ue, mme_ue,
&message->emm.tracking_area_update_request, e->pkbuf);
if (rv != OGS_OK) {
ogs_error("emm_handle_tau_request() failed");
@@ -494,7 +519,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (emm_tau_request_ue_comes_from_gb_or_iu(&message->emm.tracking_area_update_request)) {
ogs_info("TAU request : UE comes from SGSN, attempt retrieving context");
- guti_to_rai_ptmsi(&mme_ue->next.guti, &rai, NULL, NULL);
+ guti_to_rai_ptmsi(&mme_ue->next.guti, &rai, NULL);
sgsn = mme_sgsn_find_by_routing_address(&rai, 0xffff);
if (!sgsn) {
ogs_plmn_id_t plmn_id;
@@ -502,19 +527,23 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
ogs_warn("No SGSN route matching RAI[MCC:%u MNC:%u LAC:%u RAC:%u]",
ogs_plmn_id_mcc(&plmn_id), ogs_plmn_id_mnc(&plmn_id),
rai.lai.lac, rai.rac);
- r = nas_eps_send_tau_reject(mme_ue,
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
OGS_FSM_TRAN(s, &emm_state_exception);
break;
}
- mme_gtp1_send_sgsn_context_request(sgsn, mme_ue);
+ if (message->emm.tracking_area_update_request.presencemask & OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_OLD_P_TMSI_SIGNATURE_TYPE)
+ ptmsi_sig = &message->emm.tracking_area_update_request.old_p_tmsi_signature;
+ mme_gtp1_send_sgsn_context_request(sgsn, mme_ue, ptmsi_sig);
/* FIXME: use a specific FSM state here to state we are waiting for resolution from Gn? */
break;
}
if (!MME_UE_HAVE_IMSI(mme_ue)) {
ogs_info("TAU request : Unknown UE");
- r = nas_eps_send_tau_reject(mme_ue,
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -524,7 +553,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!SESSION_CONTEXT_IS_AVAILABLE(mme_ue)) {
ogs_warn("No PDN Connection : UE[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_tau_reject(mme_ue,
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -534,7 +563,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!ACTIVE_EPS_BEARERS_IS_AVAIABLE(mme_ue)) {
ogs_warn("No active EPS bearers : IMSI[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_tau_reject(mme_ue,
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_NO_EPS_BEARER_CONTEXT_ACTIVATED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -543,7 +572,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
}
if (!h.integrity_protected || !SECURITY_CONTEXT_IS_VALID(mme_ue)) {
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
OGS_FSM_TRAN(&mme_ue->sm, &emm_state_authentication);
break;
}
@@ -620,9 +649,36 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
* 10. UplinkNASTransport + Tracking area update complete (Target)
*/
- if (e->s1ap_code == S1AP_ProcedureCode_id_initialUEMessage) {
- ogs_debug(" Iniital UE Message");
- if (mme_ue->nas_eps.update.active_flag) {
+ /* Update CSMAP from Tracking area update request */
+ mme_ue->csmap = mme_csmap_find_by_tai(&mme_ue->tai);
+ if (mme_ue->csmap &&
+ mme_ue->network_access_mode ==
+ OGS_NETWORK_ACCESS_MODE_PACKET_AND_CIRCUIT &&
+ (mme_ue->nas_eps.update.value ==
+ OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING ||
+ mme_ue->nas_eps.update.value ==
+ OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH)) {
+
+ if (e->s1ap_code == S1AP_ProcedureCode_id_initialUEMessage)
+ mme_ue->tracking_area_update_request_type =
+ MME_TAU_TYPE_INITIAL_UE_MESSAGE;
+ else if (e->s1ap_code ==
+ S1AP_ProcedureCode_id_uplinkNASTransport)
+ mme_ue->tracking_area_update_request_type =
+ MME_TAU_TYPE_UPLINK_NAS_TRANPORT;
+ else {
+ ogs_error("Invalid Procedure Code[%d]", (int)e->s1ap_code);
+ break;
+ }
+
+ ogs_assert(OGS_OK ==
+ sgsap_send_location_update_request(mme_ue));
+
+ } else {
+
+ if (e->s1ap_code == S1AP_ProcedureCode_id_initialUEMessage) {
+ ogs_debug(" Initial UE Message");
+ if (mme_ue->nas_eps.update.active_flag) {
/*
* TS33.401
@@ -635,36 +691,52 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
* UP data or pending downlink signalling, radio bearers will be established
* as part of the TAU procedure and a KeNB derivation is necessary.
*/
- ogs_kdf_kenb(mme_ue->kasme, mme_ue->ul_count.i32,
- mme_ue->kenb);
- ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
- mme_ue->nhcc = 1;
+ ogs_kdf_kenb(mme_ue->kasme, mme_ue->ul_count.i32,
+ mme_ue->kenb);
+ ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
+ mme_ue->nhcc = 1;
- r = nas_eps_send_tau_accept(mme_ue,
- S1AP_ProcedureCode_id_InitialContextSetup);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- } else {
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_InitialContextSetup);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else {
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_downlinkNASTransport);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ }
+ } else if (e->s1ap_code ==
+ S1AP_ProcedureCode_id_uplinkNASTransport) {
+ ogs_debug(" Uplink NAS Transport");
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+ } else {
+ ogs_error("Invalid Procedure Code[%d]", (int)e->s1ap_code);
+ break;
}
- } else if (e->s1ap_code ==
- S1AP_ProcedureCode_id_uplinkNASTransport) {
- ogs_debug(" Uplink NAS Transport");
- r = nas_eps_send_tau_accept(mme_ue,
- S1AP_ProcedureCode_id_downlinkNASTransport);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- } else {
- ogs_fatal("Invalid Procedure Code[%d]", (int)e->s1ap_code);
- }
- if (!mme_ue->nas_eps.update.active_flag)
- mme_send_release_access_bearer_or_ue_context_release(enb_ue);
+ /*
+ * When active_flag is 0, check if the P-TMSI has been updated.
+ * If the P-TMSI has changed, wait to receive the TAU Complete message
+ * from the UE before sending the UEContextReleaseCommand.
+ *
+ * This ensures that the UE has acknowledged the new P-TMSI,
+ * allowing the TAU procedure to complete successfully
+ * and maintaining synchronization between the UE and the network.
+ */
+ if (!mme_ue->nas_eps.update.active_flag &&
+ !MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ enb_ue->relcause.group = S1AP_Cause_PR_nas;
+ enb_ue->relcause.cause = S1AP_CauseNas_normal_release;
+ mme_send_release_access_bearer_or_ue_context_release(
+ enb_ue);
+ }
+ }
- if (mme_ue->next.m_tmsi) {
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue)) {
ogs_fatal("MME does not create new GUTI");
ogs_assert_if_reached();
OGS_FSM_TRAN(s, &emm_state_initial_context_setup);
@@ -677,7 +749,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
ogs_info("[%s] Extended service request", mme_ue->imsi_bcd);
rv = emm_handle_extended_service_request(
- mme_ue, &message->emm.extended_service_request);
+ enb_ue, mme_ue, &message->emm.extended_service_request);
if (rv != OGS_OK) {
ogs_error("emm_handle_extended_service_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -686,7 +758,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!MME_UE_HAVE_IMSI(mme_ue)) {
ogs_warn("Extended Service request : Unknown UE");
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -696,7 +768,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!SESSION_CONTEXT_IS_AVAILABLE(mme_ue)) {
ogs_warn("No PDN Connection : UE[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -706,7 +778,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
ogs_error("No Security Context : IMSI[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -724,12 +796,14 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (e->s1ap_code == S1AP_ProcedureCode_id_initialUEMessage) {
ogs_debug(" Initial UE Message");
- if (!MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (!MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_warn("No P-TMSI : UE[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+ enb_ue->relcause.group = S1AP_Cause_PR_nas;
+ enb_ue->relcause.cause = S1AP_CauseNas_normal_release;
mme_send_release_access_bearer_or_ue_context_release(
enb_ue);
break;
@@ -753,7 +827,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
} else {
ogs_warn(" Unknown CSFB Service Type[%d]",
mme_ue->nas_eps.service.value);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -769,9 +843,9 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
S1AP_ProcedureCode_id_uplinkNASTransport) {
ogs_debug(" Uplink NAS Transport");
- if (!MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (!MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_warn("No P-TMSI : UE[%s]", mme_ue->imsi_bcd);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -796,7 +870,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
} else {
ogs_warn(" Unknown CSFB Service Type[%d]",
mme_ue->nas_eps.service.value);
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -814,15 +888,13 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
case OGS_NAS_EPS_EMM_STATUS:
ogs_warn("EMM STATUS : IMSI[%s] Cause[%d]",
- mme_ue->imsi_bcd,
- message->emm.emm_status.emm_cause);
- OGS_FSM_TRAN(s, &emm_state_exception);
+ mme_ue->imsi_bcd, message->emm.emm_status.emm_cause);
break;
case OGS_NAS_EPS_DETACH_REQUEST:
ogs_info("[%s] Detach request", mme_ue->imsi_bcd);
rv = emm_handle_detach_request(
- mme_ue, &message->emm.detach_request_from_ue);
+ enb_ue, mme_ue, &message->emm.detach_request_from_ue);
if (rv != OGS_OK) {
ogs_error("emm_handle_detach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -832,7 +904,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!MME_UE_HAVE_IMSI(mme_ue)) {
ogs_warn("Detach request : Unknown UE");
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -841,7 +913,7 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
ogs_error("No Security Context : IMSI[%s]", mme_ue->imsi_bcd);
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -854,10 +926,10 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
*/
CLEAR_S1_CONTEXT(mme_ue);
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
}
OGS_FSM_TRAN(s, &emm_state_de_registered);
@@ -887,17 +959,22 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
} else {
S1AP_MME_UE_S1AP_ID_t MME_UE_S1AP_ID;
S1AP_ENB_UE_S1AP_ID_t ENB_UE_S1AP_ID;
+ mme_enb_t *enb = NULL;
ogs_warn("No connection of MSC/VLR");
MME_UE_S1AP_ID = enb_ue->mme_ue_s1ap_id;
ENB_UE_S1AP_ID = enb_ue->enb_ue_s1ap_id;
- r = s1ap_send_error_indication(enb_ue->enb,
- &MME_UE_S1AP_ID, &ENB_UE_S1AP_ID,
- S1AP_Cause_PR_transport,
- S1AP_CauseTransport_transport_resource_unavailable);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
+ if (enb) {
+ r = s1ap_send_error_indication(enb,
+ &MME_UE_S1AP_ID, &ENB_UE_S1AP_ID,
+ S1AP_Cause_PR_transport,
+ S1AP_CauseTransport_transport_resource_unavailable);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else
+ ogs_error("eNB has already been removed");
}
break;
@@ -907,8 +984,62 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_COMPLETE:
- ogs_error("[%s] Tracking area update complete in INVALID-STATE",
- mme_ue->imsi_bcd);
+ ogs_info("[%s] Tracking area update complete", mme_ue->imsi_bcd);
+
+ /*
+ * TS24.301
+ * Section 4.4.4.3
+ * Integrity checking of NAS signalling messages in the MME:
+ *
+ * Once the secure exchange of NAS messages has been established
+ * for the NAS signalling connection, the receiving EMM or ESM entity
+ * in the MME shall not process any NAS signalling messages
+ * unless they have been successfully integrity checked by the NAS.
+ * If any NAS signalling message, having not successfully passed
+ * the integrity check, is received, then the NAS in the MME shall
+ * discard that message. If any NAS signalling message is received,
+ * as not integrity protected even though the secure exchange
+ * of NAS messages has been established, then the NAS shall discard
+ * this message.
+ */
+ h.type = e->nas_type;
+ if (h.integrity_protected == 0) {
+ ogs_error("[%s] No Integrity Protected", mme_ue->imsi_bcd);
+ break;
+ }
+
+ if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
+ ogs_error("[%s] No Security Context", mme_ue->imsi_bcd);
+ break;
+ }
+
+ /*
+ * If the OLD ENB_UE is being maintained in MME-UE Context,
+ * it deletes the S1 Context after exchanging
+ * the UEContextReleaseCommand/Complete with the eNB
+ */
+ CLEAR_S1_CONTEXT(mme_ue);
+
+ CLEAR_MME_UE_TIMER(mme_ue->t3450);
+
+ /* Confirm GUTI */
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue))
+ mme_ue_confirm_guti(mme_ue);
+
+ /* Confirm P-TMSI */
+ if (MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ mme_ue_confirm_p_tmsi(mme_ue);
+
+ ogs_assert(OGS_OK ==
+ sgsap_send_tmsi_reallocation_complete(mme_ue));
+
+ if (!mme_ue->nas_eps.update.active_flag) {
+ enb_ue->relcause.group = S1AP_Cause_PR_nas;
+ enb_ue->relcause.cause = S1AP_CauseNas_normal_release;
+ mme_send_release_access_bearer_or_ue_context_release(
+ enb_ue);
+ }
+ }
break;
default:
@@ -926,6 +1057,7 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
{
int r, rv;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_nas_eps_message_t *message = NULL;
ogs_assert(s);
@@ -933,7 +1065,7 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -945,6 +1077,9 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
message = e->nas_message;
ogs_assert(message);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ ogs_assert(enb_ue);
+
switch (message->emm.h.message_type) {
case OGS_NAS_EPS_AUTHENTICATION_RESPONSE:
{
@@ -956,7 +1091,6 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
authentication_response_parameter;
ogs_debug("Authentication response");
- MME_UE_LIST_CHECK;
ogs_debug(" IMSI[%s]", mme_ue->imsi_bcd);
CLEAR_MME_UE_TIMER(mme_ue->t3460);
@@ -975,6 +1109,21 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
ogs_assert(r != OGS_ERROR);
OGS_FSM_TRAN(&mme_ue->sm, &emm_state_exception);
} else {
+ mme_ue->selected_int_algorithm =
+ mme_selected_int_algorithm(mme_ue);
+ mme_ue->selected_enc_algorithm =
+ mme_selected_enc_algorithm(mme_ue);
+
+ if (mme_ue->selected_int_algorithm ==
+ OGS_NAS_SECURITY_ALGORITHMS_EIA0) {
+ ogs_error("Encrypt[0x%x] can be skipped with EEA0, "
+ "but Integrity[0x%x] cannot be bypassed with EIA0",
+ mme_ue->selected_enc_algorithm,
+ mme_ue->selected_int_algorithm);
+ OGS_FSM_TRAN(&mme_ue->sm, &emm_state_exception);
+ break;
+ }
+
OGS_FSM_TRAN(&mme_ue->sm, &emm_state_security_mode);
}
@@ -1005,7 +1154,7 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
break;
case OGS_NAS_EMM_CAUSE_SYNCH_FAILURE:
ogs_info("Authentication failure(Synch failure)");
- mme_s6a_send_air(mme_ue,
+ mme_s6a_send_air(enb_ue, mme_ue,
authentication_failure_parameter);
return;
default:
@@ -1025,26 +1174,24 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
case OGS_NAS_EPS_ATTACH_REQUEST:
ogs_warn("[%s] Attach request", mme_ue->imsi_bcd);
rv = emm_handle_attach_request(
- mme_ue, &message->emm.attach_request, e->pkbuf);
+ enb_ue, mme_ue, &message->emm.attach_request, e->pkbuf);
if (rv != OGS_OK) {
ogs_error("emm_handle_attach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
break;
}
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
OGS_FSM_TRAN(s, &emm_state_authentication);
break;
case OGS_NAS_EPS_EMM_STATUS:
ogs_warn("EMM STATUS : IMSI[%s] Cause[%d]",
- mme_ue->imsi_bcd,
- message->emm.emm_status.emm_cause);
- OGS_FSM_TRAN(s, &emm_state_exception);
+ mme_ue->imsi_bcd, message->emm.emm_status.emm_cause);
break;
case OGS_NAS_EPS_DETACH_REQUEST:
ogs_warn("[%s] Detach request", mme_ue->imsi_bcd);
rv = emm_handle_detach_request(
- mme_ue, &message->emm.detach_request_from_ue);
+ enb_ue, mme_ue, &message->emm.detach_request_from_ue);
if (rv != OGS_OK) {
ogs_error("emm_handle_detach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -1054,7 +1201,7 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
if (!MME_UE_HAVE_IMSI(mme_ue)) {
ogs_warn("Detach request : Unknown UE");
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -1063,7 +1210,7 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
ogs_error("No Security Context : IMSI[%s]", mme_ue->imsi_bcd);
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -1076,10 +1223,10 @@ void emm_state_authentication(ogs_fsm_t *s, mme_event_t *e)
*/
CLEAR_S1_CONTEXT(mme_ue);
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
}
OGS_FSM_TRAN(s, &emm_state_de_registered);
@@ -1124,6 +1271,7 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
{
int r, rv;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_nas_eps_message_t *message = NULL;
ogs_nas_security_header_type_t h;
@@ -1132,7 +1280,7 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -1148,10 +1296,13 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
message = e->nas_message;
ogs_assert(message);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ ogs_assert(enb_ue);
+
if (message->emm.h.security_header_type
== OGS_NAS_SECURITY_HEADER_FOR_SERVICE_REQUEST_MESSAGE) {
ogs_debug("Service request");
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1201,7 +1352,7 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
CLEAR_S1_CONTEXT(mme_ue);
emm_handle_security_mode_complete(
- mme_ue, &message->emm.security_mode_complete);
+ enb_ue, mme_ue, &message->emm.security_mode_complete);
ogs_kdf_kenb(mme_ue->kasme, mme_ue->ul_count.i32,
mme_ue->kenb);
@@ -1211,9 +1362,34 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
/* Create New GUTI */
mme_ue_new_guti(mme_ue);
- mme_s6a_send_ulr(mme_ue);
+ /* Special path when SGSN (Gn interface) is involved: */
+ if (mme_ue->gn.gtp_xact_id != OGS_INVALID_POOL_ID) {
+ ogs_gtp_xact_t *gtp_xact = ogs_gtp_xact_find_by_id(mme_ue->gn.gtp_xact_id);
+ if (!gtp_xact) {
+ ogs_warn("Not xact found!");
+ OGS_FSM_TRAN(s, &emm_state_exception);
+ break;
+ }
+ uint8_t pti = OGS_POINTER_TO_UINT(gtp_xact->data);
+ rv = mme_gtp1_send_sgsn_context_ack(mme_ue, OGS_GTP1_CAUSE_REQUEST_ACCEPTED, gtp_xact);
+ if (rv != OGS_OK) {
+ ogs_warn("Tx SGSN Context Request failed(%d)", rv);
+ OGS_FSM_TRAN(s, &emm_state_exception);
+ break;
+ }
+ mme_ue->gn.gtp_xact_id = OGS_INVALID_POOL_ID;
+
+ mme_sess_t *sess = mme_sess_find_by_pti(mme_ue, pti);
+ ogs_assert(sess);
+ mme_gtp_send_create_session_request(enb_ue, sess,
+ OGS_GTP_CREATE_IN_TRACKING_AREA_UPDATE);
+ OGS_FSM_TRAN(s, &emm_state_initial_context_setup);
+ break;
+ }
+
+ mme_s6a_send_ulr(enb_ue, mme_ue);
- if (mme_ue->next.m_tmsi) {
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue)) {
OGS_FSM_TRAN(s, &emm_state_initial_context_setup);
} else {
ogs_fatal("MME always creates new GUTI");
@@ -1231,19 +1407,19 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
case OGS_NAS_EPS_ATTACH_REQUEST:
ogs_warn("[%s] Attach request", mme_ue->imsi_bcd);
rv = emm_handle_attach_request(
- mme_ue, &message->emm.attach_request, e->pkbuf);
+ enb_ue, mme_ue, &message->emm.attach_request, e->pkbuf);
if (rv != OGS_OK) {
ogs_error("emm_handle_attach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
break;
}
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
OGS_FSM_TRAN(s, &emm_state_authentication);
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST:
ogs_debug("Tracking area update request");
- r = nas_eps_send_tau_reject(mme_ue,
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1251,14 +1427,12 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
break;
case OGS_NAS_EPS_EMM_STATUS:
ogs_warn("EMM STATUS : IMSI[%s] Cause[%d]",
- mme_ue->imsi_bcd,
- message->emm.emm_status.emm_cause);
- OGS_FSM_TRAN(s, &emm_state_exception);
+ mme_ue->imsi_bcd, message->emm.emm_status.emm_cause);
break;
case OGS_NAS_EPS_DETACH_REQUEST:
ogs_warn("[%s] Detach request", mme_ue->imsi_bcd);
rv = emm_handle_detach_request(
- mme_ue, &message->emm.detach_request_from_ue);
+ enb_ue, mme_ue, &message->emm.detach_request_from_ue);
if (rv != OGS_OK) {
ogs_error("emm_handle_detach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -1268,7 +1442,7 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
if (!MME_UE_HAVE_IMSI(mme_ue)) {
ogs_warn("Detach request : Unknown UE");
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -1277,7 +1451,7 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
ogs_error("No Security Context : IMSI[%s]", mme_ue->imsi_bcd);
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -1290,10 +1464,10 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
*/
CLEAR_S1_CONTEXT(mme_ue);
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
}
OGS_FSM_TRAN(s, &emm_state_de_registered);
@@ -1312,7 +1486,8 @@ void emm_state_security_mode(ogs_fsm_t *s, mme_event_t *e)
"Stop retransmission", mme_ue->imsi_bcd);
OGS_FSM_TRAN(&mme_ue->sm, &emm_state_exception);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(
+ enb_ue_find_by_id(mme_ue->enb_ue_id), mme_ue,
OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -1340,6 +1515,7 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
{
int r, rv, xact_count;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_nas_eps_message_t *message = NULL;
ogs_nas_security_header_type_t h;
@@ -1348,7 +1524,7 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -1360,12 +1536,15 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
message = e->nas_message;
ogs_assert(message);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ ogs_assert(enb_ue);
+
xact_count = mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR);
if (message->emm.h.security_header_type
== OGS_NAS_SECURITY_HEADER_FOR_SERVICE_REQUEST_MESSAGE) {
ogs_debug("Service request");
- r = nas_eps_send_service_reject(mme_ue,
+ r = nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1414,7 +1593,7 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
CLEAR_MME_UE_TIMER(mme_ue->t3450);
rv = emm_handle_attach_complete(
- mme_ue, &message->emm.attach_complete);
+ enb_ue, mme_ue, &message->emm.attach_complete);
if (rv != OGS_OK) {
ogs_error("emm_handle_attach_complete() failed "
"in emm_state_initial_context_setup");
@@ -1423,18 +1602,21 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
}
/* Confirm GUTI */
- if (mme_ue->next.m_tmsi)
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue))
mme_ue_confirm_guti(mme_ue);
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue))
+ /* Confirm P-TMSI */
+ if (MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ mme_ue_confirm_p_tmsi(mme_ue);
ogs_assert(OGS_OK ==
sgsap_send_tmsi_reallocation_complete(mme_ue));
+ }
OGS_FSM_TRAN(s, &emm_state_registered);
break;
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_COMPLETE:
- ogs_debug("[%s] Tracking area update complete", mme_ue->imsi_bcd);
+ ogs_info("[%s] Tracking area update complete", mme_ue->imsi_bcd);
/*
* TS24.301
@@ -1473,29 +1655,44 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
CLEAR_MME_UE_TIMER(mme_ue->t3450);
/* Confirm GUTI */
- if (mme_ue->next.m_tmsi)
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue))
mme_ue_confirm_guti(mme_ue);
+ /* Confirm P-TMSI */
+ if (MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ mme_ue_confirm_p_tmsi(mme_ue);
+
+ ogs_assert(OGS_OK ==
+ sgsap_send_tmsi_reallocation_complete(mme_ue));
+
+ if (!mme_ue->nas_eps.update.active_flag) {
+ enb_ue->relcause.group = S1AP_Cause_PR_nas;
+ enb_ue->relcause.cause = S1AP_CauseNas_normal_release;
+ mme_send_release_access_bearer_or_ue_context_release(
+ enb_ue);
+ }
+ }
+
OGS_FSM_TRAN(s, &emm_state_registered);
break;
case OGS_NAS_EPS_ATTACH_REQUEST:
ogs_warn("[%s] Attach request", mme_ue->imsi_bcd);
rv = emm_handle_attach_request(
- mme_ue, &message->emm.attach_request, e->pkbuf);
+ enb_ue, mme_ue, &message->emm.attach_request, e->pkbuf);
if (rv != OGS_OK) {
ogs_error("emm_handle_attach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
break;
}
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_SEND_AUTHENTICATION_REQUEST);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR) ==
xact_count) {
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
}
OGS_FSM_TRAN(s, &emm_state_authentication);
@@ -1503,14 +1700,12 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
case OGS_NAS_EPS_EMM_STATUS:
ogs_warn("EMM STATUS : IMSI[%s] Cause[%d]",
- mme_ue->imsi_bcd,
- message->emm.emm_status.emm_cause);
- OGS_FSM_TRAN(s, &emm_state_exception);
+ mme_ue->imsi_bcd, message->emm.emm_status.emm_cause);
break;
case OGS_NAS_EPS_DETACH_REQUEST:
ogs_warn("[%s] Detach request", mme_ue->imsi_bcd);
rv = emm_handle_detach_request(
- mme_ue, &message->emm.detach_request_from_ue);
+ enb_ue, mme_ue, &message->emm.detach_request_from_ue);
if (rv != OGS_OK) {
ogs_error("emm_handle_detach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -1520,7 +1715,7 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
if (!MME_UE_HAVE_IMSI(mme_ue)) {
ogs_warn("Detach request : Unknown UE");
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -1529,7 +1724,7 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
ogs_error("No Security Context : IMSI[%s]", mme_ue->imsi_bcd);
ogs_assert(OGS_OK ==
- nas_eps_send_service_reject(mme_ue,
+ nas_eps_send_service_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK));
OGS_FSM_TRAN(s, &emm_state_exception);
break;
@@ -1542,10 +1737,10 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
*/
CLEAR_S1_CONTEXT(mme_ue);
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
}
OGS_FSM_TRAN(s, &emm_state_de_registered);
@@ -1588,7 +1783,8 @@ void emm_state_initial_context_setup(ogs_fsm_t *s, mme_event_t *e)
ogs_timer_start(mme_ue->t3450.timer,
mme_timer_cfg(MME_TIMER_T3450)->duration);
- r = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ r = nas_eps_send_to_downlink_nas_transport(
+ enb_ue_find_by_id(mme_ue->enb_ue_id), emmbuf);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
@@ -1617,7 +1813,7 @@ void emm_state_exception(ogs_fsm_t *s, mme_event_t *e)
ogs_assert(e);
mme_sm_debug(e);
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -1632,7 +1828,7 @@ void emm_state_exception(ogs_fsm_t *s, mme_event_t *e)
message = e->nas_message;
ogs_assert(message);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
h.type = e->nas_type;
@@ -1643,7 +1839,7 @@ void emm_state_exception(ogs_fsm_t *s, mme_event_t *e)
case OGS_NAS_EPS_ATTACH_REQUEST:
ogs_warn("[%s] Attach request", mme_ue->imsi_bcd);
rv = emm_handle_attach_request(
- mme_ue, &message->emm.attach_request, e->pkbuf);
+ enb_ue, mme_ue, &message->emm.attach_request, e->pkbuf);
if (rv != OGS_OK) {
ogs_error("emm_handle_attach_request() failed");
OGS_FSM_TRAN(s, emm_state_exception);
@@ -1668,7 +1864,7 @@ void emm_state_exception(ogs_fsm_t *s, mme_event_t *e)
*/
CLEAR_S1_CONTEXT(mme_ue);
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_HANDLE_PDN_CONNECTIVITY_REQUEST);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
@@ -1678,7 +1874,7 @@ void emm_state_exception(ogs_fsm_t *s, mme_event_t *e)
&mme_ue->pdn_connectivity_request);
if (rv != OGS_OK) {
ogs_error("nas_eps_send_emm_to_esm() failed");
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -1691,13 +1887,13 @@ void emm_state_exception(ogs_fsm_t *s, mme_event_t *e)
OGS_FSM_TRAN(s, &emm_state_initial_context_setup);
} else {
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_SEND_AUTHENTICATION_REQUEST);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR) ==
xact_count) {
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
}
OGS_FSM_TRAN(s, &emm_state_authentication);
diff --git a/src/mme/esm-build.c b/src/mme/esm-build.c
index 5ab89be36c..24de898283 100644
--- a/src/mme/esm-build.c
+++ b/src/mme/esm-build.c
@@ -33,7 +33,7 @@ ogs_pkbuf_t *esm_build_pdn_connectivity_reject(
&message.esm.pdn_connectivity_reject;
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
ogs_debug("PDN connectivity reject");
@@ -68,9 +68,9 @@ ogs_pkbuf_t *esm_build_information_request(mme_bearer_t *bearer)
mme_sess_t *sess = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
ogs_debug("ESM information request");
@@ -117,14 +117,13 @@ ogs_pkbuf_t *esm_build_activate_default_bearer_context_request(
ogs_session_t *session = NULL;
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
session = sess->session;
ogs_assert(session);
ogs_assert(session->name);
bearer = mme_default_bearer_in_sess(sess);
ogs_assert(bearer);
- ogs_assert(mme_bearer_next(bearer) == NULL);
ogs_debug("Activate default bearer context request");
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
@@ -169,31 +168,31 @@ ogs_pkbuf_t *esm_build_activate_default_bearer_context_request(
* included in the ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message.
*/
- pdn_address->pdn_type = session->paa.session_type;
- if (sess->request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV4V6) {
- if (session->paa.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ pdn_address->pdn_type = sess->paa.session_type;
+ if (sess->ue_request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV4V6) {
+ if (sess->paa.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
pdn_address->pdn_type = OGS_PDU_SESSION_TYPE_IPV4;
activate_default_eps_bearer_context_request->esm_cause =
OGS_NAS_ESM_CAUSE_PDN_TYPE_IPV4_ONLY_ALLOWED;
activate_default_eps_bearer_context_request->presencemask |=
OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_ESM_CAUSE_PRESENT;
- } else if (session->paa.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ } else if (sess->paa.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
pdn_address->pdn_type = OGS_PDU_SESSION_TYPE_IPV6;
activate_default_eps_bearer_context_request->esm_cause =
OGS_NAS_ESM_CAUSE_PDN_TYPE_IPV6_ONLY_ALLOWED;
activate_default_eps_bearer_context_request->presencemask |=
OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_ESM_CAUSE_PRESENT;
}
- } else if (sess->request_type.type == OGS_PDU_SESSION_TYPE_IPV4) {
- if (session->paa.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ } else if (sess->ue_request_type.type == OGS_PDU_SESSION_TYPE_IPV4) {
+ if (sess->paa.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
pdn_address->pdn_type = OGS_PDU_SESSION_TYPE_IPV6;
activate_default_eps_bearer_context_request->esm_cause =
OGS_NAS_ESM_CAUSE_PDN_TYPE_IPV6_ONLY_ALLOWED;
activate_default_eps_bearer_context_request->presencemask |=
OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST_ESM_CAUSE_PRESENT;
}
- } else if (sess->request_type.type == OGS_PDU_SESSION_TYPE_IPV6) {
- if (session->paa.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ } else if (sess->ue_request_type.type == OGS_PDU_SESSION_TYPE_IPV6) {
+ if (sess->paa.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
pdn_address->pdn_type = OGS_PDU_SESSION_TYPE_IPV4;
activate_default_eps_bearer_context_request->esm_cause =
OGS_NAS_ESM_CAUSE_PDN_TYPE_IPV4_ONLY_ALLOWED;
@@ -203,18 +202,18 @@ ogs_pkbuf_t *esm_build_activate_default_bearer_context_request(
}
if (pdn_address->pdn_type == OGS_PDU_SESSION_TYPE_IPV4) {
- pdn_address->addr = session->paa.addr;
+ pdn_address->addr = sess->paa.addr;
pdn_address->length = OGS_NAS_PDU_ADDRESS_IPV4_LEN;
ogs_debug(" IPv4");
} else if (pdn_address->pdn_type == OGS_PDU_SESSION_TYPE_IPV6) {
memcpy(pdn_address->addr6,
- session->paa.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
+ sess->paa.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
pdn_address->length = OGS_NAS_PDU_ADDRESS_IPV6_LEN;
ogs_debug(" IPv6");
} else if (pdn_address->pdn_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
- pdn_address->both.addr = session->paa.both.addr;
+ pdn_address->both.addr = sess->paa.both.addr;
memcpy(pdn_address->both.addr6,
- session->paa.both.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
+ sess->paa.both.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
pdn_address->length = OGS_NAS_PDU_ADDRESS_IPV4V6_LEN;
ogs_debug(" IPv4v6");
} else {
@@ -254,6 +253,7 @@ ogs_pkbuf_t *esm_build_activate_dedicated_bearer_context_request(
mme_bearer_t *bearer)
{
mme_ue_t *mme_ue = NULL;
+ mme_sess_t *sess = NULL;
mme_bearer_t *linked_bearer = NULL;
ogs_nas_eps_message_t message;
@@ -269,7 +269,9 @@ ogs_pkbuf_t *esm_build_activate_dedicated_bearer_context_request(
&activate_dedicated_eps_bearer_context_request->tft;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
+ sess = mme_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
linked_bearer = mme_linked_bearer(bearer);
ogs_assert(linked_bearer);
@@ -284,7 +286,21 @@ ogs_pkbuf_t *esm_build_activate_dedicated_bearer_context_request(
message.h.protocol_discriminator = OGS_NAS_PROTOCOL_DISCRIMINATOR_EMM;
message.esm.h.eps_bearer_identity = bearer->ebi;
message.esm.h.protocol_discriminator = OGS_NAS_PROTOCOL_DISCRIMINATOR_ESM;
- message.esm.h.procedure_transaction_identity = 0;
+
+ /*
+ * Issue #3072
+ *
+ * PTI 0 is set here to prevent a InitialContextSetupRequest message
+ * with a PTI of 0 from being created when the Create Bearer Request occurs
+ * and InitialContextSetupRequest occurs.
+ *
+ * If you implement the creation of a dedicated bearer
+ * in the ESM procedure reqeusted by the UE,
+ * you will need to refactor the part that sets the PTI.
+ */
+ message.esm.h.procedure_transaction_identity =
+ sess->pti = OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED;
+
message.esm.h.message_type =
OGS_NAS_EPS_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST;
@@ -317,9 +333,9 @@ ogs_pkbuf_t *esm_build_modify_bearer_context_request(
&modify_eps_bearer_context_request->tft;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
ogs_debug("Modify bearer context request");
@@ -367,9 +383,9 @@ ogs_pkbuf_t *esm_build_deactivate_bearer_context_request(
&message.esm.deactivate_eps_bearer_context_request;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
ogs_debug("Deactivate bearer context request");
diff --git a/src/mme/esm-handler.c b/src/mme/esm-handler.c
index e8b34f26ef..92637993f6 100644
--- a/src/mme/esm-handler.c
+++ b/src/mme/esm-handler.c
@@ -28,21 +28,22 @@
#undef OGS_LOG_DOMAIN
#define OGS_LOG_DOMAIN __esm_log_domain
-int esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
- ogs_nas_eps_pdn_connectivity_request_t *req, int create_action)
+int esm_handle_pdn_connectivity_request(
+ enb_ue_t *enb_ue, mme_bearer_t *bearer,
+ ogs_nas_eps_pdn_connectivity_request_t *req,
+ int create_action)
{
int r;
mme_ue_t *mme_ue = NULL;
mme_sess_t *sess = NULL;
uint8_t security_protected_required = 0;
- MME_UE_LIST_CHECK;
-
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
ogs_assert(req);
@@ -58,7 +59,8 @@ int esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
return OGS_ERROR;
}
- memcpy(&sess->request_type, &req->request_type, sizeof(sess->request_type));
+ memcpy(&sess->ue_request_type,
+ &req->request_type, sizeof(sess->ue_request_type));
security_protected_required = 0;
if (req->presencemask &
@@ -90,10 +92,10 @@ int esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
sess->session->session_type == OGS_PDU_SESSION_TYPE_IPV6 ||
sess->session->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
uint8_t derived_pdn_type =
- (sess->session->session_type & sess->request_type.type);
+ (sess->session->session_type & sess->ue_request_type.type);
if (derived_pdn_type == 0) {
ogs_error("Cannot derived PDN Type [UE:%d,HSS:%d]",
- sess->request_type.type, sess->session->session_type);
+ sess->ue_request_type.type, sess->session->session_type);
r = nas_eps_send_pdn_connectivity_reject(
sess, OGS_NAS_ESM_CAUSE_UNKNOWN_PDN_TYPE,
create_action);
@@ -160,7 +162,7 @@ int esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
}
ogs_assert(OGS_OK ==
- mme_gtp_send_create_session_request(sess, create_action));
+ mme_gtp_send_create_session_request(enb_ue, sess, create_action));
} else {
ogs_error("No APN");
r = nas_eps_send_pdn_connectivity_reject(
@@ -173,20 +175,20 @@ int esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
return OGS_OK;
}
-int esm_handle_information_response(mme_sess_t *sess,
+int esm_handle_information_response(
+ enb_ue_t *enb_ue, mme_sess_t *sess,
ogs_nas_eps_esm_information_response_t *rsp)
{
int r;
mme_ue_t *mme_ue = NULL;
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
ogs_assert(rsp);
- MME_UE_LIST_CHECK;
-
if (rsp->presencemask &
OGS_NAS_EPS_ESM_INFORMATION_RESPONSE_ACCESS_POINT_NAME_PRESENT) {
sess->session = mme_session_find_by_apn(
@@ -217,10 +219,10 @@ int esm_handle_information_response(mme_sess_t *sess,
sess->session->session_type == OGS_PDU_SESSION_TYPE_IPV6 ||
sess->session->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
uint8_t derived_pdn_type =
- (sess->session->session_type & sess->request_type.type);
+ (sess->session->session_type & sess->ue_request_type.type);
if (derived_pdn_type == 0) {
ogs_error("Cannot derived PDN Type [UE:%d,HSS:%d]",
- sess->request_type.type, sess->session->session_type);
+ sess->ue_request_type.type, sess->session->session_type);
r = nas_eps_send_pdn_connectivity_reject(
sess, OGS_NAS_ESM_CAUSE_UNKNOWN_PDN_TYPE,
OGS_GTP_CREATE_IN_ATTACH_REQUEST);
@@ -233,23 +235,26 @@ int esm_handle_information_response(mme_sess_t *sess,
ogs_assert_if_reached();
}
- if (SESSION_CONTEXT_IS_AVAILABLE(mme_ue) &&
- OGS_PDU_SESSION_TYPE_IS_VALID(sess->session->paa.session_type)) {
+ if (SESSION_CONTEXT_IS_AVAILABLE(mme_ue)) {
mme_csmap_t *csmap = mme_csmap_find_by_tai(&mme_ue->tai);
mme_ue->csmap = csmap;
- if (csmap) {
- ogs_assert(OGS_OK ==
- sgsap_send_location_update_request(mme_ue));
- } else {
+ if (!csmap ||
+ mme_ue->network_access_mode ==
+ OGS_NETWORK_ACCESS_MODE_ONLY_PACKET ||
+ mme_ue->nas_eps.attach.value ==
+ OGS_NAS_ATTACH_TYPE_EPS_ATTACH) {
r = nas_eps_send_attach_accept(mme_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+ } else {
+ ogs_assert(OGS_OK ==
+ sgsap_send_location_update_request(mme_ue));
}
} else {
ogs_assert(OGS_OK ==
mme_gtp_send_create_session_request(
- sess, OGS_GTP_CREATE_IN_ATTACH_REQUEST));
+ enb_ue, sess, OGS_GTP_CREATE_IN_ATTACH_REQUEST));
}
} else {
if (rsp->access_point_name.length)
@@ -269,17 +274,18 @@ int esm_handle_information_response(mme_sess_t *sess,
}
int esm_handle_bearer_resource_allocation_request(
- mme_bearer_t *bearer, ogs_nas_eps_message_t *message)
+ enb_ue_t *enb_ue, mme_bearer_t *bearer, ogs_nas_eps_message_t *message)
{
int r;
mme_ue_t *mme_ue = NULL;
mme_sess_t *sess = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
r = nas_eps_send_bearer_resource_allocation_reject(
mme_ue, sess->pti, OGS_NAS_ESM_CAUSE_NETWORK_FAILURE);
@@ -290,13 +296,14 @@ int esm_handle_bearer_resource_allocation_request(
}
int esm_handle_bearer_resource_modification_request(
- mme_bearer_t *bearer, ogs_nas_eps_message_t *message)
+ enb_ue_t *enb_ue, mme_bearer_t *bearer, ogs_nas_eps_message_t *message)
{
mme_ue_t *mme_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
ogs_assert(OGS_OK ==
mme_gtp_send_bearer_resource_command(bearer, message));
diff --git a/src/mme/esm-handler.h b/src/mme/esm-handler.h
index d27d9ff1a3..3cc63e8e37 100644
--- a/src/mme/esm-handler.h
+++ b/src/mme/esm-handler.h
@@ -26,15 +26,17 @@
extern "C" {
#endif
-int esm_handle_pdn_connectivity_request(mme_bearer_t *bearer,
+int esm_handle_pdn_connectivity_request(
+ enb_ue_t *enb_ue, mme_bearer_t *bearer,
ogs_nas_eps_pdn_connectivity_request_t *req,
int create_action);
-int esm_handle_information_response(mme_sess_t *sess,
+int esm_handle_information_response(
+ enb_ue_t *enb_ue, mme_sess_t *sess,
ogs_nas_eps_esm_information_response_t *rsp);
int esm_handle_bearer_resource_allocation_request(
- mme_bearer_t *bearer, ogs_nas_eps_message_t *message);
+ enb_ue_t *enb_ue, mme_bearer_t *bearer, ogs_nas_eps_message_t *message);
int esm_handle_bearer_resource_modification_request(
- mme_bearer_t *bearer, ogs_nas_eps_message_t *message);
+ enb_ue_t *enb_ue, mme_bearer_t *bearer, ogs_nas_eps_message_t *message);
#ifdef __cplusplus
}
diff --git a/src/mme/esm-sm.c b/src/mme/esm-sm.c
index 3312159c74..d4575ded36 100644
--- a/src/mme/esm-sm.c
+++ b/src/mme/esm-sm.c
@@ -70,6 +70,8 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
{
int r, rv;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
+ sgw_ue_t *sgw_ue = NULL;
mme_sess_t *sess = NULL;
mme_bearer_t *bearer = NULL;
ogs_nas_eps_message_t *message = NULL;
@@ -83,11 +85,11 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- bearer = e->bearer;
+ bearer = mme_bearer_find_by_id(e->bearer_id);
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -100,13 +102,16 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
message = e->nas_message;
ogs_assert(message);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ ogs_assert(enb_ue);
+
switch (message->esm.h.message_type) {
case OGS_NAS_EPS_PDN_CONNECTIVITY_REQUEST:
ogs_debug("PDN Connectivity request");
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
rv = esm_handle_pdn_connectivity_request(
- bearer, &message->esm.pdn_connectivity_request,
+ enb_ue, bearer, &message->esm.pdn_connectivity_request,
e->create_action);
if (rv != OGS_OK) {
OGS_FSM_TRAN(s, esm_state_exception);
@@ -118,9 +123,12 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
if (MME_HAVE_SGW_S1U_PATH(sess)) {
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
+ ogs_assert(sgw_ue);
+
ogs_assert(OGS_OK ==
- mme_gtp_send_delete_session_request(mme_ue->sgw_ue, sess,
- OGS_GTP_DELETE_SEND_DEACTIVATE_BEARER_CONTEXT_REQUEST));
+ mme_gtp_send_delete_session_request(enb_ue, sgw_ue, sess,
+ OGS_GTP_DELETE_SEND_DEACTIVATE_BEARER_CONTEXT_REQUEST));
} else {
r = nas_eps_send_deactivate_bearer_context_request(bearer);
ogs_expect(r == OGS_OK);
@@ -140,15 +148,19 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
CLEAR_BEARER_TIMER(bearer->t3489);
h.type = e->nas_type;
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+
if (h.integrity_protected == 0) {
ogs_error("[%s] No Integrity Protected", mme_ue->imsi_bcd);
- r = nas_eps_send_attach_reject(mme_ue,
+
+ ogs_assert(enb_ue);
+
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
- ogs_assert(mme_ue->enb_ue);
- r = s1ap_send_ue_context_release_command(mme_ue->enb_ue,
+ r = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
@@ -159,13 +171,15 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
ogs_warn("[%s] No Security Context", mme_ue->imsi_bcd);
- r = nas_eps_send_attach_reject(mme_ue,
+
+ ogs_assert(enb_ue);
+
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
- ogs_assert(mme_ue->enb_ue);
- r = s1ap_send_ue_context_release_command(mme_ue->enb_ue,
+ r = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
@@ -175,7 +189,7 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
}
rv = esm_handle_information_response(
- sess, &message->esm.esm_information_response);
+ enb_ue, sess, &message->esm.esm_information_response);
if (rv != OGS_OK) {
OGS_FSM_TRAN(s, esm_state_exception);
break;
@@ -183,7 +197,6 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
break;
case OGS_NAS_EPS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT:
ogs_debug("Activate default EPS bearer context accept");
- MME_UE_LIST_CHECK;
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
/* Check if Initial Context Setup Response or
@@ -193,7 +206,7 @@ void esm_state_inactive(ogs_fsm_t *s, mme_event_t *e)
ogs_list_add(&mme_ue->bearer_to_modify_list,
&bearer->to_modify_node);
ogs_assert(OGS_OK ==
- mme_gtp_send_modify_bearer_request(mme_ue, 0, 0));
+ mme_gtp_send_modify_bearer_request(enb_ue, mme_ue, 0, 0));
}
nas_eps_send_activate_all_dedicated_bearers(bearer);
@@ -268,6 +281,8 @@ void esm_state_active(ogs_fsm_t *s, mme_event_t *e)
{
int r, rv;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
+ sgw_ue_t *sgw_ue = NULL;
mme_sess_t *sess = NULL;
mme_bearer_t *bearer = NULL;
ogs_nas_eps_message_t *message = NULL;
@@ -277,11 +292,11 @@ void esm_state_active(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- bearer = e->bearer;
+ bearer = mme_bearer_find_by_id(e->bearer_id);
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -293,13 +308,16 @@ void esm_state_active(ogs_fsm_t *s, mme_event_t *e)
message = e->nas_message;
ogs_assert(message);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+
switch (message->esm.h.message_type) {
case OGS_NAS_EPS_PDN_CONNECTIVITY_REQUEST:
ogs_debug("PDN Connectivity request");
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
+ ogs_assert(enb_ue);
rv = esm_handle_pdn_connectivity_request(
- bearer, &message->esm.pdn_connectivity_request,
+ enb_ue, bearer, &message->esm.pdn_connectivity_request,
e->create_action);
if (rv != OGS_OK) {
OGS_FSM_TRAN(s, esm_state_exception);
@@ -312,9 +330,14 @@ void esm_state_active(ogs_fsm_t *s, mme_event_t *e)
ogs_debug("PDN disconnect request");
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
+
+ ogs_assert(enb_ue);
if (MME_HAVE_SGW_S1U_PATH(sess)) {
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
+ ogs_assert(sgw_ue);
+
ogs_assert(OGS_OK ==
- mme_gtp_send_delete_session_request(mme_ue->sgw_ue, sess,
+ mme_gtp_send_delete_session_request(enb_ue, sgw_ue, sess,
OGS_GTP_DELETE_SEND_DEACTIVATE_BEARER_CONTEXT_REQUEST));
} else {
r = nas_eps_send_deactivate_bearer_context_request(bearer);
@@ -350,13 +373,17 @@ void esm_state_active(ogs_fsm_t *s, mme_event_t *e)
ogs_debug("Bearer resource allocation request");
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
- esm_handle_bearer_resource_allocation_request(bearer, message);
+ ogs_assert(enb_ue);
+ esm_handle_bearer_resource_allocation_request(
+ enb_ue, bearer, message);
break;
case OGS_NAS_EPS_BEARER_RESOURCE_MODIFICATION_REQUEST:
ogs_debug("Bearer resource modification request");
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
- esm_handle_bearer_resource_modification_request(bearer, message);
+ ogs_assert(enb_ue);
+ esm_handle_bearer_resource_modification_request(
+ enb_ue, bearer, message);
break;
default:
ogs_error("Unknown message(type:%d)",
@@ -374,6 +401,7 @@ void esm_state_pdn_will_disconnect(ogs_fsm_t *s, mme_event_t *e)
{
int rv;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
mme_sess_t *sess = NULL;
mme_bearer_t *bearer = NULL;
ogs_nas_eps_message_t *message = NULL;
@@ -383,11 +411,11 @@ void esm_state_pdn_will_disconnect(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- bearer = e->bearer;
+ bearer = mme_bearer_find_by_id(e->bearer_id);
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
switch (e->id) {
@@ -399,6 +427,9 @@ void esm_state_pdn_will_disconnect(ogs_fsm_t *s, mme_event_t *e)
message = e->nas_message;
ogs_assert(message);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ ogs_assert(enb_ue);
+
switch (message->esm.h.message_type) {
case OGS_NAS_EPS_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT:
ogs_debug("[D] Deactivate EPS bearer "
@@ -412,7 +443,7 @@ void esm_state_pdn_will_disconnect(ogs_fsm_t *s, mme_event_t *e)
ogs_debug(" IMSI[%s] PTI[%d] EBI[%d]",
mme_ue->imsi_bcd, sess->pti, bearer->ebi);
rv = esm_handle_pdn_connectivity_request(
- bearer, &message->esm.pdn_connectivity_request,
+ enb_ue, bearer, &message->esm.pdn_connectivity_request,
e->create_action);
if (rv != OGS_OK) {
OGS_FSM_TRAN(s, esm_state_exception);
@@ -472,7 +503,7 @@ void esm_state_exception(ogs_fsm_t *s, mme_event_t *e)
ogs_assert(e);
mme_sm_debug(e);
- bearer = e->bearer;
+ bearer = mme_bearer_find_by_id(e->bearer_id);
switch (e->id) {
case OGS_FSM_ENTRY_SIG:
diff --git a/src/mme/mme-context.c b/src/mme/mme-context.c
index 9be948d7f7..fb824af1b2 100644
--- a/src/mme/mme-context.c
+++ b/src/mme/mme-context.c
@@ -43,6 +43,7 @@ static OGS_POOL(mme_sgw_pool, mme_sgw_t);
static OGS_POOL(mme_pgw_pool, mme_pgw_t);
static OGS_POOL(mme_vlr_pool, mme_vlr_t);
static OGS_POOL(mme_csmap_pool, mme_csmap_t);
+static OGS_POOL(mme_hssmap_pool, mme_hssmap_t);
static OGS_POOL(mme_enb_pool, mme_enb_t);
static OGS_POOL(mme_ue_pool, mme_ue_t);
@@ -97,6 +98,7 @@ void mme_context_init(void)
ogs_list_init(&self.enb_list);
ogs_list_init(&self.vlr_list);
ogs_list_init(&self.csmap_list);
+ ogs_list_init(&self.hssmap_list);
ogs_pool_init(&mme_sgsn_route_pool, ogs_app()->pool.nf);
ogs_pool_init(&mme_sgsn_pool, ogs_app()->pool.nf);
@@ -104,6 +106,7 @@ void mme_context_init(void)
ogs_pool_init(&mme_pgw_pool, ogs_app()->pool.nf);
ogs_pool_init(&mme_vlr_pool, ogs_app()->pool.nf);
ogs_pool_init(&mme_csmap_pool, ogs_app()->pool.csmap);
+ ogs_pool_init(&mme_hssmap_pool, ogs_app()->pool.nf);
/* Allocate TWICE the pool to check if maximum number of eNBs is reached */
ogs_pool_init(&mme_enb_pool, ogs_global_conf()->max.peer*2);
@@ -118,8 +121,12 @@ void mme_context_init(void)
ogs_pool_init(&sgw_ue_pool, ogs_global_conf()->max.ue);
ogs_pool_init(&mme_sess_pool, ogs_app()->pool.sess);
ogs_pool_init(&mme_bearer_pool, ogs_app()->pool.bearer);
+ /* Increase size of TMSI pool (#1827) */
ogs_pool_init(&m_tmsi_pool, ogs_global_conf()->max.ue*2);
ogs_pool_random_id_generate(&m_tmsi_pool);
+#if 0 /* For debugging : Verify whether there are duplicates of M_TMSI. */
+ ogs_pool_assert_if_has_duplicate(&m_tmsi_pool);
+#endif
self.enb_addr_hash = ogs_hash_make();
ogs_assert(self.enb_addr_hash);
@@ -151,6 +158,7 @@ void mme_context_final(void)
mme_csmap_remove_all();
mme_vlr_remove_all();
mme_sgsn_remove_all();
+ mme_hssmap_remove_all();
ogs_assert(self.enb_addr_hash);
ogs_hash_destroy(self.enb_addr_hash);
@@ -183,6 +191,7 @@ void mme_context_final(void)
ogs_pool_final(&mme_pgw_pool);
ogs_pool_final(&mme_csmap_pool);
ogs_pool_final(&mme_vlr_pool);
+ ogs_pool_final(&mme_hssmap_pool);
context_initialized = 0;
}
@@ -504,6 +513,7 @@ int mme_context_parse_config(void)
const char *identity = NULL;
const char *addr = NULL;
uint16_t port = 0;
+ int tc_timer = 0;
if (ogs_yaml_iter_type(&conn_array) ==
YAML_MAPPING_NODE) {
@@ -536,6 +546,10 @@ int mme_context_parse_config(void)
const char *v =
ogs_yaml_iter_value(&conn_iter);
if (v) port = atoi(v);
+ } else if (!strcmp(conn_key, "tc_timer")) {
+ const char *v =
+ ogs_yaml_iter_value(&conn_iter);
+ if (v) tc_timer = atoi(v);
} else
ogs_warn("unknown key `%s`",
conn_key);
@@ -551,10 +565,16 @@ int mme_context_parse_config(void)
self.diam_config->
conn[self.diam_config->num_of_conn].
port = port;
+ self.diam_config->
+ conn[self.diam_config->num_of_conn].
+ tc_timer = tc_timer;
self.diam_config->num_of_conn++;
}
} while (ogs_yaml_iter_type(&conn_array) ==
YAML_SEQUENCE_NODE);
+ } else if (!strcmp(fd_key, "tc_timer")) {
+ const char *v = ogs_yaml_iter_value(&fd_iter);
+ if (v) self.diam_config->cnf_timer_tc = atoi(v);
} else
ogs_warn("unknown key `%s`", fd_key);
}
@@ -869,7 +889,7 @@ int mme_context_parse_config(void)
if (v) {
e_cell_id[
num_of_e_cell_id] =
- ogs_uint64_from_string(
+ ogs_uint64_from_string_hexadecimal(
(char*)v);
num_of_e_cell_id++;
}
@@ -1098,7 +1118,7 @@ int mme_context_parse_config(void)
if (v) {
e_cell_id[
num_of_e_cell_id] =
- ogs_uint64_from_string(
+ ogs_uint64_from_string_hexadecimal(
(char*)v);
num_of_e_cell_id++;
}
@@ -1817,6 +1837,73 @@ int mme_context_parse_config(void)
} while (ogs_yaml_iter_type(&access_control_array) ==
YAML_SEQUENCE_NODE);
+ } else if (!strcmp(mme_key, "hss_map")) {
+ ogs_yaml_iter_t hss_map_array, hss_map_iter;
+ ogs_yaml_iter_recurse(&mme_iter, &hss_map_array);
+ do {
+ if (ogs_yaml_iter_type(&hss_map_array) ==
+ YAML_MAPPING_NODE) {
+ memcpy(&hss_map_iter, &hss_map_array,
+ sizeof(ogs_yaml_iter_t));
+ } else if (ogs_yaml_iter_type(&hss_map_array) ==
+ YAML_SEQUENCE_NODE) {
+ if (!ogs_yaml_iter_next(&hss_map_array))
+ break;
+ ogs_yaml_iter_recurse(&hss_map_array,
+ &hss_map_iter);
+ } else if (ogs_yaml_iter_type(&hss_map_array) ==
+ YAML_SCALAR_NODE) {
+ break;
+ } else
+ ogs_assert_if_reached();
+
+ while (ogs_yaml_iter_next(&hss_map_iter)) {
+ const char *mnc = NULL, *mcc = NULL, *realm = NULL, *host = NULL;
+ const char *hss_map_key =
+ ogs_yaml_iter_key(&hss_map_iter);
+ ogs_assert(hss_map_key);
+ if (!strcmp(hss_map_key, "plmn_id")) {
+ ogs_yaml_iter_t plmn_id_iter;
+
+ ogs_yaml_iter_recurse(&hss_map_iter,
+ &plmn_id_iter);
+ while (ogs_yaml_iter_next(&plmn_id_iter)) {
+ const char *plmn_id_key =
+ ogs_yaml_iter_key(&plmn_id_iter);
+ ogs_assert(plmn_id_key);
+ if (!strcmp(plmn_id_key, "host")) {
+ const char *v = ogs_yaml_iter_value(
+ &plmn_id_iter);
+ if (v) host = ogs_strndup(v, OGS_MAX_FQDN_LEN);
+ } else if (!strcmp(plmn_id_key, "realm")) {
+ const char *v = ogs_yaml_iter_value(
+ &plmn_id_iter);
+ if (v) realm = ogs_strndup(v, OGS_MAX_FQDN_LEN);
+ } else if (!strcmp(plmn_id_key, "mcc")) {
+ mcc = ogs_yaml_iter_value(
+ &plmn_id_iter);
+ } else if (!strcmp(plmn_id_key, "mnc")) {
+ mnc = ogs_yaml_iter_value(
+ &plmn_id_iter);
+ }
+ }
+
+ if (mcc && mnc) {
+ ogs_plmn_id_t plmn_id;
+ mme_hssmap_t *hssmap = NULL;
+
+ ogs_plmn_id_build(&plmn_id,
+ atoi(mcc), atoi(mnc), strlen(mnc));
+
+ hssmap = mme_hssmap_add(&plmn_id, realm, host);
+ ogs_assert(hssmap);
+ }
+ } else
+ ogs_warn("unknown key `%s`",
+ hss_map_key);
+ }
+ } while (ogs_yaml_iter_type(&hss_map_array) ==
+ YAML_SEQUENCE_NODE);
} else if (!strcmp(mme_key, "security")) {
ogs_yaml_iter_t security_iter;
ogs_yaml_iter_recurse(&mme_iter, &security_iter);
@@ -1963,9 +2050,9 @@ int mme_context_parse_config(void)
while (ogs_yaml_iter_next(&sgsap_iter)) {
const char *sgsap_key = ogs_yaml_iter_key(&sgsap_iter);
ogs_assert(sgsap_key);
- if (!strcmp(sgsap_key, "server")) {
- ogs_yaml_iter_t server_iter, server_array;
- ogs_yaml_iter_recurse(&sgsap_iter, &server_array);
+ if (!strcmp(sgsap_key, "client")) {
+ ogs_yaml_iter_t client_iter, client_array;
+ ogs_yaml_iter_recurse(&sgsap_iter, &client_array);
do {
mme_vlr_t *vlr = NULL;
ogs_plmn_id_t plmn_id;
@@ -1976,38 +2063,39 @@ int mme_context_parse_config(void)
const char *tac, *lac;
} map[MAX_NUM_OF_CSMAP];
int map_num = 0;
- ogs_sockaddr_t *addr = NULL;
+ ogs_sockaddr_t *addr = NULL, *local_addr = NULL;
int family = AF_UNSPEC;
- int i, hostname_num = 0;
- const char *hostname[OGS_MAX_NUM_OF_HOSTNAME];
+ int i, hostname_num = 0, local_hostname_num = 0;
+ const char *hostname[OGS_MAX_NUM_OF_HOSTNAME],
+ *local_hostname[OGS_MAX_NUM_OF_HOSTNAME];
uint16_t port = self.sgsap_port;
ogs_sockopt_t option;
bool is_option = false;
- if (ogs_yaml_iter_type(&server_array) ==
+ if (ogs_yaml_iter_type(&client_array) ==
YAML_MAPPING_NODE) {
- memcpy(&server_iter, &server_array,
+ memcpy(&client_iter, &client_array,
sizeof(ogs_yaml_iter_t));
- } else if (ogs_yaml_iter_type(&server_array) ==
+ } else if (ogs_yaml_iter_type(&client_array) ==
YAML_SEQUENCE_NODE) {
- if (!ogs_yaml_iter_next(&server_array))
+ if (!ogs_yaml_iter_next(&client_array))
break;
ogs_yaml_iter_recurse(
- &server_array, &server_iter);
- } else if (ogs_yaml_iter_type(&server_array) ==
+ &client_array, &client_iter);
+ } else if (ogs_yaml_iter_type(&client_array) ==
YAML_SCALAR_NODE) {
break;
} else
ogs_assert_if_reached();
- while (ogs_yaml_iter_next(&server_iter)) {
- const char *server_key =
- ogs_yaml_iter_key(&server_iter);
- ogs_assert(server_key);
- if (!strcmp(server_key, "family")) {
+ while (ogs_yaml_iter_next(&client_iter)) {
+ const char *client_key =
+ ogs_yaml_iter_key(&client_iter);
+ ogs_assert(client_key);
+ if (!strcmp(client_key, "family")) {
const char *v =
- ogs_yaml_iter_value(&server_iter);
+ ogs_yaml_iter_value(&client_iter);
if (v) family = atoi(v);
if (family != AF_UNSPEC &&
family != AF_INET &&
@@ -2019,9 +2107,9 @@ int mme_context_parse_config(void)
AF_UNSPEC, AF_INET, AF_INET6);
family = AF_UNSPEC;
}
- } else if (!strcmp(server_key, "address")) {
+ } else if (!strcmp(client_key, "address")) {
ogs_yaml_iter_t hostname_iter;
- ogs_yaml_iter_recurse(&server_iter,
+ ogs_yaml_iter_recurse(&client_iter,
&hostname_iter);
ogs_assert(ogs_yaml_iter_type(
&hostname_iter) !=
@@ -2044,26 +2132,53 @@ int mme_context_parse_config(void)
} while (ogs_yaml_iter_type(
&hostname_iter) ==
YAML_SEQUENCE_NODE);
- } else if (!strcmp(server_key, "port")) {
+ } else if (!strcmp(client_key,
+ "local_address")) {
+ ogs_yaml_iter_t local_hostname_iter;
+ ogs_yaml_iter_recurse(&client_iter,
+ &local_hostname_iter);
+ ogs_assert(ogs_yaml_iter_type(
+ &local_hostname_iter) !=
+ YAML_MAPPING_NODE);
+
+ do {
+ if (ogs_yaml_iter_type(
+ &local_hostname_iter) ==
+ YAML_SEQUENCE_NODE) {
+ if (!ogs_yaml_iter_next(
+ &local_hostname_iter))
+ break;
+ }
+
+ ogs_assert(local_hostname_num <
+ OGS_MAX_NUM_OF_HOSTNAME);
+ local_hostname
+ [local_hostname_num++] =
+ ogs_yaml_iter_value(
+ &local_hostname_iter);
+ } while (ogs_yaml_iter_type(
+ &local_hostname_iter) ==
+ YAML_SEQUENCE_NODE);
+ } else if (!strcmp(client_key, "port")) {
const char *v =
- ogs_yaml_iter_value(&server_iter);
+ ogs_yaml_iter_value(&client_iter);
if (v) {
port = atoi(v);
self.sgsap_port = port;
}
- } else if (!strcmp(server_key, "option")) {
+ } else if (!strcmp(client_key, "option")) {
rv = ogs_app_parse_sockopt_config(
- &server_iter, &option);
+ &client_iter, &option);
if (rv != OGS_OK) {
ogs_error("ogs_app_parse_sockopt_"
"config() failed");
return rv;
}
is_option = true;
- } else if (!strcmp(server_key, "map")) {
+ } else if (!strcmp(client_key, "map")) {
ogs_yaml_iter_t map_iter;
ogs_yaml_iter_recurse(
- &server_iter, &map_iter);
+ &client_iter, &map_iter);
map[map_num].tai_mcc = NULL;
map[map_num].tai_mnc = NULL;
@@ -2233,13 +2348,13 @@ int mme_context_parse_config(void)
map_num++;
- } else if (!strcmp(server_key, "tai")) {
+ } else if (!strcmp(client_key, "tai")) {
ogs_error(
"tai/lai configuraton changed to "
"map.tai/map.lai");
ogs_log_print(OGS_LOG_ERROR,
"sgsap:\n"
- " server\n"
+ " client\n"
" address: 127.0.0.2\n"
" map:\n"
" tai:\n"
@@ -2253,13 +2368,13 @@ int mme_context_parse_config(void)
" mnc: 01\n"
" lac: 43691\n");
return OGS_ERROR;
- } else if (!strcmp(server_key, "lai")) {
+ } else if (!strcmp(client_key, "lai")) {
ogs_error(
"tai/lai configuraton changed to "
"map.tai/map.lai");
ogs_log_print(OGS_LOG_ERROR,
"sgsap:\n"
- " server\n"
+ " client\n"
" address: 127.0.0.2\n"
" map:\n"
" tai:\n"
@@ -2275,7 +2390,7 @@ int mme_context_parse_config(void)
return OGS_ERROR;
} else
ogs_warn("unknown key `%s`",
- server_key);
+ client_key);
}
@@ -2299,7 +2414,20 @@ int mme_context_parse_config(void)
if (addr == NULL) continue;
- vlr = mme_vlr_add(addr,
+ local_addr = NULL;
+ for (i = 0; i < local_hostname_num; i++) {
+ rv = ogs_addaddrinfo(&local_addr,
+ family, local_hostname[i], port, 0);
+ ogs_assert(rv == OGS_OK);
+ }
+
+ ogs_filter_ip_version(&local_addr,
+ ogs_global_conf()->parameter.no_ipv4,
+ ogs_global_conf()->parameter.no_ipv6,
+ ogs_global_conf()->parameter.
+ prefer_ipv4);
+
+ vlr = mme_vlr_add(addr, local_addr,
is_option ? &option : NULL);
ogs_assert(vlr);
@@ -2322,7 +2450,7 @@ int mme_context_parse_config(void)
&csmap->lai.nas_plmn_id, &plmn_id);
csmap->lai.lac = atoi(map[i].lac);
}
- } while (ogs_yaml_iter_type(&server_array) ==
+ } while (ogs_yaml_iter_type(&client_array) ==
YAML_SEQUENCE_NODE);
} else
ogs_warn("unknown key `%s`", sgsap_key);
@@ -2613,7 +2741,7 @@ static bool compare_apn_enb_info(
ogs_assert(sess);
ogs_assert(sess->session);
ogs_assert(sess->session->name);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
for (i = 0; i < pgw->num_of_apn; i++)
@@ -2650,7 +2778,10 @@ ogs_sockaddr_t *mme_pgw_addr_find_by_apn_enb(
return NULL;
}
-mme_vlr_t *mme_vlr_add(ogs_sockaddr_t *sa_list, ogs_sockopt_t *option)
+mme_vlr_t *mme_vlr_add(
+ ogs_sockaddr_t *sa_list,
+ ogs_sockaddr_t *local_sa_list,
+ ogs_sockopt_t *option)
{
mme_vlr_t *vlr = NULL;
@@ -2664,6 +2795,7 @@ mme_vlr_t *mme_vlr_add(ogs_sockaddr_t *sa_list, ogs_sockopt_t *option)
vlr->ostream_id = 0;
vlr->sa_list = sa_list;
+ vlr->local_sa_list = local_sa_list;
if (option) {
vlr->max_num_of_ostreams = option->sctp.sinit_num_ostreams;
vlr->option = ogs_memdup(option, sizeof *option);
@@ -2683,6 +2815,7 @@ void mme_vlr_remove(mme_vlr_t *vlr)
mme_vlr_close(vlr);
ogs_freeaddrinfo(vlr->sa_list);
+ ogs_freeaddrinfo(vlr->local_sa_list);
if (vlr->option)
ogs_free(vlr->option);
@@ -2707,13 +2840,13 @@ void mme_vlr_close(mme_vlr_t *vlr)
ogs_sctp_destroy(vlr->sock);
}
-mme_vlr_t *mme_vlr_find_by_addr(const ogs_sockaddr_t *addr)
+mme_vlr_t *mme_vlr_find_by_sock(const ogs_sock_t *sock)
{
mme_vlr_t *vlr = NULL;
- ogs_assert(addr);
+ ogs_assert(sock);
ogs_list_for_each(&self.vlr_list, vlr) {
- if (ogs_sockaddr_is_equal(vlr->addr, addr) == true)
+ if (vlr->sock == sock)
return vlr;
}
@@ -2783,6 +2916,73 @@ mme_csmap_t *mme_csmap_find_by_nas_lai(const ogs_nas_lai_t *lai)
return NULL;
}
+mme_hssmap_t *mme_hssmap_add(ogs_plmn_id_t *plmn_id, const char *realm,
+ const char *host)
+{
+ mme_hssmap_t *hssmap = NULL;
+
+ ogs_assert(plmn_id);
+
+ ogs_pool_alloc(&mme_hssmap_pool, &hssmap);
+ ogs_assert(hssmap);
+ memset(hssmap, 0, sizeof *hssmap);
+
+ hssmap->plmn_id = *plmn_id;
+ if (realm)
+ hssmap->realm = ogs_strdup(realm);
+ else
+ hssmap->realm = ogs_epc_domain_from_plmn_id(plmn_id);
+
+ if (host)
+ hssmap->host = ogs_strdup(host);
+ else
+ hssmap->host = NULL;
+
+ ogs_list_add(&self.hssmap_list, hssmap);
+
+ return hssmap;
+}
+
+void mme_hssmap_remove(mme_hssmap_t *hssmap)
+{
+ ogs_assert(hssmap);
+
+ ogs_list_remove(&self.hssmap_list, hssmap);
+
+ if (hssmap->realm != NULL)
+ ogs_free(hssmap->realm);
+
+ if (hssmap->host != NULL)
+ ogs_free(hssmap->host);
+
+ ogs_pool_free(&mme_hssmap_pool, hssmap);
+}
+
+void mme_hssmap_remove_all(void)
+{
+ mme_hssmap_t *hssmap = NULL, *next_hssmap = NULL;
+
+ ogs_list_for_each_safe(&self.hssmap_list, next_hssmap, hssmap)
+ mme_hssmap_remove(hssmap);
+}
+
+mme_hssmap_t *mme_hssmap_find_by_imsi_bcd(const char *imsi_bcd)
+{
+ mme_hssmap_t *hssmap = NULL;
+ ogs_assert(imsi_bcd);
+
+ ogs_list_for_each(&self.hssmap_list, hssmap) {
+ char plmn_id_str[OGS_PLMNIDSTRLEN] = "";
+
+ ogs_plmn_id_to_string(&hssmap->plmn_id, plmn_id_str);
+ if (strncmp(plmn_id_str, imsi_bcd, strlen(plmn_id_str)) == 0) {
+ return hssmap;
+ }
+ }
+
+ return NULL;
+}
+
mme_enb_t *mme_enb_add(ogs_sock_t *sock, ogs_sockaddr_t *addr)
{
mme_enb_t *enb = NULL;
@@ -2791,9 +2991,11 @@ mme_enb_t *mme_enb_add(ogs_sock_t *sock, ogs_sockaddr_t *addr)
ogs_assert(sock);
ogs_assert(addr);
- ogs_pool_alloc(&mme_enb_pool, &enb);
- ogs_assert(enb);
- memset(enb, 0, sizeof *enb);
+ ogs_pool_id_calloc(&mme_enb_pool, &enb);
+ if (!enb) {
+ ogs_error("ogs_pool_id_calloc() failed");
+ return NULL;
+ }
enb->sctp.sock = sock;
enb->sctp.addr = addr;
@@ -2816,7 +3018,7 @@ mme_enb_t *mme_enb_add(ogs_sock_t *sock, ogs_sockaddr_t *addr)
enb->sctp.addr, sizeof(ogs_sockaddr_t), enb);
memset(&e, 0, sizeof(e));
- e.enb = enb;
+ e.enb_id = enb->id;
ogs_fsm_init(&enb->sm, s1ap_state_initial, s1ap_state_final, &e);
ogs_list_add(&self.enb_list, enb);
@@ -2838,12 +3040,13 @@ int mme_enb_remove(mme_enb_t *enb)
ogs_list_remove(&self.enb_list, enb);
memset(&e, 0, sizeof(e));
- e.enb = enb;
+ e.enb_id = enb->id;
ogs_fsm_fini(&enb->sm, &e);
ogs_hash_set(self.enb_addr_hash,
enb->sctp.addr, sizeof(ogs_sockaddr_t), NULL);
- ogs_hash_set(self.enb_id_hash, &enb->enb_id, sizeof(enb->enb_id), NULL);
+ if (enb->enb_id_presence == true)
+ ogs_hash_set(self.enb_id_hash, &enb->enb_id, sizeof(enb->enb_id), NULL);
/*
* CHECK:
@@ -2854,7 +3057,7 @@ int mme_enb_remove(mme_enb_t *enb)
ogs_sctp_flush_and_destroy(&enb->sctp);
- ogs_pool_free(&mme_enb_pool, enb);
+ ogs_pool_id_free(&mme_enb_pool, enb);
mme_metrics_inst_global_dec(MME_METR_GLOB_GAUGE_ENB);
ogs_info("[Removed] Number of eNBs is now %d",
ogs_list_count(&self.enb_list));
@@ -2890,11 +3093,14 @@ int mme_enb_set_enb_id(mme_enb_t *enb, uint32_t enb_id)
{
ogs_assert(enb);
- ogs_hash_set(self.enb_id_hash, &enb_id, sizeof(enb_id), NULL);
+ if (enb->enb_id_presence == true)
+ ogs_hash_set(self.enb_id_hash, &enb->enb_id, sizeof(enb->enb_id), NULL);
enb->enb_id = enb_id;
ogs_hash_set(self.enb_id_hash, &enb->enb_id, sizeof(enb->enb_id), enb);
+ enb->enb_id_presence = true;
+
return OGS_OK;
}
@@ -2913,9 +3119,9 @@ int mme_enb_sock_type(ogs_sock_t *sock)
return SOCK_STREAM;
}
-mme_enb_t *mme_enb_cycle(mme_enb_t *enb)
+mme_enb_t *mme_enb_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&mme_enb_pool, enb);
+ return ogs_pool_find_by_id(&mme_enb_pool, id);
}
/** enb_ue_context handling function */
@@ -2925,19 +3131,18 @@ enb_ue_t *enb_ue_add(mme_enb_t *enb, uint32_t enb_ue_s1ap_id)
ogs_assert(enb);
- ogs_pool_alloc(&enb_ue_pool, &enb_ue);
+ ogs_pool_id_calloc(&enb_ue_pool, &enb_ue);
if (enb_ue == NULL) {
ogs_error("Could not allocate enb_ue context from pool");
return NULL;
}
- memset(enb_ue, 0, sizeof *enb_ue);
-
enb_ue->t_s1_holding = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_s1_holding_timer_expire, enb_ue);
+ ogs_app()->timer_mgr, mme_timer_s1_holding_timer_expire,
+ OGS_UINT_TO_POINTER(enb_ue->id));
if (!enb_ue->t_s1_holding) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&enb_ue_pool, enb_ue);
+ ogs_pool_id_free(&enb_ue_pool, enb_ue);
return NULL;
}
@@ -2957,7 +3162,7 @@ enb_ue_t *enb_ue_add(mme_enb_t *enb, uint32_t enb_ue_s1ap_id)
enb_ue->enb_ostream_id =
OGS_NEXT_ID(enb->ostream_id, 1, enb->max_num_of_ostreams-1);
- enb_ue->enb = enb;
+ enb_ue->enb_id = enb->id;
ogs_list_add(&enb->enb_ue_list, enb_ue);
@@ -2971,33 +3176,35 @@ void enb_ue_remove(enb_ue_t *enb_ue)
mme_enb_t *enb = NULL;
ogs_assert(enb_ue);
- enb = enb_ue->enb;
- ogs_assert(enb);
- ogs_list_remove(&enb->enb_ue_list, enb_ue);
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
+
+ if (enb) ogs_list_remove(&enb->enb_ue_list, enb_ue);
ogs_assert(enb_ue->t_s1_holding);
ogs_timer_delete(enb_ue->t_s1_holding);
- ogs_pool_free(&enb_ue_pool, enb_ue);
+ ogs_pool_id_free(&enb_ue_pool, enb_ue);
stats_remove_enb_ue();
}
void enb_ue_switch_to_enb(enb_ue_t *enb_ue, mme_enb_t *new_enb)
{
+ mme_enb_t *enb = NULL;
ogs_assert(enb_ue);
- ogs_assert(enb_ue->enb);
ogs_assert(new_enb);
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
+
/* Remove from the old enb */
- ogs_list_remove(&enb_ue->enb->enb_ue_list, enb_ue);
+ ogs_list_remove(&enb->enb_ue_list, enb_ue);
/* Add to the new enb */
ogs_list_add(&new_enb->enb_ue_list, enb_ue);
/* Switch to enb */
- enb_ue->enb = new_enb;
+ enb_ue->enb_id = new_enb->id;
}
enb_ue_t *enb_ue_find_by_enb_ue_s1ap_id(
@@ -3023,9 +3230,9 @@ enb_ue_t *enb_ue_find_by_mme_ue_s1ap_id(uint32_t mme_ue_s1ap_id)
return enb_ue_find(mme_ue_s1ap_id);
}
-enb_ue_t *enb_ue_cycle(enb_ue_t *enb_ue)
+enb_ue_t *enb_ue_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&enb_ue_pool, enb_ue);
+ return ogs_pool_find_by_id(&enb_ue_pool, id);
}
/** sgw_ue_context handling function */
@@ -3035,15 +3242,15 @@ sgw_ue_t *sgw_ue_add(mme_sgw_t *sgw)
ogs_assert(sgw);
- ogs_pool_alloc(&sgw_ue_pool, &sgw_ue);
+ ogs_pool_id_calloc(&sgw_ue_pool, &sgw_ue);
ogs_assert(sgw_ue);
- memset(sgw_ue, 0, sizeof *sgw_ue);
sgw_ue->t_s11_holding = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_s11_holding_timer_expire, sgw_ue);
+ ogs_app()->timer_mgr, mme_timer_s11_holding_timer_expire,
+ OGS_UINT_TO_POINTER(sgw_ue->id));
if (!sgw_ue->t_s11_holding) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&sgw_ue_pool, sgw_ue);
+ ogs_pool_id_free(&sgw_ue_pool, sgw_ue);
return NULL;
}
@@ -3067,7 +3274,7 @@ void sgw_ue_remove(sgw_ue_t *sgw_ue)
ogs_assert(sgw_ue->t_s11_holding);
ogs_timer_delete(sgw_ue->t_s11_holding);
- ogs_pool_free(&sgw_ue_pool, sgw_ue);
+ ogs_pool_id_free(&sgw_ue_pool, sgw_ue);
}
void sgw_ue_switch_to_sgw(sgw_ue_t *sgw_ue, mme_sgw_t *new_sgw)
@@ -3086,9 +3293,9 @@ void sgw_ue_switch_to_sgw(sgw_ue_t *sgw_ue, mme_sgw_t *new_sgw)
sgw_ue->sgw = new_sgw;
}
-sgw_ue_t *sgw_ue_cycle(sgw_ue_t *sgw_ue)
+sgw_ue_t *sgw_ue_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&sgw_ue_pool, sgw_ue);
+ return ogs_pool_find_by_id(&sgw_ue_pool, id);
}
sgw_relocation_e sgw_ue_check_if_relocated(mme_ue_t *mme_ue)
@@ -3098,9 +3305,9 @@ sgw_relocation_e sgw_ue_check_if_relocated(mme_ue_t *mme_ue)
mme_sgw_t *current = NULL, *changed = NULL;
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
- source_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ source_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(source_ue);
current = source_ue->sgw;
@@ -3110,13 +3317,13 @@ sgw_relocation_e sgw_ue_check_if_relocated(mme_ue_t *mme_ue)
if (!changed) return SGW_WITHOUT_RELOCATION;
/* Check if Old Source UE */
- old_source_ue = sgw_ue_cycle(source_ue->source_ue);
+ old_source_ue = sgw_ue_find_by_id(source_ue->source_ue_id);
if (old_source_ue) {
sgw_ue_source_deassociate_target(old_source_ue);
sgw_ue_remove(old_source_ue);
}
- target_ue = sgw_ue_cycle(source_ue->target_ue);
+ target_ue = sgw_ue_find_by_id(source_ue->target_ue_id);
if (target_ue) {
ogs_error("SGW-UE source has already been associated with target");
return SGW_HAS_ALREADY_BEEN_RELOCATED;
@@ -3143,7 +3350,7 @@ void mme_ue_new_guti(mme_ue_t *mme_ue)
ogs_assert(served_gummei->num_of_mme_gid > 0);
ogs_assert(served_gummei->num_of_mme_code > 0);
- if (mme_ue->next.m_tmsi) {
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue)) {
ogs_warn("GUTI has already been allocated");
return;
}
@@ -3163,9 +3370,9 @@ void mme_ue_new_guti(mme_ue_t *mme_ue)
void mme_ue_confirm_guti(mme_ue_t *mme_ue)
{
- ogs_assert(mme_ue->next.m_tmsi);
+ ogs_assert(MME_NEXT_GUTI_IS_AVAILABLE(mme_ue));
- if (mme_ue->current.m_tmsi) {
+ if (MME_CURRENT_GUTI_IS_AVAILABLE(mme_ue)) {
/* MME has a VALID GUTI
* As such, we need to remove previous GUTI in hash table */
ogs_hash_set(self.guti_ue_hash,
@@ -3191,6 +3398,37 @@ void mme_ue_confirm_guti(mme_ue_t *mme_ue)
mme_ue->current.guti.m_tmsi);
}
+void mme_ue_set_p_tmsi(
+ mme_ue_t *mme_ue,
+ ogs_nas_mobile_identity_tmsi_t *nas_mobile_identity_tmsi)
+{
+ ogs_assert(mme_ue);
+ ogs_assert(nas_mobile_identity_tmsi);
+
+ /*
+ * If the P-TMSI received from MSC/VLR is different from the current P-TMSI
+ * known by the MME, store this new P-TMSI as 'Next P-TMSI'. This value will
+ * be sent to the UE through the Attach Accept or TAU Accept message.
+ *
+ * When the UE sends an Attach Complete or TAU Complete message,
+ * the MME updates the 'Current P-TMSI' with the value in 'Next P-TMSI',
+ * thereby confirming and saving the new P-TMSI.
+ */
+ mme_ue->next.p_tmsi = be32toh(nas_mobile_identity_tmsi->tmsi);
+ if (mme_ue->next.p_tmsi != INVALID_P_TMSI) {
+ if (mme_ue->current.p_tmsi == mme_ue->next.p_tmsi)
+ mme_ue->next.p_tmsi = INVALID_P_TMSI;
+ }
+}
+void mme_ue_confirm_p_tmsi(mme_ue_t *mme_ue)
+{
+ ogs_assert(mme_ue);
+ ogs_assert(mme_ue->next.p_tmsi);
+
+ mme_ue->current.p_tmsi = mme_ue->next.p_tmsi;
+ mme_ue->next.p_tmsi = INVALID_P_TMSI;
+}
+
static bool compare_ue_info(mme_sgw_t *node, enb_ue_t *enb_ue)
{
int i;
@@ -3250,82 +3488,93 @@ mme_ue_t *mme_ue_add(enb_ue_t *enb_ue)
char buf[OGS_ADDRSTRLEN];
ogs_assert(enb_ue);
- enb = enb_ue->enb;
- ogs_assert(enb);
- ogs_pool_alloc(&mme_ue_pool, &mme_ue);
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
+ if (!enb) {
+ ogs_error("[%d] eNB has already been removed", enb_ue->enb_id);
+ return NULL;
+ }
+
+ ogs_pool_id_calloc(&mme_ue_pool, &mme_ue);
if (mme_ue == NULL) {
ogs_error("Could not allocate mme_ue context from pool");
return NULL;
}
- memset(mme_ue, 0, sizeof *mme_ue);
-
/* Add All Timers */
mme_ue->t3413.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_t3413_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_t3413_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!mme_ue->t3413.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
mme_ue->t3413.pkbuf = NULL;
mme_ue->t3422.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_t3422_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_t3422_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!mme_ue->t3422.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
mme_ue->t3422.pkbuf = NULL;
mme_ue->t3450.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_t3450_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_t3450_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!mme_ue->t3450.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
mme_ue->t3450.pkbuf = NULL;
mme_ue->t3460.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_t3460_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_t3460_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!mme_ue->t3460.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
mme_ue->t3460.pkbuf = NULL;
mme_ue->t3470.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_t3470_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_t3470_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!mme_ue->t3470.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
mme_ue->t3470.pkbuf = NULL;
mme_ue->t_mobile_reachable.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_mobile_reachable_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_mobile_reachable_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!mme_ue->t_mobile_reachable.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
mme_ue->t_mobile_reachable.pkbuf = NULL;
mme_ue->t_implicit_detach.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_implicit_detach_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_implicit_detach_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!mme_ue->t_implicit_detach.timer) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
mme_ue->t_implicit_detach.pkbuf = NULL;
mme_ue->gn.t_gn_holding = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_gn_holding_timer_expire, mme_ue);
+ ogs_app()->timer_mgr, mme_timer_gn_holding_timer_expire,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (! mme_ue->gn.t_gn_holding) {
ogs_error("ogs_timer_add() failed");
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
return NULL;
}
+ mme_ue->gn.gtp_xact_id = OGS_INVALID_POOL_ID;
mme_ebi_pool_init(mme_ue);
@@ -3380,6 +3629,7 @@ mme_ue_t *mme_ue_add(enb_ue_t *enb_ue)
void mme_ue_remove(mme_ue_t *mme_ue)
{
+ sgw_ue_t *sgw_ue = NULL;
ogs_assert(mme_ue);
ogs_list_remove(&self.mme_ue_list, mme_ue);
@@ -3391,21 +3641,22 @@ void mme_ue_remove(mme_ue_t *mme_ue)
ogs_hash_set(self.mme_gn_teid_hash,
&mme_ue->gn.mme_gn_teid, sizeof(mme_ue->gn.mme_gn_teid), NULL);
- ogs_assert(mme_ue->sgw_ue);
- sgw_ue_remove(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
+ if (sgw_ue) sgw_ue_remove(sgw_ue);
if (mme_ue->imsi_len != 0)
ogs_hash_set(mme_self()->imsi_ue_hash,
mme_ue->imsi, mme_ue->imsi_len, NULL);
- if (mme_ue->current.m_tmsi) {
+ if (MME_CURRENT_GUTI_IS_AVAILABLE(mme_ue)) {
ogs_hash_set(self.guti_ue_hash,
&mme_ue->current.guti, sizeof(ogs_nas_eps_guti_t), NULL);
ogs_assert(mme_m_tmsi_free(mme_ue->current.m_tmsi) == OGS_OK);
}
- if (mme_ue->next.m_tmsi)
+ if (MME_NEXT_GUTI_IS_AVAILABLE(mme_ue)) {
ogs_assert(mme_m_tmsi_free(mme_ue->next.m_tmsi) == OGS_OK);
+ }
/* Clear the saved PDN Connectivity Request */
OGS_NAS_CLEAR_DATA(&mme_ue->pdn_connectivity_request);
@@ -3439,7 +3690,7 @@ void mme_ue_remove(mme_ue_t *mme_ue)
ogs_pool_free(&mme_s11_teid_pool, mme_ue->mme_s11_teid_node);
ogs_pool_free(&mme_gn_teid_pool, mme_ue->gn.mme_gn_teid_node);
- ogs_pool_free(&mme_ue_pool, mme_ue);
+ ogs_pool_id_free(&mme_ue_pool, mme_ue);
ogs_info("[Removed] Number of MME-UEs is now %d",
ogs_list_count(&self.mme_ue_list));
@@ -3450,7 +3701,7 @@ void mme_ue_remove_all(void)
mme_ue_t *mme_ue = NULL, *next = NULL;;
ogs_list_for_each_safe(&self.mme_ue_list, next, mme_ue) {
- enb_ue_t *enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
if (enb_ue) enb_ue_remove(enb_ue);
@@ -3458,9 +3709,9 @@ void mme_ue_remove_all(void)
}
}
-mme_ue_t *mme_ue_cycle(mme_ue_t *mme_ue)
+mme_ue_t *mme_ue_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&mme_ue_pool, mme_ue);
+ return ogs_pool_find_by_id(&mme_ue_pool, id);
}
void mme_ue_fsm_init(mme_ue_t *mme_ue)
@@ -3470,7 +3721,7 @@ void mme_ue_fsm_init(mme_ue_t *mme_ue)
ogs_assert(mme_ue);
memset(&e, 0, sizeof(e));
- e.mme_ue = mme_ue;
+ e.mme_ue_id = mme_ue->id;
ogs_fsm_init(&mme_ue->sm, emm_state_initial, emm_state_final, &e);
}
@@ -3481,7 +3732,7 @@ void mme_ue_fsm_fini(mme_ue_t *mme_ue)
ogs_assert(mme_ue);
memset(&e, 0, sizeof(e));
- e.mme_ue = mme_ue;
+ e.mme_ue_id = mme_ue->id;
ogs_fsm_fini(&mme_ue->sm, &e);
}
@@ -3701,6 +3952,7 @@ int mme_ue_set_imsi(mme_ue_t *mme_ue, char *imsi_bcd)
mme_ue_t *old_mme_ue = NULL;
mme_sess_t *old_sess = NULL;
mme_bearer_t *old_bearer = NULL;
+ sgw_ue_t *sgw_ue = NULL, *old_sgw_ue = NULL;
ogs_assert(mme_ue && imsi_bcd);
ogs_cpystrn(mme_ue->imsi_bcd, imsi_bcd, OGS_MAX_IMSI_BCD_LEN+1);
@@ -3714,13 +3966,19 @@ int mme_ue_set_imsi(mme_ue_t *mme_ue, char *imsi_bcd)
ogs_pool_index(&mme_ue_pool, old_mme_ue)) {
ogs_warn("[%s] OLD UE Context Release", mme_ue->imsi_bcd);
if (ECM_CONNECTED(old_mme_ue)) {
+ enb_ue_t *enb_ue = enb_ue_find_by_id(old_mme_ue->enb_ue_id);
/* Implcit S1 release */
ogs_warn("[%s] Implicit S1 release", mme_ue->imsi_bcd);
- ogs_warn("[%s] ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
- old_mme_ue->imsi_bcd,
- old_mme_ue->enb_ue->enb_ue_s1ap_id,
- old_mme_ue->enb_ue->mme_ue_s1ap_id);
- enb_ue_remove(old_mme_ue->enb_ue);
+ if (enb_ue) {
+ ogs_warn("[%s] ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
+ old_mme_ue->imsi_bcd,
+ enb_ue->enb_ue_s1ap_id,
+ enb_ue->mme_ue_s1ap_id);
+ enb_ue_remove(enb_ue);
+ } else {
+ ogs_error("[%s] S1 Context has already been removed",
+ old_mme_ue->imsi_bcd);
+ }
}
/*
@@ -3738,14 +3996,14 @@ int mme_ue_set_imsi(mme_ue_t *mme_ue, char *imsi_bcd)
/* Phase-1 : Change MME-UE Context in Session Context */
ogs_list_for_each(&old_mme_ue->sess_list, old_sess) {
ogs_list_for_each(&old_sess->bearer_list, old_bearer) {
- old_bearer->mme_ue = mme_ue;
+ old_bearer->mme_ue_id = mme_ue->id;
if (old_bearer->ebi_node)
ogs_pool_free(
&old_mme_ue->ebi_pool, old_bearer->ebi_node);
old_bearer->ebi_node = NULL;
}
- old_sess->mme_ue = mme_ue;
+ old_sess->mme_ue_id = mme_ue->id;
}
/* Phase-2 : Move Session Context from OLD to NEW MME-UE Context */
@@ -3756,9 +4014,11 @@ int mme_ue_set_imsi(mme_ue_t *mme_ue, char *imsi_bcd)
memset(&old_mme_ue->sess_list, 0, sizeof(old_mme_ue->sess_list));
/* Phase-4 : Move sgw_ue->sgw_s11_teid */
- ogs_assert(old_mme_ue->sgw_ue);
- ogs_assert(mme_ue->sgw_ue);
- mme_ue->sgw_ue->sgw_s11_teid = old_mme_ue->sgw_ue->sgw_s11_teid;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
+ ogs_assert(sgw_ue);
+ old_sgw_ue = sgw_ue_find_by_id(old_mme_ue->sgw_ue_id);
+ ogs_assert(old_sgw_ue);
+ sgw_ue->sgw_s11_teid = old_sgw_ue->sgw_s11_teid;
mme_ue_remove(old_mme_ue);
}
@@ -3770,6 +4030,18 @@ int mme_ue_set_imsi(mme_ue_t *mme_ue, char *imsi_bcd)
ogs_hash_set(self.imsi_ue_hash, mme_ue->imsi, mme_ue->imsi_len, mme_ue);
+ mme_ue->hssmap = mme_hssmap_find_by_imsi_bcd(mme_ue->imsi_bcd);
+ if (mme_ue->hssmap) {
+ char plmn_id_str[OGS_PLMNIDSTRLEN];
+ const char *realm = mme_ue->hssmap->realm ? mme_ue->hssmap->realm : "NULL";
+ const char *host = mme_ue->hssmap->host ? mme_ue->hssmap->host : "NULL";
+
+ ogs_plmn_id_to_string(&mme_ue->hssmap->plmn_id, plmn_id_str);
+ ogs_debug("[%s]: HSS Map HPLMN[%s] Realm[%s] Host[%s]",
+ mme_ue->imsi_bcd, plmn_id_str, realm, host);
+
+ }
+
return OGS_OK;
}
@@ -3870,7 +4142,7 @@ int mme_ue_xact_count(mme_ue_t *mme_ue, uint8_t org)
ogs_assert(org == OGS_GTP_LOCAL_ORIGINATOR ||
org == OGS_GTP_REMOTE_ORIGINATOR);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
if (!sgw_ue) return 0;
gnode = sgw_ue->gnode;
@@ -3886,34 +4158,30 @@ void enb_ue_associate_mme_ue(enb_ue_t *enb_ue, mme_ue_t *mme_ue)
ogs_assert(mme_ue);
ogs_assert(enb_ue);
- mme_ue->enb_ue = enb_ue;
- enb_ue->mme_ue = mme_ue;
+ mme_ue->enb_ue_id = enb_ue->id;
+ enb_ue->mme_ue_id = mme_ue->id;
}
void enb_ue_deassociate(enb_ue_t *enb_ue)
{
ogs_assert(enb_ue);
- enb_ue->mme_ue = NULL;
+ enb_ue->mme_ue_id = OGS_INVALID_POOL_ID;
}
void enb_ue_unlink(mme_ue_t *mme_ue)
{
ogs_assert(mme_ue);
- mme_ue->enb_ue = NULL;
+ mme_ue->enb_ue_id = OGS_INVALID_POOL_ID;
}
void enb_ue_source_associate_target(enb_ue_t *source_ue, enb_ue_t *target_ue)
{
- mme_ue_t *mme_ue = NULL;
-
ogs_assert(source_ue);
ogs_assert(target_ue);
- mme_ue = source_ue->mme_ue;
- ogs_assert(mme_ue);
- target_ue->mme_ue = mme_ue;
- target_ue->source_ue = source_ue;
- source_ue->target_ue = target_ue;
+ target_ue->mme_ue_id = source_ue->mme_ue_id;
+ target_ue->source_ue_id = source_ue->id;
+ source_ue->target_ue_id = target_ue->id;
}
void enb_ue_source_deassociate_target(enb_ue_t *enb_ue)
@@ -3922,22 +4190,28 @@ void enb_ue_source_deassociate_target(enb_ue_t *enb_ue)
enb_ue_t *target_ue = NULL;
ogs_assert(enb_ue);
- if (enb_ue->target_ue) {
+ if (enb_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ enb_ue->target_ue_id <= OGS_MAX_POOL_ID) {
source_ue = enb_ue;
- target_ue = enb_ue->target_ue;
-
- ogs_assert(source_ue->target_ue);
- ogs_assert(target_ue->source_ue);
- source_ue->target_ue = NULL;
- target_ue->source_ue = NULL;
- } else if (enb_ue->source_ue) {
+ target_ue = enb_ue_find_by_id(enb_ue->target_ue_id);
+
+ ogs_assert(source_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ source_ue->target_ue_id <= OGS_MAX_POOL_ID);
+ ogs_assert(target_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ target_ue->source_ue_id <= OGS_MAX_POOL_ID);
+ source_ue->target_ue_id = OGS_INVALID_POOL_ID;
+ target_ue->source_ue_id = OGS_INVALID_POOL_ID;
+ } else if (enb_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ enb_ue->source_ue_id <= OGS_MAX_POOL_ID) {
target_ue = enb_ue;
- source_ue = enb_ue->source_ue;
-
- ogs_assert(source_ue->target_ue);
- ogs_assert(target_ue->source_ue);
- source_ue->target_ue = NULL;
- target_ue->source_ue = NULL;
+ source_ue = enb_ue_find_by_id(enb_ue->source_ue_id);
+
+ ogs_assert(source_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ source_ue->target_ue_id <= OGS_MAX_POOL_ID);
+ ogs_assert(target_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ target_ue->source_ue_id <= OGS_MAX_POOL_ID);
+ source_ue->target_ue_id = OGS_INVALID_POOL_ID;
+ target_ue->source_ue_id = OGS_INVALID_POOL_ID;
}
}
@@ -3946,34 +4220,30 @@ void sgw_ue_associate_mme_ue(sgw_ue_t *sgw_ue, mme_ue_t *mme_ue)
ogs_assert(mme_ue);
ogs_assert(sgw_ue);
- mme_ue->sgw_ue = sgw_ue;
- sgw_ue->mme_ue = mme_ue;
+ mme_ue->sgw_ue_id = sgw_ue->id;
+ sgw_ue->mme_ue_id = mme_ue->id;
}
void sgw_ue_deassociate(sgw_ue_t *sgw_ue)
{
ogs_assert(sgw_ue);
- sgw_ue->mme_ue = NULL;
+ sgw_ue->mme_ue_id = OGS_INVALID_POOL_ID;
}
void sgw_ue_unlink(mme_ue_t *mme_ue)
{
ogs_assert(mme_ue);
- mme_ue->sgw_ue = NULL;
+ mme_ue->sgw_ue_id = OGS_INVALID_POOL_ID;
}
void sgw_ue_source_associate_target(sgw_ue_t *source_ue, sgw_ue_t *target_ue)
{
- mme_ue_t *mme_ue = NULL;
-
ogs_assert(source_ue);
ogs_assert(target_ue);
- mme_ue = source_ue->mme_ue;
- ogs_assert(mme_ue);
- target_ue->mme_ue = mme_ue;
- target_ue->source_ue = source_ue;
- source_ue->target_ue = target_ue;
+ target_ue->mme_ue_id = source_ue->mme_ue_id;
+ target_ue->source_ue_id = source_ue->id;
+ source_ue->target_ue_id = target_ue->id;
}
void sgw_ue_source_deassociate_target(sgw_ue_t *sgw_ue)
@@ -3982,22 +4252,28 @@ void sgw_ue_source_deassociate_target(sgw_ue_t *sgw_ue)
sgw_ue_t *target_ue = NULL;
ogs_assert(sgw_ue);
- if (sgw_ue->target_ue) {
+ if (sgw_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ sgw_ue->target_ue_id <= OGS_MAX_POOL_ID) {
source_ue = sgw_ue;
- target_ue = sgw_ue->target_ue;
-
- ogs_assert(source_ue->target_ue);
- ogs_assert(target_ue->source_ue);
- source_ue->target_ue = NULL;
- target_ue->source_ue = NULL;
- } else if (sgw_ue->source_ue) {
+ target_ue = sgw_ue_find_by_id(sgw_ue->target_ue_id);
+
+ ogs_assert(source_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ source_ue->target_ue_id <= OGS_MAX_POOL_ID);
+ ogs_assert(target_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ target_ue->source_ue_id <= OGS_MAX_POOL_ID);
+ source_ue->target_ue_id = OGS_INVALID_POOL_ID;
+ target_ue->source_ue_id = OGS_INVALID_POOL_ID;
+ } else if (sgw_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ sgw_ue->source_ue_id <= OGS_MAX_POOL_ID) {
target_ue = sgw_ue;
- source_ue = sgw_ue->source_ue;
-
- ogs_assert(source_ue->target_ue);
- ogs_assert(target_ue->source_ue);
- source_ue->target_ue = NULL;
- target_ue->source_ue = NULL;
+ source_ue = sgw_ue_find_by_id(sgw_ue->source_ue_id);
+
+ ogs_assert(source_ue->target_ue_id >= OGS_MIN_POOL_ID &&
+ source_ue->target_ue_id <= OGS_MAX_POOL_ID);
+ ogs_assert(target_ue->source_ue_id >= OGS_MIN_POOL_ID &&
+ target_ue->source_ue_id <= OGS_MAX_POOL_ID);
+ source_ue->target_ue_id = OGS_INVALID_POOL_ID;
+ target_ue->source_ue_id = OGS_INVALID_POOL_ID;
}
}
@@ -4009,13 +4285,12 @@ mme_sess_t *mme_sess_add(mme_ue_t *mme_ue, uint8_t pti)
ogs_assert(mme_ue);
ogs_assert(pti != OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED);
- ogs_pool_alloc(&mme_sess_pool, &sess);
+ ogs_pool_id_calloc(&mme_sess_pool, &sess);
ogs_assert(sess);
- memset(sess, 0, sizeof *sess);
ogs_list_init(&sess->bearer_list);
- sess->mme_ue = mme_ue;
+ sess->mme_ue_id = mme_ue->id;
sess->pti = pti;
bearer = mme_bearer_add(sess);
@@ -4033,7 +4308,7 @@ void mme_sess_remove(mme_sess_t *sess)
mme_ue_t *mme_ue = NULL;
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
ogs_list_remove(&mme_ue->sess_list, sess);
@@ -4045,7 +4320,7 @@ void mme_sess_remove(mme_sess_t *sess)
OGS_TLV_CLEAR_DATA(&sess->pgw_pco);
OGS_TLV_CLEAR_DATA(&sess->pgw_epco);
- ogs_pool_free(&mme_sess_pool, sess);
+ ogs_pool_id_free(&mme_sess_pool, sess);
stats_remove_mme_session();
}
@@ -4085,7 +4360,7 @@ mme_sess_t *mme_sess_find_by_ebi(const mme_ue_t *mme_ue, uint8_t ebi)
bearer = mme_bearer_find_by_ue_ebi(mme_ue, ebi);
if (bearer)
- return bearer->sess;
+ return mme_sess_find_by_id(bearer->sess_id);
return NULL;
}
@@ -4107,6 +4382,11 @@ mme_sess_t *mme_sess_find_by_apn(const mme_ue_t *mme_ue, const char *apn)
return NULL;
}
+mme_sess_t *mme_sess_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&mme_sess_pool, id);
+}
+
mme_sess_t *mme_sess_first(const mme_ue_t *mme_ue)
{
return ogs_list_first(&mme_ue->sess_list);
@@ -4137,12 +4417,13 @@ mme_bearer_t *mme_bearer_add(mme_sess_t *sess)
mme_ue_t *mme_ue = NULL;
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
- ogs_pool_alloc(&mme_bearer_pool, &bearer);
+ ogs_pool_id_calloc(&mme_bearer_pool, &bearer);
ogs_assert(bearer);
- memset(bearer, 0, sizeof *bearer);
+
+ ogs_list_init(&bearer->update.xact_list);
ogs_pool_alloc(&mme_ue->ebi_pool, &bearer->ebi_node);
ogs_assert(bearer->ebi_node);
@@ -4152,17 +4433,18 @@ mme_bearer_t *mme_bearer_add(mme_sess_t *sess)
ogs_assert(bearer->ebi >= MIN_EPS_BEARER_ID &&
bearer->ebi <= MAX_EPS_BEARER_ID);
- bearer->mme_ue = mme_ue;
- bearer->sess = sess;
+ bearer->mme_ue_id = mme_ue->id;
+ bearer->sess_id = sess->id;
ogs_list_add(&sess->bearer_list, bearer);
bearer->t3489.timer = ogs_timer_add(
- ogs_app()->timer_mgr, mme_timer_t3489_expire, bearer);
+ ogs_app()->timer_mgr, mme_timer_t3489_expire,
+ OGS_UINT_TO_POINTER(bearer->id));
bearer->t3489.pkbuf = NULL;
memset(&e, 0, sizeof(e));
- e.bearer = bearer;
+ e.bearer_id = bearer->id;
ogs_fsm_init(&bearer->sm, esm_state_initial, esm_state_final, &e);
return bearer;
@@ -4171,26 +4453,37 @@ mme_bearer_t *mme_bearer_add(mme_sess_t *sess)
void mme_bearer_remove(mme_bearer_t *bearer)
{
mme_event_t e;
+ mme_ue_t *mme_ue = NULL;
+ mme_sess_t *sess = NULL;
+ ogs_gtp_xact_t *xact = NULL, *next_xact = NULL;
ogs_assert(bearer);
- ogs_assert(bearer->mme_ue);
- ogs_assert(bearer->sess);
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ ogs_assert(mme_ue);
+ sess = mme_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
memset(&e, 0, sizeof(e));
- e.bearer = bearer;
+ e.bearer_id = bearer->id;
ogs_fsm_fini(&bearer->sm, &e);
CLEAR_BEARER_ALL_TIMERS(bearer);
ogs_timer_delete(bearer->t3489.timer);
- ogs_list_remove(&bearer->sess->bearer_list, bearer);
+ ogs_list_remove(&sess->bearer_list, bearer);
OGS_TLV_CLEAR_DATA(&bearer->tft);
if (bearer->ebi_node)
- ogs_pool_free(&bearer->mme_ue->ebi_pool, bearer->ebi_node);
+ ogs_pool_free(&mme_ue->ebi_pool, bearer->ebi_node);
+
+ ogs_list_for_each_entry_safe(&bearer->update.xact_list,
+ next_xact, xact, to_update_node) {
+ ogs_timer_stop(xact->tm_peer);
+ ogs_list_remove(&bearer->update.xact_list, &xact->to_update_node);
+ }
- ogs_pool_free(&mme_bearer_pool, bearer);
+ ogs_pool_id_free(&mme_bearer_pool, bearer);
}
void mme_bearer_remove_all(mme_sess_t *sess)
@@ -4255,10 +4548,14 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
mme_bearer_t *bearer = NULL;
mme_sess_t *sess = NULL;
+ mme_ue_t *sess_mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_assert(mme_ue);
ogs_assert(message);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+
pti = message->esm.h.procedure_transaction_identity;
ebi = message->esm.h.eps_bearer_identity;
@@ -4270,7 +4567,7 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
bearer = mme_bearer_find_by_ue_ebi(mme_ue, ebi);
if (!bearer) {
ogs_error("No Bearer : EBI[%d]", ebi);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -4282,8 +4579,9 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
}
if (pti == OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED) {
- ogs_error("Both PTI[%d] and EBI[%d] are 0", pti, ebi);
- r = nas_eps_send_attach_reject(mme_ue,
+ ogs_error("ESM message type: %d, Both PTI[%d] and EBI[%d] are 0",
+ message->esm.h.message_type, pti, ebi);
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -4302,7 +4600,7 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
if (!bearer) {
ogs_error("No Bearer : Linked-EBI[%d]",
linked_eps_bearer_identity->eps_bearer_identity);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -4353,7 +4651,7 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
}
if (bearer) {
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
sess->pti = pti;
@@ -4368,6 +4666,9 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
sess = mme_sess_find_by_apn(mme_ue,
pdn_connectivity_request->access_point_name.apn);
if (sess && create_action != OGS_GTP_CREATE_IN_ATTACH_REQUEST) {
+
+ sess->pti = pti;
+
r = nas_eps_send_pdn_connectivity_reject(
sess,
OGS_NAS_ESM_CAUSE_MULTIPLE_PDN_CONNECTIONS_FOR_A_GIVEN_APN_NOT_ALLOWED,
@@ -4385,11 +4686,12 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
ogs_debug("[%s:%d:%d:%p]",
sess->session ? sess->session->name : "Unknown",
sess->pti, pti, sess);
+
+ sess_mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_debug("[%s:%p]",
- sess->mme_ue ? sess->mme_ue->imsi_bcd : "Unknown",
- sess->mme_ue);
+ sess_mme_ue ? sess_mme_ue->imsi_bcd : "Unknown",
+ sess_mme_ue);
}
- MME_UE_LIST_CHECK;
}
if (!sess) {
@@ -4400,20 +4702,22 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
ogs_debug("[%s:%d:%d:%p]",
sess->session ? sess->session->name : "Unknown",
sess->pti, pti, sess);
+
+ sess_mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_debug("[%s:%p]",
- sess->mme_ue ? sess->mme_ue->imsi_bcd : "Unknown",
- sess->mme_ue);
- MME_UE_LIST_CHECK;
+ sess_mme_ue ? sess_mme_ue->imsi_bcd : "Unknown",
+ sess_mme_ue);
} else {
sess->pti = pti;
ogs_debug("[%s:%p]", mme_ue->imsi_bcd, mme_ue);
ogs_debug("[%s:%d:%d:%p]",
sess->session ? sess->session->name : "Unknown",
sess->pti, pti, sess);
+
+ sess_mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_debug("[%s:%p]",
- sess->mme_ue ? sess->mme_ue->imsi_bcd : "Unknown",
- sess->mme_ue);
- MME_UE_LIST_CHECK;
+ sess_mme_ue ? sess_mme_ue->imsi_bcd : "Unknown",
+ sess_mme_ue);
}
} else {
@@ -4421,7 +4725,7 @@ mme_bearer_t *mme_bearer_find_or_add_by_message(
if (!sess) {
ogs_error("No Session : ESM message type[%d], PTI[%d]",
message->esm.h.message_type, pti);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -4451,7 +4755,7 @@ mme_bearer_t *mme_linked_bearer(mme_bearer_t *bearer)
mme_sess_t *sess = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
return mme_default_bearer_in_sess(sess);
@@ -4470,9 +4774,9 @@ mme_bearer_t *mme_bearer_next(mme_bearer_t *bearer)
return ogs_list_next(bearer);
}
-mme_bearer_t *mme_bearer_cycle(mme_bearer_t *bearer)
+mme_bearer_t *mme_bearer_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&mme_bearer_pool, bearer);
+ return ogs_pool_find_by_id(&mme_bearer_pool, id);
}
void mme_session_remove_all(mme_ue_t *mme_ue)
@@ -4652,7 +4956,8 @@ int mme_m_tmsi_free(mme_m_tmsi_t *m_tmsi)
ogs_assert(m_tmsi);
/* Restore M-TMSI by Issue #2307 */
- *m_tmsi &= 0x003fffff;
+ *m_tmsi &= 0x3fffffff;
+ *m_tmsi = ((*m_tmsi & 0xffff) | ((*m_tmsi & 0x3f000000) >> 8));
ogs_pool_free(&m_tmsi_pool, m_tmsi);
return OGS_OK;
diff --git a/src/mme/mme-context.h b/src/mme/mme-context.h
index 5e5671dd2e..4452bbbedd 100644
--- a/src/mme/mme-context.h
+++ b/src/mme/mme-context.h
@@ -52,6 +52,7 @@ typedef struct mme_sgw_s mme_sgw_t;
typedef struct mme_pgw_s mme_pgw_t;
typedef struct mme_vlr_s mme_vlr_t;
typedef struct mme_csmap_s mme_csmap_t;
+typedef struct mme_hssmap_s mme_hssmap_t;
typedef struct enb_ue_s enb_ue_t;
typedef struct sgw_ue_s sgw_ue_t;
@@ -97,6 +98,7 @@ typedef struct mme_context_s {
ogs_list_t vlr_list; /* VLR SGsAP Client List */
ogs_list_t csmap_list; /* TAI-LAI Map List */
+ ogs_list_t hssmap_list; /* PLMN HSS Map List */
/* Served GUMME */
int num_of_served_gummei;
@@ -146,44 +148,6 @@ typedef struct mme_context_s {
/* Generator for unique identification */
uint32_t mme_ue_s1ap_id; /* mme_ue_s1ap_id generator */
-#define MME_UE_LIST_CHECK \
- if (ogs_log_get_domain_level(OGS_LOG_DOMAIN) >= OGS_LOG_TRACE) { \
- mme_ue_t *mme_ue = NULL; \
- sgw_ue_t *sgw_ue = NULL; \
- enb_ue_t *enb_ue = NULL; \
- mme_sess_t *sess = NULL; \
- mme_bearer_t *bearer = NULL; \
- ogs_list_for_each(&mme_self()->mme_ue_list, mme_ue) { \
- ogs_trace("MME_UE(%p) [%s] MME_S11_TEID[%d]", \
- mme_ue, mme_ue->imsi_bcd, mme_ue->mme_s11_teid); \
- if (mme_ue->sgw_ue) { \
- sgw_ue = mme_ue->sgw_ue; \
- ogs_trace("SGW_UE(%p) MME_UE(%p) SGW_S11_TEID[%d]", \
- sgw_ue, mme_ue, sgw_ue->sgw_s11_teid); \
- } \
- if (mme_ue->enb_ue) { \
- enb_ue = mme_ue->enb_ue; \
- ogs_trace("ENB_UE(%p) MME_UE(%p) " \
- "[ENB_UE_S1AP_ID:%d MME_UE_S1AP_ID:%d]", \
- enb_ue, enb_ue->mme_ue, \
- enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id); \
- } \
- ogs_list_for_each(&mme_ue->sess_list, sess) { \
- ogs_trace("SESS(%p) [%s:%d]", sess, \
- sess->session ? sess->session->name : "Unknown", \
- sess->pti); \
- ogs_assert(sess->mme_ue == mme_ue); \
- ogs_list_for_each(&sess->bearer_list, bearer) { \
- ogs_trace("BEARER(%p) [%d] " \
- "ENB_S1U_TEID[%d] SGW_S1U_TEID[%d]", \
- bearer, bearer->ebi, \
- bearer->enb_s1u_teid, bearer->sgw_s1u_teid); \
- ogs_assert(bearer->sess == sess); \
- ogs_assert(bearer->mme_ue == mme_ue); \
- } \
- } \
- } \
- }
ogs_list_t mme_ue_list;
ogs_hash_t *enb_addr_hash; /* hash table for ENB Address */
@@ -240,8 +204,6 @@ typedef struct mme_pgw_s {
#define MME_SGSAP_IS_CONNECTED(__mME) \
((__mME) && ((__mME)->csmap) && ((__mME)->csmap->vlr) && \
(OGS_FSM_CHECK(&(__mME)->csmap->vlr->sm, sgsap_state_connected)))
-#define MME_P_TMSI_IS_AVAILABLE(__mME) \
- (MME_SGSAP_IS_CONNECTED(__mME) && (__mME)->p_tmsi)
typedef struct mme_vlr_s {
ogs_lnode_t lnode;
@@ -254,9 +216,9 @@ typedef struct mme_vlr_s {
uint16_t ostream_id; /* vlr_ostream_id generator */
ogs_sockaddr_t *sa_list; /* VLR SGsAP Socket Address List */
+ ogs_sockaddr_t *local_sa_list; /* VLR SGsAP Socket Local Address List */
ogs_sock_t *sock; /* VLR SGsAP Socket */
- ogs_sockaddr_t *addr; /* VLR SGsAP Connected Socket Address */
ogs_sockopt_t *option; /* VLR SGsAP Socket Option */
ogs_poll_t *poll; /* VLR SGsAP Poll */
} mme_vlr_t;
@@ -270,11 +232,21 @@ typedef struct mme_csmap_s {
mme_vlr_t *vlr;
} mme_csmap_t;
+typedef struct mme_hssmap_s {
+ ogs_lnode_t lnode;
+
+ ogs_plmn_id_t plmn_id;
+ char *realm;
+ char *host;
+} mme_hssmap_t;
+
typedef struct mme_enb_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
ogs_fsm_t sm; /* A state machine */
+ bool enb_id_presence;
uint32_t enb_id; /* eNB_ID received from eNB */
ogs_plmn_id_t plmn_id; /* eNB PLMN-ID received from eNB */
ogs_sctp_sock_t sctp; /* SCTP socket */
@@ -297,6 +269,7 @@ typedef struct mme_enb_s {
struct enb_ue_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
uint32_t index;
/* UE identity */
@@ -308,8 +281,8 @@ struct enb_ue_s {
/* Handover Info */
S1AP_HandoverType_t handover_type;
- enb_ue_t *source_ue;
- enb_ue_t *target_ue;
+ ogs_pool_id_t source_ue_id;
+ ogs_pool_id_t target_ue_id;
/* Use mme_ue->tai, mme_ue->e_cgi.
* Do not access enb_ue->saved.tai enb_ue->saved.e_cgi.
@@ -323,6 +296,12 @@ struct enb_ue_s {
/* S1 Holding timer for removing this context */
ogs_timer_t *t_s1_holding;
+ /* UEContextReleaseRequest or InitialContextSetupFailure */
+ struct {
+ S1AP_Cause_PR group;
+ long cause;
+ } relcause;
+
/* Store by UE Context Release Command
* Retrieve by UE Context Release Complete */
#define S1AP_UE_CTX_REL_INVALID_ACTION 0
@@ -338,15 +317,16 @@ struct enb_ue_s {
bool part_of_s1_reset_requested;
/* Related Context */
- mme_enb_t *enb;
- mme_ue_t *mme_ue;
+ ogs_pool_id_t enb_id;
+ ogs_pool_id_t mme_ue_id;
};
struct sgw_ue_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
- sgw_ue_t *source_ue;
- sgw_ue_t *target_ue;
+ ogs_pool_id_t source_ue_id;
+ ogs_pool_id_t target_ue_id;
/* UE identity */
uint32_t sgw_s11_teid; /* SGW-S11-TEID is received from SGW */
@@ -359,11 +339,12 @@ struct sgw_ue_s {
mme_sgw_t *sgw;
ogs_gtp_node_t *gnode;
};
- mme_ue_t *mme_ue;
+ ogs_pool_id_t mme_ue_id;
};
struct mme_ue_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
ogs_fsm_t sm; /* A state machine */
struct {
@@ -381,6 +362,11 @@ struct mme_ue_s {
ogs_nas_detach_type_t detach;
} nas_eps;
+#define MME_TAU_TYPE_INITIAL_UE_MESSAGE 1
+#define MME_TAU_TYPE_UPLINK_NAS_TRANPORT 2
+#define MME_TAU_TYPE_UNPROTECTED_INGERITY 3
+ uint8_t tracking_area_update_request_type;
+
/* 1. MME initiated detach request to the UE.
* (nas_eps.type = MME_EPS_TYPE_DETACH_REQUEST_TO_UE)
* 2. If UE is IDLE, Paging sent to the UE
@@ -421,7 +407,6 @@ struct mme_ue_s {
int a_msisdn_len;
char a_msisdn_bcd[OGS_MAX_MSISDN_BCD_LEN+1];
- mme_p_tmsi_t p_tmsi;
struct {
ogs_pool_id_t *mme_gn_teid_node; /* A node of MME-Gn-TEID */
uint32_t mme_gn_teid; /* MME-Gn-TEID is derived from NODE */
@@ -430,11 +415,19 @@ struct mme_ue_s {
ogs_ip_t sgsn_gn_ip_alt;
/* Unnamed timer in 3GPP TS 23.401 D.3.5 step 2), see also 3GPP TS 23.060 6.9.1.2.2 */
ogs_timer_t *t_gn_holding;
+ ogs_pool_id_t gtp_xact_id; /* 2g->4g SGSN Context Req/Resp/Ack gtp1c xact */
} gn;
struct {
+#define MME_NEXT_GUTI_IS_AVAILABLE(__mME) ((__mME)->next.m_tmsi)
+#define MME_CURRENT_GUTI_IS_AVAILABLE(__mME) ((__mME)->current.m_tmsi)
mme_m_tmsi_t *m_tmsi;
ogs_nas_eps_guti_t guti;
+#define MME_NEXT_P_TMSI_IS_AVAILABLE(__mME) \
+ (MME_SGSAP_IS_CONNECTED(__mME) && (__mME)->next.p_tmsi)
+#define MME_CURRENT_P_TMSI_IS_AVAILABLE(__mME) \
+ (MME_SGSAP_IS_CONNECTED(__mME) && (__mME)->current.p_tmsi)
+ mme_p_tmsi_t p_tmsi;
} current, next;
ogs_pool_id_t *mme_s11_teid_node; /* A node of MME-S11-TEID */
@@ -464,8 +457,6 @@ struct mme_ue_s {
int security_context_available;
int mac_failed;
- bool location_updated_but_not_canceled_yet;
-
/* Security Context */
ogs_nas_ue_network_capability_t ue_network_capability;
ogs_nas_ms_network_capability_t ms_network_capability;
@@ -490,7 +481,7 @@ struct mme_ue_s {
uint8_t kenb[OGS_SHA256_DIGEST_SIZE];
uint8_t hash_mme[OGS_HASH_MME_LEN];
uint32_t nonceue, noncemme;
- uint8_t gprs_ciphering_key_sequence_number;
+ uint8_t gprs_ciphering_key_sequence_number;
struct {
ED2(uint8_t nhcc_spare:5;,
@@ -537,50 +528,66 @@ struct mme_ue_s {
/* Paging Info */
#define ECM_CONNECTED(__mME) \
- ((__mME) && ((__mME)->enb_ue != NULL) && enb_ue_cycle((__mME)->enb_ue))
+ ((__mME) && \
+ ((__mME)->enb_ue_id >= OGS_MIN_POOL_ID) && \
+ ((__mME)->enb_ue_id <= OGS_MAX_POOL_ID) && \
+ (enb_ue_find_by_id((__mME)->enb_ue_id)))
#define ECM_IDLE(__mME) \
((__mME) && \
- (((__mME)->enb_ue == NULL) || (enb_ue_cycle((__mME)->enb_ue) == NULL)))
- enb_ue_t *enb_ue; /* S1 UE context */
+ (((__mME)->enb_ue_id < OGS_MIN_POOL_ID) || \
+ ((__mME)->enb_ue_id > OGS_MAX_POOL_ID) || \
+ (enb_ue_find_by_id((__mME)->enb_ue_id) == NULL)))
+ ogs_pool_id_t enb_ue_id;
#define HOLDING_S1_CONTEXT(__mME) \
do { \
- enb_ue_deassociate((__mME)->enb_ue); \
+ enb_ue_t *enb_ue_holding = NULL; \
+ \
+ (__mME)->enb_ue_holding_id = OGS_INVALID_POOL_ID; \
\
- (__mME)->enb_ue_holding = enb_ue_cycle((__mME)->enb_ue); \
- if ((__mME)->enb_ue_holding) { \
+ enb_ue_holding = enb_ue_find_by_id((__mME)->enb_ue_id); \
+ if (enb_ue_holding) { \
+ enb_ue_deassociate(enb_ue_holding); \
+ \
ogs_warn("[%s] Holding S1 Context", (__mME)->imsi_bcd); \
ogs_warn("[%s] ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]", \
- (__mME)->imsi_bcd, (__mME)->enb_ue_holding->enb_ue_s1ap_id, \
- (__mME)->enb_ue_holding->mme_ue_s1ap_id); \
+ (__mME)->imsi_bcd, \
+ enb_ue_holding->enb_ue_s1ap_id, \
+ enb_ue_holding->mme_ue_s1ap_id); \
\
- (__mME)->enb_ue_holding->ue_ctx_rel_action = \
+ enb_ue_holding->ue_ctx_rel_action = \
S1AP_UE_CTX_REL_S1_CONTEXT_REMOVE; \
- ogs_timer_start((__mME)->enb_ue_holding->t_s1_holding, \
+ ogs_timer_start(enb_ue_holding->t_s1_holding, \
mme_timer_cfg(MME_TIMER_S1_HOLDING)->duration); \
+ \
+ (__mME)->enb_ue_holding_id = (__mME)->enb_ue_id; \
} else \
ogs_error("[%s] S1 Context has already been removed", \
(__mME)->imsi_bcd); \
} while(0)
#define CLEAR_S1_CONTEXT(__mME) \
do { \
- if (enb_ue_cycle((__mME)->enb_ue_holding)) { \
+ enb_ue_t *enb_ue_holding = NULL; \
+ \
+ enb_ue_holding = enb_ue_find_by_id((__mME)->enb_ue_holding_id); \
+ if (enb_ue_holding) { \
int r; \
ogs_warn("[%s] Clear S1 Context", (__mME)->imsi_bcd); \
ogs_warn("[%s] ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]", \
- (__mME)->imsi_bcd, (__mME)->enb_ue_holding->enb_ue_s1ap_id, \
- (__mME)->enb_ue_holding->mme_ue_s1ap_id); \
+ (__mME)->imsi_bcd, \
+ enb_ue_holding->enb_ue_s1ap_id, \
+ enb_ue_holding->mme_ue_s1ap_id); \
\
r = s1ap_send_ue_context_release_command( \
- (__mME)->enb_ue_holding, \
+ enb_ue_holding, \
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release, \
S1AP_UE_CTX_REL_S1_CONTEXT_REMOVE, 0); \
ogs_expect(r == OGS_OK); \
ogs_assert(r != OGS_ERROR); \
} \
- (__mME)->enb_ue_holding = NULL; \
+ (__mME)->enb_ue_holding_id = OGS_INVALID_POOL_ID; \
} while(0)
- enb_ue_t *enb_ue_holding;
+ ogs_pool_id_t enb_ue_holding_id;
struct {
#define MME_CLEAR_PAGING_INFO(__mME) \
@@ -597,7 +604,7 @@ struct mme_ue_s {
ogs_assert(__tYPE); \
ogs_debug("[%s] Store Paging Info", mme_ue->imsi_bcd); \
(__mME)->paging.type = __tYPE; \
- (__mME)->paging.data = __dATA; \
+ (__mME)->paging.data = OGS_UINT_TO_POINTER(__dATA); \
} while(0)
#define MME_PAGING_ONGOING(__mME) ((__mME) && ((__mME)->paging.type))
@@ -615,7 +622,7 @@ struct mme_ue_s {
} paging;
/* SGW UE context */
- sgw_ue_t *sgw_ue;
+ ogs_pool_id_t sgw_ue_id;
/* Save PDN Connectivity Request */
ogs_nas_esm_message_container_t pdn_connectivity_request;
@@ -662,10 +669,10 @@ struct mme_ue_s {
} while(0);
#define CS_CALL_SERVICE_INDICATOR(__mME) \
- (MME_P_TMSI_IS_AVAILABLE(__mME) && \
+ (MME_CURRENT_P_TMSI_IS_AVAILABLE(__mME) && \
((__mME)->service_indicator) == SGSAP_CS_CALL_SERVICE_INDICATOR)
#define SMS_SERVICE_INDICATOR(__mME) \
- (MME_P_TMSI_IS_AVAILABLE(__mME) && \
+ (MME_CURRENT_P_TMSI_IS_AVAILABLE(__mME) && \
((__mME)->service_indicator) == SGSAP_SMS_SERVICE_INDICATOR)
uint8_t service_indicator;
@@ -713,22 +720,29 @@ struct mme_ue_s {
ogs_list_t bearer_to_modify_list;
mme_csmap_t *csmap;
+ mme_hssmap_t *hssmap;
};
#define SESSION_CONTEXT_IS_AVAILABLE(__mME) \
- ((__mME) && ((__mME)->sgw_ue) && (((__mME)->sgw_ue)->sgw_s11_teid))
+ ((__mME) && \
+ ((__mME)->sgw_ue_id >= OGS_MIN_POOL_ID) && \
+ ((__mME)->sgw_ue_id <= OGS_MAX_POOL_ID) && \
+ (sgw_ue_find_by_id((__mME)->sgw_ue_id)) && \
+ (sgw_ue_find_by_id((__mME)->sgw_ue_id)->sgw_s11_teid))
#define CLEAR_SESSION_CONTEXT(__mME) \
do { \
+ sgw_ue_t *sgw_ue = NULL; \
ogs_assert((__mME)); \
- ((__mME)->sgw_ue)->sgw_s11_teid = 0; \
+ sgw_ue = sgw_ue_find_by_id((__mME)->sgw_ue_id); \
+ if (sgw_ue) sgw_ue->sgw_s11_teid = 0; \
} while(0)
#define MME_SESS_CLEAR(__sESS) \
do { \
mme_ue_t *mme_ue = NULL; \
ogs_assert(__sESS); \
- mme_ue = (__sESS)->mme_ue; \
+ mme_ue = mme_ue_find_by_id((__sESS)->mme_ue_id); \
ogs_assert(mme_ue); \
ogs_info("Removed Session: UE IMSI:[%s] APN:[%s]", \
mme_ue->imsi_bcd, \
@@ -744,6 +758,7 @@ struct mme_ue_s {
(mme_ue_have_session_release_pending(__mME))
typedef struct mme_sess_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
uint8_t pti; /* Procedure Trasaction Identity */
@@ -751,16 +766,19 @@ typedef struct mme_sess_s {
ogs_ip_t pgw_s5c_ip;
/* PDN Connectivity Request */
- ogs_nas_request_type_t request_type;
+ ogs_nas_request_type_t ue_request_type;
/* mme_bearer_first(sess) : Default Bearer Context */
ogs_list_t bearer_list;
/* Related Context */
- mme_ue_t *mme_ue;
+ ogs_pool_id_t mme_ue_id;
ogs_session_t *session;
+ /* PDN Address Allocation (PAA) */
+ ogs_paa_t paa;
+
/* Save Protocol Configuration Options from UE */
struct {
uint8_t length;
@@ -819,6 +837,8 @@ typedef struct mme_bearer_s {
ogs_lnode_t lnode;
ogs_lnode_t to_modify_node;
+ ogs_pool_id_t id;
+
ogs_fsm_t sm; /* State Machine */
uint8_t *ebi_node; /* Pool-Node for EPS Bearer ID */
@@ -868,12 +888,30 @@ typedef struct mme_bearer_s {
} t3489;
/* Related Context */
- mme_ue_t *mme_ue;
- mme_sess_t *sess;
+ ogs_pool_id_t mme_ue_id;
+ ogs_pool_id_t sess_id;
+ /*
+ * Issues #3240
+ *
+ * SMF->SGW-C->MME: First Update Bearer Request
+ * MME->UE: First Modify EPS bearer context request
+ * SMF->SGW-C->MME: Second Update Bearer Request
+ * MME->UE: Second Modify EPS bearer context request
+ * UE->MME: First Modify EPS bearer context accept
+ * MME->SGW-C->SMF: First Update Bearer Response
+ * UE->MME: Second Modify EPS bearer context accept
+ * MME->SGW-C->SMF: Second Update Bearer Response
+ *
+ * We'll start by managing only Update Bearer Request/Response
+ * as a list so that we can manage multiple of them.
+ */
+ struct {
+ ogs_pool_id_t xact_id;
+ } create, delete, notify;
struct {
- ogs_gtp_xact_t *xact;
- } create, update, delete, notify;
+ ogs_list_t xact_list;
+ } update;
} mme_bearer_t;
void mme_context_init(void);
@@ -900,11 +938,14 @@ void mme_pgw_remove_all(void);
ogs_sockaddr_t *mme_pgw_addr_find_by_apn_enb(
ogs_list_t *list, int family, const mme_sess_t *sess);
-mme_vlr_t *mme_vlr_add(ogs_sockaddr_t *sa_list, ogs_sockopt_t *option);
+mme_vlr_t *mme_vlr_add(
+ ogs_sockaddr_t *sa_list,
+ ogs_sockaddr_t *local_sa_list,
+ ogs_sockopt_t *option);
void mme_vlr_remove(mme_vlr_t *vlr);
void mme_vlr_remove_all(void);
void mme_vlr_close(mme_vlr_t *vlr);
-mme_vlr_t *mme_vlr_find_by_addr(const ogs_sockaddr_t *addr);
+mme_vlr_t *mme_vlr_find_by_sock(const ogs_sock_t *sock);
mme_csmap_t *mme_csmap_add(mme_vlr_t *vlr);
void mme_csmap_remove(mme_csmap_t *csmap);
@@ -913,6 +954,13 @@ void mme_csmap_remove_all(void);
mme_csmap_t *mme_csmap_find_by_tai(const ogs_eps_tai_t *tai);
mme_csmap_t *mme_csmap_find_by_nas_lai(const ogs_nas_lai_t *lai);
+mme_hssmap_t *mme_hssmap_add(ogs_plmn_id_t *plmn_id, const char *realm,
+ const char *host);
+void mme_hssmap_remove(mme_hssmap_t *hssmap);
+void mme_hssmap_remove_all(void);
+
+mme_hssmap_t *mme_hssmap_find_by_imsi_bcd(const char *imsi_bcd);
+
mme_enb_t *mme_enb_add(ogs_sock_t *sock, ogs_sockaddr_t *addr);
int mme_enb_remove(mme_enb_t *enb);
int mme_enb_remove_all(void);
@@ -920,7 +968,7 @@ mme_enb_t *mme_enb_find_by_addr(const ogs_sockaddr_t *addr);
mme_enb_t *mme_enb_find_by_enb_id(uint32_t enb_id);
int mme_enb_set_enb_id(mme_enb_t *enb, uint32_t enb_id);
int mme_enb_sock_type(ogs_sock_t *sock);
-mme_enb_t *mme_enb_cycle(mme_enb_t *enb);
+mme_enb_t *mme_enb_find_by_id(ogs_pool_id_t id);
enb_ue_t *enb_ue_add(mme_enb_t *enb, uint32_t enb_ue_s1ap_id);
void enb_ue_remove(enb_ue_t *enb_ue);
@@ -929,12 +977,12 @@ enb_ue_t *enb_ue_find_by_enb_ue_s1ap_id(
const mme_enb_t *enb, uint32_t enb_ue_s1ap_id);
enb_ue_t *enb_ue_find(uint32_t index);
enb_ue_t *enb_ue_find_by_mme_ue_s1ap_id(uint32_t mme_ue_s1ap_id);
-enb_ue_t *enb_ue_cycle(enb_ue_t *enb_ue);
+enb_ue_t *enb_ue_find_by_id(ogs_pool_id_t id);
sgw_ue_t *sgw_ue_add(mme_sgw_t *sgw);
void sgw_ue_remove(sgw_ue_t *sgw_ue);
void sgw_ue_switch_to_sgw(sgw_ue_t *sgw_ue, mme_sgw_t *new_sgw);
-sgw_ue_t *sgw_ue_cycle(sgw_ue_t *sgw_ue);
+sgw_ue_t *sgw_ue_find_by_id(ogs_pool_id_t id);
typedef enum {
SGW_WITHOUT_RELOCATION = 1,
@@ -946,10 +994,16 @@ sgw_relocation_e sgw_ue_check_if_relocated(mme_ue_t *mme_ue);
void mme_ue_new_guti(mme_ue_t *mme_ue);
void mme_ue_confirm_guti(mme_ue_t *mme_ue);
+#define INVALID_P_TMSI 0
+void mme_ue_set_p_tmsi(
+ mme_ue_t *mme_ue,
+ ogs_nas_mobile_identity_tmsi_t *nas_mobile_identity_tmsi);
+void mme_ue_confirm_p_tmsi(mme_ue_t *mme_ue);
+
mme_ue_t *mme_ue_add(enb_ue_t *enb_ue);
void mme_ue_remove(mme_ue_t *mme_ue);
void mme_ue_remove_all(void);
-mme_ue_t *mme_ue_cycle(mme_ue_t *mme_ue);
+mme_ue_t *mme_ue_find_by_id(ogs_pool_id_t id);
void mme_ue_fsm_init(mme_ue_t *mme_ue);
void mme_ue_fsm_fini(mme_ue_t *mme_ue);
@@ -1039,6 +1093,7 @@ void mme_sess_remove_all(mme_ue_t *mme_ue);
mme_sess_t *mme_sess_find_by_pti(const mme_ue_t *mme_ue, uint8_t pti);
mme_sess_t *mme_sess_find_by_ebi(const mme_ue_t *mme_ue, uint8_t ebi);
mme_sess_t *mme_sess_find_by_apn(const mme_ue_t *mme_ue, const char *apn);
+mme_sess_t *mme_sess_find_by_id(ogs_pool_id_t id);
mme_sess_t *mme_sess_first(const mme_ue_t *mme_ue);
mme_sess_t *mme_sess_next(mme_sess_t *sess);
@@ -1055,7 +1110,7 @@ mme_bearer_t *mme_default_bearer_in_sess(mme_sess_t *sess);
mme_bearer_t *mme_linked_bearer(mme_bearer_t *bearer);
mme_bearer_t *mme_bearer_first(const mme_sess_t *sess);
mme_bearer_t *mme_bearer_next(mme_bearer_t *bearer);
-mme_bearer_t *mme_bearer_cycle(mme_bearer_t *bearer);
+mme_bearer_t *mme_bearer_find_by_id(ogs_pool_id_t id);
void mme_session_remove_all(mme_ue_t *mme_ue);
ogs_session_t *mme_session_find_by_apn(mme_ue_t *mme_ue, const char *apn);
diff --git a/src/mme/mme-event.c b/src/mme/mme-event.c
index 483b02b12f..42ce405d75 100644
--- a/src/mme/mme-event.c
+++ b/src/mme/mme-event.c
@@ -117,7 +117,6 @@ void mme_sctp_event_push(mme_event_e id,
ogs_assert(id);
ogs_assert(sock);
- ogs_assert(addr);
e = mme_event_new(id);
ogs_assert(e);
diff --git a/src/mme/mme-event.h b/src/mme/mme-event.h
index f7f1af75c5..37670dd812 100644
--- a/src/mme/mme-event.h
+++ b/src/mme/mme-event.h
@@ -94,12 +94,12 @@ typedef struct mme_event_s {
ogs_diam_s6a_message_t *s6a_message;
mme_vlr_t *vlr;
- mme_enb_t *enb;
- enb_ue_t *enb_ue;
- sgw_ue_t *sgw_ue;
- mme_ue_t *mme_ue;
- mme_sess_t *sess;
- mme_bearer_t *bearer;
+ ogs_pool_id_t enb_id;
+ ogs_pool_id_t enb_ue_id;
+ ogs_pool_id_t sgw_ue_id;
+ ogs_pool_id_t mme_ue_id;
+ ogs_pool_id_t bearer_id;
+ ogs_pool_id_t gtp_xact_id;
ogs_timer_t *timer;
} mme_event_t;
diff --git a/src/mme/mme-fd-path.c b/src/mme/mme-fd-path.c
index b799c20e05..ed7e1133c6 100644
--- a/src/mme/mme-fd-path.c
+++ b/src/mme/mme-fd-path.c
@@ -34,8 +34,10 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
mme_ue_t *mme_ue, uint32_t *subdatamask);
struct sess_state {
- mme_ue_t *mme_ue;
+ ogs_pool_id_t mme_ue_id;
+ ogs_pool_id_t enb_ue_id;
struct timespec ts; /* Time of sending the message */
+ ogs_pool_id_t gtp_xact_id; /* GTPv1C (Gn) xact originating this session */
};
static void mme_s6a_aia_cb(void *data, struct msg **msg);
@@ -44,9 +46,53 @@ static void mme_s6a_pua_cb(void *data, struct msg **msg);
static void state_cleanup(struct sess_state *sess_data, os0_t sid, void *opaque)
{
+ if (!sess_data) {
+ ogs_error("No session state");
+ return;
+ }
+
ogs_free(sess_data);
}
+static void mme_add_hss_destination(mme_ue_t *mme_ue, struct msg *req)
+{
+ int ret;
+ struct avp *avp;
+ union avp_value val;
+ const char *realm = NULL, *host = NULL;
+
+ ogs_assert(mme_ue);
+ ogs_assert(req);
+
+ if (mme_ue->hssmap) {
+ realm = mme_ue->hssmap->realm;
+ host = mme_ue->hssmap->host;
+ }
+
+ if (realm == NULL)
+ realm = fd_g_config->cnf_diamrlm;
+
+ ret = fd_msg_avp_new(ogs_diam_destination_realm, 0, &avp);
+ ogs_assert(ret == 0);
+ val.os.data = (unsigned char *)realm;
+ val.os.len = strlen(realm);
+ ret = fd_msg_avp_setvalue(avp, &val);
+ ogs_assert(ret == 0);
+ ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
+ ogs_assert(ret == 0);
+
+ if (host != NULL) {
+ ret = fd_msg_avp_new(ogs_diam_destination_host, 0, &avp);
+ ogs_assert(ret == 0);
+ val.os.data = (unsigned char *)host;
+ val.os.len = strlen(host);
+ ret = fd_msg_avp_setvalue(avp, &val);
+ ogs_assert(ret == 0);
+ ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
+ ogs_assert(ret == 0);
+ }
+}
+
/* s6a process Subscription-Data from avp */
static int mme_s6a_subscription_data_from_avp(struct avp *avp,
ogs_subscription_data_t *subscription_data,
@@ -79,9 +125,9 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
ret = fd_msg_avp_hdr(avpch1, &hdr);
ogs_assert(ret == 0);
if (hdr->avp_value->os.data && hdr->avp_value->os.len) {
- mme_ue->msisdn_len = hdr->avp_value->os.len;
- memcpy(mme_ue->msisdn, hdr->avp_value->os.data,
- ogs_min(mme_ue->msisdn_len, OGS_MAX_MSISDN_LEN));
+ mme_ue->msisdn_len =
+ ogs_min(hdr->avp_value->os.len, OGS_MAX_MSISDN_LEN);
+ memcpy(mme_ue->msisdn, hdr->avp_value->os.data, mme_ue->msisdn_len);
ogs_buffer_to_bcd(mme_ue->msisdn,
mme_ue->msisdn_len, mme_ue->msisdn_bcd);
*subdatamask = (*subdatamask | OGS_DIAM_S6A_SUBDATA_MSISDN);
@@ -102,9 +148,10 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
ret = fd_msg_avp_hdr(avpch1, &hdr);
ogs_assert(ret == 0);
if (hdr->avp_value->os.data && hdr->avp_value->os.len) {
- mme_ue->a_msisdn_len = hdr->avp_value->os.len;
+ mme_ue->a_msisdn_len =
+ ogs_min(hdr->avp_value->os.len, OGS_MAX_MSISDN_LEN);
memcpy(mme_ue->a_msisdn, hdr->avp_value->os.data,
- ogs_min(mme_ue->a_msisdn_len, OGS_MAX_MSISDN_LEN));
+ mme_ue->a_msisdn_len);
ogs_buffer_to_bcd(mme_ue->a_msisdn,
mme_ue->a_msisdn_len, mme_ue->a_msisdn_bcd);
*subdatamask = (*subdatamask | OGS_DIAM_S6A_SUBDATA_A_MSISDN);
@@ -127,18 +174,20 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
}
/* AVP: '3GPP-Charging-Characteristics'(13)
- * For GGSN, it contains the charging characteristics for
- * this PDP Context received in the Create PDP Context
- * Request Message (only available in R99 and later releases).
- * For PGW, it contains the charging characteristics for the
+ * For GGSN, it contains the charging characteristics for
+ * this PDP Context received in the Create PDP Context
+ * Request Message (only available in R99 and later releases).
+ * For PGW, it contains the charging characteristics for the
* IP-CAN bearer.
* Reference: 3GPP TS 29.061 16.4.7.2 13
*/
- ret = fd_avp_search_avp(avp, ogs_diam_s6a_3gpp_charging_characteristics,
+ ret = fd_avp_search_avp(avp, ogs_diam_s6a_3gpp_charging_characteristics,
&avpch1);
ogs_assert(ret == 0);
if (avpch1) {
ret = fd_msg_avp_hdr(avpch1, &hdr);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(ret == 0);
ogs_ascii_to_hex(
(char*)hdr->avp_value->os.data, (int)hdr->avp_value->os.len,
buf, sizeof(buf));
@@ -285,6 +334,8 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
ogs_assert(ret == 0);
if (avpch3) {
ret = fd_msg_avp_hdr(avpch3, &hdr);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(ret == 0);
session->name = ogs_strndup(
(char*)hdr->avp_value->os.data,
hdr->avp_value->os.len);
@@ -332,14 +383,14 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
}
/* AVP: '3GPP-Charging-Characteristics'(13)
- * For GGSN, it contains the charging characteristics for
- * this PDP Context received in the Create PDP Context
- * Request Message (only available in R99 and later releases).
- * For PGW, it contains the charging characteristics for the
+ * For GGSN, it contains the charging characteristics for
+ * this PDP Context received in the Create PDP Context
+ * Request Message (only available in R99 and later releases).
+ * For PGW, it contains the charging characteristics for the
* IP-CAN bearer.
* Reference: 3GPP TS 29.061 16.4.7.2 13
*/
- ret = fd_avp_search_avp(avpch2,
+ ret = fd_avp_search_avp(avpch2,
ogs_diam_s6a_3gpp_charging_characteristics, &avpch3);
ogs_assert(ret == 0);
if (avpch3) {
@@ -352,7 +403,7 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
buf, OGS_CHRGCHARS_LEN);
session->charging_characteristics_presence = true;
} else {
- memcpy(session->charging_characteristics,
+ memcpy(session->charging_characteristics,
(uint8_t *)"\x00\x00", OGS_CHRGCHARS_LEN);
session->charging_characteristics_presence = false;
}
@@ -377,34 +428,27 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
ogs_assert(ret == 0);
if (addr.ogs_sa_family == AF_INET) {
+ session->ue_ip.addr = addr.sin.sin_addr.s_addr;
if (session->session_type ==
OGS_PDU_SESSION_TYPE_IPV4) {
- session->paa.addr =
- addr.sin.sin_addr.s_addr;
} else if (session->session_type ==
OGS_PDU_SESSION_TYPE_IPV4V6) {
- session->paa.both.addr =
- addr.sin.sin_addr.s_addr;
} else {
ogs_error("Warning: Received a static IPv4 "
- "address but PDN-Type does not include "
- "IPv4. Ignoring...");
+ "address but PDN-Type[%d] does not include "
+ "IPv4. Ignoring...", session->session_type);
}
} else if (addr.ogs_sa_family == AF_INET6) {
+ memcpy(session->ue_ip.addr6,
+ addr.sin6.sin6_addr.s6_addr, OGS_IPV6_LEN);
if (session->session_type ==
OGS_PDU_SESSION_TYPE_IPV6) {
- memcpy(session->paa.addr6,
- addr.sin6.sin6_addr.s6_addr,
- OGS_IPV6_LEN);
} else if (session->session_type ==
OGS_PDU_SESSION_TYPE_IPV4V6) {
- memcpy(session->paa.both.addr6,
- addr.sin6.sin6_addr.s6_addr,
- OGS_IPV6_LEN);
} else {
ogs_error("Warning: Received a static IPv6 "
- "address but PDN-Type does not include "
- "IPv6. Ignoring...");
+ "address but PDN-Type[%d] does not include "
+ "IPv6. Ignoring...", session->session_type);
}
} else {
ogs_error("Invalid family[%d]",
@@ -565,6 +609,8 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
ogs_assert(ret == 0);
while (avpch4) {
ret = fd_msg_avp_hdr(avpch4, &hdr);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(ret == 0);
switch(hdr->avp_code) {
case OGS_DIAM_S6A_AVP_CODE_MIP_HOME_AGENT_ADDRESS:
ret = fd_msg_avp_value_interpret(avpch4,
@@ -594,7 +640,7 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
ogs_error("Unknown AVP-Code:%d",
hdr->avp_code);
error++;
- break;
+ break;
}
fd_msg_browse(avpch4, MSG_BRW_NEXT,
&avpch4, NULL);
@@ -667,9 +713,9 @@ static int mme_s6a_subscription_data_from_avp(struct avp *avp,
}
/* MME Sends Authentication Information Request to HSS */
-void mme_s6a_send_air(mme_ue_t *mme_ue,
- ogs_nas_authentication_failure_parameter_t
- *authentication_failure_parameter)
+static void _mme_s6a_send_air(enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_authentication_failure_parameter_t *authentication_failure_parameter,
+ ogs_gtp_xact_t *gtp_xact)
{
int ret;
@@ -683,7 +729,15 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
uint8_t resync[OGS_AUTS_LEN + OGS_RAND_LEN];
- ogs_assert(mme_ue);
+ if (!mme_ue) {
+ ogs_error("UE(mme-ue) context has already been removed");
+ return;
+ }
+
+ if (!enb_ue) {
+ ogs_error("S1 context has already been removed");
+ return;
+ }
ogs_debug("[MME] Authentication-Information-Request");
@@ -694,7 +748,9 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
sess_data = ogs_calloc(1, sizeof (*sess_data));
ogs_assert(sess_data);
- sess_data->mme_ue = mme_ue;
+ sess_data->mme_ue_id = mme_ue->id;
+ sess_data->enb_ue_id = enb_ue->id;
+ sess_data->gtp_xact_id = gtp_xact ? gtp_xact->id : OGS_INVALID_POOL_ID;
/* Create the request */
ret = fd_msg_new(ogs_diam_s6a_cmd_air, MSGFL_ALLOC_ETEID, &req);
@@ -702,7 +758,7 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
/* Create a new session */
#define OGS_DIAM_S6A_APP_SID_OPT "app_s6a"
- ret = fd_msg_new_session(req, (os0_t)OGS_DIAM_S6A_APP_SID_OPT,
+ ret = fd_msg_new_session(req, (os0_t)OGS_DIAM_S6A_APP_SID_OPT,
CONSTSTRLEN(OGS_DIAM_S6A_APP_SID_OPT));
ogs_assert(ret == 0);
ret = fd_msg_sess_get(fd_g_config->cnf_dict, req, &session, NULL);
@@ -721,15 +777,8 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
ret = fd_msg_add_origin(req, 0);
ogs_assert(ret == 0);
- /* Set the Destination-Realm AVP */
- ret = fd_msg_avp_new(ogs_diam_destination_realm, 0, &avp);
- ogs_assert(ret == 0);
- val.os.data = (unsigned char *)(fd_g_config->cnf_diamrlm);
- val.os.len = strlen(fd_g_config->cnf_diamrlm);
- ret = fd_msg_avp_setvalue(avp, &val);
- ogs_assert(ret == 0);
- ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
- ogs_assert(ret == 0);
+ /* Set the Destination-Realm & Destination-Host */
+ mme_add_hss_destination(mme_ue, req);
/* Set the User-Name AVP */
ret = fd_msg_avp_new(ogs_diam_user_name, 0, &avp);
@@ -791,7 +840,7 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
ret = ogs_diam_message_vendor_specific_appid_set(
req, OGS_DIAM_S6A_APPLICATION_ID);
ogs_assert(ret == 0);
-
+
ret = clock_gettime(CLOCK_REALTIME, &sess_data->ts);
ogs_assert(ret == 0);
@@ -809,16 +858,29 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
ogs_assert(ret == 0);
/* Increment the counter */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_sent++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert(pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
+ ogs_diam_stats_self()->stats.nb_sent++;
+ ogs_assert(pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
}
+void mme_s6a_send_air(enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_nas_authentication_failure_parameter_t
+ *authentication_failure_parameter)
+{
+ _mme_s6a_send_air(enb_ue, mme_ue, authentication_failure_parameter, NULL);
+};
+
+/* Trigger authentication for session/bearer/PdpCtx coming from Gn: */
+void mme_s6a_send_air_from_gn(enb_ue_t *enb_ue, mme_ue_t *mme_ue, ogs_gtp_xact_t *gtp_xact)
+{
+ _mme_s6a_send_air(enb_ue, mme_ue, NULL, gtp_xact);
+};
+
/* MME received Authentication Information Answer from HSS */
static void mme_s6a_aia_cb(void *data, struct msg **msg)
{
int ret;
-
+
struct sess_state *sess_data = NULL;
struct timespec ts;
struct session *session;
@@ -831,12 +893,13 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
mme_event_t *e = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_diam_s6a_message_t *s6a_message = NULL;
ogs_diam_s6a_aia_message_t *aia_message = NULL;
ogs_diam_e_utran_vector_t *e_utran_vector = NULL;
ogs_debug("[MME] Authentication-Information-Answer");
-
+
ret = clock_gettime(CLOCK_REALTIME, &ts);
ogs_assert(ret == 0);
@@ -850,7 +913,7 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
ogs_error("fd_msg_sess_get() failed");
return;
}
-
+
ret = fd_sess_state_retrieve(mme_s6a_reg, session, &sess_data);
if (ret != 0) {
ogs_error("fd_sess_state_retrieve() failed");
@@ -865,8 +928,18 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
return;
}
- mme_ue = sess_data->mme_ue;
- ogs_assert(mme_ue);
+ mme_ue = mme_ue_find_by_id(sess_data->mme_ue_id);
+ if (!mme_ue) {
+ ogs_error("MME-UE Context has already been removed [%d]",
+ sess_data->mme_ue_id);
+ return;
+ }
+ enb_ue = enb_ue_find_by_id(sess_data->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("[%s] ENB-S1 Context has already been removed [%d]",
+ mme_ue->imsi_bcd, sess_data->enb_ue_id);
+ return;
+ }
/* Set Authentication-Information Command */
s6a_message = ogs_calloc(1, sizeof(ogs_diam_s6a_message_t));
@@ -876,7 +949,7 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
ogs_assert(aia_message);
e_utran_vector = &aia_message->e_utran_vector;
ogs_assert(e_utran_vector);
-
+
/* Value of Result Code */
ret = fd_msg_search_avp(*msg, ogs_diam_result_code, &avp);
ogs_assert(ret == 0);
@@ -973,9 +1046,11 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
if (avp) {
ret = fd_msg_avp_hdr(avp_xres, &hdr);
ogs_assert(ret == 0);
+ e_utran_vector->xres_len =
+ ogs_min(hdr->avp_value->os.len,
+ OGS_ARRAY_SIZE(e_utran_vector->xres));
memcpy(e_utran_vector->xres,
- hdr->avp_value->os.data, hdr->avp_value->os.len);
- e_utran_vector->xres_len = hdr->avp_value->os.len;
+ hdr->avp_value->os.data, e_utran_vector->xres_len);
} else {
ogs_error("no_XRES");
error++;
@@ -986,8 +1061,9 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
if (avp) {
ret = fd_msg_avp_hdr(avp_kasme, &hdr);
ogs_assert(ret == 0);
- memcpy(e_utran_vector->kasme,
- hdr->avp_value->os.data, hdr->avp_value->os.len);
+ memcpy(e_utran_vector->kasme, hdr->avp_value->os.data,
+ ogs_min(hdr->avp_value->os.len,
+ OGS_ARRAY_SIZE(e_utran_vector->kasme)));
} else {
ogs_error("no_KASME");
error++;
@@ -995,10 +1071,15 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
ret = fd_avp_search_avp(avp_e_utran_vector, ogs_diam_s6a_rand, &avp_rand);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(ret == 0);
if (avp) {
ret = fd_msg_avp_hdr(avp_rand, &hdr);
- memcpy(e_utran_vector->rand,
- hdr->avp_value->os.data, hdr->avp_value->os.len);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(ret == 0);
+ memcpy(e_utran_vector->rand, hdr->avp_value->os.data,
+ ogs_min(hdr->avp_value->os.len,
+ OGS_ARRAY_SIZE(e_utran_vector->rand)));
} else {
ogs_error("no_RAND");
error++;
@@ -1009,8 +1090,9 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
if (avp) {
ret = fd_msg_avp_hdr(avp_autn, &hdr);
ogs_assert(ret == 0);
- memcpy(e_utran_vector->autn,
- hdr->avp_value->os.data, hdr->avp_value->os.len);
+ memcpy(e_utran_vector->autn, hdr->avp_value->os.data,
+ ogs_min(hdr->avp_value->os.len,
+ OGS_ARRAY_SIZE(e_utran_vector->autn)));
} else {
ogs_error("no_AUTN");
error++;
@@ -1021,7 +1103,9 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
int rv;
e = mme_event_new(MME_EVENT_S6A_MESSAGE);
ogs_assert(e);
- e->mme_ue = mme_ue;
+ e->mme_ue_id = mme_ue->id;
+ e->enb_ue_id = enb_ue->id;
+ e->gtp_xact_id = sess_data->gtp_xact_id;
e->s6a_message = s6a_message;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -1034,41 +1118,41 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
}
/* Free the message */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
+ ogs_assert(pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
+ dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
((ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
- if (ogs_diam_logger_self()->stats.nb_recv) {
+ if (ogs_diam_stats_self()->stats.nb_recv) {
/* Ponderate in the avg */
- ogs_diam_logger_self()->stats.avg = (ogs_diam_logger_self()->stats.avg *
- ogs_diam_logger_self()->stats.nb_recv + dur) /
- (ogs_diam_logger_self()->stats.nb_recv + 1);
+ ogs_diam_stats_self()->stats.avg = (ogs_diam_stats_self()->stats.avg *
+ ogs_diam_stats_self()->stats.nb_recv + dur) /
+ (ogs_diam_stats_self()->stats.nb_recv + 1);
/* Min, max */
- if (dur < ogs_diam_logger_self()->stats.shortest)
- ogs_diam_logger_self()->stats.shortest = dur;
- if (dur > ogs_diam_logger_self()->stats.longest)
- ogs_diam_logger_self()->stats.longest = dur;
+ if (dur < ogs_diam_stats_self()->stats.shortest)
+ ogs_diam_stats_self()->stats.shortest = dur;
+ if (dur > ogs_diam_stats_self()->stats.longest)
+ ogs_diam_stats_self()->stats.longest = dur;
} else {
- ogs_diam_logger_self()->stats.shortest = dur;
- ogs_diam_logger_self()->stats.longest = dur;
- ogs_diam_logger_self()->stats.avg = dur;
+ ogs_diam_stats_self()->stats.shortest = dur;
+ ogs_diam_stats_self()->stats.longest = dur;
+ ogs_diam_stats_self()->stats.avg = dur;
}
if (error)
- ogs_diam_logger_self()->stats.nb_errs++;
- else
- ogs_diam_logger_self()->stats.nb_recv++;
+ ogs_diam_stats_self()->stats.nb_errs++;
+ else
+ ogs_diam_stats_self()->stats.nb_recv++;
+
+ ogs_assert(pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
-
/* Display how long it took */
if (ts.tv_nsec > sess_data->ts.tv_nsec)
- ogs_trace("in %d.%06ld sec",
+ ogs_trace("in %d.%06ld sec",
(int)(ts.tv_sec - sess_data->ts.tv_sec),
(long)(ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
else
- ogs_trace("in %d.%06ld sec",
+ ogs_trace("in %d.%06ld sec",
(int)(ts.tv_sec + 1 - sess_data->ts.tv_sec),
(long)(1000000000 + ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
-
+
ret = fd_msg_free(*msg);
ogs_assert(ret == 0);
*msg = NULL;
@@ -1078,7 +1162,7 @@ static void mme_s6a_aia_cb(void *data, struct msg **msg)
}
/* MME Sends Update Location Request to HSS */
-void mme_s6a_send_ulr(mme_ue_t *mme_ue)
+void mme_s6a_send_ulr(enb_ue_t *enb_ue, mme_ue_t *mme_ue)
{
int ret;
@@ -1089,14 +1173,23 @@ void mme_s6a_send_ulr(mme_ue_t *mme_ue)
struct session *session = NULL;
ogs_nas_plmn_id_t nas_plmn_id;
- ogs_assert(mme_ue);
+ if (!mme_ue) {
+ ogs_error("UE(mme-ue) context has already been removed");
+ return;
+ }
+
+ if (!enb_ue) {
+ ogs_error("S1 context has already been removed");
+ return;
+ }
ogs_debug("[MME] Update-Location-Request");
/* Create the random value to store with the session */
sess_data = ogs_calloc(1, sizeof(*sess_data));
ogs_assert(sess_data);
- sess_data->mme_ue = mme_ue;
+ sess_data->mme_ue_id = mme_ue->id;
+ sess_data->enb_ue_id = enb_ue->id;
/* Create the request */
ret = fd_msg_new(ogs_diam_s6a_cmd_ulr, MSGFL_ALLOC_ETEID, &req);
@@ -1104,7 +1197,7 @@ void mme_s6a_send_ulr(mme_ue_t *mme_ue)
/* Create a new session */
#define OGS_DIAM_S6A_APP_SID_OPT "app_s6a"
- ret = fd_msg_new_session(req, (os0_t)OGS_DIAM_S6A_APP_SID_OPT,
+ ret = fd_msg_new_session(req, (os0_t)OGS_DIAM_S6A_APP_SID_OPT,
CONSTSTRLEN(OGS_DIAM_S6A_APP_SID_OPT));
ogs_assert(ret == 0);
ret = fd_msg_sess_get(fd_g_config->cnf_dict, req, &session, NULL);
@@ -1123,15 +1216,8 @@ void mme_s6a_send_ulr(mme_ue_t *mme_ue)
ret = fd_msg_add_origin(req, 0);
ogs_assert(ret == 0);
- /* Set the Destination-Realm AVP */
- ret = fd_msg_avp_new(ogs_diam_destination_realm, 0, &avp);
- ogs_assert(ret == 0);
- val.os.data = (unsigned char *)(fd_g_config->cnf_diamrlm);
- val.os.len = strlen(fd_g_config->cnf_diamrlm);
- ret = fd_msg_avp_setvalue(avp, &val);
- ogs_assert(ret == 0);
- ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
- ogs_assert(ret == 0);
+ /* Set the Destination-Realm & Destination-Host */
+ mme_add_hss_destination(mme_ue, req);
/* Set the User-Name AVP */
ret = fd_msg_avp_new(ogs_diam_user_name, 0, &avp);
@@ -1219,111 +1305,19 @@ void mme_s6a_send_ulr(mme_ue_t *mme_ue)
* in real life we would not need it */
svg = sess_data;
- /* Store this value in the session */
- ret = fd_sess_state_store(mme_s6a_reg, session, &sess_data);
- ogs_assert(ret == 0);
- ogs_assert(sess_data == 0);
-
- /* Send the request */
- ret = fd_msg_send(&req, mme_s6a_ula_cb, svg);
- ogs_assert(ret == 0);
-
- /* Increment the counter */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_sent++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
-}
-
-/* MME Sends Purge UE Request to HSS */
-void mme_s6a_send_pur(mme_ue_t *mme_ue)
-{
- int ret;
-
- struct msg *req = NULL;
- struct avp *avp;
- union avp_value val;
- struct sess_state *sess_data = NULL, *svg;
- struct session *session = NULL;
-
- ogs_assert(mme_ue);
-
- ogs_debug("[MME] Purge-UE-Request");
-
- /* Create the random value to store with the session */
- sess_data = ogs_calloc(1, sizeof(*sess_data));
- ogs_assert(sess_data);
- sess_data->mme_ue = mme_ue;
-
- /* Create the request */
- ret = fd_msg_new(ogs_diam_s6a_cmd_pur, MSGFL_ALLOC_ETEID, &req);
- ogs_assert(ret == 0);
-
- /* Create a new session */
- #define OGS_DIAM_S6A_APP_SID_OPT "app_s6a"
- ret = fd_msg_new_session(req, (os0_t)OGS_DIAM_S6A_APP_SID_OPT,
- CONSTSTRLEN(OGS_DIAM_S6A_APP_SID_OPT));
- ogs_assert(ret == 0);
- ret = fd_msg_sess_get(fd_g_config->cnf_dict, req, &session, NULL);
- ogs_assert(ret == 0);
-
- /* Set the Auth-Session-State AVP */
- ret = fd_msg_avp_new(ogs_diam_auth_session_state, 0, &avp);
- ogs_assert(ret == 0);
- val.i32 = OGS_DIAM_AUTH_SESSION_NO_STATE_MAINTAINED;
- ret = fd_msg_avp_setvalue(avp, &val);
- ogs_assert(ret == 0);
- ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
- ogs_assert(ret == 0);
-
- /* Set Origin-Host & Origin-Realm */
- ret = fd_msg_add_origin(req, 0);
- ogs_assert(ret == 0);
-
- /* Set the Destination-Realm AVP */
- ret = fd_msg_avp_new(ogs_diam_destination_realm, 0, &avp);
- ogs_assert(ret == 0);
- val.os.data = (unsigned char *)(fd_g_config->cnf_diamrlm);
- val.os.len = strlen(fd_g_config->cnf_diamrlm);
- ret = fd_msg_avp_setvalue(avp, &val);
- ogs_assert(ret == 0);
- ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
- ogs_assert(ret == 0);
-
- /* Set the User-Name AVP */
- ret = fd_msg_avp_new(ogs_diam_user_name, 0, &avp);
- ogs_assert(ret == 0);
- val.os.data = (uint8_t *)mme_ue->imsi_bcd;
- val.os.len = strlen(mme_ue->imsi_bcd);
- ret = fd_msg_avp_setvalue(avp, &val);
- ogs_assert(ret == 0);
- ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
- ogs_assert(ret == 0);
-
- /* Set Vendor-Specific-Application-Id AVP */
- ret = ogs_diam_message_vendor_specific_appid_set(
- req, OGS_DIAM_S6A_APPLICATION_ID);
- ogs_assert(ret == 0);
-
- ret = clock_gettime(CLOCK_REALTIME, &sess_data->ts);
- ogs_assert(ret == 0);
-
- /* Keep a pointer to the session data for debug purpose,
- * in real life we would not need it */
- svg = sess_data;
-
/* Store this value in the session */
ret = fd_sess_state_store(mme_s6a_reg, session, &sess_data);
ogs_assert(ret == 0);
ogs_assert(sess_data == 0);
/* Send the request */
- ret = fd_msg_send(&req, mme_s6a_pua_cb, svg);
+ ret = fd_msg_send(&req, mme_s6a_ula_cb, svg);
ogs_assert(ret == 0);
/* Increment the counter */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_sent++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert(pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
+ ogs_diam_stats_self()->stats.nb_sent++;
+ ogs_assert(pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
}
/* MME received Update Location Answer from HSS */
@@ -1342,6 +1336,7 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
mme_event_t *e = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_diam_s6a_message_t *s6a_message = NULL;
ogs_diam_s6a_ula_message_t *ula_message = NULL;
ogs_subscription_data_t *subscription_data = NULL;
@@ -1361,7 +1356,7 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
ogs_error("fd_msg_sess_get() failed");
return;
}
-
+
ret = fd_sess_state_retrieve(mme_s6a_reg, session, &sess_data);
if (ret != 0) {
ogs_error("fd_sess_state_retrieve() failed");
@@ -1376,8 +1371,18 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
return;
}
- mme_ue = sess_data->mme_ue;
- ogs_assert(mme_ue);
+ mme_ue = mme_ue_find_by_id(sess_data->mme_ue_id);
+ if (!mme_ue) {
+ ogs_error("MME-UE Context has already been removed [%d]",
+ sess_data->mme_ue_id);
+ return;
+ }
+ enb_ue = enb_ue_find_by_id(sess_data->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("[%s] ENB-S1 Context has already been removed [%d]",
+ mme_ue->imsi_bcd, sess_data->enb_ue_id);
+ return;
+ }
/* Set Update-Location Command */
s6a_message = ogs_calloc(1, sizeof(ogs_diam_s6a_message_t));
@@ -1486,6 +1491,8 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
uint32_t subdatamask = 0;
ret = mme_s6a_subscription_data_from_avp(avp, subscription_data, mme_ue,
&subdatamask);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(ret == 0);
if (!(subdatamask & OGS_DIAM_S6A_SUBDATA_NAM)) {
mme_ue->network_access_mode = 0;
@@ -1493,7 +1500,7 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
"PACKET_AND_CIRCUIT (0)");
}
if (!(subdatamask & OGS_DIAM_S6A_SUBDATA_CC)) {
- memcpy(mme_ue->charging_characteristics, (uint8_t *)"\x00\x00",
+ memcpy(mme_ue->charging_characteristics, (uint8_t *)"\x00\x00",
OGS_CHRGCHARS_LEN);
mme_ue->charging_characteristics_presence = false;
}
@@ -1518,7 +1525,8 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
int rv;
e = mme_event_new(MME_EVENT_S6A_MESSAGE);
ogs_assert(e);
- e->mme_ue = mme_ue;
+ e->mme_ue_id = mme_ue->id;
+ e->enb_ue_id = enb_ue->id;
e->s6a_message = s6a_message;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -1535,31 +1543,31 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
}
/* Free the message */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert(pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
((ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
- if (ogs_diam_logger_self()->stats.nb_recv) {
+ if (ogs_diam_stats_self()->stats.nb_recv) {
/* Ponderate in the avg */
- ogs_diam_logger_self()->stats.avg =
- (ogs_diam_logger_self()->stats.avg *
- ogs_diam_logger_self()->stats.nb_recv + dur) /
- (ogs_diam_logger_self()->stats.nb_recv + 1);
+ ogs_diam_stats_self()->stats.avg =
+ (ogs_diam_stats_self()->stats.avg *
+ ogs_diam_stats_self()->stats.nb_recv + dur) /
+ (ogs_diam_stats_self()->stats.nb_recv + 1);
/* Min, max */
- if (dur < ogs_diam_logger_self()->stats.shortest)
- ogs_diam_logger_self()->stats.shortest = dur;
- if (dur > ogs_diam_logger_self()->stats.longest)
- ogs_diam_logger_self()->stats.longest = dur;
+ if (dur < ogs_diam_stats_self()->stats.shortest)
+ ogs_diam_stats_self()->stats.shortest = dur;
+ if (dur > ogs_diam_stats_self()->stats.longest)
+ ogs_diam_stats_self()->stats.longest = dur;
} else {
- ogs_diam_logger_self()->stats.shortest = dur;
- ogs_diam_logger_self()->stats.longest = dur;
- ogs_diam_logger_self()->stats.avg = dur;
+ ogs_diam_stats_self()->stats.shortest = dur;
+ ogs_diam_stats_self()->stats.longest = dur;
+ ogs_diam_stats_self()->stats.avg = dur;
}
if (error)
- ogs_diam_logger_self()->stats.nb_errs++;
- else
- ogs_diam_logger_self()->stats.nb_recv++;
+ ogs_diam_stats_self()->stats.nb_errs++;
+ else
+ ogs_diam_stats_self()->stats.nb_recv++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert(pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
/* Display how long it took */
if (ts.tv_nsec > sess_data->ts.tv_nsec)
@@ -1579,6 +1587,100 @@ static void mme_s6a_ula_cb(void *data, struct msg **msg)
return;
}
+/* MME Sends Purge UE Request to HSS */
+void mme_s6a_send_pur(enb_ue_t *enb_ue, mme_ue_t *mme_ue)
+{
+ int ret;
+
+ struct msg *req = NULL;
+ struct avp *avp;
+ union avp_value val;
+ struct sess_state *sess_data = NULL, *svg;
+ struct session *session = NULL;
+
+ if (!mme_ue) {
+ ogs_error("UE(mme-ue) context has already been removed");
+ return;
+ }
+
+ if (!enb_ue) {
+ ogs_error("S1 context has already been removed");
+ return;
+ }
+
+ ogs_debug("[MME] Purge-UE-Request");
+
+ /* Create the random value to store with the session */
+ sess_data = ogs_calloc(1, sizeof(*sess_data));
+ ogs_assert(sess_data);
+ sess_data->mme_ue_id = mme_ue->id;
+ sess_data->enb_ue_id = enb_ue->id;
+
+ /* Create the request */
+ ret = fd_msg_new(ogs_diam_s6a_cmd_pur, MSGFL_ALLOC_ETEID, &req);
+ ogs_assert(ret == 0);
+
+ /* Create a new session */
+ #define OGS_DIAM_S6A_APP_SID_OPT "app_s6a"
+ ret = fd_msg_new_session(req, (os0_t)OGS_DIAM_S6A_APP_SID_OPT,
+ CONSTSTRLEN(OGS_DIAM_S6A_APP_SID_OPT));
+ ogs_assert(ret == 0);
+ ret = fd_msg_sess_get(fd_g_config->cnf_dict, req, &session, NULL);
+ ogs_assert(ret == 0);
+
+ /* Set the Auth-Session-State AVP */
+ ret = fd_msg_avp_new(ogs_diam_auth_session_state, 0, &avp);
+ ogs_assert(ret == 0);
+ val.i32 = OGS_DIAM_AUTH_SESSION_NO_STATE_MAINTAINED;
+ ret = fd_msg_avp_setvalue(avp, &val);
+ ogs_assert(ret == 0);
+ ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
+ ogs_assert(ret == 0);
+
+ /* Set Origin-Host & Origin-Realm */
+ ret = fd_msg_add_origin(req, 0);
+ ogs_assert(ret == 0);
+
+ /* Set the Destination-Realm & Destination-Host */
+ mme_add_hss_destination(mme_ue, req);
+
+ /* Set the User-Name AVP */
+ ret = fd_msg_avp_new(ogs_diam_user_name, 0, &avp);
+ ogs_assert(ret == 0);
+ val.os.data = (uint8_t *)mme_ue->imsi_bcd;
+ val.os.len = strlen(mme_ue->imsi_bcd);
+ ret = fd_msg_avp_setvalue(avp, &val);
+ ogs_assert(ret == 0);
+ ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
+ ogs_assert(ret == 0);
+
+ /* Set Vendor-Specific-Application-Id AVP */
+ ret = ogs_diam_message_vendor_specific_appid_set(
+ req, OGS_DIAM_S6A_APPLICATION_ID);
+ ogs_assert(ret == 0);
+
+ ret = clock_gettime(CLOCK_REALTIME, &sess_data->ts);
+ ogs_assert(ret == 0);
+
+ /* Keep a pointer to the session data for debug purpose,
+ * in real life we would not need it */
+ svg = sess_data;
+
+ /* Store this value in the session */
+ ret = fd_sess_state_store(mme_s6a_reg, session, &sess_data);
+ ogs_assert(ret == 0);
+ ogs_assert(sess_data == 0);
+
+ /* Send the request */
+ ret = fd_msg_send(&req, mme_s6a_pua_cb, svg);
+ ogs_assert(ret == 0);
+
+ /* Increment the counter */
+ ogs_assert(pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
+ ogs_diam_stats_self()->stats.nb_sent++;
+ ogs_assert(pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
+}
+
/* MME received Purge UE Answer from HSS */
static void mme_s6a_pua_cb(void *data, struct msg **msg)
{
@@ -1595,6 +1697,7 @@ static void mme_s6a_pua_cb(void *data, struct msg **msg)
mme_event_t *e = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_diam_s6a_message_t *s6a_message = NULL;
ogs_diam_s6a_pua_message_t *pua_message = NULL;
@@ -1628,8 +1731,18 @@ static void mme_s6a_pua_cb(void *data, struct msg **msg)
return;
}
- mme_ue = sess_data->mme_ue;
- ogs_assert(mme_ue);
+ mme_ue = mme_ue_find_by_id(sess_data->mme_ue_id);
+ if (!mme_ue) {
+ ogs_error("MME-UE Context has already been removed [%d]",
+ sess_data->mme_ue_id);
+ return;
+ }
+ enb_ue = enb_ue_find_by_id(sess_data->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("[%s] ENB-S1 Context has already been removed [%d]",
+ mme_ue->imsi_bcd, sess_data->enb_ue_id);
+ return;
+ }
/* Set Purge-UE Command */
s6a_message = ogs_calloc(1, sizeof(ogs_diam_s6a_message_t));
@@ -1726,7 +1839,8 @@ static void mme_s6a_pua_cb(void *data, struct msg **msg)
int rv;
e = mme_event_new(MME_EVENT_S6A_MESSAGE);
ogs_assert(e);
- e->mme_ue = mme_ue;
+ e->mme_ue_id = mme_ue->id;
+ e->enb_ue_id = enb_ue->id;
e->s6a_message = s6a_message;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -1741,31 +1855,31 @@ static void mme_s6a_pua_cb(void *data, struct msg **msg)
}
/* Free the message */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert(pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
((ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
- if (ogs_diam_logger_self()->stats.nb_recv) {
+ if (ogs_diam_stats_self()->stats.nb_recv) {
/* Ponderate in the avg */
- ogs_diam_logger_self()->stats.avg =
- (ogs_diam_logger_self()->stats.avg *
- ogs_diam_logger_self()->stats.nb_recv + dur) /
- (ogs_diam_logger_self()->stats.nb_recv + 1);
+ ogs_diam_stats_self()->stats.avg =
+ (ogs_diam_stats_self()->stats.avg *
+ ogs_diam_stats_self()->stats.nb_recv + dur) /
+ (ogs_diam_stats_self()->stats.nb_recv + 1);
/* Min, max */
- if (dur < ogs_diam_logger_self()->stats.shortest)
- ogs_diam_logger_self()->stats.shortest = dur;
- if (dur > ogs_diam_logger_self()->stats.longest)
- ogs_diam_logger_self()->stats.longest = dur;
+ if (dur < ogs_diam_stats_self()->stats.shortest)
+ ogs_diam_stats_self()->stats.shortest = dur;
+ if (dur > ogs_diam_stats_self()->stats.longest)
+ ogs_diam_stats_self()->stats.longest = dur;
} else {
- ogs_diam_logger_self()->stats.shortest = dur;
- ogs_diam_logger_self()->stats.longest = dur;
- ogs_diam_logger_self()->stats.avg = dur;
+ ogs_diam_stats_self()->stats.shortest = dur;
+ ogs_diam_stats_self()->stats.longest = dur;
+ ogs_diam_stats_self()->stats.avg = dur;
}
if (error)
- ogs_diam_logger_self()->stats.nb_errs++;
+ ogs_diam_stats_self()->stats.nb_errs++;
else
- ogs_diam_logger_self()->stats.nb_recv++;
+ ogs_diam_stats_self()->stats.nb_recv++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert(pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
/* Display how long it took */
if (ts.tv_nsec > sess_data->ts.tv_nsec)
@@ -1790,12 +1904,12 @@ static int mme_ogs_diam_s6a_clr_cb( struct msg **msg, struct avp *avp,
struct session *session, void *opaque, enum disp_action *act)
{
int ret, rv;
-
+
mme_event_t *e = NULL;
mme_ue_t *mme_ue = NULL;
struct msg *ans, *qry;
- ogs_diam_s6a_clr_message_t *clr_message = NULL;
+ ogs_diam_s6a_clr_message_t *clr_message = NULL;
struct avp_hdr *hdr;
union avp_value val;
@@ -1877,13 +1991,13 @@ static int mme_ogs_diam_s6a_clr_cb( struct msg **msg, struct avp *avp,
ogs_debug("Cancel-Location-Answer");
/* Add this value to the stats */
- ogs_assert( pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert( pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert( pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
+ ogs_diam_stats_self()->stats.nb_echoed++;
+ ogs_assert( pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
e = mme_event_new(MME_EVENT_S6A_MESSAGE);
ogs_assert(e);
- e->mme_ue = mme_ue;
+ e->mme_ue_id = mme_ue->id;
e->s6a_message = s6a_message;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -1908,7 +2022,7 @@ static int mme_ogs_diam_s6a_clr_cb( struct msg **msg, struct avp *avp,
ogs_assert(ret == 0);
ret = fd_msg_avp_add(ans, MSG_BRW_LAST_CHILD, avp);
ogs_assert(ret == 0);
-
+
/* Set Vendor-Specific-Application-Id AVP */
ret = ogs_diam_message_vendor_specific_appid_set(
ans, OGS_DIAM_S6A_APPLICATION_ID);
@@ -1931,7 +2045,8 @@ static int mme_ogs_diam_s6a_idr_cb( struct msg **msg, struct avp *avp,
int ret;
char imsi_bcd[OGS_MAX_IMSI_BCD_LEN+1];
uint32_t result_code = 0;
- bool has_subscriber_data;
+ /* Clang scan-build SA: Branch condition evaluates to a garbage value: has_subscriber_data can be used uninitialized. */
+ bool has_subscriber_data = false;
struct msg *ans, *qry;
@@ -1994,8 +2109,10 @@ static int mme_ogs_diam_s6a_idr_cb( struct msg **msg, struct avp *avp,
} else {
has_subscriber_data = true;
uint32_t subdatamask = 0;
- ret = mme_s6a_subscription_data_from_avp(avp, subscription_data,
+ ret = mme_s6a_subscription_data_from_avp(avp, subscription_data,
mme_ue, &subdatamask);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(ret == 0);
idr_message->subdatamask = subdatamask;
ogs_info("[%s] Subscription-Data Processed.", imsi_bcd);
}
@@ -2167,14 +2284,14 @@ static int mme_ogs_diam_s6a_idr_cb( struct msg **msg, struct avp *avp,
ogs_debug("Insert-Subscriber-Data-Answer");
/* Add this value to the stats */
- ogs_assert( pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert( pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ ogs_assert( pthread_mutex_lock(&ogs_diam_stats_self()->stats_lock) == 0);
+ ogs_diam_stats_self()->stats.nb_echoed++;
+ ogs_assert( pthread_mutex_unlock(&ogs_diam_stats_self()->stats_lock) == 0);
int rv;
e = mme_event_new(MME_EVENT_S6A_MESSAGE);
ogs_assert(e);
- e->mme_ue = mme_ue;
+ e->mme_ue_id = mme_ue->id;
e->s6a_message = s6a_message;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -2200,7 +2317,7 @@ static int mme_ogs_diam_s6a_idr_cb( struct msg **msg, struct avp *avp,
ogs_assert(ret == 0);
ret = fd_msg_avp_add(ans, MSG_BRW_LAST_CHILD, avp);
ogs_assert(ret == 0);
-
+
/* Set Vendor-Specific-Application-Id AVP */
ret = ogs_diam_message_vendor_specific_appid_set(
ans, OGS_DIAM_S6A_APPLICATION_ID);
@@ -2243,7 +2360,7 @@ int mme_fd_init(void)
data.command = ogs_diam_s6a_cmd_idr;
ret = fd_disp_register(mme_ogs_diam_s6a_idr_cb, DISP_HOW_CC, &data, NULL,
&hdl_s6a_idr);
- ogs_assert(ret == 0);
+ ogs_assert(ret == 0);
/* Advertise the support for the application in the peer */
ret = fd_disp_app_support(ogs_diam_s6a_application, ogs_diam_vendor, 1, 0);
diff --git a/src/mme/mme-fd-path.h b/src/mme/mme-fd-path.h
index 4b455afcc3..8b5aef4e65 100644
--- a/src/mme/mme-fd-path.h
+++ b/src/mme/mme-fd-path.h
@@ -30,13 +30,16 @@ int mme_fd_init(void);
void mme_fd_final(void);
/* MME Sends Authentication Information Request to HSS */
-void mme_s6a_send_air(mme_ue_t *mme_ue,
+void mme_s6a_send_air(enb_ue_t *enb_ue, mme_ue_t *mme_ue,
ogs_nas_authentication_failure_parameter_t
*authentication_failure_parameter);
+void mme_s6a_send_air_from_gn(enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ ogs_gtp_xact_t *gtp_xact);
+
/* MME Sends Update Location Request to HSS */
-void mme_s6a_send_ulr(mme_ue_t *mme_ue);
+void mme_s6a_send_ulr(enb_ue_t *enb_ue, mme_ue_t *mme_ue);
/* MME Sends Purge UE Request to HSS */
-void mme_s6a_send_pur(mme_ue_t *mme_ue);
+void mme_s6a_send_pur(enb_ue_t *enb_ue, mme_ue_t *mme_ue);
#ifdef __cplusplus
}
diff --git a/src/mme/mme-gn-build.c b/src/mme/mme-gn-build.c
index 3882e0365e..b5a1729801 100644
--- a/src/mme/mme-gn-build.c
+++ b/src/mme/mme-gn-build.c
@@ -24,7 +24,11 @@
static int sess_fill_mm_context_decoded(mme_sess_t *sess, ogs_gtp1_mm_context_decoded_t *mmctx_dec)
{
- mme_ue_t *mme_ue = sess->mme_ue;
+ mme_ue_t *mme_ue = NULL;
+
+ ogs_assert(sess);
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
+ ogs_assert(mme_ue);
*mmctx_dec = (ogs_gtp1_mm_context_decoded_t) {
.gupii = 1, /* Integrity Protection not required */
.ugipai = 1, /* Ignore "Used GPRS integrity protection algorithm" field" */
@@ -55,13 +59,30 @@ static int sess_fill_mm_context_decoded(mme_sess_t *sess, ogs_gtp1_mm_context_de
static void build_qos_profile_from_session(ogs_gtp1_qos_profile_decoded_t *qos_pdec,
const mme_sess_t *sess, const mme_bearer_t *bearer)
{
- const mme_ue_t *mme_ue = sess->mme_ue;
+ mme_ue_t *mme_ue = NULL;
const ogs_session_t *session = sess->session;
+
+ ogs_assert(sess);
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
+ ogs_assert(mme_ue);
+
/* FIXME: Initialize with defaults: */
memset(qos_pdec, 0, sizeof(*qos_pdec));
qos_pdec->qos_profile.arp = session->qos.arp.priority_level;
+ /* 3GPP TS 23.107 "Delivery order should be set to 'no' for PDP Type =
+ * 'IPv4' or 'IPv6'. The SGSN shall ensure that the appropriate value is set."
+ * 3GPP TS 23.401 D.3.5 2b NOTE4: The GTP and PDCP sequence numbers are not
+ * relevant as the network does not configure usage of "delivery order
+ * required" [...] as described in clause "compatibility issues" (4.8.1) */
+ qos_pdec->qos_profile.data.delivery_order = OGS_GTP1_DELIVERY_ORDER_NO;
+
+ qos_pdec->qos_profile.data.delivery_erroneous_sdu = OGS_GTP1_DELIVERY_ERR_SDU_NO;
+
+ /* Maximum SDU Size: Encode it as 1500, the maximum for IP 3GPP TS 23.107 Table 4, Note 4) */
+ qos_pdec->qos_profile.data.max_sdu_size = 0x96;
+
/* 3GPP TS 23.401 Annex E table Table E.3 */
/* Also take into account table 7 in 3GPP TS 23.107 9.1.2.2 */
switch (session->qos.index) { /* QCI */
@@ -128,6 +149,7 @@ static void build_qos_profile_from_session(ogs_gtp1_qos_profile_decoded_t *qos_p
static int sess_fill_pdp_context_decoded(mme_sess_t *sess, ogs_gtp1_pdp_context_decoded_t *pdpctx_dec)
{
mme_bearer_t *bearer = NULL;
+ int rv;
*pdpctx_dec = (ogs_gtp1_pdp_context_decoded_t){
.ea = OGS_GTP1_PDPCTX_EXT_EUA_NO,
@@ -135,7 +157,7 @@ static int sess_fill_pdp_context_decoded(mme_sess_t *sess, ogs_gtp1_pdp_context_
.asi = OGS_GTP1_PDPCTX_ACTIVITY_STATUS_IND_NO,
.order = OGS_GTP1_PDPCTX_REORDERING_REQUIRED_NO,
/* 3GPP TS 23.401 Annex D3.5.5 2b.:
- * "The GTP equence numbers received from the old 3G-SGSN are only relevant if
+ * "The GTP sequence numbers received from the old 3G-SGSN are only relevant if
* delivery order is required for the PDP context (QoS profile)."
* NOTE 4: "The GTP and PDCP sequence numbers are not relevant" */
.snd = 0,
@@ -144,16 +166,19 @@ static int sess_fill_pdp_context_decoded(mme_sess_t *sess, ogs_gtp1_pdp_context_
.receive_npdu_nr = 0,
.ul_teic = sess->pgw_s5c_teid,
.pdp_type_org = OGS_PDP_EUA_ORG_IETF,
- .pdp_type_num = {sess->session->session_type, },
- .pdp_address = {sess->session->ue_ip, },
+ .pdp_type_num = {sess->paa.session_type, },
.ggsn_address_c = sess->pgw_s5c_ip,
.trans_id = sess->pti,
};
ogs_cpystrn(pdpctx_dec->apn, sess->session->name, sizeof(pdpctx_dec->apn));
+ rv = ogs_paa_to_ip(&sess->paa, &pdpctx_dec->pdp_address[0]);
+ if (rv != OGS_OK)
+ return rv;
+
ogs_list_for_each(&sess->bearer_list, bearer) {
- pdpctx_dec->nsapi = bearer->ebi;
+ pdpctx_dec->nsapi = bearer->ebi; /* 3GPP TS 23.401 5.2.1, TS 23.060 14.4 */
pdpctx_dec->sapi = 3; /* FIXME. Using 3 = default for now. Maybe use 0 = UNASSIGNED ?*/
build_qos_profile_from_session(&pdpctx_dec->qos_sub, sess, bearer);
//FIXME: sort out where to get each one:
@@ -172,13 +197,12 @@ static int sess_fill_pdp_context_decoded(mme_sess_t *sess, ogs_gtp1_pdp_context_
/* 3GPP TS 29.060 7.5.3 SGSN Context Request */
ogs_pkbuf_t *mme_gn_build_sgsn_context_request(
- mme_ue_t *mme_ue)
+ mme_ue_t *mme_ue, const ogs_nas_p_tmsi_signature_t *ptmsi_sig)
{
ogs_gtp1_message_t gtp1_message;
ogs_gtp1_sgsn_context_request_t *req = NULL;
ogs_nas_rai_t rai;
mme_p_tmsi_t ptmsi;
- uint32_t ptmsi_sig;
ogs_gtp1_gsn_addr_t mme_gnc_gsnaddr, mme_gnc_alt_gsnaddr;
int gsn_len;
int rv;
@@ -190,21 +214,25 @@ ogs_pkbuf_t *mme_gn_build_sgsn_context_request(
req = >p1_message.sgsn_context_request;
memset(>p1_message, 0, sizeof(ogs_gtp1_message_t));
- guti_to_rai_ptmsi(&mme_ue->next.guti, &rai, &ptmsi, &ptmsi_sig);
+ guti_to_rai_ptmsi(&mme_ue->next.guti, &rai, &ptmsi);
req->imsi.presence = 0;
req->routeing_area_identity.presence = 1;
+ /* Needs to be big-endian */
+ rai.lai.lac = htons(rai.lai.lac);
req->routeing_area_identity.data = &rai;
req->routeing_area_identity.len = sizeof(ogs_nas_rai_t);
req->temporary_logical_link_identifier.presence = 0;
req->packet_tmsi.presence = 1;
- req->packet_tmsi.u32 = be32toh(ptmsi);
+ req->packet_tmsi.u32 = ptmsi;
- req->p_tmsi_signature.presence = 1;
- req->p_tmsi_signature.u24 = ptmsi_sig;
+ if (ptmsi_sig) {
+ req->p_tmsi_signature.presence = 1;
+ req->p_tmsi_signature.u24 = *ptmsi_sig >> 8;
+ }
req->ms_validated.presence = 0;
diff --git a/src/mme/mme-gn-build.h b/src/mme/mme-gn-build.h
index 642ff174be..b83df6db63 100644
--- a/src/mme/mme-gn-build.h
+++ b/src/mme/mme-gn-build.h
@@ -31,7 +31,7 @@ extern "C" {
#endif
ogs_pkbuf_t *mme_gn_build_sgsn_context_request(
- mme_ue_t *mme_ue);
+ mme_ue_t *mme_ue, const ogs_nas_p_tmsi_signature_t *ptmsi_sig);
ogs_pkbuf_t *mme_gn_build_sgsn_context_response(
mme_ue_t *mme_ue, uint8_t cause);
diff --git a/src/mme/mme-gn-handler.c b/src/mme/mme-gn-handler.c
index 4cc0e860e2..a97521cb69 100644
--- a/src/mme/mme-gn-handler.c
+++ b/src/mme/mme-gn-handler.c
@@ -69,22 +69,20 @@ static int decode_global_enb_id(S1AP_Global_ENB_ID_t *glob_enb_id, const uint8_t
return OGS_OK;
}
-/* 3GPP TS 23.003 2.8.2.1 Mapping from GUTI to RAI, P-TMSI and P-TMSI signature */
-void guti_to_rai_ptmsi(const ogs_nas_eps_guti_t *nas_guti, ogs_nas_rai_t *rai, mme_p_tmsi_t *ptmsi, uint32_t *ptmsi_sig)
+/* 3GPP TS 23.003 2.8.2.2 Mapping RAI and P-TMSI from GUTI (in the MME) */
+void guti_to_rai_ptmsi(const ogs_nas_eps_guti_t *nas_guti, ogs_nas_rai_t *rai, mme_p_tmsi_t *ptmsi)
{
rai->lai.nas_plmn_id = nas_guti->nas_plmn_id;
rai->lai.lac = nas_guti->mme_gid;
- rai->rac = nas_guti->mme_code;
+ rai->rac = (nas_guti->m_tmsi >> 16) & 0xff;
if (ptmsi)
*ptmsi = 0xC0000000 |
(nas_guti->m_tmsi & 0x3f000000) |
(nas_guti->mme_code & 0x0ff) << 16 |
(nas_guti->m_tmsi & 0x0000ffff);
- if (ptmsi_sig)
- *ptmsi_sig = (nas_guti->m_tmsi & 0x00ff0000);
}
-/* 3GPP TS 23.003 2.8.2.2 Mapping from RAI and P-TMSI to GUTI */
+/* 3GPP TS 23.003 2.8.2.1 Mapping GUTI from RAI, P-TMSI and P-TMSI signature (in the MME) */
static void rai_ptmsi_to_guti(const ogs_nas_rai_t *rai, mme_p_tmsi_t ptmsi, uint32_t ptmsi_sig, ogs_nas_eps_guti_t *nas_guti)
{
nas_guti->nas_plmn_id = rai->lai.nas_plmn_id;
@@ -225,7 +223,7 @@ static mme_sess_t *mme_ue_session_from_gtp1_pdp_ctx(mme_ue_t *mme_ue, const ogs_
mme_sess_t *sess = NULL;
mme_bearer_t *bearer = NULL;
const ogs_gtp1_qos_profile_decoded_t *qos_pdec = >p1_pdp_ctx->qos_sub;
- uint8_t pti = gtp1_pdp_ctx->trans_id;
+ uint8_t pti = 1; /* Default PTI : 1 */
uint8_t qci = 0;
ogs_session_t *ogs_sess;
@@ -238,11 +236,6 @@ static mme_sess_t *mme_ue_session_from_gtp1_pdp_ctx(mme_ue_t *mme_ue, const ogs_
}
ogs_sess->smf_ip = gtp1_pdp_ctx->ggsn_address_c;
ogs_sess->context_identifier = gtp1_pdp_ctx->pdp_ctx_id;
- ogs_sess->session_type = gtp1_pdp_ctx->pdp_type_num[0];
- ogs_sess->ue_ip = gtp1_pdp_ctx->pdp_address[0];
- /* TODO: sess->paa with gtp1_pdp_ctx->pdp_address[0],
- using/implementing ogs_gtp2_ip_to_paa ? */
- ogs_ip_to_paa(&ogs_sess->ue_ip, &ogs_sess->paa);
/* 3GPP TS 23.060 section 9.2.1A: "The QoS profiles of the PDP context and EPS bearer are mapped as specified in TS 23.401"
* 3GPP TS 23.401 Annex E: "Mapping between EPS and Release 99 QoS parameters"
@@ -250,8 +243,8 @@ static mme_sess_t *mme_ue_session_from_gtp1_pdp_ctx(mme_ue_t *mme_ue, const ogs_
ogs_gtp1_qos_profile_to_qci(qos_pdec, &qci);
ogs_sess->qos.index = qci;
ogs_sess->qos.arp.priority_level = qos_pdec->qos_profile.arp; /* 3GPP TS 23.401 Annex E Table E.2 */
- ogs_sess->qos.arp.pre_emption_capability = 0; /* ignored as per 3GPP TS 23.401 Annex E */
- ogs_sess->qos.arp.pre_emption_vulnerability = 0; /* ignored as per 3GPP TS 23.401 Annex E */
+ ogs_sess->qos.arp.pre_emption_capability = 0; /* operator policy, hardcoded, 3GPP TS 23.401 Annex E */
+ ogs_sess->qos.arp.pre_emption_vulnerability = 1; /* operator policy, hardcoded, 3GPP TS 23.401 Annex E */
if (qos_pdec->data_octet6_to_13_present) {
ogs_sess->ambr.downlink = qos_pdec->dec_mbr_kbps_dl * 1000;
ogs_sess->ambr.uplink = qos_pdec->dec_mbr_kbps_ul * 1000;
@@ -266,19 +259,21 @@ static mme_sess_t *mme_ue_session_from_gtp1_pdp_ctx(mme_ue_t *mme_ue, const ogs_
sess->session = ogs_sess;
sess->pgw_s5c_teid = gtp1_pdp_ctx->ul_teic;
sess->pgw_s5c_ip = gtp1_pdp_ctx->ggsn_address_c;
- switch (ogs_sess->session_type) {
+ ogs_ip_to_paa(>p1_pdp_ctx->pdp_address[0], &sess->paa);
+ switch (gtp1_pdp_ctx->pdp_type_num[0]) {
case OGS_PDU_SESSION_TYPE_IPV4:
- sess->request_type.type = OGS_NAS_EPS_PDN_TYPE_IPV4;
+ sess->ue_request_type.type = OGS_NAS_EPS_PDN_TYPE_IPV4;
break;
case OGS_PDU_SESSION_TYPE_IPV6:
- sess->request_type.type = OGS_NAS_EPS_PDN_TYPE_IPV6;
+ sess->ue_request_type.type = OGS_NAS_EPS_PDN_TYPE_IPV6;
break;
case OGS_PDU_SESSION_TYPE_IPV4V6:
- sess->request_type.type = OGS_NAS_EPS_PDN_TYPE_IPV4V6;
+ sess->ue_request_type.type = OGS_NAS_EPS_PDN_TYPE_IPV4V6;
break;
}
- sess->request_type.value = OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
+ sess->ue_request_type.value = OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
+ /* NSAPI = EBI: 3GPP TS 23.401 5.2.1, TS 23.060 14.4A */
bearer = mme_bearer_find_by_sess_ebi(sess, gtp1_pdp_ctx->nsapi);
if (!bearer) {
bearer = mme_default_bearer_in_sess(sess);
@@ -294,6 +289,10 @@ static mme_sess_t *mme_ue_session_from_gtp1_pdp_ctx(mme_ue_t *mme_ue, const ogs_
bearer->enb_s1u_ip.ipv4 = 1;
bearer->enb_s1u_ip.addr = 0;
bearer->enb_s1u_teid = 0xffffffff;
+ bearer->qos.index = ogs_sess->qos.index;
+ bearer->qos.arp.priority_level = ogs_sess->qos.arp.priority_level;
+ bearer->qos.arp.pre_emption_capability = ogs_sess->qos.arp.pre_emption_capability;
+ bearer->qos.arp.pre_emption_vulnerability = ogs_sess->qos.arp.pre_emption_vulnerability;
return sess;
}
@@ -307,6 +306,7 @@ int mme_gn_handle_sgsn_context_response(
char imsi_bcd[OGS_MAX_IMSI_BCD_LEN+1];
ogs_gtp1_mm_context_decoded_t gtp1_mm_ctx;
ogs_gtp1_pdp_context_decoded_t gtp1_pdp_ctx;
+ enb_ue_t *enb_ue = NULL;
mme_sess_t *sess = NULL;
uint8_t ret_cause = OGS_GTP1_CAUSE_REQUEST_ACCEPTED;
@@ -323,6 +323,8 @@ int mme_gn_handle_sgsn_context_response(
return OGS_GTP1_CAUSE_IMSI_IMEI_NOT_KNOWN;
}
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+
switch (resp->cause.u8) {
case OGS_GTP1_CAUSE_REQUEST_ACCEPTED:
break; /* Handle below */
@@ -343,7 +345,7 @@ int mme_gn_handle_sgsn_context_response(
if (resp->cause.u8 != OGS_GTP1_CAUSE_REQUEST_ACCEPTED) {
ogs_error("[Gn] Rx SGSN Context Response cause:%u", resp->cause.u8);
- rv = nas_eps_send_tau_reject(mme_ue, emm_cause);
+ rv = nas_eps_send_tau_reject(enb_ue, mme_ue, emm_cause);
return OGS_GTP1_CAUSE_SYSTEM_FAILURE;
}
@@ -423,17 +425,19 @@ int mme_gn_handle_sgsn_context_response(
}
sess = mme_ue_session_from_gtp1_pdp_ctx(mme_ue, >p1_pdp_ctx);
-
- rv = mme_gtp1_send_sgsn_context_ack(mme_ue, OGS_GTP1_CAUSE_REQUEST_ACCEPTED, xact);
-
- mme_gtp_send_create_session_request(sess, OGS_GTP_CREATE_IN_TRACKING_AREA_UPDATE);
+ if (!sess) {
+ gtp1_cause = OGS_GTP1_CAUSE_SYSTEM_FAILURE;
+ goto nack_and_reject;
+ }
+ /* Store sess id to be able to retrieve it later on from xact: */
+ xact->data = OGS_UINT_TO_POINTER(sess->pti);
return ret_cause;
nack_and_reject:
rv = mme_gtp1_send_sgsn_context_ack(mme_ue, gtp1_cause, xact);
ogs_info("[%s] TAU Reject [OGS_NAS_EMM_CAUSE:%d]", mme_ue->imsi_bcd, emm_cause);
- rv = nas_eps_send_tau_reject(mme_ue, emm_cause);
+ rv = nas_eps_send_tau_reject(enb_ue, mme_ue, emm_cause);
return OGS_GTP1_CAUSE_SYSTEM_FAILURE;
}
@@ -442,6 +446,7 @@ void mme_gn_handle_sgsn_context_acknowledge(
ogs_gtp_xact_t *xact, mme_ue_t *mme_ue, ogs_gtp1_sgsn_context_acknowledge_t *req)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_debug("[Gn] Rx SGSN Context Acknowledge");
@@ -456,6 +461,8 @@ void mme_gn_handle_sgsn_context_acknowledge(
return;
}
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+
/* 3GPP TS 23.060 6.9.1.2.2 Step 4), 3GPP TS 23.401 D.3.5 Step 4)
* The new SGSN sends an SGSN Context Acknowledge message to the old SGSN. The old MME (which is the old
* SGSN from the new SGSN's point of view) marks in its context that the information in the GWs and the HSS are
@@ -478,8 +485,8 @@ void mme_gn_handle_sgsn_context_acknowledge(
* connection is released by the source eNodeB. The source eNodeB confirms the release of the RRC connection
* and of the S1-U connection by sending a S1-U Release Complete message to the source MME."
*/
- if (mme_ue->enb_ue) {
- rv = s1ap_send_ue_context_release_command(mme_ue->enb_ue,
+ if (enb_ue) {
+ rv = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
S1AP_UE_CTX_REL_S1_REMOVE_AND_UNLINK, 0);
ogs_expect(rv == OGS_OK);
diff --git a/src/mme/mme-gn-handler.h b/src/mme/mme-gn-handler.h
index 0c3a6156f3..af422006c2 100644
--- a/src/mme/mme-gn-handler.h
+++ b/src/mme/mme-gn-handler.h
@@ -45,7 +45,7 @@ void mme_gn_handle_ran_information_relay(
ogs_gtp_xact_t *xact, ogs_gtp1_ran_information_relay_t *req);
void guti_to_rai_ptmsi(const ogs_nas_eps_guti_t *nas_guti, ogs_nas_rai_t *rai,
- mme_p_tmsi_t *ptmsi, uint32_t *ptmsi_sig);
+ mme_p_tmsi_t *ptmsi);
#ifdef __cplusplus
}
diff --git a/src/mme/mme-gtp-path.c b/src/mme/mme-gtp-path.c
index 9a9b0b0a4a..26a91796f3 100644
--- a/src/mme/mme-gtp-path.c
+++ b/src/mme/mme-gtp-path.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -102,9 +102,12 @@ static void timeout(ogs_gtp_xact_t *xact, void *data)
{
int r;
mme_ue_t *mme_ue = NULL;
+ ogs_pool_id_t mme_ue_id = OGS_INVALID_POOL_ID;
enb_ue_t *enb_ue = NULL;
mme_sess_t *sess = NULL;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
mme_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
uint8_t type = 0;
ogs_assert(xact);
@@ -115,22 +118,42 @@ static void timeout(ogs_gtp_xact_t *xact, void *data)
case OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE:
case OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE:
case OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE:
- mme_ue = data;
- ogs_assert(mme_ue);
+ mme_ue_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(mme_ue_id >= OGS_MIN_POOL_ID &&
+ mme_ue_id <= OGS_MAX_POOL_ID);
+ mme_ue = mme_ue_find_by_id(mme_ue_id);
+ if (!mme_ue) {
+ ogs_error("MME-UE[%d] has already been removed [%d]",
+ mme_ue_id, type);
+ return;
+ }
break;
case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE:
case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE:
- sess = data;
- ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ sess_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID && sess_id <= OGS_MAX_POOL_ID);
+ sess = mme_sess_find_by_id(sess_id);
+ if (!sess) {
+ ogs_error("Session[%d] has already been removed [%d]",
+ sess_id, type);
+ return;
+ }
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
break;
case OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE:
- bearer = data;
- ogs_assert(bearer);
- sess = bearer->sess;
+ bearer_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
+ bearer = mme_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("Bearer[%d] has already been removed [%d]",
+ bearer_id, type);
+ return;
+ }
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
break;
default:
@@ -140,6 +163,7 @@ static void timeout(ogs_gtp_xact_t *xact, void *data)
}
ogs_assert(mme_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
switch (type) {
case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE:
@@ -154,7 +178,6 @@ static void timeout(ogs_gtp_xact_t *xact, void *data)
*/
CLEAR_SESSION_CONTEXT(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
if (enb_ue) {
r = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
@@ -169,7 +192,10 @@ static void timeout(ogs_gtp_xact_t *xact, void *data)
/* Nothing to do */
break;
default:
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (enb_ue)
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
+ else
+ ogs_error("No S1 Context");
break;
}
@@ -203,6 +229,8 @@ int mme_gtp_open(void)
}
OGS_SETUP_GTPC_SERVER;
+ ogs_assert(ogs_gtp_self()->gtpc_sock || ogs_gtp_self()->gtpc_sock6);
+ ogs_assert(ogs_gtp_self()->gtpc_addr || ogs_gtp_self()->gtpc_addr6);
mme_self()->pgw_addr = mme_pgw_addr_find_by_apn_enb(
&mme_self()->pgw_list, AF_INET, NULL);
@@ -233,7 +261,8 @@ void mme_gtp_close(void)
ogs_socknode_remove_all(&ogs_gtp_self()->gtpc_list6);
}
-int mme_gtp_send_create_session_request(mme_sess_t *sess, int create_action)
+int mme_gtp_send_create_session_request(
+ enb_ue_t *enb_ue, mme_sess_t *sess, int create_action)
{
int rv;
ogs_gtp2_header_t h;
@@ -242,13 +271,14 @@ int mme_gtp_send_create_session_request(mme_sess_t *sess, int create_action)
mme_ue_t *mme_ue = NULL;
sgw_ue_t *sgw_ue = NULL;
- mme_ue = sess->mme_ue;
+ ogs_assert(enb_ue);
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
if (create_action == OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST) {
- sgw_ue = sgw_ue_cycle(sgw_ue->target_ue);
+ sgw_ue = sgw_ue_find_by_id(sgw_ue->target_ue_id);
ogs_assert(sgw_ue);
}
@@ -262,13 +292,16 @@ int mme_gtp_send_create_session_request(mme_sess_t *sess, int create_action)
return OGS_ERROR;
}
- xact = ogs_gtp_xact_local_create(sgw_ue->gnode, &h, pkbuf, timeout, sess);
+ xact = ogs_gtp_xact_local_create(
+ sgw_ue->gnode, &h, pkbuf, timeout,
+ OGS_UINT_TO_POINTER(sess->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
}
xact->create_action = create_action;
xact->local_teid = mme_ue->gn.mme_gn_teid;
+ xact->enb_ue_id = enb_ue->id;
rv = ogs_gtp_xact_commit(xact);
ogs_expect(rv == OGS_OK);
@@ -277,7 +310,8 @@ int mme_gtp_send_create_session_request(mme_sess_t *sess, int create_action)
}
int mme_gtp_send_modify_bearer_request(
- mme_ue_t *mme_ue, int uli_presence, int modify_action)
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ int uli_presence, int modify_action)
{
int rv;
@@ -287,8 +321,9 @@ int mme_gtp_send_modify_bearer_request(
ogs_gtp2_header_t h;
ogs_pkbuf_t *pkbuf = NULL;
+ ogs_assert(enb_ue);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
memset(&h, 0, sizeof(ogs_gtp2_header_t));
@@ -301,13 +336,16 @@ int mme_gtp_send_modify_bearer_request(
return OGS_ERROR;
}
- xact = ogs_gtp_xact_local_create(sgw_ue->gnode, &h, pkbuf, timeout, mme_ue);
+ xact = ogs_gtp_xact_local_create(
+ sgw_ue->gnode, &h, pkbuf, timeout,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
}
xact->modify_action = modify_action;
xact->local_teid = mme_ue->gn.mme_gn_teid;
+ xact->enb_ue_id = enb_ue->id;
rv = ogs_gtp_xact_commit(xact);
ogs_expect(rv == OGS_OK);
@@ -316,7 +354,7 @@ int mme_gtp_send_modify_bearer_request(
}
int mme_gtp_send_delete_session_request(
- sgw_ue_t *sgw_ue, mme_sess_t *sess, int action)
+ enb_ue_t *enb_ue, sgw_ue_t *sgw_ue, mme_sess_t *sess, int action)
{
int rv;
ogs_pkbuf_t *s11buf = NULL;
@@ -324,9 +362,10 @@ int mme_gtp_send_delete_session_request(
ogs_gtp_xact_t *xact = NULL;
mme_ue_t *mme_ue = NULL;
+ ogs_assert(enb_ue);
ogs_assert(action);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
ogs_assert(sgw_ue);
@@ -340,13 +379,17 @@ int mme_gtp_send_delete_session_request(
return OGS_ERROR;
}
- xact = ogs_gtp_xact_local_create(sgw_ue->gnode, &h, s11buf, timeout, sess);
+ xact = ogs_gtp_xact_local_create(
+ sgw_ue->gnode, &h, s11buf, timeout,
+ OGS_UINT_TO_POINTER(sess->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
}
xact->delete_action = action;
xact->local_teid = mme_ue->gn.mme_gn_teid;
+ xact->enb_ue_id = enb_ue->id;
+ ogs_debug("delete_session_request - xact:%p, sess:%p", xact, sess);
rv = ogs_gtp_xact_commit(xact);
ogs_expect(rv == OGS_OK);
@@ -354,19 +397,21 @@ int mme_gtp_send_delete_session_request(
return rv;
}
-void mme_gtp_send_delete_all_sessions(mme_ue_t *mme_ue, int action)
+void mme_gtp_send_delete_all_sessions(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, int action)
{
mme_sess_t *sess = NULL, *next_sess = NULL;
sgw_ue_t *sgw_ue = NULL;
+ ogs_assert(enb_ue);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
ogs_assert(action);
ogs_list_for_each_safe(&mme_ue->sess_list, next_sess, sess) {
if (MME_HAVE_SGW_S1U_PATH(sess)) {
- mme_gtp_send_delete_session_request(sgw_ue, sess, action);
+ mme_gtp_send_delete_session_request(enb_ue, sgw_ue, sess, action);
} else {
MME_SESS_CLEAR(sess);
}
@@ -386,16 +431,19 @@ int mme_gtp_send_create_bearer_response(
ogs_pkbuf_t *pkbuf = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
- ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
- ogs_assert(sgw_ue);
- xact = ogs_gtp_xact_cycle(bearer->create.xact);
+ ogs_assert(bearer->create.xact_id >= OGS_MIN_POOL_ID &&
+ bearer->create.xact_id <= OGS_MAX_POOL_ID);
+ xact = ogs_gtp_xact_find_by_id(bearer->create.xact_id);
if (!xact) {
- ogs_warn("GTP transaction(CREATE) has already been removed");
+ ogs_error("GTP transaction(CREATE) has already been removed");
return OGS_OK;
}
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ ogs_assert(mme_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
+ ogs_assert(sgw_ue);
+
memset(&h, 0, sizeof(ogs_gtp2_header_t));
h.type = OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE;
h.teid = sgw_ue->sgw_s11_teid;
@@ -423,7 +471,7 @@ int mme_gtp_send_update_bearer_response(
{
int rv;
- ogs_gtp_xact_t *xact = NULL;
+ ogs_gtp_xact_t *xact = NULL, *next_xact = NULL;
mme_ue_t *mme_ue = NULL;
sgw_ue_t *sgw_ue = NULL;
@@ -431,16 +479,43 @@ int mme_gtp_send_update_bearer_response(
ogs_pkbuf_t *pkbuf = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
- xact = ogs_gtp_xact_cycle(bearer->update.xact);
+
+ /*
+ * Issues #3240
+ *
+ * SMF->SGW-C->MME: First Update Bearer Request
+ * MME->UE: First Modify EPS bearer context request
+ * SMF->SGW-C->MME: Second Update Bearer Request
+ * MME->UE: Second Modify EPS bearer context request
+ * UE->MME: First Modify EPS bearer context accept
+ * MME->SGW-C->SMF: First Update Bearer Response
+ * UE->MME: Second Modify EPS bearer context accept
+ * MME->SGW-C->SMF: Second Update Bearer Response
+ *
+ * After sending the Update Bearer Response, remove the corresponding
+ * Transaction Node from the list managed by the Bearer Context.
+ */
+ ogs_list_for_each_entry_safe(
+ &bearer->update.xact_list, next_xact, xact, to_update_node) {
+ ogs_list_remove(&bearer->update.xact_list, &xact->to_update_node);
+ break;
+ }
if (!xact) {
ogs_warn("GTP transaction(UPDATE) has already been removed");
return OGS_OK;
}
+ /*
+ * eNB sends Modify EPS Bearer Accept to the MME
+ * MME can send Update Bearer Response to the SGW-C,
+ * so stop the peer waiting timer
+ */
+ ogs_timer_stop(xact->tm_peer);
+
memset(&h, 0, sizeof(ogs_gtp2_header_t));
h.type = OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE;
h.teid = sgw_ue->sgw_s11_teid;
@@ -476,16 +551,19 @@ int mme_gtp_send_delete_bearer_response(
ogs_pkbuf_t *pkbuf = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
- ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
- ogs_assert(sgw_ue);
- xact = ogs_gtp_xact_cycle(bearer->delete.xact);
+ ogs_assert(bearer->delete.xact_id >= OGS_MIN_POOL_ID &&
+ bearer->delete.xact_id <= OGS_MAX_POOL_ID);
+ xact = ogs_gtp_xact_find_by_id(bearer->delete.xact_id);
if (!xact) {
- ogs_warn("GTP transaction(DELETE) has already been removed");
+ ogs_error("GTP transaction(DELETE) has already been removed");
return OGS_OK;
}
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ ogs_assert(mme_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
+ ogs_assert(sgw_ue);
+
memset(&h, 0, sizeof(ogs_gtp2_header_t));
h.type = OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE;
h.teid = sgw_ue->sgw_s11_teid;
@@ -508,7 +586,8 @@ int mme_gtp_send_delete_bearer_response(
return rv;
}
-int mme_gtp_send_release_access_bearers_request(mme_ue_t *mme_ue, int action)
+int mme_gtp_send_release_access_bearers_request(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, int action)
{
int rv;
ogs_gtp2_header_t h;
@@ -516,9 +595,10 @@ int mme_gtp_send_release_access_bearers_request(mme_ue_t *mme_ue, int action)
ogs_gtp_xact_t *xact = NULL;
sgw_ue_t *sgw_ue = NULL;
+ ogs_assert(enb_ue);
ogs_assert(action);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
memset(&h, 0, sizeof(ogs_gtp2_header_t));
@@ -531,13 +611,16 @@ int mme_gtp_send_release_access_bearers_request(mme_ue_t *mme_ue, int action)
return OGS_ERROR;
}
- xact = ogs_gtp_xact_local_create(sgw_ue->gnode, &h, pkbuf, timeout, mme_ue);
+ xact = ogs_gtp_xact_local_create(
+ sgw_ue->gnode, &h, pkbuf, timeout,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
}
xact->release_action = action;
xact->local_teid = mme_ue->gn.mme_gn_teid;
+ xact->enb_ue_id = enb_ue->id;
rv = ogs_gtp_xact_commit(xact);
ogs_expect(rv == OGS_OK);
@@ -551,7 +634,7 @@ void mme_gtp_send_release_all_ue_in_enb(mme_enb_t *enb, int action)
enb_ue_t *enb_ue = NULL, *next = NULL;
ogs_list_for_each_safe(&enb->enb_ue_list, next, enb_ue) {
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (mme_ue) {
if (action == OGS_GTP_RELEASE_S1_CONTEXT_REMOVE_BY_LO_CONNREFUSED) {
@@ -578,7 +661,8 @@ void mme_gtp_send_release_all_ue_in_enb(mme_enb_t *enb, int action)
}
ogs_assert(OGS_OK ==
- mme_gtp_send_release_access_bearers_request(mme_ue, action));
+ mme_gtp_send_release_access_bearers_request(
+ enb_ue, mme_ue, action));
} else {
ogs_warn("mme_gtp_send_release_all_ue_in_enb()");
ogs_warn(" ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d] Action[%d]",
@@ -607,14 +691,17 @@ int mme_gtp_send_downlink_data_notification_ack(
ogs_pkbuf_t *s11buf = NULL;
ogs_assert(bearer);
- xact = ogs_gtp_xact_cycle(bearer->notify.xact);
+ ogs_assert(bearer->notify.xact_id >= OGS_MIN_POOL_ID &&
+ bearer->notify.xact_id <= OGS_MAX_POOL_ID);
+ xact = ogs_gtp_xact_find_by_id(bearer->notify.xact_id);
if (!xact) {
- ogs_warn("GTP transaction(NOTIFY) has already been removed");
+ ogs_error("GTP transaction(NOTIFY) has already been removed");
return OGS_OK;
}
- mme_ue = bearer->mme_ue;
+
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
/* Build Downlink data notification ack */
@@ -641,7 +728,7 @@ int mme_gtp_send_downlink_data_notification_ack(
}
int mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
- mme_ue_t *mme_ue)
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue)
{
int rv;
ogs_gtp2_header_t h;
@@ -649,8 +736,9 @@ int mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
ogs_gtp_xact_t *xact = NULL;
sgw_ue_t *sgw_ue = NULL;
+ ogs_assert(enb_ue);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
memset(&h, 0, sizeof(ogs_gtp2_header_t));
@@ -665,12 +753,15 @@ int mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
return OGS_ERROR;
}
- xact = ogs_gtp_xact_local_create(sgw_ue->gnode, &h, pkbuf, timeout, mme_ue);
+ xact = ogs_gtp_xact_local_create(
+ sgw_ue->gnode, &h, pkbuf, timeout,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
}
xact->local_teid = mme_ue->gn.mme_gn_teid;
+ xact->enb_ue_id = enb_ue->id;
rv = ogs_gtp_xact_commit(xact);
ogs_expect(rv == OGS_OK);
@@ -679,7 +770,7 @@ int mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
}
int mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
- mme_ue_t *mme_ue, int action)
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, int action)
{
int rv;
ogs_gtp2_header_t h;
@@ -687,9 +778,10 @@ int mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
ogs_gtp_xact_t *xact = NULL;
sgw_ue_t *sgw_ue = NULL;
+ ogs_assert(enb_ue);
ogs_assert(action);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
memset(&h, 0, sizeof(ogs_gtp2_header_t));
@@ -703,13 +795,16 @@ int mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
}
ogs_pkbuf_reserve(pkbuf, OGS_TLV_MAX_HEADROOM);
- xact = ogs_gtp_xact_local_create(sgw_ue->gnode, &h, pkbuf, timeout, mme_ue);
+ xact = ogs_gtp_xact_local_create(
+ sgw_ue->gnode, &h, pkbuf, timeout,
+ OGS_UINT_TO_POINTER(mme_ue->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
}
xact->delete_indirect_action = action;
xact->local_teid = mme_ue->gn.mme_gn_teid;
+ xact->enb_ue_id = enb_ue->id;
rv = ogs_gtp_xact_commit(xact);
ogs_expect(rv == OGS_OK);
@@ -729,9 +824,9 @@ int mme_gtp_send_bearer_resource_command(
sgw_ue_t *sgw_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
memset(&h, 0, sizeof(ogs_gtp2_header_t));
@@ -744,7 +839,9 @@ int mme_gtp_send_bearer_resource_command(
return OGS_ERROR;
}
- xact = ogs_gtp_xact_local_create(sgw_ue->gnode, &h, pkbuf, timeout, bearer);
+ xact = ogs_gtp_xact_local_create(
+ sgw_ue->gnode, &h, pkbuf, timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
@@ -763,7 +860,7 @@ int mme_gtp_send_bearer_resource_command(
*************************/
int mme_gtp1_send_sgsn_context_request(
- mme_sgsn_t *sgsn, mme_ue_t *mme_ue)
+ mme_sgsn_t *sgsn, mme_ue_t *mme_ue, const ogs_nas_p_tmsi_signature_t *ptmsi_sig)
{
int rv;
ogs_gtp1_header_t h;
@@ -776,7 +873,7 @@ int mme_gtp1_send_sgsn_context_request(
h.type = OGS_GTP1_SGSN_CONTEXT_REQUEST_TYPE;
h.teid = 0;
- pkbuf = mme_gn_build_sgsn_context_request(mme_ue);
+ pkbuf = mme_gn_build_sgsn_context_request(mme_ue, ptmsi_sig);
if (!pkbuf) {
ogs_error("mme_gn_build_ran_information_relay() failed");
return OGS_ERROR;
diff --git a/src/mme/mme-gtp-path.h b/src/mme/mme-gtp-path.h
index f741559c56..41ea459aab 100644
--- a/src/mme/mme-gtp-path.h
+++ b/src/mme/mme-gtp-path.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -29,34 +29,38 @@ extern "C" {
int mme_gtp_open(void);
void mme_gtp_close(void);
-int mme_gtp_send_create_session_request(mme_sess_t *sess, int create_action);
+int mme_gtp_send_create_session_request(
+ enb_ue_t *enb_ue, mme_sess_t *sess, int create_action);
int mme_gtp_send_modify_bearer_request(
- mme_ue_t *mme_ue, int uli_presence, int modify_action);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue,
+ int uli_presence, int modify_action);
int mme_gtp_send_delete_session_request(
- sgw_ue_t *sgw_ue, mme_sess_t *sess, int action);
-void mme_gtp_send_delete_all_sessions(mme_ue_t *mme_ue, int action);
+ enb_ue_t *enb_ue, sgw_ue_t *sgw_ue, mme_sess_t *sess, int action);
+void mme_gtp_send_delete_all_sessions(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, int action);
int mme_gtp_send_create_bearer_response(
mme_bearer_t *bearer, uint8_t cause_value);
int mme_gtp_send_update_bearer_response(
mme_bearer_t *bearer, uint8_t cause_value);
int mme_gtp_send_delete_bearer_response(
mme_bearer_t *bearer, uint8_t cause_value);
-int mme_gtp_send_release_access_bearers_request(mme_ue_t *mme_ue, int action);
+int mme_gtp_send_release_access_bearers_request(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, int action);
void mme_gtp_send_release_all_ue_in_enb(mme_enb_t *enb, int action);
int mme_gtp_send_downlink_data_notification_ack(
mme_bearer_t *bearer, uint8_t cause_value);
int mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
- mme_ue_t *mme_ue);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue);
int mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
- mme_ue_t *mme_ue, int action);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, int action);
int mme_gtp_send_bearer_resource_command(
mme_bearer_t *bearer, ogs_nas_eps_message_t *nas_message);
int mme_gtp1_send_sgsn_context_request(
- mme_sgsn_t *sgsn, mme_ue_t *mme_ue);
+ mme_sgsn_t *sgsn, mme_ue_t *mme_ue, const ogs_nas_p_tmsi_signature_t *ptmsi_sig);
int mme_gtp1_send_sgsn_context_response(
mme_ue_t *mme_ue, uint8_t cause, ogs_gtp_xact_t *xact);
diff --git a/src/mme/mme-init.c b/src/mme/mme-init.c
index 63729a7812..7ceaa1d300 100644
--- a/src/mme/mme-init.c
+++ b/src/mme/mme-init.c
@@ -52,6 +52,10 @@ int mme_initialize(void)
rv = ogs_gtp_xact_init();
if (rv != OGS_OK) return rv;
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
+ if (rv != OGS_OK) return rv;
+
rv = ogs_gtp_context_parse_config(APP_NAME, "sgwc");
if (rv != OGS_OK) return rv;
@@ -61,10 +65,6 @@ int mme_initialize(void)
rv = mme_context_parse_config();
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
- if (rv != OGS_OK) return rv;
-
ogs_metrics_context_open(ogs_metrics_self());
rv = mme_fd_init();
diff --git a/src/mme/mme-path.c b/src/mme/mme-path.c
index c076fd2129..e647375240 100644
--- a/src/mme/mme-path.c
+++ b/src/mme/mme-path.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -25,10 +25,11 @@
#include "mme-fd-path.h"
#include "mme-sm.h"
-void mme_send_delete_session_or_detach(mme_ue_t *mme_ue)
+void mme_send_delete_session_or_detach(enb_ue_t *enb_ue, mme_ue_t *mme_ue)
{
int r, xact_count;
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
xact_count = mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR);
@@ -36,7 +37,7 @@ void mme_send_delete_session_or_detach(mme_ue_t *mme_ue)
case MME_DETACH_TYPE_REQUEST_FROM_UE:
ogs_debug("Detach Request from UE");
mme_gtp_send_delete_all_sessions(
- mme_ue, OGS_GTP_DELETE_SEND_DETACH_ACCEPT);
+ enb_ue, mme_ue, OGS_GTP_DELETE_SEND_DETACH_ACCEPT);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR) ==
@@ -61,7 +62,8 @@ void mme_send_delete_session_or_detach(mme_ue_t *mme_ue)
*/
case MME_DETACH_TYPE_HSS_EXPLICIT:
ogs_debug("Explicit HSS Detach");
- mme_gtp_send_delete_all_sessions(mme_ue, OGS_GTP_DELETE_NO_ACTION);
+ mme_gtp_send_delete_all_sessions(
+ enb_ue, mme_ue, OGS_GTP_DELETE_NO_ACTION);
break;
/* MME Implicit Detach, ie: Lost Communication
@@ -69,25 +71,23 @@ void mme_send_delete_session_or_detach(mme_ue_t *mme_ue)
* Ch 5.3.8.3 MME-initiated Detach procedure (Without Step 1)
*/
case MME_DETACH_TYPE_MME_IMPLICIT:
- ogs_debug("Implicit MME Detach");
- mme_gtp_send_delete_all_sessions(mme_ue,
+ ogs_warn("[%s] Implicit MME Detach", mme_ue->imsi_bcd);
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_SEND_RELEASE_WITH_UE_CONTEXT_REMOVE);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR) ==
xact_count) {
- enb_ue_t *enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
if (enb_ue) {
+ ogs_warn("[%s] UEContextReleaseCommand Sent", mme_ue->imsi_bcd);
ogs_assert(OGS_OK ==
s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0));
} else {
- if (mme_ue->location_updated_but_not_canceled_yet == true) {
- mme_s6a_send_pur(mme_ue);
- } else {
- mme_ue_remove(mme_ue);
- }
+ ogs_warn("[%s] MME-UE Context Removed", mme_ue->imsi_bcd);
+ mme_ue_remove(mme_ue);
}
}
break;
@@ -108,7 +108,7 @@ void mme_send_delete_session_or_detach(mme_ue_t *mme_ue)
*/
case MME_DETACH_TYPE_HSS_IMPLICIT:
ogs_debug("Implicit HSS Detach");
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_SEND_RELEASE_WITH_UE_CONTEXT_REMOVE);
break;
@@ -118,21 +118,22 @@ void mme_send_delete_session_or_detach(mme_ue_t *mme_ue)
}
}
-void mme_send_delete_session_or_mme_ue_context_release(mme_ue_t *mme_ue)
+void mme_send_delete_session_or_mme_ue_context_release(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue)
{
int r, xact_count = 0;
ogs_assert(mme_ue);
+ ogs_assert(enb_ue);
xact_count = mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR);
- mme_gtp_send_delete_all_sessions(mme_ue,
+ mme_gtp_send_delete_all_sessions(enb_ue, mme_ue,
OGS_GTP_DELETE_SEND_RELEASE_WITH_UE_CONTEXT_REMOVE);
if (!MME_SESSION_RELEASE_PENDING(mme_ue) &&
mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR) ==
xact_count) {
- enb_ue_t *enb_ue = enb_ue_cycle(mme_ue->enb_ue);
if (enb_ue) {
r = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
@@ -151,16 +152,18 @@ void mme_send_release_access_bearer_or_ue_context_release(enb_ue_t *enb_ue)
mme_ue_t *mme_ue = NULL;
ogs_assert(enb_ue);
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (mme_ue) {
ogs_debug("[%s] Release access bearer request", mme_ue->imsi_bcd);
ogs_assert(OGS_OK ==
mme_gtp_send_release_access_bearers_request(
- mme_ue, OGS_GTP_RELEASE_SEND_UE_CONTEXT_RELEASE_COMMAND));
+ enb_ue, mme_ue,
+ OGS_GTP_RELEASE_SEND_UE_CONTEXT_RELEASE_COMMAND));
} else {
ogs_debug("No UE Context");
+ ogs_assert(enb_ue->relcause.group);
r = s1ap_send_ue_context_release_command(enb_ue,
- S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
+ enb_ue->relcause.group, enb_ue->relcause.cause,
S1AP_UE_CTX_REL_S1_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -176,7 +179,8 @@ void mme_send_after_paging(mme_ue_t *mme_ue, bool failed)
switch (mme_ue->paging.type) {
case MME_PAGING_TYPE_DOWNLINK_DATA_NOTIFICATION:
- bearer = mme_bearer_cycle(mme_ue->paging.data);
+ bearer = mme_bearer_find_by_id(
+ OGS_POINTER_TO_UINT(mme_ue->paging.data));
if (!bearer) {
ogs_error("No Bearer [%d]", mme_ue->paging.type);
goto cleanup;
@@ -193,7 +197,8 @@ void mme_send_after_paging(mme_ue_t *mme_ue, bool failed)
}
break;
case MME_PAGING_TYPE_CREATE_BEARER:
- bearer = mme_bearer_cycle(mme_ue->paging.data);
+ bearer = mme_bearer_find_by_id(
+ OGS_POINTER_TO_UINT(mme_ue->paging.data));
if (!bearer) {
ogs_error("No Bearer [%d]", mme_ue->paging.type);
goto cleanup;
@@ -210,7 +215,8 @@ void mme_send_after_paging(mme_ue_t *mme_ue, bool failed)
}
break;
case MME_PAGING_TYPE_UPDATE_BEARER:
- bearer = mme_bearer_cycle(mme_ue->paging.data);
+ bearer = mme_bearer_find_by_id(
+ OGS_POINTER_TO_UINT(mme_ue->paging.data));
if (!bearer) {
ogs_error("No Bearer [%d]", mme_ue->paging.type);
goto cleanup;
@@ -221,12 +227,26 @@ void mme_send_after_paging(mme_ue_t *mme_ue, bool failed)
mme_gtp_send_update_bearer_response(
bearer, OGS_GTP2_CAUSE_UNABLE_TO_PAGE_UE));
} else {
- ogs_gtp_xact_t *xact = ogs_gtp_xact_cycle(bearer->update.xact);
+ ogs_gtp_xact_t *xact = NULL;
+
+ /* Get the first Entry */
+ ogs_list_for_each_entry(
+ &bearer->update.xact_list, xact, to_update_node) {
+ break;
+ }
if (!xact) {
ogs_error("No GTP xact");
goto cleanup;
}
+ /*
+ * MME must wait for Modify Bearer Context Accept
+ * before sending Update Bearer Response,
+ * To check this, start a peer timer to check it.
+ */
+ ogs_timer_start(xact->tm_peer,
+ ogs_local_conf()->time.message.gtp.t3_response_duration);
+
r = nas_eps_send_modify_bearer_context_request(bearer,
(xact->update_flags &
OGS_GTP_MODIFY_QOS_UPDATE) ? 1 : 0,
@@ -237,7 +257,8 @@ void mme_send_after_paging(mme_ue_t *mme_ue, bool failed)
}
break;
case MME_PAGING_TYPE_DELETE_BEARER:
- bearer = mme_bearer_cycle(mme_ue->paging.data);
+ bearer = mme_bearer_find_by_id(
+ OGS_POINTER_TO_UINT(mme_ue->paging.data));
if (!bearer) {
ogs_error("No Bearer [%d]", mme_ue->paging.type);
goto cleanup;
@@ -281,10 +302,14 @@ void mme_send_after_paging(mme_ue_t *mme_ue, bool failed)
r = nas_eps_send_detach_request(mme_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (enb_ue)
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
}
}
break;
diff --git a/src/mme/mme-path.h b/src/mme/mme-path.h
index afc6f13e87..10f8fe64c3 100644
--- a/src/mme/mme-path.h
+++ b/src/mme/mme-path.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -26,8 +26,9 @@
extern "C" {
#endif
-void mme_send_delete_session_or_detach(mme_ue_t *mme_ue);
-void mme_send_delete_session_or_mme_ue_context_release(mme_ue_t *mme_ue);
+void mme_send_delete_session_or_detach(enb_ue_t *enb_ue, mme_ue_t *mme_ue);
+void mme_send_delete_session_or_mme_ue_context_release(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue);
void mme_send_release_access_bearer_or_ue_context_release(enb_ue_t *enb_ue);
void mme_send_after_paging(mme_ue_t *mme_ue, bool failed);
diff --git a/src/mme/mme-s11-build.c b/src/mme/mme-s11-build.c
index 731eaa1e74..91f4f1bef5 100644
--- a/src/mme/mme-s11-build.c
+++ b/src/mme/mme-s11-build.c
@@ -55,13 +55,13 @@ ogs_pkbuf_t *mme_s11_build_create_session_request(
session = sess->session;
ogs_assert(session);
ogs_assert(session->name);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
if (create_action == OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST) {
- sgw_ue = sgw_ue_cycle(sgw_ue->target_ue);
+ sgw_ue = sgw_ue_find_by_id(sgw_ue->target_ue_id);
ogs_assert(sgw_ue);
}
@@ -171,39 +171,62 @@ ogs_pkbuf_t *mme_s11_build_create_session_request(
req->selection_mode.u8 =
OGS_GTP2_SELECTION_MODE_MS_OR_NETWORK_PROVIDED_APN;
- ogs_assert(sess->request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV4 ||
- sess->request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV6 ||
- sess->request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV4V6);
-
- if (session->session_type == OGS_PDU_SESSION_TYPE_IPV4 ||
- session->session_type == OGS_PDU_SESSION_TYPE_IPV6 ||
- session->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
- req->pdn_type.u8 = (session->session_type & sess->request_type.type);
- if (req->pdn_type.u8 == 0) {
- ogs_fatal("Cannot derive PDN Type [UE:%d,HSS:%d]",
- sess->request_type.type, session->session_type);
- ogs_assert_if_reached();
- }
+ ogs_debug("sess->ue_request_type.type = %d", sess->ue_request_type.type);
+
+ ogs_assert(sess->ue_request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV4 ||
+ sess->ue_request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV6 ||
+ sess->ue_request_type.type == OGS_NAS_EPS_PDN_TYPE_IPV4V6);
+
+ ogs_debug("create_action %d", create_action);
+ ogs_debug("session->session_type = %d", session->session_type);
+
+ /*
+ * 3GPP TS 23.401
+ * Ch 5.3.3 Tracking Area Update procedures
+ *
+ * The Tracking Area Update Procedure differs
+ * from the Attach Procedure in 5.3.2
+ * in the point at which HSS and ULR/ULA are performed.
+ *
+ *
+ * 1. Security-mode complete
+ * 2. Update Location Request/Answer
+ * 3. Create Session Request/Response
+ *
+ *
+ * 1. Security-mode complete
+ * 2. Create Session Request/Response
+ * 3. Update Location Request/Answer
+ *
+ * When TAU creates a Create Session Request message,
+ * there is no session type information in the Subscriber DB
+ * that is received from HSS in the Update Location.
+ *
+ * Therefore, as shown below, TAU does not reflect the Session Type
+ * but creates PDN Type by reflecting the information
+ * in the Request Type as it is.
+ */
+ if (create_action == OGS_GTP_CREATE_IN_TRACKING_AREA_UPDATE) {
+ req->pdn_type.u8 = sess->ue_request_type.type;
} else {
- ogs_fatal("Invalid PDN_TYPE[%d]", session->session_type);
- ogs_assert_if_reached();
+ if (session->session_type == OGS_PDU_SESSION_TYPE_IPV4 ||
+ session->session_type == OGS_PDU_SESSION_TYPE_IPV6 ||
+ session->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
+ req->pdn_type.u8 =
+ (session->session_type & sess->ue_request_type.type);
+ if (req->pdn_type.u8 == 0) {
+ ogs_fatal("Cannot derive PDN Type [UE:%d,HSS:%d]",
+ sess->ue_request_type.type, session->session_type);
+ ogs_assert_if_reached();
+ }
+ } else {
+ ogs_error("Invalid PDN-TYPE[%d]", session->session_type);
+ return NULL;
+ }
}
req->pdn_type.presence = 1;
- /* If we started with both addrs (IPV4V6) but the above code
- * (pdn_type & sess->request_type) truncates us down to just one,
- * we need to change position of addresses in struct. */
- if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV4 &&
- session->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
- uint32_t addr = session->paa.both.addr;
- session->paa.addr = addr;
- }
- if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV6 &&
- session->session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
- uint8_t addr[16];
- memcpy(&addr, session->paa.both.addr6, OGS_IPV6_LEN);
- memcpy(session->paa.addr6, &addr, OGS_IPV6_LEN);
- }
+ ogs_debug("req->pdn_type.u8 = %d", req->pdn_type.u8);
memset(&indication, 0, sizeof(ogs_gtp2_indication_t));
req->indication_flags.presence = 1;
@@ -216,23 +239,31 @@ ogs_pkbuf_t *mme_s11_build_create_session_request(
if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV4V6)
indication.dual_address_bearer_flag = 1;
- if (sess->request_type.value == OGS_NAS_EPS_REQUEST_TYPE_HANDOVER)
+ if (sess->ue_request_type.value == OGS_NAS_EPS_REQUEST_TYPE_HANDOVER)
indication.handover_indication = 1;
if (create_action == OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST ||
create_action == OGS_GTP_CREATE_IN_TRACKING_AREA_UPDATE)
indication.operation_indication = 1;
- session->paa.session_type = req->pdn_type.u8;
- req->pdn_address_allocation.data = &session->paa;
- if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV4)
+ sess->paa.session_type = req->pdn_type.u8;
+ ogs_debug("sess->paa.session_type = %d", sess->paa.session_type);
+ req->pdn_address_allocation.data = &sess->paa;
+ if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV4) {
req->pdn_address_allocation.len = OGS_PAA_IPV4_LEN;
- else if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV6)
+ sess->paa.addr = session->ue_ip.addr;
+ } else if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV6) {
req->pdn_address_allocation.len = OGS_PAA_IPV6_LEN;
- else if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV4V6)
+ memcpy(sess->paa.addr6, session->ue_ip.addr6, OGS_IPV6_LEN);
+ } else if (req->pdn_type.u8 == OGS_PDU_SESSION_TYPE_IPV4V6) {
req->pdn_address_allocation.len = OGS_PAA_IPV4V6_LEN;
- else
- ogs_assert_if_reached();
+ sess->paa.both.addr = session->ue_ip.addr;
+ memcpy(sess->paa.both.addr6, session->ue_ip.addr6, OGS_IPV6_LEN);
+ } else {
+ ogs_error("Invalid PDN-TYPE[%d:%d:%d]", req->pdn_type.u8,
+ session->session_type, sess->ue_request_type.type);
+ return NULL;
+ }
req->pdn_address_allocation.presence = 1;
req->maximum_apn_restriction.presence = 1;
@@ -374,7 +405,7 @@ ogs_pkbuf_t *mme_s11_build_modify_bearer_request(
ogs_debug("Modifty Bearer Request");
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
ogs_assert(ogs_list_count(&mme_ue->bearer_to_modify_list));
@@ -417,10 +448,10 @@ ogs_pkbuf_t *mme_s11_build_modify_bearer_request(
memset(&indication, 0, sizeof(ogs_gtp2_indication_t));
ogs_list_for_each_entry(
&mme_ue->bearer_to_modify_list, bearer, to_modify_node) {
- mme_sess_t *sess = bearer->sess;
+ mme_sess_t *sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- if (sess->request_type.value == OGS_NAS_EPS_REQUEST_TYPE_HANDOVER) {
+ if (sess->ue_request_type.value == OGS_NAS_EPS_REQUEST_TYPE_HANDOVER) {
indication.handover_indication = 1;
req->indication_flags.presence = 1;
req->indication_flags.data = &indication;
@@ -479,14 +510,19 @@ ogs_pkbuf_t *mme_s11_build_delete_session_request(
mme_bearer_t *bearer = NULL;
mme_ue_t *mme_ue = NULL;
+ sgw_ue_t *sgw_ue = NULL;
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
+ ogs_assert(sgw_ue);
bearer = mme_default_bearer_in_sess(sess);
ogs_assert(bearer);
ogs_debug("Delete Session Request");
+ ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
+ mme_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
memset(>p_message, 0, sizeof(ogs_gtp2_message_t));
@@ -540,9 +576,9 @@ ogs_pkbuf_t *mme_s11_build_create_bearer_response(
sgw_ue_t *sgw_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
ogs_debug("Create Bearer Response");
@@ -647,9 +683,9 @@ ogs_pkbuf_t *mme_s11_build_update_bearer_response(
sgw_ue_t *sgw_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
ogs_debug("Update Bearer Response");
@@ -726,9 +762,9 @@ ogs_pkbuf_t *mme_s11_build_delete_bearer_response(
sgw_ue_t *sgw_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
ogs_debug("Delete Bearer Response");
@@ -882,7 +918,7 @@ ogs_pkbuf_t *mme_s11_build_create_indirect_data_forwarding_tunnel_request(
int len;
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
ogs_debug("Create Indirect Data Forwarding Tunnel Request");
@@ -966,11 +1002,11 @@ ogs_pkbuf_t *mme_s11_build_bearer_resource_command(
mme_bearer_t *linked_bearer = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = sess->mme_ue;
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
ogs_debug("Bearer Resource Command");
diff --git a/src/mme/mme-s11-handler.c b/src/mme/mme-s11-handler.c
index c4945d8ace..d85e46cc3f 100644
--- a/src/mme/mme-s11-handler.c
+++ b/src/mme/mme-s11-handler.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -59,6 +59,102 @@ static uint8_t esm_cause_from_gtp(uint8_t gtp_cause)
return OGS_NAS_ESM_CAUSE_NETWORK_FAILURE;
}
+static void gtp_remote_peer_timeout(ogs_gtp_xact_t *xact, void *data)
+{
+ char buf[OGS_ADDRSTRLEN];
+ mme_bearer_t *bearer = NULL;
+ uint8_t type;
+
+ ogs_assert(xact);
+ type = xact->seq[xact->step-1].type;
+
+ ogs_error("[%d] %s Peer Timeout for step %d type %d peer [%s]:%d",
+ xact->xid,
+ xact->org == OGS_GTP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
+ xact->step, type,
+ OGS_ADDR(&xact->gnode->addr, buf),
+ OGS_PORT(&xact->gnode->addr));
+
+ ogs_assert(data);
+ bearer = mme_bearer_find_by_id(OGS_POINTER_TO_UINT(data));
+ if (!bearer) {
+ ogs_error("Bearer has already been removed [%d]", type);
+ return;
+ }
+
+ /*
+ * Issues #3240
+ *
+ * SMF->SGW-C->MME: First Update Bearer Request
+ * MME->UE: First Modify EPS bearer context request
+ * SMF->SGW-C->MME: Second Update Bearer Request
+ * MME->UE: Second Modify EPS bearer context request
+ * UE->MME: First Modify EPS bearer context accept
+ * MME->SGW-C->SMF: First Update Bearer Response
+ * UE->MME: Second Modify EPS bearer context accept
+ * MME->SGW-C->SMF: Second Update Bearer Response
+ */
+ switch (type) {
+ case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE:
+ /*
+ * In this case, a timeout occurs while waiting
+ * for Modify EPS bearer context accept from UE.
+ *
+ * If the UE does not send a Modify EPS bearer context accept,
+ * the MME fails to send an Update Bearer Response.
+ *
+ * Therefore, we need to delete the Transaction Node
+ * that was managed by the Bearer Context from the List.
+ */
+ if (ogs_list_exists(
+ &bearer->update.xact_list,
+ &xact->to_update_node) == true) {
+ ogs_error("Bearer-ID [%d] removed from the list", bearer->id);
+ ogs_list_remove(&bearer->update.xact_list, &xact->to_update_node);
+ } else {
+ ogs_error("[%d] %s HAVE ALREADY BEEN REMOVED "
+ "for step %d type %d peer [%s]:%d",
+ xact->xid,
+ xact->org == OGS_GTP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
+ xact->step, type,
+ OGS_ADDR(&xact->gnode->addr, buf),
+ OGS_PORT(&xact->gnode->addr));
+ }
+ break;
+#if 0
+ case OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE:
+ /*
+ * The following is the case where the UE sends
+ * Modify EPS bearer context accept to the MME.
+ *
+ * In this case, the MME sends Update Bearer Response
+ * to SGW-C and deletes the Transaction Node.
+ *
+ * Therefore, there is no need to delete the Transaction Node
+ * from the list managed by the Bearer Context here.
+ */
+ if (ogs_list_exists(
+ &bearer->update.xact_list,
+ &xact->to_update_node) == true) {
+ ogs_error("[%d] %s SHOULD HAVE REMOVED "
+ "for step %d type %d peer [%s]:%d",
+ xact->xid,
+ xact->org == OGS_GTP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
+ xact->step, type,
+ OGS_ADDR(&xact->gnode->addr, buf),
+ OGS_PORT(&xact->gnode->addr));
+ } else {
+ ogs_error("Not existed");
+ }
+ break;
+#endif
+ default:
+ ogs_fatal("Unknown type[%d]", type);
+ ogs_assert_if_reached();
+ break;
+ }
+}
+
void mme_s11_handle_echo_request(
ogs_gtp_xact_t *xact, ogs_gtp2_echo_request_t *req)
{
@@ -94,6 +190,7 @@ void mme_s11_handle_create_session_response(
mme_sess_t *sess = NULL;
mme_ue_t *mme_ue = NULL;
sgw_ue_t *source_ue = NULL, *target_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_session_t *session = NULL;
ogs_gtp2_bearer_qos_t bearer_qos;
ogs_gtp2_ambr_t *ambr = NULL;
@@ -103,16 +200,16 @@ void mme_s11_handle_create_session_response(
ogs_assert(rsp);
ogs_debug("Create Session Response");
- MME_UE_LIST_CHECK;
/********************
* Check Transaction
********************/
ogs_assert(xact);
create_action = xact->create_action;
- sess = xact->data;
- ogs_assert(sess);
- mme_ue = mme_ue_cycle(sess->mme_ue);
+ sess = mme_sess_find_by_id(OGS_POINTER_TO_UINT(xact->data));
+ if (sess)
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
+ enb_ue = enb_ue_find_by_id(xact->enb_ue_id);
rv = ogs_gtp_xact_commit(xact);
if (rv != OGS_OK) {
@@ -120,15 +217,25 @@ void mme_s11_handle_create_session_response(
return;
}
+ if (!sess) {
+ ogs_error("Session Context has already been removed");
+ return;
+ }
+
+ if (!enb_ue) {
+ ogs_error("ENB-S1 Context has already been removed");
+ return;
+ }
+
if (!mme_ue) {
ogs_error("MME-UE Context has already been removed");
return;
}
- source_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ source_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(source_ue);
if (create_action == OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST) {
- target_ue = sgw_ue_cycle(source_ue->target_ue);
+ target_ue = sgw_ue_find_by_id(source_ue->target_ue_id);
ogs_assert(target_ue);
} else {
target_ue = source_ue;
@@ -159,13 +266,13 @@ void mme_s11_handle_create_session_response(
if (create_action == OGS_GTP_CREATE_IN_ATTACH_REQUEST) {
ogs_error("[%s] Attach reject [Cause:%d]",
mme_ue->imsi_bcd, session_cause);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_NETWORK_FAILURE,
OGS_NAS_ESM_CAUSE_NETWORK_FAILURE);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
return;
}
@@ -180,38 +287,21 @@ void mme_s11_handle_create_session_response(
cause_value = OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING;
}
- if (create_action == OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST) {
-
- /* No need S5C TEID in PathSwitchRequest */
-
- } else {
-
+ switch (create_action) {
+ case OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST:
+ /* No need for PAA or S5C TEID in PathSwitchRequest */
+ break;
+ case OGS_GTP_CREATE_IN_TRACKING_AREA_UPDATE:
+ /* No need for PAA or S5C TEID in 2G->4G mobility, it was already provided by SGSN peer */
+ break;
+ default:
if (rsp->pgw_s5_s8__s2a_s2b_f_teid_for_pmip_based_interface_or_for_gtp_based_control_plane_interface.presence == 0) {
ogs_error("[%s] No S5C TEID [Cause:%d]",
mme_ue->imsi_bcd, session_cause);
cause_value = OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING;
}
- }
-
- if (create_action == OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST) {
-
- /* No need S5C TEID in PathSwitchRequest */
-
- } else {
-
- if (rsp->pdn_address_allocation.presence) {
- ogs_paa_t paa;
-
- memcpy(&paa, rsp->pdn_address_allocation.data,
- rsp->pdn_address_allocation.len);
-
- if (!OGS_PDU_SESSION_TYPE_IS_VALID(paa.session_type)) {
- ogs_error("[%s] Unknown PDN Type [Session:%u, Cause:%d]",
- mme_ue->imsi_bcd, paa.session_type, session_cause);
- cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT;
- }
- } else {
+ if (rsp->pdn_address_allocation.presence == 0) {
ogs_error("[%s] No PDN Address Allocation [Cause:%d]",
mme_ue->imsi_bcd, session_cause);
cause_value = OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING;
@@ -227,7 +317,7 @@ void mme_s11_handle_create_session_response(
if (create_action == OGS_GTP_CREATE_IN_ATTACH_REQUEST) {
ogs_error("[%s] Attach reject [Cause:%d]",
mme_ue->imsi_bcd, session_cause);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_NETWORK_FAILURE,
OGS_NAS_ESM_CAUSE_NETWORK_FAILURE);
ogs_expect(r == OGS_OK);
@@ -235,11 +325,12 @@ void mme_s11_handle_create_session_response(
} else if (create_action == OGS_GTP_CREATE_IN_TRACKING_AREA_UPDATE) {
ogs_error("[%s] TAU reject [Cause:%d]",
mme_ue->imsi_bcd, session_cause);
- r = nas_eps_send_tau_reject(mme_ue, OGS_NAS_EMM_CAUSE_NETWORK_FAILURE);
+ r = nas_eps_send_tau_reject(enb_ue, mme_ue,
+ OGS_NAS_EMM_CAUSE_NETWORK_FAILURE);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
return;
}
@@ -265,13 +356,13 @@ void mme_s11_handle_create_session_response(
mme_ue->imsi_bcd, bearer_cause);
if (create_action == OGS_GTP_CREATE_IN_ATTACH_REQUEST) {
ogs_error("[%s] Attach reject", mme_ue->imsi_bcd);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_NETWORK_FAILURE,
OGS_NAS_ESM_CAUSE_NETWORK_FAILURE);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
return;
}
}
@@ -285,13 +376,13 @@ void mme_s11_handle_create_session_response(
ogs_error("[%s] GTP Cause [VALUE:%d]", mme_ue->imsi_bcd, session_cause);
if (create_action == OGS_GTP_CREATE_IN_ATTACH_REQUEST) {
ogs_error("[%s] Attach reject", mme_ue->imsi_bcd);
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_NETWORK_FAILURE,
OGS_NAS_ESM_CAUSE_NETWORK_FAILURE);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
return;
}
@@ -330,7 +421,7 @@ void mme_s11_handle_create_session_response(
bearer = mme_bearer_find_by_ue_ebi(mme_ue,
rsp->bearer_contexts_created[i].eps_bearer_id.u8);
if (!bearer) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
return;
}
@@ -382,11 +473,24 @@ void mme_s11_handle_create_session_response(
/* PDN Addresss Allocation */
if (rsp->pdn_address_allocation.presence) {
- memcpy(&session->paa, rsp->pdn_address_allocation.data,
+ memcpy(&sess->paa, rsp->pdn_address_allocation.data,
rsp->pdn_address_allocation.len);
- session->session_type = session->paa.session_type;
- ogs_assert(OGS_OK ==
- ogs_paa_to_ip(&session->paa, &session->ue_ip));
+ /*
+ * Issue #3209
+ *
+ * The Session-Type in the Subscriber DB should not be changed
+ * in case the UE can change the PDN-Type for the APN.
+ * (e.g IPv4v6 -> IPv4 -> IPv4v6)
+ *
+ * For resolving this problem,
+ * session->session_type and session->ue_ip should not be modified.
+ *
+ * Therefore, the code below will be deleted.
+ */
+#if 0 /* WILL BE DELETED */
+ session->session_type = sess->paa.session_type;
+ ogs_assert(OGS_OK == ogs_paa_to_ip(&sess->paa, &session->ue_ip));
+#endif
}
/* ePCO */
@@ -425,24 +529,22 @@ void mme_s11_handle_create_session_response(
mme_csmap_t *csmap = mme_csmap_find_by_tai(&mme_ue->tai);
mme_ue->csmap = csmap;
- if (csmap) {
- ogs_assert(OGS_PDU_SESSION_TYPE_IS_VALID(
- session->paa.session_type));
- ogs_assert(OGS_OK ==
- sgsap_send_location_update_request(mme_ue));
- } else {
- ogs_assert(OGS_PDU_SESSION_TYPE_IS_VALID(
- session->paa.session_type));
+ if (!csmap ||
+ mme_ue->network_access_mode ==
+ OGS_NETWORK_ACCESS_MODE_ONLY_PACKET ||
+ mme_ue->nas_eps.attach.value ==
+ OGS_NAS_ATTACH_TYPE_EPS_ATTACH) {
r = nas_eps_send_attach_accept(mme_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+ } else {
+ ogs_assert(OGS_OK == sgsap_send_location_update_request(mme_ue));
}
} else if (create_action == OGS_GTP_CREATE_IN_TRACKING_AREA_UPDATE) {
/* 3GPP TS 23.401 D.3.6 step 13, 14: */
- mme_s6a_send_ulr(mme_ue);
+ mme_s6a_send_ulr(enb_ue, mme_ue);
} else if (create_action == OGS_GTP_CREATE_IN_UPLINK_NAS_TRANSPORT) {
- ogs_assert(OGS_PDU_SESSION_TYPE_IS_VALID(session->paa.session_type));
r = nas_eps_send_activate_default_bearer_context_request(
bearer, create_action);
ogs_expect(r == OGS_OK);
@@ -475,19 +577,21 @@ void mme_s11_handle_modify_bearer_response(
int modify_action = 0;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
sgw_ue_t *sgw_ue = NULL;
ogs_assert(rsp);
ogs_debug("Modify Bearer Response");
- MME_UE_LIST_CHECK;
/********************
* Check Transaction
********************/
ogs_assert(xact);
modify_action = xact->modify_action;
- mme_ue = mme_ue_cycle(xact->data);
+
+ mme_ue = mme_ue_find_by_id(OGS_POINTER_TO_UINT(xact->data));
+ enb_ue = enb_ue_find_by_id(xact->enb_ue_id);
rv = ogs_gtp_xact_commit(xact);
if (rv != OGS_OK) {
@@ -499,7 +603,7 @@ void mme_s11_handle_modify_bearer_response(
ogs_error("MME-UE Context has already been removed");
return;
}
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
/************************
@@ -523,7 +627,10 @@ void mme_s11_handle_modify_bearer_response(
}
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (enb_ue)
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
return;
}
@@ -538,7 +645,10 @@ void mme_s11_handle_modify_bearer_response(
}
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (enb_ue)
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
return;
}
@@ -549,7 +659,10 @@ void mme_s11_handle_modify_bearer_response(
if (session_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
ogs_error("[%s] GTP Cause [VALUE:%d]", mme_ue->imsi_bcd, session_cause);
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (enb_ue)
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
return;
}
@@ -588,11 +701,11 @@ void mme_s11_handle_delete_session_response(
sgw_ue_t *source_ue = NULL, *target_ue = NULL;
mme_sess_t *sess = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_assert(rsp);
ogs_debug("Delete Session Response");
- MME_UE_LIST_CHECK;
/********************
* Check Transaction
@@ -600,9 +713,10 @@ void mme_s11_handle_delete_session_response(
ogs_assert(xact);
action = xact->delete_action;
ogs_assert(action);
- sess = xact->data;
- ogs_assert(sess);
- mme_ue = mme_ue_cycle(sess->mme_ue);
+ sess = mme_sess_find_by_id(OGS_POINTER_TO_UINT(xact->data));
+ if (sess)
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
+ enb_ue = enb_ue_find_by_id(xact->enb_ue_id);
rv = ogs_gtp_xact_commit(xact);
if (rv != OGS_OK) {
@@ -610,15 +724,25 @@ void mme_s11_handle_delete_session_response(
return;
}
+ if (!sess) {
+ ogs_error("Session Context has already been removed");
+ return;
+ }
+
+ if (!enb_ue) {
+ ogs_error("ENB-S1 Context has already been removed");
+ return;
+ }
+
if (!mme_ue) {
ogs_error("MME-UE Context has already been removed");
return;
}
- target_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ target_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(target_ue);
if (action == OGS_GTP_DELETE_IN_PATH_SWITCH_REQUEST) {
- source_ue = sgw_ue_cycle(target_ue->source_ue);
+ source_ue = sgw_ue_find_by_id(target_ue->source_ue_id);
if (!source_ue) /* InterRAT to 2G/3G (SGSN) case: */
source_ue = target_ue;
ogs_assert(source_ue);
@@ -676,7 +800,7 @@ void mme_s11_handle_delete_session_response(
* of the detach accept from UE */
} else if (action == OGS_GTP_DELETE_SEND_AUTHENTICATION_REQUEST) {
if (mme_sess_count(mme_ue) == 1) /* Last Session */ {
- mme_s6a_send_air(mme_ue, NULL);
+ mme_s6a_send_air(enb_ue, mme_ue, NULL);
}
} else if (action == OGS_GTP_DELETE_SEND_DETACH_ACCEPT) {
@@ -704,14 +828,13 @@ void mme_s11_handle_delete_session_response(
} else if (action == OGS_GTP_DELETE_SEND_RELEASE_WITH_UE_CONTEXT_REMOVE) {
if (mme_sess_count(mme_ue) == 1) /* Last Session */ {
if (ECM_IDLE(mme_ue)) {
- if (mme_ue->location_updated_but_not_canceled_yet == true) {
- mme_s6a_send_pur(mme_ue);
- } else {
- mme_ue_remove(mme_ue);
- }
+ mme_ue_remove(mme_ue);
+
+ /* mme_sess_remove() should not be called here
+ * since mme_ue_remove() has already been executed. */
+ return;
} else {
- ogs_assert(mme_ue->enb_ue);
- r = s1ap_send_ue_context_release_command(mme_ue->enb_ue,
+ r = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
@@ -722,17 +845,11 @@ void mme_s11_handle_delete_session_response(
} else if (action ==
OGS_GTP_DELETE_SEND_RELEASE_WITH_S1_REMOVE_AND_UNLINK) {
if (mme_sess_count(mme_ue) == 1) /* Last Session */ {
- enb_ue_t *enb_ue = NULL;
-
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
- if (enb_ue) {
- r = s1ap_send_ue_context_release_command(enb_ue,
- S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
- S1AP_UE_CTX_REL_S1_REMOVE_AND_UNLINK, 0);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- } else
- ogs_error("ENB-S1 Context has already been removed");
+ r = s1ap_send_ue_context_release_command(enb_ue,
+ S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
+ S1AP_UE_CTX_REL_S1_REMOVE_AND_UNLINK, 0);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
}
} else if (action == OGS_GTP_DELETE_HANDLE_PDN_CONNECTIVITY_REQUEST) {
@@ -741,7 +858,7 @@ void mme_s11_handle_delete_session_response(
&mme_ue->pdn_connectivity_request);
if (rv != OGS_OK) {
ogs_error("nas_eps_send_emm_to_esm() failed");
- r = nas_eps_send_attach_reject(mme_ue,
+ r = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
ogs_expect(r == OGS_OK);
@@ -788,7 +905,7 @@ void mme_s11_handle_create_bearer_request(
ogs_assert(xact);
ogs_assert(req);
- ogs_debug("Create Bearer Response");
+ ogs_debug("Create Bearer Request");
/***********************
* Check MME-UE Context
@@ -799,7 +916,7 @@ void mme_s11_handle_create_bearer_request(
ogs_error("No Context in TEID");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
if (req->linked_eps_bearer_id.presence == 0) {
@@ -872,12 +989,25 @@ void mme_s11_handle_create_bearer_request(
ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
mme_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
+ /*
+ * DEPRECATED : Issues #3072
+ *
+ * PTI 0 is set here to prevent a InitialContextSetupRequest message
+ * with a PTI of 0 from being created when the Create Bearer Request occurs
+ * and InitialContextSetupRequest occurs.
+ *
+ * If you implement the creation of a dedicated bearer
+ * in the ESM procedure reqeusted by the UE,
+ * you will need to refactor the part that sets the PTI.
+ */
+#if 0
/* Set PTI */
sess->pti = OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED;
if (req->procedure_transaction_id.presence) {
sess->pti = req->procedure_transaction_id.u8;
ogs_debug(" PTI[%d]", sess->pti);
}
+#endif
/* Data Plane(UL) : SGW-S1U */
sgw_s1u_teid = req->bearer_contexts.s1_u_enodeb_f_teid.data;
@@ -931,7 +1061,8 @@ void mme_s11_handle_create_bearer_request(
* If GTP-xact Holding timer is expired,
* OLD bearer->xact memory will be automatically removed.
*/
- bearer->create.xact = xact;
+ ogs_assert(xact->id >= OGS_MIN_POOL_ID && xact->id <= OGS_MAX_POOL_ID);
+ bearer->create.xact_id = xact->id;
/* Before Activate DEDICATED bearer, check DEFAULT bearer status */
default_bearer = mme_default_bearer_in_sess(sess);
@@ -943,7 +1074,7 @@ void mme_s11_handle_create_bearer_request(
if (OGS_FSM_CHECK(&default_bearer->sm, esm_state_active)) {
if (ECM_IDLE(mme_ue)) {
MME_STORE_PAGING_INFO(mme_ue,
- MME_PAGING_TYPE_CREATE_BEARER, bearer);
+ MME_PAGING_TYPE_CREATE_BEARER, bearer->id);
r = s1ap_send_paging(mme_ue, S1AP_CNDomain_ps);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -987,7 +1118,7 @@ void mme_s11_handle_update_bearer_request(
ogs_error("No Context in TEID");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
if (req->bearer_contexts.presence == 0) {
@@ -1022,7 +1153,7 @@ void mme_s11_handle_update_bearer_request(
ogs_assert(sgw_ue);
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
@@ -1036,13 +1167,31 @@ void mme_s11_handle_update_bearer_request(
}
/*
- * Save Transaction. It will be handled after EMM-attached
+ * Issues #3240
*
- * You should not remove OLD bearer->xact.
- * If GTP-xact Holding timer is expired,
- * OLD bearer->xact memory will be automatically removed.
+ * SMF->SGW-C->MME: First Update Bearer Request
+ * MME->UE: First Modify EPS bearer context request
+ * SMF->SGW-C->MME: Second Update Bearer Request
+ * MME->UE: Second Modify EPS bearer context request
+ * UE->MME: First Modify EPS bearer context accept
+ * MME->SGW-C->SMF: First Update Bearer Response
+ * UE->MME: Second Modify EPS bearer context accept
+ * MME->SGW-C->SMF: Second Update Bearer Response
+ *
+ * If the UE does not send a Modify EPS bearer context accept,
+ * the MME cannot send an Update Bearer Response to the SGW-C.
+ *
+ * In this case, peer timeout occurs, and a callback function
+ * is registered as follows to free memory.
+ *
+ * Also, as shown above, multiple Update Bearer Request/Response can occur,
+ * so we manage the Transaction Node as a list within the Bearer Context.
*/
- bearer->update.xact = xact;
+
+ xact->peer_cb = gtp_remote_peer_timeout;
+ xact->peer_data = OGS_UINT_TO_POINTER(bearer->id);
+
+ ogs_list_add(&bearer->update.xact_list, &xact->to_update_node);
if (req->bearer_contexts.bearer_level_qos.presence == 1) {
/* Bearer QoS */
@@ -1077,11 +1226,19 @@ void mme_s11_handle_update_bearer_request(
req->bearer_contexts.tft.presence == 1) {
if (ECM_IDLE(mme_ue)) {
MME_STORE_PAGING_INFO(mme_ue,
- MME_PAGING_TYPE_UPDATE_BEARER, bearer);
+ MME_PAGING_TYPE_UPDATE_BEARER, bearer->id);
r = s1ap_send_paging(mme_ue, S1AP_CNDomain_ps);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
+ /*
+ * MME must wait for Modify Bearer Context Accept
+ * before sending Update Bearer Response,
+ * To check this, start a peer timer to check it.
+ */
+ ogs_timer_start(xact->tm_peer,
+ ogs_local_conf()->time.message.gtp.t3_response_duration);
+
MME_CLEAR_PAGING_INFO(mme_ue);
r = nas_eps_send_modify_bearer_context_request(bearer,
req->bearer_contexts.bearer_level_qos.presence,
@@ -1134,7 +1291,7 @@ void mme_s11_handle_delete_bearer_request(
ogs_error("No Context in TEID");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
if (req->linked_eps_bearer_id.presence == 1) {
@@ -1194,7 +1351,7 @@ void mme_s11_handle_delete_bearer_request(
ogs_assert(sgw_ue);
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
@@ -1214,11 +1371,12 @@ void mme_s11_handle_delete_bearer_request(
* If GTP-xact Holding timer is expired,
* OLD bearer->xact memory will be automatically removed.
*/
- bearer->delete.xact = xact;
+ ogs_assert(xact->id >= OGS_MIN_POOL_ID && xact->id <= OGS_MAX_POOL_ID);
+ bearer->delete.xact_id = xact->id;
if (ECM_IDLE(mme_ue)) {
MME_STORE_PAGING_INFO(mme_ue,
- MME_PAGING_TYPE_DELETE_BEARER, bearer);
+ MME_PAGING_TYPE_DELETE_BEARER, bearer->id);
r = s1ap_send_paging(mme_ue, S1AP_CNDomain_ps);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1247,7 +1405,6 @@ void mme_s11_handle_release_access_bearers_response(
ogs_assert(rsp);
ogs_debug("Release Access Bearers Response");
- MME_UE_LIST_CHECK;
/********************
* Check Transaction
@@ -1255,7 +1412,9 @@ void mme_s11_handle_release_access_bearers_response(
ogs_assert(xact);
action = xact->release_action;
ogs_assert(action);
- mme_ue = mme_ue_cycle(xact->data);
+
+ mme_ue = mme_ue_find_by_id(OGS_POINTER_TO_UINT(xact->data));
+ enb_ue = enb_ue_find_by_id(xact->enb_ue_id);
rv = ogs_gtp_xact_commit(xact);
if (rv != OGS_OK) {
@@ -1267,7 +1426,7 @@ void mme_s11_handle_release_access_bearers_response(
ogs_error("MME-UE Context has already been removed");
return;
}
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
/***********************
@@ -1305,10 +1464,10 @@ void mme_s11_handle_release_access_bearers_response(
}
if (action == OGS_GTP_RELEASE_SEND_UE_CONTEXT_RELEASE_COMMAND) {
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
if (enb_ue) {
+ ogs_assert(enb_ue->relcause.group);
r = s1ap_send_ue_context_release_command(enb_ue,
- S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
+ enb_ue->relcause.group, enb_ue->relcause.cause,
S1AP_UE_CTX_REL_S1_REMOVE_AND_UNLINK, 0);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1333,17 +1492,16 @@ void mme_s11_handle_release_access_bearers_response(
* for new UE-associated logical S1-connections over the S1 interface,
* the MME shall respond with the RESET ACKNOWLEDGE message.
*/
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
-
enb_ue_unlink(mme_ue);
if (enb_ue) {
- mme_enb_t *enb = enb_ue->enb;
- ogs_assert(enb);
+ mme_enb_t *enb = NULL;
+
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
enb_ue_remove(enb_ue);
- if (ogs_list_count(&enb->enb_ue_list) == 0) {
+ if (enb && ogs_list_count(&enb->enb_ue_list) == 0) {
r = s1ap_send_s1_reset_ack(enb, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1355,35 +1513,37 @@ void mme_s11_handle_release_access_bearers_response(
} else if (action == OGS_GTP_RELEASE_S1_CONTEXT_REMOVE_BY_RESET_PARTIAL) {
enb_ue_t *iter = NULL;
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
-
enb_ue_unlink(mme_ue);
if (enb_ue) {
- mme_enb_t *enb = enb_ue->enb;
- ogs_assert(enb);
+ mme_enb_t *enb = NULL;
+
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
enb_ue_remove(enb_ue);
- ogs_list_for_each(&enb->enb_ue_list, iter) {
- if (iter->part_of_s1_reset_requested == true) {
- /* The ENB_UE context
- * where PartOfS1_interface was requested
- * still remains */
- return;
+ if (enb) {
+ ogs_list_for_each(&enb->enb_ue_list, iter) {
+ if (iter->part_of_s1_reset_requested == true) {
+ /* The ENB_UE context
+ * where PartOfS1_interface was requested
+ * still remains */
+ return;
+ }
}
- }
- /* All ENB_UE context
- * where PartOfS1_interface was requested
- * REMOVED */
- ogs_assert(enb->s1_reset_ack);
- r = s1ap_send_to_enb(enb, enb->s1_reset_ack, S1AP_NON_UE_SIGNALLING);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ /* All ENB_UE context
+ * where PartOfS1_interface was requested
+ * REMOVED */
+ ogs_assert(enb->s1_reset_ack);
+ r = s1ap_send_to_enb(
+ enb, enb->s1_reset_ack, S1AP_NON_UE_SIGNALLING);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
- /* Clear S1-Reset Ack Buffer */
- enb->s1_reset_ack = NULL;
+ /* Clear S1-Reset Ack Buffer */
+ enb->s1_reset_ack = NULL;
+ }
} else {
ogs_error("ENB-S1 Context has already been removed");
}
@@ -1418,7 +1578,7 @@ void mme_s11_handle_downlink_data_notification(
ogs_error("No UE Context");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
if (noti->eps_bearer_id.presence == 0) {
@@ -1461,7 +1621,8 @@ void mme_s11_handle_downlink_data_notification(
* If GTP-xact Holding timer is expired,
* OLD bearer->xact memory will be automatically removed.
*/
- bearer->notify.xact = xact;
+ ogs_assert(xact->id >= OGS_MIN_POOL_ID && xact->id <= OGS_MAX_POOL_ID);
+ bearer->notify.xact_id = xact->id;
if (noti->cause.presence) {
ogs_gtp2_cause_t *cause = noti->cause.data;
@@ -1485,12 +1646,16 @@ void mme_s11_handle_downlink_data_notification(
*/
if (ECM_IDLE(mme_ue)) {
MME_STORE_PAGING_INFO(mme_ue,
- MME_PAGING_TYPE_DOWNLINK_DATA_NOTIFICATION, bearer);
+ MME_PAGING_TYPE_DOWNLINK_DATA_NOTIFICATION, bearer->id);
r = s1ap_send_paging(mme_ue, S1AP_CNDomain_ps);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else if (ECM_CONNECTED(mme_ue)) {
MME_CLEAR_PAGING_INFO(mme_ue);
+ ogs_assert(OGS_OK ==
+ mme_gtp_send_downlink_data_notification_ack(
+ bearer, OGS_GTP2_CAUSE_UE_ALREADY_RE_ATTACHED));
+
if (cause_value == OGS_GTP2_CAUSE_ERROR_INDICATION_RECEIVED) {
/*
@@ -1521,7 +1686,7 @@ void mme_s11_handle_downlink_data_notification(
* included in Downlink Data Notification is "Error Indication received
* from RNC/eNodeB/S4-SGSN"
*/
- enb_ue_t *enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
r = s1ap_send_ue_context_release_command(enb_ue,
@@ -1529,10 +1694,6 @@ void mme_s11_handle_downlink_data_notification(
S1AP_UE_CTX_REL_S1_PAGING, 0);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
- } else {
- ogs_assert(OGS_OK ==
- mme_gtp_send_downlink_data_notification_ack(
- bearer, OGS_GTP2_CAUSE_UE_ALREADY_RE_ATTACHED));
}
}
}
@@ -1559,7 +1720,8 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
* Check Transaction
********************/
ogs_assert(xact);
- mme_ue = mme_ue_cycle(xact->data);
+ mme_ue = mme_ue_find_by_id(OGS_POINTER_TO_UINT(xact->data));
+ source_ue = enb_ue_find_by_id(xact->enb_ue_id);
rv = ogs_gtp_xact_commit(xact);
if (rv != OGS_OK) {
@@ -1571,7 +1733,11 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
ogs_error("MME-UE Context has already been removed");
return;
}
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ if (!source_ue) {
+ ogs_error("ENB(Source)-S1 Context has already been removed");
+ return;
+ }
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
/************************
@@ -1595,7 +1761,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
}
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(source_ue, mme_ue);
return;
}
@@ -1610,7 +1776,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
}
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(source_ue, mme_ue);
return;
}
@@ -1621,7 +1787,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
if (session_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
ogs_error("[%s] GTP Cause [VALUE:%d]", mme_ue->imsi_bcd, session_cause);
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(source_ue, mme_ue);
return;
}
@@ -1630,6 +1796,7 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
********************/
ogs_assert(mme_ue);
ogs_assert(sgw_ue);
+ ogs_assert(source_ue);
ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
mme_ue->mme_s11_teid, sgw_ue->sgw_s11_teid);
@@ -1665,9 +1832,6 @@ void mme_s11_handle_create_indirect_data_forwarding_tunnel_response(
}
}
- source_ue = enb_ue_cycle(mme_ue->enb_ue);
- ogs_assert(source_ue);
-
r = s1ap_send_handover_command(source_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
@@ -1682,6 +1846,7 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
uint8_t session_cause = OGS_GTP2_CAUSE_UNDEFINED_VALUE;
int action = 0;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
sgw_ue_t *sgw_ue = NULL;
ogs_assert(rsp);
@@ -1694,7 +1859,8 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
ogs_assert(xact);
action = xact->delete_indirect_action;
ogs_assert(action);
- mme_ue = mme_ue_cycle(xact->data);
+ mme_ue = mme_ue_find_by_id(OGS_POINTER_TO_UINT(xact->data));
+ enb_ue = enb_ue_find_by_id(xact->enb_ue_id);
rv = ogs_gtp_xact_commit(xact);
if (rv != OGS_OK) {
@@ -1706,7 +1872,7 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
ogs_error("MME-UE Context has already been removed");
return;
}
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
/************************
@@ -1730,7 +1896,10 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
}
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (enb_ue)
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
return;
}
@@ -1745,7 +1914,10 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
}
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (enb_ue)
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
return;
}
@@ -1756,7 +1928,10 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
if (session_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
ogs_error("GTP Cause [VALUE:%d]", session_cause);
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (enb_ue)
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
return;
}
@@ -1774,7 +1949,11 @@ void mme_s11_handle_delete_indirect_data_forwarding_tunnel_response(
if (action == OGS_GTP_DELETE_INDIRECT_HANDOVER_COMPLETE) {
/* Nothing to do */
} else if (action == OGS_GTP_DELETE_INDIRECT_HANDOVER_CANCEL) {
- r = s1ap_send_handover_cancel_ack(mme_ue->enb_ue);
+ if (!enb_ue) {
+ ogs_error("No S1 context");
+ return;
+ }
+ r = s1ap_send_handover_cancel_ack(enb_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
@@ -1800,12 +1979,14 @@ void mme_s11_handle_bearer_resource_failure_indication(
/********************
* Check Transaction
********************/
- ogs_assert(xact);
- bearer = xact->data;
ogs_assert(ind);
- sess = bearer->sess;
- ogs_assert(sess);
- mme_ue = mme_ue_cycle(sess->mme_ue);
+ ogs_assert(xact);
+ bearer = mme_bearer_find_by_id(OGS_POINTER_TO_UINT(xact->data));
+ if (bearer) {
+ sess = mme_sess_find_by_id(bearer->sess_id);
+ if (sess)
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
+ }
rv = ogs_gtp_xact_commit(xact);
if (rv != OGS_OK) {
@@ -1813,11 +1994,21 @@ void mme_s11_handle_bearer_resource_failure_indication(
return;
}
+ if (!bearer) {
+ ogs_error("Bearer Context has already been removed");
+ return;
+ }
+
+ if (!sess) {
+ ogs_error("Session Context has already been removed");
+ return;
+ }
+
if (!mme_ue) {
ogs_error("MME-UE Context has already been removed");
return;
}
- sgw_ue = sgw_ue_cycle(mme_ue->sgw_ue);
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
if (!mme_ue_from_teid)
diff --git a/src/mme/mme-s6a-handler.c b/src/mme/mme-s6a-handler.c
index 780f9c0159..a2a2eb518d 100644
--- a/src/mme/mme-s6a-handler.c
+++ b/src/mme/mme-s6a-handler.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -39,7 +39,6 @@ static uint8_t mme_ue_session_from_slice_data(mme_ue_t *mme_ue,
uint8_t mme_s6a_handle_aia(
mme_ue_t *mme_ue, ogs_diam_s6a_message_t *s6a_message)
{
- int r;
ogs_diam_s6a_aia_message_t *aia_message = NULL;
ogs_diam_e_utran_vector_t *e_utran_vector = NULL;
@@ -67,10 +66,6 @@ uint8_t mme_s6a_handle_aia(
if (mme_ue->nas_eps.ksi == OGS_NAS_KSI_NO_KEY_IS_AVAILABLE)
mme_ue->nas_eps.ksi = 0;
- r = nas_eps_send_authentication_request(mme_ue);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
-
return OGS_NAS_EMM_CAUSE_REQUEST_ACCEPTED;
}
@@ -118,10 +113,36 @@ uint8_t mme_s6a_handle_ula(
return OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED;
}
} else if (mme_ue->nas_eps.type == MME_EPS_TYPE_TAU_REQUEST) {
- r = nas_eps_send_tau_accept(mme_ue,
- S1AP_ProcedureCode_id_InitialContextSetup);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ if (!SESSION_CONTEXT_IS_AVAILABLE(mme_ue)) {
+ ogs_warn("No PDN Connection : UE[%s]", mme_ue->imsi_bcd);
+ return OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK;
+ }
+
+ if (!ACTIVE_EPS_BEARERS_IS_AVAIABLE(mme_ue)) {
+ ogs_warn("No active EPS bearers : IMSI[%s]", mme_ue->imsi_bcd);
+ return OGS_NAS_EMM_CAUSE_NO_EPS_BEARER_CONTEXT_ACTIVATED;
+ }
+
+ /* Update CSMAP from Tracking area update request */
+ mme_ue->csmap = mme_csmap_find_by_tai(&mme_ue->tai);
+ if (mme_ue->csmap &&
+ mme_ue->network_access_mode ==
+ OGS_NETWORK_ACCESS_MODE_PACKET_AND_CIRCUIT &&
+ (mme_ue->nas_eps.update.value ==
+ OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING ||
+ mme_ue->nas_eps.update.value ==
+ OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH)) {
+
+ mme_ue->tracking_area_update_request_type =
+ MME_TAU_TYPE_UNPROTECTED_INGERITY;
+ ogs_assert(OGS_OK == sgsap_send_location_update_request(mme_ue));
+
+ } else {
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_InitialContextSetup);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ }
} else {
ogs_error("Invalid Type[%d]", mme_ue->nas_eps.type);
return OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED;
@@ -208,7 +229,6 @@ void mme_s6a_handle_clr(mme_ue_t *mme_ue, ogs_diam_s6a_message_t *s6a_message)
clr_message = &s6a_message->clr_message;
ogs_assert(clr_message);
- mme_ue = mme_ue_cycle(mme_ue);
if (!mme_ue) {
ogs_warn("UE(mme-ue) context has already been removed");
return;
@@ -271,10 +291,14 @@ void mme_s6a_handle_clr(mme_ue_t *mme_ue, ogs_diam_s6a_message_t *s6a_message)
r = nas_eps_send_detach_request(mme_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (enb_ue)
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
}
}
break;
@@ -296,10 +320,14 @@ void mme_s6a_handle_clr(mme_ue_t *mme_ue, ogs_diam_s6a_message_t *s6a_message)
* There is no need to send NAS or S1AP message to the UE.
* So, we don't have to check whether UE is IDLE or not.
*/
- if (MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue));
} else {
- mme_send_delete_session_or_detach(mme_ue);
+ enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (enb_ue)
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
}
break;
default:
@@ -342,8 +370,8 @@ static uint8_t mme_ue_session_from_slice_data(mme_ue_t *mme_ue,
ogs_free(mme_ue->session[i].name);
break;
}
- memcpy(&mme_ue->session[i].paa, &slice_data->session[i].paa,
- sizeof(mme_ue->session[i].paa));
+ memcpy(&mme_ue->session[i].ue_ip, &slice_data->session[i].ue_ip,
+ sizeof(mme_ue->session[i].ue_ip));
memcpy(&mme_ue->session[i].qos, &slice_data->session[i].qos,
sizeof(mme_ue->session[i].qos));
diff --git a/src/mme/mme-sm.c b/src/mme/mme-sm.c
index 039d53b97b..6a06fd3e2b 100644
--- a/src/mme/mme-sm.c
+++ b/src/mme/mme-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -111,7 +111,11 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
enb = mme_enb_find_by_addr(addr);
if (!enb) {
enb = mme_enb_add(sock, addr);
- ogs_assert(enb);
+ if (!enb) {
+ ogs_error("mme_enb_add() failed");
+ ogs_sock_destroy(sock);
+ ogs_free(addr);
+ }
} else {
ogs_warn("eNB context duplicated with IP-address [%s]!!!",
OGS_ADDR(addr, buf));
@@ -136,7 +140,10 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
enb = mme_enb_find_by_addr(addr);
if (!enb) {
enb = mme_enb_add(sock, addr);
- ogs_assert(enb);
+ if (!enb) {
+ ogs_error("amf_enb_add() failed");
+ ogs_free(addr);
+ }
} else {
ogs_free(addr);
}
@@ -193,7 +200,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
rc = ogs_s1ap_decode(&s1ap_message, pkbuf);
if (rc == OGS_OK) {
- e->enb = enb;
+ e->enb_id = enb->id;
e->s1ap_message = &s1ap_message;
ogs_fsm_dispatch(&enb->sm, e);
} else {
@@ -210,13 +217,14 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
case MME_EVENT_S1AP_TIMER:
- enb_ue = e->enb_ue;
- ogs_assert(enb_ue);
+ enb_ue = enb_ue_find_by_id(e->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("S1 Context has already been removed");
+ break;
+ }
switch (e->timer_id) {
case MME_TIMER_S1_DELAYED_SEND:
- enb = e->enb;
- ogs_assert(enb);
pkbuf = e->pkbuf;
ogs_assert(pkbuf);
@@ -239,18 +247,22 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
case MME_EVENT_EMM_MESSAGE:
- enb_ue = e->enb_ue;
- ogs_assert(enb_ue);
pkbuf = e->pkbuf;
ogs_assert(pkbuf);
+ enb_ue = enb_ue_find_by_id(e->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("S1 Context has already been removed");
+ break;
+ }
+
if (ogs_nas_emm_decode(&nas_message, pkbuf) != OGS_OK) {
ogs_error("ogs_nas_emm_decode() failed");
ogs_pkbuf_free(pkbuf);
return;
}
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (!mme_ue) {
mme_ue = mme_ue_find_by_message(&nas_message);
if (!mme_ue) {
@@ -319,20 +331,29 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
}
ogs_assert(mme_ue);
+ if (!OGS_FSM_STATE(&mme_ue->sm)) {
+ ogs_fatal("MESSAGE[%d]", nas_message.emm.h.message_type);
+ ogs_fatal("ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
+ enb_ue ? enb_ue->enb_ue_s1ap_id : 0,
+ enb_ue ? enb_ue->mme_ue_s1ap_id : 0);
+ ogs_fatal("context [%p:%p]", enb_ue, mme_ue);
+ ogs_fatal("IMSI [%s]", mme_ue ? mme_ue->imsi_bcd : "No MME_UE");
+ ogs_assert_if_reached();
+ }
ogs_assert(OGS_FSM_STATE(&mme_ue->sm));
- e->mme_ue = mme_ue;
+ e->mme_ue_id = mme_ue->id;
e->nas_message = &nas_message;
ogs_fsm_dispatch(&mme_ue->sm, e);
if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_exception)) {
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
}
ogs_pkbuf_free(pkbuf);
break;
case MME_EVENT_EMM_TIMER:
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
ogs_assert(OGS_FSM_STATE(&mme_ue->sm));
@@ -340,7 +361,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
case MME_EVENT_ESM_MESSAGE:
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
pkbuf = e->pkbuf;
@@ -351,6 +372,99 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
}
+#define ESM_MESSAGE_CHECK \
+ do { \
+ ogs_error("emm_state_exception"); \
+ ogs_error("nas_type:%d, create_action:%d", \
+ e->nas_type, e->create_action); \
+ ogs_error("esm.message[EBI:%d,PTI:%d,TYPE:%d]", \
+ nas_message.esm.h.eps_bearer_identity, \
+ nas_message.esm.h.procedure_transaction_identity, \
+ nas_message.esm.h.message_type); \
+ } while(0)
+
+ /*
+ * Because a race condition can occur between S6A Diameter and S1AP message,
+ * the following error handling code has been added.
+ *
+ * 1. InitialUEMessage + Attach Request + PDN Connectivity request
+ * 2. Authentication-Information-Request/Authentication-Information-Answer
+ * 3. Authentication Request/Response
+ * 4. Security-mode command/complete
+ * 5. Update-Location-Request/Update-Location-Answer
+ * 6. Detach request/accept
+ *
+ * In the ULR/ULA process in step 6, the PDN Connectivity request is
+ * pushed to the queue as an ESM_MESSAGE because the NAS-Type is still
+ * an Attach Request.
+ *
+ * See the code below in 'mme-s6a-handler.c' for where the queue is pushed.
+ *
+ * if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ * rv = nas_eps_send_emm_to_esm(mme_ue,
+ * &mme_ue->pdn_connectivity_request);
+ * if (rv != OGS_OK) {
+ * ogs_error("nas_eps_send_emm_to_esm() failed");
+ * return OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED;
+ * }
+ * } else if (mme_ue->nas_eps.type == MME_EPS_TYPE_TAU_REQUEST) {
+ * r = nas_eps_send_tau_accept(mme_ue,
+ * S1AP_ProcedureCode_id_InitialContextSetup);
+ * ogs_expect(r == OGS_OK);
+ * ogs_assert(r != OGS_ERROR);
+ * } else {
+ * ogs_error("Invalid Type[%d]", mme_ue->nas_eps.type);
+ * return OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED;
+ * }
+ *
+ * If you perform step 7 Detach request/accept here,
+ * the NAS-Type becomes Detach Request and the EMM state changes
+ * to emm_state_de_registered().
+ *
+ * Since the PDN, which is an ESM message that was previously queued,
+ * should not be processed in de_registered, the message is ignored
+ * through error handling below.
+ *
+ * Otherwise, MME will crash because there is no active bearer
+ * in the initial_context_setup_request build process.
+ *
+ * See the code below in 's1ap-build.c' for where the crash occurs.
+ * ogs_list_for_each(&mme_ue->sess_list, sess) {
+ * ogs_list_for_each(&sess->bearer_list, bearer) {
+ * ...
+ * if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ * } else if (OGS_FSM_CHECK(&bearer->sm, esm_state_inactive)) {
+ * ogs_warn("No active EPS bearer [%d]", bearer->ebi);
+ * ogs_warn(" IMSI[%s] NAS-EPS Type[%d] "
+ * "ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
+ * mme_ue->imsi_bcd, mme_ue->nas_eps.type,
+ * enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
+ * continue;
+ * }
+ * ...
+ * }
+ * }
+ */
+ if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_de_registered)) {
+ ESM_MESSAGE_CHECK;
+ ogs_pkbuf_free(pkbuf);
+ break;
+ } else if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_authentication)) {
+ ESM_MESSAGE_CHECK;
+ ogs_pkbuf_free(pkbuf);
+ break;
+ } else if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_security_mode)) {
+ ESM_MESSAGE_CHECK;
+ ogs_pkbuf_free(pkbuf);
+ break;
+ } else if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_initial_context_setup)) {
+ } else if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_registered)) {
+ } else if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_exception)) {
+ ESM_MESSAGE_CHECK;
+ ogs_pkbuf_free(pkbuf);
+ break;
+ }
+
bearer = mme_bearer_find_or_add_by_message(
mme_ue, &nas_message, e->create_action);
if (!bearer) {
@@ -358,12 +472,12 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
}
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
default_bearer = mme_default_bearer_in_sess(sess);
ogs_assert(default_bearer);
- e->bearer = bearer;
+ e->bearer_id = bearer->id;
e->nas_message = &nas_message;
ogs_fsm_dispatch(&bearer->sm, e);
@@ -399,7 +513,7 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
case MME_EVENT_ESM_TIMER:
- bearer = e->bearer;
+ bearer = mme_bearer_find_by_id(e->bearer_id);
ogs_assert(bearer);
ogs_assert(OGS_FSM_STATE(&bearer->sm));
@@ -407,72 +521,170 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
case MME_EVENT_S6A_MESSAGE:
- mme_ue = e->mme_ue;
- ogs_assert(mme_ue);
s6a_message = e->s6a_message;
ogs_assert(s6a_message);
+ /*
+ * A race condition can occur in the following situations.
+ * In conclusion, we can use this situation to determine
+ * whether or not the UE Context has been removed and avoiding a crash.
+ *
+ * For example, suppose a UE Context is removed in the followings.
+ *
+ * 1. Attach Request
+ * 2. Authentication-Information-Request
+ * 3. Authentication-Information-Answer
+ * 4. Authentication Request
+ * 5. Authentication Response(MAC Failed)
+ * 6. Authentication Reject
+ * 7. UEContextReleaseCommand
+ * 8. UEContextReleaseComplete
+ *
+ * The MME then sends a Purge-UE-request to the HSS and deletes
+ * the UE context as soon as it receives a Purge-UE-Answer.
+ *
+ * Suppose an Attach Request is received from the same UE
+ * between Purge-UE-Request/Answer, then the MME and HSS start
+ * the Authentication-Information-Request/Answer process.
+ *
+ * This can lead to the following situations.
+ *
+ * 1. Purge-UE-Request
+ * 2. Attach Request
+ * 3. Authentication-Information-Request
+ * 4. Purge-UE-Answer
+ * 5. [UE Context Removed]
+ * 6. Authentication-Information-Answer
+ *
+ * Since the UE Context has already been deleted
+ * when the Authentication-Information-Answer is received,
+ * it cannot be processed properly.
+ *
+ * Therefore, mme_ue_cycle() is used to check
+ * whether the UE Context has been deleted and
+ * decide whether to process or
+ * ignore the Authentication-Information-Answer as shown below.
+ */
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
+ if (!mme_ue) {
+ ogs_error("UE(mme-ue) context has already been removed");
+ goto cleanup;
+ }
+
+ enb_ue = enb_ue_find_by_id(e->enb_ue_id);
+ /*
+ * The 'enb_ue' context is not checked
+ * because the status is checked in the sending routine.
+ */
+
switch (s6a_message->cmd_code) {
case OGS_DIAM_S6A_CMD_CODE_AUTHENTICATION_INFORMATION:
+ ogs_debug("OGS_DIAM_S6A_CMD_CODE_AUTHENTICATION_INFORMATION");
+ if (e->gtp_xact_id != OGS_INVALID_POOL_ID)
+ xact = ogs_gtp_xact_find_by_id(e->gtp_xact_id);
+ else
+ xact = NULL;
emm_cause = mme_s6a_handle_aia(mme_ue, s6a_message);
if (emm_cause != OGS_NAS_EMM_CAUSE_REQUEST_ACCEPTED) {
- ogs_info("[%s] Attach reject [OGS_NAS_EMM_CAUSE:%d]",
- mme_ue->imsi_bcd, emm_cause);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
- if (!enb_ue) {
- ogs_error("S1 context has already been removed");
- break;
- }
- r = nas_eps_send_attach_reject(mme_ue, emm_cause,
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ /* If authentication was triggered due to subscriber coming from
+ * an SGSN, report to it that something went wrong: */
+ if (xact) {
+ rv = mme_gtp1_send_sgsn_context_ack(mme_ue, OGS_GTP1_CAUSE_AUTHENTICATION_FAILURE, xact);
+ if (rv != OGS_OK)
+ ogs_warn("Failed to send SGSN Context Ack (rv %d)", rv);
+ } else
+ ogs_warn("Originating SGSN Context xact no longer valid (%d)", e->gtp_xact_id);
+
+ /* Finally reject the UE: */
+ if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ ogs_info("[%s] Attach reject [OGS_NAS_EMM_CAUSE:%d]",
+ mme_ue->imsi_bcd, emm_cause);
+ r = nas_eps_send_attach_reject(
+ enb_ue, mme_ue, emm_cause,
+ OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else if (mme_ue->nas_eps.type == MME_EPS_TYPE_TAU_REQUEST) {
+ /* This is usually an UE coming from 2G (Cell reselection),
+ * which we decided to re-authenticate */
+ ogs_info("[%s] TAU reject [OGS_NAS_EMM_CAUSE:%d]",
+ mme_ue->imsi_bcd, emm_cause);
+ r = nas_eps_send_tau_reject(
+ enb_ue, mme_ue, emm_cause);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else
+ ogs_error("Invalid Type[%d]", mme_ue->nas_eps.type);
r = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+ break;
+ }
+
+ if (xact) {
+ /* Subscriber coming from SGSN, store info so we can SGSN
+ * Context Ack after authenticating the UE: */
+ mme_ue->gn.gtp_xact_id = e->gtp_xact_id;
}
+
+ /* Auth-Info accepted from HSS, now authenticate the UE: */
+ r = nas_eps_send_authentication_request(mme_ue);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+
break;
case OGS_DIAM_S6A_CMD_CODE_UPDATE_LOCATION:
+ ogs_debug("OGS_DIAM_S6A_CMD_CODE_UPDATE_LOCATION");
emm_cause = mme_s6a_handle_ula(mme_ue, s6a_message);
if (emm_cause != OGS_NAS_EMM_CAUSE_REQUEST_ACCEPTED) {
- ogs_info("[%s] Attach reject [OGS_NAS_EMM_CAUSE:%d]",
- mme_ue->imsi_bcd, emm_cause);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
- if (!enb_ue) {
- ogs_error("S1 context has already been removed");
- break;
- }
- r = nas_eps_send_attach_reject(mme_ue, emm_cause,
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ ogs_info("[%s] Attach reject [OGS_NAS_EMM_CAUSE:%d]",
+ mme_ue->imsi_bcd, emm_cause);
+ r = nas_eps_send_attach_reject(
+ enb_ue, mme_ue, emm_cause,
+ OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else if (mme_ue->nas_eps.type == MME_EPS_TYPE_TAU_REQUEST) {
+ ogs_info("[%s] TAU reject [OGS_NAS_EMM_CAUSE:%d]",
+ mme_ue->imsi_bcd, emm_cause);
+ r = nas_eps_send_tau_reject(
+ enb_ue, mme_ue, emm_cause);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else
+ ogs_error("Invalid Type[%d]", mme_ue->nas_eps.type);
r = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
- S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
+ mme_ue_find_by_id(enb_ue->mme_ue_id) ?
+ S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE :
+ S1AP_UE_CTX_REL_S1_CONTEXT_REMOVE, 0);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
-
- mme_ue->location_updated_but_not_canceled_yet = true;
break;
case OGS_DIAM_S6A_CMD_CODE_PURGE_UE:
+ ogs_debug("OGS_DIAM_S6A_CMD_CODE_PURGE_UE");
mme_s6a_handle_pua(mme_ue, s6a_message);
break;
case OGS_DIAM_S6A_CMD_CODE_CANCEL_LOCATION:
- mme_ue->location_updated_but_not_canceled_yet = false;
+ ogs_debug("OGS_DIAM_S6A_CMD_CODE_CANCEL_LOCATION");
mme_s6a_handle_clr(mme_ue, s6a_message);
break;
case OGS_DIAM_S6A_CMD_CODE_INSERT_SUBSCRIBER_DATA:
+ ogs_debug("OGS_DIAM_S6A_CMD_CODE_INSERT_SUBSCRIBER_DATA");
mme_s6a_handle_idr(mme_ue, s6a_message);
break;
default:
ogs_error("Invalid Type[%d]", s6a_message->cmd_code);
break;
}
+
+cleanup:
ogs_subscription_data_free(&s6a_message->idr_message.subscription_data);
ogs_subscription_data_free(&s6a_message->ula_message.subscription_data);
ogs_free(s6a_message);
@@ -607,10 +819,16 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
case MME_EVENT_S11_TIMER:
- sgw_ue = e->sgw_ue;
- ogs_assert(sgw_ue);
- mme_ue = sgw_ue->mme_ue;
- ogs_assert(mme_ue);
+ sgw_ue = sgw_ue_find_by_id(e->sgw_ue_id);
+ if (!sgw_ue) {
+ ogs_error("SGW-UE Context has already been removed");
+ break;
+ }
+ mme_ue = mme_ue_find_by_id(sgw_ue->mme_ue_id);
+ if (!mme_ue) {
+ ogs_error("MME-UE Context has already been removed");
+ break;
+ }
switch (e->timer_id) {
case MME_TIMER_S11_HOLDING:
@@ -623,10 +841,15 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
GTP_COUNTER_INCREMENT(
mme_ue, GTP_COUNTER_DELETE_SESSION_BY_PATH_SWITCH);
- ogs_assert(OGS_OK ==
- mme_gtp_send_delete_session_request(
- sgw_ue, sess,
- OGS_GTP_DELETE_IN_PATH_SWITCH_REQUEST));
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (enb_ue) {
+ ogs_assert(OGS_OK ==
+ mme_gtp_send_delete_session_request(
+ enb_ue, sgw_ue, sess,
+ OGS_GTP_DELETE_IN_PATH_SWITCH_REQUEST));
+ } else
+ ogs_error("ENB-S1 Context has already been removed");
+
}
break;
@@ -675,12 +898,22 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
mme_gn_handle_sgsn_context_request(xact, >p1_message.sgsn_context_request);
break;
case OGS_GTP1_SGSN_CONTEXT_RESPONSE_TYPE:
+ /* Clang scan-build SA: NULL pointer dereference: mme_ue=NULL if both gtp1_message.h.teid=0 and
+ * xact->local_teid=0. The following function mme_gn_handle_sgsn_context_response() handles the NULL
+ * but the later calls to OGS_FSM_TRAN() to change state will be a NULL pointer dereference. */
+ ogs_assert(mme_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("ENB-S1 Context has already been removed");
+ OGS_FSM_TRAN(&mme_ue->sm, &emm_state_exception);
+ break;
+ }
+
/* 3GPP TS 23.401 Figure D.3.6-1 step 5 */
rv = mme_gn_handle_sgsn_context_response(xact, mme_ue, >p1_message.sgsn_context_response);
- if (rv == OGS_GTP1_CAUSE_ACCEPT) {
- OGS_FSM_TRAN(&mme_ue->sm, &emm_state_initial_context_setup);
- } else if (rv == OGS_GTP1_CAUSE_REQUEST_IMEI) {
- OGS_FSM_TRAN(&mme_ue->sm, &emm_state_security_mode);
+ if (rv == OGS_GTP1_CAUSE_ACCEPT || rv == OGS_GTP1_CAUSE_REQUEST_IMEI) {
+ mme_s6a_send_air_from_gn(enb_ue, mme_ue, xact);
+ OGS_FSM_TRAN(&mme_ue->sm, &emm_state_authentication);
} else {
OGS_FSM_TRAN(&mme_ue->sm, &emm_state_exception);
}
@@ -699,9 +932,9 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
break;
case MME_EVENT_GN_TIMER:
- mme_ue = e->mme_ue;
+ mme_ue = mme_ue_find_by_id(e->mme_ue_id);
ogs_assert(mme_ue);
- sgw_ue = mme_ue->sgw_ue;
+ sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
switch (e->timer_id) {
@@ -716,10 +949,15 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
ogs_list_for_each(&mme_ue->sess_list, sess) {
GTP_COUNTER_INCREMENT(
mme_ue, GTP_COUNTER_DELETE_SESSION_BY_PATH_SWITCH);
- ogs_assert(OGS_OK ==
- mme_gtp_send_delete_session_request(
- sgw_ue, sess,
- OGS_GTP_DELETE_IN_PATH_SWITCH_REQUEST));
+
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (enb_ue) {
+ ogs_assert(OGS_OK ==
+ mme_gtp_send_delete_session_request(
+ enb_ue, sgw_ue, sess,
+ OGS_GTP_DELETE_IN_PATH_SWITCH_REQUEST));
+ } else
+ ogs_error("ENB-S1 Context has already been removed");
}
break;
@@ -732,25 +970,19 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
case MME_EVENT_SGSAP_LO_SCTP_COMM_UP:
sock = e->sock;
ogs_assert(sock);
- addr = e->addr;
- ogs_assert(addr);
-
- ogs_assert(addr->ogs_sa_family == AF_INET ||
- addr->ogs_sa_family == AF_INET6);
max_num_of_ostreams = e->max_num_of_ostreams;
- vlr = mme_vlr_find_by_addr(addr);
- ogs_free(addr);
-
+ vlr = mme_vlr_find_by_sock(sock);
ogs_assert(vlr);
ogs_assert(OGS_FSM_STATE(&vlr->sm));
vlr->max_num_of_ostreams =
ogs_min(max_num_of_ostreams, vlr->max_num_of_ostreams);
- ogs_debug("VLR-SGs SCTP_COMM_UP[%s] Max Num of Outbound Streams[%d]",
- OGS_ADDR(vlr->addr, buf), vlr->max_num_of_ostreams);
+ ogs_debug("VLR-SGs SCTP_COMM_UP %s Max Num of Outbound Streams[%d]",
+ ogs_sockaddr_to_string_static(vlr->sa_list),
+ vlr->max_num_of_ostreams);
e->vlr = vlr;
ogs_fsm_dispatch(&vlr->sm, e);
@@ -759,15 +991,8 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
case MME_EVENT_SGSAP_LO_CONNREFUSED:
sock = e->sock;
ogs_assert(sock);
- addr = e->addr;
- ogs_assert(addr);
-
- ogs_assert(addr->ogs_sa_family == AF_INET ||
- addr->ogs_sa_family == AF_INET6);
-
- vlr = mme_vlr_find_by_addr(addr);
- ogs_free(addr);
+ vlr = mme_vlr_find_by_sock(sock);
ogs_assert(vlr);
ogs_assert(OGS_FSM_STATE(&vlr->sm));
@@ -775,29 +1000,22 @@ void mme_state_operational(ogs_fsm_t *s, mme_event_t *e)
e->vlr = vlr;
ogs_fsm_dispatch(&vlr->sm, e);
- ogs_info("VLR-SGs[%s] connection refused!!!",
- OGS_ADDR(vlr->addr, buf));
+ ogs_info("VLR-SGs %s connection refused!!!",
+ ogs_sockaddr_to_string_static(vlr->sa_list));
} else {
- ogs_warn("VLR-SGs[%s] connection refused, Already Removed!",
- OGS_ADDR(vlr->addr, buf));
+ ogs_warn("VLR-SGs %s connection refused, Already Removed!",
+ ogs_sockaddr_to_string_static(vlr->sa_list));
}
break;
case MME_EVENT_SGSAP_MESSAGE:
sock = e->sock;
ogs_assert(sock);
- addr = e->addr;
- ogs_assert(addr);
pkbuf = e->pkbuf;
ogs_assert(pkbuf);
- ogs_assert(addr->ogs_sa_family == AF_INET ||
- addr->ogs_sa_family == AF_INET6);
-
- vlr = mme_vlr_find_by_addr(addr);
- ogs_free(addr);
-
+ vlr = mme_vlr_find_by_sock(sock);
ogs_assert(vlr);
ogs_assert(OGS_FSM_STATE(&vlr->sm));
diff --git a/src/mme/mme-timer.c b/src/mme/mme-timer.c
index 1f196c9162..41141748be 100644
--- a/src/mme/mme-timer.c
+++ b/src/mme/mme-timer.c
@@ -63,11 +63,6 @@ static mme_timer_cfg_t g_mme_timer_cfg[MAX_NUM_OF_MME_TIMER] = {
{ .have = true, .duration = ogs_time_from_sec(20) },
};
-static void emm_timer_event_send(
- mme_timer_e timer_id, mme_ue_t *mme_ue);
-static void esm_timer_event_send(
- mme_timer_e timer_id, mme_bearer_t *bearer);
-
mme_timer_cfg_t *mme_timer_cfg(mme_timer_e id)
{
ogs_assert(id < MAX_NUM_OF_MME_TIMER);
@@ -129,16 +124,16 @@ void mme_timer_s1_delayed_send(void *data)
}
-static void emm_timer_event_send(
- mme_timer_e timer_id, mme_ue_t *mme_ue)
+static void emm_timer_event_send(mme_timer_e timer_id, void *data)
{
int rv;
mme_event_t *e = NULL;
- ogs_assert(mme_ue);
+
+ ogs_assert(data);
e = mme_event_new(MME_EVENT_EMM_TIMER);
e->timer_id = timer_id;
- e->mme_ue = mme_ue;
+ e->mme_ue_id = OGS_POINTER_TO_UINT(data);
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -176,20 +171,16 @@ void mme_timer_implicit_detach_expire(void *data)
emm_timer_event_send(MME_TIMER_IMPLICIT_DETACH, data);
}
-static void esm_timer_event_send(
- mme_timer_e timer_id, mme_bearer_t *bearer)
+static void esm_timer_event_send(mme_timer_e timer_id, void *data)
{
int rv;
mme_event_t *e = NULL;
- mme_ue_t *mme_ue = NULL;
- ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
- ogs_assert(bearer);
+
+ ogs_assert(data);
e = mme_event_new(MME_EVENT_ESM_TIMER);
e->timer_id = timer_id;
- e->mme_ue = mme_ue;
- e->bearer = bearer;
+ e->bearer_id = OGS_POINTER_TO_UINT(data);
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -224,15 +215,13 @@ void mme_timer_s1_holding_timer_expire(void *data)
{
int rv;
mme_event_t *e = NULL;
- enb_ue_t *enb_ue = NULL;
ogs_assert(data);
- enb_ue = data;
e = mme_event_new(MME_EVENT_S1AP_TIMER);
e->timer_id = MME_TIMER_S1_HOLDING;
- e->enb_ue = enb_ue;
+ e->enb_ue_id = OGS_POINTER_TO_UINT(data);
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -245,15 +234,13 @@ void mme_timer_s11_holding_timer_expire(void *data)
{
int rv;
mme_event_t *e = NULL;
- sgw_ue_t *sgw_ue = NULL;
ogs_assert(data);
- sgw_ue = data;
e = mme_event_new(MME_EVENT_S11_TIMER);
e->timer_id = MME_TIMER_S11_HOLDING;
- e->sgw_ue = sgw_ue;
+ e->sgw_ue_id = OGS_POINTER_TO_UINT(data);
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
@@ -266,15 +253,13 @@ void mme_timer_gn_holding_timer_expire(void *data)
{
int rv;
mme_event_t *e = NULL;
- mme_ue_t *mme_ue;
ogs_assert(data);
- mme_ue = data;
e = mme_event_new(MME_EVENT_GN_TIMER);
e->timer_id = MME_TIMER_GN_HOLDING;
- e->mme_ue = mme_ue;
+ e->mme_ue_id = OGS_POINTER_TO_UINT(data);
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
diff --git a/src/mme/nas-path.c b/src/mme/nas-path.c
index 36836e0e4f..0ad9e8d2ed 100644
--- a/src/mme/nas-path.c
+++ b/src/mme/nas-path.c
@@ -29,16 +29,24 @@
int nas_eps_send_to_enb(mme_ue_t *mme_ue, ogs_pkbuf_t *pkbuf)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_assert(pkbuf);
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
ogs_pkbuf_free(pkbuf);
return OGS_NOTFOUND;
}
- rv = s1ap_send_to_enb_ue(mme_ue->enb_ue, pkbuf);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("S1 context has already been removed");
+ ogs_pkbuf_free(pkbuf);
+ return OGS_NOTFOUND;
+ }
+
+ rv = s1ap_send_to_enb_ue(enb_ue, pkbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -50,14 +58,17 @@ int nas_eps_send_emm_to_esm(mme_ue_t *mme_ue,
int rv;
ogs_pkbuf_t *esmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ ogs_assert(esm_message_container);
+ if (!esm_message_container->length) {
+ ogs_error("Invalid ESM Message Container");
+ return OGS_ERROR;
+ }
+
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- ogs_assert(esm_message_container);
- ogs_assert(esm_message_container->length);
-
/* The Packet Buffer(pkbuf_t) for NAS message MUST make a HEADROOM.
* When calculating AES_CMAC, we need to use the headroom of the packet. */
esmbuf = ogs_pkbuf_alloc(NULL,
@@ -73,32 +84,27 @@ int nas_eps_send_emm_to_esm(mme_ue_t *mme_ue,
return rv;
}
-int nas_eps_send_to_downlink_nas_transport(mme_ue_t *mme_ue, ogs_pkbuf_t *pkbuf)
+int nas_eps_send_to_downlink_nas_transport(
+ enb_ue_t *enb_ue, ogs_pkbuf_t *pkbuf)
{
int rv;
ogs_pkbuf_t *s1apbuf = NULL;
ogs_assert(pkbuf);
- if (!mme_ue_cycle(mme_ue)) {
- ogs_error("UE(mme-ue) context has already been removed");
- ogs_pkbuf_free(pkbuf);
- return OGS_NOTFOUND;
- }
-
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
ogs_pkbuf_free(pkbuf);
return OGS_NOTFOUND;
}
- s1apbuf = s1ap_build_downlink_nas_transport(mme_ue->enb_ue, pkbuf);
+ s1apbuf = s1ap_build_downlink_nas_transport(enb_ue, pkbuf);
if (!s1apbuf) {
ogs_error("s1ap_build_downlink_nas_transport() failed");
return OGS_ERROR;
}
- rv = nas_eps_send_to_enb(mme_ue, s1apbuf);
+ rv = s1ap_send_to_enb_ue(enb_ue, s1apbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -107,27 +113,28 @@ int nas_eps_send_to_downlink_nas_transport(mme_ue_t *mme_ue, ogs_pkbuf_t *pkbuf)
int nas_eps_send_attach_accept(mme_ue_t *mme_ue)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
mme_sess_t *sess = NULL;
- mme_bearer_t *bearer = NULL;
ogs_pkbuf_t *s1apbuf = NULL;
ogs_pkbuf_t *esmbuf = NULL, *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
sess = mme_sess_first(mme_ue);
ogs_assert(sess);
- ogs_assert(mme_sess_next(sess) == NULL);
- bearer = mme_default_bearer_in_sess(sess);
- ogs_assert(bearer);
- ogs_assert(mme_bearer_next(bearer) == NULL);
+ if (mme_sess_next(sess)) {
+ ogs_error("There should only be one SESSION");
+ return OGS_ERROR;
+ }
ogs_debug("[%s] Attach accept", mme_ue->imsi_bcd);
@@ -180,19 +187,19 @@ int nas_eps_send_attach_accept(mme_ue_t *mme_ue)
return rv;
}
-int nas_eps_send_attach_reject(mme_ue_t *mme_ue,
+int nas_eps_send_attach_reject(enb_ue_t *enb_ue, mme_ue_t *mme_ue,
ogs_nas_emm_cause_t emm_cause, ogs_nas_esm_cause_t esm_cause)
{
int rv;
mme_sess_t *sess = NULL;
ogs_pkbuf_t *esmbuf = NULL, *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -215,7 +222,7 @@ int nas_eps_send_attach_reject(mme_ue_t *mme_ue,
ogs_error("emm_build_attach_reject() failed");
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -224,14 +231,16 @@ int nas_eps_send_attach_reject(mme_ue_t *mme_ue,
int nas_eps_send_identity_request(mme_ue_t *mme_ue)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -257,7 +266,7 @@ int nas_eps_send_identity_request(mme_ue_t *mme_ue)
ogs_timer_start(mme_ue->t3470.timer,
mme_timer_cfg(MME_TIMER_T3470)->duration);
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -266,14 +275,16 @@ int nas_eps_send_identity_request(mme_ue_t *mme_ue)
int nas_eps_send_authentication_request(mme_ue_t *mme_ue)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -299,7 +310,7 @@ int nas_eps_send_authentication_request(mme_ue_t *mme_ue)
ogs_timer_start(mme_ue->t3460.timer,
mme_timer_cfg(MME_TIMER_T3460)->duration);
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -308,14 +319,16 @@ int nas_eps_send_authentication_request(mme_ue_t *mme_ue)
int nas_eps_send_security_mode_command(mme_ue_t *mme_ue)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -341,7 +354,7 @@ int nas_eps_send_security_mode_command(mme_ue_t *mme_ue)
ogs_timer_start(mme_ue->t3460.timer,
mme_timer_cfg(MME_TIMER_T3460)->duration);
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -350,14 +363,16 @@ int nas_eps_send_security_mode_command(mme_ue_t *mme_ue)
int nas_eps_send_authentication_reject(mme_ue_t *mme_ue)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -370,7 +385,7 @@ int nas_eps_send_authentication_reject(mme_ue_t *mme_ue)
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -379,14 +394,16 @@ int nas_eps_send_authentication_reject(mme_ue_t *mme_ue)
int nas_eps_send_detach_request(mme_ue_t *mme_ue)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -412,7 +429,7 @@ int nas_eps_send_detach_request(mme_ue_t *mme_ue)
ogs_timer_start(mme_ue->t3422.timer,
mme_timer_cfg(MME_TIMER_T3422)->duration);
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -421,15 +438,16 @@ int nas_eps_send_detach_request(mme_ue_t *mme_ue)
int nas_eps_send_detach_accept(mme_ue_t *mme_ue)
{
int rv;
-
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -444,14 +462,14 @@ int nas_eps_send_detach_accept(mme_ue_t *mme_ue)
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
if (rv != OGS_OK) {
ogs_error("nas_eps_send_to_downlink_nas_transport() failed");
return rv;
}
}
- rv = s1ap_send_ue_context_release_command(mme_ue->enb_ue,
+ rv = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_detach,
S1AP_UE_CTX_REL_S1_REMOVE_AND_UNLINK, 0);
ogs_expect(rv == OGS_OK);
@@ -463,18 +481,20 @@ int nas_eps_send_pdn_connectivity_reject(
mme_sess_t *sess, ogs_nas_esm_cause_t esm_cause, int create_action)
{
int rv;
- mme_ue_t *mme_ue;
+ mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *esmbuf = NULL;
ogs_assert(sess);
- mme_ue = sess->mme_ue;
- if (!mme_ue_cycle(mme_ue)) {
+ mme_ue = mme_ue_find_by_id(sess->mme_ue_id);
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -482,14 +502,14 @@ int nas_eps_send_pdn_connectivity_reject(
if (create_action == OGS_GTP_CREATE_IN_ATTACH_REQUEST) {
/* During the UE-attach process, we'll send Attach-Reject
* with pyggybacking PDN-connectivity-Reject */
- rv = nas_eps_send_attach_reject(mme_ue,
+ rv = nas_eps_send_attach_reject(enb_ue, mme_ue,
OGS_NAS_EMM_CAUSE_ESM_FAILURE, esm_cause);
if (rv != OGS_OK) {
ogs_error("nas_eps_send_attach_reject() failed");
return rv;
}
- rv = s1ap_send_ue_context_release_command(mme_ue->enb_ue,
+ rv = s1ap_send_ue_context_release_command(enb_ue,
S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release,
S1AP_UE_CTX_REL_UE_CONTEXT_REMOVE, 0);
ogs_expect(rv == OGS_OK);
@@ -501,7 +521,7 @@ int nas_eps_send_pdn_connectivity_reject(
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, esmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, esmbuf);
ogs_expect(rv == OGS_OK);
}
@@ -512,17 +532,19 @@ int nas_eps_send_esm_information_request(mme_bearer_t *bearer)
{
int rv;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *esmbuf = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
- if (!mme_ue_cycle(mme_ue)) {
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -546,7 +568,7 @@ int nas_eps_send_esm_information_request(mme_bearer_t *bearer)
ogs_timer_start(bearer->t3489.timer,
mme_timer_cfg(MME_TIMER_T3489)->duration);
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, esmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, esmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -560,18 +582,20 @@ int nas_eps_send_activate_default_bearer_context_request(
ogs_pkbuf_t *esmbuf = NULL;
mme_sess_t *sess = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = mme_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- mme_ue = bearer->mme_ue;
- if (!mme_ue_cycle(mme_ue)) {
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -602,16 +626,18 @@ int nas_eps_send_activate_dedicated_bearer_context_request(
ogs_pkbuf_t *s1apbuf = NULL;
ogs_pkbuf_t *esmbuf = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
- if (!mme_ue_cycle(mme_ue)) {
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -657,16 +683,18 @@ int nas_eps_send_modify_bearer_context_request(
ogs_pkbuf_t *s1apbuf = NULL;
ogs_pkbuf_t *esmbuf = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
- if (!mme_ue_cycle(mme_ue)) {
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -688,7 +716,7 @@ int nas_eps_send_modify_bearer_context_request(
rv = nas_eps_send_to_enb(mme_ue, s1apbuf);
ogs_expect(rv == OGS_OK);
} else {
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, esmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, esmbuf);
ogs_expect(rv == OGS_OK);
}
@@ -701,16 +729,18 @@ int nas_eps_send_deactivate_bearer_context_request(mme_bearer_t *bearer)
ogs_pkbuf_t *s1apbuf = NULL;
ogs_pkbuf_t *esmbuf = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
ogs_assert(bearer);
- mme_ue = bearer->mme_ue;
- if (!mme_ue_cycle(mme_ue)) {
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -739,14 +769,16 @@ int nas_eps_send_bearer_resource_allocation_reject(
mme_ue_t *mme_ue, uint8_t pti, ogs_nas_esm_cause_t esm_cause)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *esmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -760,7 +792,7 @@ int nas_eps_send_bearer_resource_allocation_reject(
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, esmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, esmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -770,14 +802,16 @@ int nas_eps_send_bearer_resource_modification_reject(
mme_ue_t *mme_ue, uint8_t pti, ogs_nas_esm_cause_t esm_cause)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *esmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -791,7 +825,7 @@ int nas_eps_send_bearer_resource_modification_reject(
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, esmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, esmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -801,14 +835,16 @@ int nas_eps_send_tau_accept(
mme_ue_t *mme_ue, S1AP_ProcedureCode_t procedureCode)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -821,17 +857,15 @@ int nas_eps_send_tau_accept(
return OGS_ERROR;
}
- if (mme_ue->next.m_tmsi) {
- CLEAR_MME_UE_TIMER(mme_ue->t3450);
- mme_ue->t3450.pkbuf = ogs_pkbuf_copy(emmbuf);
- if (!mme_ue->t3450.pkbuf) {
- ogs_error("ogs_pkbuf_copy(mme_ue->t3450.pkbuf) failed");
- ogs_pkbuf_free(emmbuf);
- return OGS_ERROR;
- }
- ogs_timer_start(mme_ue->t3450.timer,
- mme_timer_cfg(MME_TIMER_T3450)->duration);
+ CLEAR_MME_UE_TIMER(mme_ue->t3450);
+ mme_ue->t3450.pkbuf = ogs_pkbuf_copy(emmbuf);
+ if (!mme_ue->t3450.pkbuf) {
+ ogs_error("ogs_pkbuf_copy(mme_ue->t3450.pkbuf) failed");
+ ogs_pkbuf_free(emmbuf);
+ return OGS_ERROR;
}
+ ogs_timer_start(mme_ue->t3450.timer,
+ mme_timer_cfg(MME_TIMER_T3450)->duration);
if (procedureCode == S1AP_ProcedureCode_id_InitialContextSetup) {
ogs_pkbuf_t *s1apbuf = NULL;
@@ -844,7 +878,7 @@ int nas_eps_send_tau_accept(
rv = nas_eps_send_to_enb(mme_ue, s1apbuf);
ogs_expect(rv == OGS_OK);
} else if (procedureCode == S1AP_ProcedureCode_id_downlinkNASTransport) {
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
} else
ogs_assert_if_reached();
@@ -852,17 +886,18 @@ int nas_eps_send_tau_accept(
return rv;
}
-int nas_eps_send_tau_reject(mme_ue_t *mme_ue, ogs_nas_emm_cause_t emm_cause)
+int nas_eps_send_tau_reject(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, ogs_nas_emm_cause_t emm_cause)
{
int rv;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -876,24 +911,24 @@ int nas_eps_send_tau_reject(mme_ue_t *mme_ue, ogs_nas_emm_cause_t emm_cause)
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
}
-int nas_eps_send_service_reject(mme_ue_t *mme_ue,
- ogs_nas_emm_cause_t emm_cause)
+int nas_eps_send_service_reject(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, ogs_nas_emm_cause_t emm_cause)
{
int rv;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -907,7 +942,7 @@ int nas_eps_send_service_reject(mme_ue_t *mme_ue,
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -916,14 +951,16 @@ int nas_eps_send_service_reject(mme_ue_t *mme_ue,
int nas_eps_send_cs_service_notification(mme_ue_t *mme_ue)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -936,7 +973,7 @@ int nas_eps_send_cs_service_notification(mme_ue_t *mme_ue)
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
@@ -946,14 +983,16 @@ int nas_eps_send_downlink_nas_transport(
mme_ue_t *mme_ue, uint8_t *buffer, uint8_t length)
{
int rv;
+ enb_ue_t *enb_ue = NULL;
ogs_pkbuf_t *emmbuf = NULL;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -969,7 +1008,7 @@ int nas_eps_send_downlink_nas_transport(
return OGS_ERROR;
}
- rv = nas_eps_send_to_downlink_nas_transport(mme_ue, emmbuf);
+ rv = nas_eps_send_to_downlink_nas_transport(enb_ue, emmbuf);
ogs_expect(rv == OGS_OK);
return rv;
diff --git a/src/mme/nas-path.h b/src/mme/nas-path.h
index 3e31834854..fc8de96b72 100644
--- a/src/mme/nas-path.h
+++ b/src/mme/nas-path.h
@@ -30,10 +30,10 @@ int nas_eps_send_to_enb(mme_ue_t *mme_ue, ogs_pkbuf_t *pkbuf);
int nas_eps_send_emm_to_esm(
mme_ue_t *mme_ue, ogs_nas_esm_message_container_t *esm_message_container);
int nas_eps_send_to_downlink_nas_transport(
- mme_ue_t *mme_ue, ogs_pkbuf_t *pkbuf);
+ enb_ue_t *enb_ue, ogs_pkbuf_t *pkbuf);
int nas_eps_send_attach_accept(mme_ue_t *mme_ue);
-int nas_eps_send_attach_reject(mme_ue_t *mme_ue,
+int nas_eps_send_attach_reject(enb_ue_t *enb_ue, mme_ue_t *mme_ue,
ogs_nas_emm_cause_t emm_cause, ogs_nas_esm_cause_t esm_cause);
int nas_eps_send_identity_request(mme_ue_t *mme_ue);
@@ -64,10 +64,11 @@ int nas_eps_send_bearer_resource_modification_reject(
int nas_eps_send_tau_accept(
mme_ue_t *mme_ue, S1AP_ProcedureCode_t procedureCode);
-int nas_eps_send_tau_reject(mme_ue_t *mme_ue, ogs_nas_esm_cause_t emm_cause);
+int nas_eps_send_tau_reject(
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, ogs_nas_esm_cause_t emm_cause);
int nas_eps_send_service_reject(
- mme_ue_t *mme_ue, ogs_nas_emm_cause_t emm_cause);
+ enb_ue_t *enb_ue, mme_ue_t *mme_ue, ogs_nas_emm_cause_t emm_cause);
int nas_eps_send_cs_service_notification(mme_ue_t *mme_ue);
int nas_eps_send_downlink_nas_transport(
diff --git a/src/mme/nas-security.c b/src/mme/nas-security.c
index 498dd8d6b0..c60eda2f8f 100644
--- a/src/mme/nas-security.c
+++ b/src/mme/nas-security.c
@@ -223,6 +223,10 @@ int nas_eps_security_decode(mme_ue_t *mme_ue,
if (security_header_type.ciphered) {
/* decrypt NAS message */
+ if (pkbuf->len == 0) {
+ ogs_error("Cannot decrypt Malformed NAS Message");
+ return OGS_ERROR;
+ }
ogs_nas_encrypt(mme_ue->selected_enc_algorithm,
mme_ue->knas_enc, mme_ue->ul_count.i32, NAS_SECURITY_BEARER,
OGS_NAS_SECURITY_UPLINK_DIRECTION, pkbuf);
diff --git a/src/mme/s1ap-build.c b/src/mme/s1ap-build.c
index 3c336968e6..012cf716f9 100644
--- a/src/mme/s1ap-build.c
+++ b/src/mme/s1ap-build.c
@@ -283,7 +283,6 @@ ogs_pkbuf_t *s1ap_build_downlink_nas_transport(
S1AP_NAS_PDU_t *NAS_PDU = NULL;
ogs_assert(emmbuf);
- enb_ue = enb_ue_cycle(enb_ue);
ogs_assert(enb_ue);
ogs_debug("DownlinkNASTransport");
@@ -343,11 +342,72 @@ ogs_pkbuf_t *s1ap_build_downlink_nas_transport(
return ogs_s1ap_encode(&pdu);
}
-ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
- mme_ue_t *mme_ue, ogs_pkbuf_t *emmbuf)
+static void fill_e_rab_to_be_setup(
+ S1AP_E_RABToBeSetupItemCtxtSUReq_t *e_rab, mme_bearer_t *bearer)
{
int rv;
+ S1AP_GBR_QosInformation_t *gbrQosInformation = NULL;
+
+ ogs_assert(e_rab);
+ ogs_assert(bearer);
+
+ e_rab->e_RAB_ID = bearer->ebi;
+ e_rab->e_RABlevelQoSParameters.qCI = bearer->qos.index;
+
+ ogs_debug(" EBI[%d] QCI[%d] SGW-S1U-TEID[%d]",
+ bearer->ebi, bearer->qos.index, bearer->sgw_s1u_teid);
+ ogs_debug(" ARP[%d:%d:%d]",
+ bearer->qos.arp.priority_level,
+ bearer->qos.arp.pre_emption_capability,
+ bearer->qos.arp.pre_emption_vulnerability);
+
+ e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
+ priorityLevel = bearer->qos.arp.priority_level;
+ e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
+ pre_emptionCapability =
+ !(bearer->qos.arp.pre_emption_capability);
+ e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
+ pre_emptionVulnerability =
+ !(bearer->qos.arp.pre_emption_vulnerability);
+
+ if (bearer->qos.mbr.downlink || bearer->qos.mbr.uplink ||
+ bearer->qos.gbr.downlink || bearer->qos.gbr.uplink) {
+ ogs_assert(bearer->qos.mbr.downlink);
+ ogs_assert(bearer->qos.mbr.uplink);
+ ogs_assert(bearer->qos.gbr.downlink);
+ ogs_assert(bearer->qos.gbr.uplink);
+
+ ogs_debug(" MBR[DL:%lld,UL:%lld]",
+ (long long)bearer->qos.mbr.downlink,
+ (long long)bearer->qos.mbr.uplink);
+ ogs_debug(" GBR[DL:%lld,UL:%lld]",
+ (long long)bearer->qos.gbr.downlink,
+ (long long)bearer->qos.gbr.uplink);
+
+ gbrQosInformation =
+ CALLOC(1, sizeof(struct S1AP_GBR_QosInformation));
+ asn_uint642INTEGER(&gbrQosInformation->e_RAB_MaximumBitrateDL,
+ bearer->qos.mbr.downlink);
+ asn_uint642INTEGER(&gbrQosInformation->e_RAB_MaximumBitrateUL,
+ bearer->qos.mbr.uplink);
+ asn_uint642INTEGER(&gbrQosInformation->
+ e_RAB_GuaranteedBitrateDL, bearer->qos.gbr.downlink);
+ asn_uint642INTEGER(&gbrQosInformation->
+ e_RAB_GuaranteedBitrateUL, bearer->qos.gbr.uplink);
+ e_rab->e_RABlevelQoSParameters.gbrQosInformation =
+ gbrQosInformation;
+ }
+ rv = ogs_asn_ip_to_BIT_STRING(
+ &bearer->sgw_s1u_ip, &e_rab->transportLayerAddress);
+ ogs_assert(rv == OGS_OK);
+ ogs_asn_uint32_to_OCTET_STRING(
+ bearer->sgw_s1u_teid, &e_rab->gTP_TEID);
+}
+
+ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
+ mme_ue_t *mme_ue, ogs_pkbuf_t *emmbuf)
+{
S1AP_S1AP_PDU_t pdu;
S1AP_InitiatingMessage_t *initiatingMessage = NULL;
S1AP_InitialContextSetupRequest_t *InitialContextSetupRequest = NULL;
@@ -366,9 +426,8 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
mme_sess_t *sess = NULL;
mme_bearer_t *bearer = NULL;
- mme_ue = mme_ue_cycle(mme_ue);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
ogs_debug("InitialContextSetupRequest");
@@ -443,50 +502,26 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
&UEAggregateMaximumBitrate->uEaggregateMaximumBitRateDL,
mme_ue->ambr.downlink);
- ogs_list_for_each(&mme_ue->sess_list, sess) {
- ogs_list_for_each(&sess->bearer_list, bearer) {
-
- S1AP_E_RABToBeSetupItemCtxtSUReqIEs_t *item = NULL;
- S1AP_E_RABToBeSetupItemCtxtSUReq_t *e_rab = NULL;
- S1AP_GBR_QosInformation_t *gbrQosInformation = NULL;
- S1AP_NAS_PDU_t *nasPdu = NULL;
-
- if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
- /*
- * For Attach Request,
- * Delete Session Request/Response removes ALL session/bearers.
- *
- * Since all bearers are INACTIVE,
- * we should not check the bearer activation.
- */
- } else if (OGS_FSM_CHECK(&bearer->sm, esm_state_inactive)) {
- /*
- * For Service Request/TAU Request/Extended Service Request,
- * Only the active EPS bearer can be included.
- *
- * If MME received Create Bearer Request and
- * if MME does not receive Activate EPS Bearer Context Accept,
- * We should not include the INACTIVE bearer.
- *
- * For example,
- * 1. SGW->MME : Create Bearer Request
- * 2. MME->UE : S1 Paging
- * 3. UE->MME : Service Request
- * 4. MME->UE : Initial Context Setup Request
- * (We should not include INACTIVE BEARER)
- * 5. UE->MME : Initial Context Setup Response
- * 6. MME->UE : Activate dedicated EPS Bearer Context Request
- * 7. UE->MME : Activate dedicated EPS Bearer Context Accept
- * 8. MME->SGW : Create Bearer Response
- */
- ogs_warn("No active EPS bearer [%d]", bearer->ebi);
- ogs_warn(" IMSI[%s] NAS-EPS Type[%d] "
- "ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
- mme_ue->imsi_bcd, mme_ue->nas_eps.type,
- enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
- continue;
- }
+ S1AP_E_RABToBeSetupItemCtxtSUReqIEs_t *item = NULL;
+ S1AP_E_RABToBeSetupItemCtxtSUReq_t *e_rab = NULL;
+ S1AP_NAS_PDU_t *nasPdu = NULL;
+ if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ /*
+ * For Attach Request,
+ * Delete Session Request/Response removes ALL session/bearers.
+ *
+ * Since all bearers are INACTIVE,
+ * we should not check the bearer activation.
+ */
+ sess = ogs_list_first(&mme_ue->sess_list);
+ /*
+ * Issue #3072 : Only first Bearer should be included.
+ */
+ if (sess)
+ bearer = ogs_list_first(&sess->bearer_list);
+
+ if (sess && bearer) {
item = CALLOC(1, sizeof(S1AP_E_RABToBeSetupItemCtxtSUReqIEs_t));
ASN_SEQUENCE_ADD(&E_RABToBeSetupListCtxtSUReq->list, item);
@@ -496,58 +531,7 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
e_rab = &item->value.choice.E_RABToBeSetupItemCtxtSUReq;
- e_rab->e_RAB_ID = bearer->ebi;
- e_rab->e_RABlevelQoSParameters.qCI = bearer->qos.index;
-
- ogs_debug(" EBI[%d] QCI[%d] SGW-S1U-TEID[%d]",
- bearer->ebi, bearer->qos.index, bearer->sgw_s1u_teid);
- ogs_debug(" ARP[%d:%d:%d]",
- bearer->qos.arp.priority_level,
- bearer->qos.arp.pre_emption_capability,
- bearer->qos.arp.pre_emption_vulnerability);
-
- e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
- priorityLevel = bearer->qos.arp.priority_level;
- e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
- pre_emptionCapability =
- !(bearer->qos.arp.pre_emption_capability);
- e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
- pre_emptionVulnerability =
- !(bearer->qos.arp.pre_emption_vulnerability);
-
- if (bearer->qos.mbr.downlink || bearer->qos.mbr.uplink ||
- bearer->qos.gbr.downlink || bearer->qos.gbr.uplink) {
- ogs_assert(bearer->qos.mbr.downlink);
- ogs_assert(bearer->qos.mbr.uplink);
- ogs_assert(bearer->qos.gbr.downlink);
- ogs_assert(bearer->qos.gbr.uplink);
-
- ogs_debug(" MBR[DL:%lld,UL:%lld]",
- (long long)bearer->qos.mbr.downlink,
- (long long)bearer->qos.mbr.uplink);
- ogs_debug(" GBR[DL:%lld,UL:%lld]",
- (long long)bearer->qos.gbr.downlink,
- (long long)bearer->qos.gbr.uplink);
-
- gbrQosInformation =
- CALLOC(1, sizeof(struct S1AP_GBR_QosInformation));
- asn_uint642INTEGER(&gbrQosInformation->e_RAB_MaximumBitrateDL,
- bearer->qos.mbr.downlink);
- asn_uint642INTEGER(&gbrQosInformation->e_RAB_MaximumBitrateUL,
- bearer->qos.mbr.uplink);
- asn_uint642INTEGER(&gbrQosInformation->
- e_RAB_GuaranteedBitrateDL, bearer->qos.gbr.downlink);
- asn_uint642INTEGER(&gbrQosInformation->
- e_RAB_GuaranteedBitrateUL, bearer->qos.gbr.uplink);
- e_rab->e_RABlevelQoSParameters.gbrQosInformation =
- gbrQosInformation;
- }
-
- rv = ogs_asn_ip_to_BIT_STRING(
- &bearer->sgw_s1u_ip, &e_rab->transportLayerAddress);
- ogs_assert(rv == OGS_OK);
- ogs_asn_uint32_to_OCTET_STRING(
- bearer->sgw_s1u_teid, &e_rab->gTP_TEID);
+ fill_e_rab_to_be_setup(e_rab, bearer);
if (emmbuf && emmbuf->len) {
ogs_debug(" NASPdu[%p:%d]", emmbuf, emmbuf->len);
@@ -566,6 +550,66 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
emmbuf = NULL;
}
}
+ } else {
+ /*
+ * For Service Request/TAU Request/Extended Service Request,
+ * Only the active EPS bearer can be included.
+ *
+ * If MME received Create Bearer Request and
+ * if MME does not receive Activate EPS Bearer Context Accept,
+ * We should not include the INACTIVE bearer.
+ *
+ * For example,
+ * 1. SGW->MME : Create Bearer Request
+ * 2. MME->UE : S1 Paging
+ * 3. UE->MME : Service Request
+ * 4. MME->UE : Initial Context Setup Request
+ * (We should not include INACTIVE BEARER)
+ * 5. UE->MME : Initial Context Setup Response
+ * 6. MME->UE : Activate dedicated EPS Bearer Context Request
+ * 7. UE->MME : Activate dedicated EPS Bearer Context Accept
+ * 8. MME->SGW : Create Bearer Response
+ */
+ ogs_list_for_each(&mme_ue->sess_list, sess) {
+ ogs_list_for_each(&sess->bearer_list, bearer) {
+ if (OGS_FSM_CHECK(&bearer->sm, esm_state_inactive)) {
+ ogs_warn("No active EPS bearer [%d]", bearer->ebi);
+ ogs_warn(" IMSI[%s] NAS-EPS Type[%d] "
+ "ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
+ mme_ue->imsi_bcd, mme_ue->nas_eps.type,
+ enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
+ continue;
+ }
+
+ item = CALLOC(1, sizeof(S1AP_E_RABToBeSetupItemCtxtSUReqIEs_t));
+ ASN_SEQUENCE_ADD(&E_RABToBeSetupListCtxtSUReq->list, item);
+
+ item->id = S1AP_ProtocolIE_ID_id_E_RABToBeSetupItemCtxtSUReq;
+ item->criticality = S1AP_Criticality_reject;
+ item->value.present = S1AP_E_RABToBeSetupItemCtxtSUReqIEs__value_PR_E_RABToBeSetupItemCtxtSUReq;
+
+ e_rab = &item->value.choice.E_RABToBeSetupItemCtxtSUReq;
+
+ fill_e_rab_to_be_setup(e_rab, bearer);
+
+ if (emmbuf && emmbuf->len) {
+ ogs_debug(" NASPdu[%p:%d]", emmbuf, emmbuf->len);
+
+ nasPdu = (S1AP_NAS_PDU_t *)CALLOC(1, sizeof(S1AP_NAS_PDU_t));
+ nasPdu->size = emmbuf->len;
+ nasPdu->buf = CALLOC(nasPdu->size, sizeof(uint8_t));
+ memcpy(nasPdu->buf, emmbuf->data, nasPdu->size);
+ e_rab->nAS_PDU = nasPdu;
+ ogs_pkbuf_free(emmbuf);
+
+ ogs_log_hexdump(OGS_LOG_DEBUG, nasPdu->buf, nasPdu->size);
+
+ /* Since Tracking area update accept is used only once,
+ * set emmbuf to NULL as shown below */
+ emmbuf = NULL;
+ }
+ }
+ }
}
if (emmbuf && emmbuf->len) {
@@ -574,7 +618,24 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
emmbuf = NULL;
}
- ogs_assert(E_RABToBeSetupListCtxtSUReq->list.count);
+ if (!E_RABToBeSetupListCtxtSUReq->list.count) {
+ ogs_list_for_each(&mme_ue->sess_list, sess) {
+ ogs_error(" APN[%s]",
+ sess->session ? sess->session->name : "Unknown");
+ ogs_list_for_each(&sess->bearer_list, bearer) {
+ if (OGS_FSM_CHECK(&bearer->sm, esm_state_inactive))
+ ogs_error(" IN-ACTIVE");
+ else if (OGS_FSM_CHECK(&bearer->sm, esm_state_active))
+ ogs_error(" ACTIVE");
+ else
+ ogs_error(" OTHER STATE");
+
+ ogs_error(" EBI[%d] QCI[%d] SGW-S1U-TEID[%d]",
+ bearer->ebi, bearer->qos.index, bearer->sgw_s1u_teid);
+ }
+ }
+ return NULL;
+ }
ie = CALLOC(1, sizeof(S1AP_InitialContextSetupRequestIEs_t));
ASN_SEQUENCE_ADD(&InitialContextSetupRequest->protocolIEs, ie);
@@ -631,7 +692,7 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
ogs_log_hexdump(OGS_LOG_DEBUG, SecurityKey->buf, SecurityKey->size);
if (mme_ue->nas_eps.type == MME_EPS_TYPE_EXTENDED_SERVICE_REQUEST &&
- MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
/* Set CS-Fallback */
S1AP_CSFallbackIndicator_t *CSFallbackIndicator = NULL;
@@ -666,7 +727,7 @@ ogs_pkbuf_t *s1ap_build_initial_context_setup_request(
ogs_s1ap_buffer_to_OCTET_STRING(
&mme_ue->tai.plmn_id, sizeof(ogs_plmn_id_t), &LAI->pLMNidentity);
ogs_assert(mme_ue->csmap);
- ogs_assert(mme_ue->p_tmsi);
+ ogs_assert(mme_ue->current.p_tmsi);
ogs_asn_uint16_to_OCTET_STRING(mme_ue->csmap->lai.lac, &LAI->lAC);
}
@@ -783,9 +844,8 @@ ogs_pkbuf_t *s1ap_build_ue_context_modification_request(mme_ue_t *mme_ue)
enb_ue_t *enb_ue = NULL;
- mme_ue = mme_ue_cycle(mme_ue);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
ogs_debug("UEContextModificationRequest");
@@ -831,7 +891,7 @@ ogs_pkbuf_t *s1ap_build_ue_context_modification_request(mme_ue_t *mme_ue)
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
if (mme_ue->nas_eps.type == MME_EPS_TYPE_EXTENDED_SERVICE_REQUEST &&
- MME_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) {
ie = CALLOC(1, sizeof(S1AP_UEContextModificationRequestIEs_t));
ASN_SEQUENCE_ADD(&UEContextModificationRequest->protocolIEs, ie);
@@ -859,7 +919,7 @@ ogs_pkbuf_t *s1ap_build_ue_context_modification_request(mme_ue_t *mme_ue)
ogs_s1ap_buffer_to_OCTET_STRING(
&mme_ue->tai.plmn_id, sizeof(ogs_plmn_id_t), &LAI->pLMNidentity);
ogs_assert(mme_ue->csmap);
- ogs_assert(mme_ue->p_tmsi);
+ ogs_assert(mme_ue->current.p_tmsi);
ogs_asn_uint16_to_OCTET_STRING(mme_ue->csmap->lai.lac, &LAI->lAC);
} else {
@@ -919,7 +979,6 @@ ogs_pkbuf_t *s1ap_build_ue_context_release_command(
S1AP_UE_S1AP_IDs_t *UE_S1AP_IDs = NULL;
S1AP_Cause_t *Cause = NULL;
- enb_ue = enb_ue_cycle(enb_ue);
ogs_assert(enb_ue);
if (enb_ue->mme_ue_s1ap_id == 0) {
@@ -1005,9 +1064,9 @@ ogs_pkbuf_t *s1ap_build_e_rab_setup_request(
ogs_assert(esmbuf);
ogs_assert(bearer);
- mme_ue = mme_ue_cycle(bearer->mme_ue);
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
ogs_debug("E-RABSetupRequest");
@@ -1138,9 +1197,9 @@ ogs_pkbuf_t *s1ap_build_e_rab_modify_request(
ogs_assert(esmbuf);
ogs_assert(bearer);
- mme_ue = mme_ue_cycle(bearer->mme_ue);
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
ogs_debug("E-RABModifyRequest");
@@ -1266,9 +1325,9 @@ ogs_pkbuf_t *s1ap_build_e_rab_release_command(
ogs_assert(esmbuf);
ogs_assert(bearer);
- mme_ue = mme_ue_cycle(bearer->mme_ue);
+ mme_ue = mme_ue_find_by_id(bearer->mme_ue_id);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
ogs_debug("E-RABReleaseCommand");
@@ -1387,9 +1446,8 @@ ogs_pkbuf_t *s1ap_build_e_rab_modification_confirm(mme_ue_t *mme_ue)
mme_sess_t *sess = NULL;
mme_bearer_t *bearer = NULL;
- mme_ue = mme_ue_cycle(mme_ue);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
ogs_debug("E-RABModificationConfirm");
@@ -1489,7 +1547,6 @@ ogs_pkbuf_t *s1ap_build_paging(
uint64_t ue_imsi_value = 0;
int i = 0;
- mme_ue = mme_ue_cycle(mme_ue);
ogs_assert(mme_ue);
ogs_debug("Paging");
@@ -1712,9 +1769,8 @@ ogs_pkbuf_t *s1ap_build_path_switch_ack(
mme_bearer_t *bearer = NULL;
enb_ue_t *enb_ue = NULL;
- mme_ue = mme_ue_cycle(mme_ue);
ogs_assert(mme_ue);
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
ogs_assert(enb_ue);
ogs_debug("PathSwitchAcknowledge");
@@ -1909,9 +1965,8 @@ ogs_pkbuf_t *s1ap_build_handover_command(enb_ue_t *source_ue)
mme_sess_t *sess = NULL;
mme_bearer_t *bearer = NULL;
- source_ue = enb_ue_cycle(source_ue);
ogs_assert(source_ue);
- mme_ue = mme_ue_cycle(source_ue->mme_ue);
+ mme_ue = mme_ue_find_by_id(source_ue->mme_ue_id);
ogs_assert(mme_ue);
ogs_debug("HandoverCommand");
@@ -2068,7 +2123,6 @@ ogs_pkbuf_t *s1ap_build_handover_preparation_failure(
S1AP_ENB_UE_S1AP_ID_t *ENB_UE_S1AP_ID = NULL;
S1AP_Cause_t *Cause = NULL;
- source_ue = enb_ue_cycle(source_ue);
ogs_assert(source_ue);
ogs_assert(group);
@@ -2161,9 +2215,8 @@ ogs_pkbuf_t *s1ap_build_handover_request(
ogs_assert(cause);
ogs_assert(source_totarget_transparentContainer);
- target_ue = enb_ue_cycle(target_ue);
ogs_assert(target_ue);
- mme_ue = mme_ue_cycle(target_ue->mme_ue);
+ mme_ue = mme_ue_find_by_id(target_ue->mme_ue_id);
ogs_assert(mme_ue);
ogs_debug("HandoverRequest");
@@ -2396,7 +2449,6 @@ ogs_pkbuf_t *s1ap_build_handover_cancel_ack(enb_ue_t *source_ue)
S1AP_MME_UE_S1AP_ID_t *MME_UE_S1AP_ID = NULL;
S1AP_ENB_UE_S1AP_ID_t *ENB_UE_S1AP_ID = NULL;
- source_ue = enb_ue_cycle(source_ue);
ogs_assert(source_ue);
ogs_debug("HandoverCancelAcknowledge");
@@ -2460,7 +2512,6 @@ ogs_pkbuf_t *s1ap_build_mme_status_transfer(
S1AP_ENB_StatusTransfer_TransparentContainer_t
*ENB_StatusTransfer_TransparentContainer = NULL;
- target_ue = enb_ue_cycle(target_ue);
ogs_assert(target_ue);
ogs_assert(enb_statustransfer_transparentContainer);
diff --git a/src/mme/s1ap-handler.c b/src/mme/s1ap-handler.c
index 2c0b58f934..aa5f967ce3 100644
--- a/src/mme/s1ap-handler.c
+++ b/src/mme/s1ap-handler.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -50,12 +50,17 @@ static bool maximum_number_of_enbs_is_reached(void)
static bool enb_plmn_id_is_foreign(mme_enb_t *enb)
{
- int i;
-
- for (i = 0; i < enb->num_of_supported_ta_list; i++) {
- if (memcmp(&enb->plmn_id, &enb->supported_ta_list[i].plmn_id,
- OGS_PLMN_ID_LEN) == 0)
- return false;
+ int i, j, k;
+
+ for (i = 0; i < mme_self()->num_of_served_gummei; i++) {
+ for (j = 0; j < mme_self()->served_gummei[i].num_of_plmn_id; j++) {
+ for (k = 0; k < enb->num_of_supported_ta_list; k++) {
+ if (memcmp(&mme_self()->served_gummei[i].plmn_id[j],
+ &enb->supported_ta_list[k].plmn_id,
+ OGS_PLMN_ID_LEN) == 0)
+ return false;
+ }
+ }
}
return true;
@@ -178,6 +183,16 @@ void s1ap_handle_s1_setup_request(mme_enb_t *enb, ogs_s1ap_message_t *message)
SupportedTAs_Item->broadcastPLMNs.list.array[j];
ogs_assert(pLMNidentity);
+ if (enb->num_of_supported_ta_list >=
+ OGS_ARRAY_SIZE(enb->supported_ta_list)) {
+ ogs_error("OVERFLOW ENB->num_of_supported_ta_list "
+ "[%d:%d:%d]",
+ enb->num_of_supported_ta_list,
+ OGS_MAX_NUM_OF_SUPPORTED_TA,
+ (int)OGS_ARRAY_SIZE(enb->supported_ta_list));
+ break;
+ }
+
memcpy(&enb->supported_ta_list[enb->num_of_supported_ta_list].tac,
tAC->buf, sizeof(uint16_t));
enb->supported_ta_list[enb->num_of_supported_ta_list].tac =
@@ -310,6 +325,16 @@ void s1ap_handle_enb_configuration_update(
SupportedTAs_Item->broadcastPLMNs.list.array[j];
ogs_assert(pLMNidentity);
+ if (enb->num_of_supported_ta_list >=
+ OGS_ARRAY_SIZE(enb->supported_ta_list)) {
+ ogs_error("OVERFLOW ENB->num_of_supported_ta_list "
+ "[%d:%d:%d]",
+ enb->num_of_supported_ta_list,
+ OGS_MAX_NUM_OF_SUPPORTED_TA,
+ (int)OGS_ARRAY_SIZE(enb->supported_ta_list));
+ break;
+ }
+
memcpy(&enb->supported_ta_list[
enb->num_of_supported_ta_list].tac,
tAC->buf, sizeof(uint16_t));
@@ -404,7 +429,6 @@ void s1ap_handle_initial_ue_message(mme_enb_t *enb, ogs_s1ap_message_t *message)
ogs_assert(InitialUEMessage);
ogs_info("InitialUEMessage");
- MME_UE_LIST_CHECK;
for (i = 0; i < InitialUEMessage->protocolIEs.list.count; i++) {
ie = InitialUEMessage->protocolIEs.list.array[i];
@@ -522,15 +546,16 @@ void s1ap_handle_initial_ue_message(mme_enb_t *enb, ogs_s1ap_message_t *message)
}
}
} else {
+ mme_ue_t *mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
ogs_error("Known UE ENB_UE_S1AP_ID[%d] [%p:%p]",
- (int)*ENB_UE_S1AP_ID, enb_ue, enb_ue->mme_ue);
- if (enb_ue->mme_ue)
+ (int)*ENB_UE_S1AP_ID, enb_ue, mme_ue);
+ if (mme_ue) {
ogs_error(" S_TMSI[G:%d,C:%d,M_TMSI:0x%x] IMSI:[%s]",
- enb_ue->mme_ue->current.guti.mme_gid,
- enb_ue->mme_ue->current.guti.mme_code,
- enb_ue->mme_ue->current.guti.m_tmsi,
- MME_UE_HAVE_IMSI(enb_ue->mme_ue)
- ? enb_ue->mme_ue->imsi_bcd : "Unknown");
+ mme_ue->current.guti.mme_gid,
+ mme_ue->current.guti.mme_code,
+ mme_ue->current.guti.m_tmsi,
+ MME_UE_HAVE_IMSI(mme_ue) ? mme_ue->imsi_bcd : "Unknown");
+ }
}
if (!NAS_PDU) {
@@ -564,7 +589,6 @@ void s1ap_handle_initial_ue_message(mme_enb_t *enb, ogs_s1ap_message_t *message)
ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
tAC = &TAI->tAC;
ogs_assert(tAC && tAC->size == sizeof(uint16_t));
-
memcpy(&enb_ue->saved.tai.plmn_id, pLMNidentity->buf,
sizeof(enb_ue->saved.tai.plmn_id));
memcpy(&enb_ue->saved.tai.tac, tAC->buf, sizeof(enb_ue->saved.tai.tac));
@@ -584,10 +608,8 @@ void s1ap_handle_initial_ue_message(mme_enb_t *enb, ogs_s1ap_message_t *message)
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id,
enb_ue->saved.tai.tac, enb_ue->saved.e_cgi.cell_id);
- r = s1ap_send_to_nas(enb_ue,
- S1AP_ProcedureCode_id_initialUEMessage, NAS_PDU);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ ogs_expect(OGS_OK == s1ap_send_to_nas(
+ enb_ue, S1AP_ProcedureCode_id_initialUEMessage, NAS_PDU));
}
void s1ap_handle_uplink_nas_transport(
@@ -611,6 +633,7 @@ void s1ap_handle_uplink_nas_transport(
S1AP_CellIdentity_t *cell_ID = NULL;
enb_ue_t *enb_ue = NULL;
+ mme_ue_t *mme_ue = NULL;
ogs_eps_tai_t tai;
int served_tai_index = 0;
@@ -625,7 +648,6 @@ void s1ap_handle_uplink_nas_transport(
ogs_assert(UplinkNASTransport);
ogs_debug("UplinkNASTransport");
- MME_UE_LIST_CHECK;
for (i = 0; i < UplinkNASTransport->protocolIEs.list.count; i++) {
ie = UplinkNASTransport->protocolIEs.list.array[i];
@@ -726,7 +748,6 @@ void s1ap_handle_uplink_nas_transport(
ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
tAC = &TAI->tAC;
ogs_assert(tAC && tAC->size == sizeof(uint16_t));
-
memcpy(&tai.plmn_id, pLMNidentity->buf, sizeof(tai.plmn_id));
memcpy(&tai.tac, tAC->buf, sizeof(tai.tac));
tai.tac = be16toh(tai.tac);
@@ -755,6 +776,10 @@ void s1ap_handle_uplink_nas_transport(
sizeof(enb_ue->saved.e_cgi.cell_id));
enb_ue->saved.e_cgi.cell_id = (be32toh(enb_ue->saved.e_cgi.cell_id) >> 4);
+ pLMNidentity = &TAI->pLMNidentity;
+ ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
+ tAC = &TAI->tAC;
+ ogs_assert(tAC && tAC->size == sizeof(uint16_t));
memcpy(&enb_ue->saved.tai.plmn_id, pLMNidentity->buf,
sizeof(enb_ue->saved.tai.plmn_id));
memcpy(&enb_ue->saved.tai.tac, tAC->buf, sizeof(enb_ue->saved.tai.tac));
@@ -765,9 +790,8 @@ void s1ap_handle_uplink_nas_transport(
enb_ue->saved.tai.tac, enb_ue->saved.e_cgi.cell_id);
/* Copy Stream-No/TAI/ECGI from enb_ue */
- if (enb_ue->mme_ue) {
- mme_ue_t *mme_ue = enb_ue->mme_ue;
-
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
+ if (mme_ue) {
memcpy(&mme_ue->tai, &enb_ue->saved.tai, sizeof(ogs_eps_tai_t));
memcpy(&mme_ue->e_cgi, &enb_ue->saved.e_cgi, sizeof(ogs_e_cgi_t));
mme_ue->ue_location_timestamp = ogs_time_now();
@@ -775,10 +799,8 @@ void s1ap_handle_uplink_nas_transport(
ogs_error("No UE Context in UplinkNASTransport");
}
- r = s1ap_send_to_nas(enb_ue,
- S1AP_ProcedureCode_id_uplinkNASTransport, NAS_PDU);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ ogs_expect(OGS_OK == s1ap_send_to_nas(
+ enb_ue, S1AP_ProcedureCode_id_uplinkNASTransport, NAS_PDU));
}
void s1ap_handle_ue_capability_info_indication(
@@ -796,6 +818,7 @@ void s1ap_handle_ue_capability_info_indication(
S1AP_UERadioCapability_t *UERadioCapability = NULL;
enb_ue_t *enb_ue = NULL;
+ mme_ue_t *mme_ue = NULL;
ogs_assert(enb);
ogs_assert(enb->sctp.sock);
@@ -808,7 +831,6 @@ void s1ap_handle_ue_capability_info_indication(
ogs_assert(UECapabilityInfoIndication);
ogs_debug("UECapabilityInfoIndication");
- MME_UE_LIST_CHECK;
for (i = 0; i < UECapabilityInfoIndication->protocolIEs.list.count; i++) {
ie = UECapabilityInfoIndication->protocolIEs.list.array[i];
@@ -872,10 +894,10 @@ void s1ap_handle_ue_capability_info_indication(
ogs_debug(" ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
- if (enb_ue->mme_ue) {
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
+ if (mme_ue) {
ogs_assert(UERadioCapability);
- OGS_ASN_STORE_DATA(&enb_ue->mme_ue->ueRadioCapability,
- UERadioCapability);
+ OGS_ASN_STORE_DATA(&mme_ue->ueRadioCapability, UERadioCapability);
}
}
@@ -907,7 +929,6 @@ void s1ap_handle_initial_context_setup_response(
ogs_assert(InitialContextSetupResponse);
ogs_debug("InitialContextSetupResponse");
- MME_UE_LIST_CHECK;
for (i = 0; i < InitialContextSetupResponse->protocolIEs.list.count; i++) {
ie = InitialContextSetupResponse->protocolIEs.list.array[i];
@@ -972,7 +993,7 @@ void s1ap_handle_initial_context_setup_response(
ogs_debug(" ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -1059,7 +1080,8 @@ void s1ap_handle_initial_context_setup_response(
if (ogs_list_count(&mme_ue->bearer_to_modify_list)) {
ogs_assert(OGS_OK ==
- mme_gtp_send_modify_bearer_request(mme_ue, uli_presence, 0));
+ mme_gtp_send_modify_bearer_request(
+ enb_ue, mme_ue, uli_presence, 0));
}
}
@@ -1170,7 +1192,7 @@ void s1ap_handle_initial_context_setup_failure(
ogs_debug(" Cause[Group:%d Cause:%d]",
Cause->present, (int)Cause->choice.radioNetwork);
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (mme_ue) {
/*
@@ -1181,6 +1203,9 @@ void s1ap_handle_initial_context_setup_failure(
CLEAR_MME_UE_ALL_TIMERS(mme_ue);
}
+ enb_ue->relcause.group = S1AP_Cause_PR_nas;
+ enb_ue->relcause.cause = S1AP_CauseNas_normal_release;
+
/*
* 19.2.2.3 in Spec 36.300
*
@@ -1282,7 +1307,7 @@ void s1ap_handle_ue_context_modification_response(
ogs_debug(" ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -1394,7 +1419,7 @@ void s1ap_handle_ue_context_modification_failure(
ogs_debug(" Cause[Group:%d Cause:%d]",
Cause->present, (int)Cause->choice.radioNetwork);
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -1504,7 +1529,7 @@ void s1ap_handle_e_rab_setup_response(
ogs_debug(" ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -1579,7 +1604,8 @@ void s1ap_handle_e_rab_setup_response(
ogs_list_add(&mme_ue->bearer_to_modify_list,
&bearer->to_modify_node);
ogs_assert(OGS_OK ==
- mme_gtp_send_modify_bearer_request(mme_ue, 0, 0));
+ mme_gtp_send_modify_bearer_request(
+ enb_ue, mme_ue, 0, 0));
} else {
ogs_assert(OGS_OK ==
mme_gtp_send_create_bearer_response(
@@ -1741,10 +1767,16 @@ void s1ap_handle_ue_context_release_request(
ogs_warn("NAS-Cause[%d]", (int)Cause->choice.nas);
break;
default:
- ogs_warn("Invalid cause group[%d]", Cause->present);
- break;
+ ogs_error("Invalid cause group[%d]", Cause->present);
+ r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, ENB_UE_S1AP_ID,
+ S1AP_Cause_PR_protocol, S1AP_CauseProtocol_semantic_error);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ return;
}
+ enb_ue->relcause.group = Cause->present;
+ enb_ue->relcause.cause = (int)Cause->choice.radioNetwork;
mme_send_release_access_bearer_or_ue_context_release(enb_ue);
}
@@ -1839,18 +1871,16 @@ void s1ap_handle_ue_context_release_action(enb_ue_t *enb_ue)
int r;
mme_ue_t *mme_ue = NULL;
- ogs_assert(enb_ue);
-
- if (enb_ue_cycle(enb_ue) == NULL) {
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return;
}
- mme_ue = enb_ue->mme_ue;
-
ogs_info("UE Context Release [Action:%d]", enb_ue->ue_ctx_rel_action);
ogs_info(" ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
+
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (mme_ue) {
ogs_info(" IMSI[%s]", mme_ue->imsi_bcd);
@@ -1946,11 +1976,7 @@ void s1ap_handle_ue_context_release_action(enb_ue_t *enb_ue)
return;
}
- if (mme_ue->location_updated_but_not_canceled_yet == true) {
- mme_s6a_send_pur(mme_ue);
- } else {
- mme_ue_remove(mme_ue);
- }
+ mme_ue_remove(mme_ue);
break;
case S1AP_UE_CTX_REL_S1_HANDOVER_COMPLETE:
ogs_debug(" Action: S1 handover complete");
@@ -1962,10 +1988,15 @@ void s1ap_handle_ue_context_release_action(enb_ue_t *enb_ue)
ogs_error("No UE(mme-ue) context");
return;
}
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("No UE(target-enb-ue) context");
+ return;
+ }
if (mme_ue_have_indirect_tunnel(mme_ue) == true) {
ogs_assert(OGS_OK ==
mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
- mme_ue, OGS_GTP_DELETE_INDIRECT_HANDOVER_COMPLETE));
+ enb_ue, mme_ue, OGS_GTP_DELETE_INDIRECT_HANDOVER_COMPLETE));
} else {
ogs_warn("Check your eNodeB");
ogs_warn(" No INDIRECT TUNNEL");
@@ -1983,21 +2014,27 @@ void s1ap_handle_ue_context_release_action(enb_ue_t *enb_ue)
ogs_error("No UE(mme-ue) context");
return;
}
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("No UE(target-enb-ue) context");
+ return;
+ }
if (mme_ue_have_indirect_tunnel(mme_ue) == true) {
ogs_assert(OGS_OK ==
mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
- mme_ue, OGS_GTP_DELETE_INDIRECT_HANDOVER_CANCEL));
+ enb_ue, mme_ue, OGS_GTP_DELETE_INDIRECT_HANDOVER_CANCEL));
} else {
ogs_warn("Check your eNodeB");
ogs_warn(" No INDIRECT TUNNEL");
ogs_warn(" Packet could be dropped during S1-Handover");
mme_ue_clear_indirect_tunnel(mme_ue);
- if (!mme_ue->enb_ue) {
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
ogs_error("No S1 context");
return;
}
- r = s1ap_send_handover_cancel_ack(mme_ue->enb_ue);
+ r = s1ap_send_handover_cancel_ack(enb_ue);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
}
@@ -2065,7 +2102,6 @@ void s1ap_handle_e_rab_modification_indication(
ogs_assert(E_RABModificationIndication);
ogs_info("E_RABModificationIndication");
- MME_UE_LIST_CHECK;
for (i = 0; i < E_RABModificationIndication->protocolIEs.list.count; i++) {
ie = E_RABModificationIndication->protocolIEs.list.array[i];
@@ -2139,7 +2175,7 @@ void s1ap_handle_e_rab_modification_indication(
return;
}
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -2212,7 +2248,7 @@ void s1ap_handle_e_rab_modification_indication(
if (ogs_list_count(&mme_ue->bearer_to_modify_list)) {
ogs_assert(OGS_OK == mme_gtp_send_modify_bearer_request(
- mme_ue, 0, OGS_GTP_MODIFY_IN_E_RAB_MODIFICATION));
+ enb_ue, mme_ue, 0, OGS_GTP_MODIFY_IN_E_RAB_MODIFICATION));
}
}
@@ -2255,6 +2291,10 @@ void s1ap_handle_enb_direct_information_transfer(
}
}
+ /* Clang scan-build SA: NULL pointer dereference: Inter_SystemInformationTransferType=NULL if above
+ * protocolIEs.list.count=0 in loop. */
+ ogs_assert(Inter_SystemInformationTransferType);
+
RIMTransfer = Inter_SystemInformationTransferType->choice.rIMTransfer;
RIMInformation = &RIMTransfer->rIMInformation;
@@ -2449,11 +2489,6 @@ void s1ap_handle_path_switch_request(
return;
}
- pLMNidentity = &EUTRAN_CGI->pLMNidentity;
- ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
- cell_ID = &EUTRAN_CGI->cell_ID;
- ogs_assert(cell_ID);
-
if (!TAI) {
ogs_error("No TAI");
r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, ENB_UE_S1AP_ID,
@@ -2467,7 +2502,6 @@ void s1ap_handle_path_switch_request(
ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
tAC = &TAI->tAC;
ogs_assert(tAC && tAC->size == sizeof(uint16_t));
-
memcpy(&tai.plmn_id, pLMNidentity->buf, sizeof(tai.plmn_id));
memcpy(&tai.tac, tAC->buf, sizeof(tai.tac));
tai.tac = be16toh(tai.tac);
@@ -2495,7 +2529,7 @@ void s1ap_handle_path_switch_request(
return;
}
- mme_ue = mme_ue_cycle(enb_ue->mme_ue);
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -2533,11 +2567,19 @@ void s1ap_handle_path_switch_request(
ogs_info(" NEW ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id);
+ pLMNidentity = &TAI->pLMNidentity;
+ ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
+ tAC = &TAI->tAC;
+ ogs_assert(tAC && tAC->size == sizeof(uint16_t));
memcpy(&enb_ue->saved.tai.plmn_id, pLMNidentity->buf,
sizeof(enb_ue->saved.tai.plmn_id));
memcpy(&enb_ue->saved.tai.tac, tAC->buf, sizeof(enb_ue->saved.tai.tac));
enb_ue->saved.tai.tac = be16toh(enb_ue->saved.tai.tac);
+ pLMNidentity = &EUTRAN_CGI->pLMNidentity;
+ ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
+ cell_ID = &EUTRAN_CGI->cell_ID;
+ ogs_assert(cell_ID);
memcpy(&enb_ue->saved.e_cgi.plmn_id, pLMNidentity->buf,
sizeof(enb_ue->saved.e_cgi.plmn_id));
memcpy(&enb_ue->saved.e_cgi.cell_id, cell_ID->buf,
@@ -2648,7 +2690,7 @@ void s1ap_handle_path_switch_request(
if (relocation == SGW_WITHOUT_RELOCATION) {
if (ogs_list_count(&mme_ue->bearer_to_modify_list)) {
ogs_assert(OGS_OK == mme_gtp_send_modify_bearer_request(
- mme_ue, 1, OGS_GTP_MODIFY_IN_PATH_SWITCH_REQUEST));
+ enb_ue, mme_ue, 1, OGS_GTP_MODIFY_IN_PATH_SWITCH_REQUEST));
}
} else if (relocation == SGW_WITH_RELOCATION) {
mme_sess_t *sess = NULL;
@@ -2659,7 +2701,7 @@ void s1ap_handle_path_switch_request(
ogs_assert(OGS_OK ==
mme_gtp_send_create_session_request(
- sess, OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST));
+ enb_ue, sess, OGS_GTP_CREATE_IN_PATH_SWITCH_REQUEST));
}
} else if (relocation == SGW_HAS_ALREADY_BEEN_RELOCATED) {
ogs_error("SGW has already been relocated");
@@ -2801,7 +2843,7 @@ static void s1ap_handle_handover_required_intralte(enb_ue_t *source_ue,
return;
}
- mme_ue = source_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(source_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -3097,7 +3139,7 @@ void s1ap_handle_handover_request_ack(
return;
}
- source_ue = target_ue->source_ue;
+ source_ue = enb_ue_find_by_id(target_ue->source_ue_id);
if (!source_ue) {
ogs_error("No Source UE");
r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, ENB_UE_S1AP_ID,
@@ -3107,7 +3149,7 @@ void s1ap_handle_handover_request_ack(
return;
}
- mme_ue = source_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(source_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -3219,8 +3261,8 @@ void s1ap_handle_handover_request_ack(
if (mme_ue_have_indirect_tunnel(mme_ue) == true) {
ogs_assert(OGS_OK ==
- mme_gtp_send_create_indirect_data_forwarding_tunnel_request(mme_ue)\
- );
+ mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
+ source_ue, mme_ue));
} else {
r = s1ap_send_handover_command(source_ue);
ogs_expect(r == OGS_OK);
@@ -3300,7 +3342,7 @@ void s1ap_handle_handover_failure(mme_enb_t *enb, ogs_s1ap_message_t *message)
return;
}
- source_ue = target_ue->source_ue;
+ source_ue = enb_ue_find_by_id(target_ue->source_ue_id);
if (!source_ue) {
ogs_error("No Source UE");
r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, NULL,
@@ -3422,7 +3464,7 @@ void s1ap_handle_handover_cancel(mme_enb_t *enb, ogs_s1ap_message_t *message)
return;
}
- target_ue = source_ue->target_ue;
+ target_ue = enb_ue_find_by_id(source_ue->target_ue_id);
if (!target_ue) {
ogs_error("No Target UE");
r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, ENB_UE_S1AP_ID,
@@ -3550,7 +3592,7 @@ void s1ap_handle_enb_status_transfer(
return;
}
- target_ue = source_ue->target_ue;
+ target_ue = enb_ue_find_by_id(source_ue->target_ue_id);
if (!target_ue) {
ogs_error("No Target UE");
r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, ENB_UE_S1AP_ID,
@@ -3677,11 +3719,6 @@ void s1ap_handle_handover_notification(
return;
}
- pLMNidentity = &EUTRAN_CGI->pLMNidentity;
- ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
- cell_ID = &EUTRAN_CGI->cell_ID;
- ogs_assert(cell_ID);
-
if (!TAI) {
ogs_error("No TAI");
r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, ENB_UE_S1AP_ID,
@@ -3691,12 +3728,7 @@ void s1ap_handle_handover_notification(
return;
}
- pLMNidentity = &TAI->pLMNidentity;
- ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
- tAC = &TAI->tAC;
- ogs_assert(tAC && tAC->size == sizeof(uint16_t));
-
- source_ue = target_ue->source_ue;
+ source_ue = enb_ue_find_by_id(target_ue->source_ue_id);
if (!source_ue) {
ogs_error("No Source UE");
r = s1ap_send_error_indication(enb, MME_UE_S1AP_ID, ENB_UE_S1AP_ID,
@@ -3706,7 +3738,7 @@ void s1ap_handle_handover_notification(
return;
}
- mme_ue = source_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(source_ue->mme_ue_id);
if (!mme_ue) {
ogs_error("No UE(mme-ue) context");
return;
@@ -3721,12 +3753,20 @@ void s1ap_handle_handover_notification(
ogs_debug("Mobile Reachable timer stopped for IMSI[%s]", mme_ue->imsi_bcd);
CLEAR_MME_UE_TIMER(mme_ue->t_mobile_reachable);
+ pLMNidentity = &TAI->pLMNidentity;
+ ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
+ tAC = &TAI->tAC;
+ ogs_assert(tAC && tAC->size == sizeof(uint16_t));
memcpy(&target_ue->saved.tai.plmn_id, pLMNidentity->buf,
sizeof(target_ue->saved.tai.plmn_id));
memcpy(&target_ue->saved.tai.tac,
tAC->buf, sizeof(target_ue->saved.tai.tac));
target_ue->saved.tai.tac = be16toh(target_ue->saved.tai.tac);
+ pLMNidentity = &EUTRAN_CGI->pLMNidentity;
+ ogs_assert(pLMNidentity && pLMNidentity->size == sizeof(ogs_plmn_id_t));
+ cell_ID = &EUTRAN_CGI->cell_ID;
+ ogs_assert(cell_ID);
memcpy(&target_ue->saved.e_cgi.plmn_id, pLMNidentity->buf,
sizeof(target_ue->saved.e_cgi.plmn_id));
memcpy(&target_ue->saved.e_cgi.cell_id, cell_ID->buf,
@@ -3776,7 +3816,8 @@ void s1ap_handle_handover_notification(
}
if (ogs_list_count(&mme_ue->bearer_to_modify_list)) {
- ogs_assert(OGS_OK == mme_gtp_send_modify_bearer_request(mme_ue, 1, 0));
+ ogs_assert(OGS_OK == mme_gtp_send_modify_bearer_request(
+ target_ue, mme_ue, 1, 0));
}
}
@@ -3929,10 +3970,10 @@ void s1ap_handle_s1_reset(
/* ENB_UE Context where PartOfS1_interface was requested */
enb_ue->part_of_s1_reset_requested = true;
- mme_ue = enb_ue->mme_ue;
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
if (mme_ue) {
ogs_assert(OGS_OK ==
- mme_gtp_send_release_access_bearers_request(mme_ue,
+ mme_gtp_send_release_access_bearers_request(enb_ue, mme_ue,
OGS_GTP_RELEASE_S1_CONTEXT_REMOVE_BY_RESET_PARTIAL));
} else {
enb_ue_remove(enb_ue);
diff --git a/src/mme/s1ap-path.c b/src/mme/s1ap-path.c
index a46f4b0c58..ddbdb336d8 100644
--- a/src/mme/s1ap-path.c
+++ b/src/mme/s1ap-path.c
@@ -52,12 +52,7 @@ int s1ap_send_to_enb(mme_enb_t *enb, ogs_pkbuf_t *pkbuf, uint16_t stream_no)
char buf[OGS_ADDRSTRLEN];
ogs_assert(pkbuf);
-
- if (!mme_enb_cycle(enb)) {
- ogs_error("eNB has already been removed");
- ogs_pkbuf_free(pkbuf);
- return OGS_NOTFOUND;
- }
+ ogs_assert(enb);
ogs_assert(enb->sctp.sock);
if (enb->sctp.sock->fd == INVALID_SOCKET) {
@@ -84,15 +79,24 @@ int s1ap_send_to_enb(mme_enb_t *enb, ogs_pkbuf_t *pkbuf, uint16_t stream_no)
int s1ap_send_to_enb_ue(enb_ue_t *enb_ue, ogs_pkbuf_t *pkbuf)
{
int rv;
+ mme_enb_t *enb = NULL;
+
ogs_assert(pkbuf);
- if (!enb_ue_cycle(enb_ue)) {
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
ogs_pkbuf_free(pkbuf);
return OGS_NOTFOUND;
}
- rv = s1ap_send_to_enb(enb_ue->enb, pkbuf, enb_ue->enb_ostream_id);
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
+ if (!enb) {
+ ogs_error("[%d] eNB has already been removed", enb_ue->enb_id);
+ ogs_pkbuf_free(pkbuf);
+ return OGS_NOTFOUND;
+ }
+
+ rv = s1ap_send_to_enb(enb, pkbuf, enb_ue->enb_ostream_id);
ogs_expect(rv == OGS_OK);
return rv;
@@ -113,8 +117,7 @@ int s1ap_delayed_send_to_enb_ue(
ogs_app()->timer_mgr, mme_timer_s1_delayed_send, e);
ogs_assert(e->timer);
e->pkbuf = pkbuf;
- e->enb_ue = enb_ue;
- e->enb = enb_ue->enb;
+ e->enb_ue_id = enb_ue->id;
ogs_timer_start(e->timer, duration);
@@ -139,7 +142,7 @@ int s1ap_send_to_esm(
e = mme_event_new(MME_EVENT_ESM_MESSAGE);
ogs_assert(e);
- e->mme_ue = mme_ue;
+ e->mme_ue_id = mme_ue->id;
e->pkbuf = esmbuf;
e->nas_type = nas_type;
e->create_action = create_action;
@@ -157,6 +160,9 @@ int s1ap_send_to_nas(enb_ue_t *enb_ue,
S1AP_ProcedureCode_t procedureCode, S1AP_NAS_PDU_t *nasPdu)
{
int rv;
+
+ mme_ue_t *mme_ue = NULL;
+
ogs_nas_eps_security_header_t *sh = NULL;
ogs_nas_security_header_type_t security_header_type;
@@ -167,6 +173,14 @@ int s1ap_send_to_nas(enb_ue_t *enb_ue,
ogs_assert(enb_ue);
ogs_assert(nasPdu);
+ if (nasPdu->size == 0) {
+ ogs_error("Empty NAS PDU");
+ enb_ue_remove(enb_ue);
+ return OGS_ERROR;
+ }
+
+ mme_ue = mme_ue_find_by_id(enb_ue->mme_ue_id);
+
/* The Packet Buffer(pkbuf_t) for NAS message MUST make a HEADROOM.
* When calculating AES_CMAC, we need to use the headroom of the packet. */
nasbuf = ogs_pkbuf_alloc(NULL, OGS_NAS_HEADROOM+nasPdu->size);
@@ -207,19 +221,50 @@ int s1ap_send_to_nas(enb_ue_t *enb_ue,
default:
ogs_error("Not implemented(security header type:0x%x)",
sh->security_header_type);
+ enb_ue_remove(enb_ue);
return OGS_ERROR;
}
- if (enb_ue->mme_ue) {
- if (nas_eps_security_decode(enb_ue->mme_ue,
+ if (mme_ue) {
+ if (nas_eps_security_decode(mme_ue,
security_header_type, nasbuf) != OGS_OK) {
ogs_error("nas_eps_security_decode failed()");
+ enb_ue_remove(enb_ue);
return OGS_ERROR;
}
}
h = (ogs_nas_emm_header_t *)nasbuf->data;
ogs_assert(h);
+
+ if (procedureCode == S1AP_ProcedureCode_id_initialUEMessage) {
+ if (h->protocol_discriminator != OGS_NAS_PROTOCOL_DISCRIMINATOR_EMM) {
+
+ ogs_error("Invalid protocol_discriminator [%d]",
+ h->protocol_discriminator);
+
+ ogs_pkbuf_free(nasbuf);
+ enb_ue_remove(enb_ue);
+
+ return OGS_ERROR;
+ }
+
+ if (h->security_header_type !=
+ OGS_NAS_SECURITY_HEADER_FOR_SERVICE_REQUEST_MESSAGE &&
+ h->message_type != OGS_NAS_EPS_ATTACH_REQUEST &&
+ h->message_type != OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST &&
+ h->message_type != OGS_NAS_EPS_EXTENDED_SERVICE_REQUEST &&
+ h->message_type != OGS_NAS_EPS_DETACH_REQUEST) {
+
+ ogs_error("Invalid EMM message type [%d]", h->message_type);
+
+ ogs_pkbuf_free(nasbuf);
+ enb_ue_remove(enb_ue);
+
+ return OGS_ERROR;
+ }
+ }
+
if (h->protocol_discriminator == OGS_NAS_PROTOCOL_DISCRIMINATOR_EMM) {
int rv;
e = mme_event_new(MME_EVENT_EMM_MESSAGE);
@@ -228,7 +273,7 @@ int s1ap_send_to_nas(enb_ue_t *enb_ue,
ogs_pkbuf_free(nasbuf);
return OGS_ERROR;
}
- e->enb_ue = enb_ue;
+ e->enb_ue_id = enb_ue->id;
e->s1ap_code = procedureCode;
e->nas_type = security_header_type.type;
e->pkbuf = nasbuf;
@@ -241,7 +286,6 @@ int s1ap_send_to_nas(enb_ue_t *enb_ue,
return rv;
} else if (h->protocol_discriminator ==
OGS_NAS_PROTOCOL_DISCRIMINATOR_ESM) {
- mme_ue_t *mme_ue = enb_ue->mme_ue;
if (!mme_ue) {
ogs_error("No UE Context");
ogs_pkbuf_free(nasbuf);
@@ -255,7 +299,10 @@ int s1ap_send_to_nas(enb_ue_t *enb_ue,
} else {
ogs_error("Unknown/Unimplemented NAS Protocol discriminator 0x%02x",
h->protocol_discriminator);
+
ogs_pkbuf_free(nasbuf);
+ enb_ue_remove(enb_ue);
+
return OGS_ERROR;
}
}
@@ -265,12 +312,9 @@ int s1ap_send_s1_setup_response(mme_enb_t *enb)
int rv;
ogs_pkbuf_t *s1ap_buffer;
- ogs_debug("S1-Setup response");
+ ogs_assert(enb);
- if (!mme_enb_cycle(enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("S1-Setup response");
s1ap_buffer = s1ap_build_setup_rsp();
if (!s1ap_buffer) {
@@ -290,12 +334,9 @@ int s1ap_send_s1_setup_failure(
int rv;
ogs_pkbuf_t *s1ap_buffer;
- ogs_debug("S1-Setup failure");
+ ogs_assert(enb);
- if (!mme_enb_cycle(enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("S1-Setup failure");
s1ap_buffer = s1ap_build_setup_failure(group, cause, S1AP_TimeToWait_v10s);
if (!s1ap_buffer) {
@@ -314,12 +355,9 @@ int s1ap_send_enb_configuration_update_ack(mme_enb_t *enb)
int rv;
ogs_pkbuf_t *s1ap_buffer;
- ogs_debug("ENBConfigurationUpdateAcknowledge");
+ ogs_assert(enb);
- if (!mme_enb_cycle(enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("ENBConfigurationUpdateAcknowledge");
s1ap_buffer = s1ap_build_enb_configuration_update_ack();
if (!s1ap_buffer) {
@@ -339,12 +377,9 @@ int s1ap_send_enb_configuration_update_failure(
int rv;
ogs_pkbuf_t *s1ap_buffer;
- ogs_debug("ENBConfigurationUpdateFailure");
+ ogs_assert(enb);
- if (!mme_enb_cycle(enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("ENBConfigurationUpdateFailure");
s1ap_buffer = s1ap_build_enb_configuration_update_failure(
group, cause, S1AP_TimeToWait_v10s);
@@ -366,12 +401,12 @@ int s1ap_send_initial_context_setup_request(mme_ue_t *mme_ue)
ogs_debug("InitialContextSetupRequest");
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue_find_by_id(mme_ue->enb_ue_id)) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -395,12 +430,12 @@ int s1ap_send_ue_context_modification_request(mme_ue_t *mme_ue)
ogs_debug("UEContextModificationRequest");
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue_find_by_id(mme_ue->enb_ue_id)) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -426,7 +461,7 @@ int s1ap_send_ue_context_release_command(
ogs_debug("UEContextReleaseCommand");
- if (!enb_ue_cycle(enb_ue)) {
+ if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -464,7 +499,7 @@ int s1ap_send_paging(mme_ue_t *mme_ue, S1AP_CNDomain_t cn_domain)
ogs_debug("S1-Paging");
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
@@ -516,15 +551,11 @@ int s1ap_send_mme_configuration_transfer(
int rv;
ogs_pkbuf_t *s1apbuf = NULL;
- ogs_debug("MMEConfigurationTransfer");
-
- if (!mme_enb_cycle(target_enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
-
+ ogs_assert(target_enb);
ogs_assert(SONConfigurationTransfer);
+ ogs_debug("MMEConfigurationTransfer");
+
s1apbuf = s1ap_build_mme_configuration_transfer(SONConfigurationTransfer);
if (!s1apbuf) {
ogs_error("s1ap_build_mme_configuration_transfer() failed");
@@ -543,12 +574,9 @@ int s1ap_send_mme_direct_information_transfer(
int rv;
ogs_pkbuf_t *s1apbuf = NULL;
- ogs_debug("Tx MME Direct Information Transfer");
+ ogs_assert(target_enb);
- if (!mme_enb_cycle(target_enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_debug("Tx MME Direct Information Transfer");
s1apbuf = s1ap_build_direct_information_transfer(buf, buf_len);
if (!s1apbuf) {
@@ -569,12 +597,12 @@ int s1ap_send_e_rab_modification_confirm(mme_ue_t *mme_ue)
ogs_debug("E-RABModificationConfirm");
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue_find_by_id(mme_ue->enb_ue_id)) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -599,12 +627,12 @@ int s1ap_send_path_switch_ack(
ogs_debug("PathSwitchAcknowledge");
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!enb_ue_cycle(mme_ue->enb_ue)) {
+ if (!enb_ue_find_by_id(mme_ue->enb_ue_id)) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -629,12 +657,12 @@ int s1ap_send_handover_command(enb_ue_t *source_ue)
ogs_debug("HandoverCommand");
- if (!enb_ue_cycle(source_ue)) {
+ if (!source_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
- if (!mme_ue_cycle(source_ue->mme_ue)) {
+ if (!mme_ue_find_by_id(source_ue->mme_ue_id)) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
@@ -659,7 +687,7 @@ int s1ap_send_handover_preparation_failure(
ogs_debug("HandoverPreparationFailure");
- if (!enb_ue_cycle(source_ue)) {
+ if (!source_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -685,7 +713,7 @@ int s1ap_send_handover_cancel_ack(enb_ue_t *source_ue)
ogs_debug("HandoverCancelAcknowledge");
- if (!enb_ue_cycle(source_ue)) {
+ if (!source_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -714,25 +742,58 @@ int s1ap_send_handover_request(
enb_ue_t *target_ue = NULL;
+ ogs_assert(target_enb);
+
ogs_info("HandoverRequest");
- if (!enb_ue_cycle(source_ue)) {
+ if (!source_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
- if (!mme_ue_cycle(source_ue->mme_ue)) {
+ if (!mme_ue_find_by_id(source_ue->mme_ue_id)) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- if (!mme_enb_cycle(target_enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
+ target_ue = enb_ue_find_by_id(source_ue->target_ue_id);
+ if (target_ue) {
+ /*
+ * Issue #3014
+ *
+ * 1. HandoverRequired
+ * 2. HandoverRequest
+ * 3. HandoverFailure
+ * 4. UEContextReleaseCommand
+ * 5. HandoverPreparationFailure
+ *
+ * If UEContextReleaseComplete is not received,
+ * the Source-UE will have the Target-UE.
+ *
+ * 6. HandoverRequired
+ *
+ * There may be cases where the Source UE has a Target UE
+ * from a previous HandoverRequired process. In this case,
+ * it is recommended to force the deletion of the Target UE information
+ * when receiving a new HandoverRequired.
+ *
+ * 7. HandoverRequest
+ * 8. HandoverFailure
+ * 9. UEContextReleaseCommand
+ * 10. UEContextReleaseComplete
+ * 11. HandoverPreparationFailure
+ *
+ * ... Crashed ...
+ */
+ ogs_warn("DELETE the previously used TARGET in SOURCE");
+ ogs_warn(" Source : ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
+ source_ue->enb_ue_s1ap_id, source_ue->mme_ue_s1ap_id);
+ ogs_warn(" Target : ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",
+ target_ue->enb_ue_s1ap_id, target_ue->mme_ue_s1ap_id);
+ enb_ue_source_deassociate_target(target_ue);
+ enb_ue_remove(target_ue);
}
- ogs_assert(source_ue->target_ue == NULL);
-
target_ue = enb_ue_add(target_enb, INVALID_UE_S1AP_ID);
if (target_ue == NULL) {
rv = s1ap_send_error_indication(target_enb, NULL, NULL,
@@ -774,7 +835,7 @@ int s1ap_send_mme_status_transfer(
ogs_info("MMEStatusTransfer");
- if (!enb_ue_cycle(target_ue)) {
+ if (!target_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
@@ -801,12 +862,9 @@ int s1ap_send_error_indication(
int rv;
ogs_pkbuf_t *s1apbuf = NULL;
- ogs_info("ErrorIndication");
+ ogs_assert(enb);
- if (!mme_enb_cycle(enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_info("ErrorIndication");
s1apbuf = ogs_s1ap_build_error_indication(
mme_ue_s1ap_id, enb_ue_s1ap_id, group, cause);
@@ -831,18 +889,18 @@ int s1ap_send_error_indication2(
S1AP_MME_UE_S1AP_ID_t mme_ue_s1ap_id;
S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id;
- if (!mme_ue_cycle(mme_ue)) {
+ if (!mme_ue) {
ogs_error("UE(mme-ue) context has already been removed");
return OGS_NOTFOUND;
}
- enb_ue = enb_ue_cycle(mme_ue->enb_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
if (!enb_ue) {
ogs_error("S1 context has already been removed");
return OGS_NOTFOUND;
}
- enb = mme_enb_cycle(enb_ue->enb);
+ enb = mme_enb_find_by_id(enb_ue->enb_id);
if (!enb) {
ogs_error("eNB has already been removed");
return OGS_NOTFOUND;
@@ -865,10 +923,7 @@ int s1ap_send_s1_reset_ack(
int rv;
ogs_pkbuf_t *s1apbuf = NULL;
- if (!mme_enb_cycle(enb)) {
- ogs_error("eNB has already been removed");
- return OGS_NOTFOUND;
- }
+ ogs_assert(enb);
ogs_info("S1-Reset Acknowledge");
s1apbuf = ogs_s1ap_build_s1_reset_ack(partOfS1_Interface);
diff --git a/src/mme/s1ap-sm.c b/src/mme/s1ap-sm.c
index 9314316319..c511ad5e93 100644
--- a/src/mme/s1ap-sm.c
+++ b/src/mme/s1ap-sm.c
@@ -59,7 +59,7 @@ void s1ap_state_operational(ogs_fsm_t *s, mme_event_t *e)
mme_sm_debug(e);
- enb = e->enb;
+ enb = mme_enb_find_by_id(e->enb_id);
ogs_assert(enb);
switch (e->id) {
diff --git a/src/mme/sgsap-build.c b/src/mme/sgsap-build.c
index 22fed9bbde..18317f5828 100644
--- a/src/mme/sgsap-build.c
+++ b/src/mme/sgsap-build.c
@@ -34,6 +34,8 @@ ogs_pkbuf_t *sgsap_build_location_update_request(mme_ue_t *mme_ue)
served_gummei_t *served_gummei = &mme_self()->served_gummei[0];
char eps_update_type;
ogs_nas_lai_t lai;
+ ogs_eps_tai_t tai;
+ ogs_e_cgi_t e_cgi;
ogs_assert(mme_ue);
csmap = mme_ue->csmap;
@@ -59,6 +61,20 @@ ogs_pkbuf_t *sgsap_build_location_update_request(mme_ue_t *mme_ue)
ogs_tlv_add(root, OGS_TLV_MODE_T1_L1, SGSAP_IE_LAI_TYPE,
SGSAP_IE_LAI_LEN, 0, &lai);
+ /*
+ * TS 29.118 5.2.2.2.1
+ * The MME shall add the UE's current TAI and E-CGI
+ * to the SGsAP-LOCATION-UPDATE-REQUEST message.
+ */
+ memcpy(&tai, &mme_ue->tai, sizeof(ogs_eps_tai_t));
+ tai.tac = htobe16(tai.tac);
+ ogs_tlv_add(root, OGS_TLV_MODE_T1_L1, SGSAP_IE_TAI_TYPE,
+ SGSAP_IE_TAI_LEN, 0, &tai);
+ memcpy(&e_cgi, &mme_ue->e_cgi, sizeof(ogs_e_cgi_t));
+ e_cgi.cell_id = htobe32(e_cgi.cell_id);
+ ogs_tlv_add(root, OGS_TLV_MODE_T1_L1, SGSAP_IE_E_CGI_TYPE,
+ SGSAP_IE_E_CGI_LEN, 0, &e_cgi);
+
pkbuf = ogs_pkbuf_alloc(NULL, OGS_MAX_SDU_LEN);
if (!pkbuf) {
ogs_error("ogs_pkbuf_alloc() failed");
diff --git a/src/mme/sgsap-handler.c b/src/mme/sgsap-handler.c
index 2e4ef767d4..96afdee9c6 100644
--- a/src/mme/sgsap-handler.c
+++ b/src/mme/sgsap-handler.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -33,6 +33,7 @@ void sgsap_handle_location_update_accept(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
int r;
ogs_tlv_t *root = NULL, *iter = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
char imsi_bcd[OGS_MAX_IMSI_BCD_LEN+1];
@@ -100,6 +101,12 @@ void sgsap_handle_location_update_accept(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
goto error;
}
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("!enb_ue");
+ goto error;
+ }
+
ogs_debug(" IMSI[%s]", mme_ue->imsi_bcd);
if (lai) {
ogs_debug(" LAI[PLMN_ID:%06x,LAC:%d]",
@@ -108,28 +115,125 @@ void sgsap_handle_location_update_accept(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
if (nas_mobile_identity_tmsi) {
if (nas_mobile_identity_tmsi->type == OGS_NAS_MOBILE_IDENTITY_TMSI) {
- mme_ue->p_tmsi = be32toh(nas_mobile_identity_tmsi->tmsi);
+ mme_ue_set_p_tmsi(mme_ue, nas_mobile_identity_tmsi);
} else {
ogs_error("Not supported Identity type[%d]",
nas_mobile_identity_tmsi->type);
goto error;
}
- ogs_debug(" P-TMSI[0x%08x]", mme_ue->p_tmsi);
+ ogs_debug(" P-TMSI[0x%08x]", mme_ue->next.p_tmsi);
}
- r = nas_eps_send_attach_accept(mme_ue);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
+ if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ r = nas_eps_send_attach_accept(mme_ue);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else if (mme_ue->nas_eps.type == MME_EPS_TYPE_TAU_REQUEST) {
+ if (mme_ue->tracking_area_update_request_type ==
+ MME_TAU_TYPE_INITIAL_UE_MESSAGE) {
+ ogs_debug(" Iniital UE Message");
+ if (mme_ue->nas_eps.update.active_flag) {
+
+/*
+* TS33.401
+* 7 Security procedures between UE and EPS access network elements
+* 7.2 Handling of user-related keys in E-UTRAN
+* 7.2.7 Key handling for the TAU procedure when registered in E-UTRAN
+*
+* If the "active flag" is set in the TAU request message or
+* the MME chooses to establish radio bearers when there is pending downlink
+* UP data or pending downlink signalling, radio bearers will be established
+* as part of the TAU procedure and a KeNB derivation is necessary.
+*/
+ ogs_kdf_kenb(mme_ue->kasme, mme_ue->ul_count.i32,
+ mme_ue->kenb);
+ ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
+ mme_ue->nhcc = 1;
+
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_InitialContextSetup);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else {
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_downlinkNASTransport);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ }
+ } else if (mme_ue->tracking_area_update_request_type ==
+ MME_TAU_TYPE_UPLINK_NAS_TRANPORT) {
+ ogs_debug(" Uplink NAS Transport");
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_downlinkNASTransport);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else if (mme_ue->tracking_area_update_request_type ==
+ MME_TAU_TYPE_UNPROTECTED_INGERITY) {
+ ogs_debug(" Unprotected Integrity");
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_InitialContextSetup);
+ ogs_expect(r == OGS_OK);
+ } else {
+ ogs_error("Invalid TAU Type[%d]",
+ mme_ue->tracking_area_update_request_type);
+ return;
+ }
+
+ /*
+ * When active_flag is 0, check if the P-TMSI has been updated.
+ * If the P-TMSI has changed, wait to receive the TAU Complete message
+ * from the UE before sending the UEContextReleaseCommand.
+ *
+ * This ensures that the UE has acknowledged the new P-TMSI,
+ * allowing the TAU procedure to complete successfully
+ * and maintaining synchronization between the UE and the network.
+ */
+ if (!mme_ue->nas_eps.update.active_flag &&
+ !MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ enb_ue->relcause.group = S1AP_Cause_PR_nas;
+ enb_ue->relcause.cause = S1AP_CauseNas_normal_release;
+ mme_send_release_access_bearer_or_ue_context_release(enb_ue);
+ }
+ } else {
+ ogs_fatal("[%s] Invalid EPS-Type[%d]",
+ mme_ue->imsi_bcd, mme_ue->nas_eps.type);
+ ogs_assert_if_reached();
+ }
return;
error:
- r = nas_eps_send_attach_reject(mme_ue,
- OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ /* Clang scan-build SA:
+ * NULL pointer dereference: mme_ue=NULL if root=NULL. */
+ if (!mme_ue) {
+ ogs_error("!mme_ue");
+ return;
+ }
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("ENB-S1 Context has already been removed");
+ return;
+ }
+
+ if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ r = nas_eps_send_attach_reject(
+ enb_ue, mme_ue,
+ OGS_NAS_EMM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,
+ OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else if (mme_ue->nas_eps.type == MME_EPS_TYPE_TAU_REQUEST) {
+ r = nas_eps_send_tau_reject(
+ enb_ue, mme_ue,
+ OGS_NAS_EMM_CAUSE_UE_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else {
+ ogs_fatal("[%s] Invalid EPS-Type[%d]",
+ mme_ue->imsi_bcd, mme_ue->nas_eps.type);
+ ogs_assert_if_reached();
+ }
+ mme_send_delete_session_or_mme_ue_context_release(enb_ue, mme_ue);
}
void sgsap_handle_location_update_reject(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
@@ -137,6 +241,7 @@ void sgsap_handle_location_update_reject(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
int r;
ogs_tlv_t *root = NULL, *iter = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
char imsi_bcd[OGS_MAX_IMSI_BCD_LEN+1];
@@ -204,17 +309,94 @@ void sgsap_handle_location_update_reject(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
return;
}
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (!enb_ue) {
+ ogs_error("!enb_ue");
+ goto error;
+ }
+
ogs_debug(" IMSI[%s] CAUSE[%d]", mme_ue->imsi_bcd, emm_cause);
if (lai) {
ogs_debug(" LAI[PLMN_ID:%06x,LAC:%d]",
ogs_plmn_id_hexdump(&lai->nas_plmn_id), lai->lac);
}
- r = nas_eps_send_attach_reject(mme_ue,
- emm_cause, OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- mme_send_delete_session_or_mme_ue_context_release(mme_ue);
+ if (mme_ue->nas_eps.type == MME_EPS_TYPE_ATTACH_REQUEST) {
+ r = nas_eps_send_attach_accept(mme_ue);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else if (mme_ue->nas_eps.type == MME_EPS_TYPE_TAU_REQUEST) {
+ if (mme_ue->tracking_area_update_request_type ==
+ MME_TAU_TYPE_INITIAL_UE_MESSAGE) {
+ ogs_debug(" Iniital UE Message");
+ if (mme_ue->nas_eps.update.active_flag) {
+
+/*
+* TS33.401
+* 7 Security procedures between UE and EPS access network elements
+* 7.2 Handling of user-related keys in E-UTRAN
+* 7.2.7 Key handling for the TAU procedure when registered in E-UTRAN
+*
+* If the "active flag" is set in the TAU request message or
+* the MME chooses to establish radio bearers when there is pending downlink
+* UP data or pending downlink signalling, radio bearers will be established
+* as part of the TAU procedure and a KeNB derivation is necessary.
+*/
+ ogs_kdf_kenb(mme_ue->kasme, mme_ue->ul_count.i32,
+ mme_ue->kenb);
+ ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
+ mme_ue->nhcc = 1;
+
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_InitialContextSetup);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else {
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_downlinkNASTransport);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ }
+ } else if (mme_ue->tracking_area_update_request_type ==
+ MME_TAU_TYPE_UPLINK_NAS_TRANPORT) {
+ ogs_debug(" Uplink NAS Transport");
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_downlinkNASTransport);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
+ } else if (mme_ue->tracking_area_update_request_type ==
+ MME_TAU_TYPE_UNPROTECTED_INGERITY) {
+ ogs_debug(" Unprotected Integrity");
+ r = nas_eps_send_tau_accept(mme_ue,
+ S1AP_ProcedureCode_id_InitialContextSetup);
+ ogs_expect(r == OGS_OK);
+ } else {
+ ogs_error("Invalid TAU Type[%d]",
+ mme_ue->tracking_area_update_request_type);
+ return;
+ }
+
+ /*
+ * When active_flag is 0, check if the P-TMSI has been updated.
+ * If the P-TMSI has changed, wait to receive the TAU Complete message
+ * from the UE before sending the UEContextReleaseCommand.
+ *
+ * This ensures that the UE has acknowledged the new P-TMSI,
+ * allowing the TAU procedure to complete successfully
+ * and maintaining synchronization between the UE and the network.
+ */
+ if (!mme_ue->nas_eps.update.active_flag &&
+ !MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue)) {
+ ogs_fatal("NEXT = %d", MME_NEXT_P_TMSI_IS_AVAILABLE(mme_ue));
+ enb_ue->relcause.group = S1AP_Cause_PR_nas;
+ enb_ue->relcause.cause = S1AP_CauseNas_normal_release;
+ mme_send_release_access_bearer_or_ue_context_release(enb_ue);
+ }
+ } else {
+ ogs_fatal("[%s] Invalid EPS-Type[%d]",
+ mme_ue->imsi_bcd, mme_ue->nas_eps.type);
+ ogs_assert_if_reached();
+ }
return;
@@ -227,6 +409,7 @@ void sgsap_handle_detach_ack(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
{
ogs_tlv_t *root = NULL, *iter = NULL;
mme_ue_t *mme_ue = NULL;
+ enb_ue_t *enb_ue = NULL;
char imsi_bcd[OGS_MAX_IMSI_BCD_LEN+1];
@@ -296,7 +479,11 @@ void sgsap_handle_detach_ack(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
ogs_debug(" IMSI[%s]", mme_ue->imsi_bcd);
- mme_send_delete_session_or_detach(mme_ue);
+ enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id);
+ if (enb_ue)
+ mme_send_delete_session_or_detach(enb_ue, mme_ue);
+ else
+ ogs_error("ENB-S1 Context has already been removed");
}
void sgsap_handle_paging_request(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
@@ -334,9 +521,11 @@ void sgsap_handle_paging_request(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
nas_mobile_identity_imsi_len = iter->length;
break;
case SGSAP_IE_VLR_NAME_TYPE:
- ogs_assert(0 < ogs_fqdn_parse(
- vlr_name, iter->value,
- ogs_min(iter->length, SGSAP_IE_VLR_NAME_LEN)));
+ if (ogs_fqdn_parse(vlr_name, iter->value,
+ ogs_min(iter->length, SGSAP_IE_VLR_NAME_LEN)) <= 0) {
+ ogs_error("Invalid VLR-Name");
+ return;
+ }
break;
case SGSAP_IE_LAI_TYPE:
lai = iter->value;
diff --git a/src/mme/sgsap-path.c b/src/mme/sgsap-path.c
index a42915aa1a..2fbdfb2b1b 100644
--- a/src/mme/sgsap-path.c
+++ b/src/mme/sgsap-path.c
@@ -53,8 +53,7 @@ void sgsap_close(void)
}
}
-int sgsap_send(ogs_sock_t *sock, ogs_pkbuf_t *pkbuf,
- ogs_sockaddr_t *addr, uint16_t stream_no)
+int sgsap_send(ogs_sock_t *sock, ogs_pkbuf_t *pkbuf, uint16_t stream_no)
{
int sent;
@@ -62,7 +61,7 @@ int sgsap_send(ogs_sock_t *sock, ogs_pkbuf_t *pkbuf,
ogs_assert(pkbuf);
sent = ogs_sctp_sendmsg(sock, pkbuf->data, pkbuf->len,
- addr, OGS_SCTP_SGSAP_PPID, stream_no);
+ NULL, OGS_SCTP_SGSAP_PPID, stream_no);
if (sent < 0 || sent != pkbuf->len) {
ogs_error("ogs_sctp_sendmsg(len:%d,ssn:%d) error (%d:%s)",
pkbuf->len, stream_no, errno, strerror(errno));
@@ -77,7 +76,6 @@ int sgsap_send(ogs_sock_t *sock, ogs_pkbuf_t *pkbuf,
int sgsap_send_to_vlr_with_sid(
mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf, uint16_t stream_no)
{
- char buf[OGS_ADDRSTRLEN];
ogs_sock_t *sock = NULL;;
ogs_assert(vlr);
@@ -85,8 +83,10 @@ int sgsap_send_to_vlr_with_sid(
sock = vlr->sock;
ogs_assert(sock);
- ogs_debug(" VLR-IP[%s]", OGS_ADDR(vlr->addr, buf));
- return sgsap_send(sock, pkbuf, vlr->addr, stream_no);
+ ogs_debug(" StreamNO[%d] VLR-IP[%s]",
+ stream_no, ogs_sockaddr_to_string_static(vlr->sa_list));
+
+ return sgsap_send(sock, pkbuf, stream_no);
}
int sgsap_send_to_vlr(mme_ue_t *mme_ue, ogs_pkbuf_t *pkbuf)
diff --git a/src/mme/sgsap-path.h b/src/mme/sgsap-path.h
index 0c22996a82..897019c9bc 100644
--- a/src/mme/sgsap-path.h
+++ b/src/mme/sgsap-path.h
@@ -36,8 +36,7 @@ void sgsap_close(void);
ogs_sock_t *sgsap_client(mme_vlr_t *vlr);
-int sgsap_send(ogs_sock_t *sock,
- ogs_pkbuf_t *pkbuf, ogs_sockaddr_t *addr, uint16_t stream_no);
+int sgsap_send(ogs_sock_t *sock, ogs_pkbuf_t *pkbuf, uint16_t stream_no);
int sgsap_send_to_vlr_with_sid(
mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf, uint16_t stream_no);
diff --git a/src/mme/sgsap-sctp.c b/src/mme/sgsap-sctp.c
index 988db28d76..e7c8d340cc 100644
--- a/src/mme/sgsap-sctp.c
+++ b/src/mme/sgsap-sctp.c
@@ -34,26 +34,24 @@ static void recv_handler(ogs_sock_t *sock);
ogs_sock_t *sgsap_client(mme_vlr_t *vlr)
{
- char buf[OGS_ADDRSTRLEN];
ogs_sock_t *sock = NULL;
ogs_assert(vlr);
- sock = ogs_sctp_client(SOCK_SEQPACKET, vlr->sa_list, vlr->option);
+ sock = ogs_sctp_client(SOCK_STREAM,
+ vlr->sa_list, vlr->local_sa_list, vlr->option);
if (sock) {
vlr->sock = sock;
#if HAVE_USRSCTP
- vlr->addr = vlr->sa_list;
usrsctp_set_non_blocking((struct socket *)sock, 1);
usrsctp_set_upcall((struct socket *)sock, usrsctp_recv_handler, NULL);
#else
- vlr->addr = &sock->remote_addr;
vlr->poll = ogs_pollset_add(ogs_app()->pollset,
OGS_POLLIN, sock->fd, lksctp_recv_handler, sock);
ogs_assert(vlr->poll);
#endif
- ogs_info("sgsap client() [%s]:%d",
- OGS_ADDR(vlr->addr, buf), OGS_PORT(vlr->addr));
+ ogs_info("sgsap client() %s",
+ ogs_sockaddr_to_string_static(vlr->sa_list));
}
return sock;
@@ -86,8 +84,6 @@ static void recv_handler(ogs_sock_t *sock)
{
ogs_pkbuf_t *pkbuf;
int size;
- ogs_sockaddr_t *addr = NULL;
- ogs_sockaddr_t from;
ogs_sctp_info_t sinfo;
int flags = 0;
@@ -97,7 +93,7 @@ static void recv_handler(ogs_sock_t *sock)
ogs_assert(pkbuf);
ogs_pkbuf_put(pkbuf, OGS_MAX_SDU_LEN);
size = ogs_sctp_recvmsg(
- sock, pkbuf->data, pkbuf->len, &from, &sinfo, &flags);
+ sock, pkbuf->data, pkbuf->len, NULL, &sinfo, &flags);
if (size < 0 || size >= OGS_MAX_SDU_LEN) {
ogs_error("ogs_sctp_recvmsg(%d) failed(%d:%s)",
size, errno, strerror(errno));
@@ -122,12 +118,8 @@ static void recv_handler(ogs_sock_t *sock)
if (not->sn_assoc_change.sac_state == SCTP_COMM_UP) {
ogs_debug("SCTP_COMM_UP");
- addr = ogs_calloc(1, sizeof(ogs_sockaddr_t));
- ogs_assert(addr);
- memcpy(addr, &from, sizeof(ogs_sockaddr_t));
-
sgsap_event_push(MME_EVENT_SGSAP_LO_SCTP_COMM_UP,
- sock, addr, NULL,
+ sock, NULL, NULL,
not->sn_assoc_change.sac_inbound_streams,
not->sn_assoc_change.sac_outbound_streams);
} else if (not->sn_assoc_change.sac_state == SCTP_SHUTDOWN_COMP ||
@@ -138,12 +130,8 @@ static void recv_handler(ogs_sock_t *sock)
if (not->sn_assoc_change.sac_state == SCTP_COMM_LOST)
ogs_debug("SCTP_COMM_LOST");
- addr = ogs_calloc(1, sizeof(ogs_sockaddr_t));
- ogs_assert(addr);
- memcpy(addr, &from, sizeof(ogs_sockaddr_t));
-
sgsap_event_push(MME_EVENT_SGSAP_LO_CONNREFUSED,
- sock, addr, NULL, 0, 0);
+ sock, NULL, NULL, 0, 0);
}
break;
case SCTP_SHUTDOWN_EVENT :
@@ -166,12 +154,8 @@ static void recv_handler(ogs_sock_t *sock)
not->sn_send_failed.ssf_error);
#endif
- addr = ogs_calloc(1, sizeof(ogs_sockaddr_t));
- ogs_assert(addr);
- memcpy(addr, &from, sizeof(ogs_sockaddr_t));
-
sgsap_event_push(MME_EVENT_SGSAP_LO_CONNREFUSED,
- sock, addr, NULL, 0, 0);
+ sock, NULL, NULL, 0, 0);
break;
case SCTP_PEER_ADDR_CHANGE:
ogs_warn("SCTP_PEER_ADDR_CHANGE:[T:%d, F:0x%x, S:%d]",
@@ -193,15 +177,17 @@ static void recv_handler(ogs_sock_t *sock)
} else if (flags & MSG_EOR) {
ogs_pkbuf_trim(pkbuf, size);
- addr = ogs_calloc(1, sizeof(ogs_sockaddr_t));
- ogs_assert(addr);
- memcpy(addr, &from, sizeof(ogs_sockaddr_t));
-
- sgsap_event_push(MME_EVENT_SGSAP_MESSAGE, sock, addr, pkbuf, 0, 0);
+ sgsap_event_push(MME_EVENT_SGSAP_MESSAGE, sock, NULL, pkbuf, 0, 0);
return;
} else {
- ogs_fatal("Invalid flag(0x%x)", flags);
- ogs_assert_if_reached();
+ if (ogs_socket_errno != OGS_EAGAIN) {
+ ogs_fatal("ogs_sctp_recvmsg(%d) failed(%d:%s-0x%x)",
+ size, errno, strerror(errno), flags);
+ ogs_assert_if_reached();
+ } else {
+ ogs_error("ogs_sctp_recvmsg(%d) failed(%d:%s-0x%x)",
+ size, errno, strerror(errno), flags);
+ }
}
ogs_pkbuf_free(pkbuf);
}
diff --git a/src/nrf/init.c b/src/nrf/init.c
index 5bb3593da2..0a726b4261 100644
--- a/src/nrf/init.c
+++ b/src/nrf/init.c
@@ -34,14 +34,14 @@ int nrf_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_NRF);
nrf_context_init();
- rv = ogs_sbi_context_parse_config(APP_NAME, NULL, NULL);
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
- rv = nrf_context_parse_config();
+ rv = ogs_sbi_context_parse_config(APP_NAME, NULL, NULL);
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
+ rv = nrf_context_parse_config();
if (rv != OGS_OK) return rv;
rv = nrf_sbi_open();
diff --git a/src/nrf/nf-sm.c b/src/nrf/nf-sm.c
index 8e20472979..7ab6ba2e77 100644
--- a/src/nrf/nf-sm.c
+++ b/src/nrf/nf-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019,2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -85,6 +85,7 @@ void nrf_nf_state_will_register(ogs_fsm_t *s, nrf_event_t *e)
ogs_sbi_nf_instance_t *nf_instance = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_message_t *message = NULL;
ogs_assert(s);
@@ -105,8 +106,16 @@ void nrf_nf_state_will_register(ogs_fsm_t *s, nrf_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_NNRF_NFM)
@@ -128,8 +137,8 @@ void nrf_nf_state_will_register(ogs_fsm_t *s, nrf_event_t *e)
nf_instance->id, message->h.method);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_MEHTOD_NOT_ALLOWED, message,
- "Invalid HTTP method", message->h.method));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid HTTP method", message->h.method, NULL));
END
break;
@@ -138,9 +147,9 @@ void nrf_nf_state_will_register(ogs_fsm_t *s, nrf_event_t *e)
nf_instance->id, message->h.resource.component[0]);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_MEHTOD_NOT_ALLOWED, message,
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
"Invalid resource name",
- message->h.resource.component[0]));
+ message->h.resource.component[0], NULL));
END
break;
@@ -149,8 +158,9 @@ void nrf_nf_state_will_register(ogs_fsm_t *s, nrf_event_t *e)
nf_instance->id, message->h.service.name);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_MEHTOD_NOT_ALLOWED, message,
- "Invalid resource name", message->h.service.name));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid resource name", message->h.service.name,
+ NULL));
END
OGS_FSM_TRAN(s, nrf_nf_state_registered);
@@ -162,7 +172,8 @@ void nrf_nf_state_will_register(ogs_fsm_t *s, nrf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR,
- message, "Unknown event", nrf_event_get_name(e)));
+ message, "Unknown event", nrf_event_get_name(e),
+ NULL));
OGS_FSM_TRAN(s, nrf_nf_state_exception);
break;
}
@@ -174,6 +185,7 @@ void nrf_nf_state_registered(ogs_fsm_t *s, nrf_event_t *e)
ogs_sbi_nf_instance_t *nf_instance = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_message_t *message = NULL;
ogs_sbi_response_t *response = NULL;
@@ -216,8 +228,16 @@ void nrf_nf_state_registered(ogs_fsm_t *s, nrf_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_NNRF_NFM)
@@ -256,8 +276,8 @@ void nrf_nf_state_registered(ogs_fsm_t *s, nrf_event_t *e)
nf_instance->id, message->h.method);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_MEHTOD_NOT_ALLOWED, message,
- "Invalid HTTP method", message->h.method));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid HTTP method", message->h.method, NULL));
END
break;
@@ -266,9 +286,9 @@ void nrf_nf_state_registered(ogs_fsm_t *s, nrf_event_t *e)
nf_instance->id, message->h.resource.component[0]);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_MEHTOD_NOT_ALLOWED, message,
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
"Invalid resource name",
- message->h.resource.component[0]));
+ message->h.resource.component[0], NULL));
END
break;
@@ -277,8 +297,9 @@ void nrf_nf_state_registered(ogs_fsm_t *s, nrf_event_t *e)
nf_instance->id, message->h.service.name);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_MEHTOD_NOT_ALLOWED, message,
- "Invalid resource name", message->h.service.name));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid resource name", message->h.service.name,
+ NULL));
END
break;
@@ -288,7 +309,8 @@ void nrf_nf_state_registered(ogs_fsm_t *s, nrf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR,
- message, "Unknown event", nrf_event_get_name(e)));
+ message, "Unknown event", nrf_event_get_name(e),
+ NULL));
OGS_FSM_TRAN(s, nrf_nf_state_exception);
break;
}
diff --git a/src/nrf/nnrf-handler.c b/src/nrf/nnrf-handler.c
index 64649a86ac..544f081c6a 100644
--- a/src/nrf/nnrf-handler.c
+++ b/src/nrf/nnrf-handler.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -25,6 +25,15 @@ static int discover_handler(
static void handle_nf_discover_search_result(
OpenAPI_search_result_t *SearchResult);
+/**
+ * Handles NF registration in NRF. Validates the PLMN-ID against configured
+ * serving PLMN-IDs and registers the NF instance if valid.
+ *
+ * @param nf_instance The NF instance being registered.
+ * @param stream The SBI stream for communication.
+ * @param recvmsg The received SBI message.
+ * @return true if registration is successful; otherwise, false.
+ */
bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg)
{
@@ -33,6 +42,10 @@ bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
OpenAPI_nf_profile_t *NFProfile = NULL;
+ OpenAPI_lnode_t *node = NULL;
+ bool plmn_valid = false;
+ int i;
+
ogs_assert(nf_instance);
ogs_assert(stream);
ogs_assert(recvmsg);
@@ -42,7 +55,7 @@ bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
ogs_error("No NFProfile");
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile", NULL));
+ recvmsg, "No NFProfile", NULL, NULL));
return false;
}
@@ -51,7 +64,7 @@ bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile.NFInstanceId", NULL));
+ recvmsg, "No NFProfile.NFInstanceId", NULL, NULL));
return false;
}
@@ -60,7 +73,7 @@ bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile.NFType", NULL));
+ recvmsg, "No NFProfile.NFType", NULL, NULL));
return false;
}
@@ -69,10 +82,45 @@ bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No NFProfile.NFStatus", NULL));
+ recvmsg, "No NFProfile.NFStatus", NULL, NULL));
return false;
}
+ /* Validate the PLMN-ID against configured serving PLMN-IDs */
+ if (NFProfile->plmn_list) {
+ /* Set PLMN status to invalid */
+ plmn_valid = false;
+
+ if (ogs_local_conf()->num_of_serving_plmn_id > 0 && NFProfile->plmn_list) {
+ OpenAPI_list_for_each(NFProfile->plmn_list, node) {
+ OpenAPI_plmn_id_t *PlmnId = node->data;
+ if (PlmnId == NULL) {
+ continue;
+ }
+ for (i = 0; i < ogs_local_conf()->num_of_serving_plmn_id; i++) {
+ if (ogs_sbi_compare_plmn_list(
+ &ogs_local_conf()->serving_plmn_id[i],
+ PlmnId) == true) {
+ plmn_valid = true;
+ break;
+ }
+ }
+ if (plmn_valid) {
+ break;
+ }
+ }
+ }
+
+ /* Reject the registration if PLMN-ID is invalid */
+ if (!plmn_valid) {
+ ogs_error("PLMN-ID in NFProfile is not allowed");
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST, recvmsg,
+ "PLMN-ID not allowed", NULL, NULL));
+ return false;
+ }
+ }
+
ogs_nnrf_nfm_handle_nf_profile(nf_instance, NFProfile);
ogs_sbi_client_associate(nf_instance);
@@ -146,7 +194,6 @@ bool nrf_nnrf_handle_nf_register(ogs_sbi_nf_instance_t *nf_instance,
if (ogs_local_conf()->num_of_serving_plmn_id &&
NFProfile->plmn_list == NULL) {
OpenAPI_list_t *PlmnIdList = NULL;
- int i;
PlmnIdList = OpenAPI_list_create();
ogs_assert(PlmnIdList);
@@ -208,6 +255,10 @@ bool nrf_nnrf_handle_nf_update(ogs_sbi_nf_instance_t *nf_instance,
ogs_assert(stream);
ogs_assert(recvmsg);
+ cJSON *plmn_array = NULL, *plmn_item = NULL;
+ bool plmn_valid = false;
+ int i;
+
SWITCH(recvmsg->h.method)
CASE(OGS_SBI_HTTP_METHOD_PUT)
return nrf_nnrf_handle_nf_register(
@@ -220,18 +271,18 @@ bool nrf_nnrf_handle_nf_update(ogs_sbi_nf_instance_t *nf_instance,
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No PatchItemList", NULL));
+ recvmsg, "No PatchItemList", NULL, NULL));
return false;
}
+ /* Iterate through the PatchItemList */
OpenAPI_list_for_each(PatchItemList, node) {
OpenAPI_patch_item_t *patch_item = node->data;
if (!patch_item) {
ogs_error("No PatchItem");
- ogs_assert(true ==
- ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No PatchItem", NULL));
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST, recvmsg,
+ "No PatchItem", NULL, NULL));
return false;
}
@@ -246,6 +297,102 @@ bool nrf_nnrf_handle_nf_update(ogs_sbi_nf_instance_t *nf_instance,
break;
CASE(OGS_SBI_PATCH_PATH_LOAD)
break;
+ CASE(OGS_SBI_PATCH_PATH_PLMN_LIST)
+ /* Ensure the value is not null and is a valid JSON array */
+ if (patch_item->value && patch_item->value->json) {
+ /* Set PLMN status to invalid */
+ plmn_valid = false;
+
+ plmn_array = patch_item->value->json;
+ if (!cJSON_IsArray(plmn_array)) {
+ ogs_error("Value for /plmnList is not a JSON array");
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST, recvmsg,
+ "Invalid value for /plmnList", NULL, NULL));
+ return false;
+ }
+
+ /* Clear existing PLMN data in nf_instance */
+ memset(nf_instance->plmn_id, 0,
+ sizeof(nf_instance->plmn_id));
+ nf_instance->num_of_plmn_id = 0;
+
+ /* Iterate through the JSON array of PLMN IDs */
+ cJSON_ArrayForEach(plmn_item, plmn_array) {
+ OpenAPI_plmn_id_t plmn_id;
+ memset(&plmn_id, 0, sizeof(plmn_id));
+
+ if (nf_instance->num_of_plmn_id >=
+ OGS_ARRAY_SIZE(nf_instance->plmn_id)) {
+ ogs_error("Exceeded maximum number of PLMN IDs");
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ recvmsg,
+ "Too many PLMN IDs", NULL, NULL));
+ return false;
+ }
+
+ /* Parse the PLMN item */
+ plmn_id.mcc = cJSON_GetObjectItem(plmn_item, "mcc")
+ ? cJSON_GetStringValue(
+ cJSON_GetObjectItem(
+ plmn_item, "mcc"))
+ : NULL;
+ plmn_id.mnc = cJSON_GetObjectItem(plmn_item, "mnc")
+ ? cJSON_GetStringValue(
+ cJSON_GetObjectItem(
+ plmn_item, "mnc"))
+ : NULL;
+
+ if (!plmn_id.mcc || !plmn_id.mnc) {
+ ogs_error(
+ "Invalid PLMN item in /plmnList update");
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(
+ stream,
+ OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ recvmsg,
+ "Invalid PLMN item", NULL,
+ NULL));
+ return false;
+ }
+
+ /*
+ * Convert OpenAPI_plmn_id_t to ogs_plmn_id_t
+ * and store in nf_instance
+ */
+ ogs_sbi_parse_plmn_id(
+ &nf_instance->
+ plmn_id[nf_instance->num_of_plmn_id],
+ &plmn_id);
+ nf_instance->num_of_plmn_id++;
+
+ /* Compare with the serving PLMN list */
+ for (i = 0;
+ i < ogs_local_conf()->num_of_serving_plmn_id;
+ i++) {
+ if (ogs_sbi_compare_plmn_list(
+ &ogs_local_conf()->serving_plmn_id[i],
+ &plmn_id) == true) {
+ plmn_valid = true;
+ break;
+ }
+ }
+ if (plmn_valid) {
+ break;
+ }
+ }
+
+ /* Reject the update if PLMN-ID is invalid */
+ if (!plmn_valid) {
+ ogs_error("PLMN-ID in NFProfile update is not allowed");
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST, recvmsg,
+ "PLMN-ID not allowed", NULL, NULL));
+ return false;
+ }
+ }
+ break;
DEFAULT
ogs_error("Unknown PatchItem.Path [%s]", patch_item->path);
END
@@ -296,16 +443,15 @@ bool nrf_nnrf_handle_nf_status_subscribe(
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
recvmsg, "Invalid POST Format",
- recvmsg->h.resource.component[1]));
+ recvmsg->h.resource.component[1], NULL));
return false;
}
SubscriptionData = recvmsg->SubscriptionData;
if (!SubscriptionData) {
- ogs_error("No SubscriptionData");
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No SubscriptionData", NULL));
+ recvmsg, "No SubscriptionData", NULL, NULL));
return false;
}
@@ -314,7 +460,8 @@ bool nrf_nnrf_handle_nf_status_subscribe(
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No SubscriptionData", "NFStatusNotificationURL"));
+ recvmsg, "No SubscriptionData", "NFStatusNotificationURL",
+ NULL));
return false;
}
@@ -352,7 +499,8 @@ bool nrf_nnrf_handle_nf_status_subscribe(
if (SubscriptionData->requester_features) {
subscription_data->requester_features =
- ogs_uint64_from_string(SubscriptionData->requester_features);
+ ogs_uint64_from_string_hexadecimal(
+ SubscriptionData->requester_features);
/* No need to send SubscriptionData->requester_features to the NF */
ogs_free(SubscriptionData->requester_features);
@@ -386,6 +534,9 @@ bool nrf_nnrf_handle_nf_status_subscribe(
else if (SubscrCond->service_name)
subscription_data->subscr_cond.service_name =
ogs_strdup(SubscrCond->service_name);
+ else if (SubscrCond->nf_instance_id)
+ subscription_data->subscr_cond.nf_instance_id =
+ ogs_strdup(SubscrCond->nf_instance_id);
else {
ogs_error("No SubscrCond");
ogs_sbi_subscription_data_remove(subscription_data);
@@ -403,7 +554,8 @@ bool nrf_nnrf_handle_nf_status_subscribe(
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "Invalid URI", subscription_data->notification_uri));
+ recvmsg, "Invalid URI", subscription_data->notification_uri,
+ NULL));
ogs_sbi_subscription_data_remove(subscription_data);
return false;
}
@@ -423,13 +575,13 @@ bool nrf_nnrf_handle_nf_status_subscribe(
/*
* The NRF validity is initially set in configuration.
*/
- subscription_data->time.validity_duration =
- ogs_local_conf()->time.subscription.validity_duration;
+ subscription_data->validity_duration =
+ ogs_time_from_sec(
+ ogs_local_conf()->time.subscription.validity_duration);
- if (subscription_data->time.validity_duration) {
+ if (subscription_data->validity_duration) {
SubscriptionData->validity_time = ogs_sbi_localtime_string(
- ogs_time_now() + ogs_time_from_sec(
- subscription_data->time.validity_duration));
+ ogs_time_now() + subscription_data->validity_duration);
ogs_assert(SubscriptionData->validity_time);
if (!subscription_data->t_validity) {
@@ -439,13 +591,16 @@ bool nrf_nnrf_handle_nf_status_subscribe(
ogs_assert(subscription_data->t_validity);
}
ogs_timer_start(subscription_data->t_validity,
- ogs_time_from_sec(subscription_data->time.validity_duration));
+ subscription_data->validity_duration);
}
- ogs_info("[%s] Subscription created until %s [validity_duration:%d]",
+ ogs_info("[%s] Subscription created until %s "
+ "[duration:%lld,validity:%d.%06d]",
subscription_data->id,
SubscriptionData->validity_time,
- subscription_data->time.validity_duration);
+ (long long)subscription_data->validity_duration,
+ (int)ogs_time_sec(subscription_data->validity_duration),
+ (int)ogs_time_usec(subscription_data->validity_duration));
/* Location */
server = ogs_sbi_server_from_stream(stream);
@@ -486,6 +641,8 @@ bool nrf_nnrf_handle_nf_status_update(
ogs_sbi_subscription_data_t *subscription_data = NULL;
+ ogs_time_t time, validity;
+
ogs_assert(stream);
ogs_assert(recvmsg);
@@ -496,7 +653,7 @@ bool nrf_nnrf_handle_nf_status_update(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No SubscriptionId", NULL));
+ recvmsg, "No SubscriptionId", NULL, NULL));
return false;
}
@@ -507,7 +664,8 @@ bool nrf_nnrf_handle_nf_status_update(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
- recvmsg, "Not found", recvmsg->h.resource.component[1]));
+ recvmsg, "Not found", recvmsg->h.resource.component[1],
+ NULL));
return false;
}
ogs_assert(subscription_data->id);
@@ -518,7 +676,8 @@ bool nrf_nnrf_handle_nf_status_update(
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No PatchItemList", subscription_data->id));
+ recvmsg, "No PatchItemList", subscription_data->id,
+ NULL));
return false;
}
@@ -529,7 +688,7 @@ bool nrf_nnrf_handle_nf_status_update(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No PatchItem", NULL));
+ recvmsg, "No PatchItem", NULL, NULL));
return false;
}
@@ -550,73 +709,87 @@ bool nrf_nnrf_handle_nf_status_update(
END
}
- if (validity_time) {
- ogs_time_t time, validity;
-
- if (ogs_sbi_time_from_string(&time, validity_time) == false) {
- ogs_error("[%s] Subscription updated until %s [parser error]",
- subscription_data->id, validity_time);
- goto end;
- }
-
- validity = time - ogs_time_now();
- if (validity < 0) {
- ogs_error("[%s] Subscription updated until %s [validity:%d.%06d]",
- subscription_data->id, validity_time,
- (int)ogs_time_sec(validity), (int)ogs_time_usec(validity));
- goto end;
- }
-
- /*
- * The NRF validity is updated if NF sent the PATCH Request.
- */
- subscription_data->time.validity_duration =
- OGS_SBI_VALIDITY_SEC(validity);
+ if (!validity_time) {
+ ogs_error("[%s] No validityTime", subscription_data->id);
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ recvmsg, "No validityTime", subscription_data->id,
+ NULL));
+ return false;
+ }
- if (!subscription_data->t_validity) {
- subscription_data->t_validity =
- ogs_timer_add(ogs_app()->timer_mgr,
- nrf_timer_subscription_validity, subscription_data);
- ogs_assert(subscription_data->t_validity);
- }
- ogs_timer_start(subscription_data->t_validity,
- ogs_time_from_sec(subscription_data->time.validity_duration));
+ if (ogs_sbi_time_from_string(&time, validity_time) == false) {
+ ogs_error("[%s] Subscription updated until %s [parser error]",
+ subscription_data->id, validity_time);
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ recvmsg, "parse error", subscription_data->id,
+ validity_time));
+ return false;
+ }
- ogs_info("[%s] Subscription updated until %s "
- "[duration:%d,validity:%d.%06d]",
+ validity = time - ogs_time_now();
+ if (validity < 0) {
+ ogs_error("[%s] Subscription updated until %s [validity:%d.%06d]",
subscription_data->id, validity_time,
- subscription_data->time.validity_duration,
(int)ogs_time_sec(validity), (int)ogs_time_usec(validity));
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ recvmsg, "invalid validity", subscription_data->id,
+ validity_time));
+ return false;
+ }
- /* To send SubscriptionData to the NF */
- memset(&sendmsg, 0, sizeof(sendmsg));
- sendmsg.SubscriptionData = &SubscriptionData;
+ /*
+ * The NRF validity is updated if NF sent the PATCH Request.
+ */
+ subscription_data->validity_duration =
+ /* Normalize seconds */
+ ogs_time_from_sec(ogs_time_to_sec(validity));
+
+ if (!subscription_data->t_validity) {
+ subscription_data->t_validity =
+ ogs_timer_add(ogs_app()->timer_mgr,
+ nrf_timer_subscription_validity, subscription_data);
+ ogs_assert(subscription_data->t_validity);
+ }
+ ogs_timer_start(subscription_data->t_validity,
+ subscription_data->validity_duration);
- /* Mandatory */
- SubscriptionData.nf_status_notification_uri =
- subscription_data->notification_uri;
+ ogs_info("[%s] Subscription updated until %s "
+ "[duration:%lld,validity:%d.%06d]",
+ subscription_data->id, validity_time,
+ (long long)subscription_data->validity_duration,
+ (int)ogs_time_sec(subscription_data->validity_duration),
+ (int)ogs_time_usec(subscription_data->validity_duration));
- /* Validity Time */
- SubscriptionData.validity_time = ogs_sbi_localtime_string(
- ogs_time_now() + ogs_time_from_sec(
- subscription_data->time.validity_duration));
- ogs_assert(SubscriptionData.validity_time);
+ /* To send SubscriptionData to the NF */
+ memset(&sendmsg, 0, sizeof(sendmsg));
- response = ogs_sbi_build_response(&sendmsg, OGS_SBI_HTTP_STATUS_OK);
- ogs_assert(response);
- ogs_assert(true == ogs_sbi_server_send_response(stream, response));
+#if 0 /* Use HTTP_STATUS_NO_CONTENT(204) instead of HTTP_STATUS_OK(200) */
+ sendmsg.SubscriptionData = &SubscriptionData;
- ogs_free(SubscriptionData.validity_time);
+ /* Mandatory */
+ SubscriptionData.nf_status_notification_uri =
+ subscription_data->notification_uri;
- return true;
- }
+ /* Validity Time */
+ SubscriptionData.validity_time = ogs_sbi_localtime_string(
+ ogs_time_now() + subscription_data->validity_duration);
+ ogs_assert(SubscriptionData.validity_time);
-end:
- response = ogs_sbi_build_response(
- recvmsg, OGS_SBI_HTTP_STATUS_NO_CONTENT);
+ response = ogs_sbi_build_response(&sendmsg, OGS_SBI_HTTP_STATUS_OK);
+#else
+ response = ogs_sbi_build_response(&sendmsg, OGS_SBI_HTTP_STATUS_NO_CONTENT);
+#endif
ogs_assert(response);
ogs_assert(true == ogs_sbi_server_send_response(stream, response));
+ ogs_free(SubscriptionData.validity_time);
+
return true;
}
@@ -634,7 +807,7 @@ bool nrf_nnrf_handle_nf_status_unsubscribe(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No SubscriptionId", NULL));
+ recvmsg, "No SubscriptionId", NULL, NULL));
return false;
}
@@ -645,7 +818,8 @@ bool nrf_nnrf_handle_nf_status_unsubscribe(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
- recvmsg, "Not found", recvmsg->h.resource.component[1]));
+ recvmsg, "Not found", recvmsg->h.resource.component[1],
+ NULL));
return false;
}
@@ -741,7 +915,8 @@ bool nrf_nnrf_handle_nf_profile_retrieval(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
- recvmsg, "Not found", recvmsg->h.resource.component[1]));
+ recvmsg, "Not found", recvmsg->h.resource.component[1],
+ NULL));
return false;
}
@@ -783,14 +958,14 @@ bool nrf_nnrf_handle_nf_discover(
ogs_error("No target-nf-type [%s]", recvmsg->h.uri);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No target-nf-type", NULL));
+ recvmsg, "No target-nf-type", NULL, NULL));
return false;
}
if (!recvmsg->param.requester_nf_type) {
ogs_error("No requester-nf-type [%s]", recvmsg->h.uri);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No requester-nf-type", NULL));
+ recvmsg, "No requester-nf-type", NULL, NULL));
return false;
}
@@ -830,6 +1005,13 @@ bool nrf_nnrf_handle_nf_discover(
&discovery_option->tai.plmn_id),
discovery_option->tai.tac.v);
}
+ if (discovery_option->guami_presence) {
+ ogs_debug("guami[PLMN_ID:%06x,AMF_ID:%x]",
+ ogs_plmn_id_hexdump(
+ &discovery_option->guami.plmn_id),
+ ogs_amf_id_hexdump(
+ &discovery_option->guami.amf_id));
+ }
if (discovery_option->num_of_target_plmn_list) {
for (i = 0; i < discovery_option->num_of_target_plmn_list; i++)
ogs_debug("[%d] target-plmn-list[MCC:%03d,MNC:%03d]", i,
@@ -997,7 +1179,7 @@ bool nrf_nnrf_handle_nf_discover(
ogs_error("nrf_assoc_add() failed");
ogs_assert(true == ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR,
- recvmsg, "nrf_assoc_add() failed", NULL));
+ recvmsg, "nrf_assoc_add() failed", NULL, NULL));
goto cleanup;
}
@@ -1009,7 +1191,8 @@ bool nrf_nnrf_handle_nf_discover(
ogs_error("ogs_nnrf_disc_build_discover() failed");
ogs_assert(true == ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR,
- recvmsg, "ogs_nnrf_disc_build_discover() failed", NULL));
+ recvmsg, "ogs_nnrf_disc_build_discover() failed", NULL,
+ NULL));
nrf_assoc_remove(assoc);
goto cleanup;
}
@@ -1020,7 +1203,8 @@ bool nrf_nnrf_handle_nf_discover(
ogs_error("ogs_sbi_send_request_to_client");
ogs_assert(true == ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR,
- recvmsg, "ogs_sbi_send_request_to_client() failed", NULL));
+ recvmsg, "ogs_sbi_send_request_to_client() failed", NULL,
+ NULL));
ogs_sbi_request_free(request);
nrf_assoc_remove(assoc);
goto cleanup;
@@ -1078,7 +1262,7 @@ static int discover_handler(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
- "response_handler() failed", NULL));
+ "response_handler() failed", NULL, NULL));
nrf_assoc_remove(assoc);
@@ -1162,12 +1346,12 @@ static void handle_nf_discover_search_result(
* is not executed later in nrf_context_final().
*/
- ogs_info("[%s:%s] (NF-discover) NF registered",
+ ogs_info("[%s] (NF-discover) NF registered [type:%s]",
NFProfile->nf_instance_id,
OpenAPI_nf_type_ToString(NFProfile->nf_type));
} else {
- ogs_warn("[%s:%s] (NF-discover) NF has already been added",
+ ogs_warn("[%s] (NF-discover) NF has already been added [type:%s]",
NFProfile->nf_instance_id,
OpenAPI_nf_type_ToString(NFProfile->nf_type));
}
@@ -1185,7 +1369,7 @@ static void handle_nf_discover_search_result(
break;
}
- ogs_info("[%s:%s] (NF-discover) NF Profile updated",
+ ogs_info("[%s] (NF-discover) NF Profile updated [type:%s]",
nf_instance->id,
OpenAPI_nf_type_ToString(nf_instance->nf_type));
}
diff --git a/src/nrf/nrf-sm.c b/src/nrf/nrf-sm.c
index d9038e3337..1a5258404a 100644
--- a/src/nrf/nrf-sm.c
+++ b/src/nrf/nrf-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -40,6 +40,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
{
int rv;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_nf_instance_t *nf_instance = NULL;
@@ -63,8 +64,15 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
case OGS_EVENT_SBI_SERVER:
request = e->h.sbi.request;
ogs_assert(request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
rv = ogs_sbi_parse_request(&message, request);
if (rv != OGS_OK) {
@@ -73,7 +81,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP message", NULL));
+ NULL, "cannot parse HTTP message", NULL, NULL));
break;
}
@@ -82,7 +90,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &message, "Not supported version", NULL));
+ &message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&message);
break;
}
@@ -108,7 +116,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
stream,
OGS_SBI_HTTP_STATUS_NOT_IMPLEMENTED,
&message, "OPTIONS method is not implemented yet",
- NULL));
+ NULL, NULL));
break;
DEFAULT
@@ -131,7 +139,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
stream,
OGS_SBI_HTTP_STATUS_PAYLOAD_TOO_LARGE,
&message, "Insufficient space",
- message.h.resource.component[1]));
+ message.h.resource.component[1], NULL));
break;
}
nf_instance = ogs_sbi_nf_instance_add();
@@ -153,7 +161,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
&message, "Not found",
- message.h.resource.component[1]));
+ message.h.resource.component[1], NULL));
END
}
@@ -165,9 +173,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_fsm_dispatch(&nf_instance->sm, e);
if (OGS_FSM_CHECK(&nf_instance->sm,
nrf_nf_state_de_registered)) {
- ogs_info("[%s:%d] NF de-registered",
- nf_instance->id,
- nf_instance->reference_count);
+ ogs_info("[%s] NF de-registered", nf_instance->id);
nrf_nf_fsm_fini(nf_instance);
ogs_sbi_nf_instance_remove(nf_instance);
} else if (OGS_FSM_CHECK(&nf_instance->sm,
@@ -202,7 +208,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method, NULL));
END
break;
@@ -213,7 +219,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Invalid resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -233,7 +239,8 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method,
+ NULL));
END
break;
@@ -245,7 +252,7 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Invalid resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -254,7 +261,8 @@ void nrf_state_operational(ogs_fsm_t *s, nrf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
- "Invalid API name", message.h.resource.component[0]));
+ "Invalid API name", message.h.resource.component[0],
+ NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
diff --git a/src/nrf/sbi-path.c b/src/nrf/sbi-path.c
index 1e92f0d21f..303f5c866f 100644
--- a/src/nrf/sbi-path.c
+++ b/src/nrf/sbi-path.c
@@ -25,6 +25,7 @@ static int client_notify_cb(
int nrf_sbi_open(void)
{
ogs_sbi_nf_instance_t *nf_instance = NULL;
+ ogs_sbi_nf_service_t *service = NULL;
/* Initialize SELF NF instance */
nf_instance = ogs_sbi_self()->nf_instance;
@@ -33,6 +34,22 @@ int nrf_sbi_open(void)
/* Build NF instance information. */
ogs_sbi_nf_instance_build_default(nf_instance);
+ if (ogs_sbi_nf_service_is_available(OGS_SBI_SERVICE_NAME_NNRF_NFM)) {
+ service = ogs_sbi_nf_service_build_default(
+ nf_instance, OGS_SBI_SERVICE_NAME_NNRF_NFM);
+ ogs_assert(service);
+ ogs_sbi_nf_service_add_version(
+ service, OGS_SBI_API_V1, OGS_SBI_API_V1_0_0, NULL);
+ }
+
+ if (ogs_sbi_nf_service_is_available(OGS_SBI_SERVICE_NAME_NNRF_DISC)) {
+ service = ogs_sbi_nf_service_build_default(
+ nf_instance, OGS_SBI_SERVICE_NAME_NNRF_DISC);
+ ogs_assert(service);
+ ogs_sbi_nf_service_add_version(
+ service, OGS_SBI_API_V1, OGS_SBI_API_V1_0_0, NULL);
+ }
+
if (ogs_sbi_server_start_all(ogs_sbi_server_handler) != OGS_OK)
return OGS_ERROR;
@@ -110,6 +127,9 @@ bool nrf_nnrf_nfm_send_nf_status_notify_all(
ogs_sbi_nf_service_is_allowed_nf_type(
nf_service, subscription_data->req_nf_type) == false)
continue;
+ } else if (subscription_data->subscr_cond.nf_instance_id) {
+ if (strcmp(subscription_data->subscr_cond.nf_instance_id, nf_instance->id) != 0)
+ continue;
}
if (subscription_data->req_nf_type &&
diff --git a/src/nssf/context.c b/src/nssf/context.c
index d776926f20..e04721d4c8 100644
--- a/src/nssf/context.c
+++ b/src/nssf/context.c
@@ -77,6 +77,7 @@ int nssf_context_parse_config(void)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -88,7 +89,8 @@ int nssf_context_parse_config(void)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, "nssf")) {
+ if ((!strcmp(root_key, "nssf")) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t nssf_iter;
ogs_yaml_iter_recurse(&root_iter, &nssf_iter);
while (ogs_yaml_iter_next(&nssf_iter)) {
@@ -233,6 +235,10 @@ int nssf_context_parse_config(void)
addr, addr6, port, &h);
ogs_assert(nrf_id);
+ /* Clang scan-build SA: Argument with nonnull attribute passed null:
+ * sst may be NULL in atoi(sst) if the "uri" key path is followed. */
+ ogs_assert(sst);
+
nsi = nssf_nsi_add(
nrf_id,
atoi(sst),
@@ -279,7 +285,6 @@ nssf_nsi_t *nssf_nsi_add(char *nrf_id, uint8_t sst, ogs_uint24_t sd)
nssf_nsi_t *nsi = NULL;
ogs_assert(nrf_id);
- ogs_assert(sst);
ogs_pool_alloc(&nssf_nsi_pool, &nsi);
ogs_assert(nsi);
diff --git a/src/nssf/init.c b/src/nssf/init.c
index 08bed92472..757bd43686 100644
--- a/src/nssf/init.c
+++ b/src/nssf/init.c
@@ -34,14 +34,14 @@ int nssf_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_NSSF);
nssf_context_init();
- rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
- rv = nssf_context_parse_config();
+ rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
+ rv = nssf_context_parse_config();
if (rv != OGS_OK) return rv;
rv = nssf_sbi_open();
diff --git a/src/nssf/nnssf-handler.c b/src/nssf/nnssf-handler.c
index 8d4371fc66..c4a1fc3b6c 100644
--- a/src/nssf/nnssf-handler.c
+++ b/src/nssf/nnssf-handler.c
@@ -84,7 +84,8 @@ bool nssf_nnrf_nsselection_handle_get(
ogs_assert(strerror);
ogs_error("%s", strerror);
- ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL);
+ ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL,
+ NULL);
ogs_free(strerror);
return false;
diff --git a/src/nssf/nssf-sm.c b/src/nssf/nssf-sm.c
index 71561e7138..47f7b3a3f4 100644
--- a/src/nssf/nssf-sm.c
+++ b/src/nssf/nssf-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -43,6 +43,7 @@ void nssf_state_operational(ogs_fsm_t *s, nssf_event_t *e)
const char *api_version = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_nf_instance_t *nf_instance = NULL;
@@ -64,8 +65,16 @@ void nssf_state_operational(ogs_fsm_t *s, nssf_event_t *e)
case OGS_EVENT_SBI_SERVER:
request = e->h.sbi.request;
ogs_assert(request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
rv = ogs_sbi_parse_request(&message, request);
if (rv != OGS_OK) {
@@ -74,7 +83,7 @@ void nssf_state_operational(ogs_fsm_t *s, nssf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP message", NULL));
+ NULL, "cannot parse HTTP message", NULL, NULL));
break;
}
@@ -91,12 +100,41 @@ void nssf_state_operational(ogs_fsm_t *s, nssf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &message, "Not supported version", NULL));
+ &message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&message);
break;
}
SWITCH(message.h.service.name)
+ CASE(OGS_SBI_SERVICE_NAME_NNRF_NFM)
+
+ SWITCH(message.h.resource.component[0])
+ CASE(OGS_SBI_RESOURCE_NAME_NF_STATUS_NOTIFY)
+ SWITCH(message.h.method)
+ CASE(OGS_SBI_HTTP_METHOD_POST)
+ ogs_nnrf_nfm_handle_nf_status_notify(stream, &message);
+ break;
+
+ DEFAULT
+ ogs_error("Invalid HTTP method [%s]", message.h.method);
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
+ "Invalid HTTP method", message.h.method, NULL));
+ END
+ break;
+
+ DEFAULT
+ ogs_error("Invalid resource name [%s]",
+ message.h.resource.component[0]);
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
+ "Invalid resource name",
+ message.h.resource.component[0], NULL));
+ END
+ break;
+
CASE(OGS_SBI_SERVICE_NAME_NNSSF_NSSELECTION)
SWITCH(message.h.resource.component[0])
@@ -111,7 +149,8 @@ void nssf_state_operational(ogs_fsm_t *s, nssf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN,
- &message, "Invalid HTTP method", message.h.method));
+ &message, "Invalid HTTP method", message.h.method,
+ NULL));
END
break;
@@ -122,7 +161,7 @@ void nssf_state_operational(ogs_fsm_t *s, nssf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Unknown resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -131,7 +170,8 @@ void nssf_state_operational(ogs_fsm_t *s, nssf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
- "Invalid API name", message.h.resource.component[0]));
+ "Invalid API name", message.h.resource.component[0],
+ NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
diff --git a/src/pcf/am-sm.c b/src/pcf/am-sm.c
index b8ba51e5a4..289abadb3b 100644
--- a/src/pcf/am-sm.c
+++ b/src/pcf/am-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2022 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -40,6 +40,7 @@ void pcf_am_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_ue_t *pcf_ue = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id;
ogs_sbi_message_t *message = NULL;
ogs_assert(s);
@@ -47,7 +48,7 @@ void pcf_am_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_sm_debug(e);
- pcf_ue = e->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(e->pcf_ue_id);
ogs_assert(pcf_ue);
switch (e->h.id) {
@@ -60,8 +61,16 @@ void pcf_am_state_operational(ogs_fsm_t *s, pcf_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.method)
CASE(OGS_SBI_HTTP_METHOD_POST)
@@ -83,16 +92,24 @@ void pcf_am_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_ue->supi, message->h.method);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_FORBIDDEN, message,
- "Invalid HTTP method", message->h.method));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid HTTP method", message->h.method, NULL));
END
break;
case OGS_EVENT_SBI_CLIENT:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_NUDR_DR)
@@ -113,7 +130,8 @@ void pcf_am_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, message->res_status,
- NULL, "HTTP response error", pcf_ue->supi));
+ NULL, "HTTP response error", pcf_ue->supi,
+ NULL));
break;
}
@@ -140,7 +158,8 @@ void pcf_am_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, message,
- "Invalid API name", message->h.resource.component[0]));
+ "Invalid API name", message->h.resource.component[0],
+ NULL));
END
break;
@@ -158,7 +177,7 @@ void pcf_am_state_deleted(ogs_fsm_t *s, pcf_event_t *e)
pcf_sm_debug(e);
- pcf_ue = e->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(e->pcf_ue_id);
ogs_assert(pcf_ue);
switch (e->h.id) {
@@ -182,7 +201,7 @@ void pcf_am_state_exception(ogs_fsm_t *s, pcf_event_t *e)
pcf_sm_debug(e);
- pcf_ue = e->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(e->pcf_ue_id);
ogs_assert(pcf_ue);
switch (e->h.id) {
diff --git a/src/pcf/context.c b/src/pcf/context.c
index d6de447e52..67a6ed46a0 100644
--- a/src/pcf/context.c
+++ b/src/pcf/context.c
@@ -119,6 +119,7 @@ static int parse_slice_conf(
do {
ogs_app_slice_conf_t *slice_conf = NULL;
ogs_s_nssai_t s_nssai;
+ bool sst_presence = false;
bool default_indicator = false;
s_nssai.sst = 0;
@@ -131,13 +132,8 @@ static int parse_slice_conf(
if (!strcmp(slice_key, OGS_SST_STRING)) {
const char *v = ogs_yaml_iter_value(&slice_iter);
if (v) {
+ sst_presence = true;
s_nssai.sst = atoi(v);
- if (s_nssai.sst == 1 || s_nssai.sst == 2 ||
- s_nssai.sst == 3 || s_nssai.sst == 4) {
- } else {
- ogs_error("Unknown SST [%d]", s_nssai.sst);
- return OGS_ERROR;
- }
}
} else if (!strcmp(slice_key, OGS_SD_STRING)) {
const char *v = ogs_yaml_iter_value(&slice_iter);
@@ -147,7 +143,7 @@ static int parse_slice_conf(
}
}
- if (s_nssai.sst) {
+ if (sst_presence) {
slice_conf = ogs_app_slice_conf_add(policy_conf, &s_nssai);
if (!slice_conf) {
ogs_error("ogs_app_slice_conf_add() failed [SST:%d,SD:0x%x]",
@@ -213,6 +209,9 @@ static int parse_policy_conf(ogs_yaml_iter_t *parent)
do {
const char *mnc = NULL, *mcc = NULL;
ogs_app_policy_conf_t *policy_conf = NULL;
+ ogs_supi_range_t supi_range;
+
+ memset(&supi_range, 0, sizeof(ogs_supi_range_t));
OGS_YAML_ARRAY_NEXT(&policy_array, &policy_iter);
while (ogs_yaml_iter_next(&policy_iter)) {
@@ -231,21 +230,31 @@ static int parse_policy_conf(ogs_yaml_iter_t *parent)
mnc = ogs_yaml_iter_value(&plmn_id_iter);
}
}
-
+ } else if (!strcmp(policy_key, "supi_range")) {
+ rv = ogs_app_parse_supi_range_conf(&policy_iter, &supi_range);
+ if (rv != OGS_OK) {
+ ogs_error("ogs_app_parse_supi_range_conf() failed");
+ return rv;
+ }
}
}
- if (mcc && mnc) {
+ if (supi_range.num || (mcc && mnc)) {
ogs_plmn_id_t plmn_id;
- ogs_plmn_id_build(&plmn_id, atoi(mcc), atoi(mnc), strlen(mnc));
- policy_conf = ogs_app_policy_conf_add(&plmn_id);
+ if (mcc && mnc)
+ ogs_plmn_id_build(&plmn_id, atoi(mcc), atoi(mnc), strlen(mnc));
+ policy_conf = ogs_app_policy_conf_add(
+ supi_range.num ? &supi_range : NULL,
+ (mcc && mnc) ? &plmn_id : NULL);
if (!policy_conf) {
ogs_error("ogs_app_policy_conf_add() failed "
- "[MCC:%s,MNC:%s]", mcc, mnc);
+ "[supi_range.num:%d] [MCC:%s, MNC:%s]",
+ supi_range.num, mcc, mnc);
return OGS_ERROR;
}
} else {
- ogs_error("No PLMN-ID [MCC:%s, MNC:%s]", mcc, mnc);
+ ogs_error("No SUPI Range[%d] OR PLMN-ID [MCC:%s, MNC:%s]",
+ supi_range.num, mcc, mnc);
return OGS_ERROR;
}
@@ -275,6 +284,7 @@ int pcf_context_parse_config(void)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -286,7 +296,8 @@ int pcf_context_parse_config(void)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, "pcf")) {
+ if ((!strcmp(root_key, "pcf")) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t pcf_iter;
ogs_yaml_iter_recurse(&root_iter, &pcf_iter);
while (ogs_yaml_iter_next(&pcf_iter)) {
@@ -331,9 +342,8 @@ pcf_ue_t *pcf_ue_add(char *supi)
ogs_assert(supi);
- ogs_pool_alloc(&pcf_ue_pool, &pcf_ue);
+ ogs_pool_id_calloc(&pcf_ue_pool, &pcf_ue);
ogs_assert(pcf_ue);
- memset(pcf_ue, 0, sizeof *pcf_ue);
/* SBI Type */
pcf_ue->sbi.type = OGS_SBI_OBJ_UE_TYPE;
@@ -351,7 +361,7 @@ pcf_ue_t *pcf_ue_add(char *supi)
ogs_hash_set(self.supi_hash, pcf_ue->supi, strlen(pcf_ue->supi), pcf_ue);
memset(&e, 0, sizeof(e));
- e.pcf_ue = pcf_ue;
+ e.pcf_ue_id = pcf_ue->id;
ogs_fsm_init(&pcf_ue->sm, pcf_am_state_initial, pcf_am_state_final, &e);
ogs_list_add(&self.pcf_ue_list, pcf_ue);
@@ -368,7 +378,7 @@ void pcf_ue_remove(pcf_ue_t *pcf_ue)
ogs_list_remove(&self.pcf_ue_list, pcf_ue);
memset(&e, 0, sizeof(e));
- e.pcf_ue = pcf_ue;
+ e.pcf_ue_id = pcf_ue->id;
ogs_fsm_fini(&pcf_ue->sm, &e);
/* Free SBI object memory */
@@ -400,7 +410,7 @@ void pcf_ue_remove(pcf_ue_t *pcf_ue)
if (pcf_ue->pei)
ogs_free(pcf_ue->pei);
- ogs_pool_free(&pcf_ue_pool, pcf_ue);
+ ogs_pool_id_free(&pcf_ue_pool, pcf_ue);
}
void pcf_ue_remove_all(void)
@@ -431,9 +441,8 @@ pcf_sess_t *pcf_sess_add(pcf_ue_t *pcf_ue, uint8_t psi)
ogs_assert(pcf_ue);
ogs_assert(psi != OGS_NAS_PDU_SESSION_IDENTITY_UNASSIGNED);
- ogs_pool_alloc(&pcf_sess_pool, &sess);
+ ogs_pool_id_calloc(&pcf_sess_pool, &sess);
ogs_assert(sess);
- memset(sess, 0, sizeof *sess);
ogs_list_init(&sess->app_list);
@@ -456,14 +465,14 @@ pcf_sess_t *pcf_sess_add(pcf_ue_t *pcf_ue, uint8_t psi)
(int)ogs_pool_index(&pcf_sess_pool, sess));
ogs_assert(sess->sm_policy_id);
- sess->pcf_ue = pcf_ue;
+ sess->pcf_ue_id = pcf_ue->id;
sess->psi = psi;
sess->s_nssai.sst = 0;
sess->s_nssai.sd.v = OGS_S_NSSAI_NO_SD_VALUE;
memset(&e, 0, sizeof(e));
- e.sess = sess;
+ e.sess_id = sess->id;
ogs_fsm_init(&sess->sm, pcf_sm_state_initial, pcf_sm_state_final, &e);
ogs_list_add(&pcf_ue->sess_list, sess);
@@ -474,14 +483,16 @@ pcf_sess_t *pcf_sess_add(pcf_ue_t *pcf_ue, uint8_t psi)
void pcf_sess_remove(pcf_sess_t *sess)
{
pcf_event_t e;
+ pcf_ue_t *pcf_ue = NULL;
ogs_assert(sess);
- ogs_assert(sess->pcf_ue);
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
+ ogs_assert(pcf_ue);
- ogs_list_remove(&sess->pcf_ue->sess_list, sess);
+ ogs_list_remove(&pcf_ue->sess_list, sess);
memset(&e, 0, sizeof(e));
- e.sess = sess;
+ e.sess_id = sess->id;
ogs_fsm_fini(&sess->sm, &e);
/* Free SBI object memory */
@@ -495,8 +506,9 @@ void pcf_sess_remove(pcf_sess_t *sess)
ogs_assert(sess->sm_policy_id);
ogs_free(sess->sm_policy_id);
- if (sess->binding_id)
- ogs_free(sess->binding_id);
+ PCF_BINDING_CLEAR(sess);
+ if (sess->binding.client)
+ ogs_sbi_client_remove(sess->binding.client);
if (sess->dnn)
ogs_free(sess->dnn);
@@ -519,7 +531,7 @@ void pcf_sess_remove(pcf_sess_t *sess)
if (sess->subscribed_default_qos)
OpenAPI_subscribed_default_qos_free(sess->subscribed_default_qos);
- ogs_pool_free(&pcf_sess_pool, sess);
+ ogs_pool_id_free(&pcf_sess_pool, sess);
}
void pcf_sess_remove_all(pcf_ue_t *pcf_ue)
@@ -709,14 +721,14 @@ pcf_sess_t *pcf_sess_find_by_ipv6prefix(char *ipv6prefix_string)
&ipv6prefix, (ipv6prefix.len >> 3) + 1);
}
-pcf_ue_t *pcf_ue_cycle(pcf_ue_t *pcf_ue)
+pcf_ue_t *pcf_ue_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&pcf_ue_pool, pcf_ue);
+ return ogs_pool_find_by_id(&pcf_ue_pool, id);
}
-pcf_sess_t *pcf_sess_cycle(pcf_sess_t *sess)
+pcf_sess_t *pcf_sess_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&pcf_sess_pool, sess);
+ return ogs_pool_find_by_id(&pcf_sess_pool, id);
}
pcf_app_t *pcf_app_add(pcf_sess_t *sess)
@@ -798,7 +810,6 @@ int pcf_db_qos_data(char *supi,
ogs_session_data_t *session_data)
{
int rv;
- ogs_session_data_t zero_data;
ogs_app_policy_conf_t *policy_conf = NULL;
@@ -807,19 +818,12 @@ int pcf_db_qos_data(char *supi,
ogs_assert(dnn);
ogs_assert(session_data);
- memset(&zero_data, 0, sizeof(zero_data));
-
- /* session_data should be initialized to zero */
- ogs_assert(memcmp(session_data, &zero_data, sizeof(zero_data)) == 0);
-
- if (plmn_id)
- policy_conf = ogs_app_policy_conf_find_by_plmn_id(plmn_id);
- else
- ogs_warn("No PLMN_ID");
+ memset(session_data, 0, sizeof(*session_data));
+ policy_conf = ogs_app_policy_conf_find(supi, plmn_id);
if (policy_conf) {
rv = ogs_app_config_session_data(
- plmn_id, s_nssai, dnn, session_data);
+ supi, plmn_id, s_nssai, dnn, session_data);
if (rv != OGS_OK)
ogs_error("ogs_app_config_session_data() failed - "
"MCC[%d] MNC[%d] SST[%d] SD[0x%x] DNN[%s]",
diff --git a/src/pcf/context.h b/src/pcf/context.h
index 87d446ec3e..7eda1ed8f4 100644
--- a/src/pcf/context.h
+++ b/src/pcf/context.h
@@ -47,6 +47,7 @@ typedef struct pcf_context_s {
struct pcf_ue_s {
ogs_sbi_object_t sbi;
+ ogs_pool_id_t id;
ogs_fsm_t sm;
char *association_id;
@@ -75,13 +76,41 @@ struct pcf_ue_s {
struct pcf_sess_s {
ogs_sbi_object_t sbi;
+ ogs_pool_id_t id;
ogs_fsm_t sm;
char *sm_policy_id;
/* BSF sends the RESPONSE
* of [POST] /nbsf-management/v1/PcfBindings */
- char *binding_id;
+#define PCF_BINDING_ASSOCIATED(__sESS) \
+ ((__sESS) && ((__sESS)->binding.id))
+#define PCF_BINDING_CLEAR(__sESS) \
+ do { \
+ ogs_assert((__sESS)); \
+ if ((__sESS)->binding.resource_uri) \
+ ogs_free((__sESS)->binding.resource_uri); \
+ (__sESS)->binding.resource_uri = NULL; \
+ if ((__sESS)->binding.id) \
+ ogs_free((__sESS)->binding.id); \
+ (__sESS)->binding.id = NULL; \
+ } while(0)
+#define PCF_BINDING_STORE(__sESS, __rESOURCE_URI, __iD) \
+ do { \
+ ogs_assert((__sESS)); \
+ ogs_assert((__rESOURCE_URI)); \
+ ogs_assert((__iD)); \
+ PCF_BINDING_CLEAR(__sESS); \
+ (__sESS)->binding.resource_uri = ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__sESS)->binding.resource_uri); \
+ (__sESS)->binding.id = ogs_strdup(__iD); \
+ ogs_assert((__sESS)->binding.id); \
+ } while(0)
+ struct {
+ char *resource_uri;
+ char *id;
+ ogs_sbi_client_t *client;
+ } binding;
uint8_t psi; /* PDU Session Identity */
@@ -127,7 +156,7 @@ struct pcf_sess_s {
ogs_list_t app_list;
/* Related Context */
- pcf_ue_t *pcf_ue;
+ ogs_pool_id_t pcf_ue_id;
};
typedef struct pcf_app_s {
@@ -175,8 +204,8 @@ pcf_sess_t *pcf_sess_find_by_ipv6prefix(char *ipv6prefix_string);
int pcf_sessions_number_by_snssai_and_dnn(
pcf_ue_t *pcf_ue, ogs_s_nssai_t *s_nssai, char *dnn);
-pcf_ue_t *pcf_ue_cycle(pcf_ue_t *pcf_ue);
-pcf_sess_t *pcf_sess_cycle(pcf_sess_t *sess);
+pcf_ue_t *pcf_ue_find_by_id(ogs_pool_id_t id);
+pcf_sess_t *pcf_sess_find_by_id(ogs_pool_id_t id);
pcf_app_t *pcf_app_add(pcf_sess_t *sess);
int pcf_app_remove(pcf_app_t *app);
diff --git a/src/pcf/event.h b/src/pcf/event.h
index 38e2a6f7fb..9ecadf287e 100644
--- a/src/pcf/event.h
+++ b/src/pcf/event.h
@@ -33,8 +33,8 @@ typedef struct pcf_app_s pcf_app_t;
typedef struct pcf_event_s {
ogs_event_t h;
- pcf_ue_t *pcf_ue;
- pcf_sess_t *sess;
+ ogs_pool_id_t pcf_ue_id;
+ ogs_pool_id_t sess_id;
pcf_app_t *app;
} pcf_event_t;
diff --git a/src/pcf/init.c b/src/pcf/init.c
index f0d47ea926..d4ac258b52 100644
--- a/src/pcf/init.c
+++ b/src/pcf/init.c
@@ -37,6 +37,10 @@ int pcf_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_PCF);
pcf_context_init();
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
+ if (rv != OGS_OK) return rv;
+
rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
if (rv != OGS_OK) return rv;
@@ -46,10 +50,6 @@ int pcf_initialize(void)
rv = pcf_context_parse_config();
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
- if (rv != OGS_OK) return rv;
-
ogs_metrics_context_open(ogs_metrics_self());
if (ogs_app()->db_uri) {
diff --git a/src/pcf/nbsf-build.c b/src/pcf/nbsf-build.c
index 685e0fab3c..0454b8df2a 100644
--- a/src/pcf/nbsf-build.c
+++ b/src/pcf/nbsf-build.c
@@ -35,15 +35,14 @@ ogs_sbi_request_t *pcf_nbsf_management_build_register(
ogs_sbi_nf_instance_t *nf_instance = NULL;
ogs_sbi_nf_service_t *nf_service = NULL;
+ OpenAPI_nf_type_e requester_nf_type = OpenAPI_nf_type_NULL;
+
int i;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
- nf_instance = data;
- ogs_assert(nf_instance);
-
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_POST;
message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NBSF_MANAGEMENT;
@@ -69,6 +68,13 @@ ogs_sbi_request_t *pcf_nbsf_management_build_register(
}
PcfBinding.dnn = sess->dnn;
+ requester_nf_type = NF_INSTANCE_TYPE(ogs_sbi_self()->nf_instance);
+ ogs_assert(requester_nf_type);
+ nf_instance = ogs_sbi_nf_instance_find_by_service_type(
+ OGS_SBI_SERVICE_TYPE_NPCF_POLICYAUTHORIZATION,
+ requester_nf_type);
+ ogs_assert(nf_instance);
+
nf_service = ogs_sbi_nf_service_find_by_name(
nf_instance, (char *)OGS_SBI_SERVICE_NAME_NPCF_POLICYAUTHORIZATION);
if (!nf_service) {
@@ -127,10 +133,6 @@ ogs_sbi_request_t *pcf_nbsf_management_build_register(
}
}
- if (!sess->s_nssai.sst) {
- ogs_error("No SST");
- goto end;
- }
if (PcfIpEndPointList->count)
PcfBinding.pcf_ip_end_points = PcfIpEndPointList;
else
@@ -187,17 +189,13 @@ ogs_sbi_request_t *pcf_nbsf_management_build_de_register(
ogs_sbi_request_t *request = NULL;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
- ogs_assert(sess->binding_id);
+ ogs_assert(sess->binding.resource_uri);
memset(&message, 0, sizeof(message));
message.h.method = (char *)OGS_SBI_HTTP_METHOD_DELETE;
- message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NBSF_MANAGEMENT;
- message.h.api.version = (char *)OGS_SBI_API_V1;
- message.h.resource.component[0] =
- (char *)OGS_SBI_RESOURCE_NAME_PCF_BINDINGS;
- message.h.resource.component[1] = sess->binding_id;
+ message.h.uri = sess->binding.resource_uri;
request = ogs_sbi_build_request(&message);
ogs_expect(request);
diff --git a/src/pcf/nbsf-handler.c b/src/pcf/nbsf-handler.c
index 56f6345ebb..2f4c397946 100644
--- a/src/pcf/nbsf-handler.c
+++ b/src/pcf/nbsf-handler.c
@@ -24,46 +24,25 @@
bool pcf_nbsf_management_handle_register(
pcf_sess_t *sess, ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg)
{
- int i, rv, status = 0;
+ int rv, status = 0;
char *strerror = NULL;
pcf_ue_t *pcf_ue = NULL;
ogs_sbi_server_t *server = NULL;
- ogs_sbi_message_t sendmsg;
ogs_sbi_header_t header;
- ogs_sbi_response_t *response = NULL;
-
ogs_sbi_message_t message;
- ogs_session_data_t session_data;
-
- ogs_session_t *session = NULL;
-
OpenAPI_pcf_binding_t *PcfBinding = NULL;
- OpenAPI_sm_policy_decision_t SmPolicyDecision;
-
- OpenAPI_lnode_t *node = NULL;
-
- OpenAPI_list_t *SessRuleList = NULL;
- OpenAPI_map_t *SessRuleMap = NULL;
- OpenAPI_session_rule_t *SessionRule = NULL;
-
- OpenAPI_ambr_t AuthSessAmbr;
- OpenAPI_authorized_default_qos_t AuthDefQos;
-
- OpenAPI_list_t *PccRuleList = NULL;
- OpenAPI_map_t *PccRuleMap = NULL;
- OpenAPI_pcc_rule_t *PccRule = NULL;
-
- OpenAPI_list_t *QosDecisionList = NULL;
- OpenAPI_map_t *QosDecisionMap = NULL;
- OpenAPI_qos_data_t *QosData = NULL;
-
- OpenAPI_list_t *PolicyCtrlReqTriggers = NULL;
+ bool rc;
+ ogs_sbi_client_t *client = NULL;
+ OpenAPI_uri_scheme_e scheme = OpenAPI_uri_scheme_NULL;
+ char *fqdn = NULL;
+ uint16_t fqdn_port = 0;
+ ogs_sockaddr_t *addr = NULL, *addr6 = NULL;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
ogs_assert(stream);
server = ogs_sbi_server_from_stream(stream);
@@ -71,8 +50,6 @@ bool pcf_nbsf_management_handle_register(
ogs_assert(recvmsg);
- memset(&session_data, 0, sizeof(ogs_session_data_t));
-
ogs_assert(pcf_ue->supi);
ogs_assert(sess->dnn);
@@ -93,7 +70,7 @@ bool pcf_nbsf_management_handle_register(
PcfBinding = recvmsg->PcfBinding;
if (PcfBinding->supp_feat) {
uint64_t supported_features =
- ogs_uint64_from_string(PcfBinding->supp_feat);
+ ogs_uint64_from_string_hexadecimal(PcfBinding->supp_feat);
sess->management_features &= supported_features;
}
@@ -115,313 +92,69 @@ bool pcf_nbsf_management_handle_register(
goto cleanup;
}
- if (sess->binding_id)
- ogs_free(sess->binding_id);
- sess->binding_id = ogs_strdup(message.h.resource.component[1]);
- ogs_assert(sess->binding_id);
-
- ogs_sbi_header_free(&header);
-
- rv = pcf_db_qos_data(
- pcf_ue->supi,
- sess->home.presence == true ? &sess->home.plmn_id : NULL,
- &sess->s_nssai, sess->dnn, &session_data);
- if (rv != OGS_OK) {
- strerror = ogs_msprintf("[%s:%d] Cannot find SUPI in DB",
- pcf_ue->supi, sess->psi);
- status = OGS_SBI_HTTP_STATUS_NOT_FOUND;
+ rc = ogs_sbi_getaddr_from_uri(
+ &scheme, &fqdn, &fqdn_port, &addr, &addr6, header.uri);
+ if (rc == false || scheme == OpenAPI_uri_scheme_NULL) {
+ strerror = ogs_msprintf("[%s:%d] Invalid URI [%s]",
+ pcf_ue->supi, sess->psi, header.uri);
+ ogs_sbi_header_free(&header);
goto cleanup;
}
- session = &session_data.session;
+ client = ogs_sbi_client_find(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ ogs_debug("[%s:%d] ogs_sbi_client_add()", pcf_ue->supi, sess->psi);
+ client = ogs_sbi_client_add(scheme, fqdn, fqdn_port, addr, addr6);
+ if (!client) {
+ strerror = ogs_msprintf("[%s:%d] ogs_sbi_client_add() failed",
+ pcf_ue->supi, sess->psi);
- if (!session->qos.index) {
- strerror = ogs_msprintf("[%s:%d] No 5QI", pcf_ue->supi, sess->psi);
- status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
- goto cleanup;
- }
- if (!session->qos.arp.priority_level) {
- strerror = ogs_msprintf("[%s:%d] No Priority Level",
- pcf_ue->supi, sess->psi);
- status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
- goto cleanup;
- }
-
- if (!session->ambr.uplink && !session->ambr.downlink) {
- strerror = ogs_msprintf("[%s:%d] No Session-AMBR",
- pcf_ue->supi, sess->psi);
- status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
- goto cleanup;
- }
+ ogs_sbi_header_free(&header);
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
- memset(&SmPolicyDecision, 0, sizeof(SmPolicyDecision));
-
- PolicyCtrlReqTriggers = OpenAPI_list_create();
- ogs_assert(PolicyCtrlReqTriggers);
-
- /**************************************************************
- * Session Rule
- *************************************************************/
- SessRuleList = OpenAPI_list_create();
- ogs_assert(SessRuleList);
-
- SessionRule = ogs_calloc(1, sizeof(*SessionRule));
- ogs_assert(SessionRule);
-
- /* Only 1 SessionRule is used */
- SessionRule->sess_rule_id = (char *)"1";
-
- if (OGS_SBI_FEATURES_IS_SET(sess->smpolicycontrol_features,
- OGS_SBI_NPCF_SMPOLICYCONTROL_DN_AUTHORIZATION)) {
- if (sess->subscribed_sess_ambr) {
- ogs_bitrate_t subscribed_sess_ambr;
-
- subscribed_sess_ambr.uplink = ogs_sbi_bitrate_from_string(
- sess->subscribed_sess_ambr->uplink);
- subscribed_sess_ambr.downlink = ogs_sbi_bitrate_from_string(
- sess->subscribed_sess_ambr->downlink);
- if (((subscribed_sess_ambr.uplink / 1000) !=
- (session->ambr.uplink / 1000)) ||
- ((subscribed_sess_ambr.downlink / 1000) !=
- (session->ambr.downlink / 1000))) {
-
- OpenAPI_list_add(PolicyCtrlReqTriggers,
- (void *)OpenAPI_policy_control_request_trigger_SE_AMBR_CH);
- }
-
- memset(&AuthSessAmbr, 0, sizeof(AuthSessAmbr));
- AuthSessAmbr.uplink = ogs_sbi_bitrate_to_string(
- session->ambr.uplink, OGS_SBI_BITRATE_KBPS);
- AuthSessAmbr.downlink = ogs_sbi_bitrate_to_string(
- session->ambr.downlink, OGS_SBI_BITRATE_KBPS);
- SessionRule->auth_sess_ambr = &AuthSessAmbr;
+ goto cleanup;
}
}
- if (sess->subscribed_default_qos) {
- bool triggered = false;
-
- memset(&AuthDefQos, 0, sizeof(AuthDefQos));
- AuthDefQos.arp = ogs_calloc(1, sizeof(OpenAPI_arp_t));
- ogs_assert(AuthDefQos.arp);
-
- AuthDefQos.is__5qi = true;
- AuthDefQos._5qi = session->qos.index;
- AuthDefQos.is_priority_level = true;
- AuthDefQos.priority_level = session->qos.arp.priority_level;
-
- if (session->qos.arp.pre_emption_capability ==
- OGS_5GC_PRE_EMPTION_ENABLED)
- AuthDefQos.arp->preempt_cap =
- OpenAPI_preemption_capability_MAY_PREEMPT;
- else if (session->qos.arp.pre_emption_capability ==
- OGS_5GC_PRE_EMPTION_DISABLED)
- AuthDefQos.arp->preempt_cap =
- OpenAPI_preemption_capability_NOT_PREEMPT;
- ogs_assert(AuthDefQos.arp->preempt_cap);
-
- if (session->qos.arp.pre_emption_vulnerability ==
- OGS_5GC_PRE_EMPTION_ENABLED)
- AuthDefQos.arp->preempt_vuln =
- OpenAPI_preemption_vulnerability_PREEMPTABLE;
- else if (session->qos.arp.pre_emption_vulnerability ==
- OGS_5GC_PRE_EMPTION_DISABLED)
- AuthDefQos.arp->preempt_vuln =
- OpenAPI_preemption_vulnerability_NOT_PREEMPTABLE;
- ogs_assert(AuthDefQos.arp->preempt_vuln);
- AuthDefQos.arp->priority_level = session->qos.arp.priority_level;
-
- SessionRule->auth_def_qos = &AuthDefQos;
-
- if (sess->subscribed_default_qos->_5qi != AuthDefQos._5qi)
- triggered = true;
- if (sess->subscribed_default_qos->priority_level !=
- AuthDefQos.priority_level)
- triggered = true;
- if (sess->subscribed_default_qos->arp) {
- if (sess->subscribed_default_qos->arp->priority_level !=
- AuthDefQos.arp->priority_level)
- triggered = true;
- if (sess->subscribed_default_qos->arp->preempt_cap !=
- AuthDefQos.arp->preempt_cap)
- triggered = true;
- if (sess->subscribed_default_qos->arp->preempt_vuln !=
- AuthDefQos.arp->preempt_vuln)
- triggered = true;
-
- }
-
- if (triggered)
- OpenAPI_list_add(PolicyCtrlReqTriggers,
- (void *)OpenAPI_policy_control_request_trigger_DEF_QOS_CH);
-
- }
+ OGS_SBI_SETUP_CLIENT(&sess->binding, client);
- SessRuleMap = OpenAPI_map_create(
- SessionRule->sess_rule_id, SessionRule);
- ogs_assert(SessRuleMap);
+ ogs_free(fqdn);
+ ogs_freeaddrinfo(addr);
+ ogs_freeaddrinfo(addr6);
- OpenAPI_list_add(SessRuleList, SessRuleMap);
+ PCF_BINDING_STORE(sess, header.uri, message.h.resource.component[1]);
- if (SessRuleList->count)
- SmPolicyDecision.sess_rules = SessRuleList;
-
- /**************************************************************
- * PCC Rule & QoS Decision
- *************************************************************/
- PccRuleList = OpenAPI_list_create();
- ogs_assert(PccRuleList);
-
- QosDecisionList = OpenAPI_list_create();
- ogs_assert(QosDecisionList);
-
- for (i = 0; i < session_data.num_of_pcc_rule; i++) {
- ogs_pcc_rule_t *pcc_rule = &session_data.pcc_rule[i];
-
- ogs_assert(pcc_rule);
- ogs_assert(pcc_rule->id);
-
- if (!pcc_rule->num_of_flow) {
- /* No Flow */
- continue;
- }
-
- PccRule = ogs_sbi_build_pcc_rule(pcc_rule, 1);
- ogs_assert(PccRule->pcc_rule_id);
-
- PccRuleMap = OpenAPI_map_create(PccRule->pcc_rule_id, PccRule);
- ogs_assert(PccRuleMap);
-
- OpenAPI_list_add(PccRuleList, PccRuleMap);
-
- QosData = ogs_sbi_build_qos_data(pcc_rule);
- ogs_assert(QosData);
- ogs_assert(QosData->qos_id);
-
- QosDecisionMap = OpenAPI_map_create(QosData->qos_id, QosData);
- ogs_assert(QosDecisionMap);
-
- OpenAPI_list_add(QosDecisionList, QosDecisionMap);
- }
-
- if (PccRuleList->count)
- SmPolicyDecision.pcc_rules = PccRuleList;
-
- if (QosDecisionList->count)
- SmPolicyDecision.qos_decs = QosDecisionList;
-
- /* Policy Control Request Triggers */
- if (PolicyCtrlReqTriggers->count)
- SmPolicyDecision.policy_ctrl_req_triggers = PolicyCtrlReqTriggers;
-
- /* Supported Features */
- if (sess->smpolicycontrol_features) {
- SmPolicyDecision.supp_feat =
- ogs_uint64_to_string(sess->smpolicycontrol_features);
- ogs_assert(SmPolicyDecision.supp_feat);
- }
-
- memset(&header, 0, sizeof(header));
- header.service.name = (char *)OGS_SBI_SERVICE_NAME_NPCF_SMPOLICYCONTROL;
- header.api.version = (char *)OGS_SBI_API_V1;
- header.resource.component[0] = (char *)OGS_SBI_RESOURCE_NAME_POLICIES;
- header.resource.component[1] = sess->sm_policy_id;
-
- memset(&sendmsg, 0, sizeof(sendmsg));
- sendmsg.SmPolicyDecision = &SmPolicyDecision;
- sendmsg.http.location = ogs_sbi_server_uri(server, &header);
-
- response = ogs_sbi_build_response(
- &sendmsg, OGS_SBI_HTTP_STATUS_CREATED);
- ogs_assert(response);
- ogs_assert(true == ogs_sbi_server_send_response(stream, response));
-
- ogs_free(sendmsg.http.location);
-
- OpenAPI_list_for_each(SessRuleList, node) {
- SessRuleMap = node->data;
- if (SessRuleMap) {
- SessionRule = SessRuleMap->value;
- if (SessionRule) {
- if (SessionRule->auth_sess_ambr) {
- if (SessionRule->auth_sess_ambr->uplink)
- ogs_free(SessionRule->auth_sess_ambr->uplink);
- if (SessionRule->auth_sess_ambr->downlink)
- ogs_free(SessionRule->auth_sess_ambr->downlink);
- }
- if (SessionRule->auth_def_qos) {
- ogs_free(SessionRule->auth_def_qos->arp);
-
- }
- ogs_free(SessionRule);
- }
- ogs_free(SessRuleMap);
- }
- }
- OpenAPI_list_free(SessRuleList);
-
- OpenAPI_list_for_each(PccRuleList, node) {
- PccRuleMap = node->data;
- if (PccRuleMap) {
- PccRule = PccRuleMap->value;
- if (PccRule)
- ogs_sbi_free_pcc_rule(PccRule);
- ogs_free(PccRuleMap);
- }
- }
- OpenAPI_list_free(PccRuleList);
-
- OpenAPI_list_for_each(QosDecisionList, node) {
- QosDecisionMap = node->data;
- if (QosDecisionMap) {
- QosData = QosDecisionMap->value;
- if (QosData)
- ogs_sbi_free_qos_data(QosData);
- ogs_free(QosDecisionMap);
- }
- }
- OpenAPI_list_free(QosDecisionList);
-
- OpenAPI_list_free(PolicyCtrlReqTriggers);
-
- if (SmPolicyDecision.supp_feat)
- ogs_free(SmPolicyDecision.supp_feat);
-
- pcf_metrics_inst_by_slice_add(&sess->pcf_ue->guami.plmn_id,
- &sess->s_nssai, PCF_METR_CTR_PA_POLICYSMASSOSUCC, 1);
+ ogs_sbi_header_free(&header);
- OGS_SESSION_DATA_FREE(&session_data);
+ /* Send Response for SM Policy Association establishment */
+ rc = pcf_sbi_send_smpolicycontrol_create_response(sess, stream);
+ ogs_expect(rc == true);
- return true;
+ return rc;
cleanup:
ogs_assert(strerror);
ogs_assert(status);
ogs_error("%s", strerror);
- ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL));
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, status, recvmsg, strerror, NULL, NULL));
ogs_free(strerror);
- OGS_SESSION_DATA_FREE(&session_data);
-
return false;
}
bool pcf_nbsf_management_handle_de_register(
pcf_sess_t *sess, ogs_sbi_stream_t *stream, ogs_sbi_message_t *recvmsg)
{
- ogs_sbi_message_t sendmsg;
- ogs_sbi_response_t *response = NULL;
+ bool rc;
ogs_assert(sess);
ogs_assert(stream);
- memset(&sendmsg, 0, sizeof(sendmsg));
-
- response = ogs_sbi_build_response(
- &sendmsg, OGS_SBI_HTTP_STATUS_NO_CONTENT);
- ogs_assert(response);
- ogs_assert(true == ogs_sbi_server_send_response(stream, response));
+ rc = ogs_sbi_send_response(stream, OGS_SBI_HTTP_STATUS_NO_CONTENT);
+ ogs_expect(rc == true);
- return true;
+ return rc;
}
diff --git a/src/pcf/nnrf-handler.c b/src/pcf/nnrf-handler.c
index 35fb52be36..4a32475801 100644
--- a/src/pcf/nnrf-handler.c
+++ b/src/pcf/nnrf-handler.c
@@ -23,12 +23,11 @@
void pcf_nnrf_handle_nf_discover(
ogs_sbi_xact_t *xact, ogs_sbi_message_t *recvmsg)
{
- int r;
ogs_sbi_nf_instance_t *nf_instance = NULL;
ogs_sbi_object_t *sbi_object = NULL;
+ ogs_pool_id_t sbi_object_id = OGS_INVALID_POOL_ID;
ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
ogs_sbi_discovery_option_t *discovery_option = NULL;
- ogs_sbi_stream_t *stream = NULL;
pcf_ue_t *pcf_ue = NULL;
pcf_sess_t *sess = NULL;
@@ -48,8 +47,11 @@ void pcf_nnrf_handle_nf_discover(
requester_nf_type = xact->requester_nf_type;
ogs_assert(requester_nf_type);
+ sbi_object_id = xact->sbi_object_id;
+ ogs_assert(sbi_object_id >= OGS_MIN_POOL_ID &&
+ sbi_object_id <= OGS_MAX_POOL_ID);
+
discovery_option = xact->discovery_option;
- stream = xact->assoc_stream;
SearchResult = recvmsg->SearchResult;
if (!SearchResult) {
@@ -58,12 +60,12 @@ void pcf_nnrf_handle_nf_discover(
}
if (sbi_object->type == OGS_SBI_OBJ_UE_TYPE) {
- pcf_ue = (pcf_ue_t *)sbi_object;
+ pcf_ue = pcf_ue_find_by_id(sbi_object_id);
ogs_assert(pcf_ue);
} else if (sbi_object->type == OGS_SBI_OBJ_SESS_TYPE) {
- sess = (pcf_sess_t *)sbi_object;
+ sess = pcf_sess_find_by_id(sbi_object_id);
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
} else {
ogs_fatal("(NF discover) Not implemented [%s:%d]",
@@ -81,28 +83,28 @@ void pcf_nnrf_handle_nf_discover(
sess ? sess->psi : 0,
ogs_sbi_service_type_to_name(service_type),
OpenAPI_nf_type_ToString(requester_nf_type));
+
+ /* If BSF is not reachable, we ignore NBSF_MANAGMENT service */
+ if (service_type == OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT) {
+ ogs_sbi_stream_t *stream = NULL;
+
+ ogs_assert(xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ xact->assoc_stream_id <= OGS_MAX_POOL_ID);
+ stream = ogs_sbi_stream_find_by_id(xact->assoc_stream_id);
+ ogs_assert(stream);
+
+ /* Send Response for SM Policy Association establishment */
+ ogs_expect(true ==
+ pcf_sbi_send_smpolicycontrol_create_response(sess, stream));
+
+ ogs_sbi_xact_remove(xact);
+ }
return;
}
OGS_SBI_SETUP_NF_INSTANCE(
sbi_object->service_type_array[service_type], nf_instance);
- switch (service_type) {
- case OGS_SBI_SERVICE_TYPE_NPCF_POLICYAUTHORIZATION:
- ogs_sbi_xact_remove(xact);
-
- ogs_assert(sess);
- ogs_assert(stream);
- r = pcf_sess_sbi_discover_and_send(
- OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT, NULL,
- pcf_nbsf_management_build_register,
- sess, stream, nf_instance);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- break;
- default:
- ogs_assert(xact->request);
- ogs_expect(true == pcf_sbi_send_request(nf_instance, xact));
- break;
- }
+ ogs_assert(xact->request);
+ ogs_expect(true == pcf_sbi_send_request(nf_instance, xact));
}
diff --git a/src/pcf/npcf-handler.c b/src/pcf/npcf-handler.c
index e5d5ad751a..930567ffca 100644
--- a/src/pcf/npcf-handler.c
+++ b/src/pcf/npcf-handler.c
@@ -51,7 +51,8 @@ bool pcf_npcf_am_policy_control_handle_create(pcf_ue_t *pcf_ue,
ogs_error("[%s] No PolicyAssociationRequest", pcf_ue->supi);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- message, "[%s] No PolicyAssociationRequest", pcf_ue->supi));
+ message, "[%s] No PolicyAssociationRequest", pcf_ue->supi,
+ NULL));
return false;
}
@@ -59,7 +60,7 @@ bool pcf_npcf_am_policy_control_handle_create(pcf_ue_t *pcf_ue,
ogs_error("[%s] No notificationUri", pcf_ue->supi);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- message, "No notificationUri", pcf_ue->supi));
+ message, "No notificationUri", pcf_ue->supi, NULL));
return false;
}
@@ -67,7 +68,7 @@ bool pcf_npcf_am_policy_control_handle_create(pcf_ue_t *pcf_ue,
ogs_error("[%s] No supi", pcf_ue->supi);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- message, "No supi", pcf_ue->supi));
+ message, "No supi", pcf_ue->supi, NULL));
return false;
}
@@ -75,7 +76,7 @@ bool pcf_npcf_am_policy_control_handle_create(pcf_ue_t *pcf_ue,
ogs_error("[%s] No suppFeat", pcf_ue->supi);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- message, "No suppFeat", pcf_ue->supi));
+ message, "No suppFeat", pcf_ue->supi, NULL));
return false;
}
@@ -86,7 +87,7 @@ bool pcf_npcf_am_policy_control_handle_create(pcf_ue_t *pcf_ue,
pcf_ue->supi, PolicyAssociationRequest->notification_uri);
ogs_assert(true ==
ogs_sbi_server_send_error(stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- message, "[%s] Invalid URI", pcf_ue->supi));
+ message, "[%s] Invalid URI", pcf_ue->supi, NULL));
return false;
}
@@ -117,7 +118,8 @@ bool pcf_npcf_am_policy_control_handle_create(pcf_ue_t *pcf_ue,
ogs_freeaddrinfo(addr6);
supported_features =
- ogs_uint64_from_string(PolicyAssociationRequest->supp_feat);
+ ogs_uint64_from_string_hexadecimal(
+ PolicyAssociationRequest->supp_feat);
pcf_ue->am_policy_control_features &= supported_features;
if (PolicyAssociationRequest->gpsi) {
@@ -234,7 +236,7 @@ bool pcf_npcf_smpolicycontrol_handle_create(pcf_sess_t *sess,
char *home_network_domain = NULL;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(stream);
ogs_assert(message);
@@ -298,13 +300,6 @@ bool pcf_npcf_smpolicycontrol_handle_create(pcf_sess_t *sess,
goto cleanup;
}
- if (!sliceInfo->sst) {
- strerror = ogs_msprintf("[%s:%d] No sliceInfo->sst",
- pcf_ue->supi, sess->psi);
- status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
- goto cleanup;
- }
-
servingNetwork = SmPolicyContextData->serving_network;
if (servingNetwork) {
if (!servingNetwork->mcc) {
@@ -334,7 +329,8 @@ bool pcf_npcf_smpolicycontrol_handle_create(pcf_sess_t *sess,
if (SmPolicyContextData->supp_feat) {
uint64_t supported_features =
- ogs_uint64_from_string(SmPolicyContextData->supp_feat);
+ ogs_uint64_from_string_hexadecimal(
+ SmPolicyContextData->supp_feat);
sess->smpolicycontrol_features &= supported_features;
} else {
sess->smpolicycontrol_features = 0;
@@ -499,36 +495,12 @@ bool pcf_npcf_smpolicycontrol_handle_create(pcf_sess_t *sess,
if (ogs_sbi_supi_in_vplmn(pcf_ue->supi) == true) {
/* Visited PLMN */
- ogs_sbi_nf_instance_t *nf_instance = NULL;
- ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
-
- service_type = OGS_SBI_SERVICE_TYPE_NPCF_POLICYAUTHORIZATION;
-
- nf_instance = sess->sbi.service_type_array[service_type].nf_instance;
- if (!nf_instance) {
- OpenAPI_nf_type_e requester_nf_type =
- NF_INSTANCE_TYPE(ogs_sbi_self()->nf_instance);
- ogs_assert(requester_nf_type);
- nf_instance = ogs_sbi_nf_instance_find_by_service_type(
- service_type, requester_nf_type);
- if (nf_instance)
- OGS_SBI_SETUP_NF_INSTANCE(
- sess->sbi.service_type_array[service_type],
- nf_instance);
- }
-
- if (nf_instance) {
- r = pcf_sess_sbi_discover_and_send(
- OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT, NULL,
- pcf_nbsf_management_build_register,
- sess, stream, nf_instance);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- } else {
- r = pcf_sess_sbi_discover_only(sess, stream, service_type);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- }
+ r = pcf_sess_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT, NULL,
+ pcf_nbsf_management_build_register,
+ sess, stream, NULL);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
return (r == OGS_OK);
} else {
@@ -546,8 +518,21 @@ bool pcf_npcf_smpolicycontrol_handle_create(pcf_sess_t *sess,
ogs_assert(status);
ogs_assert(strerror);
ogs_error("%s", strerror);
+ /*
+ * TS29.512
+ * 4.2.2.2 SM Policy Association establishment
+ *
+ * If the PCF is, due to incomplete, erroneous or missing
+ * information (e.g. QoS, RAT type, subscriber information)
+ * not able to provision a policy decision as response to
+ * the request for PCC rules by the SMF, the PCF may reject
+ * the request and include in an HTTP "400 Bad Request"
+ * response message the "cause" attribute of the ProblemDetails
+ * data structure set to "ERROR_INITIAL_PARAMETERS".
+ */
ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, message, strerror, NULL));
+ ogs_sbi_server_send_error(stream, status, message,
+ strerror, NULL, "ERROR_INITIAL_PARAMETERS"));
ogs_free(strerror);
return false;
@@ -565,7 +550,7 @@ bool pcf_npcf_smpolicycontrol_handle_delete(pcf_sess_t *sess,
OpenAPI_sm_policy_delete_data_t *SmPolicyDeleteData = NULL;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(stream);
ogs_assert(message);
@@ -583,19 +568,17 @@ bool pcf_npcf_smpolicycontrol_handle_delete(pcf_sess_t *sess,
if (pcf_sessions_number_by_snssai_and_dnn(
pcf_ue, &sess->s_nssai, sess->dnn) > 1) {
- ogs_sbi_message_t sendmsg;
- memset(&sendmsg, 0, sizeof(sendmsg));
-
- ogs_sbi_response_t *response = ogs_sbi_build_response(
- &sendmsg, OGS_SBI_HTTP_STATUS_NO_CONTENT);
- ogs_assert(response);
- ogs_assert(true == ogs_sbi_server_send_response(stream, response));
- } else {
+ ogs_expect(true ==
+ ogs_sbi_send_response(stream, OGS_SBI_HTTP_STATUS_NO_CONTENT));
+ } else if (sess->binding.resource_uri) {
r = pcf_sess_sbi_discover_and_send(
OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT, NULL,
pcf_nbsf_management_build_de_register, sess, stream, NULL);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
+ } else {
+ ogs_expect(true ==
+ ogs_sbi_send_response(stream, OGS_SBI_HTTP_STATUS_NO_CONTENT));
}
return true;
@@ -605,7 +588,8 @@ bool pcf_npcf_smpolicycontrol_handle_delete(pcf_sess_t *sess,
ogs_assert(strerror);
ogs_error("%s", strerror);
ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, message, strerror, NULL));
+ ogs_sbi_server_send_error(stream, status, message, strerror, NULL,
+ NULL));
ogs_free(strerror);
return false;
@@ -665,7 +649,7 @@ bool pcf_npcf_policyauthorization_handle_create(pcf_sess_t *sess,
OpenAPI_lnode_t *node = NULL, *node2 = NULL, *node3 = NULL;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(stream);
ogs_assert(recvmsg);
@@ -721,7 +705,8 @@ bool pcf_npcf_policyauthorization_handle_create(pcf_sess_t *sess,
goto cleanup;
}
- supported_features = ogs_uint64_from_string(AscReqData->supp_feat);
+ supported_features = ogs_uint64_from_string_hexadecimal(
+ AscReqData->supp_feat);
sess->policyauthorization_features &= supported_features;
if (sess->policyauthorization_features != supported_features) {
@@ -737,6 +722,15 @@ bool pcf_npcf_policyauthorization_handle_create(pcf_sess_t *sess,
if (MediaComponentMap) {
MediaComponent = MediaComponentMap->value;
if (MediaComponent) {
+ if (ims_data.num_of_media_component >=
+ OGS_ARRAY_SIZE(ims_data.media_component)) {
+ ogs_error("OVERFLOW ims_data.num_of_media_component "
+ "[%d:%d:%d]",
+ ims_data.num_of_media_component,
+ OGS_MAX_NUM_OF_MEDIA_COMPONENT,
+ (int)OGS_ARRAY_SIZE(ims_data.media_component));
+ break;
+ }
media_component = &ims_data.
media_component[ims_data.num_of_media_component];
media_component->media_component_number =
@@ -764,6 +758,15 @@ bool pcf_npcf_policyauthorization_handle_create(pcf_sess_t *sess,
SubComponentList = MediaComponent->med_sub_comps;
OpenAPI_list_for_each(SubComponentList, node2) {
+ if (media_component->num_of_sub >=
+ OGS_ARRAY_SIZE(media_component->sub)) {
+ ogs_error("OVERFLOW media_component->num_of_sub "
+ "[%d:%d:%d]",
+ media_component->num_of_sub,
+ OGS_MAX_NUM_OF_MEDIA_SUB_COMPONENT,
+ (int)OGS_ARRAY_SIZE(media_component->sub));
+ break;
+ }
sub = &media_component->sub[media_component->num_of_sub];
SubComponentMap = node2->data;
@@ -777,8 +780,15 @@ bool pcf_npcf_policyauthorization_handle_create(pcf_sess_t *sess,
OpenAPI_list_for_each(fDescList, node3) {
ogs_flow_t *flow = NULL;
- ogs_assert(sub->num_of_flow <
- OGS_MAX_NUM_OF_FLOW_IN_MEDIA_SUB_COMPONENT);
+ if (sub->num_of_flow >=
+ OGS_ARRAY_SIZE(sub->flow)) {
+ ogs_error(
+ "OVERFLOW sub->num_of_flow [%d:%d:%d]",
+ sub->num_of_flow,
+ OGS_MAX_NUM_OF_FLOW_IN_MEDIA_SUB_COMPONENT,
+ (int)OGS_ARRAY_SIZE(sub->flow));
+ break;
+ }
flow = &sub->flow[sub->num_of_flow];
if (node3->data) {
flow->description = ogs_strdup(node3->data);
@@ -1071,7 +1081,8 @@ bool pcf_npcf_policyauthorization_handle_create(pcf_sess_t *sess,
ogs_assert(strerror);
ogs_error("%s", strerror);
ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL));
+ ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL,
+ NULL));
ogs_free(strerror);
OpenAPI_list_for_each(PccRuleList, node) {
@@ -1129,7 +1140,7 @@ bool pcf_npcf_policyauthorization_handle_update(
OpenAPI_list_t *SubComponentList = NULL;
OpenAPI_map_t *SubComponentMap = NULL;
- OpenAPI_media_sub_component_t *SubComponent = NULL;
+ OpenAPI_media_sub_component_rm_t *SubComponent = NULL;
OpenAPI_list_t *fDescList = NULL;
@@ -1146,7 +1157,7 @@ bool pcf_npcf_policyauthorization_handle_update(
OpenAPI_lnode_t *node = NULL, *node2 = NULL, *node3 = NULL;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(app_session);
ogs_assert(stream);
ogs_assert(recvmsg);
@@ -1184,6 +1195,15 @@ bool pcf_npcf_policyauthorization_handle_update(
if (MediaComponentMap) {
MediaComponent = MediaComponentMap->value;
if (MediaComponent) {
+ if (ims_data.num_of_media_component >=
+ OGS_ARRAY_SIZE(ims_data.media_component)) {
+ ogs_error("OVERFLOW ims_data.num_of_media_component "
+ "[%d:%d:%d]",
+ ims_data.num_of_media_component,
+ OGS_MAX_NUM_OF_MEDIA_COMPONENT,
+ (int)OGS_ARRAY_SIZE(ims_data.media_component));
+ break;
+ }
media_component = &ims_data.
media_component[ims_data.num_of_media_component];
@@ -1212,6 +1232,15 @@ bool pcf_npcf_policyauthorization_handle_update(
SubComponentList = MediaComponent->med_sub_comps;
OpenAPI_list_for_each(SubComponentList, node2) {
+ if (media_component->num_of_sub >=
+ OGS_ARRAY_SIZE(media_component->sub)) {
+ ogs_error("OVERFLOW media_component->num_of_sub "
+ "[%d:%d:%d]",
+ media_component->num_of_sub,
+ OGS_MAX_NUM_OF_MEDIA_SUB_COMPONENT,
+ (int)OGS_ARRAY_SIZE(media_component->sub));
+ break;
+ }
sub = &media_component->sub[media_component->num_of_sub];
SubComponentMap = node2->data;
@@ -1225,8 +1254,15 @@ bool pcf_npcf_policyauthorization_handle_update(
OpenAPI_list_for_each(fDescList, node3) {
ogs_flow_t *flow = NULL;
- ogs_assert(sub->num_of_flow <
- OGS_MAX_NUM_OF_FLOW_IN_MEDIA_SUB_COMPONENT);
+ if (sub->num_of_flow >=
+ OGS_ARRAY_SIZE(sub->flow)) {
+ ogs_error(
+ "OVERFLOW sub->num_of_flow [%d:%d:%d]",
+ sub->num_of_flow,
+ OGS_MAX_NUM_OF_FLOW_IN_MEDIA_SUB_COMPONENT,
+ (int)OGS_ARRAY_SIZE(sub->flow));
+ break;
+ }
flow = &sub->flow[sub->num_of_flow];
if (node3->data) {
flow->description = ogs_strdup(node3->data);
@@ -1483,7 +1519,8 @@ bool pcf_npcf_policyauthorization_handle_update(
ogs_assert(strerror);
ogs_error("%s", strerror);
ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL));
+ ogs_sbi_server_send_error(stream, status, recvmsg, strerror,
+ NULL, NULL));
ogs_free(strerror);
OpenAPI_list_for_each(PccRuleList, node) {
diff --git a/src/pcf/nudr-build.c b/src/pcf/nudr-build.c
index fc99b9f34d..4a96994abd 100644
--- a/src/pcf/nudr-build.c
+++ b/src/pcf/nudr-build.c
@@ -51,7 +51,7 @@ ogs_sbi_request_t *pcf_nudr_dr_build_query_sm_data(
ogs_sbi_request_t *request = NULL;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
memset(&message, 0, sizeof(message));
diff --git a/src/pcf/nudr-handler.c b/src/pcf/nudr-handler.c
index eb0ebfb0b4..be9c691b2b 100644
--- a/src/pcf/nudr-handler.c
+++ b/src/pcf/nudr-handler.c
@@ -174,7 +174,8 @@ bool pcf_nudr_dr_handle_query_am_data(
ogs_assert(status);
ogs_error("%s", strerror);
ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL));
+ ogs_sbi_server_send_error(stream, status, recvmsg, strerror,
+ NULL, NULL));
ogs_free(strerror);
ogs_subscription_data_free(&subscription_data);
@@ -192,7 +193,7 @@ bool pcf_nudr_dr_handle_query_sm_data(
int r;
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
ogs_assert(stream);
server = ogs_sbi_server_from_stream(stream);
@@ -202,9 +203,6 @@ bool pcf_nudr_dr_handle_query_sm_data(
SWITCH(recvmsg->h.resource.component[3])
CASE(OGS_SBI_RESOURCE_NAME_SM_DATA)
- ogs_sbi_nf_instance_t *nf_instance = NULL;
- ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
-
if (!recvmsg->SmPolicyData) {
strerror = ogs_msprintf("[%s:%d] No SmPolicyData",
pcf_ue->supi, sess->psi);
@@ -212,33 +210,12 @@ bool pcf_nudr_dr_handle_query_sm_data(
goto cleanup;
}
- service_type = OGS_SBI_SERVICE_TYPE_NPCF_POLICYAUTHORIZATION;
-
- nf_instance = sess->sbi.service_type_array[service_type].nf_instance;
- if (!nf_instance) {
- OpenAPI_nf_type_e requester_nf_type =
- NF_INSTANCE_TYPE(ogs_sbi_self()->nf_instance);
- ogs_assert(requester_nf_type);
- nf_instance = ogs_sbi_nf_instance_find_by_service_type(
- service_type, requester_nf_type);
- if (nf_instance)
- OGS_SBI_SETUP_NF_INSTANCE(
- sess->sbi.service_type_array[service_type],
- nf_instance);
- }
-
- if (nf_instance) {
- r = pcf_sess_sbi_discover_and_send(
- OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT, NULL,
- pcf_nbsf_management_build_register,
- sess, stream, nf_instance);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- } else {
- r = pcf_sess_sbi_discover_only(sess, stream, service_type);
- ogs_expect(r == OGS_OK);
- ogs_assert(r != OGS_ERROR);
- }
+ r = pcf_sess_sbi_discover_and_send(
+ OGS_SBI_SERVICE_TYPE_NBSF_MANAGEMENT, NULL,
+ pcf_nbsf_management_build_register,
+ sess, stream, NULL);
+ ogs_expect(r == OGS_OK);
+ ogs_assert(r != OGS_ERROR);
return true;
@@ -249,10 +226,22 @@ bool pcf_nudr_dr_handle_query_sm_data(
cleanup:
ogs_assert(strerror);
- ogs_assert(status);
+ status = OGS_SBI_HTTP_STATUS_FORBIDDEN;
ogs_error("%s", strerror);
+ /*
+ * TS29.512
+ * 4.2.2.2 SM Policy Association establishment
+ *
+ * If the PCF, based on local configuration and/or operator
+ * policies, denies the creation of the Individual SM Policy
+ * resource, the PCF may reject the request and include in
+ * an HTTP "403 Forbidden" response message the "cause"
+ * attribute of the ProblemDetails data structure set to
+ * "POLICY_CONTEXT_DENIED".
+ */
ogs_assert(true ==
- ogs_sbi_server_send_error(stream, status, recvmsg, strerror, NULL));
+ ogs_sbi_server_send_error(stream, status, recvmsg, strerror,
+ NULL, "POLICY_CONTEXT_DENIED"));
ogs_free(strerror);
return false;
diff --git a/src/pcf/pcf-sm.c b/src/pcf/pcf-sm.c
index 2e1973860d..700320500d 100644
--- a/src/pcf/pcf-sm.c
+++ b/src/pcf/pcf-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -39,6 +39,7 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
int rv;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_nf_instance_t *nf_instance = NULL;
@@ -48,11 +49,14 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_sbi_object_t *sbi_object = NULL;
ogs_sbi_xact_t *sbi_xact = NULL;
+ ogs_pool_id_t sbi_xact_id = OGS_INVALID_POOL_ID;
ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
pcf_ue_t *pcf_ue = NULL;
+ ogs_pool_id_t pcf_ue_id = OGS_INVALID_POOL_ID;
pcf_sess_t *sess = NULL;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
pcf_app_t *app_session = NULL;
pcf_sm_debug(e);
@@ -69,8 +73,16 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
case OGS_EVENT_SBI_SERVER:
request = e->h.sbi.request;
ogs_assert(request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
rv = ogs_sbi_parse_request(&message, request);
if (rv != OGS_OK) {
@@ -79,7 +91,7 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP message", NULL));
+ NULL, "cannot parse HTTP message", NULL, NULL));
break;
}
@@ -88,7 +100,7 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &message, "Not supported version", NULL));
+ &message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&message);
break;
}
@@ -108,7 +120,7 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method, NULL));
END
break;
@@ -119,7 +131,7 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Unknown resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -153,13 +165,13 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
- &message, "Not found", message.h.method));
+ &message, "Not found", message.h.method, NULL));
break;
}
ogs_assert(OGS_FSM_STATE(&pcf_ue->sm));
- e->pcf_ue = pcf_ue;
+ e->pcf_ue_id = pcf_ue->id;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&pcf_ue->sm, e);
if (OGS_FSM_CHECK(&pcf_ue->sm, pcf_am_state_exception)) {
@@ -176,23 +188,63 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
CASE(OGS_SBI_RESOURCE_NAME_SM_POLICIES)
if (!message.h.resource.component[1]) {
if (message.SmPolicyContextData &&
- message.SmPolicyContextData->supi) {
+ message.SmPolicyContextData->supi &&
+ message.SmPolicyContextData->pdu_session_id) {
+
pcf_ue = pcf_ue_find_by_supi(
message.SmPolicyContextData->supi);
if (!pcf_ue) {
- pcf_ue = pcf_ue_add(
- message.SmPolicyContextData->supi);
- ogs_assert(pcf_ue);
+ if (!strcmp(message.h.method,
+ OGS_SBI_HTTP_METHOD_POST)) {
+ pcf_ue = pcf_ue_add(
+ message.SmPolicyContextData->supi);
+ if (!pcf_ue) {
+ ogs_error("[%s:%d] Invalid Request [%s]",
+ message.SmPolicyContextData->supi,
+ message.SmPolicyContextData->
+ pdu_session_id,
+ message.h.method);
+ } else
+ ogs_debug("[%s:%d] PCF UE added",
+ message.SmPolicyContextData->supi,
+ message.SmPolicyContextData->
+ pdu_session_id);
+ } else {
+ ogs_error("[%s:%d] Invalid HTTP method [%s]",
+ message.SmPolicyContextData->supi,
+ message.SmPolicyContextData->
+ pdu_session_id,
+ message.h.method);
+ }
}
- if (message.SmPolicyContextData->pdu_session_id) {
+
+ if (pcf_ue) {
sess = pcf_sess_find_by_psi(pcf_ue, message.
SmPolicyContextData->pdu_session_id);
if (!sess) {
- sess = pcf_sess_add(pcf_ue, message.
- SmPolicyContextData->pdu_session_id);
- ogs_assert(sess);
- ogs_debug("[%s:%d] PCF session added",
- pcf_ue->supi, sess->psi);
+ if (!strcmp(message.h.method,
+ OGS_SBI_HTTP_METHOD_POST)) {
+ sess = pcf_sess_add(pcf_ue, message.
+ SmPolicyContextData->pdu_session_id);
+ if (!sess) {
+ ogs_error("[%s:%d] "
+ "Invalid Request [%s]",
+ message.SmPolicyContextData->
+ supi,
+ message.SmPolicyContextData->
+ pdu_session_id,
+ message.h.method);
+ } else
+ ogs_debug("[%s:%d] PCF session added",
+ pcf_ue->supi, sess->psi);
+ } else {
+ ogs_error("[%s:%d] "
+ "Invalid HTTP method [%s]",
+ message.SmPolicyContextData->supi,
+ message.SmPolicyContextData->
+ pdu_session_id,
+ message.h.method);
+ }
}
}
}
@@ -204,24 +256,33 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
DEFAULT
END
-
if (!sess) {
ogs_error("Not found [%s]", message.h.uri);
+ /*
+ * TS29.512
+ * 4.2.2.2 SM Policy Association establishment
+ *
+ * If the user information received within the "supi" attribute is
+ * unknown, the PCF shall reject the request with an HTTP "400 Bad
+ * Request" response message including the "cause" attribute
+ * of the ProblemDetails data structure set to "USER_UNKNOWN".
+ */
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_NOT_FOUND,
- &message, "Not found", message.h.uri));
+ OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ &message, "Not found", message.h.uri, "USER_UNKNOWN"));
break;
}
ogs_assert(OGS_FSM_STATE(&sess->sm));
- e->sess = sess;
+ e->sess_id = sess->id;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&sess->sm, e);
if (OGS_FSM_CHECK(&sess->sm, pcf_sm_state_exception)) {
+ /* Clang scan-build SA: NULL pointer dereference: pcf_ue=NULL, remove logging of pcf_ue->supi. */
ogs_error("[%s:%d] State machine exception",
- pcf_ue->supi, sess->psi);
+ pcf_ue ? pcf_ue->supi : "Unknown", sess->psi);
pcf_sess_remove(sess);
}
break;
@@ -260,19 +321,20 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_NOT_FOUND,
- &message, "Not found", message.h.uri));
+ &message, "Not found", message.h.uri, NULL));
break;
}
ogs_assert(OGS_FSM_STATE(&sess->sm));
- e->sess = sess;
+ e->sess_id = sess->id;
e->app = app_session;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&sess->sm, e);
if (OGS_FSM_CHECK(&sess->sm, pcf_sm_state_exception)) {
+ /* Clang scan-build SA: NULL pointer dereference: pcf_ue=NULL, remove logging of pcf_ue->supi. */
ogs_error("[%s:%d] State machine exception",
- pcf_ue->supi, sess->psi);
+ pcf_ue ? pcf_ue->supi : "Unknown", sess->psi);
pcf_sess_remove(sess);
}
break;
@@ -282,7 +344,7 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
- "Invalid API name", message.h.service.name));
+ "Invalid API name", message.h.service.name, NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
@@ -380,8 +442,18 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
CASE(OGS_SBI_SERVICE_NAME_NNRF_DISC)
SWITCH(message.h.resource.component[0])
CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
+ if (!sbi_xact) {
+ /* CLIENT_WAIT timer could remove SBI transaction
+ * before receiving SBI message */
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
+ break;
+ }
SWITCH(message.h.method)
CASE(OGS_SBI_HTTP_METHOD_GET)
@@ -410,32 +482,39 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
CASE(OGS_SBI_RESOURCE_NAME_POLICY_DATA)
SWITCH(message.h.resource.component[3])
CASE(OGS_SBI_RESOURCE_NAME_AM_DATA)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
- sbi_xact = ogs_sbi_xact_cycle(sbi_xact);
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
/* CLIENT_WAIT timer could remove SBI transaction
* before receiving SBI message */
- ogs_error("SBI transaction has already been removed");
+ ogs_error(
+ "SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- pcf_ue = (pcf_ue_t *)sbi_xact->sbi_object;
- ogs_assert(pcf_ue);
+ pcf_ue_id = sbi_xact->sbi_object_id;
+ ogs_assert(pcf_ue_id >= OGS_MIN_POOL_ID &&
+ pcf_ue_id <= OGS_MAX_POOL_ID);
- e->h.sbi.data = sbi_xact->assoc_stream;
+ if (sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID)
+ e->h.sbi.data =
+ OGS_UINT_TO_POINTER(sbi_xact->assoc_stream_id);
ogs_sbi_xact_remove(sbi_xact);
- pcf_ue = pcf_ue_cycle(pcf_ue);
+ pcf_ue = pcf_ue_find_by_id(pcf_ue_id);
if (!pcf_ue) {
ogs_error("UE(pcf_ue) Context "
"has already been removed");
break;
}
- e->pcf_ue = pcf_ue;
+ e->pcf_ue_id = pcf_ue->id;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&pcf_ue->sm, e);
@@ -446,36 +525,41 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
break;
CASE(OGS_SBI_RESOURCE_NAME_SM_DATA)
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
- sbi_xact = ogs_sbi_xact_cycle(sbi_xact);
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
/* CLIENT_WAIT timer could remove SBI transaction
* before receiving SBI message */
- ogs_error("SBI transaction has already been removed");
+ ogs_error(
+ "SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- sess = (pcf_sess_t *)sbi_xact->sbi_object;
- ogs_assert(sess);
+ sess_id = sbi_xact->sbi_object_id;
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
+ sess_id <= OGS_MAX_POOL_ID);
- e->h.sbi.data = sbi_xact->assoc_stream;
+ if (sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID)
+ e->h.sbi.data =
+ OGS_UINT_TO_POINTER(sbi_xact->assoc_stream_id);
ogs_sbi_xact_remove(sbi_xact);
- sess = pcf_sess_cycle(sess);
+ sess = pcf_sess_find_by_id(sess_id);
if (!sess) {
ogs_error("Session has already been removed");
break;
}
- pcf_ue = sess->pcf_ue;
- ogs_assert(pcf_ue);
- pcf_ue = pcf_ue_cycle(pcf_ue);
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
- e->sess = sess;
+ e->sess_id = sess->id;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&sess->sm, e);
@@ -504,37 +588,39 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
SWITCH(message.h.resource.component[0])
CASE(OGS_SBI_RESOURCE_NAME_PCF_BINDINGS)
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
- sbi_xact = e->h.sbi.data;
- ogs_assert(sbi_xact);
-
- sbi_xact = ogs_sbi_xact_cycle(sbi_xact);
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
/* CLIENT_WAIT timer could remove SBI transaction
* before receiving SBI message */
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- sess = (pcf_sess_t *)sbi_xact->sbi_object;
- ogs_assert(sess);
+ sess_id = sbi_xact->sbi_object_id;
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
+ sess_id <= OGS_MAX_POOL_ID);
- e->h.sbi.data = sbi_xact->assoc_stream;
+ if (sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID)
+ e->h.sbi.data = OGS_UINT_TO_POINTER(sbi_xact->assoc_stream_id);
ogs_sbi_xact_remove(sbi_xact);
- sess = pcf_sess_cycle(sess);
+ sess = pcf_sess_find_by_id(sess_id);
if (!sess) {
ogs_error("Session has already been removed");
break;
}
- pcf_ue = sess->pcf_ue;
- ogs_assert(pcf_ue);
- pcf_ue = pcf_ue_cycle(pcf_ue);
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
- e->sess = sess;
+ e->sess_id = sess->id;
e->h.sbi.message = &message;
ogs_fsm_dispatch(&sess->sm, e);
@@ -639,19 +725,25 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
* 4. timer expiration event is processed. (double-free SBI xact)
*
* To avoid double-free SBI xact,
- * we need to check ogs_sbi_xact_cycle()
+ * we need to check ogs_sbi_xact_find_by_id()
*/
- sbi_xact = ogs_sbi_xact_cycle(e->h.sbi.data);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
sbi_object = sbi_xact->sbi_object;
ogs_assert(sbi_object);
- stream = sbi_xact->assoc_stream;
- ogs_assert(stream);
+ ogs_assert(sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID);
+ stream = ogs_sbi_stream_find_by_id(sbi_xact->assoc_stream_id);
service_type = sbi_xact->service_type;
@@ -662,9 +754,11 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
switch(sbi_object->type) {
case OGS_SBI_OBJ_UE_TYPE:
- pcf_ue = (pcf_ue_t *)sbi_object;
- ogs_assert(pcf_ue);
- pcf_ue = pcf_ue_cycle(pcf_ue);
+ pcf_ue_id = sbi_xact->sbi_object_id;
+ ogs_assert(pcf_ue_id >= OGS_MIN_POOL_ID &&
+ pcf_ue_id <= OGS_MAX_POOL_ID);
+
+ pcf_ue = pcf_ue_find_by_id(pcf_ue_id);
if (!pcf_ue) {
ogs_error("UE(pcf_ue) has already been removed");
break;
@@ -673,9 +767,11 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
break;
case OGS_SBI_OBJ_SESS_TYPE:
- sess = (pcf_sess_t *)sbi_object;
- ogs_assert(sess);
- sess = pcf_sess_cycle(sess);
+ sess_id = sbi_xact->sbi_object_id;
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
+ sess_id <= OGS_MAX_POOL_ID);
+
+ sess = pcf_sess_find_by_id(sess_id);
if (!sess) {
ogs_error("Session has already been removed");
break;
@@ -691,10 +787,16 @@ void pcf_state_operational(ogs_fsm_t *s, pcf_event_t *e)
}
ogs_error("Cannot receive SBI message");
+
+ if (!stream) {
+ ogs_error("STREAM has alreadt been removed [%d]",
+ sbi_xact->assoc_stream_id);
+ break;
+ }
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot receive SBI message", NULL));
+ "Cannot receive SBI message", NULL, NULL));
break;
default:
diff --git a/src/pcf/sbi-path.c b/src/pcf/sbi-path.c
index 46d75d1389..4d358e45e0 100644
--- a/src/pcf/sbi-path.c
+++ b/src/pcf/sbi-path.c
@@ -124,6 +124,7 @@ bool pcf_sbi_send_request(
}
static int pcf_sbi_discover_and_send(
+ ogs_pool_id_t sbi_object_id,
ogs_sbi_object_t *sbi_object,
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
@@ -138,15 +139,22 @@ static int pcf_sbi_discover_and_send(
ogs_assert(stream);
ogs_assert(build);
+ ogs_assert(sbi_object_id >= OGS_MIN_POOL_ID &&
+ sbi_object_id <= OGS_MAX_POOL_ID);
+
xact = ogs_sbi_xact_add(
- sbi_object, service_type, discovery_option,
+ sbi_object_id, sbi_object, service_type, discovery_option,
build, context, data);
if (!xact) {
ogs_error("ogs_sbi_xact_add() failed");
return OGS_ERROR;
}
- xact->assoc_stream = stream;
+ if (stream) {
+ xact->assoc_stream_id = ogs_sbi_id_from_stream(stream);
+ ogs_assert(xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ xact->assoc_stream_id <= OGS_MAX_POOL_ID);
+ }
r = ogs_sbi_discover_and_send(xact);
if (r != OGS_OK) {
@@ -167,40 +175,20 @@ int pcf_ue_sbi_discover_and_send(
int r;
r = pcf_sbi_discover_and_send(
- &pcf_ue->sbi, service_type, discovery_option,
- (ogs_sbi_build_f)build, pcf_ue, stream, data);
+ pcf_ue->id, &pcf_ue->sbi, service_type, discovery_option,
+ (ogs_sbi_build_f)build, pcf_ue, stream, data);
if (r != OGS_OK) {
ogs_error("pcf_ue_sbi_discover_and_send() failed");
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot discover", pcf_ue->supi));
+ "Cannot discover", pcf_ue->supi, NULL));
return r;
}
return OGS_OK;
}
-int pcf_sess_sbi_discover_only(
- pcf_sess_t *sess, ogs_sbi_stream_t *stream,
- ogs_sbi_service_type_e service_type)
-{
- ogs_sbi_xact_t *xact = NULL;
-
- ogs_assert(sess);
- ogs_assert(service_type);
-
- xact = ogs_sbi_xact_add(&sess->sbi, service_type, NULL, NULL, NULL, NULL);
- if (!xact) {
- ogs_error("ogs_sbi_xact_add() failed");
- return OGS_ERROR;
- }
-
- xact->assoc_stream = stream;
-
- return ogs_sbi_discover_only(xact);
-}
-
int pcf_sess_sbi_discover_and_send(
ogs_sbi_service_type_e service_type,
ogs_sbi_discovery_option_t *discovery_option,
@@ -210,14 +198,14 @@ int pcf_sess_sbi_discover_and_send(
int r;
r = pcf_sbi_discover_and_send(
- &sess->sbi, service_type, discovery_option,
- (ogs_sbi_build_f)build, sess, stream, data);
+ sess->id, &sess->sbi, service_type, discovery_option,
+ (ogs_sbi_build_f)build, sess, stream, data);
if (r != OGS_OK) {
ogs_error("pcf_sess_sbi_discover_and_send() failed");
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot discover", NULL));
+ "Cannot discover", NULL, NULL));
return r;
}
@@ -294,6 +282,340 @@ bool pcf_sbi_send_am_policy_control_notify(pcf_ue_t *pcf_ue)
return rc;
}
+bool pcf_sbi_send_smpolicycontrol_create_response(
+ pcf_sess_t *sess, ogs_sbi_stream_t *stream)
+{
+ int i, rv, status = 0;
+ char *strerror = NULL;
+ pcf_ue_t *pcf_ue = NULL;
+ ogs_sbi_server_t *server = NULL;
+
+ ogs_sbi_message_t sendmsg;
+ ogs_sbi_header_t header;
+ ogs_sbi_response_t *response = NULL;
+
+ ogs_session_data_t session_data;
+
+ ogs_session_t *session = NULL;
+
+ OpenAPI_sm_policy_decision_t SmPolicyDecision;
+
+ OpenAPI_lnode_t *node = NULL;
+
+ OpenAPI_list_t *SessRuleList = NULL;
+ OpenAPI_map_t *SessRuleMap = NULL;
+ OpenAPI_session_rule_t *SessionRule = NULL;
+
+ OpenAPI_ambr_t AuthSessAmbr;
+ OpenAPI_authorized_default_qos_t AuthDefQos;
+
+ OpenAPI_list_t *PccRuleList = NULL;
+ OpenAPI_map_t *PccRuleMap = NULL;
+ OpenAPI_pcc_rule_t *PccRule = NULL;
+
+ OpenAPI_list_t *QosDecisionList = NULL;
+ OpenAPI_map_t *QosDecisionMap = NULL;
+ OpenAPI_qos_data_t *QosData = NULL;
+
+ OpenAPI_list_t *PolicyCtrlReqTriggers = NULL;
+
+ ogs_assert(sess);
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
+ ogs_assert(pcf_ue);
+ ogs_assert(stream);
+ server = ogs_sbi_server_from_stream(stream);
+ ogs_assert(server);
+
+ memset(&session_data, 0, sizeof(ogs_session_data_t));
+
+ ogs_assert(pcf_ue->supi);
+ ogs_assert(sess->dnn);
+
+ rv = pcf_db_qos_data(
+ pcf_ue->supi,
+ sess->home.presence == true ? &sess->home.plmn_id : NULL,
+ &sess->s_nssai, sess->dnn, &session_data);
+ if (rv != OGS_OK) {
+ strerror = ogs_msprintf("[%s:%d] Cannot find SUPI in DB",
+ pcf_ue->supi, sess->psi);
+ status = OGS_SBI_HTTP_STATUS_NOT_FOUND;
+ goto cleanup;
+ }
+
+ session = &session_data.session;
+
+ if (!session->qos.index) {
+ strerror = ogs_msprintf("[%s:%d] No 5QI", pcf_ue->supi, sess->psi);
+ status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
+ goto cleanup;
+ }
+ if (!session->qos.arp.priority_level) {
+ strerror = ogs_msprintf("[%s:%d] No Priority Level",
+ pcf_ue->supi, sess->psi);
+ status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
+ goto cleanup;
+ }
+
+ if (!session->ambr.uplink && !session->ambr.downlink) {
+ strerror = ogs_msprintf("[%s:%d] No Session-AMBR",
+ pcf_ue->supi, sess->psi);
+ status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
+ goto cleanup;
+ }
+
+ memset(&SmPolicyDecision, 0, sizeof(SmPolicyDecision));
+
+ PolicyCtrlReqTriggers = OpenAPI_list_create();
+ ogs_assert(PolicyCtrlReqTriggers);
+
+ /**************************************************************
+ * Session Rule
+ *************************************************************/
+ SessRuleList = OpenAPI_list_create();
+ ogs_assert(SessRuleList);
+
+ SessionRule = ogs_calloc(1, sizeof(*SessionRule));
+ ogs_assert(SessionRule);
+
+ /* Only 1 SessionRule is used */
+ SessionRule->sess_rule_id = (char *)"1";
+
+ if (OGS_SBI_FEATURES_IS_SET(sess->smpolicycontrol_features,
+ OGS_SBI_NPCF_SMPOLICYCONTROL_DN_AUTHORIZATION)) {
+ if (sess->subscribed_sess_ambr) {
+ ogs_bitrate_t subscribed_sess_ambr;
+
+ subscribed_sess_ambr.uplink = ogs_sbi_bitrate_from_string(
+ sess->subscribed_sess_ambr->uplink);
+ subscribed_sess_ambr.downlink = ogs_sbi_bitrate_from_string(
+ sess->subscribed_sess_ambr->downlink);
+ if (((subscribed_sess_ambr.uplink / 1000) !=
+ (session->ambr.uplink / 1000)) ||
+ ((subscribed_sess_ambr.downlink / 1000) !=
+ (session->ambr.downlink / 1000))) {
+
+ OpenAPI_list_add(PolicyCtrlReqTriggers,
+ (void *)OpenAPI_policy_control_request_trigger_SE_AMBR_CH);
+ }
+
+ memset(&AuthSessAmbr, 0, sizeof(AuthSessAmbr));
+ AuthSessAmbr.uplink = ogs_sbi_bitrate_to_string(
+ session->ambr.uplink, OGS_SBI_BITRATE_KBPS);
+ AuthSessAmbr.downlink = ogs_sbi_bitrate_to_string(
+ session->ambr.downlink, OGS_SBI_BITRATE_KBPS);
+ SessionRule->auth_sess_ambr = &AuthSessAmbr;
+ }
+ }
+
+ if (sess->subscribed_default_qos) {
+ bool triggered = false;
+
+ memset(&AuthDefQos, 0, sizeof(AuthDefQos));
+ AuthDefQos.arp = ogs_calloc(1, sizeof(OpenAPI_arp_t));
+ ogs_assert(AuthDefQos.arp);
+
+ AuthDefQos.is__5qi = true;
+ AuthDefQos._5qi = session->qos.index;
+ AuthDefQos.is_priority_level = true;
+ AuthDefQos.priority_level = session->qos.arp.priority_level;
+
+ if (session->qos.arp.pre_emption_capability ==
+ OGS_5GC_PRE_EMPTION_ENABLED)
+ AuthDefQos.arp->preempt_cap =
+ OpenAPI_preemption_capability_MAY_PREEMPT;
+ else if (session->qos.arp.pre_emption_capability ==
+ OGS_5GC_PRE_EMPTION_DISABLED)
+ AuthDefQos.arp->preempt_cap =
+ OpenAPI_preemption_capability_NOT_PREEMPT;
+ ogs_assert(AuthDefQos.arp->preempt_cap);
+
+ if (session->qos.arp.pre_emption_vulnerability ==
+ OGS_5GC_PRE_EMPTION_ENABLED)
+ AuthDefQos.arp->preempt_vuln =
+ OpenAPI_preemption_vulnerability_PREEMPTABLE;
+ else if (session->qos.arp.pre_emption_vulnerability ==
+ OGS_5GC_PRE_EMPTION_DISABLED)
+ AuthDefQos.arp->preempt_vuln =
+ OpenAPI_preemption_vulnerability_NOT_PREEMPTABLE;
+ ogs_assert(AuthDefQos.arp->preempt_vuln);
+ AuthDefQos.arp->priority_level = session->qos.arp.priority_level;
+
+ SessionRule->auth_def_qos = &AuthDefQos;
+
+ if (sess->subscribed_default_qos->_5qi != AuthDefQos._5qi)
+ triggered = true;
+ if (sess->subscribed_default_qos->priority_level !=
+ AuthDefQos.priority_level)
+ triggered = true;
+ if (sess->subscribed_default_qos->arp) {
+ if (sess->subscribed_default_qos->arp->priority_level !=
+ AuthDefQos.arp->priority_level)
+ triggered = true;
+ if (sess->subscribed_default_qos->arp->preempt_cap !=
+ AuthDefQos.arp->preempt_cap)
+ triggered = true;
+ if (sess->subscribed_default_qos->arp->preempt_vuln !=
+ AuthDefQos.arp->preempt_vuln)
+ triggered = true;
+
+ }
+
+ if (triggered)
+ OpenAPI_list_add(PolicyCtrlReqTriggers,
+ (void *)OpenAPI_policy_control_request_trigger_DEF_QOS_CH);
+
+ }
+
+ SessRuleMap = OpenAPI_map_create(
+ SessionRule->sess_rule_id, SessionRule);
+ ogs_assert(SessRuleMap);
+
+ OpenAPI_list_add(SessRuleList, SessRuleMap);
+
+ if (SessRuleList->count)
+ SmPolicyDecision.sess_rules = SessRuleList;
+
+ /**************************************************************
+ * PCC Rule & QoS Decision
+ *************************************************************/
+ PccRuleList = OpenAPI_list_create();
+ ogs_assert(PccRuleList);
+
+ QosDecisionList = OpenAPI_list_create();
+ ogs_assert(QosDecisionList);
+
+ for (i = 0; i < session_data.num_of_pcc_rule; i++) {
+ ogs_pcc_rule_t *pcc_rule = &session_data.pcc_rule[i];
+
+ ogs_assert(pcc_rule);
+ ogs_assert(pcc_rule->id);
+
+ if (!pcc_rule->num_of_flow) {
+ /* No Flow */
+ continue;
+ }
+
+ PccRule = ogs_sbi_build_pcc_rule(pcc_rule, 1);
+ ogs_assert(PccRule->pcc_rule_id);
+
+ PccRuleMap = OpenAPI_map_create(PccRule->pcc_rule_id, PccRule);
+ ogs_assert(PccRuleMap);
+
+ OpenAPI_list_add(PccRuleList, PccRuleMap);
+
+ QosData = ogs_sbi_build_qos_data(pcc_rule);
+ ogs_assert(QosData);
+ ogs_assert(QosData->qos_id);
+
+ QosDecisionMap = OpenAPI_map_create(QosData->qos_id, QosData);
+ ogs_assert(QosDecisionMap);
+
+ OpenAPI_list_add(QosDecisionList, QosDecisionMap);
+ }
+
+ if (PccRuleList->count)
+ SmPolicyDecision.pcc_rules = PccRuleList;
+
+ if (QosDecisionList->count)
+ SmPolicyDecision.qos_decs = QosDecisionList;
+
+ /* Policy Control Request Triggers */
+ if (PolicyCtrlReqTriggers->count)
+ SmPolicyDecision.policy_ctrl_req_triggers = PolicyCtrlReqTriggers;
+
+ /* Supported Features */
+ if (sess->smpolicycontrol_features) {
+ SmPolicyDecision.supp_feat =
+ ogs_uint64_to_string(sess->smpolicycontrol_features);
+ ogs_assert(SmPolicyDecision.supp_feat);
+ }
+
+ memset(&header, 0, sizeof(header));
+ header.service.name = (char *)OGS_SBI_SERVICE_NAME_NPCF_SMPOLICYCONTROL;
+ header.api.version = (char *)OGS_SBI_API_V1;
+ header.resource.component[0] = (char *)OGS_SBI_RESOURCE_NAME_SM_POLICIES;
+ header.resource.component[1] = sess->sm_policy_id;
+
+ memset(&sendmsg, 0, sizeof(sendmsg));
+ sendmsg.SmPolicyDecision = &SmPolicyDecision;
+ sendmsg.http.location = ogs_sbi_server_uri(server, &header);
+
+ response = ogs_sbi_build_response(
+ &sendmsg, OGS_SBI_HTTP_STATUS_CREATED);
+ ogs_assert(response);
+ ogs_assert(true == ogs_sbi_server_send_response(stream, response));
+
+ ogs_free(sendmsg.http.location);
+
+ OpenAPI_list_for_each(SessRuleList, node) {
+ SessRuleMap = node->data;
+ if (SessRuleMap) {
+ SessionRule = SessRuleMap->value;
+ if (SessionRule) {
+ if (SessionRule->auth_sess_ambr) {
+ if (SessionRule->auth_sess_ambr->uplink)
+ ogs_free(SessionRule->auth_sess_ambr->uplink);
+ if (SessionRule->auth_sess_ambr->downlink)
+ ogs_free(SessionRule->auth_sess_ambr->downlink);
+ }
+ if (SessionRule->auth_def_qos) {
+ ogs_free(SessionRule->auth_def_qos->arp);
+
+ }
+ ogs_free(SessionRule);
+ }
+ ogs_free(SessRuleMap);
+ }
+ }
+ OpenAPI_list_free(SessRuleList);
+
+ OpenAPI_list_for_each(PccRuleList, node) {
+ PccRuleMap = node->data;
+ if (PccRuleMap) {
+ PccRule = PccRuleMap->value;
+ if (PccRule)
+ ogs_sbi_free_pcc_rule(PccRule);
+ ogs_free(PccRuleMap);
+ }
+ }
+ OpenAPI_list_free(PccRuleList);
+
+ OpenAPI_list_for_each(QosDecisionList, node) {
+ QosDecisionMap = node->data;
+ if (QosDecisionMap) {
+ QosData = QosDecisionMap->value;
+ if (QosData)
+ ogs_sbi_free_qos_data(QosData);
+ ogs_free(QosDecisionMap);
+ }
+ }
+ OpenAPI_list_free(QosDecisionList);
+
+ OpenAPI_list_free(PolicyCtrlReqTriggers);
+
+ if (SmPolicyDecision.supp_feat)
+ ogs_free(SmPolicyDecision.supp_feat);
+
+ pcf_metrics_inst_by_slice_add(&pcf_ue->guami.plmn_id,
+ &sess->s_nssai, PCF_METR_CTR_PA_POLICYSMASSOSUCC, 1);
+
+ OGS_SESSION_DATA_FREE(&session_data);
+
+ return true;
+
+cleanup:
+ ogs_assert(strerror);
+ ogs_assert(status);
+ ogs_error("%s", strerror);
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, status, NULL, strerror, NULL, NULL));
+ ogs_free(strerror);
+
+ OGS_SESSION_DATA_FREE(&session_data);
+
+ return false;
+}
+
bool pcf_sbi_send_smpolicycontrol_update_notify(
pcf_sess_t *sess, OpenAPI_sm_policy_decision_t *SmPolicyDecision)
{
diff --git a/src/pcf/sbi-path.h b/src/pcf/sbi-path.h
index 0699212444..b724659647 100644
--- a/src/pcf/sbi-path.h
+++ b/src/pcf/sbi-path.h
@@ -45,11 +45,10 @@ int pcf_sess_sbi_discover_and_send(
ogs_sbi_discovery_option_t *discovery_option,
ogs_sbi_request_t *(*build)(pcf_sess_t *sess, void *data),
pcf_sess_t *sess, ogs_sbi_stream_t *stream, void *data);
-int pcf_sess_sbi_discover_only(
- pcf_sess_t *sess, ogs_sbi_stream_t *stream,
- ogs_sbi_service_type_e service_type);
bool pcf_sbi_send_am_policy_control_notify(pcf_ue_t *pcf_ue);
+bool pcf_sbi_send_smpolicycontrol_create_response(
+ pcf_sess_t *sess, ogs_sbi_stream_t *stream);
bool pcf_sbi_send_smpolicycontrol_update_notify(
pcf_sess_t *sess, OpenAPI_sm_policy_decision_t *SmPolicyDecision);
bool pcf_sbi_send_smpolicycontrol_delete_notify(
diff --git a/src/pcf/sm-sm.c b/src/pcf/sm-sm.c
index 92de11b44e..1693c1af84 100644
--- a/src/pcf/sm-sm.c
+++ b/src/pcf/sm-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2022 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -42,6 +42,7 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_sess_t *sess = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id;
ogs_sbi_message_t *message = NULL;
ogs_assert(s);
@@ -49,9 +50,9 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_sm_debug(e);
- sess = e->sess;
+ sess = pcf_sess_find_by_id(e->sess_id);
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
switch (e->h.id) {
@@ -64,8 +65,16 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_NPCF_SMPOLICYCONTROL)
@@ -96,8 +105,8 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_ue->supi, sess->psi, message->h.uri);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_FORBIDDEN, message,
- "Invalid HTTP method", message->h.uri));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid HTTP method", message->h.uri, NULL));
END
}
break;
@@ -116,8 +125,8 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
message->h.resource.component[2]);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_FORBIDDEN, message,
- "Invalid resource name", message->h.uri));
+ OGS_SBI_HTTP_STATUS_BAD_REQUEST, message,
+ "Invalid resource name", message->h.uri, NULL));
END
} else {
SWITCH(message->h.method)
@@ -130,8 +139,8 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_ue->supi, sess->psi, message->h.method);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_FORBIDDEN, message,
- "Invalid HTTP method", message->h.uri));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid HTTP method", message->h.uri, NULL));
END
}
} else {
@@ -145,8 +154,8 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
pcf_ue->supi, sess->psi, message->h.method);
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_FORBIDDEN, message,
- "Invalid HTTP method", message->h.uri));
+ OGS_SBI_HTTP_STATUS_METHOD_NOT_ALLOWED, message,
+ "Invalid HTTP method", message->h.uri, NULL));
END
}
break;
@@ -161,8 +170,16 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
case OGS_EVENT_SBI_CLIENT:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_NUDR_DR)
@@ -176,14 +193,42 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
OGS_SBI_HTTP_STATUS_NOT_FOUND) {
ogs_warn("[%s:%d] Cannot find SUPI [%d]",
pcf_ue->supi, sess->psi, message->res_status);
+ /*
+ * TS29.512
+ * 4.2.2.2 SM Policy Association establishment
+ *
+ * If the user information received within the "supi"
+ * attribute is unknown, the PCF shall reject the
+ * request with an HTTP "400 Bad Request" response
+ * message including the "cause" attribute of the
+ * ProblemDetails data structure set to "USER_UNKNOWN".
+ */
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
+ NULL, "End user is unknown to the PCF",
+ pcf_ue->supi, "USER_UNKNOWN"));
} else {
ogs_error("[%s:%d] HTTP response error [%d]",
pcf_ue->supi, sess->psi, message->res_status);
+ /*
+ * TS29.512
+ * 4.2.2.2 SM Policy Association establishment
+ *
+ * If the PCF, based on local configuration and/or
+ * operator policies, denies the creation of the
+ * Individual SM Policy resource, the PCF may reject
+ * the request and include in an HTTP "403 Forbidden"
+ * response message the "cause" attribute of the
+ * ProblemDetails data structure set to
+ * "POLICY_CONTEXT_DENIED".
+ */
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(
+ stream, OGS_SBI_HTTP_STATUS_FORBIDDEN,
+ NULL, "HTTP response error",
+ pcf_ue->supi, "POLICY_CONTEXT_DENIED"));
}
- ogs_assert(true ==
- ogs_sbi_server_send_error(
- stream, message->res_status,
- NULL, "HTTP response error", pcf_ue->supi));
break;
}
@@ -246,8 +291,22 @@ void pcf_sm_state_operational(ogs_fsm_t *s, pcf_event_t *e)
} else {
SWITCH(message->h.method)
CASE(OGS_SBI_HTTP_METHOD_POST)
- pcf_nbsf_management_handle_register(
- sess, stream, message);
+ if (message->res_status ==
+ OGS_SBI_HTTP_STATUS_CREATED) {
+ pcf_nbsf_management_handle_register(
+ sess, stream, message);
+ } else {
+ ogs_error("[%s:%d] HTTP response error [%d]",
+ pcf_ue->supi, sess->psi, message->res_status);
+
+ /*
+ * Send Response
+ * for SM Policy Association establishment
+ */
+ ogs_expect(true ==
+ pcf_sbi_send_smpolicycontrol_create_response(
+ sess, stream));
+ }
break;
DEFAULT
ogs_error("[%s:%d] Unknown method [%s]",
@@ -289,15 +348,14 @@ void pcf_sm_state_deleted(ogs_fsm_t *s, pcf_event_t *e)
pcf_sm_debug(e);
- sess = e->sess;
+ sess = pcf_sess_find_by_id(e->sess_id);
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
switch (e->h.id) {
case OGS_FSM_ENTRY_SIG:
- ogs_assert(sess->pcf_ue);
- pcf_metrics_inst_by_slice_add(&sess->pcf_ue->guami.plmn_id,
+ pcf_metrics_inst_by_slice_add(&pcf_ue->guami.plmn_id,
&sess->s_nssai, PCF_METR_GAUGE_PA_SESSIONNBR, -1);
break;
@@ -321,15 +379,14 @@ void pcf_sm_state_exception(ogs_fsm_t *s, pcf_event_t *e)
pcf_sm_debug(e);
- sess = e->sess;
+ sess = pcf_sess_find_by_id(e->sess_id);
ogs_assert(sess);
- pcf_ue = sess->pcf_ue;
+ pcf_ue = pcf_ue_find_by_id(sess->pcf_ue_id);
ogs_assert(pcf_ue);
switch (e->h.id) {
case OGS_FSM_ENTRY_SIG:
- ogs_assert(sess->pcf_ue);
- pcf_metrics_inst_by_slice_add(&sess->pcf_ue->guami.plmn_id,
+ pcf_metrics_inst_by_slice_add(&pcf_ue->guami.plmn_id,
&sess->s_nssai, PCF_METR_GAUGE_PA_SESSIONNBR, -1);
break;
diff --git a/src/pcrf/meson.build b/src/pcrf/meson.build
index e265e87307..6f00db9857 100644
--- a/src/pcrf/meson.build
+++ b/src/pcrf/meson.build
@@ -18,17 +18,26 @@
libpcrf_sources = files('''
pcrf-context.h
pcrf-fd-path.h
+ pcrf-event.h
+ pcrf-sm.h
+ metrics.h
pcrf-init.c
pcrf-context.c
+ pcrf-event.c
+ pcrf-sm.c
+
pcrf-fd-path.c
pcrf-gx-path.c
pcrf-rx-path.c
+
+ metrics.c
'''.split())
libpcrf = static_library('pcrf',
sources : libpcrf_sources,
- dependencies : [libapp_dep,
+ dependencies : [libmetrics_dep,
+ libapp_dep,
libdbi_dep,
libdiameter_rx_dep,
libdiameter_gx_dep],
@@ -36,7 +45,8 @@ libpcrf = static_library('pcrf',
libpcrf_dep = declare_dependency(
link_with : libpcrf,
- dependencies : [libapp_dep,
+ dependencies : [libmetrics_dep,
+ libapp_dep,
libdbi_dep,
libdiameter_rx_dep,
libdiameter_gx_dep])
diff --git a/src/pcrf/metrics.c b/src/pcrf/metrics.c
new file mode 100644
index 0000000000..d4820483fc
--- /dev/null
+++ b/src/pcrf/metrics.c
@@ -0,0 +1,161 @@
+#include "ogs-app.h"
+#include "pcrf-context.h"
+
+#include "metrics.h"
+
+typedef struct pcrf_metrics_spec_def_s {
+ unsigned int type;
+ const char *name;
+ const char *description;
+ int initial_val;
+ unsigned int num_labels;
+ const char **labels;
+} pcrf_metrics_spec_def_t;
+
+/* Helper generic functions: */
+static int pcrf_metrics_init_inst(ogs_metrics_inst_t **inst, ogs_metrics_spec_t **specs,
+ unsigned int len, unsigned int num_labels, const char **labels)
+{
+ unsigned int i;
+ for (i = 0; i < len; i++)
+ inst[i] = ogs_metrics_inst_new(specs[i], num_labels, labels);
+ return OGS_OK;
+}
+
+static int pcrf_metrics_free_inst(ogs_metrics_inst_t **inst,
+ unsigned int len)
+{
+ unsigned int i;
+ for (i = 0; i < len; i++)
+ ogs_metrics_inst_free(inst[i]);
+ memset(inst, 0, sizeof(inst[0]) * len);
+ return OGS_OK;
+}
+
+static int pcrf_metrics_init_spec(ogs_metrics_context_t *ctx,
+ ogs_metrics_spec_t **dst, pcrf_metrics_spec_def_t *src, unsigned int len)
+{
+ unsigned int i;
+ for (i = 0; i < len; i++) {
+ dst[i] = ogs_metrics_spec_new(ctx, src[i].type,
+ src[i].name, src[i].description,
+ src[i].initial_val, src[i].num_labels, src[i].labels,
+ NULL);
+ }
+ return OGS_OK;
+}
+
+/* GLOBAL */
+ogs_metrics_spec_t *pcrf_metrics_spec_global[_PCRF_METR_GLOB_MAX];
+ogs_metrics_inst_t *pcrf_metrics_inst_global[_PCRF_METR_GLOB_MAX];
+pcrf_metrics_spec_def_t pcrf_metrics_spec_def_global[_PCRF_METR_GLOB_MAX] = {
+/* Global Counters: */
+/* Global Counters: Gx */
+[PCRF_METR_GLOB_CTR_Gx_RX_UNKNOWN] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "gx_rx_unknown",
+ .description = "Received Gx unknown messages",
+},
+[PCRF_METR_GLOB_CTR_Gx_RX_CCR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "gx_rx_ccr",
+ .description = "Received Gx CCR messages",
+},
+[PCRF_METR_GLOB_CTR_Gx_RX_CCR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "gx_rx_ccr_error",
+ .description = "Received Gx CCR messages failed",
+},
+[PCRF_METR_GLOB_CTR_Gx_RX_RAA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "gx_rx_raa",
+ .description = "Received Gx RAA messages",
+},
+[PCRF_METR_GLOB_CTR_Gx_TX_CCA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "gx_tx_cca",
+ .description = "Received Gx RAA messages failed",
+},
+[PCRF_METR_GLOB_CTR_Gx_TX_RAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "gx_tx_rar",
+ .description = "Transmitted Gx RAR messages",
+},
+[PCRF_METR_GLOB_CTR_Gx_TX_RAR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "gx_tx_rar_error",
+ .description = "Failed to transmit Gx RAR messages",
+},
+/* Global Counters: Rx */
+[PCRF_METR_GLOB_CTR_Rx_RX_UNKNOWN] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_rx_unknown",
+ .description = "Received Rx unknown messages",
+},
+[PCRF_METR_GLOB_CTR_Rx_RX_AAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_rx_aar",
+ .description = "Received Rx AAR messages",
+},
+[PCRF_METR_GLOB_CTR_Rx_RX_AAR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_rx_aar_error",
+ .description = "Received Rx AAR messages failed",
+},
+[PCRF_METR_GLOB_CTR_Rx_RX_ASA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_rx_asa",
+ .description = "Received Rx ASA messages",
+},
+[PCRF_METR_GLOB_CTR_Rx_RX_STR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_rx_asa_error",
+ .description = "Received Rx ASA messages failed",
+},
+[PCRF_METR_GLOB_CTR_Rx_RX_STR_ERROR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_rx_str_error",
+ .description = "Received Rx STR messages failed",
+},
+[PCRF_METR_GLOB_CTR_Rx_TX_AAA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_tx_aaa",
+ .description = "Transmitted Rx AAA messages",
+},
+[PCRF_METR_GLOB_CTR_Rx_TX_SAR] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_tx_sar",
+ .description = "Transmitted Rx SAR messages",
+},
+[PCRF_METR_GLOB_CTR_Rx_TX_STA] = {
+ .type = OGS_METRICS_METRIC_TYPE_COUNTER,
+ .name = "rx_tx_sta",
+ .description = "Transmitted Rx STA messages",
+},
+/* Global Gauges: */
+};
+int pcrf_metrics_init_inst_global(void)
+{
+ return pcrf_metrics_init_inst(pcrf_metrics_inst_global, pcrf_metrics_spec_global,
+ _PCRF_METR_GLOB_MAX, 0, NULL);
+}
+int pcrf_metrics_free_inst_global(void)
+{
+ return pcrf_metrics_free_inst(pcrf_metrics_inst_global, _PCRF_METR_GLOB_MAX);
+}
+
+void pcrf_metrics_init(void)
+{
+ ogs_metrics_context_t *ctx = ogs_metrics_self();
+ ogs_metrics_context_init();
+
+ pcrf_metrics_init_spec(ctx, pcrf_metrics_spec_global, pcrf_metrics_spec_def_global,
+ _PCRF_METR_GLOB_MAX);
+
+ pcrf_metrics_init_inst_global();
+}
+
+void pcrf_metrics_final(void)
+{
+ ogs_metrics_context_final();
+}
diff --git a/src/pcrf/metrics.h b/src/pcrf/metrics.h
new file mode 100644
index 0000000000..f6205456eb
--- /dev/null
+++ b/src/pcrf/metrics.h
@@ -0,0 +1,53 @@
+#ifndef PCRF_METRICS_H
+#define PCRF_METRICS_H
+
+#include "ogs-metrics.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* GLOBAL */
+typedef enum pcrf_metric_type_global_s {
+ PCRF_METR_GLOB_CTR_Gx_RX_UNKNOWN,
+ PCRF_METR_GLOB_CTR_Gx_RX_CCR,
+ PCRF_METR_GLOB_CTR_Gx_RX_CCR_ERROR,
+ PCRF_METR_GLOB_CTR_Gx_RX_RAA,
+ PCRF_METR_GLOB_CTR_Gx_TX_CCA,
+ PCRF_METR_GLOB_CTR_Gx_TX_RAR,
+ PCRF_METR_GLOB_CTR_Gx_TX_RAR_ERROR,
+
+ PCRF_METR_GLOB_CTR_Rx_RX_UNKNOWN,
+ PCRF_METR_GLOB_CTR_Rx_RX_AAR,
+ PCRF_METR_GLOB_CTR_Rx_RX_AAR_ERROR,
+ PCRF_METR_GLOB_CTR_Rx_RX_ASA,
+ PCRF_METR_GLOB_CTR_Rx_RX_STR,
+ PCRF_METR_GLOB_CTR_Rx_RX_STR_ERROR,
+ PCRF_METR_GLOB_CTR_Rx_TX_AAA,
+ PCRF_METR_GLOB_CTR_Rx_TX_SAR,
+ PCRF_METR_GLOB_CTR_Rx_TX_STA,
+
+ _PCRF_METR_GLOB_MAX,
+} pcrf_metric_type_global_t;
+extern ogs_metrics_inst_t *pcrf_metrics_inst_global[_PCRF_METR_GLOB_MAX];
+
+int pcrf_metrics_init_inst_global(void);
+int pcrf_metrics_free_inst_global(void);
+
+static inline void pcrf_metrics_inst_global_set(pcrf_metric_type_global_t t, int val)
+{ ogs_metrics_inst_set(pcrf_metrics_inst_global[t], val); }
+static inline void pcrf_metrics_inst_global_add(pcrf_metric_type_global_t t, int val)
+{ ogs_metrics_inst_add(pcrf_metrics_inst_global[t], val); }
+static inline void pcrf_metrics_inst_global_inc(pcrf_metric_type_global_t t)
+{ ogs_metrics_inst_inc(pcrf_metrics_inst_global[t]); }
+static inline void pcrf_metrics_inst_global_dec(pcrf_metric_type_global_t t)
+{ ogs_metrics_inst_dec(pcrf_metrics_inst_global[t]); }
+
+void pcrf_metrics_init(void);
+void pcrf_metrics_final(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PCRF_METRICS_H */
diff --git a/src/pcrf/pcrf-context.c b/src/pcrf/pcrf-context.c
index bb0edeafd6..19f69056e4 100644
--- a/src/pcrf/pcrf-context.c
+++ b/src/pcrf/pcrf-context.c
@@ -19,6 +19,7 @@
#include "ogs-dbi.h"
#include "pcrf-context.h"
+#include "pcrf-fd-path.h"
static pcrf_context_t self;
static ogs_diam_config_t g_diam_conf;
@@ -72,6 +73,7 @@ static int pcrf_context_prepare(void)
{
self.diam_config->cnf_port = DIAMETER_PORT;
self.diam_config->cnf_port_tls = DIAMETER_SECURE_PORT;
+ self.diam_config->stats.priv_stats_size = sizeof(pcrf_diam_stats_t);
return OGS_OK;
}
@@ -90,38 +92,12 @@ static int pcrf_context_validation(void)
return OGS_OK;
}
-static int session_conf_prepare(void)
+static int policy_conf_prepare(void)
{
- ogs_app_policy_conf_t *policy_conf = NULL;
- ogs_app_slice_conf_t *slice_conf = NULL;
-
- ogs_plmn_id_t plmn_id;
- ogs_s_nssai_t s_nssai;
-
- ogs_plmn_id_build(&plmn_id, 999, 70, 2);
-
- s_nssai.sst = 1;
- s_nssai.sd.v = OGS_S_NSSAI_NO_SD_VALUE;
-
- /* Added Dummy POLICY for EPC */
- policy_conf = ogs_app_policy_conf_add(&plmn_id);
- if (!policy_conf) {
- ogs_error("ogs_app_policy_conf_add() failed");
- return OGS_ERROR;
- }
-
- /* Added Dummy SLICE for EPC */
- slice_conf = ogs_app_slice_conf_add(policy_conf, &s_nssai);
- if (!slice_conf) {
- ogs_error("ogs_app_slice_conf_add() failed");
- return OGS_ERROR;
- }
- slice_conf->data.default_indicator = true;
-
return OGS_OK;
}
-static int session_conf_validation(void)
+static int policy_conf_validation(void)
{
int rv;
@@ -134,27 +110,77 @@ static int session_conf_validation(void)
return OGS_OK;
}
-static int parse_session_conf(ogs_yaml_iter_t *parent)
+static int parse_policy_conf(ogs_yaml_iter_t *parent)
{
int rv;
- ogs_app_policy_conf_t *policy_conf = NULL;
- ogs_app_slice_conf_t *slice_conf = NULL;
+ ogs_yaml_iter_t policy_array, policy_iter;
ogs_assert(parent);
- rv = session_conf_prepare();
+ rv = policy_conf_prepare();
if (rv != OGS_OK) return rv;
- policy_conf = ogs_list_first(&ogs_local_conf()->policy_list);
- ogs_assert(policy_conf);
+ ogs_yaml_iter_recurse(parent, &policy_array);
+ do {
+ ogs_app_policy_conf_t *policy_conf = NULL;
+ ogs_app_slice_conf_t *slice_conf = NULL;
+ ogs_supi_range_t supi_range;
+ ogs_s_nssai_t s_nssai;
+
+ memset(&supi_range, 0, sizeof(ogs_supi_range_t));
+
+ OGS_YAML_ARRAY_NEXT(&policy_array, &policy_iter);
+ while (ogs_yaml_iter_next(&policy_iter)) {
+ const char *policy_key = ogs_yaml_iter_key(&policy_iter);
+ ogs_assert(policy_key);
+ if (!strcmp(policy_key, "supi_range")) {
+ rv = ogs_app_parse_supi_range_conf(&policy_iter, &supi_range);
+ if (rv != OGS_OK) {
+ ogs_error("ogs_app_parse_supi_range_conf() failed");
+ return rv;
+ }
+ }
+ }
- slice_conf = ogs_list_first(&policy_conf->slice_list);
- ogs_assert(slice_conf);
+ if (supi_range.num) {
+ policy_conf = ogs_app_policy_conf_add(
+ supi_range.num ? &supi_range : NULL, NULL);
+ if (!policy_conf) {
+ ogs_error("ogs_app_policy_conf_add() failed "
+ "[supi_range.num:%d]", supi_range.num);
+ return OGS_ERROR;
+ }
- rv = ogs_app_parse_session_conf(parent, slice_conf);
- if (rv != OGS_OK) return rv;
+ s_nssai.sst = 1;
+ s_nssai.sd.v = OGS_S_NSSAI_NO_SD_VALUE;
+
+ slice_conf = ogs_app_slice_conf_add(policy_conf, &s_nssai);
+ if (!slice_conf) {
+ ogs_error("ogs_app_slice_conf_add() failed");
+ return OGS_ERROR;
+ }
+ slice_conf->data.default_indicator = true;
+ } else {
+ ogs_error("No SUPI Range");
+ return OGS_ERROR;
+ }
+
+ OGS_YAML_ARRAY_RECURSE(&policy_array, &policy_iter);
+ while (ogs_yaml_iter_next(&policy_iter)) {
+ const char *policy_key = ogs_yaml_iter_key(&policy_iter);
+ ogs_assert(policy_key);
+ if (!strcmp(policy_key, OGS_SESSION_STRING)) {
+ rv = ogs_app_parse_session_conf(&policy_iter, slice_conf);
+ if (rv != OGS_OK) {
+ ogs_error("parse_session_conf() failed");
+ return rv;
+ }
+ }
+ }
- rv = session_conf_validation();
+ } while (ogs_yaml_iter_type(&policy_array) == YAML_SEQUENCE_NODE);
+
+ rv = policy_conf_validation();
if (rv != OGS_OK) return rv;
return OGS_OK;
@@ -270,6 +296,7 @@ int pcrf_context_parse_config(void)
const char *identity = NULL;
const char *addr = NULL;
uint16_t port = 0;
+ int tc_timer = 0;
if (ogs_yaml_iter_type(&conn_array) ==
YAML_MAPPING_NODE) {
@@ -302,6 +329,10 @@ int pcrf_context_parse_config(void)
const char *v =
ogs_yaml_iter_value(&conn_iter);
if (v) port = atoi(v);
+ } else if (!strcmp(conn_key, "tc_timer")) {
+ const char *v =
+ ogs_yaml_iter_value(&conn_iter);
+ if (v) tc_timer = atoi(v);
} else
ogs_warn("unknown key `%s`",
conn_key);
@@ -317,18 +348,29 @@ int pcrf_context_parse_config(void)
self.diam_config->
conn[self.diam_config->num_of_conn].
port = port;
+ self.diam_config->
+ conn[self.diam_config->num_of_conn].
+ tc_timer = tc_timer;
self.diam_config->num_of_conn++;
}
} while (ogs_yaml_iter_type(&conn_array) ==
YAML_SEQUENCE_NODE);
+ } else if (!strcmp(fd_key, "tc_timer")) {
+ const char *v = ogs_yaml_iter_value(&fd_iter);
+ if (v) self.diam_config->cnf_timer_tc = atoi(v);
} else
ogs_warn("unknown key `%s`", fd_key);
}
}
- } else if (!strcmp(pcrf_key, OGS_SESSION_STRING)) {
- rv = parse_session_conf(&pcrf_iter);
+ } else if (!strcmp(pcrf_key, "diameter_stats_interval")) {
+ const char *v = ogs_yaml_iter_value(&pcrf_iter);
+ if (v) self.diam_config->stats.interval_sec = atoi(v);
+ } else if (!strcmp(pcrf_key, "metrics")) {
+ /* handle config in metrics library */
+ } else if (!strcmp(pcrf_key, OGS_POLICY_STRING)) {
+ rv = parse_policy_conf(&pcrf_iter);
if (rv != OGS_OK) {
- ogs_error("parse_session_conf() failed");
+ ogs_error("parse_policy_conf() failed");
return rv;
}
} else
@@ -348,7 +390,6 @@ int pcrf_db_qos_data(
{
int rv, i;
char *supi = NULL;
- ogs_session_data_t zero_data;
ogs_app_policy_conf_t *policy_conf = NULL;
ogs_app_slice_conf_t *slice_conf = NULL;
@@ -359,20 +400,17 @@ int pcrf_db_qos_data(
ogs_thread_mutex_lock(&self.db_lock);
- memset(&zero_data, 0, sizeof(zero_data));
-
- /* session_data should be initialized to zero */
- ogs_assert(memcmp(session_data, &zero_data, sizeof(zero_data)) == 0);
+ memset(session_data, 0, sizeof(*session_data));
supi = ogs_msprintf("%s-%s", OGS_ID_SUPI_TYPE_IMSI, imsi_bcd);
ogs_assert(supi);
- policy_conf = ogs_list_first(&ogs_local_conf()->policy_list);
+ policy_conf = ogs_app_policy_conf_find(supi, NULL);
if (policy_conf)
slice_conf = ogs_list_first(&policy_conf->slice_list);
if (slice_conf) {
- rv = ogs_app_config_session_data(NULL, NULL, apn, session_data);
+ rv = ogs_app_config_session_data(supi, NULL, NULL, apn, session_data);
if (rv != OGS_OK)
ogs_error("ogs_app_config_session_data() failed for APN(%s)", apn);
} else {
diff --git a/src/pcrf/pcrf-context.h b/src/pcrf/pcrf-context.h
index 3ee31c36af..026297e43a 100644
--- a/src/pcrf/pcrf-context.h
+++ b/src/pcrf/pcrf-context.h
@@ -24,6 +24,7 @@
#include "ogs-diameter-rx.h"
#include "ogs-dbi.h"
#include "ogs-app.h"
+#include "metrics.h"
#ifdef __cplusplus
extern "C" {
diff --git a/src/pcrf/pcrf-event.c b/src/pcrf/pcrf-event.c
new file mode 100644
index 0000000000..6a0bd6cb41
--- /dev/null
+++ b/src/pcrf/pcrf-event.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2024 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "pcrf-event.h"
+#include "ogs-app.h"
+
+static OGS_POOL(pool, pcrf_event_t);
+
+void pcrf_event_init(void)
+{
+ ogs_pool_init(&pool, ogs_app()->pool.event);
+}
+
+void pcrf_event_term(void)
+{
+ ogs_queue_term(ogs_app()->queue);
+ ogs_pollset_notify(ogs_app()->pollset);
+}
+
+void pcrf_event_final(void)
+{
+ ogs_pool_final(&pool);
+}
+
+pcrf_event_t *pcrf_event_new(pcrf_event_e id)
+{
+ pcrf_event_t *e = NULL;
+
+ ogs_pool_alloc(&pool, &e);
+ ogs_assert(e);
+ memset(e, 0, sizeof(*e));
+
+ e->id = id;
+
+ return e;
+}
+
+void pcrf_event_free(pcrf_event_t *e)
+{
+ ogs_assert(e);
+ ogs_pool_free(&pool, e);
+}
+
+const char *pcrf_event_get_name(pcrf_event_t *e)
+{
+ if (e == NULL)
+ return OGS_FSM_NAME_INIT_SIG;
+
+ switch (e->id) {
+ case OGS_FSM_ENTRY_SIG:
+ return OGS_FSM_NAME_ENTRY_SIG;
+ case OGS_FSM_EXIT_SIG:
+ return OGS_FSM_NAME_EXIT_SIG;
+
+ default:
+ break;
+ }
+
+ return "UNKNOWN_EVENT";
+}
diff --git a/src/pcrf/pcrf-event.h b/src/pcrf/pcrf-event.h
new file mode 100644
index 0000000000..6615248593
--- /dev/null
+++ b/src/pcrf/pcrf-event.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2024 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef PCRF_EVENT_H
+#define PCRF_EVENT_H
+
+#include "ogs-proto.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ PCRF_EVT_BASE = OGS_MAX_NUM_OF_PROTO_EVENT,
+
+ PCRF_EVT_TOP,
+} pcrf_event_e;
+
+typedef struct pcrf_event_s {
+ int id;
+ int timer_id;
+
+ struct {
+ void *document;
+ } dbi;
+} pcrf_event_t;
+
+void pcrf_event_init(void);
+void pcrf_event_term(void);
+void pcrf_event_final(void);
+
+pcrf_event_t *pcrf_event_new(pcrf_event_e id);
+void pcrf_event_free(pcrf_event_t *e);
+
+const char *pcrf_event_get_name(pcrf_event_t *e);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PCRF_EVENT_H */
diff --git a/src/pcrf/pcrf-fd-path.c b/src/pcrf/pcrf-fd-path.c
index 05010f1eea..a72d0820b2 100644
--- a/src/pcrf/pcrf-fd-path.c
+++ b/src/pcrf/pcrf-fd-path.c
@@ -20,6 +20,41 @@
#include "pcrf-context.h"
#include "pcrf-fd-path.h"
+static pcrf_diam_stats_t prev_st;
+
+static void pcrf_diam_stats_update_cb(const ogs_diam_stats_t *stats, const void *priv_stats)
+{
+ const pcrf_diam_stats_t *st = (const pcrf_diam_stats_t *)priv_stats;
+
+ ogs_debug("%s(): Update PCRF diameter metrics", __func__);
+
+ #define METRIC_ADD(metric_name, field) \
+ { \
+ int diff = st->field - prev_st.field; \
+ if (diff > 0) pcrf_metrics_inst_global_add(metric_name, diff); \
+ }
+
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Gx_RX_UNKNOWN, gx.rx_unknown);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Gx_RX_CCR, gx.rx_ccr);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Gx_RX_CCR_ERROR, gx.rx_ccr_error);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Gx_RX_RAA, gx.rx_raa);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Gx_TX_CCA, gx.tx_cca);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Gx_TX_RAR, gx.tx_rar);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Gx_TX_RAR_ERROR, gx.tx_rar_error);
+
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_RX_UNKNOWN, rx.rx_unknown);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_RX_AAR, rx.rx_aar);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_RX_AAR_ERROR, rx.rx_aar_error);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_RX_ASA, rx.rx_asa);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_RX_STR, rx.rx_str);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_RX_STR_ERROR, rx.rx_str_error);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_TX_AAA, rx.tx_aaa);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_TX_SAR, rx.tx_sar);
+ METRIC_ADD(PCRF_METR_GLOB_CTR_Rx_TX_STA, rx.tx_sta);
+
+ memcpy(&prev_st, st, sizeof(*st));
+}
+
int pcrf_fd_init(void)
{
int rv;
@@ -33,6 +68,8 @@ int pcrf_fd_init(void)
rv = pcrf_rx_init();
ogs_assert(rv == OGS_OK);
+ ogs_diam_stats_update_cb_register(pcrf_diam_stats_update_cb);
+
rv = ogs_diam_start();
ogs_assert(rv == 0);
diff --git a/src/pcrf/pcrf-fd-path.h b/src/pcrf/pcrf-fd-path.h
index 5a808da250..01d4a8849a 100644
--- a/src/pcrf/pcrf-fd-path.h
+++ b/src/pcrf/pcrf-fd-path.h
@@ -27,6 +27,36 @@ extern "C" {
struct sess_state;
typedef struct ogs_diam_rx_message_s ogs_diam_rx_message_t;
+typedef struct pcrf_diam_stats_gx_s {
+ unsigned long long rx_unknown;
+ unsigned long long rx_ccr;
+ unsigned long long rx_ccr_error;
+ unsigned long long rx_raa;
+ unsigned long long tx_cca;
+ unsigned long long tx_rar;
+ unsigned long long tx_rar_error;
+} pcrf_diam_stats_gx_t;
+
+typedef struct pcrf_diam_stats_rx_s {
+ unsigned long long rx_unknown;
+ unsigned long long rx_aar;
+ unsigned long long rx_aar_error;
+ unsigned long long rx_asa;
+ unsigned long long rx_str;
+ unsigned long long rx_str_error;
+ unsigned long long tx_aaa;
+ unsigned long long tx_sar;
+ unsigned long long tx_sta;
+} pcrf_diam_stats_rx_t;
+
+typedef struct pcrf_diam_stats_s {
+ pcrf_diam_stats_gx_t gx;
+ pcrf_diam_stats_rx_t rx;
+} pcrf_diam_stats_t;
+
+#define PCRF_DIAM_PRIV_STATS_ADD(field, val) ((pcrf_diam_stats_t *)ogs_diam_stats_self()->priv_stats)->field += val
+#define PCRF_DIAM_PRIV_STATS_INC(field) PCRF_DIAM_PRIV_STATS_ADD(field, 1)
+
int pcrf_fd_init(void);
void pcrf_fd_final(void);
diff --git a/src/pcrf/pcrf-gx-path.c b/src/pcrf/pcrf-gx-path.c
index 22360d9247..54b414a702 100644
--- a/src/pcrf/pcrf-gx-path.c
+++ b/src/pcrf/pcrf-gx-path.c
@@ -1,4 +1,4 @@
-/*
+/* Gx Interface, 3GPP TS 29.212 section 4
* Copyright (C) 2019 by Sukchan Lee
*
* This file is part of Open5GS.
@@ -55,8 +55,8 @@ static OGS_POOL(rx_sess_state_pool, struct rx_sess_state);
static ogs_thread_mutex_t sess_state_mutex;
static struct session_handler *pcrf_gx_reg = NULL;
-static struct disp_hdl *hdl_gx_fb = NULL;
-static struct disp_hdl *hdl_gx_ccr = NULL;
+static struct disp_hdl *hdl_gx_fb = NULL;
+static struct disp_hdl *hdl_gx_ccr = NULL;
static void pcrf_gx_raa_cb(void *data, struct msg **msg);
@@ -169,7 +169,7 @@ static struct rx_sess_state *find_rx_state(struct sess_state *gx, os0_t sid)
ogs_assert(gx);
ogs_assert(sid);
-
+
ogs_list_for_each(&gx->rx_list, rx_sess_data) {
if (!strcmp((char *)rx_sess_data->sid, (char *)sid))
return rx_sess_data;
@@ -180,7 +180,10 @@ static struct rx_sess_state *find_rx_state(struct sess_state *gx, os0_t sid)
static void state_cleanup(struct sess_state *sess_data, os0_t sid, void *opaque)
{
- ogs_assert(sess_data);
+ if (!sess_data) {
+ ogs_error("No session state");
+ return;
+ }
if (sess_data->peer_host)
ogs_free(sess_data->peer_host);
@@ -199,22 +202,26 @@ static void state_cleanup(struct sess_state *sess_data, os0_t sid, void *opaque)
ogs_free(sess_data->sid);
remove_rx_state_all(sess_data);
-
+
ogs_thread_mutex_lock(&sess_state_mutex);
ogs_pool_free(&sess_state_pool, sess_data);
ogs_thread_mutex_unlock(&sess_state_mutex);
}
-static int pcrf_gx_fb_cb(struct msg **msg, struct avp *avp,
+static int pcrf_gx_fb_cb(struct msg **msg, struct avp *avp,
struct session *sess, void *opaque, enum disp_action *act)
{
/* This CB should never be called */
ogs_warn("Unexpected message received!");
+ OGS_DIAM_STATS_MTX(
+ PCRF_DIAM_PRIV_STATS_INC(gx.rx_unknown);
+ )
+
return ENOTSUP;
}
-static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
+static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
struct session *sess, void *opaque, enum disp_action *act)
{
int rv;
@@ -232,7 +239,7 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
uint32_t cc_request_number = 0;
uint32_t result_code = OGS_DIAM_MISSING_AVP;
- ogs_debug("[Credit-Control-Request]");
+ ogs_debug("Rx Credit-Control-Request");
ogs_assert(msg);
@@ -486,7 +493,7 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_avp_add (avp, MSG_BRW_LAST_CHILD, avpch1);
ogs_assert(ret == 0);
}
-
+
if (gx_message.session_data.session.ambr.downlink) {
ret = fd_msg_avp_new(
ogs_diam_gx_apn_aggregate_max_bitrate_dl, 0, &avpch1);
@@ -615,12 +622,14 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("[Credit-Control-Answer]");
+ ogs_debug("Tx Credit-Control-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) ==0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ PCRF_DIAM_PRIV_STATS_INC(gx.rx_ccr);
+ PCRF_DIAM_PRIV_STATS_INC(gx.tx_cca);
+ )
OGS_SESSION_DATA_FREE(&gx_message.session_data);
@@ -659,6 +668,11 @@ static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ PCRF_DIAM_PRIV_STATS_INC(gx.rx_ccr);
+ PCRF_DIAM_PRIV_STATS_INC(gx.rx_ccr_error);
+ )
+
OGS_SESSION_DATA_FREE(&gx_message.session_data);
return 0;
@@ -686,7 +700,7 @@ int pcrf_gx_send_rar(
ogs_assert(rx_sid);
ogs_assert(rx_message);
- ogs_debug("[PCRF] Re-Auth-Request");
+ ogs_debug("[PCRF] Tx Re-Auth-Request");
/* Initialize Message */
memset(&gx_message, 0, sizeof(ogs_diam_gx_message_t));
@@ -728,7 +742,7 @@ int pcrf_gx_send_rar(
ret = fd_sess_state_retrieve(pcrf_gx_reg, session, &sess_data);
ogs_assert(ret == 0);
if (sess_data == NULL) {
- ogs_error("No session data");
+ ogs_error("No Session Data");
ret = fd_msg_free(req);
ogs_assert(ret == 0);
rx_message->result_code = OGS_DIAM_UNKNOWN_SESSION_ID;
@@ -779,7 +793,7 @@ int pcrf_gx_send_rar(
rx_message->result_code = OGS_DIAM_INVALID_AVP_VALUE;
goto out;
}
-
+
for (j = 0; j < gx_message.session_data.num_of_pcc_rule; j++) {
if (gx_message.session_data.pcc_rule[j].qos.index ==
qos_index) {
@@ -814,7 +828,7 @@ int pcrf_gx_send_rar(
ogs_error("CHECK WEBUI : No PCC Rule in DB [QoS Index:%d]",
qos_index);
ogs_error("Please add PCC Rule using WEBUI");
- rx_message->result_code =
+ rx_message->result_code =
OGS_DIAM_RX_DIAMETER_REQUESTED_SERVICE_NOT_AUTHORIZED;
goto out;
}
@@ -827,7 +841,7 @@ int pcrf_gx_send_rar(
}
if (!pcc_rule) {
- pcc_rule =
+ pcc_rule =
&rx_sess_data->pcc_rule[rx_sess_data->num_of_pcc_rule];
/* Device PCC Rule Info from DB Profile */
@@ -871,7 +885,7 @@ int pcrf_gx_send_rar(
rv = ogs_pcc_rule_install_flow_from_media(
pcc_rule, media_component);
if (rv != OGS_OK) {
- rx_message->result_code =
+ rx_message->result_code =
OGS_DIAM_RX_DIAMETER_FILTER_RESTRICTIONS;
ogs_error("install_flow() failed");
goto out;
@@ -995,24 +1009,25 @@ int pcrf_gx_send_rar(
ret = clock_gettime(CLOCK_REALTIME, &sess_data->ts);
ogs_assert(ret == 0);
-
- /* Keep a pointer to the session data for debug purpose,
+
+ /* Keep a pointer to the session data for debug purpose,
* in real life we would not need it */
svg = sess_data;
-
+
/* Store this value in the session */
ret = fd_sess_state_store(pcrf_gx_reg, session, &sess_data);
ogs_assert(ret == 0);
ogs_assert(sess_data == NULL);
-
+
/* Send the request */
ret = fd_msg_send(&req, pcrf_gx_raa_cb, svg);
ogs_assert(ret == 0);
/* Increment the counter */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_sent++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_sent);
+ PCRF_DIAM_PRIV_STATS_INC(gx.tx_rar);
+ )
/* Set no error */
rx_message->result_code = ER_DIAMETER_SUCCESS;
@@ -1026,6 +1041,11 @@ int pcrf_gx_send_rar(
ret = fd_sess_state_store(pcrf_gx_reg, session, &sess_data);
ogs_assert(sess_data == NULL);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_sent);
+ PCRF_DIAM_PRIV_STATS_INC(gx.tx_rar_error);
+ )
+
OGS_SESSION_DATA_FREE(&gx_message.session_data);
return OGS_ERROR;
@@ -1043,10 +1063,10 @@ static void pcrf_gx_raa_cb(void *data, struct msg **msg)
unsigned long dur;
int error = 0;
int new;
-
+
uint32_t result_code;
- ogs_debug("[PCRF] Re-Auth-Answer");
+ ogs_debug("[PCRF] Rx Re-Auth-Answer");
ret = clock_gettime(CLOCK_REALTIME, &ts);
ogs_assert(ret == 0);
@@ -1055,10 +1075,13 @@ static void pcrf_gx_raa_cb(void *data, struct msg **msg)
ret = fd_msg_sess_get(fd_g_config->cnf_dict, *msg, &session, &new);
ogs_assert(ret == 0);
ogs_assert(new == 0);
-
+
ret = fd_sess_state_retrieve(pcrf_gx_reg, session, &sess_data);
ogs_assert(ret == 0);
- ogs_assert(sess_data);
+ if (!sess_data) {
+ ogs_error("No Session Data");
+ return;
+ }
ogs_assert((void *)sess_data == data);
/* Value of Result Code */
@@ -1115,38 +1138,39 @@ static void pcrf_gx_raa_cb(void *data, struct msg **msg)
}
/* Free the message */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
- ((ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
- if (ogs_diam_logger_self()->stats.nb_recv) {
- /* Ponderate in the avg */
- ogs_diam_logger_self()->stats.avg = (ogs_diam_logger_self()->stats.avg *
- ogs_diam_logger_self()->stats.nb_recv + dur) /
- (ogs_diam_logger_self()->stats.nb_recv + 1);
- /* Min, max */
- if (dur < ogs_diam_logger_self()->stats.shortest)
- ogs_diam_logger_self()->stats.shortest = dur;
- if (dur > ogs_diam_logger_self()->stats.longest)
- ogs_diam_logger_self()->stats.longest = dur;
- } else {
- ogs_diam_logger_self()->stats.shortest = dur;
- ogs_diam_logger_self()->stats.longest = dur;
- ogs_diam_logger_self()->stats.avg = dur;
- }
- if (error)
- ogs_diam_logger_self()->stats.nb_errs++;
- else
- ogs_diam_logger_self()->stats.nb_recv++;
+ OGS_DIAM_STATS_MTX(
+ dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) +
+ ((ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
+ if (ogs_diam_stats_self()->stats.nb_recv) {
+ /* Ponderate in the avg */
+ ogs_diam_stats_self()->stats.avg = (ogs_diam_stats_self()->stats.avg *
+ ogs_diam_stats_self()->stats.nb_recv + dur) /
+ (ogs_diam_stats_self()->stats.nb_recv + 1);
+ /* Min, max */
+ if (dur < ogs_diam_stats_self()->stats.shortest)
+ ogs_diam_stats_self()->stats.shortest = dur;
+ if (dur > ogs_diam_stats_self()->stats.longest)
+ ogs_diam_stats_self()->stats.longest = dur;
+ } else {
+ ogs_diam_stats_self()->stats.shortest = dur;
+ ogs_diam_stats_self()->stats.longest = dur;
+ ogs_diam_stats_self()->stats.avg = dur;
+ }
+ if (error)
+ ogs_diam_stats_self()->stats.nb_errs++;
+ else
+ ogs_diam_stats_self()->stats.nb_recv++;
+
+ PCRF_DIAM_PRIV_STATS_INC(gx.rx_raa);
+ )
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
-
/* Display how long it took */
if (ts.tv_nsec > sess_data->ts.tv_nsec)
- ogs_trace("in %d.%06ld sec",
+ ogs_trace("in %d.%06ld sec",
(int)(ts.tv_sec - sess_data->ts.tv_sec),
(long)(ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
else
- ogs_trace("in %d.%06ld sec",
+ ogs_trace("in %d.%06ld sec",
(int)(ts.tv_sec + 1 - sess_data->ts.tv_sec),
(long)(1000000000 + ts.tv_nsec - sess_data->ts.tv_nsec) / 1000);
@@ -1157,7 +1181,7 @@ static void pcrf_gx_raa_cb(void *data, struct msg **msg)
ret = fd_msg_free(*msg);
ogs_assert(ret == 0);
*msg = NULL;
-
+
return;
}
@@ -1202,7 +1226,7 @@ void pcrf_gx_final(void)
int ret;
ret = fd_sess_handler_destroy(&pcrf_gx_reg, NULL);
- ogs_assert(ret == 0);
+ ogs_assert(ret == 0);
if (hdl_gx_fb)
(void) fd_disp_unregister(&hdl_gx_fb, NULL);
@@ -1242,7 +1266,7 @@ static int encode_pcc_rule_definition(
ret = fd_msg_avp_new(ogs_diam_gx_flow_information, 0, &avpch2);
ogs_assert(ret == 0);
- ret = fd_msg_avp_new(ogs_diam_gx_flow_direction, 0, &avpch3);
+ ret = fd_msg_avp_new(ogs_diam_gx_flow_direction, 0, &avpch3);
ogs_assert(ret == 0);
val.i32 = flow->direction;
ret = fd_msg_avp_setvalue(avpch3, &val);
@@ -1250,7 +1274,7 @@ static int encode_pcc_rule_definition(
ret = fd_msg_avp_add(avpch2, MSG_BRW_LAST_CHILD, avpch3);
ogs_assert(ret == 0);
- ret = fd_msg_avp_new(ogs_diam_gx_flow_description, 0, &avpch3);
+ ret = fd_msg_avp_new(ogs_diam_gx_flow_description, 0, &avpch3);
ogs_assert(ret == 0);
val.os.data = (uint8_t *)flow->description;
val.os.len = strlen(flow->description);
@@ -1373,6 +1397,6 @@ static int encode_pcc_rule_definition(
ret = fd_msg_avp_add(avp, MSG_BRW_LAST_CHILD, avpch1);
ogs_assert(ret == 0);
-
+
return OGS_OK;
}
diff --git a/src/pcrf/pcrf-init.c b/src/pcrf/pcrf-init.c
index 3255568d4a..925d31efd8 100644
--- a/src/pcrf/pcrf-init.c
+++ b/src/pcrf/pcrf-init.c
@@ -19,6 +19,11 @@
#include "pcrf-context.h"
#include "pcrf-fd-path.h"
+#include "pcrf-sm.h"
+#include "metrics.h"
+
+static ogs_thread_t *thread;
+static void pcrf_main(void *data);
static int initialized = 0;
@@ -30,15 +35,23 @@ int pcrf_initialize(void)
rv = ogs_app_parse_local_conf(APP_NAME);
if (rv != OGS_OK) return rv;
- pcrf_context_init();
+ pcrf_metrics_init();
- rv = pcrf_context_parse_config();
- if (rv != OGS_OK) return rv;
+ pcrf_context_init();
+ pcrf_event_init();
rv = ogs_log_config_domain(
ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
+ rv = ogs_metrics_context_parse_config(APP_NAME);
+ if (rv != OGS_OK) return rv;
+
+ rv = pcrf_context_parse_config();
+ if (rv != OGS_OK) return rv;
+
+ ogs_metrics_context_open(ogs_metrics_self());
+
if (ogs_app()->db_uri) {
rv = ogs_dbi_init(ogs_app()->db_uri);
if (rv != OGS_OK) return rv;
@@ -47,6 +60,9 @@ int pcrf_initialize(void)
rv = pcrf_fd_init();
if (rv != OGS_OK) return OGS_ERROR;
+ thread = ogs_thread_create(pcrf_main, NULL);
+ if (!thread) return OGS_ERROR;
+
initialized = 1;
return OGS_OK;
@@ -56,6 +72,10 @@ void pcrf_terminate(void)
{
if (!initialized) return;
+ pcrf_event_term();
+ ogs_thread_destroy(thread);
+ ogs_metrics_context_close(ogs_metrics_self());
+
pcrf_fd_final();
if (ogs_app()->db_uri) {
@@ -63,6 +83,54 @@ void pcrf_terminate(void)
}
pcrf_context_final();
+ pcrf_event_final();
+ pcrf_metrics_final();
return;
}
+
+static void pcrf_main(void *data)
+{
+ ogs_fsm_t pcrf_sm;
+ int rv;
+
+ ogs_fsm_init(&pcrf_sm, pcrf_state_initial, pcrf_state_final, 0);
+
+ for ( ;; ) {
+ ogs_pollset_poll(ogs_app()->pollset,
+ ogs_timer_mgr_next(ogs_app()->timer_mgr));
+
+ /*
+ * After ogs_pollset_poll(), ogs_timer_mgr_expire() must be called.
+ *
+ * The reason is why ogs_timer_mgr_next() can get the corrent value
+ * when ogs_timer_stop() is called internally in ogs_timer_mgr_expire().
+ *
+ * You should not use event-queue before ogs_timer_mgr_expire().
+ * In this case, ogs_timer_mgr_expire() does not work
+ * because 'if rv == OGS_DONE' statement is exiting and
+ * not calling ogs_timer_mgr_expire().
+ */
+ ogs_timer_mgr_expire(ogs_app()->timer_mgr);
+
+ for ( ;; ) {
+ pcrf_event_t *e = NULL;
+
+ rv = ogs_queue_trypop(ogs_app()->queue, (void**)&e);
+ ogs_assert(rv != OGS_ERROR);
+
+ if (rv == OGS_DONE)
+ goto done;
+
+ if (rv == OGS_RETRY)
+ break;
+
+ ogs_assert(e);
+ ogs_fsm_dispatch(&pcrf_sm, e);
+ pcrf_event_free(e);
+ }
+ }
+done:
+
+ ogs_fsm_fini(&pcrf_sm, 0);
+}
diff --git a/src/pcrf/pcrf-rx-path.c b/src/pcrf/pcrf-rx-path.c
index 03dbc47c27..dd691ccf12 100644
--- a/src/pcrf/pcrf-rx-path.c
+++ b/src/pcrf/pcrf-rx-path.c
@@ -39,9 +39,9 @@ static OGS_POOL(sess_state_pool, struct sess_state);
static ogs_thread_mutex_t sess_state_mutex;
static struct session_handler *pcrf_rx_reg = NULL;
-static struct disp_hdl *hdl_rx_fb = NULL;
-static struct disp_hdl *hdl_rx_aar = NULL;
-static struct disp_hdl *hdl_rx_str = NULL;
+static struct disp_hdl *hdl_rx_fb = NULL;
+static struct disp_hdl *hdl_rx_aar = NULL;
+static struct disp_hdl *hdl_rx_str = NULL;
static void pcrf_rx_asa_cb(void *data, struct msg **msg);
@@ -73,7 +73,10 @@ static __inline__ struct sess_state *new_state(os0_t sid)
static void state_cleanup(struct sess_state *sess_data, os0_t sid, void *opaque)
{
- ogs_assert(sess_data);
+ if (!sess_data) {
+ ogs_error("No session state");
+ return;
+ }
if (sess_data->rx_sid)
ogs_free((char *)sess_data->rx_sid);
@@ -88,16 +91,20 @@ static void state_cleanup(struct sess_state *sess_data, os0_t sid, void *opaque)
ogs_thread_mutex_unlock(&sess_state_mutex);
}
-static int pcrf_rx_fb_cb(struct msg **msg, struct avp *avp,
+static int pcrf_rx_fb_cb(struct msg **msg, struct avp *avp,
struct session *sess, void *opaque, enum disp_action *act)
{
/* This CB should never be called */
ogs_warn("Unexpected message received!");
+ OGS_DIAM_STATS_MTX(
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_unknown);
+ )
+
return ENOTSUP;
}
-static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
+static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
struct session *sess, void *opaque, enum disp_action *act)
{
int rv;
@@ -119,7 +126,7 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
os0_t gx_sid = NULL;
uint32_t result_code = OGS_DIAM_RX_DIAMETER_IP_CAN_SESSION_NOT_AVAILABLE;
- ogs_debug("[PCRF] AA-Request");
+ ogs_debug("[PCRF] Rx AA-Request");
ogs_assert(msg);
ogs_assert(sess);
@@ -229,6 +236,16 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
break;
/* Gwt Media-Component-Description */
case OGS_DIAM_RX_AVP_CODE_MEDIA_COMPONENT_DESCRIPTION:
+ if (rx_message.ims_data.num_of_media_component >=
+ OGS_ARRAY_SIZE(rx_message.ims_data.media_component)) {
+ ogs_error("OVERFLOW rx_message.ims_data.num_of_media_component "
+ "[%d:%d:%d]",
+ rx_message.ims_data.num_of_media_component,
+ OGS_MAX_NUM_OF_MEDIA_COMPONENT,
+ (int)OGS_ARRAY_SIZE(
+ rx_message.ims_data.media_component));
+ break;
+ }
media_component = &rx_message.ims_data.
media_component[rx_message.ims_data.num_of_media_component];
@@ -271,6 +288,15 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
media_component->flow_status = hdr->avp_value->i32;
break;
case OGS_DIAM_RX_AVP_CODE_MEDIA_SUB_COMPONENT:
+ if (media_component->num_of_sub >=
+ OGS_ARRAY_SIZE(media_component->sub)) {
+ ogs_error("OVERFLOW media_component->num_of_sub "
+ "[%d:%d:%d]",
+ media_component->num_of_sub,
+ OGS_MAX_NUM_OF_MEDIA_SUB_COMPONENT,
+ (int)OGS_ARRAY_SIZE(media_component->sub));
+ break;
+ }
sub = &media_component->sub[media_component->num_of_sub];
ret = fd_msg_browse(avpch2, MSG_BRW_FIRST_CHILD,
@@ -300,8 +326,14 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
}
break;
case OGS_DIAM_RX_AVP_CODE_FLOW_DESCRIPTION:
- ogs_assert(sub->num_of_flow <
- OGS_MAX_NUM_OF_FLOW_IN_MEDIA_SUB_COMPONENT);
+ if (sub->num_of_flow >= OGS_ARRAY_SIZE(sub->flow)) {
+ ogs_error(
+ "OVERFLOW sub->num_of_flow [%d:%d:%d]",
+ sub->num_of_flow,
+ OGS_MAX_NUM_OF_FLOW_IN_MEDIA_SUB_COMPONENT,
+ (int)OGS_ARRAY_SIZE(sub->flow));
+ break;
+ }
flow = &sub->flow[sub->num_of_flow];
flow->description = ogs_strndup(
(char*)hdr->avp_value->os.data,
@@ -382,15 +414,17 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("[PCRF] AA-Answer");
+ ogs_debug("[PCRF] Tx AA-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_aar);
+ PCRF_DIAM_PRIV_STATS_INC(rx.tx_aaa);
+ )
ogs_ims_data_free(&rx_message.ims_data);
-
+
return 0;
out:
@@ -410,10 +444,15 @@ static int pcrf_rx_aar_cb( struct msg **msg, struct avp *avp,
ret = ogs_diam_message_experimental_rescode_set(ans, result_code);
ogs_assert(ret == 0);
}
-
+
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
+ OGS_DIAM_STATS_MTX(
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_aar);
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_aar_error);
+ )
+
state_cleanup(sess_data, NULL, NULL);
ogs_ims_data_free(&rx_message.ims_data);
@@ -434,7 +473,7 @@ int pcrf_rx_send_asr(uint8_t *rx_sid, uint32_t abort_cause)
ogs_assert(rx_sid);
- ogs_debug("[PCRF] Abort-Session-Request");
+ ogs_debug("[PCRF] Tx Abort-Session-Request");
/* Retrieve session by Session-Id */
sidlen = strlen((char *)rx_sid);
@@ -465,12 +504,18 @@ int pcrf_rx_send_asr(uint8_t *rx_sid, uint32_t abort_cause)
/* Retrieve session state in this session */
ret = fd_sess_state_retrieve(pcrf_rx_reg, session, &sess_data);
- ogs_assert(sess_data);
+ ogs_assert(ret == 0);
+ if (!sess_data) {
+ ogs_error("No Session Data");
+ ret = fd_msg_free(req);
+ ogs_assert(ret == 0);
+ return OGS_ERROR;
+ }
/* Update State */
sess_data->state = SESSION_ABORTED;
sess_data->abort_cause = abort_cause;
-
+
/* Set Origin-Host & Origin-Realm */
ret = fd_msg_add_origin(req, 0);
ogs_assert(ret == 0);
@@ -513,23 +558,24 @@ int pcrf_rx_send_asr(uint8_t *rx_sid, uint32_t abort_cause)
ret = fd_msg_avp_add(req, MSG_BRW_LAST_CHILD, avp);
ogs_assert(ret == 0);
- /* Keep a pointer to the session data for debug purpose,
+ /* Keep a pointer to the session data for debug purpose,
* in real life we would not need it */
svg = sess_data;
-
+
/* Store this value in the session */
ret = fd_sess_state_store(pcrf_rx_reg, session, &sess_data);
ogs_assert(ret == 0);
ogs_assert(sess_data == NULL);
-
+
/* Send the request */
ret = fd_msg_send(&req, pcrf_rx_asa_cb, svg);
ogs_assert(ret == 0);
/* Increment the counter */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_sent++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_sent);
+ PCRF_DIAM_PRIV_STATS_INC(rx.tx_sar);
+ )
return OGS_OK;
}
@@ -544,13 +590,13 @@ static void pcrf_rx_asa_cb(void *data, struct msg **msg)
int new;
int result_code = 0;
- ogs_debug("[PCRF] Abort-Session-Answer");
+ ogs_debug("[PCRF] Rx Abort-Session-Answer");
/* Search the session, retrieve its data */
ret = fd_msg_sess_get(fd_g_config->cnf_dict, *msg, &session, &new);
ogs_assert(ret == 0);
ogs_assert(new == 0);
-
+
/* Value of Result Code */
ret = fd_msg_search_avp(*msg, ogs_diam_result_code, &avp);
ogs_assert(ret == 0);
@@ -605,6 +651,10 @@ static void pcrf_rx_asa_cb(void *data, struct msg **msg)
ogs_error("ERROR DIAMETER Result Code(%d)", result_code);
}
+ OGS_DIAM_STATS_MTX(
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_asa);
+ )
+
ret = fd_msg_free(*msg);
ogs_assert(ret == 0);
*msg = NULL;
@@ -612,7 +662,7 @@ static void pcrf_rx_asa_cb(void *data, struct msg **msg)
return;
}
-static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
+static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
struct session *sess, void *opaque, enum disp_action *act)
{
int rv;
@@ -627,7 +677,7 @@ static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
uint32_t result_code = OGS_DIAM_RX_DIAMETER_IP_CAN_SESSION_NOT_AVAILABLE;
- ogs_debug("[PCRF] Session-Termination-Request");
+ ogs_debug("[PCRF] Rx Session-Termination-Request");
ogs_assert(msg);
ogs_assert(sess);
@@ -709,16 +759,18 @@ static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("[PCRF] Session-Termination-Answer");
+ ogs_debug("[PCRF] Tx Session-Termination-Answer");
/* Add this value to the stats */
- ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0);
- ogs_diam_logger_self()->stats.nb_echoed++;
- ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0);
+ OGS_DIAM_STATS_MTX(
+ OGS_DIAM_STATS_INC(nb_echoed);
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_str);
+ PCRF_DIAM_PRIV_STATS_INC(rx.tx_sta);
+ )
state_cleanup(sess_data, NULL, NULL);
ogs_ims_data_free(&rx_message.ims_data);
-
+
return 0;
out:
@@ -739,10 +791,16 @@ static int pcrf_rx_str_cb( struct msg **msg, struct avp *avp,
(char *)"DIAMETER_MISSING_AVP", NULL, NULL, 1);
ogs_assert(ret == 0);
}
-
+
ret = fd_msg_send(msg, NULL, NULL);
ogs_assert(ret == 0);
- ogs_debug("[PCRF] Session-Termination-Answer");
+ ogs_debug("[PCRF] Tx Session-Termination-Answer");
+
+ OGS_DIAM_STATS_MTX(
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_str);
+ PCRF_DIAM_PRIV_STATS_INC(rx.rx_str_error);
+ PCRF_DIAM_PRIV_STATS_INC(rx.tx_sta);
+ )
if (sess_data)
state_cleanup(sess_data, NULL, NULL);
diff --git a/src/pcrf/pcrf-sm.c b/src/pcrf/pcrf-sm.c
new file mode 100644
index 0000000000..0736589bb3
--- /dev/null
+++ b/src/pcrf/pcrf-sm.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2024 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "pcrf-sm.h"
+#include "pcrf-context.h"
+#include "pcrf-event.h"
+
+void pcrf_state_initial(ogs_fsm_t *s, pcrf_event_t *e)
+{
+ pcrf_sm_debug(e);
+
+ ogs_assert(s);
+}
+
+void pcrf_state_final(ogs_fsm_t *s, pcrf_event_t *e)
+{
+ pcrf_sm_debug(e);
+
+ ogs_assert(s);
+}
+
+void pcrf_state_operational(ogs_fsm_t *s, pcrf_event_t *e)
+{
+ pcrf_sm_debug(e);
+
+ ogs_assert(s);
+
+ switch (e->id) {
+ case OGS_FSM_ENTRY_SIG:
+ break;
+
+ case OGS_FSM_EXIT_SIG:
+ break;
+
+ default:
+ ogs_error("No handler for event %s", pcrf_event_get_name(e));
+ break;
+ }
+}
diff --git a/src/pcrf/pcrf-sm.h b/src/pcrf/pcrf-sm.h
new file mode 100644
index 0000000000..36e3a090ef
--- /dev/null
+++ b/src/pcrf/pcrf-sm.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2024 by Sukchan Lee
+ *
+ * This file is part of Open5GS.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef PCRF_SM_H
+#define PCRF_SM_H
+
+#include "pcrf-event.h"
+#include "ogs-proto.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void pcrf_state_initial(ogs_fsm_t *s, pcrf_event_t *e);
+void pcrf_state_final(ogs_fsm_t *s, pcrf_event_t *e);
+void pcrf_state_operational(ogs_fsm_t *s, pcrf_event_t *e);
+void pcrf_state_exception(ogs_fsm_t *s, pcrf_event_t *e);
+
+#define pcrf_sm_debug(__pe) \
+ ogs_debug("%s(): %s", __func__, pcrf_event_get_name(__pe))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* PCRF_SM_H */
diff --git a/src/scp/context.c b/src/scp/context.c
index 1014f0223b..46f42ae3e6 100644
--- a/src/scp/context.c
+++ b/src/scp/context.c
@@ -304,11 +304,11 @@ int scp_context_parse_config(void)
return OGS_OK;
}
-scp_assoc_t *scp_assoc_add(ogs_sbi_stream_t *stream)
+scp_assoc_t *scp_assoc_add(ogs_pool_id_t stream_id)
{
scp_assoc_t *assoc = NULL;
- ogs_assert(stream);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID && stream_id <= OGS_MAX_POOL_ID);
ogs_pool_alloc(&scp_assoc_pool, &assoc);
if (!assoc) {
@@ -318,7 +318,7 @@ scp_assoc_t *scp_assoc_add(ogs_sbi_stream_t *stream)
}
memset(assoc, 0, sizeof *assoc);
- assoc->stream = stream;
+ assoc->stream_id = stream_id;
assoc->discovery_option = ogs_sbi_discovery_option_new();
ogs_assert(assoc->discovery_option);
diff --git a/src/scp/context.h b/src/scp/context.h
index f7b26e53cc..e9420d63f5 100644
--- a/src/scp/context.h
+++ b/src/scp/context.h
@@ -43,7 +43,7 @@ typedef struct scp_assoc_s scp_assoc_t;
typedef struct scp_assoc_s {
ogs_lnode_t lnode;
- ogs_sbi_stream_t *stream;
+ ogs_pool_id_t stream_id;
ogs_sbi_client_t *client;
ogs_sbi_client_t *nrf_client;
@@ -67,7 +67,7 @@ scp_context_t *scp_self(void);
int scp_context_parse_config(void);
-scp_assoc_t *scp_assoc_add(ogs_sbi_stream_t *stream);
+scp_assoc_t *scp_assoc_add(ogs_pool_id_t stream_id);
void scp_assoc_remove(scp_assoc_t *assoc);
void scp_assoc_remove_all(void);
diff --git a/src/scp/init.c b/src/scp/init.c
index 561c3e3e67..e47e958525 100644
--- a/src/scp/init.c
+++ b/src/scp/init.c
@@ -36,14 +36,14 @@ int scp_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_SCP);
scp_context_init();
- rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "next_scp");
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
- rv = scp_context_parse_config();
+ rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "next_scp");
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
+ rv = scp_context_parse_config();
if (rv != OGS_OK) return rv;
rv = scp_sbi_open();
diff --git a/src/scp/sbi-path.c b/src/scp/sbi-path.c
index e0e8ef162e..943cadce68 100644
--- a/src/scp/sbi-path.c
+++ b/src/scp/sbi-path.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -38,7 +38,7 @@ static bool send_request(
static void copy_request(
ogs_sbi_request_t *target, ogs_sbi_request_t *source,
- bool include_discovery);
+ bool do_not_remove_custom_header);
int scp_sbi_open(void)
{
@@ -68,11 +68,11 @@ int scp_sbi_open(void)
}
/* Check if Next-SCP's client */
- if (ogs_sbi_self()->discovery_config.delegated ==
- OGS_SBI_DISCOVERY_DELEGATED_AUTO) {
+ if (ogs_sbi_self()->client_delegated_config.scp.next ==
+ OGS_SBI_CLIENT_DELEGATED_AUTO) {
next_scp = NF_INSTANCE_CLIENT(ogs_sbi_self()->scp_instance);
- } else if (ogs_sbi_self()->discovery_config.delegated ==
- OGS_SBI_DISCOVERY_DELEGATED_YES) {
+ } else if (ogs_sbi_self()->client_delegated_config.scp.next ==
+ OGS_SBI_CLIENT_DELEGATED_YES) {
next_scp = NF_INSTANCE_CLIENT(ogs_sbi_self()->scp_instance);
ogs_assert(next_scp);
}
@@ -110,7 +110,8 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
ogs_hash_index_t *hi;
ogs_sbi_client_t *client = NULL, *nrf_client = NULL, *next_scp = NULL;
ogs_sbi_client_t *sepp_client = NULL;
- ogs_sbi_stream_t *stream = data;
+ ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
OpenAPI_nf_type_e target_nf_type = OpenAPI_nf_type_NULL;
OpenAPI_nf_type_e requester_nf_type = OpenAPI_nf_type_NULL;
@@ -133,21 +134,30 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
ogs_assert(request);
ogs_assert(request->h.uri);
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ return OGS_ERROR;
+ }
/* SCP Context */
- assoc = scp_assoc_add(stream);
+ assoc = scp_assoc_add(stream_id);
if (!assoc) {
ogs_error("scp_assoc_add() failed");
return OGS_ERROR;
}
/* Next-SCP client */
- if (ogs_sbi_self()->discovery_config.delegated ==
- OGS_SBI_DISCOVERY_DELEGATED_AUTO) {
+ if (ogs_sbi_self()->client_delegated_config.scp.next ==
+ OGS_SBI_CLIENT_DELEGATED_AUTO) {
next_scp = NF_INSTANCE_CLIENT(ogs_sbi_self()->scp_instance);
- } else if (ogs_sbi_self()->discovery_config.delegated ==
- OGS_SBI_DISCOVERY_DELEGATED_YES) {
+ } else if (ogs_sbi_self()->client_delegated_config.scp.next ==
+ OGS_SBI_CLIENT_DELEGATED_YES) {
next_scp = NF_INSTANCE_CLIENT(ogs_sbi_self()->scp_instance);
ogs_assert(next_scp);
}
@@ -176,7 +186,39 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
* and the field value. Field names are case-insensitive.
*/
if (!strcasecmp(key, OGS_SBI_USER_AGENT)) {
- if (val) requester_nf_type = OpenAPI_nf_type_FromString(val);
+ /*
+ * TS29.500
+ * 5.2 HTTP/2 Protocol
+ * 5.2.2.2 Mandatory to support HTTP standard headers
+ *
+ * Table 5.2.2.2-1
+ * Mandatory to support HTTP request standard headers
+ *
+ * Name: User-Agent
+ * Reference: IETF RFC 7231 [11]
+ * Description:
+ * This header shall be mainly used to identify the NF type of the
+ * HTTP/2 client. This header should be included in every HTTP/2
+ * request sent over any SBI; This header shall be included in
+ * every HTTP/2 request sent using indirect communication when
+ * target NF (re-)selection is to be performed at SCP.
+ *
+ * For Indirect communications, the User-Agent header in a
+ * request that is:
+ * - forwarded by the SCP (with or without delegated
+ * discovery) shall identify the NF type of the original NF
+ * that issued the request (i.e. the SCP shall forward the
+ * header received in the incoming request);
+ * - originated by the SCP towards the NRF (e.g. NF Discovery or
+ * Access Token Request) shall identify the SCP.
+ *
+ * The pattern of the content should start with the value of NF type
+ * (e.g. "UDM", see NOTE 1) or "SCP" (for a request originated by
+ * an SCP) and followed by a "-" and any other specific information
+ * if needed afterwards.
+ */
+ char *v = strsep(&val, "-");
+ if (v) requester_nf_type = OpenAPI_nf_type_FromString(v);
} else if (!strcasecmp(key, OGS_SBI_CUSTOM_TARGET_APIROOT)) {
headers.target_apiroot = val;
} else if (!strcasecmp(key, OGS_SBI_CUSTOM_CALLBACK)) {
@@ -225,11 +267,17 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
} else if (!strcasecmp(key, OGS_SBI_CUSTOM_DISCOVERY_SNSSAIS)) {
if (val)
ogs_sbi_discovery_option_parse_snssais(discovery_option, val);
+ } else if (!strcasecmp(key, OGS_SBI_CUSTOM_DISCOVERY_GUAMI)) {
+ if (val)
+ ogs_sbi_discovery_option_parse_guami(discovery_option, val);
} else if (!strcasecmp(key, OGS_SBI_CUSTOM_DISCOVERY_DNN)) {
ogs_sbi_discovery_option_set_dnn(discovery_option, val);
} else if (!strcasecmp(key, OGS_SBI_CUSTOM_DISCOVERY_TAI)) {
if (val)
ogs_sbi_discovery_option_parse_tai(discovery_option, val);
+ } else if (!strcasecmp(key, OGS_SBI_CUSTOM_DISCOVERY_GUAMI)) {
+ if (val)
+ ogs_sbi_discovery_option_parse_guami(discovery_option, val);
} else if (!strcasecmp(key, OGS_SBI_CUSTOM_DISCOVERY_TARGET_PLMN_LIST)) {
if (val)
discovery_option->num_of_target_plmn_list =
@@ -245,7 +293,7 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
OGS_SBI_CUSTOM_DISCOVERY_REQUESTER_FEATURES)) {
if (val)
discovery_option->requester_features =
- ogs_uint64_from_string(val);
+ ogs_uint64_from_string_hexadecimal(val);
} else {
/* ':scheme' and ':authority' will be automatically filled in later */
}
@@ -280,9 +328,10 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
client = ogs_sbi_client_find_by_service_type(
nf_instance, service_type);
if (!client) {
- ogs_error("[%s:%s] Cannot find client [%s:%s]",
- OpenAPI_nf_type_ToString(nf_instance->nf_type),
+ ogs_error("[%s] Cannot find client "
+ "[type:%s target_nf_type:%s service_name:%s]",
nf_instance->id,
+ OpenAPI_nf_type_ToString(nf_instance->nf_type),
OpenAPI_nf_type_ToString(target_nf_type),
ogs_sbi_service_type_to_name(service_type));
}
@@ -535,16 +584,6 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
return OGS_ERROR;
}
- assoc->request = request;
- ogs_assert(assoc->request);
- assoc->service_type = service_type;
- ogs_assert(assoc->service_type);
-
- assoc->target_nf_type = target_nf_type;
- ogs_assert(assoc->target_nf_type);
- assoc->requester_nf_type = requester_nf_type;
- ogs_assert(assoc->requester_nf_type);
-
if (!discovery_option->num_of_service_names) {
ogs_error("No service names");
scp_assoc_remove(assoc);
@@ -575,6 +614,16 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
"in TS29.500");
}
+ assoc->request = request;
+ ogs_assert(assoc->request);
+ assoc->service_type = service_type;
+ ogs_assert(assoc->service_type);
+
+ assoc->target_nf_type = target_nf_type;
+ ogs_assert(assoc->target_nf_type);
+ assoc->requester_nf_type = requester_nf_type;
+ ogs_assert(assoc->requester_nf_type);
+
if (false == send_discover(nrf_client, nf_discover_handler, assoc)) {
ogs_error("send_discover() failed");
scp_assoc_remove(assoc);
@@ -614,10 +663,13 @@ static int response_handler(
{
scp_assoc_t *assoc = data;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_assert(assoc);
- stream = assoc->stream;
- ogs_assert(stream);
+
+ stream_id = assoc->stream_id;
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID && stream_id <= OGS_MAX_POOL_ID);
+ stream = ogs_sbi_stream_find_by_id(stream_id);
if (status != OGS_OK) {
@@ -625,13 +677,16 @@ static int response_handler(
status == OGS_DONE ? OGS_LOG_DEBUG : OGS_LOG_WARN, 0,
"response_handler() failed [%d]", status);
- ogs_assert(true ==
- ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
- "response_handler() failed", NULL));
-
scp_assoc_remove(assoc);
+ if (stream) {
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
+ "response_handler() failed", NULL, NULL));
+ } else
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+
return OGS_ERROR;
}
@@ -645,21 +700,28 @@ static int response_handler(
ogs_error("No NF-Instance ID");
}
- ogs_expect(true == ogs_sbi_server_send_response(stream, response));
scp_assoc_remove(assoc);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ ogs_sbi_response_free(response);
+ return OGS_ERROR;
+ }
+ ogs_expect(true == ogs_sbi_server_send_response(stream, response));
+
return OGS_OK;
}
static int nf_discover_handler(
int status, ogs_sbi_response_t *response, void *data)
{
- int rv;
+ int rv, res_status;
char *strerror = NULL;
ogs_sbi_message_t message;
scp_assoc_t *assoc = data;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_service_type_e service_type = OGS_SBI_SERVICE_TYPE_NULL;
@@ -673,9 +735,6 @@ static int nf_discover_handler(
ogs_sbi_client_t *sepp_client = NULL;
ogs_assert(assoc);
- stream = assoc->stream;
-
- ogs_assert(stream);
request = assoc->request;
ogs_assert(request);
service_type = assoc->service_type;
@@ -688,18 +747,26 @@ static int nf_discover_handler(
discovery_option = assoc->discovery_option;
ogs_assert(discovery_option);
+ stream_id = assoc->stream_id;
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID && stream_id <= OGS_MAX_POOL_ID);
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+
if (status != OGS_OK) {
ogs_log_message(
status == OGS_DONE ? OGS_LOG_DEBUG : OGS_LOG_WARN, 0,
"nf_discover_handler() failed [%d]", status);
- ogs_assert(true ==
- ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
- "nf_discover_handler() failed", NULL));
-
scp_assoc_remove(assoc);
+
+ if (stream) {
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
+ "nf_discover_handler() failed", NULL, NULL));
+ } else
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+
return OGS_ERROR;
}
@@ -708,16 +775,19 @@ static int nf_discover_handler(
rv = ogs_sbi_parse_response(&message, response);
if (rv != OGS_OK) {
strerror = ogs_msprintf("cannot parse HTTP response");
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
if (message.res_status != OGS_SBI_HTTP_STATUS_OK) {
strerror = ogs_msprintf("NF-Discover failed [%d]", message.res_status);
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
if (!message.SearchResult) {
strerror = ogs_msprintf("No SearchResult");
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
@@ -729,7 +799,7 @@ static int nf_discover_handler(
strerror = ogs_msprintf("(NF discover) No NF-Instance [%s:%s]",
ogs_sbi_service_type_to_name(service_type),
OpenAPI_nf_type_ToString(requester_nf_type));
-
+ res_status = OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT;
goto cleanup;
}
@@ -742,7 +812,7 @@ static int nf_discover_handler(
strerror = ogs_msprintf("(NF discover) No client [%s:%s]",
ogs_sbi_service_type_to_name(service_type),
OpenAPI_nf_type_ToString(requester_nf_type));
-
+ res_status = OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT;
goto cleanup;
}
@@ -756,6 +826,7 @@ static int nf_discover_handler(
if (!sepp_client) {
ogs_error("No SEPP [%s]", client->fqdn);
strerror = ogs_msprintf("No SEPP [%s]", client->fqdn);
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
@@ -770,6 +841,7 @@ static int nf_discover_handler(
if (false == send_request(
client, response_handler, request, false, assoc)) {
strerror = ogs_msprintf("send_request() failed");
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
@@ -782,13 +854,15 @@ static int nf_discover_handler(
ogs_assert(strerror);
ogs_error("%s", strerror);
- ogs_assert(true ==
- ogs_sbi_server_send_error(
- stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST, NULL, strerror, NULL));
+ scp_assoc_remove(assoc);
- ogs_free(strerror);
+ if (stream) {
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, res_status, NULL, strerror, NULL, NULL));
+ } else
+ ogs_error("STREAM has already been removed [%d]", stream_id);
- scp_assoc_remove(assoc);
+ ogs_free(strerror);
ogs_sbi_response_free(response);
ogs_sbi_message_free(&message);
@@ -799,23 +873,23 @@ static int nf_discover_handler(
static int sepp_discover_handler(
int status, ogs_sbi_response_t *response, void *data)
{
- int rv;
+ int rv, res_status;
char *strerror = NULL;
ogs_sbi_message_t message;
scp_assoc_t *assoc = data;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_client_t *sepp_client = NULL;
ogs_assert(assoc);
- ogs_assert(assoc->target_apiroot);
- stream = assoc->stream;
- ogs_assert(stream);
- request = assoc->request;
- ogs_assert(request);
+
+ stream_id = assoc->stream_id;
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID && stream_id <= OGS_MAX_POOL_ID);
+ stream = ogs_sbi_stream_find_by_id(stream_id);
if (status != OGS_OK) {
@@ -823,12 +897,16 @@ static int sepp_discover_handler(
status == OGS_DONE ? OGS_LOG_DEBUG : OGS_LOG_WARN, 0,
"sepp_discover_handler() failed [%d]", status);
- ogs_assert(true ==
- ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
- "sepp_discover_handler() failed", NULL));
-
scp_assoc_remove(assoc);
+
+ if (stream) {
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
+ "sepp_discover_handler() failed", NULL, NULL));
+ } else
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+
return OGS_ERROR;
}
@@ -837,16 +915,19 @@ static int sepp_discover_handler(
rv = ogs_sbi_parse_response(&message, response);
if (rv != OGS_OK) {
strerror = ogs_msprintf("cannot parse HTTP response");
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
if (message.res_status != OGS_SBI_HTTP_STATUS_OK) {
strerror = ogs_msprintf("NF-Discover failed [%d]", message.res_status);
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
if (!message.SearchResult) {
strerror = ogs_msprintf("No SearchResult");
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
@@ -858,12 +939,18 @@ static int sepp_discover_handler(
sepp_client = NF_INSTANCE_CLIENT(ogs_sbi_self()->sepp_instance);
if (!sepp_client) {
strerror = ogs_msprintf("No SEPP");
+ res_status = OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT;
goto cleanup;
}
+ ogs_assert(assoc->target_apiroot);
+ request = assoc->request;
+ ogs_assert(request);
+
if (false == send_request(
sepp_client, response_handler, request, false, assoc)) {
strerror = ogs_msprintf("send_request() failed");
+ res_status = OGS_SBI_HTTP_STATUS_BAD_REQUEST;
goto cleanup;
}
@@ -876,13 +963,15 @@ static int sepp_discover_handler(
ogs_assert(strerror);
ogs_error("%s", strerror);
- ogs_assert(true ==
- ogs_sbi_server_send_error(
- stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST, NULL, strerror, NULL));
+ scp_assoc_remove(assoc);
- ogs_free(strerror);
+ if (stream) {
+ ogs_assert(true == ogs_sbi_server_send_error(
+ stream, res_status, NULL, strerror, NULL, NULL));
+ } else
+ ogs_error("STREAM has already been removed [%d]", stream_id);
- scp_assoc_remove(assoc);
+ ogs_free(strerror);
ogs_sbi_response_free(response);
ogs_sbi_message_free(&message);
diff --git a/src/scp/scp-sm.c b/src/scp/scp-sm.c
index 8613dc1cc6..b77950a503 100644
--- a/src/scp/scp-sm.c
+++ b/src/scp/scp-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -40,6 +40,7 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
int rv;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_nf_instance_t *nf_instance = NULL;
@@ -47,6 +48,7 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
ogs_sbi_response_t *response = NULL;
ogs_sbi_message_t message;
ogs_sbi_xact_t *sbi_xact = NULL;
+ ogs_pool_id_t sbi_xact_id = OGS_INVALID_POOL_ID;
scp_sm_debug(e);
@@ -62,8 +64,16 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
case OGS_EVENT_SBI_SERVER:
request = e->h.sbi.request;
ogs_assert(request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
rv = ogs_sbi_parse_request(&message, request);
if (rv != OGS_OK) {
@@ -72,7 +82,8 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP sbi_message", NULL));
+ NULL, "cannot parse HTTP sbi_message", NULL,
+ NULL));
break;
}
@@ -81,7 +92,7 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &message, "Not supported version", NULL));
+ &message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&message);
break;
}
@@ -101,7 +112,8 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method,
+ NULL));
END
break;
@@ -112,7 +124,7 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Invalid resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -121,7 +133,7 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
- "Invalid API name", message.h.service.name));
+ "Invalid API name", message.h.service.name, NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
@@ -295,15 +307,22 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
* 4. timer expiration event is processed. (double-free SBI xact)
*
* To avoid double-free SBI xact,
- * we need to check ogs_sbi_xact_cycle()
+ * we need to check ogs_sbi_xact_find_by_id()
*/
- sbi_xact = ogs_sbi_xact_cycle(e->h.sbi.data);
+ sbi_xact_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(sbi_xact_id >= OGS_MIN_POOL_ID &&
+ sbi_xact_id <= OGS_MAX_POOL_ID);
+
+ sbi_xact = ogs_sbi_xact_find_by_id(sbi_xact_id);
if (!sbi_xact) {
- ogs_error("SBI transaction has already been removed");
+ ogs_error("SBI transaction has already been removed [%d]",
+ sbi_xact_id);
break;
}
- stream = sbi_xact->assoc_stream;
+ if (sbi_xact->assoc_stream_id >= OGS_MIN_POOL_ID &&
+ sbi_xact->assoc_stream_id <= OGS_MAX_POOL_ID)
+ stream = ogs_sbi_stream_find_by_id(sbi_xact->assoc_stream_id);
/* Here, we should not use ogs_assert(stream)
* since 'namf-comm' service has no an associated stream. */
@@ -314,7 +333,7 @@ void scp_state_operational(ogs_fsm_t *s, scp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_GATEWAY_TIMEOUT, NULL,
- "Cannot receive SBI message", NULL));
+ "Cannot receive SBI message", NULL, NULL));
}
break;
diff --git a/src/sepp/context.c b/src/sepp/context.c
index 90f334dceb..f76ead345d 100644
--- a/src/sepp/context.c
+++ b/src/sepp/context.c
@@ -538,11 +538,11 @@ sepp_node_t *sepp_node_find_by_plmn_id(uint16_t mcc, uint16_t mnc)
return NULL;
}
-sepp_assoc_t *sepp_assoc_add(ogs_sbi_stream_t *stream)
+sepp_assoc_t *sepp_assoc_add(ogs_pool_id_t stream_id)
{
sepp_assoc_t *assoc = NULL;
- ogs_assert(stream);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID && stream_id <= OGS_MAX_POOL_ID);
ogs_pool_alloc(&sepp_assoc_pool, &assoc);
if (!assoc) {
@@ -552,7 +552,7 @@ sepp_assoc_t *sepp_assoc_add(ogs_sbi_stream_t *stream)
}
memset(assoc, 0, sizeof *assoc);
- assoc->stream = stream;
+ assoc->stream_id = stream_id;
ogs_list_add(&self.assoc_list, assoc);
diff --git a/src/sepp/context.h b/src/sepp/context.h
index 89e47d217f..81cc45d327 100644
--- a/src/sepp/context.h
+++ b/src/sepp/context.h
@@ -82,7 +82,7 @@ typedef struct sepp_assoc_s sepp_assoc_t;
typedef struct sepp_assoc_s {
ogs_lnode_t lnode;
- ogs_sbi_stream_t *stream;
+ ogs_pool_id_t stream_id;
ogs_sbi_client_t *client;
ogs_sbi_client_t *nrf_client;
@@ -106,7 +106,7 @@ void sepp_node_remove_all(void);
sepp_node_t *sepp_node_find_by_receiver(char *receiver);
sepp_node_t *sepp_node_find_by_plmn_id(uint16_t mcc, uint16_t mnc);
-sepp_assoc_t *sepp_assoc_add(ogs_sbi_stream_t *stream);
+sepp_assoc_t *sepp_assoc_add(ogs_pool_id_t stream_id);
void sepp_assoc_remove(sepp_assoc_t *assoc);
void sepp_assoc_remove_all(void);
diff --git a/src/sepp/handshake-sm.c b/src/sepp/handshake-sm.c
index 4d7d255700..2e9af63a03 100644
--- a/src/sepp/handshake-sm.c
+++ b/src/sepp/handshake-sm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023 by Sukchan Lee
+ * Copyright (C) 2023-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -87,6 +87,7 @@ void sepp_handshake_state_will_establish(ogs_fsm_t *s, sepp_event_t *e)
sepp_node_t *sepp_node = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_message_t *message = NULL;
ogs_assert(s);
@@ -118,8 +119,16 @@ void sepp_handshake_state_will_establish(ogs_fsm_t *s, sepp_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_N32C_HANDSHAKE)
@@ -154,7 +163,7 @@ void sepp_handshake_state_will_establish(ogs_fsm_t *s, sepp_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
message, "PRINS is not supported",
- sepp_node->receiver));
+ sepp_node->receiver, NULL));
} else if (sepp_node->negotiated_security_scheme ==
OpenAPI_security_capability_NONE) {
@@ -282,6 +291,7 @@ void sepp_handshake_state_established(ogs_fsm_t *s, sepp_event_t *e)
sepp_node_t *sepp_node = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_message_t *message = NULL;
ogs_assert(s);
@@ -304,8 +314,16 @@ void sepp_handshake_state_established(ogs_fsm_t *s, sepp_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_N32C_HANDSHAKE)
@@ -341,7 +359,7 @@ void sepp_handshake_state_established(ogs_fsm_t *s, sepp_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
message, "PRINS is not supported",
- sepp_node->receiver));
+ sepp_node->receiver, NULL));
} else if (sepp_node->negotiated_security_scheme ==
OpenAPI_security_capability_NONE) {
@@ -420,6 +438,7 @@ void sepp_handshake_state_terminated(ogs_fsm_t *s, sepp_event_t *e)
sepp_node_t *sepp_node = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_message_t *message = NULL;
ogs_assert(s);
@@ -447,8 +466,16 @@ void sepp_handshake_state_terminated(ogs_fsm_t *s, sepp_event_t *e)
case OGS_EVENT_SBI_SERVER:
message = e->h.sbi.message;
ogs_assert(message);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
SWITCH(message->h.service.name)
CASE(OGS_SBI_SERVICE_NAME_N32C_HANDSHAKE)
@@ -483,7 +510,7 @@ void sepp_handshake_state_terminated(ogs_fsm_t *s, sepp_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
message, "PRINS is not supported",
- sepp_node->receiver));
+ sepp_node->receiver, NULL));
} else if (sepp_node->negotiated_security_scheme ==
OpenAPI_security_capability_NONE) {
diff --git a/src/sepp/init.c b/src/sepp/init.c
index 03c0154fd2..9f0bbc1ee5 100644
--- a/src/sepp/init.c
+++ b/src/sepp/init.c
@@ -36,14 +36,14 @@ int sepp_initialize(void)
ogs_sbi_context_init(OpenAPI_nf_type_SEPP);
sepp_context_init();
- rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
if (rv != OGS_OK) return rv;
- rv = sepp_context_parse_config();
+ rv = ogs_sbi_context_parse_config(APP_NAME, "nrf", "scp");
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
+ rv = sepp_context_parse_config();
if (rv != OGS_OK) return rv;
rv = sepp_sbi_open();
diff --git a/src/sepp/n32c-handler.c b/src/sepp/n32c-handler.c
index 75af2e0f1d..3cd926e5a3 100644
--- a/src/sepp/n32c-handler.c
+++ b/src/sepp/n32c-handler.c
@@ -40,7 +40,8 @@ bool sepp_n32c_handshake_handle_security_capability_request(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No SecNegotiateReqData", sepp_node->receiver));
+ recvmsg, "No SecNegotiateReqData", sepp_node->receiver,
+ NULL));
return false;
}
@@ -49,7 +50,8 @@ bool sepp_n32c_handshake_handle_security_capability_request(
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- recvmsg, "No SecNegotiateReqData.sender", sepp_node->receiver));
+ recvmsg, "No SecNegotiateReqData.sender", sepp_node->receiver,
+ NULL));
return false;
}
@@ -66,7 +68,7 @@ bool sepp_n32c_handshake_handle_security_capability_request(
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
recvmsg, "No supported_sec_capability_list",
- sepp_node->receiver));
+ sepp_node->receiver, NULL));
return false;
}
@@ -104,7 +106,7 @@ bool sepp_n32c_handshake_handle_security_capability_request(
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST,
recvmsg, "Unknown SupportedSecCapability",
- sepp_node->receiver));
+ sepp_node->receiver, NULL));
return false;
}
@@ -116,6 +118,14 @@ bool sepp_n32c_handshake_handle_security_capability_request(
OpenAPI_list_for_each(SecNegotiateReqData->plmn_id_list, node) {
OpenAPI_plmn_id_t *PlmnId = node->data;
if (PlmnId) {
+ if (sepp_node->num_of_plmn_id >=
+ OGS_ARRAY_SIZE(sepp_node->plmn_id)) {
+ ogs_error("OVERFLOW SecNegotiateReqData->plmn_id_list "
+ "[%d:%d:%d]",
+ sepp_node->num_of_plmn_id, OGS_MAX_NUM_OF_PLMN,
+ (int)OGS_ARRAY_SIZE(sepp_node->plmn_id));
+ break;
+ }
ogs_sbi_parse_plmn_id(
&sepp_node->plmn_id[sepp_node->num_of_plmn_id], PlmnId);
sepp_node->num_of_plmn_id++;
@@ -130,7 +140,8 @@ bool sepp_n32c_handshake_handle_security_capability_request(
if (SecNegotiateReqData->supported_features) {
uint64_t supported_features =
- ogs_uint64_from_string(SecNegotiateReqData->supported_features);
+ ogs_uint64_from_string_hexadecimal(
+ SecNegotiateReqData->supported_features);
sepp_node->supported_features &= supported_features;
} else {
sepp_node->supported_features = 0;
@@ -183,6 +194,14 @@ bool sepp_n32c_handshake_handle_security_capability_response(
OpenAPI_list_for_each(SecNegotiateRspData->plmn_id_list, node) {
OpenAPI_plmn_id_t *PlmnId = node->data;
if (PlmnId) {
+ if (sepp_node->num_of_plmn_id >=
+ OGS_ARRAY_SIZE(sepp_node->plmn_id)) {
+ ogs_error("OVERFLOW SecNegotiateRspData->plmn_id_list "
+ "[%d:%d:%d]",
+ sepp_node->num_of_plmn_id, OGS_MAX_NUM_OF_PLMN,
+ (int)OGS_ARRAY_SIZE(sepp_node->plmn_id));
+ break;
+ }
ogs_sbi_parse_plmn_id(
&sepp_node->plmn_id[sepp_node->num_of_plmn_id], PlmnId);
sepp_node->num_of_plmn_id++;
@@ -191,7 +210,8 @@ bool sepp_n32c_handshake_handle_security_capability_response(
if (SecNegotiateRspData->supported_features) {
uint64_t supported_features =
- ogs_uint64_from_string(SecNegotiateRspData->supported_features);
+ ogs_uint64_from_string_hexadecimal(
+ SecNegotiateRspData->supported_features);
sepp_node->supported_features &= supported_features;
} else {
sepp_node->supported_features = 0;
diff --git a/src/sepp/sbi-path.c b/src/sepp/sbi-path.c
index 6c0b5c8a2e..36faa977a7 100644
--- a/src/sepp/sbi-path.c
+++ b/src/sepp/sbi-path.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2023 by Sukchan Lee
+ * Copyright (C) 2023-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -25,7 +25,7 @@ static int response_handler(
static void copy_request(
ogs_sbi_request_t *target, ogs_sbi_request_t *source,
- bool include_discovery);
+ bool do_not_remove_custom_header);
int sepp_sbi_open(void)
{
@@ -158,6 +158,7 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
ogs_hash_index_t *hi;
ogs_sbi_client_t *client = NULL, *scp_client = NULL;
ogs_sbi_stream_t *stream = data;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_server_t *server = NULL;
ogs_sbi_request_t sepp_request;
@@ -177,7 +178,17 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
ogs_assert(request);
ogs_assert(request->h.uri);
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ return OGS_ERROR;
+ }
+
server = ogs_sbi_server_from_stream(stream);
ogs_assert(server);
@@ -207,7 +218,7 @@ static int request_handler(ogs_sbi_request_t *request, void *data)
sepp_node_t *sepp_node = NULL;
bool do_not_remove_custom_header;
- assoc = sepp_assoc_add(stream);
+ assoc = sepp_assoc_add(stream_id);
if (!assoc) {
ogs_error("sepp_assoc_add() failed");
return OGS_ERROR;
@@ -408,10 +419,13 @@ static int response_handler(
{
sepp_assoc_t *assoc = data;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_assert(assoc);
- stream = assoc->stream;
- ogs_assert(stream);
+
+ stream_id = assoc->stream_id;
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID && stream_id <= OGS_MAX_POOL_ID);
+ stream = ogs_sbi_stream_find_by_id(stream_id);
if (status != OGS_OK) {
@@ -419,21 +433,30 @@ static int response_handler(
status == OGS_DONE ? OGS_LOG_DEBUG : OGS_LOG_WARN, 0,
"response_handler() failed [%d]", status);
- ogs_assert(true ==
- ogs_sbi_server_send_error(stream,
- OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
- "response_handler() failed", NULL));
-
sepp_assoc_remove(assoc);
+ if (stream) {
+ ogs_assert(true ==
+ ogs_sbi_server_send_error(stream,
+ OGS_SBI_HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL,
+ "response_handler() failed", NULL, NULL));
+ } else
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+
return OGS_ERROR;
}
ogs_assert(response);
- ogs_expect(true == ogs_sbi_server_send_response(stream, response));
sepp_assoc_remove(assoc);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ ogs_sbi_response_free(response);
+ return OGS_ERROR;
+ }
+ ogs_expect(true == ogs_sbi_server_send_response(stream, response));
+
return OGS_OK;
}
diff --git a/src/sepp/sepp-sm.c b/src/sepp/sepp-sm.c
index 835d972ec6..e8d64ff82b 100644
--- a/src/sepp/sepp-sm.c
+++ b/src/sepp/sepp-sm.c
@@ -42,6 +42,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
sepp_node_t *sepp_node = NULL;
ogs_sbi_stream_t *stream = NULL;
+ ogs_pool_id_t stream_id = OGS_INVALID_POOL_ID;
ogs_sbi_request_t *request = NULL;
ogs_sbi_server_t *server = NULL;
@@ -64,8 +65,17 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
case OGS_EVENT_SBI_SERVER:
request = e->h.sbi.request;
ogs_assert(request);
- stream = e->h.sbi.data;
- ogs_assert(stream);
+
+ stream_id = OGS_POINTER_TO_UINT(e->h.sbi.data);
+ ogs_assert(stream_id >= OGS_MIN_POOL_ID &&
+ stream_id <= OGS_MAX_POOL_ID);
+
+ stream = ogs_sbi_stream_find_by_id(stream_id);
+ if (!stream) {
+ ogs_error("STREAM has already been removed [%d]", stream_id);
+ break;
+ }
+
server = ogs_sbi_server_from_stream(stream);
ogs_assert(server);
@@ -76,7 +86,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- NULL, "cannot parse HTTP sbi_message", NULL));
+ NULL, "cannot parse HTTP sbi_message", NULL, NULL));
break;
}
@@ -85,7 +95,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_BAD_REQUEST,
- &message, "Not supported version", NULL));
+ &message, "Not supported version", NULL, NULL));
ogs_sbi_message_free(&message);
break;
}
@@ -111,7 +121,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method, NULL));
END
break;
@@ -122,7 +132,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Invalid resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
break;
@@ -157,7 +167,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_FORBIDDEN, &message,
- "Invalid HTTP method", message.h.method));
+ "Invalid HTTP method", message.h.method, NULL));
END
break;
@@ -168,7 +178,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
"Invalid resource name",
- message.h.resource.component[0]));
+ message.h.resource.component[0], NULL));
END
if (!sepp_node) {
@@ -176,7 +186,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(
stream, OGS_SBI_HTTP_STATUS_NOT_FOUND,
- &message, "Not found", message.h.method));
+ &message, "Not found", message.h.method, NULL));
break;
}
@@ -194,7 +204,7 @@ void sepp_state_operational(ogs_fsm_t *s, sepp_event_t *e)
ogs_assert(true ==
ogs_sbi_server_send_error(stream,
OGS_SBI_HTTP_STATUS_BAD_REQUEST, &message,
- "Invalid API name", message.h.service.name));
+ "Invalid API name", message.h.service.name, NULL));
END
/* In lib/sbi/server.c, notify_completed() releases 'request' buffer. */
diff --git a/src/sgwc/context.c b/src/sgwc/context.c
index ebd8dc6dfc..758486ef7d 100644
--- a/src/sgwc/context.c
+++ b/src/sgwc/context.c
@@ -163,7 +163,8 @@ int sgwc_context_parse_config(void)
sgwc_ue_t *sgwc_ue_add_by_message(ogs_gtp2_message_t *message)
{
sgwc_ue_t *sgwc_ue = NULL;
- ogs_gtp2_create_session_request_t *req = &message->create_session_request;
+ /* Clang scan-build SA: Dead initialization: Don't set req before message is checked for NULL. */
+ ogs_gtp2_create_session_request_t *req;
ogs_assert(message);
@@ -212,9 +213,8 @@ sgwc_ue_t *sgwc_ue_add(uint8_t *imsi, int imsi_len)
ogs_assert(imsi);
ogs_assert(imsi_len);
- ogs_pool_alloc(&sgwc_ue_pool, &sgwc_ue);
+ ogs_pool_id_calloc(&sgwc_ue_pool, &sgwc_ue);
ogs_assert(sgwc_ue);
- memset(sgwc_ue, 0, sizeof *sgwc_ue);
/* Set SGW-S11-TEID */
ogs_pool_alloc(&sgwc_s11_teid_pool, &sgwc_ue->sgw_s11_teid_node);
@@ -226,7 +226,7 @@ sgwc_ue_t *sgwc_ue_add(uint8_t *imsi, int imsi_len)
&sgwc_ue->sgw_s11_teid, sizeof(sgwc_ue->sgw_s11_teid), sgwc_ue);
/* Set IMSI */
- sgwc_ue->imsi_len = imsi_len;
+ sgwc_ue->imsi_len = ogs_min(imsi_len, OGS_MAX_IMSI_LEN);
memcpy(sgwc_ue->imsi, imsi, sgwc_ue->imsi_len);
ogs_buffer_to_bcd(sgwc_ue->imsi, sgwc_ue->imsi_len, sgwc_ue->imsi_bcd);
@@ -255,7 +255,7 @@ int sgwc_ue_remove(sgwc_ue_t *sgwc_ue)
sgwc_sess_remove_all(sgwc_ue);
ogs_pool_free(&sgwc_s11_teid_pool, sgwc_ue->sgw_s11_teid_node);
- ogs_pool_free(&sgwc_ue_pool, sgwc_ue);
+ ogs_pool_id_free(&sgwc_ue_pool, sgwc_ue);
ogs_info("[Removed] Number of SGWC-UEs is now %d",
ogs_list_count(&self.sgw_ue_list));
@@ -295,19 +295,23 @@ sgwc_ue_t *sgwc_ue_find_by_teid(uint32_t teid)
return ogs_hash_get(self.sgw_s11_teid_hash, &teid, sizeof(teid));
}
+sgwc_ue_t *sgwc_ue_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&sgwc_ue_pool, id);
+}
+
sgwc_sess_t *sgwc_sess_add(sgwc_ue_t *sgwc_ue, char *apn)
{
sgwc_sess_t *sess = NULL;
ogs_assert(sgwc_ue);
- ogs_pool_alloc(&sgwc_sess_pool, &sess);
+ ogs_pool_id_calloc(&sgwc_sess_pool, &sess);
if (!sess) {
ogs_error("Maximum number of session[%lld] reached",
(long long)ogs_app()->pool.sess);
return NULL;
}
- memset(sess, 0, sizeof *sess);
ogs_pfcp_pool_init(&sess->pfcp);
@@ -328,7 +332,7 @@ sgwc_sess_t *sgwc_sess_add(sgwc_ue_t *sgwc_ue, char *apn)
sess->session.name = ogs_strdup(apn);
ogs_assert(sess->session.name);
- sess->sgwc_ue = sgwc_ue;
+ sess->sgwc_ue_id = sgwc_ue->id;
ogs_list_add(&sgwc_ue->sess_list, sess);
@@ -344,7 +348,7 @@ static bool compare_ue_info(ogs_pfcp_node_t *node, sgwc_sess_t *sess)
ogs_assert(node);
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
ogs_assert(sess->session.name);
@@ -404,8 +408,6 @@ static ogs_pfcp_node_t *selected_sgwu_node(
void sgwc_sess_select_sgwu(sgwc_sess_t *sess)
{
- char buf[OGS_ADDRSTRLEN];
-
ogs_assert(sess);
/*
@@ -421,8 +423,9 @@ void sgwc_sess_select_sgwu(sgwc_sess_t *sess)
selected_sgwu_node(ogs_pfcp_self()->pfcp_node, sess);
ogs_assert(ogs_pfcp_self()->pfcp_node);
OGS_SETUP_PFCP_NODE(sess, ogs_pfcp_self()->pfcp_node);
- ogs_debug("UE using SGW-U on IP[%s]",
- OGS_ADDR(&ogs_pfcp_self()->pfcp_node->addr, buf));
+ ogs_debug("UE using SGW-U on IP %s",
+ ogs_sockaddr_to_string_static(
+ ogs_pfcp_self()->pfcp_node->addr_list));
}
int sgwc_sess_remove(sgwc_sess_t *sess)
@@ -430,7 +433,7 @@ int sgwc_sess_remove(sgwc_sess_t *sess)
sgwc_ue_t *sgwc_ue = NULL;
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
ogs_list_remove(&sgwc_ue->sess_list, sess);
@@ -449,7 +452,7 @@ int sgwc_sess_remove(sgwc_sess_t *sess)
ogs_free(sess->session.name);
ogs_pool_free(&sgwc_sxa_seid_pool, sess->sgwc_sxa_seid_node);
- ogs_pool_free(&sgwc_sess_pool, sess);
+ ogs_pool_id_free(&sgwc_sess_pool, sess);
stats_remove_sgwc_session();
@@ -497,14 +500,14 @@ sgwc_sess_t *sgwc_sess_find_by_ebi(sgwc_ue_t *sgwc_ue, uint8_t ebi)
bearer = sgwc_bearer_find_by_ue_ebi(sgwc_ue, ebi);
if (bearer)
- return bearer->sess;
+ return sgwc_sess_find_by_id(bearer->sess_id);
return NULL;
}
-sgwc_sess_t *sgwc_sess_cycle(sgwc_sess_t *sess)
+sgwc_sess_t *sgwc_sess_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&sgwc_sess_pool, sess);
+ return ogs_pool_find_by_id(&sgwc_sess_pool, id);
}
int sgwc_sess_pfcp_xact_count(
@@ -518,14 +521,24 @@ int sgwc_sess_pfcp_xact_count(
ogs_list_for_each(&sgwc_ue->sess_list, sess) {
ogs_pfcp_node_t *pfcp_node = sess->pfcp_node;
ogs_pfcp_xact_t *pfcp_xact = NULL;
+
ogs_assert(pfcp_node);
ogs_list_for_each(&pfcp_node->local_list, pfcp_xact) {
- if (sess != pfcp_xact->data)
- continue;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
+
if (pfcp_type && pfcp_type != pfcp_xact->seq[0].type)
continue;
+ if (!(pfcp_xact->modify_flags & OGS_PFCP_MODIFY_SESSION))
+ continue;
if (modify_flags && modify_flags != pfcp_xact->modify_flags)
continue;
+
+ sess_id = OGS_POINTER_TO_UINT(pfcp_xact->data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
+ sess_id <= OGS_MAX_POOL_ID);
+ if (sess->id != sess_id)
+ continue;
+
xact_count++;
}
}
@@ -540,15 +553,14 @@ sgwc_bearer_t *sgwc_bearer_add(sgwc_sess_t *sess)
sgwc_ue_t *sgwc_ue = NULL;
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
- ogs_pool_alloc(&sgwc_bearer_pool, &bearer);
+ ogs_pool_id_calloc(&sgwc_bearer_pool, &bearer);
ogs_assert(bearer);
- memset(bearer, 0, sizeof *bearer);
- bearer->sgwc_ue = sgwc_ue;
- bearer->sess = sess;
+ bearer->sgwc_ue_id = sgwc_ue->id;
+ bearer->sess_id = sess->id;
/* Downlink */
tunnel = sgwc_tunnel_add(bearer, OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U);
@@ -565,14 +577,17 @@ sgwc_bearer_t *sgwc_bearer_add(sgwc_sess_t *sess)
int sgwc_bearer_remove(sgwc_bearer_t *bearer)
{
+ sgwc_sess_t *sess = NULL;
+
ogs_assert(bearer);
- ogs_assert(bearer->sess);
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
- ogs_list_remove(&bearer->sess->bearer_list, bearer);
+ ogs_list_remove(&sess->bearer_list, bearer);
sgwc_tunnel_remove_all(bearer);
- ogs_pool_free(&sgwc_bearer_pool, bearer);
+ ogs_pool_id_free(&sgwc_bearer_pool, bearer);
return OGS_OK;
}
@@ -618,9 +633,9 @@ sgwc_bearer_t *sgwc_default_bearer_in_sess(sgwc_sess_t *sess)
return ogs_list_first(&sess->bearer_list);
}
-sgwc_bearer_t *sgwc_bearer_cycle(sgwc_bearer_t *bearer)
+sgwc_bearer_t *sgwc_bearer_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&sgwc_bearer_pool, bearer);
+ return ogs_pool_find_by_id(&sgwc_bearer_pool, id);
}
sgwc_tunnel_t *sgwc_tunnel_add(
@@ -632,40 +647,51 @@ sgwc_tunnel_t *sgwc_tunnel_add(
ogs_pfcp_pdr_t *pdr = NULL;
ogs_pfcp_far_t *far = NULL;
- uint8_t src_if = OGS_PFCP_INTERFACE_UNKNOWN;
- uint8_t dst_if = OGS_PFCP_INTERFACE_UNKNOWN;
+ ogs_pfcp_interface_t src_if = OGS_PFCP_INTERFACE_UNKNOWN;
+ ogs_pfcp_interface_t dst_if = OGS_PFCP_INTERFACE_UNKNOWN;
+ ogs_pfcp_3gpp_interface_type_t src_if_type =
+ OGS_PFCP_3GPP_INTERFACE_TYPE_UNKNOWN;
+ ogs_pfcp_3gpp_interface_type_t dst_if_type =
+ OGS_PFCP_3GPP_INTERFACE_TYPE_UNKNOWN;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
switch (interface_type) {
/* Downlink */
case OGS_GTP2_F_TEID_S5_S8_SGW_GTP_U:
src_if = OGS_PFCP_INTERFACE_CORE;
+ src_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_S5_S8_U;
dst_if = OGS_PFCP_INTERFACE_ACCESS;
+ dst_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_S1_U;
break;
/* Uplink */
case OGS_GTP2_F_TEID_S1_U_SGW_GTP_U:
src_if = OGS_PFCP_INTERFACE_ACCESS;
+ src_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_S1_U;
dst_if = OGS_PFCP_INTERFACE_CORE;
+ dst_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_S5_S8_U;
break;
/* Indirect */
case OGS_GTP2_F_TEID_SGW_GTP_U_FOR_DL_DATA_FORWARDING:
case OGS_GTP2_F_TEID_SGW_GTP_U_FOR_UL_DATA_FORWARDING:
src_if = OGS_PFCP_INTERFACE_ACCESS;
+ src_if_type =
+ OGS_PFCP_3GPP_INTERFACE_TYPE_SGW_UPF_GTP_U_FOR_UL_DATA_FORWARDING;
dst_if = OGS_PFCP_INTERFACE_ACCESS;
+ dst_if_type =
+ OGS_PFCP_3GPP_INTERFACE_TYPE_SGW_UPF_GTP_U_FOR_DL_DATA_FORWARDING;
break;
default:
ogs_fatal("Invalid interface type = %d", interface_type);
ogs_assert_if_reached();
}
- ogs_pool_alloc(&sgwc_tunnel_pool, &tunnel);
+ ogs_pool_id_calloc(&sgwc_tunnel_pool, &tunnel);
ogs_assert(tunnel);
- memset(tunnel, 0, sizeof *tunnel);
tunnel->interface_type = interface_type;
@@ -678,6 +704,9 @@ sgwc_tunnel_t *sgwc_tunnel_add(
pdr->src_if = src_if;
+ pdr->src_if_type_presence = true;
+ pdr->src_if_type = src_if_type;
+
far = ogs_pfcp_far_add(&sess->pfcp);
ogs_assert(far);
@@ -686,6 +715,10 @@ sgwc_tunnel_t *sgwc_tunnel_add(
ogs_assert(far->apn);
far->dst_if = dst_if;
+
+ far->dst_if_type_presence = true;
+ far->dst_if_type = dst_if_type;
+
ogs_pfcp_pdr_associate_far(pdr, far);
far->apply_action =
@@ -716,7 +749,7 @@ sgwc_tunnel_t *sgwc_tunnel_add(
ogs_gtpu_resource_t *resource = NULL;
resource = ogs_pfcp_find_gtpu_resource(
&sess->pfcp_node->gtpu_resource_list,
- sess->session.name, OGS_PFCP_INTERFACE_ACCESS);
+ sess->session.name, pdr->src_if);
if (resource) {
ogs_user_plane_ip_resource_info_to_sockaddr(&resource->info,
&tunnel->local_addr, &tunnel->local_addr6);
@@ -727,14 +760,15 @@ sgwc_tunnel_t *sgwc_tunnel_add(
else
tunnel->local_teid = pdr->teid;
} else {
- if (sess->pfcp_node->addr.ogs_sa_family == AF_INET)
+ ogs_assert(sess->pfcp_node->addr_list);
+ if (sess->pfcp_node->addr_list->ogs_sa_family == AF_INET)
ogs_assert(OGS_OK ==
ogs_copyaddrinfo(
- &tunnel->local_addr, &sess->pfcp_node->addr));
- else if (sess->pfcp_node->addr.ogs_sa_family == AF_INET6)
+ &tunnel->local_addr, sess->pfcp_node->addr_list));
+ else if (sess->pfcp_node->addr_list->ogs_sa_family == AF_INET6)
ogs_assert(OGS_OK ==
ogs_copyaddrinfo(
- &tunnel->local_addr6, &sess->pfcp_node->addr));
+ &tunnel->local_addr6, sess->pfcp_node->addr_list));
else
ogs_assert_if_reached();
@@ -751,7 +785,7 @@ sgwc_tunnel_t *sgwc_tunnel_add(
tunnel->pdr = pdr;
tunnel->far = far;
- tunnel->bearer = bearer;
+ tunnel->bearer_id = bearer->id;
ogs_list_add(&bearer->tunnel_list, tunnel);
@@ -760,10 +794,13 @@ sgwc_tunnel_t *sgwc_tunnel_add(
int sgwc_tunnel_remove(sgwc_tunnel_t *tunnel)
{
+ sgwc_bearer_t *bearer = NULL;
+
ogs_assert(tunnel);
- ogs_assert(tunnel->bearer);
+ bearer = sgwc_bearer_find_by_id(tunnel->bearer_id);
+ ogs_assert(bearer);
- ogs_list_remove(&tunnel->bearer->tunnel_list, tunnel);
+ ogs_list_remove(&bearer->tunnel_list, tunnel);
ogs_pfcp_pdr_remove(tunnel->pdr);
ogs_pfcp_far_remove(tunnel->far);
@@ -773,7 +810,7 @@ int sgwc_tunnel_remove(sgwc_tunnel_t *tunnel)
if (tunnel->local_addr6)
ogs_freeaddrinfo(tunnel->local_addr6);
- ogs_pool_free(&sgwc_tunnel_pool, tunnel);
+ ogs_pool_id_free(&sgwc_tunnel_pool, tunnel);
return OGS_OK;
}
@@ -863,6 +900,11 @@ sgwc_tunnel_t *sgwc_tunnel_find_by_far_id(
return NULL;
}
+sgwc_tunnel_t *sgwc_tunnel_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&sgwc_tunnel_pool, id);
+}
+
sgwc_tunnel_t *sgwc_dl_tunnel_in_bearer(sgwc_bearer_t *bearer)
{
ogs_assert(bearer);
diff --git a/src/sgwc/context.h b/src/sgwc/context.h
index eca5e72d88..f028af6817 100644
--- a/src/sgwc/context.h
+++ b/src/sgwc/context.h
@@ -51,6 +51,7 @@ typedef struct sgwc_context_s {
typedef struct sgwc_ue_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
ogs_pool_id_t *sgw_s11_teid_node; /* A node of SGW-S11-TEID */
uint32_t sgw_s11_teid; /* SGW-S11-TEID is derived from NODE */
@@ -74,6 +75,7 @@ typedef struct sgwc_ue_s {
#define SGWC_SESS(pfcp_sess) ogs_container_of(pfcp_sess, sgwc_sess_t, pfcp)
typedef struct sgwc_sess_s {
ogs_lnode_t lnode; /* A node of list_t */
+ ogs_pool_id_t id;
ogs_pool_id_t *sgwc_sxa_seid_node; /* A node of SGWC-SXA-SEID */
ogs_pfcp_sess_t pfcp; /* PFCP session context */
@@ -87,28 +89,33 @@ typedef struct sgwc_sess_s {
/* APN Configuration */
ogs_session_t session;
+ /* PDN Address Allocation (PAA) */
+ ogs_paa_t paa;
+
ogs_list_t bearer_list;
/* Related Context */
ogs_gtp_node_t *gnode;
ogs_pfcp_node_t *pfcp_node;
- sgwc_ue_t *sgwc_ue;
+ ogs_pool_id_t sgwc_ue_id;
} sgwc_sess_t;
typedef struct sgwc_bearer_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
ogs_lnode_t to_modify_node;
uint8_t ebi;
ogs_list_t tunnel_list;
- sgwc_sess_t *sess;
- sgwc_ue_t *sgwc_ue;
+ ogs_pool_id_t sess_id;
+ ogs_pool_id_t sgwc_ue_id;
} sgwc_bearer_t;
typedef struct sgwc_tunnel_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
uint8_t interface_type;
@@ -123,7 +130,7 @@ typedef struct sgwc_tunnel_s {
ogs_ip_t remote_ip;
/* Related Context */
- sgwc_bearer_t *bearer;
+ ogs_pool_id_t bearer_id;
ogs_gtp_node_t *gnode;
} sgwc_tunnel_t;
@@ -141,6 +148,7 @@ sgwc_ue_t *sgwc_ue_find_by_teid(uint32_t teid);
sgwc_ue_t *sgwc_ue_add(uint8_t *imsi, int imsi_len);
int sgwc_ue_remove(sgwc_ue_t *sgwc_ue);
void sgwc_ue_remove_all(void);
+sgwc_ue_t *sgwc_ue_find_by_id(ogs_pool_id_t id);
sgwc_sess_t *sgwc_sess_add(sgwc_ue_t *sgwc_ue, char *apn);
@@ -154,7 +162,7 @@ sgwc_sess_t *sgwc_sess_find_by_seid(uint64_t seid);
sgwc_sess_t *sgwc_sess_find_by_apn(sgwc_ue_t *sgwc_ue, char *apn);
sgwc_sess_t *sgwc_sess_find_by_ebi(sgwc_ue_t *sgwc_ue, uint8_t ebi);
-sgwc_sess_t *sgwc_sess_cycle(sgwc_sess_t *sess);
+sgwc_sess_t *sgwc_sess_find_by_id(ogs_pool_id_t id);
#define SGWC_SESSION_SYNC_DONE(__sGWC, __tYPE, __fLAGS) \
(sgwc_sess_pfcp_xact_count(__sGWC, __tYPE, __fLAGS) == 0)
@@ -169,7 +177,7 @@ sgwc_bearer_t *sgwc_bearer_find_by_sess_ebi(
sgwc_bearer_t *sgwc_bearer_find_by_ue_ebi(
sgwc_ue_t *sgwc_ue, uint8_t ebi);
sgwc_bearer_t *sgwc_default_bearer_in_sess(sgwc_sess_t *sess);
-sgwc_bearer_t *sgwc_bearer_cycle(sgwc_bearer_t *bearer);
+sgwc_bearer_t *sgwc_bearer_find_by_id(ogs_pool_id_t id);
sgwc_tunnel_t *sgwc_tunnel_add(
sgwc_bearer_t *bearer, uint8_t interface_type);
@@ -184,6 +192,7 @@ sgwc_tunnel_t *sgwc_tunnel_find_by_far_id(
sgwc_sess_t *sess, ogs_pfcp_far_id_t far_id);
sgwc_tunnel_t *sgwc_dl_tunnel_in_bearer(sgwc_bearer_t *bearer);
sgwc_tunnel_t *sgwc_ul_tunnel_in_bearer(sgwc_bearer_t *bearer);
+sgwc_tunnel_t *sgwc_tunnel_find_by_id(ogs_pool_id_t id);
#ifdef __cplusplus
}
diff --git a/src/sgwc/event.h b/src/sgwc/event.h
index f146f66e7f..dc2d7504d3 100644
--- a/src/sgwc/event.h
+++ b/src/sgwc/event.h
@@ -57,10 +57,8 @@ typedef struct sgwc_event_s {
ogs_gtp2_message_t *gtp_message;
ogs_pfcp_node_t *pfcp_node;
- ogs_pfcp_xact_t *pfcp_xact;
+ ogs_pool_id_t pfcp_xact_id;
ogs_pfcp_message_t *pfcp_message;
-
- sgwc_bearer_t *bearer;
} sgwc_event_t;
OGS_STATIC_ASSERT(OGS_EVENT_SIZE >= sizeof(sgwc_event_t));
diff --git a/src/sgwc/gtp-path.c b/src/sgwc/gtp-path.c
index 6ce21e64ff..fc9be805bd 100644
--- a/src/sgwc/gtp-path.c
+++ b/src/sgwc/gtp-path.c
@@ -129,6 +129,8 @@ int sgwc_gtp_open(void)
}
OGS_SETUP_GTPC_SERVER;
+ ogs_assert(ogs_gtp_self()->gtpc_sock || ogs_gtp_self()->gtpc_sock6);
+ ogs_assert(ogs_gtp_self()->gtpc_addr || ogs_gtp_self()->gtpc_addr6);
return OGS_OK;
}
@@ -142,19 +144,29 @@ void sgwc_gtp_close(void)
static void bearer_timeout(ogs_gtp_xact_t *xact, void *data)
{
sgwc_bearer_t *bearer = data;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
sgwc_sess_t *sess = NULL;
sgwc_ue_t *sgwc_ue = NULL;
uint8_t type = 0;
ogs_assert(xact);
- ogs_assert(bearer);
- sess = bearer->sess;
+ type = xact->seq[0].type;
+
+ ogs_assert(data);
+ bearer_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID && bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("Bearer[%d] has already been removed [%d]", bearer_id, type);
+ return;
+ }
+
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
- type = xact->seq[0].type;
-
switch (type) {
case OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE:
ogs_warn("[%s] No Downlink Data Notification ACK", sgwc_ue->imsi_bcd);
@@ -176,7 +188,7 @@ int sgwc_gtp_send_create_session_response(
ogs_pkbuf_t *pkbuf = NULL;
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
ogs_assert(xact);
@@ -217,13 +229,13 @@ int sgwc_gtp_send_downlink_data_notification(
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- sgwc_ue = bearer->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(bearer->sgwc_ue_id);
ogs_assert(sgwc_ue);
ogs_assert(sgwc_ue->gnode);
- ogs_debug("Downlink Data Notification");
+ ogs_debug("Downlink Data Notification [%d]", bearer->id);
ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
sgwc_ue->mme_s11_teid, sgwc_ue->sgw_s11_teid);
@@ -238,7 +250,8 @@ int sgwc_gtp_send_downlink_data_notification(
}
gtp_xact = ogs_gtp_xact_local_create(
- sgwc_ue->gnode, &h, pkbuf, bearer_timeout, bearer);
+ sgwc_ue->gnode, &h, pkbuf, bearer_timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
if (!gtp_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
diff --git a/src/sgwc/init.c b/src/sgwc/init.c
index 7f62d09b71..92dd9945fe 100644
--- a/src/sgwc/init.c
+++ b/src/sgwc/init.c
@@ -47,6 +47,10 @@ int sgwc_initialize(void)
rv = ogs_pfcp_xact_init();
if (rv != OGS_OK) return rv;
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
+ if (rv != OGS_OK) return rv;
+
rv = ogs_gtp_context_parse_config(APP_NAME, "sgwu");
if (rv != OGS_OK) return rv;
@@ -56,10 +60,6 @@ int sgwc_initialize(void)
rv = sgwc_context_parse_config();
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
- if (rv != OGS_OK) return rv;
-
rv = sgwc_gtp_open();
if (rv != OGS_OK) return rv;
diff --git a/src/sgwc/pfcp-path.c b/src/sgwc/pfcp-path.c
index fa5c9f5057..1483e99a1f 100644
--- a/src/sgwc/pfcp-path.c
+++ b/src/sgwc/pfcp-path.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2025 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -56,74 +56,125 @@ static void pfcp_recv_cb(short when, ogs_socket_t fd, void *data)
{
int rv;
- ssize_t size;
sgwc_event_t *e = NULL;
ogs_pkbuf_t *pkbuf = NULL;
ogs_sockaddr_t from;
ogs_pfcp_node_t *node = NULL;
- ogs_pfcp_header_t *h = NULL;
+ ogs_pfcp_message_t *message = NULL;
- ogs_assert(fd != INVALID_SOCKET);
+ ogs_pfcp_status_e pfcp_status;;
+ ogs_pfcp_node_id_t node_id;
- pkbuf = ogs_pkbuf_alloc(NULL, OGS_MAX_SDU_LEN);
- ogs_assert(pkbuf);
- ogs_pkbuf_put(pkbuf, OGS_MAX_SDU_LEN);
+ ogs_assert(fd != INVALID_SOCKET);
- size = ogs_recvfrom(fd, pkbuf->data, pkbuf->len, 0, &from);
- if (size <= 0) {
- ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "ogs_recvfrom() failed");
- ogs_pkbuf_free(pkbuf);
+ pkbuf = ogs_pfcp_recvfrom(fd, &from);
+ if (!pkbuf) {
+ ogs_error("ogs_pfcp_recvfrom() failed");
return;
}
- ogs_pkbuf_trim(pkbuf, size);
-
- h = (ogs_pfcp_header_t *)pkbuf->data;
- if (h->version != OGS_PFCP_VERSION) {
- ogs_pfcp_header_t rsp;
-
- ogs_error("Not supported version[%d]", h->version);
+ e = sgwc_event_new(SGWC_EVT_SXA_MESSAGE);
+ ogs_assert(e);
- memset(&rsp, 0, sizeof rsp);
- rsp.flags = (OGS_PFCP_VERSION << 5);
- rsp.type = OGS_PFCP_VERSION_NOT_SUPPORTED_RESPONSE_TYPE;
- rsp.length = htobe16(4);
- rsp.sqn_only = h->sqn_only;
- if (ogs_sendto(fd, &rsp, 8, 0, &from) < 0) {
- ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "ogs_sendto() failed");
- }
+ /*
+ * Issue #1911
+ *
+ * Because ogs_pfcp_message_t is over 80kb in size,
+ * it can cause stack overflow.
+ * To avoid this, the pfcp_message structure uses heap memory.
+ */
+ if ((message = ogs_pfcp_parse_msg(pkbuf)) == NULL) {
+ ogs_error("ogs_pfcp_parse_msg() failed");
ogs_pkbuf_free(pkbuf);
-
+ sgwc_event_free(e);
return;
}
- e = sgwc_event_new(SGWC_EVT_SXA_MESSAGE);
- ogs_assert(e);
+ pfcp_status = ogs_pfcp_extract_node_id(message, &node_id);
+ switch (pfcp_status) {
+ case OGS_PFCP_STATUS_SUCCESS:
+ case OGS_PFCP_STATUS_NODE_ID_NONE:
+ case OGS_PFCP_STATUS_NODE_ID_OPTIONAL_ABSENT:
+ ogs_debug("ogs_pfcp_extract_node_id() "
+ "type [%d] pfcp_status [%d] node_id [%s] from %s",
+ message->h.type, pfcp_status,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ?
+ ogs_pfcp_node_id_to_string_static(&node_id) :
+ "NULL",
+ ogs_sockaddr_to_string_static(&from));
+ break;
+
+ case OGS_PFCP_ERROR_SEMANTIC_INCORRECT_MESSAGE:
+ case OGS_PFCP_ERROR_NODE_ID_NOT_PRESENT:
+ case OGS_PFCP_ERROR_NODE_ID_NOT_FOUND:
+ case OGS_PFCP_ERROR_UNKNOWN_MESSAGE:
+ ogs_error("ogs_pfcp_extract_node_id() failed "
+ "type [%d] pfcp_status [%d] from %s",
+ message->h.type, pfcp_status,
+ ogs_sockaddr_to_string_static(&from));
+ goto cleanup;
+
+ default:
+ ogs_error("Unexpected pfcp_status "
+ "type [%d] pfcp_status [%d] from %s",
+ message->h.type, pfcp_status,
+ ogs_sockaddr_to_string_static(&from));
+ goto cleanup;
+ }
- node = ogs_pfcp_node_find(&ogs_pfcp_self()->pfcp_peer_list, &from);
+ node = ogs_pfcp_node_find(&ogs_pfcp_self()->pfcp_peer_list,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ? &node_id : NULL, &from);
if (!node) {
- node = ogs_pfcp_node_add(&ogs_pfcp_self()->pfcp_peer_list, &from);
- if (!node) {
- ogs_error("No memory: ogs_pfcp_node_add() failed");
- ogs_pkbuf_free(e->pkbuf);
- ogs_event_free(e);
- return;
+ if (message->h.type == OGS_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE ||
+ message->h.type == OGS_PFCP_ASSOCIATION_SETUP_RESPONSE_TYPE) {
+ ogs_assert(pfcp_status == OGS_PFCP_STATUS_SUCCESS);
+ node = ogs_pfcp_node_add(&ogs_pfcp_self()->pfcp_peer_list,
+ &node_id, &from);
+ if (!node) {
+ ogs_error("No memory: ogs_pfcp_node_add() failed");
+ goto cleanup;
+ }
+ ogs_debug("Added PFCP-Node: addr_list %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
+
+ pfcp_node_fsm_init(node, false);
+
+ } else {
+ ogs_error("Cannot find PFCP-Node: type [%d] node_id %s from %s",
+ message->h.type,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ?
+ ogs_pfcp_node_id_to_string_static(&node_id) :
+ "NULL",
+ ogs_sockaddr_to_string_static(&from));
+ goto cleanup;
}
-
- node->sock = data;
- pfcp_node_fsm_init(node, false);
+ } else {
+ ogs_debug("Found PFCP-Node: addr_list %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
+ ogs_expect(OGS_OK == ogs_pfcp_node_merge(
+ node,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ? &node_id : NULL,
+ &from));
+ ogs_debug("Merged PFCP-Node: addr_list %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
}
+
e->pfcp_node = node;
e->pkbuf = pkbuf;
+ e->pfcp_message = message;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
ogs_error("ogs_queue_push() failed:%d", (int)rv);
- ogs_pkbuf_free(e->pkbuf);
- sgwc_event_free(e);
+ goto cleanup;
}
+
+ return;
+
+cleanup:
+ ogs_pkbuf_free(pkbuf);
+ ogs_pfcp_message_free(message);
+ sgwc_event_free(e);
}
int sgwc_pfcp_open(void)
@@ -170,11 +221,23 @@ void sgwc_pfcp_close(void)
static void sess_timeout(ogs_pfcp_xact_t *xact, void *data)
{
+ sgwc_sess_t *sess = NULL;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
uint8_t type;
ogs_assert(xact);
type = xact->seq[0].type;
+ ogs_assert(data);
+ sess_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID && sess_id <= OGS_MAX_POOL_ID);
+
+ sess = sgwc_sess_find_by_id(sess_id);
+ if (!sess) {
+ ogs_error("Session has already been removed [%d]", type);
+ return;
+ }
+
switch (type) {
case OGS_PFCP_SESSION_ESTABLISHMENT_REQUEST_TYPE:
ogs_error("No PFCP session establishment response");
@@ -193,11 +256,23 @@ static void sess_timeout(ogs_pfcp_xact_t *xact, void *data)
static void bearer_timeout(ogs_pfcp_xact_t *xact, void *data)
{
+ sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
uint8_t type;
ogs_assert(xact);
type = xact->seq[0].type;
+ ogs_assert(data);
+ bearer_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID && bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("Bearer has already been removed [%d]", type);
+ return;
+ }
+
switch (type) {
case OGS_PFCP_SESSION_MODIFICATION_REQUEST_TYPE:
ogs_error("No PFCP session modification response");
@@ -243,7 +318,7 @@ int sgwc_pfcp_send_bearer_to_modify_list(
}
int sgwc_pfcp_send_session_establishment_request(
- sgwc_sess_t *sess, ogs_gtp_xact_t *gtp_xact, ogs_pkbuf_t *gtpbuf,
+ sgwc_sess_t *sess, ogs_pool_id_t gtp_xact_id, ogs_pkbuf_t *gtpbuf,
uint64_t flags)
{
int rv;
@@ -253,13 +328,14 @@ int sgwc_pfcp_send_session_establishment_request(
ogs_assert(sess);
- xact = ogs_pfcp_xact_local_create(sess->pfcp_node, sess_timeout, sess);
+ xact = ogs_pfcp_xact_local_create(
+ sess->pfcp_node, sess_timeout, OGS_UINT_TO_POINTER(sess->id));
if (!xact) {
ogs_error("ogs_pfcp_xact_local_create() failed");
return OGS_ERROR;
}
- xact->assoc_xact = gtp_xact;
+ xact->assoc_xact_id = gtp_xact_id;
if (gtpbuf) {
xact->gtpbuf = ogs_pkbuf_copy(gtpbuf);
if (!xact->gtpbuf) {
@@ -323,7 +399,7 @@ int sgwc_pfcp_send_session_establishment_request(
}
int sgwc_pfcp_send_session_modification_request(
- sgwc_sess_t *sess, ogs_gtp_xact_t *gtp_xact,
+ sgwc_sess_t *sess, ogs_pool_id_t gtp_xact_id,
ogs_pkbuf_t *gtpbuf, uint64_t flags)
{
ogs_pfcp_xact_t *xact = NULL;
@@ -331,13 +407,14 @@ int sgwc_pfcp_send_session_modification_request(
ogs_assert(sess);
- xact = ogs_pfcp_xact_local_create(sess->pfcp_node, sess_timeout, sess);
+ xact = ogs_pfcp_xact_local_create(
+ sess->pfcp_node, sess_timeout, OGS_UINT_TO_POINTER(sess->id));
if (!xact) {
ogs_error("ogs_pfcp_xact_local_create() failed");
return OGS_ERROR;
}
- xact->assoc_xact = gtp_xact;
+ xact->assoc_xact_id = gtp_xact_id;
xact->modify_flags = flags | OGS_PFCP_MODIFY_SESSION;
if (gtpbuf) {
xact->gtpbuf = ogs_pkbuf_copy(gtpbuf);
@@ -355,7 +432,7 @@ int sgwc_pfcp_send_session_modification_request(
}
int sgwc_pfcp_send_bearer_modification_request(
- sgwc_bearer_t *bearer, ogs_gtp_xact_t *gtp_xact,
+ sgwc_bearer_t *bearer, ogs_pool_id_t gtp_xact_id,
ogs_pkbuf_t *gtpbuf, uint64_t flags)
{
int rv;
@@ -365,16 +442,17 @@ int sgwc_pfcp_send_bearer_modification_request(
sgwc_sess_t *sess = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- xact = ogs_pfcp_xact_local_create(sess->pfcp_node, bearer_timeout, bearer);
+ xact = ogs_pfcp_xact_local_create(
+ sess->pfcp_node, bearer_timeout, OGS_UINT_TO_POINTER(bearer->id));
if (!xact) {
ogs_error("ogs_pfcp_xact_local_create() failed");
return OGS_ERROR;
}
- xact->assoc_xact = gtp_xact;
+ xact->assoc_xact_id = gtp_xact_id;
xact->modify_flags = flags;
if (gtpbuf) {
xact->gtpbuf = ogs_pkbuf_copy(gtpbuf);
@@ -410,7 +488,7 @@ int sgwc_pfcp_send_bearer_modification_request(
}
int sgwc_pfcp_send_session_deletion_request(
- sgwc_sess_t *sess, ogs_gtp_xact_t *gtp_xact, ogs_pkbuf_t *gtpbuf)
+ sgwc_sess_t *sess, ogs_pool_id_t gtp_xact_id, ogs_pkbuf_t *gtpbuf)
{
int rv;
ogs_pkbuf_t *sxabuf = NULL;
@@ -419,13 +497,14 @@ int sgwc_pfcp_send_session_deletion_request(
ogs_assert(sess);
- xact = ogs_pfcp_xact_local_create(sess->pfcp_node, sess_timeout, sess);
+ xact = ogs_pfcp_xact_local_create(
+ sess->pfcp_node, sess_timeout, OGS_UINT_TO_POINTER(sess->id));
if (!xact) {
ogs_error("ogs_pfcp_xact_local_create() failed");
return OGS_ERROR;
}
- xact->assoc_xact = gtp_xact;
+ xact->assoc_xact_id = gtp_xact_id;
if (gtpbuf) {
xact->gtpbuf = ogs_pkbuf_copy(gtpbuf);
if (!xact->gtpbuf) {
diff --git a/src/sgwc/pfcp-path.h b/src/sgwc/pfcp-path.h
index ae3314da2e..cac462153c 100644
--- a/src/sgwc/pfcp-path.h
+++ b/src/sgwc/pfcp-path.h
@@ -33,18 +33,18 @@ int sgwc_pfcp_send_bearer_to_modify_list(
sgwc_sess_t *sess, ogs_pfcp_xact_t *xact);
int sgwc_pfcp_send_session_establishment_request(
- sgwc_sess_t *sess, ogs_gtp_xact_t *gtp_xact, ogs_pkbuf_t *gtpbuf,
+ sgwc_sess_t *sess, ogs_pool_id_t gtp_xact_id, ogs_pkbuf_t *gtpbuf,
uint64_t flags);
int sgwc_pfcp_send_session_modification_request(
- sgwc_sess_t *sess, ogs_gtp_xact_t *gtp_xact,
+ sgwc_sess_t *sess, ogs_pool_id_t gtp_xact_id,
ogs_pkbuf_t *gtpbuf, uint64_t flags);
int sgwc_pfcp_send_bearer_modification_request(
- sgwc_bearer_t *bearer, ogs_gtp_xact_t *gtp_xact,
+ sgwc_bearer_t *bearer, ogs_pool_id_t gtp_xact_id,
ogs_pkbuf_t *gtpbuf, uint64_t flags);
int sgwc_pfcp_send_session_deletion_request(
- sgwc_sess_t *sess, ogs_gtp_xact_t *gtp_xact, ogs_pkbuf_t *gtpbuf);
+ sgwc_sess_t *sess, ogs_pool_id_t gtp_xact_id, ogs_pkbuf_t *gtpbuf);
int sgwc_pfcp_send_session_report_response(
ogs_pfcp_xact_t *xact, sgwc_sess_t *sess, uint8_t cause);
diff --git a/src/sgwc/pfcp-sm.c b/src/sgwc/pfcp-sm.c
index 06d47e2cbd..bf9ed5aa28 100644
--- a/src/sgwc/pfcp-sm.c
+++ b/src/sgwc/pfcp-sm.c
@@ -25,7 +25,6 @@ static void node_timeout(ogs_pfcp_xact_t *xact, void *data);
void sgwc_pfcp_state_initial(ogs_fsm_t *s, sgwc_event_t *e)
{
- int rv;
ogs_pfcp_node_t *node = NULL;
ogs_assert(s);
@@ -36,10 +35,6 @@ void sgwc_pfcp_state_initial(ogs_fsm_t *s, sgwc_event_t *e)
node = e->pfcp_node;
ogs_assert(node);
- rv = ogs_pfcp_connect(
- ogs_pfcp_self()->pfcp_sock, ogs_pfcp_self()->pfcp_sock6, node);
- ogs_assert(rv == OGS_OK);
-
node->t_no_heartbeat = ogs_timer_add(ogs_app()->timer_mgr,
sgwc_timer_pfcp_no_heartbeat, node);
ogs_assert(node->t_no_heartbeat);
@@ -63,14 +58,10 @@ void sgwc_pfcp_state_final(ogs_fsm_t *s, sgwc_event_t *e)
void sgwc_pfcp_state_will_associate(ogs_fsm_t *s, sgwc_event_t *e)
{
- char buf[OGS_ADDRSTRLEN];
-
ogs_pfcp_node_t *node = NULL;
ogs_pfcp_xact_t *xact = NULL;
ogs_pfcp_message_t *message = NULL;
- ogs_sockaddr_t *addr = NULL;
-
ogs_assert(s);
ogs_assert(e);
@@ -78,8 +69,6 @@ void sgwc_pfcp_state_will_associate(ogs_fsm_t *s, sgwc_event_t *e)
node = e->pfcp_node;
ogs_assert(node);
- addr = node->sa_list;
- ogs_assert(addr);
switch (e->id) {
case OGS_FSM_ENTRY_SIG:
@@ -103,8 +92,8 @@ void sgwc_pfcp_state_will_associate(ogs_fsm_t *s, sgwc_event_t *e)
node = e->pfcp_node;
ogs_assert(node);
- ogs_warn("Retry association with peer [%s]:%d failed",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
+ ogs_warn("Retry association with peer failed %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_assert(node->t_association);
ogs_timer_start(node->t_association,
@@ -121,7 +110,7 @@ void sgwc_pfcp_state_will_associate(ogs_fsm_t *s, sgwc_event_t *e)
case SGWC_EVT_SXA_MESSAGE:
message = e->pfcp_message;
ogs_assert(message);
- xact = e->pfcp_xact;
+ xact = ogs_pfcp_xact_find_by_id(e->pfcp_xact_id);
ogs_assert(xact);
switch (message->h.type) {
@@ -159,13 +148,10 @@ void sgwc_pfcp_state_will_associate(ogs_fsm_t *s, sgwc_event_t *e)
void sgwc_pfcp_state_associated(ogs_fsm_t *s, sgwc_event_t *e)
{
- char buf[OGS_ADDRSTRLEN];
-
ogs_pfcp_node_t *node = NULL;
ogs_pfcp_xact_t *xact = NULL;
ogs_pfcp_message_t *message = NULL;
- ogs_sockaddr_t *addr = NULL;
sgwc_sess_t *sess = NULL;
ogs_assert(s);
@@ -175,14 +161,11 @@ void sgwc_pfcp_state_associated(ogs_fsm_t *s, sgwc_event_t *e)
node = e->pfcp_node;
ogs_assert(node);
- addr = node->sa_list;
- ogs_assert(addr);
switch (e->id) {
case OGS_FSM_ENTRY_SIG:
- ogs_info("PFCP associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_info("PFCP associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_timer_start(node->t_no_heartbeat,
ogs_local_conf()->time.message.pfcp.no_heartbeat_duration);
ogs_assert(OGS_OK ==
@@ -195,15 +178,14 @@ void sgwc_pfcp_state_associated(ogs_fsm_t *s, sgwc_event_t *e)
}
break;
case OGS_FSM_EXIT_SIG:
- ogs_info("PFCP de-associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_info("PFCP de-associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_timer_stop(node->t_no_heartbeat);
break;
case SGWC_EVT_SXA_MESSAGE:
message = e->pfcp_message;
ogs_assert(message);
- xact = e->pfcp_xact;
+ xact = ogs_pfcp_xact_find_by_id(e->pfcp_xact_id);
ogs_assert(xact);
if (message->h.seid_presence && message->h.seid != 0) {
@@ -274,16 +256,14 @@ void sgwc_pfcp_state_associated(ogs_fsm_t *s, sgwc_event_t *e)
}
break;
case OGS_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE:
- ogs_warn("PFCP[REQ] has already been associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_warn("PFCP[REQ] has already been associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_pfcp_cp_handle_association_setup_request(node, xact,
&message->pfcp_association_setup_request);
break;
case OGS_PFCP_ASSOCIATION_SETUP_RESPONSE_TYPE:
- ogs_warn("PFCP[RSP] has already been associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_warn("PFCP[RSP] has already been associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_pfcp_cp_handle_association_setup_response(node, xact,
&message->pfcp_association_setup_response);
break;
@@ -302,6 +282,9 @@ void sgwc_pfcp_state_associated(ogs_fsm_t *s, sgwc_event_t *e)
}
up_f_seid = rsp->up_f_seid.data;
ogs_assert(up_f_seid);
+ /* Clang scan-build SA: NULL pointer dereference: sess=NULL if both message->h.seid=0 and
+ * xact->local_seid=0. */
+ ogs_assert(sess);
sess->sgwu_sxa_seid = be64toh(up_f_seid->seid);
} else {
sgwc_sxa_handle_session_establishment_response(
@@ -356,12 +339,8 @@ void sgwc_pfcp_state_associated(ogs_fsm_t *s, sgwc_event_t *e)
}
break;
case SGWC_EVT_SXA_NO_HEARTBEAT:
-
- /* 'node' context was removed in ogs_pfcp_xact_delete(xact)
- * So, we should not use PFCP node here */
-
- ogs_warn("No Heartbeat from SGW-U [%s]:%d",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
+ ogs_warn("No Heartbeat from SGW-U %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
OGS_FSM_TRAN(s, sgwc_pfcp_state_will_associate);
break;
default:
@@ -404,7 +383,7 @@ static void pfcp_restoration(ogs_pfcp_node_t *node)
sgwc_ue->imsi_bcd, sess->session.name);
ogs_assert(OGS_OK ==
sgwc_pfcp_send_session_establishment_request(
- sess, NULL, NULL,
+ sess, OGS_INVALID_POOL_ID, NULL,
OGS_PFCP_CREATE_RESTORATION_INDICATION));
}
}
diff --git a/src/sgwc/s11-build.c b/src/sgwc/s11-build.c
index f16a79b3d2..e4624a116d 100644
--- a/src/sgwc/s11-build.c
+++ b/src/sgwc/s11-build.c
@@ -44,7 +44,7 @@ ogs_pkbuf_t *sgwc_s11_build_create_session_response(
ogs_debug("[SGWC] Create Session Response");
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
ogs_debug(" SGW_S5C_TEID[0x%x] PGW_S5C_TEID[0x%x]",
@@ -141,7 +141,7 @@ ogs_pkbuf_t *sgwc_s11_build_downlink_data_notification(
sgwc_sess_t *sess = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
/* Build downlink notification message */
diff --git a/src/sgwc/s11-handler.c b/src/sgwc/s11-handler.c
index f6fe9c319c..e10de621bc 100644
--- a/src/sgwc/s11-handler.c
+++ b/src/sgwc/s11-handler.c
@@ -24,27 +24,33 @@
static void gtp_sess_timeout(ogs_gtp_xact_t *xact, void *data)
{
- sgwc_sess_t *sess = data;
+ sgwc_sess_t *sess = NULL;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
sgwc_ue_t *sgwc_ue = NULL;
uint8_t type = 0;
ogs_assert(xact);
- ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
- ogs_assert(sgwc_ue);
-
type = xact->seq[0].type;
+ ogs_assert(data);
+ sess_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID && sess_id <= OGS_MAX_POOL_ID);
+
+ sess = sgwc_sess_find_by_id(sess_id);
+ if (!sess) {
+ ogs_error("Session has already been removed [%d]", type);
+ return;
+ }
+
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
+ ogs_assert(sgwc_ue);
+
switch (type) {
case OGS_GTP2_DELETE_SESSION_REQUEST_TYPE:
ogs_error("[%s] No Delete Session Response", sgwc_ue->imsi_bcd);
- if (!sgwc_sess_cycle(sess)) {
- ogs_error("[%s] Session has already been removed",
- sgwc_ue->imsi_bcd);
- break;
- }
ogs_assert(OGS_OK ==
- sgwc_pfcp_send_session_deletion_request(sess, NULL, NULL));
+ sgwc_pfcp_send_session_deletion_request(
+ sess, OGS_INVALID_POOL_ID, NULL));
break;
default:
ogs_error("GTP Timeout : IMSI[%s] Message-Type[%d]",
@@ -54,31 +60,53 @@ static void gtp_sess_timeout(ogs_gtp_xact_t *xact, void *data)
static void gtp_bearer_timeout(ogs_gtp_xact_t *xact, void *data)
{
- sgwc_bearer_t *bearer = data;
+ sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
sgwc_sess_t *sess = NULL;
sgwc_ue_t *sgwc_ue = NULL;
uint8_t type = 0;
ogs_assert(xact);
- ogs_assert(bearer);
- sess = bearer->sess;
+ type = xact->seq[0].type;
+
+ ogs_assert(data);
+ bearer_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID && bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("Bearer has already been removed [%d]", type);
+ return;
+ }
+
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
- type = xact->seq[0].type;
-
ogs_error("GTP Timeout : IMSI[%s] Message-Type[%d]",
sgwc_ue->imsi_bcd, type);
}
static void pfcp_sess_timeout(ogs_pfcp_xact_t *xact, void *data)
{
+ sgwc_sess_t *sess = NULL;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
uint8_t type;
ogs_assert(xact);
type = xact->seq[0].type;
+ ogs_assert(data);
+ sess_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID && sess_id <= OGS_MAX_POOL_ID);
+
+ sess = sgwc_sess_find_by_id(sess_id);
+ if (!sess) {
+ ogs_error("Session has already been removed [%d]", type);
+ return;
+ }
+
switch (type) {
case OGS_PFCP_SESSION_ESTABLISHMENT_REQUEST_TYPE:
ogs_error("No PFCP session establishment response");
@@ -203,6 +231,12 @@ void sgwc_s11_handle_create_session_request(
if (req->access_point_name.presence == 0) {
ogs_error("No APN");
cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING;
+ } else {
+ if (ogs_fqdn_parse(apn, req->access_point_name.data,
+ ogs_min(req->access_point_name.len, OGS_MAX_APN_LEN)) <= 0) {
+ ogs_error("Invalid APN");
+ cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT;
+ }
}
if (req->sender_f_teid_for_control_plane.presence == 0) {
ogs_error("No Sender F-TEID");
@@ -221,9 +255,6 @@ void sgwc_s11_handle_create_session_request(
}
/* Add Session */
- ogs_assert(0 < ogs_fqdn_parse(apn,
- req->access_point_name.data,
- ogs_min(req->access_point_name.len, OGS_MAX_APN_LEN)));
sess = sgwc_sess_find_by_ebi(sgwc_ue,
req->bearer_contexts_to_be_created[0].eps_bearer_id.u8);
if (sess) {
@@ -239,21 +270,22 @@ void sgwc_s11_handle_create_session_request(
/* Set User Location Information */
if (req->user_location_information.presence == 1) {
decoded = ogs_gtp2_parse_uli(&uli, &req->user_location_information);
- ogs_assert(req->user_location_information.len == decoded);
-
- sgwc_ue->uli_presence = true;
+ if (req->user_location_information.len == decoded) {
+ sgwc_ue->uli_presence = true;
- ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id);
- sgwc_ue->e_tai.tac = uli.tai.tac;
- ogs_nas_to_plmn_id(&sgwc_ue->e_cgi.plmn_id, &uli.e_cgi.nas_plmn_id);
- sgwc_ue->e_cgi.cell_id = uli.e_cgi.cell_id;
+ ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id);
+ sgwc_ue->e_tai.tac = uli.tai.tac;
+ ogs_nas_to_plmn_id(&sgwc_ue->e_cgi.plmn_id, &uli.e_cgi.nas_plmn_id);
+ sgwc_ue->e_cgi.cell_id = uli.e_cgi.cell_id;
- ogs_debug(" TAI[PLMN_ID:%06x,TAC:%d]",
- ogs_plmn_id_hexdump(&sgwc_ue->e_tai.plmn_id),
- sgwc_ue->e_tai.tac);
- ogs_debug(" E_CGI[PLMN_ID:%06x,CELL_ID:0x%x]",
- ogs_plmn_id_hexdump(&sgwc_ue->e_cgi.plmn_id),
- sgwc_ue->e_cgi.cell_id);
+ ogs_debug(" TAI[PLMN_ID:%06x,TAC:%d]",
+ ogs_plmn_id_hexdump(&sgwc_ue->e_tai.plmn_id),
+ sgwc_ue->e_tai.tac);
+ ogs_debug(" E_CGI[PLMN_ID:%06x,CELL_ID:0x%x]",
+ ogs_plmn_id_hexdump(&sgwc_ue->e_cgi.plmn_id),
+ sgwc_ue->e_cgi.cell_id);
+ } else
+ ogs_error("Invalid User Location Info(ULI)");
}
/* Select SGW-U based on UE Location Information */
@@ -379,7 +411,7 @@ void sgwc_s11_handle_create_session_request(
ogs_assert(OGS_OK ==
sgwc_pfcp_send_session_establishment_request(
- sess, s11_xact, gtpbuf, 0));
+ sess, s11_xact->id, gtpbuf, 0));
}
void sgwc_s11_handle_modify_bearer_request(
@@ -396,6 +428,7 @@ void sgwc_s11_handle_modify_bearer_request(
sgwc_sess_t *sess = NULL;
sgwc_bearer_t *bearer = NULL;
sgwc_tunnel_t *dl_tunnel = NULL;
+ ogs_pfcp_pdr_t *pdr = NULL;
ogs_pfcp_far_t *far = NULL;
ogs_ip_t remote_ip;
ogs_ip_t zero_ip;
@@ -461,24 +494,32 @@ void sgwc_s11_handle_modify_bearer_request(
break;
}
- sess = bearer->sess;
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
ogs_list_for_each_entry(&pfcp_xact_list, pfcp_xact, tmpnode) {
- if (sess == pfcp_xact->data) {
- current_xact = pfcp_xact;
- break;
+ if (pfcp_xact->modify_flags & OGS_PFCP_MODIFY_SESSION) {
+ ogs_pool_id_t sess_id = OGS_POINTER_TO_UINT(pfcp_xact->data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
+ sess_id <= OGS_MAX_POOL_ID);
+ if (sess->id == sess_id) {
+ current_xact = pfcp_xact;
+ break;
+ }
}
}
if (!current_xact) {
current_xact = ogs_pfcp_xact_local_create(
- sess->pfcp_node, pfcp_sess_timeout, sess);
+ sess->pfcp_node, pfcp_sess_timeout,
+ OGS_UINT_TO_POINTER(sess->id));
ogs_assert(current_xact);
- current_xact->assoc_xact = s11_xact;
- current_xact->modify_flags = OGS_PFCP_MODIFY_SESSION|
- OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_ACTIVATE;
+ current_xact->assoc_xact_id = s11_xact->id;
+ current_xact->modify_flags =
+ OGS_PFCP_MODIFY_SESSION|OGS_PFCP_MODIFY_DL_ONLY|
+ OGS_PFCP_MODIFY_OUTER_HEADER_REMOVAL|
+ OGS_PFCP_MODIFY_ACTIVATE;
if (gtpbuf) {
current_xact->gtpbuf = ogs_pkbuf_copy(gtpbuf);
ogs_assert(current_xact->gtpbuf);
@@ -515,6 +556,24 @@ void sgwc_s11_handle_modify_bearer_request(
memcpy(&dl_tunnel->remote_ip, &remote_ip, sizeof(ogs_ip_t));
+ pdr = dl_tunnel->pdr;
+ ogs_assert(pdr);
+
+ pdr->outer_header_removal_len = 1;
+ if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV4;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV6;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
+ ogs_assert_if_reached();
+ }
+
far = dl_tunnel->far;
ogs_assert(far);
@@ -539,21 +598,22 @@ void sgwc_s11_handle_modify_bearer_request(
if (req->user_location_information.presence == 1) {
decoded = ogs_gtp2_parse_uli(&uli, &req->user_location_information);
- ogs_assert(req->user_location_information.len == decoded);
-
- sgwc_ue->uli_presence = true;
+ if (req->user_location_information.len == decoded) {
+ sgwc_ue->uli_presence = true;
- ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id);
- sgwc_ue->e_tai.tac = uli.tai.tac;
- ogs_nas_to_plmn_id(&sgwc_ue->e_cgi.plmn_id, &uli.e_cgi.nas_plmn_id);
- sgwc_ue->e_cgi.cell_id = uli.e_cgi.cell_id;
+ ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id);
+ sgwc_ue->e_tai.tac = uli.tai.tac;
+ ogs_nas_to_plmn_id(&sgwc_ue->e_cgi.plmn_id, &uli.e_cgi.nas_plmn_id);
+ sgwc_ue->e_cgi.cell_id = uli.e_cgi.cell_id;
- ogs_debug(" TAI[PLMN_ID:%06x,TAC:%d]",
- ogs_plmn_id_hexdump(&sgwc_ue->e_tai.plmn_id),
- sgwc_ue->e_tai.tac);
- ogs_debug(" E_CGI[PLMN_ID:%06x,CELL_ID:0x%x]",
- ogs_plmn_id_hexdump(&sgwc_ue->e_cgi.plmn_id),
- sgwc_ue->e_cgi.cell_id);
+ ogs_debug(" TAI[PLMN_ID:%06x,TAC:%d]",
+ ogs_plmn_id_hexdump(&sgwc_ue->e_tai.plmn_id),
+ sgwc_ue->e_tai.tac);
+ ogs_debug(" E_CGI[PLMN_ID:%06x,CELL_ID:0x%x]",
+ ogs_plmn_id_hexdump(&sgwc_ue->e_cgi.plmn_id),
+ sgwc_ue->e_cgi.cell_id);
+ } else
+ ogs_error("Invalid User Location Info(ULI)");
}
ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
@@ -561,8 +621,20 @@ void sgwc_s11_handle_modify_bearer_request(
ogs_debug(" ENB_S1U_TEID[%d] SGW_S1U_TEID[%d]",
dl_tunnel->remote_teid, dl_tunnel->local_teid);
- ogs_list_for_each_entry(&pfcp_xact_list, pfcp_xact, tmpnode)
- sgwc_pfcp_send_bearer_to_modify_list(pfcp_xact->data, pfcp_xact);
+ ogs_list_for_each_entry(&pfcp_xact_list, pfcp_xact, tmpnode) {
+ if (pfcp_xact->modify_flags & OGS_PFCP_MODIFY_SESSION) {
+ sgwc_sess_t *sess = NULL;
+
+ ogs_pool_id_t sess_id = OGS_POINTER_TO_UINT(pfcp_xact->data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
+ sess_id <= OGS_MAX_POOL_ID);
+
+ sess = sgwc_sess_find_by_id(sess_id);
+ ogs_assert(sess);
+
+ sgwc_pfcp_send_bearer_to_modify_list(sess, pfcp_xact);
+ }
+ }
}
void sgwc_s11_handle_delete_session_request(
@@ -652,7 +724,8 @@ void sgwc_s11_handle_delete_session_request(
indication->scope_indication == 1) {
ogs_assert(OGS_OK ==
- sgwc_pfcp_send_session_deletion_request(sess, s11_xact, gtpbuf));
+ sgwc_pfcp_send_session_deletion_request(
+ sess, s11_xact->id, gtpbuf));
} else {
message->h.type = OGS_GTP2_DELETE_SESSION_REQUEST_TYPE;
@@ -665,7 +738,8 @@ void sgwc_s11_handle_delete_session_request(
}
s5c_xact = ogs_gtp_xact_local_create(
- sess->gnode, &message->h, gtpbuf, gtp_sess_timeout, sess);
+ sess->gnode, &message->h, gtpbuf, gtp_sess_timeout,
+ OGS_UINT_TO_POINTER(sess->id));
if (!s5c_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
@@ -690,7 +764,9 @@ void sgwc_s11_handle_create_bearer_response(
sgwc_sess_t *sess = NULL;
sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
sgwc_tunnel_t *dl_tunnel = NULL, *ul_tunnel = NULL;
+ ogs_pfcp_pdr_t *pdr = NULL;
ogs_pfcp_far_t *far = NULL;
ogs_gtp_xact_t *s5c_xact = NULL;
@@ -710,18 +786,35 @@ void sgwc_s11_handle_create_bearer_response(
* Check Transaction
********************/
ogs_assert(s11_xact);
- s5c_xact = s11_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(s11_xact->assoc_xact_id);
ogs_assert(s5c_xact);
- if (s11_xact->xid & OGS_GTP_CMD_XACT_ID)
+ if (s11_xact->xid & OGS_GTP_CMD_XACT_ID) {
/* MME received Bearer Resource Modification Request */
- bearer = s5c_xact->data;
- else
- bearer = s11_xact->data;
+ ogs_assert(s5c_xact->data);
+ bearer_id = OGS_POINTER_TO_UINT(s5c_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer)
+ ogs_error("No Bearer ID [%d]", bearer_id);
+ } else {
+ ogs_assert(s11_xact->data);
+ bearer_id = OGS_POINTER_TO_UINT(s11_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
- ogs_assert(bearer);
- sess = bearer->sess;
- ogs_assert(sess);
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer)
+ ogs_error("No Bearer ID [%d]", bearer_id);
+ }
+
+ if (bearer) {
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
+ if (!sess)
+ ogs_error("No Session ID [%d]", bearer->sess_id);
+ }
rv = ogs_gtp_xact_commit(s11_xact);
ogs_expect(rv == OGS_OK);
@@ -757,11 +850,22 @@ void sgwc_s11_handle_create_bearer_response(
cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING;
}
+ if (!bearer) {
+ ogs_error("No Bearer Context");
+ cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
+ }
+ if (!sess) {
+ ogs_error("No Session Context");
+ cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
+ }
+
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- ogs_assert(OGS_OK ==
- sgwc_pfcp_send_bearer_modification_request(
- bearer, NULL, NULL,
- OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_REMOVE));
+ if (bearer) {
+ ogs_assert(OGS_OK ==
+ sgwc_pfcp_send_bearer_modification_request(
+ bearer, OGS_INVALID_POOL_ID, NULL,
+ OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_REMOVE));
+ }
ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
return;
@@ -779,7 +883,7 @@ void sgwc_s11_handle_create_bearer_response(
ogs_error("GTP Cause [Value:%d]", cause_value);
ogs_assert(OGS_OK ==
sgwc_pfcp_send_bearer_modification_request(
- bearer, NULL, NULL,
+ bearer, OGS_INVALID_POOL_ID, NULL,
OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_REMOVE));
ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
@@ -799,9 +903,23 @@ void sgwc_s11_handle_create_bearer_response(
/* Find the Tunnel by SGW-S1U-TEID */
ul_tunnel = sgwc_tunnel_find_by_teid(sgwc_ue, be32toh(sgw_s1u_teid->teid));
- ogs_assert(ul_tunnel);
+ if (!ul_tunnel) {
+ ogs_error("No UL-tunnel [EBI:%d, TEID:0x%x]",
+ bearer->ebi, be32toh(sgw_s1u_teid->teid));
+ ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
+ OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE,
+ OGS_GTP2_CAUSE_GRE_KEY_NOT_FOUND);
+ return;
+ }
dl_tunnel = sgwc_dl_tunnel_in_bearer(bearer);
- ogs_assert(dl_tunnel);
+ if (!dl_tunnel) {
+ ogs_error("No DL-tunnel [EBI:%d, TEID:0x%x]",
+ bearer->ebi, be32toh(sgw_s1u_teid->teid));
+ ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
+ OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE,
+ OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND);
+ return;
+ }
/* Set EBI */
bearer->ebi = rsp->bearer_contexts.eps_bearer_id.u8;
@@ -816,6 +934,25 @@ void sgwc_s11_handle_create_bearer_response(
ogs_assert(OGS_OK ==
ogs_gtp2_f_teid_to_ip(enb_s1u_teid, &dl_tunnel->remote_ip));
+ pdr = dl_tunnel->pdr;
+ ogs_assert(pdr);
+
+ pdr->outer_header_removal_len = 1;
+ if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV4;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV6;
+ } else if (sess->session.session_type ==
+ OGS_PDU_SESSION_TYPE_IPV4V6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
+ ogs_assert_if_reached();
+ }
+
far = dl_tunnel->far;
ogs_assert(far);
@@ -828,26 +965,27 @@ void sgwc_s11_handle_create_bearer_response(
if (rsp->user_location_information.presence == 1) {
decoded = ogs_gtp2_parse_uli(&uli, &rsp->user_location_information);
- ogs_assert(rsp->user_location_information.len == decoded);
-
- sgwc_ue->uli_presence = true;
+ if (rsp->user_location_information.len == decoded) {
+ sgwc_ue->uli_presence = true;
- ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id);
- sgwc_ue->e_tai.tac = uli.tai.tac;
- ogs_nas_to_plmn_id(&sgwc_ue->e_cgi.plmn_id, &uli.e_cgi.nas_plmn_id);
- sgwc_ue->e_cgi.cell_id = uli.e_cgi.cell_id;
+ ogs_nas_to_plmn_id(&sgwc_ue->e_tai.plmn_id, &uli.tai.nas_plmn_id);
+ sgwc_ue->e_tai.tac = uli.tai.tac;
+ ogs_nas_to_plmn_id(&sgwc_ue->e_cgi.plmn_id, &uli.e_cgi.nas_plmn_id);
+ sgwc_ue->e_cgi.cell_id = uli.e_cgi.cell_id;
- ogs_debug(" TAI[PLMN_ID:%06x,TAC:%d]",
- ogs_plmn_id_hexdump(&sgwc_ue->e_tai.plmn_id),
- sgwc_ue->e_tai.tac);
- ogs_debug(" E_CGI[PLMN_ID:%06x,CELL_ID:0x%x]",
- ogs_plmn_id_hexdump(&sgwc_ue->e_cgi.plmn_id),
- sgwc_ue->e_cgi.cell_id);
+ ogs_debug(" TAI[PLMN_ID:%06x,TAC:%d]",
+ ogs_plmn_id_hexdump(&sgwc_ue->e_tai.plmn_id),
+ sgwc_ue->e_tai.tac);
+ ogs_debug(" E_CGI[PLMN_ID:%06x,CELL_ID:0x%x]",
+ ogs_plmn_id_hexdump(&sgwc_ue->e_cgi.plmn_id),
+ sgwc_ue->e_cgi.cell_id);
+ } else
+ ogs_error("Invalid User Location Info(ULI)");
}
ogs_assert(OGS_OK ==
sgwc_pfcp_send_bearer_modification_request(
- bearer, s5c_xact, gtpbuf,
+ bearer, s5c_xact->id, gtpbuf,
OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_CREATE));
}
@@ -862,6 +1000,7 @@ void sgwc_s11_handle_update_bearer_response(
ogs_gtp_xact_t *s5c_xact = NULL;
sgwc_sess_t *sess = NULL;
sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
ogs_gtp2_update_bearer_response_t *rsp = NULL;
ogs_assert(sgwc_ue);
@@ -875,17 +1014,29 @@ void sgwc_s11_handle_update_bearer_response(
* Check Transaction
********************/
ogs_assert(s11_xact);
- s5c_xact = s11_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(s11_xact->assoc_xact_id);
ogs_assert(s5c_xact);
- if (s11_xact->xid & OGS_GTP_CMD_XACT_ID)
+ if (s11_xact->xid & OGS_GTP_CMD_XACT_ID) {
/* MME received Bearer Resource Modification Request */
- bearer = s5c_xact->data;
- else
- bearer = s11_xact->data;
+ ogs_assert(s5c_xact->data);
+ bearer_id = OGS_POINTER_TO_UINT(s5c_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
- ogs_assert(bearer);
- sess = bearer->sess;
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ ogs_assert(bearer);
+ } else {
+ ogs_assert(s11_xact->data);
+ bearer_id = OGS_POINTER_TO_UINT(s11_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ ogs_assert(bearer);
+ }
+
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
rv = ogs_gtp_xact_commit(s11_xact);
@@ -985,6 +1136,7 @@ void sgwc_s11_handle_delete_bearer_response(
sgwc_sess_t *sess = NULL;
sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
ogs_gtp2_delete_bearer_response_t *rsp = NULL;
ogs_assert(sgwc_ue);
@@ -998,17 +1150,29 @@ void sgwc_s11_handle_delete_bearer_response(
* Check Transaction
********************/
ogs_assert(s11_xact);
- s5c_xact = s11_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(s11_xact->assoc_xact_id);
ogs_assert(s5c_xact);
- if (s11_xact->xid & OGS_GTP_CMD_XACT_ID)
+ if (s11_xact->xid & OGS_GTP_CMD_XACT_ID) {
/* MME received Bearer Resource Modification Request */
- bearer = s5c_xact->data;
- else
- bearer = s11_xact->data;
+ ogs_assert(s5c_xact->data);
+ bearer_id = OGS_POINTER_TO_UINT(s5c_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
- ogs_assert(bearer);
- sess = bearer->sess;
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ ogs_assert(bearer);
+ } else {
+ ogs_assert(s11_xact->data);
+ bearer_id = OGS_POINTER_TO_UINT(s11_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ ogs_assert(bearer);
+ }
+
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
rv = ogs_gtp_xact_commit(s11_xact);
@@ -1045,7 +1209,8 @@ void sgwc_s11_handle_delete_bearer_response(
}
ogs_assert(OGS_OK ==
- sgwc_pfcp_send_session_deletion_request(sess, s5c_xact, gtpbuf));
+ sgwc_pfcp_send_session_deletion_request(
+ sess, s5c_xact->id, gtpbuf));
} else {
/*
* << EPS Bearer IDs >>
@@ -1097,7 +1262,7 @@ void sgwc_s11_handle_delete_bearer_response(
ogs_assert(OGS_OK ==
sgwc_pfcp_send_bearer_modification_request(
- bearer, s5c_xact, gtpbuf, OGS_PFCP_MODIFY_REMOVE));
+ bearer, s5c_xact->id, gtpbuf, OGS_PFCP_MODIFY_REMOVE));
}
}
@@ -1146,7 +1311,7 @@ void sgwc_s11_handle_release_access_bearers_request(
ogs_assert(OGS_OK ==
sgwc_pfcp_send_session_modification_request(
- sess, s11_xact, gtpbuf,
+ sess, s11_xact->id, gtpbuf,
OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE));
}
}
@@ -1159,6 +1324,7 @@ void sgwc_s11_handle_downlink_data_notification_ack(
uint8_t cause_value;
sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
sgwc_sess_t *sess = NULL;
ogs_gtp2_downlink_data_notification_acknowledge_t *ack = NULL;
@@ -1171,9 +1337,14 @@ void sgwc_s11_handle_downlink_data_notification_ack(
* Check Transaction
********************/
ogs_assert(s11_xact);
- bearer = s11_xact->data;
+ ogs_assert(s11_xact->data);
+ bearer_id = OGS_POINTER_TO_UINT(s11_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
rv = ogs_gtp_xact_commit(s11_xact);
@@ -1195,7 +1366,7 @@ void sgwc_s11_handle_downlink_data_notification_ack(
ogs_error("No Cause");
}
- ogs_debug("Downlink Data Notification Acknowledge");
+ ogs_debug("Downlink Data Notification Acknowledge [%d]", bearer->id);
if (sgwc_ue) {
ogs_debug(" MME_S11_TEID[%d] SGW_S11_TEID[%d]",
sgwc_ue->mme_s11_teid, sgwc_ue->sgw_s11_teid);
@@ -1211,6 +1382,7 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request(
sgwc_sess_t *sess = NULL;
sgwc_bearer_t *bearer = NULL;
sgwc_tunnel_t *tunnel = NULL;
+ ogs_pfcp_pdr_t *pdr = NULL;
ogs_pfcp_far_t *far = NULL;
ogs_gtp2_create_indirect_data_forwarding_tunnel_request_t *req = NULL;
@@ -1263,6 +1435,8 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request(
bearer = sgwc_bearer_find_by_ue_ebi(sgwc_ue,
req->bearer_contexts[i].eps_bearer_id.u8);
ogs_assert(bearer);
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
if (req->bearer_contexts[i].s1_u_enodeb_f_teid.presence) {
req_teid = req->bearer_contexts[i].s1_u_enodeb_f_teid.data;
@@ -1283,6 +1457,26 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request(
return;
}
+ pdr = tunnel->pdr;
+ ogs_assert(pdr);
+
+ pdr->outer_header_removal_len = 1;
+ if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV4;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV6;
+ } else if (sess->session.session_type ==
+ OGS_PDU_SESSION_TYPE_IPV4V6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
+ } else {
+ ogs_error("Invalid session_type [%d]",
+ sess->session.session_type);
+ ogs_assert_if_reached();
+ }
+
far = tunnel->far;
ogs_assert(far);
@@ -1318,6 +1512,26 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request(
return;
}
+ pdr = tunnel->pdr;
+ ogs_assert(pdr);
+
+ pdr->outer_header_removal_len = 1;
+ if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV4;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV6;
+ } else if (sess->session.session_type ==
+ OGS_PDU_SESSION_TYPE_IPV4V6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
+ } else {
+ ogs_error("Invalid session_type [%d]",
+ sess->session.session_type);
+ ogs_assert_if_reached();
+ }
+
far = tunnel->far;
ogs_assert(far);
@@ -1339,7 +1553,7 @@ void sgwc_s11_handle_create_indirect_data_forwarding_tunnel_request(
ogs_assert(OGS_OK ==
sgwc_pfcp_send_session_modification_request(
- sess, s11_xact, gtpbuf,
+ sess, s11_xact->id, gtpbuf,
OGS_PFCP_MODIFY_INDIRECT|OGS_PFCP_MODIFY_CREATE));
}
}
@@ -1385,7 +1599,7 @@ void sgwc_s11_handle_delete_indirect_data_forwarding_tunnel_request(
ogs_assert(OGS_OK ==
sgwc_pfcp_send_session_modification_request(
- sess, s11_xact, gtpbuf,
+ sess, s11_xact->id, gtpbuf,
OGS_PFCP_MODIFY_INDIRECT| OGS_PFCP_MODIFY_REMOVE));
}
}
@@ -1472,7 +1686,7 @@ void sgwc_s11_handle_bearer_resource_command(
* Check ALL Context
********************/
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
ogs_assert(sess->gnode);
ogs_assert(sgwc_ue);
@@ -1492,7 +1706,8 @@ void sgwc_s11_handle_bearer_resource_command(
}
s5c_xact = ogs_gtp_xact_local_create(
- sess->gnode, &message->h, pkbuf, gtp_bearer_timeout, bearer);
+ sess->gnode, &message->h, pkbuf, gtp_bearer_timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
if (!s5c_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
diff --git a/src/sgwc/s5c-handler.c b/src/sgwc/s5c-handler.c
index 377a7d5e22..8fa74ff2d0 100644
--- a/src/sgwc/s5c-handler.c
+++ b/src/sgwc/s5c-handler.c
@@ -24,34 +24,39 @@
static void bearer_timeout(ogs_gtp_xact_t *xact, void *data)
{
- sgwc_bearer_t *bearer = data;
+ sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
sgwc_sess_t *sess = NULL;
sgwc_ue_t *sgwc_ue = NULL;
uint8_t type = 0;
ogs_assert(xact);
- ogs_assert(bearer);
- sess = bearer->sess;
+ type = xact->seq[0].type;
+
+ ogs_assert(data);
+ bearer_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID && bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("Bearer has already been removed [%d]", type);
+ return;
+ }
+
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
- type = xact->seq[0].type;
-
switch (type) {
case OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE:
ogs_error("[%s] No Update Bearer Response", sgwc_ue->imsi_bcd);
break;
case OGS_GTP2_DELETE_BEARER_REQUEST_TYPE:
ogs_error("[%s] No Delete Bearer Response", sgwc_ue->imsi_bcd);
- if (!sgwc_bearer_cycle(bearer)) {
- ogs_error("[%s] Bearer has already been removed",
- sgwc_ue->imsi_bcd);
- break;
- }
ogs_assert(OGS_OK ==
sgwc_pfcp_send_bearer_modification_request(
- bearer, NULL, NULL, OGS_PFCP_MODIFY_REMOVE));
+ bearer, OGS_INVALID_POOL_ID, NULL, OGS_PFCP_MODIFY_REMOVE));
break;
default:
ogs_error("GTP Timeout : IMSI[%s] Message-Type[%d]",
@@ -71,6 +76,7 @@ void sgwc_s5c_handle_create_session_response(
sgwc_ue_t *sgwc_ue = NULL;
sgwc_bearer_t *bearer = NULL;
sgwc_tunnel_t *ul_tunnel = NULL;
+ ogs_pfcp_pdr_t *pdr = NULL;
ogs_pfcp_far_t *far = NULL;
ogs_gtp2_f_teid_t *pgw_s5c_teid = NULL;
@@ -91,7 +97,7 @@ void sgwc_s5c_handle_create_session_response(
* Check Transaction
********************/
ogs_assert(s5c_xact);
- s11_xact = s5c_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(s5c_xact->assoc_xact_id);
ogs_assert(s11_xact);
rv = ogs_gtp_xact_commit(s5c_xact);
@@ -117,7 +123,7 @@ void sgwc_s5c_handle_create_session_response(
ogs_error("No Context in TEID [Cause:%d]", session_cause);
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
}
@@ -137,21 +143,20 @@ void sgwc_s5c_handle_create_session_response(
ogs_error("No GTP TEID [Cause:%d]", session_cause);
cause_value = OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING;
}
- if (rsp->pdn_address_allocation.presence) {
- ogs_paa_t paa;
-
- memcpy(&paa, rsp->pdn_address_allocation.data,
- ogs_min(sizeof(paa), rsp->pdn_address_allocation.len));
-
- if (!OGS_PDU_SESSION_TYPE_IS_VALID(paa.session_type)) {
- ogs_error("Unknown PDN Type %u, Cause:%d",
- paa.session_type, session_cause);
- cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_INCORRECT;
- }
-
- } else {
+ if (rsp->pdn_address_allocation.presence == 0) {
ogs_error("No PDN Address Allocation [Cause:%d]", session_cause);
cause_value = OGS_GTP2_CAUSE_CONDITIONAL_IE_MISSING;
+ } else {
+ memcpy(&sess->paa, rsp->pdn_address_allocation.data,
+ rsp->pdn_address_allocation.len);
+ sess->session.session_type = sess->paa.session_type;
+ if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
+ } else {
+ ogs_error("Unknown session-type [%d]", sess->session.session_type);
+ cause_value = OGS_GTP2_CAUSE_PREFERRED_PDN_TYPE_NOT_SUPPORTED;
+ }
}
if (rsp->cause.presence == 0) {
@@ -260,6 +265,24 @@ void sgwc_s5c_handle_create_session_response(
return;
}
+ pdr = ul_tunnel->pdr;
+ ogs_assert(pdr);
+
+ pdr->outer_header_removal_len = 1;
+ if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV4;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV6;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
+ ogs_assert_if_reached();
+ }
+
far = ul_tunnel->far;
ogs_assert(far);
@@ -292,8 +315,10 @@ void sgwc_s5c_handle_create_session_response(
ogs_assert(OGS_OK ==
sgwc_pfcp_send_session_modification_request(
- sess, s11_xact, gtpbuf,
- OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_ACTIVATE));
+ sess, s11_xact->id, gtpbuf,
+ OGS_PFCP_MODIFY_UL_ONLY|
+ OGS_PFCP_MODIFY_OUTER_HEADER_REMOVAL|
+ OGS_PFCP_MODIFY_ACTIVATE));
}
void sgwc_s5c_handle_modify_bearer_response(
@@ -321,7 +346,7 @@ void sgwc_s5c_handle_modify_bearer_response(
* Check Transaction
********************/
ogs_assert(s5c_xact);
- s11_xact = s5c_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(s5c_xact->assoc_xact_id);
ogs_assert(s11_xact);
modify_action = s5c_xact->modify_action;
@@ -348,7 +373,7 @@ void sgwc_s5c_handle_modify_bearer_response(
ogs_error("No Context in TEID [Cause:%d]", session_cause);
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
}
@@ -462,7 +487,7 @@ void sgwc_s5c_handle_delete_session_response(
* Check Transaction
********************/
ogs_assert(s5c_xact);
- s11_xact = s5c_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(s5c_xact->assoc_xact_id);
ogs_assert(s11_xact);
rv = ogs_gtp_xact_commit(s5c_xact);
@@ -488,7 +513,7 @@ void sgwc_s5c_handle_delete_session_response(
ogs_error("No Context in TEID [Cause:%d]", session_cause);
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
}
@@ -530,7 +555,7 @@ void sgwc_s5c_handle_delete_session_response(
* 2. SMF sends Delete Session Response to SGW/MME.
*/
ogs_assert(OGS_OK ==
- sgwc_pfcp_send_session_deletion_request(sess, s11_xact, gtpbuf));
+ sgwc_pfcp_send_session_deletion_request(sess, s11_xact->id, gtpbuf));
}
void sgwc_s5c_handle_create_bearer_request(
@@ -543,6 +568,7 @@ void sgwc_s5c_handle_create_bearer_request(
sgwc_ue_t *sgwc_ue = NULL;
sgwc_bearer_t *bearer = NULL;
sgwc_tunnel_t *ul_tunnel = NULL;
+ ogs_pfcp_pdr_t *pdr = NULL;
ogs_pfcp_far_t *far = NULL;
ogs_gtp2_create_bearer_request_t *req = NULL;
@@ -568,7 +594,7 @@ void sgwc_s5c_handle_create_bearer_request(
ogs_error("No Context in TEID");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
}
@@ -637,6 +663,25 @@ void sgwc_s5c_handle_create_bearer_request(
return;
}
+ pdr = ul_tunnel->pdr;
+ ogs_assert(pdr);
+
+ pdr->outer_header_removal_len = 1;
+ if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV4;
+ } else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV6;
+ } else if (sess->session.session_type ==
+ OGS_PDU_SESSION_TYPE_IPV4V6) {
+ pdr->outer_header_removal.description =
+ OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
+ ogs_assert_if_reached();
+ }
+
far = ul_tunnel->far;
ogs_assert(far);
@@ -649,7 +694,7 @@ void sgwc_s5c_handle_create_bearer_request(
ogs_assert(OGS_OK ==
sgwc_pfcp_send_bearer_modification_request(
- bearer, s5c_xact, gtpbuf,
+ bearer, s5c_xact->id, gtpbuf,
OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_CREATE));
}
@@ -685,7 +730,7 @@ void sgwc_s5c_handle_update_bearer_request(
ogs_error("No Context in TEID");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
if (req->bearer_contexts.presence == 0) {
@@ -737,10 +782,11 @@ void sgwc_s5c_handle_update_bearer_request(
return;
}
- s11_xact = s5c_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(s5c_xact->assoc_xact_id);
if (!s11_xact) {
s11_xact = ogs_gtp_xact_local_create(
- sgwc_ue->gnode, &message->h, pkbuf, bearer_timeout, bearer);
+ sgwc_ue->gnode, &message->h, pkbuf, bearer_timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
if (!s11_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
@@ -795,7 +841,7 @@ void sgwc_s5c_handle_delete_bearer_request(
ogs_error("No Context in TEID");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
if (req->linked_eps_bearer_id.presence == 0 &&
@@ -878,7 +924,7 @@ void sgwc_s5c_handle_delete_bearer_request(
return;
}
- s11_xact = s5c_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(s5c_xact->assoc_xact_id);
if (!s11_xact) {
/*
* 1. SMF sends Delete Bearer Request(DEFAULT BEARER) to SGW/MME.
@@ -895,7 +941,8 @@ void sgwc_s5c_handle_delete_bearer_request(
* 2. MME sends Delete Bearer Response(DEDICATED BEARER) to SGW/SMF.
*/
s11_xact = ogs_gtp_xact_local_create(
- sgwc_ue->gnode, &message->h, pkbuf, bearer_timeout, bearer);
+ sgwc_ue->gnode, &message->h, pkbuf, bearer_timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
if (!s11_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
@@ -941,7 +988,7 @@ void sgwc_s5c_handle_bearer_resource_failure_indication(
* Check Transaction
********************/
ogs_assert(s5c_xact);
- s11_xact = s5c_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(s5c_xact->assoc_xact_id);
ogs_assert(s11_xact);
/************************
@@ -953,7 +1000,7 @@ void sgwc_s5c_handle_bearer_resource_failure_indication(
ogs_error("No Context in TEID");
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
} else {
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
}
diff --git a/src/sgwc/sgwc-sm.c b/src/sgwc/sgwc-sm.c
index e174ccdc8c..96c7d12725 100644
--- a/src/sgwc/sgwc-sm.c
+++ b/src/sgwc/sgwc-sm.c
@@ -89,23 +89,12 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e)
ogs_assert(e);
recvbuf = e->pkbuf;
ogs_assert(recvbuf);
+ pfcp_message = e->pfcp_message;
+ ogs_assert(pfcp_message);
pfcp_node = e->pfcp_node;
ogs_assert(pfcp_node);
ogs_assert(OGS_FSM_STATE(&pfcp_node->sm));
- /*
- * Issue #1911
- *
- * Because ogs_pfcp_message_t is over 80kb in size,
- * it can cause stack overflow.
- * To avoid this, the pfcp_message structure uses heap memory.
- */
- if ((pfcp_message = ogs_pfcp_parse_msg(recvbuf)) == NULL) {
- ogs_error("ogs_pfcp_parse_msg() failed");
- ogs_pkbuf_free(recvbuf);
- break;
- }
-
rv = ogs_pfcp_xact_receive(pfcp_node, &pfcp_message->h, &pfcp_xact);
if (rv != OGS_OK) {
ogs_pkbuf_free(recvbuf);
@@ -113,8 +102,7 @@ void sgwc_state_operational(ogs_fsm_t *s, sgwc_event_t *e)
break;
}
- e->pfcp_message = pfcp_message;
- e->pfcp_xact = pfcp_xact;
+ e->pfcp_xact_id = pfcp_xact ? pfcp_xact->id : OGS_INVALID_POOL_ID;
e->gtp_message = NULL;
if (pfcp_xact->gtpbuf) {
diff --git a/src/sgwc/sxa-build.c b/src/sgwc/sxa-build.c
index 41675e3e3b..7e7998f85a 100644
--- a/src/sgwc/sxa-build.c
+++ b/src/sgwc/sxa-build.c
@@ -131,6 +131,7 @@ ogs_pkbuf_t *sgwc_sxa_build_bearer_to_modify_list(
int num_of_remove_far = 0;
int num_of_create_pdr = 0;
int num_of_create_far = 0;
+ int num_of_update_pdr = 0;
int num_of_update_far = 0;
uint64_t modify_flags = 0;
@@ -259,10 +260,25 @@ ogs_pkbuf_t *sgwc_sxa_build_bearer_to_modify_list(
ogs_assert_if_reached();
}
+
+ if (modify_flags & OGS_PFCP_MODIFY_OUTER_HEADER_REMOVAL) {
+ /* Update PDR */
+ pdr = tunnel->pdr;
+ if (pdr) {
+ ogs_pfcp_build_update_pdr(
+ &req->update_pdr[num_of_update_pdr],
+ num_of_update_pdr, pdr, modify_flags);
+ num_of_update_pdr++;
+ } else
+ ogs_assert_if_reached();
+ }
}
}
}
+ ogs_assert(num_of_remove_pdr + num_of_remove_far + num_of_create_pdr +
+ num_of_create_far + num_of_update_pdr + num_of_update_far);
+
pfcp_message->h.type = type;
pkbuf = ogs_pfcp_build_msg(pfcp_message);
ogs_expect(pkbuf);
diff --git a/src/sgwc/sxa-handler.c b/src/sgwc/sxa-handler.c
index 14fb667cbc..9fdf72e9c0 100644
--- a/src/sgwc/sxa-handler.c
+++ b/src/sgwc/sxa-handler.c
@@ -62,13 +62,25 @@ static uint8_t gtp_cause_from_pfcp(uint8_t pfcp_cause)
static void sess_timeout(ogs_gtp_xact_t *xact, void *data)
{
- sgwc_sess_t *sess = data;
+ sgwc_sess_t *sess = NULL;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
sgwc_ue_t *sgwc_ue = NULL;
uint8_t type = 0;
ogs_assert(xact);
- ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ type = xact->seq[0].type;
+
+ ogs_assert(data);
+ sess_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID && sess_id <= OGS_MAX_POOL_ID);
+
+ sess = sgwc_sess_find_by_id(sess_id);
+ if (!sess) {
+ ogs_error("Session has already been removed [%d]", type);
+ return;
+ }
+
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
type = xact->seq[0].type;
@@ -76,13 +88,9 @@ static void sess_timeout(ogs_gtp_xact_t *xact, void *data)
switch (type) {
case OGS_GTP2_CREATE_SESSION_REQUEST_TYPE:
ogs_error("[%s] No Create Session Response", sgwc_ue->imsi_bcd);
- if (!sgwc_sess_cycle(sess)) {
- ogs_warn("[%s] Session has already been removed",
- sgwc_ue->imsi_bcd);
- break;
- }
ogs_assert(OGS_OK ==
- sgwc_pfcp_send_session_deletion_request(sess, NULL, NULL));
+ sgwc_pfcp_send_session_deletion_request(
+ sess, OGS_INVALID_POOL_ID, NULL));
break;
default:
ogs_error("GTP Timeout : IMSI[%s] Message-Type[%d]",
@@ -92,30 +100,36 @@ static void sess_timeout(ogs_gtp_xact_t *xact, void *data)
static void bearer_timeout(ogs_gtp_xact_t *xact, void *data)
{
- sgwc_bearer_t *bearer = data;
+ sgwc_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
sgwc_sess_t *sess = NULL;
sgwc_ue_t *sgwc_ue = NULL;
uint8_t type = 0;
ogs_assert(xact);
- ogs_assert(bearer);
- sess = bearer->sess;
+ type = xact->seq[0].type;
+
+ ogs_assert(data);
+ bearer_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID && bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("Bearer has already been removed [%d]", type);
+ return;
+ }
+
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
- type = xact->seq[0].type;
-
switch (type) {
case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE:
ogs_error("[%s] No Create Bearer Response", sgwc_ue->imsi_bcd);
- if (!sgwc_bearer_cycle(bearer)) {
- ogs_warn("[%s] Bearer has already been removed", sgwc_ue->imsi_bcd);
- break;
- }
ogs_assert(OGS_OK ==
sgwc_pfcp_send_bearer_modification_request(
- bearer, NULL, NULL,
+ bearer, OGS_INVALID_POOL_ID, NULL,
OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_REMOVE));
break;
default:
@@ -164,7 +178,7 @@ void sgwc_sxa_handle_session_establishment_response(
create_session_request = &recv_message->create_session_request;
ogs_assert(create_session_request);
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -244,7 +258,7 @@ void sgwc_sxa_handle_session_establishment_response(
}
if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
- if (sess) sgwc_ue = sess->sgwc_ue;
+ if (sess) sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_gtp_send_error_message(
s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
@@ -383,7 +397,8 @@ void sgwc_sxa_handle_session_establishment_response(
ogs_assert(sess->gnode);
s5c_xact = ogs_gtp_xact_local_create(
- sess->gnode, &send_message.h, pkbuf, sess_timeout, sess);
+ sess->gnode, &send_message.h, pkbuf, sess_timeout,
+ OGS_UINT_TO_POINTER(sess->id));
if (!s5c_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
@@ -427,7 +442,8 @@ void sgwc_sxa_handle_session_establishment_response(
ogs_assert(sess->gnode);
s5c_xact = ogs_gtp_xact_local_create(
- sess->gnode, &recv_message->h, pkbuf, sess_timeout, sess);
+ sess->gnode, &recv_message->h, pkbuf, sess_timeout,
+ OGS_UINT_TO_POINTER(sess->id));
if (!s5c_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
@@ -475,32 +491,45 @@ void sgwc_sxa_handle_session_modification_response(
if (flags & OGS_PFCP_MODIFY_SESSION) {
if (!sess) {
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
+
ogs_error("No Context");
- sess = pfcp_xact->data;
+ sess_id = OGS_POINTER_TO_UINT(pfcp_xact->data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID &&
+ sess_id <= OGS_MAX_POOL_ID);
+
+ sess = sgwc_sess_find_by_id(sess_id);
ogs_assert(sess);
cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
}
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
} else {
- bearer = pfcp_xact->data;
- ogs_assert(bearer);
+ ogs_pool_id_t bearer_id = OGS_POINTER_TO_UINT(pfcp_xact->data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID &&
+ bearer_id <= OGS_MAX_POOL_ID);
- if (!sess) {
- ogs_error("No Context");
+ bearer = sgwc_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("No Bearer Context");
+ cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
+ } else {
+ if (!sess) {
+ ogs_error("No Context");
- sess = bearer->sess;
- ogs_assert(sess);
+ sess = sgwc_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
- cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
- }
+ cause_value = OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND;
+ }
- sgwc_ue = bearer->sgwc_ue;
- ogs_assert(sgwc_ue);
+ sgwc_ue = sgwc_ue_find_by_id(bearer->sgwc_ue_id);
+ ogs_assert(sgwc_ue);
+ }
}
if (pfcp_rsp->cause.presence) {
@@ -578,7 +607,7 @@ void sgwc_sxa_handle_session_modification_response(
* }
*/
if (flags & OGS_PFCP_MODIFY_REMOVE) {
- s5c_xact = pfcp_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
if (s5c_xact) {
ogs_gtp_send_error_message(
@@ -586,9 +615,13 @@ void sgwc_sxa_handle_session_modification_response(
OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, cause_value);
}
- sgwc_bearer_remove(bearer);
+ if (bearer)
+ sgwc_bearer_remove(bearer);
+ else
+ ogs_error("No Bearer");
+
} else if (flags & OGS_PFCP_MODIFY_CREATE) {
- s5c_xact = pfcp_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s5c_xact);
ogs_gtp_send_error_message(
@@ -598,7 +631,7 @@ void sgwc_sxa_handle_session_modification_response(
} else if (flags & OGS_PFCP_MODIFY_ACTIVATE) {
if (flags & OGS_PFCP_MODIFY_UL_ONLY) {
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_gtp_send_error_message(
@@ -606,7 +639,7 @@ void sgwc_sxa_handle_session_modification_response(
OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
} else if (flags & OGS_PFCP_MODIFY_DL_ONLY) {
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_gtp_send_error_message(
@@ -617,7 +650,7 @@ void sgwc_sxa_handle_session_modification_response(
ogs_assert_if_reached();
}
} else if (flags & OGS_PFCP_MODIFY_DEACTIVATE) {
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_gtp_send_error_message(
@@ -652,7 +685,7 @@ void sgwc_sxa_handle_session_modification_response(
*/
if (flags & OGS_PFCP_MODIFY_REMOVE) {
if (flags & OGS_PFCP_MODIFY_INDIRECT) {
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -713,7 +746,7 @@ void sgwc_sxa_handle_session_modification_response(
}
} else {
- s5c_xact = pfcp_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -746,7 +779,7 @@ void sgwc_sxa_handle_session_modification_response(
ogs_gtp2_create_bearer_request_t *gtp_req = NULL;
ogs_gtp2_f_teid_t sgw_s1u_teid;
- s5c_xact = pfcp_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s5c_xact);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -780,7 +813,8 @@ void sgwc_sxa_handle_session_modification_response(
ogs_assert(sgwc_ue->gnode);
ogs_assert(bearer);
s11_xact = ogs_gtp_xact_local_create(sgwc_ue->gnode,
- &recv_message->h, pkbuf, bearer_timeout, bearer);
+ &recv_message->h, pkbuf, bearer_timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
if (!s11_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
@@ -796,7 +830,7 @@ void sgwc_sxa_handle_session_modification_response(
ogs_gtp2_create_bearer_response_t *gtp_rsp = NULL;
ogs_gtp2_f_teid_t sgw_s5u_teid, pgw_s5u_teid;
- s5c_xact = pfcp_xact->assoc_xact;
+ s5c_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s5c_xact);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -831,6 +865,8 @@ void sgwc_sxa_handle_session_modification_response(
pgw_s5u_teid.teid = htobe32(ul_tunnel->remote_teid);
rv = ogs_gtp2_ip_to_f_teid(
&ul_tunnel->remote_ip, &pgw_s5u_teid, &len);
+ /* Clang scan-build SA: Value stored is not used: add ogs_assert(). */
+ ogs_assert(rv == OGS_OK);
gtp_rsp->bearer_contexts.s5_s8_u_pgw_f_teid.presence = 1;
gtp_rsp->bearer_contexts.s5_s8_u_pgw_f_teid.data = &pgw_s5u_teid;
gtp_rsp->bearer_contexts.s5_s8_u_pgw_f_teid.len = len;
@@ -854,7 +890,7 @@ void sgwc_sxa_handle_session_modification_response(
ogs_expect(rv == OGS_OK);
} else if (flags & OGS_PFCP_MODIFY_INDIRECT) {
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -987,7 +1023,7 @@ void sgwc_sxa_handle_session_modification_response(
} else if (flags & OGS_PFCP_MODIFY_ACTIVATE) {
OGS_LIST(bearer_to_modify_list);
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_list_copy(&bearer_to_modify_list,
@@ -1094,7 +1130,7 @@ void sgwc_sxa_handle_session_modification_response(
ogs_assert(sess->gnode);
s5c_xact = ogs_gtp_xact_local_create(
sess->gnode, &recv_message->h, pkbuf,
- sess_timeout, sess);
+ sess_timeout, OGS_UINT_TO_POINTER(sess->id));
if (!s5c_xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return;
@@ -1194,7 +1230,7 @@ void sgwc_sxa_handle_session_modification_response(
} else if (flags & OGS_PFCP_MODIFY_DEACTIVATE) {
if (flags & OGS_PFCP_MODIFY_ERROR_INDICATION) {
/* It's faked method for receiving `bearer` context */
- bearer = pfcp_xact->assoc_xact;
+ bearer = sgwc_bearer_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(bearer);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -1208,7 +1244,7 @@ void sgwc_sxa_handle_session_modification_response(
}
} else {
- s11_xact = pfcp_xact->assoc_xact;
+ s11_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_assert(s11_xact);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -1293,7 +1329,7 @@ void sgwc_sxa_handle_session_deletion_response(
cause_value = OGS_GTP2_CAUSE_MANDATORY_IE_MISSING;
}
- gtp_xact = pfcp_xact->assoc_xact;
+ gtp_xact = ogs_gtp_xact_find_by_id(pfcp_xact->assoc_xact_id);
ogs_pfcp_xact_commit(pfcp_xact);
@@ -1314,7 +1350,7 @@ void sgwc_sxa_handle_session_deletion_response(
* 1. MME sends Delete Session Request to SGW/SMF.
* 2. SMF sends Delete Session Response to SGW/MME.
*/
- if (sess) sgwc_ue = sess->sgwc_ue;
+ if (sess) sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
teid = sgwc_ue ? sgwc_ue->mme_s11_teid : 0;
break;
case OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE:
@@ -1347,7 +1383,7 @@ void sgwc_sxa_handle_session_deletion_response(
}
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
if (gtp_xact) {
@@ -1377,10 +1413,10 @@ void sgwc_sxa_handle_session_deletion_response(
}
cleanup:
- if (sgwc_sess_cycle(sess))
+ if (sess)
sgwc_sess_remove(sess);
else
- ogs_error("Session has already been removed");
+ ogs_error("No Session");
}
void sgwc_sxa_handle_session_report_request(
@@ -1426,7 +1462,7 @@ void sgwc_sxa_handle_session_report_request(
}
ogs_assert(sess);
- sgwc_ue = sess->sgwc_ue;
+ sgwc_ue = sgwc_ue_find_by_id(sess->sgwc_ue_id);
ogs_assert(sgwc_ue);
if (!sgwc_ue->gnode) {
@@ -1476,7 +1512,7 @@ void sgwc_sxa_handle_session_report_request(
if (far) {
tunnel = sgwc_tunnel_find_by_far_id(sess, far->id);
ogs_assert(tunnel);
- bearer = tunnel->bearer;
+ bearer = sgwc_bearer_find_by_id(tunnel->bearer_id);
ogs_assert(bearer);
if (far->dst_if == OGS_PFCP_INTERFACE_ACCESS) {
ogs_warn("[%s] Error Indication from eNB", sgwc_ue->imsi_bcd);
@@ -1485,7 +1521,7 @@ void sgwc_sxa_handle_session_report_request(
sgwc_pfcp_send_session_modification_request(sess,
/* We only use the `assoc_xact` parameter temporarily here
* to pass the `bearer` context. */
- (ogs_gtp_xact_t *)bearer,
+ bearer->id,
NULL,
OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE|
OGS_PFCP_MODIFY_ERROR_INDICATION));
@@ -1496,13 +1532,14 @@ void sgwc_sxa_handle_session_report_request(
sgwc_ue->imsi_bcd);
ogs_assert(OGS_OK ==
sgwc_pfcp_send_session_deletion_request(
- sess, NULL, NULL));
+ sess, OGS_INVALID_POOL_ID, NULL));
} else {
ogs_error("[%s] Error Indication(Dedicated Bearer) "
"from SMF", sgwc_ue->imsi_bcd);
ogs_assert(OGS_OK ==
sgwc_pfcp_send_bearer_modification_request(
- bearer, NULL, NULL, OGS_PFCP_MODIFY_REMOVE));
+ bearer, OGS_INVALID_POOL_ID, NULL,
+ OGS_PFCP_MODIFY_REMOVE));
}
} else {
ogs_error("Error Indication Ignored for Indirect Tunnel");
diff --git a/src/sgwu/context.c b/src/sgwu/context.c
index a7bdd56b3c..de5f461d0f 100644
--- a/src/sgwu/context.c
+++ b/src/sgwu/context.c
@@ -141,9 +141,8 @@ sgwu_sess_t *sgwu_sess_add(ogs_pfcp_f_seid_t *cp_f_seid)
ogs_assert(cp_f_seid);
- ogs_pool_alloc(&sgwu_sess_pool, &sess);
+ ogs_pool_id_calloc(&sgwu_sess_pool, &sess);
ogs_assert(sess);
- memset(sess, 0, sizeof *sess);
ogs_pfcp_pool_init(&sess->pfcp);
@@ -197,7 +196,7 @@ int sgwu_sess_remove(sgwu_sess_t *sess)
ogs_pfcp_pool_final(&sess->pfcp);
ogs_pool_free(&sgwu_sxa_seid_pool, sess->sgwu_sxa_seid_node);
- ogs_pool_free(&sgwu_sess_pool, sess);
+ ogs_pool_id_free(&sgwu_sess_pool, sess);
ogs_info("[Removed] Number of SGWU-sessions is now %d",
ogs_list_count(&self.sess_list));
@@ -238,6 +237,11 @@ sgwu_sess_t *sgwu_sess_find_by_sgwu_sxa_seid(uint64_t seid)
return ogs_hash_get(self.sgwu_sxa_seid_hash, &seid, sizeof(seid));
}
+sgwu_sess_t *sgwu_sess_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&sgwu_sess_pool, id);
+}
+
sgwu_sess_t *sgwu_sess_add_by_message(ogs_pfcp_message_t *message)
{
sgwu_sess_t *sess = NULL;
@@ -252,6 +256,10 @@ sgwu_sess_t *sgwu_sess_add_by_message(ogs_pfcp_message_t *message)
ogs_error("No CP F-SEID");
return NULL;
}
+ if (f_seid->ipv4 == 0 && f_seid->ipv6 == 0) {
+ ogs_error("No IPv4 or IPv6");
+ return NULL;
+ }
f_seid->seid = be64toh(f_seid->seid);
sess = sgwu_sess_find_by_sgwc_sxa_f_seid(f_seid);
diff --git a/src/sgwu/context.h b/src/sgwu/context.h
index 81928498b0..dc322eb519 100644
--- a/src/sgwu/context.h
+++ b/src/sgwu/context.h
@@ -47,6 +47,7 @@ typedef struct sgwu_context_s {
#define SGWU_SESS(pfcp_sess) ogs_container_of(pfcp_sess, sgwu_sess_t, pfcp)
typedef struct sgwu_sess_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
ogs_pool_id_t *sgwu_sxa_seid_node; /* A node of SGWU-SXA-SEID */
ogs_pfcp_sess_t pfcp;
@@ -74,6 +75,7 @@ void sgwu_sess_remove_all(void);
sgwu_sess_t *sgwu_sess_find_by_sgwc_sxa_seid(uint64_t seid);
sgwu_sess_t *sgwu_sess_find_by_sgwc_sxa_f_seid(ogs_pfcp_f_seid_t *f_seid);
sgwu_sess_t *sgwu_sess_find_by_sgwu_sxa_seid(uint64_t seid);
+sgwu_sess_t *sgwu_sess_find_by_id(ogs_pool_id_t id);
#ifdef __cplusplus
}
diff --git a/src/sgwu/event.h b/src/sgwu/event.h
index c37ccbdad7..12f1d4b29c 100644
--- a/src/sgwu/event.h
+++ b/src/sgwu/event.h
@@ -52,7 +52,7 @@ typedef struct sgwu_event_s {
ogs_gtp_node_t *gnode;
ogs_pfcp_node_t *pfcp_node;
- ogs_pfcp_xact_t *pfcp_xact;
+ ogs_pool_id_t pfcp_xact_id;
ogs_pfcp_message_t *pfcp_message;
sgwu_bearer_t *bearer;
diff --git a/src/sgwu/gtp-path.c b/src/sgwu/gtp-path.c
index e44c0c7f6b..cb6e30e30c 100644
--- a/src/sgwu/gtp-path.c
+++ b/src/sgwu/gtp-path.c
@@ -236,8 +236,7 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data)
continue;
/* Check if QFI */
- if (header_desc.qos_flow_identifier &&
- pdr->qfi != header_desc.qos_flow_identifier)
+ if (pdr->qfi && pdr->qfi != header_desc.qos_flow_identifier)
continue;
/* Check if Rule List in PDR */
@@ -276,6 +275,12 @@ static void _gtpv1_u_recv_cb(short when, ogs_socket_t fd, void *data)
ogs_assert(OGS_OK ==
sgwu_pfcp_send_session_report_request(sess, &report));
}
+
+ /*
+ * The ogs_pfcp_up_handle_pdr() function
+ * buffers or frees the Packet Buffer(pkbuf) memory.
+ */
+ return;
} else {
ogs_error("[DROP] Invalid GTPU Type [%d]", header_desc.type);
ogs_log_hexdump(OGS_LOG_ERROR, pkbuf->data, pkbuf->len);
diff --git a/src/sgwu/init.c b/src/sgwu/init.c
index 51e20c53db..858e7ce070 100644
--- a/src/sgwu/init.c
+++ b/src/sgwu/init.c
@@ -44,6 +44,10 @@ int sgwu_initialize(void)
rv = ogs_pfcp_xact_init();
if (rv != OGS_OK) return rv;
+ rv = ogs_log_config_domain(
+ ogs_app()->logger.domain, ogs_app()->logger.level);
+ if (rv != OGS_OK) return rv;
+
rv = ogs_gtp_context_parse_config(APP_NAME, "sgwc");
if (rv != OGS_OK) return rv;
@@ -53,10 +57,6 @@ int sgwu_initialize(void)
rv = sgwu_context_parse_config();
if (rv != OGS_OK) return rv;
- rv = ogs_log_config_domain(
- ogs_app()->logger.domain, ogs_app()->logger.level);
- if (rv != OGS_OK) return rv;
-
rv = sgwu_pfcp_open();
if (rv != OGS_OK) return rv;
diff --git a/src/sgwu/pfcp-path.c b/src/sgwu/pfcp-path.c
index d9f423bbf7..3cdd32053d 100644
--- a/src/sgwu/pfcp-path.c
+++ b/src/sgwu/pfcp-path.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 by Sukchan Lee
+ * Copyright (C) 2019-2025 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -56,74 +56,125 @@ static void pfcp_recv_cb(short when, ogs_socket_t fd, void *data)
{
int rv;
- ssize_t size;
sgwu_event_t *e = NULL;
ogs_pkbuf_t *pkbuf = NULL;
ogs_sockaddr_t from;
ogs_pfcp_node_t *node = NULL;
- ogs_pfcp_header_t *h = NULL;
+ ogs_pfcp_message_t *message = NULL;
- ogs_assert(fd != INVALID_SOCKET);
+ ogs_pfcp_status_e pfcp_status;;
+ ogs_pfcp_node_id_t node_id;
- pkbuf = ogs_pkbuf_alloc(NULL, OGS_MAX_SDU_LEN);
- ogs_assert(pkbuf);
- ogs_pkbuf_put(pkbuf, OGS_MAX_SDU_LEN);
+ ogs_assert(fd != INVALID_SOCKET);
- size = ogs_recvfrom(fd, pkbuf->data, pkbuf->len, 0, &from);
- if (size <= 0) {
- ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "ogs_recvfrom() failed");
- ogs_pkbuf_free(pkbuf);
+ pkbuf = ogs_pfcp_recvfrom(fd, &from);
+ if (!pkbuf) {
+ ogs_error("ogs_pfcp_recvfrom() failed");
return;
}
- ogs_pkbuf_trim(pkbuf, size);
-
- h = (ogs_pfcp_header_t *)pkbuf->data;
- if (h->version != OGS_PFCP_VERSION) {
- ogs_pfcp_header_t rsp;
-
- ogs_error("Not supported version[%d]", h->version);
+ e = sgwu_event_new(SGWU_EVT_SXA_MESSAGE);
+ ogs_assert(e);
- memset(&rsp, 0, sizeof rsp);
- rsp.flags = (OGS_PFCP_VERSION << 5);
- rsp.type = OGS_PFCP_VERSION_NOT_SUPPORTED_RESPONSE_TYPE;
- rsp.length = htobe16(4);
- rsp.sqn_only = h->sqn_only;
- if (ogs_sendto(fd, &rsp, 8, 0, &from) < 0) {
- ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno,
- "ogs_sendto() failed");
- }
+ /*
+ * Issue #1911
+ *
+ * Because ogs_pfcp_message_t is over 80kb in size,
+ * it can cause stack overflow.
+ * To avoid this, the pfcp_message structure uses heap memory.
+ */
+ if ((message = ogs_pfcp_parse_msg(pkbuf)) == NULL) {
+ ogs_error("ogs_pfcp_parse_msg() failed");
ogs_pkbuf_free(pkbuf);
-
+ sgwu_event_free(e);
return;
}
- e = sgwu_event_new(SGWU_EVT_SXA_MESSAGE);
- ogs_assert(e);
+ pfcp_status = ogs_pfcp_extract_node_id(message, &node_id);
+ switch (pfcp_status) {
+ case OGS_PFCP_STATUS_SUCCESS:
+ case OGS_PFCP_STATUS_NODE_ID_NONE:
+ case OGS_PFCP_STATUS_NODE_ID_OPTIONAL_ABSENT:
+ ogs_debug("ogs_pfcp_extract_node_id() "
+ "type [%d] pfcp_status [%d] node_id [%s] from %s",
+ message->h.type, pfcp_status,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ?
+ ogs_pfcp_node_id_to_string_static(&node_id) :
+ "NULL",
+ ogs_sockaddr_to_string_static(&from));
+ break;
- node = ogs_pfcp_node_find(&ogs_pfcp_self()->pfcp_peer_list, &from);
+ case OGS_PFCP_ERROR_SEMANTIC_INCORRECT_MESSAGE:
+ case OGS_PFCP_ERROR_NODE_ID_NOT_PRESENT:
+ case OGS_PFCP_ERROR_NODE_ID_NOT_FOUND:
+ case OGS_PFCP_ERROR_UNKNOWN_MESSAGE:
+ ogs_error("ogs_pfcp_extract_node_id() failed "
+ "type [%d] pfcp_status [%d] from %s",
+ message->h.type, pfcp_status,
+ ogs_sockaddr_to_string_static(&from));
+ goto cleanup;
+
+ default:
+ ogs_error("Unexpected pfcp_status "
+ "type [%d] pfcp_status [%d] from %s",
+ message->h.type, pfcp_status,
+ ogs_sockaddr_to_string_static(&from));
+ goto cleanup;
+ }
+
+ node = ogs_pfcp_node_find(&ogs_pfcp_self()->pfcp_peer_list,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ? &node_id : NULL, &from);
if (!node) {
- node = ogs_pfcp_node_add(&ogs_pfcp_self()->pfcp_peer_list, &from);
- if (!node) {
- ogs_error("No memory: ogs_pfcp_node_add() failed");
- ogs_pkbuf_free(e->pkbuf);
- ogs_event_free(e);
- return;
+ if (message->h.type == OGS_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE ||
+ message->h.type == OGS_PFCP_ASSOCIATION_SETUP_RESPONSE_TYPE) {
+ ogs_assert(pfcp_status == OGS_PFCP_STATUS_SUCCESS);
+ node = ogs_pfcp_node_add(&ogs_pfcp_self()->pfcp_peer_list,
+ &node_id, &from);
+ if (!node) {
+ ogs_error("No memory: ogs_pfcp_node_add() failed");
+ goto cleanup;
+ }
+ ogs_debug("Added PFCP-Node: addr_list %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
+
+ pfcp_node_fsm_init(node, false);
+
+ } else {
+ ogs_error("Cannot find PFCP-Node: type [%d] node_id %s from %s",
+ message->h.type,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ?
+ ogs_pfcp_node_id_to_string_static(&node_id) :
+ "NULL",
+ ogs_sockaddr_to_string_static(&from));
+ goto cleanup;
}
-
- node->sock = data;
- pfcp_node_fsm_init(node, false);
+ } else {
+ ogs_debug("Found PFCP-Node: addr_list %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
+ ogs_expect(OGS_OK == ogs_pfcp_node_merge(
+ node,
+ pfcp_status == OGS_PFCP_STATUS_SUCCESS ? &node_id : NULL,
+ &from));
+ ogs_debug("Merged PFCP-Node: addr_list %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
}
+
e->pfcp_node = node;
e->pkbuf = pkbuf;
+ e->pfcp_message = message;
rv = ogs_queue_push(ogs_app()->queue, e);
if (rv != OGS_OK) {
ogs_error("ogs_queue_push() failed:%d", (int)rv);
- ogs_pkbuf_free(e->pkbuf);
- sgwu_event_free(e);
+ goto cleanup;
}
+
+ return;
+
+cleanup:
+ ogs_pkbuf_free(pkbuf);
+ ogs_pfcp_message_free(message);
+ sgwu_event_free(e);
}
int sgwu_pfcp_open(void)
@@ -267,11 +318,23 @@ int sgwu_pfcp_send_session_deletion_response(ogs_pfcp_xact_t *xact,
static void sess_timeout(ogs_pfcp_xact_t *xact, void *data)
{
+ sgwu_sess_t *sess = NULL;
+ ogs_pool_id_t sess_id = OGS_INVALID_POOL_ID;
uint8_t type;
ogs_assert(xact);
type = xact->seq[0].type;
+ ogs_assert(data);
+ sess_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(sess_id >= OGS_MIN_POOL_ID && sess_id <= OGS_MAX_POOL_ID);
+
+ sess = sgwu_sess_find_by_id(sess_id);
+ if (!sess) {
+ ogs_error("Session has already been removed [%d]", type);
+ return;
+ }
+
switch (type) {
case OGS_PFCP_SESSION_REPORT_REQUEST_TYPE:
ogs_error("No PFCP session report response");
@@ -297,7 +360,8 @@ int sgwu_pfcp_send_session_report_request(
h.type = OGS_PFCP_SESSION_REPORT_REQUEST_TYPE;
h.seid = sess->sgwc_sxa_f_seid.seid;
- xact = ogs_pfcp_xact_local_create(sess->pfcp_node, sess_timeout, sess);
+ xact = ogs_pfcp_xact_local_create(
+ sess->pfcp_node, sess_timeout, OGS_UINT_TO_POINTER(sess->id));
if (!xact) {
ogs_error("ogs_pfcp_xact_local_create() failed");
return OGS_ERROR;
diff --git a/src/sgwu/pfcp-sm.c b/src/sgwu/pfcp-sm.c
index b14772baf4..130a79912b 100644
--- a/src/sgwu/pfcp-sm.c
+++ b/src/sgwu/pfcp-sm.c
@@ -25,7 +25,6 @@ static void node_timeout(ogs_pfcp_xact_t *xact, void *data);
void sgwu_pfcp_state_initial(ogs_fsm_t *s, sgwu_event_t *e)
{
- int rv;
ogs_pfcp_node_t *node = NULL;
ogs_assert(s);
@@ -36,10 +35,6 @@ void sgwu_pfcp_state_initial(ogs_fsm_t *s, sgwu_event_t *e)
node = e->pfcp_node;
ogs_assert(node);
- rv = ogs_pfcp_connect(
- ogs_pfcp_self()->pfcp_sock, ogs_pfcp_self()->pfcp_sock6, node);
- ogs_assert(rv == OGS_OK);
-
node->t_no_heartbeat = ogs_timer_add(ogs_app()->timer_mgr,
sgwu_timer_no_heartbeat, node);
ogs_assert(node->t_no_heartbeat);
@@ -63,12 +58,9 @@ void sgwu_pfcp_state_final(ogs_fsm_t *s, sgwu_event_t *e)
void sgwu_pfcp_state_will_associate(ogs_fsm_t *s, sgwu_event_t *e)
{
- char buf[OGS_ADDRSTRLEN];
-
ogs_pfcp_node_t *node = NULL;
ogs_pfcp_xact_t *xact = NULL;
ogs_pfcp_message_t *message = NULL;
- ogs_sockaddr_t *addr = NULL;
ogs_assert(s);
ogs_assert(e);
@@ -96,11 +88,8 @@ void sgwu_pfcp_state_will_associate(ogs_fsm_t *s, sgwu_event_t *e)
case SGWU_EVT_SXA_TIMER:
switch(e->timer_id) {
case SGWU_TIMER_ASSOCIATION:
- addr = node->sa_list;
- ogs_assert(addr);
-
- ogs_warn("Retry association with peer [%s]:%d failed",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
+ ogs_warn("Retry association with peer failed %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_assert(node->t_association);
ogs_timer_start(node->t_association,
@@ -117,7 +106,7 @@ void sgwu_pfcp_state_will_associate(ogs_fsm_t *s, sgwu_event_t *e)
case SGWU_EVT_SXA_MESSAGE:
message = e->pfcp_message;
ogs_assert(message);
- xact = e->pfcp_xact;
+ xact = ogs_pfcp_xact_find_by_id(e->pfcp_xact_id);
ogs_assert(xact);
switch (message->h.type) {
@@ -155,13 +144,10 @@ void sgwu_pfcp_state_will_associate(ogs_fsm_t *s, sgwu_event_t *e)
void sgwu_pfcp_state_associated(ogs_fsm_t *s, sgwu_event_t *e)
{
- char buf[OGS_ADDRSTRLEN];
-
ogs_pfcp_node_t *node = NULL;
ogs_pfcp_xact_t *xact = NULL;
ogs_pfcp_message_t *message = NULL;
- ogs_sockaddr_t *addr = NULL;
sgwu_sess_t *sess = NULL;
ogs_assert(s);
@@ -171,14 +157,11 @@ void sgwu_pfcp_state_associated(ogs_fsm_t *s, sgwu_event_t *e)
node = e->pfcp_node;
ogs_assert(node);
- addr = node->sa_list;
- ogs_assert(addr);
switch (e->id) {
case OGS_FSM_ENTRY_SIG:
- ogs_info("PFCP associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_info("PFCP associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_timer_start(node->t_no_heartbeat,
ogs_local_conf()->time.message.pfcp.no_heartbeat_duration);
ogs_assert(OGS_OK ==
@@ -191,15 +174,14 @@ void sgwu_pfcp_state_associated(ogs_fsm_t *s, sgwu_event_t *e)
}
break;
case OGS_FSM_EXIT_SIG:
- ogs_info("PFCP de-associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_info("PFCP de-associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_timer_stop(node->t_no_heartbeat);
break;
case SGWU_EVT_SXA_MESSAGE:
message = e->pfcp_message;
ogs_assert(message);
- xact = e->pfcp_xact;
+ xact = ogs_pfcp_xact_find_by_id(e->pfcp_xact_id);
ogs_assert(xact);
if (message->h.seid_presence && message->h.seid != 0)
@@ -263,16 +245,14 @@ void sgwu_pfcp_state_associated(ogs_fsm_t *s, sgwu_event_t *e)
}
break;
case OGS_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE:
- ogs_warn("PFCP[REQ] has already been associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_warn("PFCP[REQ] has already been associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_pfcp_up_handle_association_setup_request(node, xact,
&message->pfcp_association_setup_request);
break;
case OGS_PFCP_ASSOCIATION_SETUP_RESPONSE_TYPE:
- ogs_warn("PFCP[RSP] has already been associated [%s]:%d",
- OGS_ADDR(&node->addr, buf),
- OGS_PORT(&node->addr));
+ ogs_warn("PFCP[RSP] has already been associated %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
ogs_pfcp_up_handle_association_setup_response(node, xact,
&message->pfcp_association_setup_response);
break;
@@ -318,12 +298,8 @@ void sgwu_pfcp_state_associated(ogs_fsm_t *s, sgwu_event_t *e)
}
break;
case SGWU_EVT_SXA_NO_HEARTBEAT:
-
- /* 'node' context was removed in ogs_pfcp_xact_delete(xact)
- * So, we should not use PFCP node here */
-
- ogs_warn("No Heartbeat from SGW-C [%s]:%d",
- OGS_ADDR(addr, buf), OGS_PORT(addr));
+ ogs_warn("No Heartbeat from SGW-C %s",
+ ogs_sockaddr_to_string_static(node->addr_list));
OGS_FSM_TRAN(s, sgwu_pfcp_state_will_associate);
break;
default:
diff --git a/src/sgwu/sgwu-sm.c b/src/sgwu/sgwu-sm.c
index 695285d0ba..9604306588 100644
--- a/src/sgwu/sgwu-sm.c
+++ b/src/sgwu/sgwu-sm.c
@@ -58,21 +58,11 @@ void sgwu_state_operational(ogs_fsm_t *s, sgwu_event_t *e)
ogs_assert(e);
recvbuf = e->pkbuf;
ogs_assert(recvbuf);
+ pfcp_message = e->pfcp_message;
+ ogs_assert(pfcp_message);
node = e->pfcp_node;
ogs_assert(node);
-
- /*
- * Issue #1911
- *
- * Because ogs_pfcp_message_t is over 80kb in size,
- * it can cause stack overflow.
- * To avoid this, the pfcp_message structure uses heap memory.
- */
- if ((pfcp_message = ogs_pfcp_parse_msg(recvbuf)) == NULL) {
- ogs_error("ogs_pfcp_parse_msg() failed");
- ogs_pkbuf_free(recvbuf);
- break;
- }
+ ogs_assert(OGS_FSM_STATE(&node->sm));
rv = ogs_pfcp_xact_receive(node, &pfcp_message->h, &xact);
if (rv != OGS_OK) {
@@ -81,8 +71,7 @@ void sgwu_state_operational(ogs_fsm_t *s, sgwu_event_t *e)
break;
}
- e->pfcp_message = pfcp_message;
- e->pfcp_xact = xact;
+ e->pfcp_xact_id = xact ? xact->id : OGS_INVALID_POOL_ID;
ogs_fsm_dispatch(&node->sm, e);
if (OGS_FSM_CHECK(&node->sm, sgwu_pfcp_state_exception)) {
ogs_error("PFCP state machine exception");
diff --git a/src/sgwu/sxa-handler.c b/src/sgwu/sxa-handler.c
index ec25214e3f..4482426f6e 100644
--- a/src/sgwu/sxa-handler.c
+++ b/src/sgwu/sxa-handler.c
@@ -95,7 +95,17 @@ void sgwu_sxa_handle_session_establishment_request(
pdr = created_pdr[i];
ogs_assert(pdr);
- if (pdr->f_teid_len)
+ /*
+ * Only perform TEID restoration via swap when F-TEID.ch is false.
+ *
+ * When F-TEID.ch is false, it means the TEID has already been assigned, and
+ * the restoration process can safely perform the swap.
+ *
+ * If F-TEID.ch is true, it indicates that the UPF needs to assign
+ * a new TEID for the first time, so performing a swap is not appropriate
+ * in this case.
+ */
+ if (pdr->f_teid.ch == false && pdr->f_teid_len)
ogs_pfcp_pdr_swap_teid(pdr);
}
restoration_indication = true;
@@ -142,7 +152,7 @@ void sgwu_sxa_handle_session_establishment_request(
cleanup:
ogs_pfcp_sess_clear(&sess->pfcp);
- ogs_pfcp_send_error_message(xact, sess ? sess->sgwu_sxa_seid : 0,
+ ogs_pfcp_send_error_message(xact, sess ? sess->sgwc_sxa_f_seid.seid : 0,
OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE,
cause_value, offending_ie_value);
}
@@ -309,7 +319,7 @@ void sgwu_sxa_handle_session_modification_request(
cleanup:
ogs_pfcp_sess_clear(&sess->pfcp);
- ogs_pfcp_send_error_message(xact, sess ? sess->sgwu_sxa_seid : 0,
+ ogs_pfcp_send_error_message(xact, sess ? sess->sgwc_sxa_f_seid.seid : 0,
OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE,
cause_value, offending_ie_value);
}
diff --git a/src/smf/binding.c b/src/smf/binding.c
index 2402195826..d43d639634 100644
--- a/src/smf/binding.c
+++ b/src/smf/binding.c
@@ -26,29 +26,36 @@
static void gtp_bearer_timeout(ogs_gtp_xact_t *xact, void *data)
{
- smf_bearer_t *bearer = data;
+ smf_bearer_t *bearer = NULL;
+ ogs_pool_id_t bearer_id = OGS_INVALID_POOL_ID;
smf_sess_t *sess = NULL;
smf_ue_t *smf_ue = NULL;
uint8_t type = 0;
- ogs_assert(bearer);
- sess = bearer->sess;
+ ogs_assert(xact);
+ type = xact->seq[0].type;
+
+ ogs_assert(data);
+ bearer_id = OGS_POINTER_TO_UINT(data);
+ ogs_assert(bearer_id >= OGS_MIN_POOL_ID && bearer_id <= OGS_MAX_POOL_ID);
+
+ bearer = smf_bearer_find_by_id(bearer_id);
+ if (!bearer) {
+ ogs_error("Bearer has already been removed [%d]", type);
+ return;
+ }
+
+ sess = smf_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- smf_ue = sess->smf_ue;
+ smf_ue = smf_ue_find_by_id(sess->smf_ue_id);
ogs_assert(smf_ue);
- type = xact->seq[0].type;
-
switch (type) {
case OGS_GTP2_CREATE_BEARER_REQUEST_TYPE:
ogs_error("[%s] No Create Bearer Response", smf_ue->imsi_bcd);
- if (!smf_bearer_cycle(bearer)) {
- ogs_warn("[%s] Bearer has already been removed", smf_ue->imsi_bcd);
- break;
- }
ogs_assert(OGS_OK ==
smf_epc_pfcp_send_one_bearer_modification_request(
- bearer, NULL, OGS_PFCP_MODIFY_REMOVE,
+ bearer, OGS_INVALID_POOL_ID, OGS_PFCP_MODIFY_REMOVE,
OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED,
OGS_GTP2_CAUSE_UNDEFINED_VALUE));
break;
@@ -65,7 +72,7 @@ static void gtp_bearer_timeout(ogs_gtp_xact_t *xact, void *data)
/*
* Issue #338
*
- *
+ *
* RULE : Source Destination
* TFT : Local REMOTE
*
@@ -120,9 +127,6 @@ void smf_bearer_binding(smf_sess_t *sess)
ogs_assert(sess);
for (i = 0; i < sess->policy.num_of_pcc_rule; i++) {
- ogs_gtp_xact_t *xact = NULL;
- ogs_gtp2_header_t h;
- ogs_pkbuf_t *pkbuf = NULL;
smf_bearer_t *bearer = NULL;
ogs_pcc_rule_t *pcc_rule = &sess->policy.pcc_rule[i];
@@ -190,7 +194,7 @@ void smf_bearer_binding(smf_sess_t *sess)
ogs_gtpu_resource_t *resource = NULL;
resource = ogs_pfcp_find_gtpu_resource(
&sess->pfcp_node->gtpu_resource_list,
- sess->session.name, OGS_PFCP_INTERFACE_ACCESS);
+ sess->session.name, ul_pdr->src_if);
if (resource) {
ogs_user_plane_ip_resource_info_to_sockaddr(
&resource->info,
@@ -202,15 +206,17 @@ void smf_bearer_binding(smf_sess_t *sess)
else
bearer->pgw_s5u_teid = ul_pdr->teid;
} else {
- if (sess->pfcp_node->addr.ogs_sa_family == AF_INET)
+ ogs_assert(sess->pfcp_node->addr_list);
+ if (sess->pfcp_node->addr_list->ogs_sa_family ==
+ AF_INET)
ogs_assert(OGS_OK ==
ogs_copyaddrinfo(&bearer->pgw_s5u_addr,
- &sess->pfcp_node->addr));
- else if (sess->pfcp_node->addr.ogs_sa_family ==
+ sess->pfcp_node->addr_list));
+ else if (sess->pfcp_node->addr_list->ogs_sa_family ==
AF_INET6)
ogs_assert(OGS_OK ==
ogs_copyaddrinfo(&bearer->pgw_s5u_addr6,
- &sess->pfcp_node->addr));
+ sess->pfcp_node->addr_list));
else
ogs_assert_if_reached();
@@ -303,7 +309,7 @@ void smf_bearer_binding(smf_sess_t *sess)
* Refer to lib/ipfw/ogs-ipfw.h
* Issue #338
*
- *
+ *
* GX : permit out from to
* -->
* RULE : Source Destination
@@ -348,48 +354,25 @@ void smf_bearer_binding(smf_sess_t *sess)
ogs_assert(OGS_OK ==
smf_epc_pfcp_send_one_bearer_modification_request(
- bearer, NULL, OGS_PFCP_MODIFY_CREATE,
+ bearer, OGS_INVALID_POOL_ID, OGS_PFCP_MODIFY_CREATE,
OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED,
OGS_GTP2_CAUSE_UNDEFINED_VALUE));
} else {
- ogs_gtp2_tft_t tft;
+ uint64_t pfcp_flags = OGS_PFCP_MODIFY_NETWORK_REQUESTED;
- memset(&tft, 0, sizeof tft);
if (ogs_list_count(&bearer->pf_to_add_list) > 0) {
- encode_traffic_flow_template(
- &tft, bearer,
- OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT);
+ pfcp_flags |= OGS_PFCP_MODIFY_EPC_TFT_UPDATE;
+ smf_bearer_tft_update(bearer);
}
-
- memset(&h, 0, sizeof(ogs_gtp2_header_t));
- h.type = OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE;
- h.teid = sess->sgw_s5c_teid;
-
- pkbuf = smf_s5c_build_update_bearer_request(
- h.type, bearer,
- OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED,
- (ogs_list_count(&bearer->pf_to_add_list) > 0) ?
- &tft : NULL, qos_presence);
- if (!pkbuf) {
- ogs_error("smf_s5c_build_update_bearer_request() failed");
- return;
- }
-
- xact = ogs_gtp_xact_local_create(
- sess->gnode, &h, pkbuf, gtp_bearer_timeout, bearer);
- if (!xact) {
- ogs_error("ogs_gtp_xact_local_create() failed");
- return;
+ if (qos_presence == true) {
+ pfcp_flags |= OGS_PFCP_MODIFY_EPC_QOS_UPDATE;
+ smf_bearer_qos_update(bearer);
}
- xact->local_teid = sess->smf_n4_teid;
-
- if (ogs_list_count(&bearer->pf_to_add_list) > 0)
- xact->update_flags |= OGS_GTP_MODIFY_TFT_UPDATE;
- if (qos_presence == true)
- xact->update_flags |= OGS_GTP_MODIFY_QOS_UPDATE;
-
- rv = ogs_gtp_xact_commit(xact);
- ogs_expect(rv == OGS_OK);
+ ogs_assert(OGS_OK ==
+ smf_epc_pfcp_send_one_bearer_modification_request(
+ bearer, OGS_INVALID_POOL_ID, pfcp_flags,
+ OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED,
+ OGS_GTP2_CAUSE_UNDEFINED_VALUE));
}
} else if (pcc_rule->type == OGS_PCC_RULE_TYPE_REMOVE) {
@@ -413,7 +396,7 @@ void smf_bearer_binding(smf_sess_t *sess)
*/
ogs_assert(OGS_OK ==
smf_epc_pfcp_send_one_bearer_modification_request(
- bearer, NULL,
+ bearer, OGS_INVALID_POOL_ID,
OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_DEACTIVATE,
OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED,
OGS_GTP2_CAUSE_UNDEFINED_VALUE));
@@ -435,7 +418,7 @@ int smf_gtp2_send_create_bearer_request(smf_bearer_t *bearer)
ogs_gtp2_tft_t tft;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = smf_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
h.type = OGS_GTP2_CREATE_BEARER_REQUEST_TYPE;
@@ -452,12 +435,66 @@ int smf_gtp2_send_create_bearer_request(smf_bearer_t *bearer)
}
xact = ogs_gtp_xact_local_create(
- sess->gnode, &h, pkbuf, gtp_bearer_timeout, bearer);
+ sess->gnode, &h, pkbuf, gtp_bearer_timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
+ if (!xact) {
+ ogs_error("ogs_gtp_xact_local_create() failed");
+ return OGS_ERROR;
+ }
+ xact->local_teid = sess->smf_n4_teid;
+
+ rv = ogs_gtp_xact_commit(xact);
+ ogs_expect(rv == OGS_OK);
+
+ return rv;
+}
+
+int smf_gtp2_send_update_bearer_request(smf_bearer_t *bearer)
+{
+ int rv;
+
+ smf_sess_t *sess = NULL;
+ ogs_gtp_xact_t *xact = NULL;
+
+ ogs_gtp2_header_t h;
+ ogs_pkbuf_t *pkbuf = NULL;
+ ogs_gtp2_tft_t tft;
+
+ ogs_assert(bearer);
+ sess = smf_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
+
+ memset(&h, 0, sizeof(ogs_gtp2_header_t));
+ h.type = OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE;
+ h.teid = sess->sgw_s5c_teid;
+
+ memset(&tft, 0, sizeof tft);
+ if (ogs_list_count(&bearer->pf_to_add_list) > 0) {
+ encode_traffic_flow_template(&tft, bearer,
+ OGS_GTP2_TFT_CODE_ADD_PACKET_FILTERS_TO_EXISTING_TFT);
+ }
+
+ pkbuf = smf_s5c_build_update_bearer_request(
+ h.type, bearer,
+ OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED,
+ (ogs_list_count(&bearer->pf_to_add_list) > 0) ?
+ &tft : NULL, true);
+ if (!pkbuf) {
+ ogs_error("smf_s5c_build_update_bearer_request() failed");
+ return OGS_ERROR;
+ }
+
+ xact = ogs_gtp_xact_local_create(
+ sess->gnode, &h, pkbuf, gtp_bearer_timeout,
+ OGS_UINT_TO_POINTER(bearer->id));
if (!xact) {
ogs_error("ogs_gtp_xact_local_create() failed");
return OGS_ERROR;
}
xact->local_teid = sess->smf_n4_teid;
+ xact->update_flags |= OGS_GTP_MODIFY_QOS_UPDATE;
+ if (ogs_list_count(&bearer->pf_to_add_list) > 0)
+ xact->update_flags |= OGS_GTP_MODIFY_TFT_UPDATE;
rv = ogs_gtp_xact_commit(xact);
ogs_expect(rv == OGS_OK);
@@ -564,19 +601,37 @@ void smf_qos_flow_binding(smf_sess_t *sess)
} else {
ogs_assert(strcmp(qos_flow->pcc_rule.id, pcc_rule->id) == 0);
- if ((pcc_rule->qos.mbr.downlink &&
- qos_flow->qos.mbr.downlink != pcc_rule->qos.mbr.downlink) ||
- (pcc_rule->qos.mbr.uplink &&
- qos_flow->qos.mbr.uplink != pcc_rule->qos.mbr.uplink) ||
- (pcc_rule->qos.gbr.downlink &&
- qos_flow->qos.gbr.downlink != pcc_rule->qos.gbr.downlink) ||
- (pcc_rule->qos.gbr.uplink &&
- qos_flow->qos.gbr.uplink != pcc_rule->qos.gbr.uplink)) {
- /* Update QoS parameter */
- memcpy(&qos_flow->qos, &pcc_rule->qos, sizeof(ogs_qos_t));
-
- /* Update Bearer Request encodes updated QoS parameter */
- qos_presence = true;
+ /*
+ * Check if any MBR/GBR value is non-zero. This indicates that
+ * the flow might require GBR/MBR-specific handling.
+ */
+ if (pcc_rule->qos.mbr.downlink || pcc_rule->qos.mbr.uplink ||
+ pcc_rule->qos.gbr.downlink || pcc_rule->qos.gbr.uplink) {
+
+ /*
+ * If new packet filters are being added, or if any MBR/GBR
+ * field differs from what is currently set, then we must
+ * update the QoS parameters.
+ */
+ if ((ogs_list_count(&qos_flow->pf_to_add_list) > 0) ||
+ (qos_flow->qos.mbr.downlink != pcc_rule->qos.mbr.downlink) ||
+ (qos_flow->qos.mbr.uplink != pcc_rule->qos.mbr.uplink) ||
+ (qos_flow->qos.gbr.downlink != pcc_rule->qos.gbr.downlink) ||
+ (qos_flow->qos.gbr.uplink != pcc_rule->qos.gbr.uplink)) {
+
+ /*
+ * Update the QoS parameters so that the GBR QoS Flow
+ * Information IE is properly encoded in the upcoming
+ * signaling (NGAP/PFCP) messages.
+ */
+ memcpy(&qos_flow->qos, &pcc_rule->qos, sizeof(ogs_qos_t));
+
+ /*
+ * Setting 'qos_presence' to true triggers encoding of
+ * the QoS IE in the subsequent Bearer Request message.
+ */
+ qos_presence = true;
+ }
}
}
@@ -632,7 +687,7 @@ void smf_qos_flow_binding(smf_sess_t *sess)
* Refer to lib/ipfw/ogs-ipfw.h
* Issue #338
*
- *
+ *
* GX : permit out from to
* -->
* RULE : Source Destination
diff --git a/src/smf/binding.h b/src/smf/binding.h
index 511028e3b3..b8b3774cd8 100644
--- a/src/smf/binding.h
+++ b/src/smf/binding.h
@@ -28,6 +28,7 @@ extern "C" {
void smf_bearer_binding(smf_sess_t *sess);
int smf_gtp2_send_create_bearer_request(smf_bearer_t *bearer);
+int smf_gtp2_send_update_bearer_request(smf_bearer_t *bearer);
void smf_qos_flow_binding(smf_sess_t *sess);
diff --git a/src/smf/context.c b/src/smf/context.c
index c38f63f425..0686a4fee4 100644
--- a/src/smf/context.c
+++ b/src/smf/context.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2023 by Sukchan Lee
+ * Copyright (C) 2019-2024 by Sukchan Lee
*
* This file is part of Open5GS.
*
@@ -53,9 +53,11 @@ int smf_use_gy_iface(void)
{
switch (smf_self()->ctf_config.enabled) {
case SMF_CTF_ENABLED_AUTO:
- return ogs_diam_app_connected(OGS_DIAM_GY_APPLICATION_ID) ? 1 : 0;
+ return ogs_diam_is_relay_or_app_advertised(
+ OGS_DIAM_GY_APPLICATION_ID) ? 1 : 0;
case SMF_CTF_ENABLED_YES:
- return ogs_diam_app_connected(OGS_DIAM_GY_APPLICATION_ID) ? 1 : -1;
+ return ogs_diam_is_relay_or_app_advertised(
+ OGS_DIAM_GY_APPLICATION_ID) ? 1 : -1;
case SMF_CTF_ENABLED_NO:
return 0;
default:
@@ -294,6 +296,7 @@ int smf_context_parse_config(void)
int rv;
yaml_document_t *document = NULL;
ogs_yaml_iter_t root_iter;
+ int idx = 0;
document = ogs_app()->document;
ogs_assert(document);
@@ -305,7 +308,8 @@ int smf_context_parse_config(void)
while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key);
- if (!strcmp(root_key, "smf")) {
+ if ((!strcmp(root_key, "smf")) &&
+ (idx++ == ogs_app()->config_section_id)) {
ogs_yaml_iter_t smf_iter;
ogs_yaml_iter_recurse(&root_iter, &smf_iter);
while (ogs_yaml_iter_next(&smf_iter)) {
@@ -398,6 +402,7 @@ int smf_context_parse_config(void)
const char *identity = NULL;
const char *addr = NULL;
uint16_t port = 0;
+ int tc_timer = 0;
if (ogs_yaml_iter_type(&conn_array) ==
YAML_MAPPING_NODE) {
@@ -430,6 +435,10 @@ int smf_context_parse_config(void)
const char *v =
ogs_yaml_iter_value(&conn_iter);
if (v) port = atoi(v);
+ } else if (!strcmp(conn_key, "tc_timer")) {
+ const char *v =
+ ogs_yaml_iter_value(&conn_iter);
+ if (v) tc_timer = atoi(v);
} else
ogs_warn("unknown key `%s`",
conn_key);
@@ -445,10 +454,16 @@ int smf_context_parse_config(void)
self.diam_config->
conn[self.diam_config->num_of_conn].
port = port;
+ self.diam_config->
+ conn[self.diam_config->num_of_conn].
+ tc_timer = tc_timer;
self.diam_config->num_of_conn++;
}
} while (ogs_yaml_iter_type(&conn_array) ==
YAML_SEQUENCE_NODE);
+ } else if (!strcmp(fd_key, "tc_timer")) {
+ const char *v = ogs_yaml_iter_value(&fd_iter);
+ if (v) self.diam_config->cnf_timer_tc = atoi(v);
} else
ogs_warn("unknown key `%s`", fd_key);
}
@@ -691,7 +706,7 @@ int smf_context_parse_config(void)
s_nssai->sst = atoi(sst);
if (sd)
s_nssai->sd =
- ogs_uint24_from_string(
+ ogs_uint24_from_string_hexadecimal(
(char*)sd);
else
s_nssai->sd.v =
@@ -1003,13 +1018,12 @@ static smf_ue_t *smf_ue_add(void)
{
smf_ue_t *smf_ue = NULL;
- ogs_pool_alloc(&smf_ue_pool, &smf_ue);
+ ogs_pool_id_calloc(&smf_ue_pool, &smf_ue);
if (!smf_ue) {
ogs_error("Maximum number of smf_ue[%lld] reached",
(long long)ogs_global_conf()->max.ue);
return NULL;
}
- memset(smf_ue, 0, sizeof *smf_ue);
ogs_list_init(&smf_ue->sess_list);
@@ -1049,7 +1063,7 @@ smf_ue_t *smf_ue_add_by_imsi(uint8_t *imsi, int imsi_len)
if ((smf_ue = smf_ue_add()) == NULL)
return NULL;;
- smf_ue->imsi_len = imsi_len;
+ smf_ue->imsi_len = ogs_min(imsi_len, OGS_MAX_IMSI_LEN);
memcpy(smf_ue->imsi, imsi, smf_ue->imsi_len);
ogs_buffer_to_bcd(smf_ue->imsi, smf_ue->imsi_len, smf_ue->imsi_bcd);
ogs_hash_set(self.imsi_hash, smf_ue->imsi, smf_ue->imsi_len, smf_ue);
@@ -1074,7 +1088,7 @@ void smf_ue_remove(smf_ue_t *smf_ue)
ogs_hash_set(self.imsi_hash, smf_ue->imsi, smf_ue->imsi_len, NULL);
}
- ogs_pool_free(&smf_ue_pool, smf_ue);
+ ogs_pool_id_free(&smf_ue_pool, smf_ue);
smf_metrics_inst_global_dec(SMF_METR_GLOB_GAUGE_UES_ACTIVE);
ogs_info("[Removed] Number of SMF-UEs is now %d",
@@ -1170,8 +1184,6 @@ static ogs_pfcp_node_t *selected_upf_node(
void smf_sess_select_upf(smf_sess_t *sess)
{
- char buf[OGS_ADDRSTRLEN];
-
ogs_assert(sess);
/*
@@ -1187,8 +1199,9 @@ void smf_sess_select_upf(smf_sess_t *sess)
selected_upf_node(ogs_pfcp_self()->pfcp_node, sess);
ogs_assert(ogs_pfcp_self()->pfcp_node);
OGS_SETUP_PFCP_NODE(sess, ogs_pfcp_self()->pfcp_node);
- ogs_debug("UE using UPF on IP[%s]",
- OGS_ADDR(&ogs_pfcp_self()->pfcp_node->addr, buf));
+ ogs_debug("UE using UPF on IP %s",
+ ogs_sockaddr_to_string_static(
+ ogs_pfcp_self()->pfcp_node->addr_list));
}
smf_sess_t *smf_sess_add_by_apn(smf_ue_t *smf_ue, char *apn, uint8_t rat_type)
@@ -1200,13 +1213,12 @@ smf_sess_t *smf_sess_add_by_apn(smf_ue_t *smf_ue, char *apn, uint8_t rat_type)
ogs_assert(smf_ue);
ogs_assert(apn);
- ogs_pool_alloc(&smf_sess_pool, &sess);
+ ogs_pool_id_calloc(&smf_sess_pool, &sess);
if (!sess) {
ogs_error("Maximum number of session[%lld] reached",
(long long)ogs_app()->pool.sess);
return NULL;
}
- memset(sess, 0, sizeof *sess);
ogs_pfcp_pool_init(&sess->pfcp);
smf_qfi_pool_init(sess);
@@ -1243,10 +1255,10 @@ smf_sess_t *smf_sess_add_by_apn(smf_ue_t *smf_ue, char *apn, uint8_t rat_type)
sess->epc = true;
memset(&e, 0, sizeof(e));
- e.sess = sess;
+ e.sess_id = sess->id;
ogs_fsm_init(&sess->sm, smf_gsm_state_initial, smf_gsm_state_final, &e);
- sess->smf_ue = smf_ue;
+ sess->smf_ue_id = smf_ue->id;
ogs_list_add(&smf_ue->sess_list, sess);
@@ -1278,7 +1290,14 @@ smf_sess_t *smf_sess_add_by_gtp1_message(ogs_gtp1_message_t *message)
if (req->access_point_name.presence == 0) {
ogs_error("No APN");
return NULL;
+ } else {
+ if (ogs_fqdn_parse(apn, req->access_point_name.data,
+ ogs_min(req->access_point_name.len, OGS_MAX_APN_LEN)) <= 0) {
+ ogs_error("Invalid APN");
+ return NULL;
+ }
}
+
if (req->sgsn_address_for_signalling.presence == 0) {
ogs_error("No SGSN Address for signalling");
return NULL;
@@ -1296,12 +1315,6 @@ smf_sess_t *smf_sess_add_by_gtp1_message(ogs_gtp1_message_t *message)
return NULL;
}
- if ((ogs_fqdn_parse(apn, req->access_point_name.data,
- ogs_min(req->access_point_name.len, OGS_MAX_APN_LEN+1))) <= 0) {
- ogs_error("No APN");
- return NULL;
- }
-
ogs_trace("smf_sess_add_by_message() [APN:%s]", apn);
/*
@@ -1349,15 +1362,18 @@ smf_sess_t *smf_sess_add_by_gtp2_message(ogs_gtp2_message_t *message)
if (req->access_point_name.presence == 0) {
ogs_error("No APN");
return NULL;
+ } else {
+ if (ogs_fqdn_parse(apn, req->access_point_name.data,
+ ogs_min(req->access_point_name.len, OGS_MAX_APN_LEN)) <= 0) {
+ ogs_error("Invalid APN");
+ return NULL;
+ }
}
if (req->rat_type.presence == 0) {
ogs_error("No RAT Type");
return NULL;
}
- ogs_assert(0 < ogs_fqdn_parse(apn, req->access_point_name.data,
- ogs_min(req->access_point_name.len, OGS_MAX_APN_LEN)));
-
ogs_trace("smf_sess_add_by_message() [APN:%s]", apn);
/*
@@ -1408,13 +1424,12 @@ smf_sess_t *smf_sess_add_by_psi(smf_ue_t *smf_ue, uint8_t psi)
ogs_assert(smf_ue);
ogs_assert(psi != OGS_NAS_PDU_SESSION_IDENTITY_UNASSIGNED);
- ogs_pool_alloc(&smf_sess_pool, &sess);
+ ogs_pool_id_calloc(&smf_sess_pool, &sess);
if (!sess) {
ogs_error("Maximum number of session[%lld] reached",
(long long)ogs_app()->pool.sess);
return NULL;
}
- memset(sess, 0, sizeof *sess);
/* SBI Features */
OGS_SBI_FEATURES_SET(sess->smpolicycontrol_features,
@@ -1457,13 +1472,14 @@ smf_sess_t *smf_sess_add_by_psi(smf_ue_t *smf_ue, uint8_t psi)
sess->charging.id = sess->index;
memset(&e, 0, sizeof(e));
- e.sess = sess;
+ e.sess_id = sess->id;
ogs_fsm_init(&sess->sm, smf_gsm_state_initial, smf_gsm_state_final, &e);
- sess->smf_ue = smf_ue;
+ sess->smf_ue_id = smf_ue->id;
ogs_list_add(&smf_ue->sess_list, sess);
+ smf_metrics_inst_global_inc(SMF_METR_GLOB_GAUGE_PFCP_SESSIONS_ACTIVE);
stats_add_smf_session();
return sess;
@@ -1524,7 +1540,7 @@ uint8_t smf_sess_set_ue_ip(smf_sess_t *sess)
uint8_t cause_value = OGS_PFCP_CAUSE_REQUEST_ACCEPTED;
ogs_assert(sess);
- smf_ue = sess->smf_ue;
+ smf_ue = smf_ue_find_by_id(sess->smf_ue_id);
ogs_assert(smf_ue);
if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
@@ -1548,13 +1564,18 @@ uint8_t smf_sess_set_ue_ip(smf_sess_t *sess)
subnet = ogs_pfcp_find_subnet_by_dnn(AF_INET, sess->session.name);
subnet6 = ogs_pfcp_find_subnet_by_dnn(AF_INET6, sess->session.name);
- if (subnet != NULL && subnet6 == NULL)
+ if (subnet != NULL && subnet6 == NULL) {
sess->session.session_type = OGS_PDU_SESSION_TYPE_IPV4;
- else if (subnet == NULL && subnet6 != NULL)
+ ogs_error("[%s] No IPv6 subnet or set to /63 or /64, "
+ "only IPv4 assigned", sess->session.name);
+ } else if (subnet == NULL && subnet6 != NULL) {
sess->session.session_type = OGS_PDU_SESSION_TYPE_IPV6;
+ ogs_error("[%s] No IPv4 subnet or set to /31 or /32, "
+ "only IPv6 assigned", sess->session.name);
+ }
}
- sess->session.paa.session_type = sess->session.session_type;
+ sess->paa.session_type = sess->session.session_type;
ogs_assert(sess->session.session_type);
if (sess->ipv4) {
@@ -1575,7 +1596,7 @@ uint8_t smf_sess_set_ue_ip(smf_sess_t *sess)
ogs_error("ogs_pfcp_ue_ip_alloc() failed[%d]", cause_value);
return cause_value;
}
- sess->session.paa.addr = sess->ipv4->addr[0];
+ sess->paa.addr = sess->ipv4->addr[0];
ogs_hash_set(smf_self()->ipv4_hash,
sess->ipv4->addr, OGS_IPV4_LEN, sess);
} else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV6) {
@@ -1589,8 +1610,8 @@ uint8_t smf_sess_set_ue_ip(smf_sess_t *sess)
subnet6 = sess->ipv6->subnet;
ogs_assert(subnet6);
- sess->session.paa.len = OGS_IPV6_DEFAULT_PREFIX_LEN >> 3;
- memcpy(sess->session.paa.addr6, sess->ipv6->addr, OGS_IPV6_LEN);
+ sess->paa.len = OGS_IPV6_DEFAULT_PREFIX_LEN;
+ memcpy(sess->paa.addr6, sess->ipv6->addr, OGS_IPV6_LEN);
ogs_hash_set(smf_self()->ipv6_hash,
sess->ipv6->addr, OGS_IPV6_DEFAULT_PREFIX_LEN >> 3, sess);
} else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
@@ -1617,9 +1638,9 @@ uint8_t smf_sess_set_ue_ip(smf_sess_t *sess)
subnet6 = sess->ipv6->subnet;
ogs_assert(subnet6);
- sess->session.paa.both.addr = sess->ipv4->addr[0];
- sess->session.paa.both.len = OGS_IPV6_DEFAULT_PREFIX_LEN >> 3;
- memcpy(sess->session.paa.both.addr6, sess->ipv6->addr, OGS_IPV6_LEN);
+ sess->paa.both.addr = sess->ipv4->addr[0];
+ sess->paa.both.len = OGS_IPV6_DEFAULT_PREFIX_LEN;
+ memcpy(sess->paa.both.addr6, sess->ipv6->addr, OGS_IPV6_LEN);
ogs_hash_set(smf_self()->ipv4_hash,
sess->ipv4->addr, OGS_IPV4_LEN, sess);
ogs_hash_set(smf_self()->ipv6_hash,
@@ -1666,7 +1687,7 @@ void smf_sess_remove(smf_sess_t *sess)
char buf2[OGS_ADDRSTRLEN];
ogs_assert(sess);
- smf_ue = sess->smf_ue;
+ smf_ue = smf_ue_find_by_id(sess->smf_ue_id);
ogs_assert(smf_ue);
ogs_info("Removed Session: UE IMSI:[%s] DNN:[%s:%d] IPv4:[%s] IPv6:[%s]",
@@ -1678,10 +1699,11 @@ void smf_sess_remove(smf_sess_t *sess)
ogs_list_remove(&smf_ue->sess_list, sess);
memset(&e, 0, sizeof(e));
- e.sess = sess;
+ e.sess_id = sess->id;
ogs_fsm_fini(&sess->sm, &e);
OGS_TLV_CLEAR_DATA(&sess->gtp.ue_pco);
+ OGS_TLV_CLEAR_DATA(&sess->gtp.ue_apco);
OGS_TLV_CLEAR_DATA(&sess->gtp.ue_epco);
OGS_TLV_CLEAR_DATA(&sess->gtp.user_location_information);
OGS_TLV_CLEAR_DATA(&sess->gtp.ue_timezone);
@@ -1723,8 +1745,13 @@ void smf_sess_remove(smf_sess_t *sess)
if (sess->namf.client)
ogs_sbi_client_remove(sess->namf.client);
- if (sess->policy_association_id)
- ogs_free(sess->policy_association_id);
+ PCF_SM_POLICY_CLEAR(sess);
+ if (sess->policy_association.client)
+ ogs_sbi_client_remove(sess->policy_association.client);
+
+ UDM_SDM_CLEAR(sess);
+ if (sess->data_change_subscription.client)
+ ogs_sbi_client_remove(sess->data_change_subscription.client);
if (sess->session.name)
ogs_free(sess->session.name);
@@ -1766,6 +1793,11 @@ void smf_sess_remove(smf_sess_t *sess)
/* Free SBI object memory */
ogs_sbi_object_free(&sess->sbi);
+ if (sess->aaa_server_identifier.name)
+ ogs_free(sess->aaa_server_identifier.name);
+ if (sess->aaa_server_identifier.realm)
+ ogs_free(sess->aaa_server_identifier.realm);
+
smf_bearer_remove_all(sess);
ogs_assert(sess->pfcp.bar);
@@ -1785,10 +1817,11 @@ void smf_sess_remove(smf_sess_t *sess)
smf_metrics_inst_global_dec(SMF_METR_GLOB_GAUGE_GTP2_SESSIONS_ACTIVE);
break;
}
+ smf_metrics_inst_global_dec(SMF_METR_GLOB_GAUGE_PFCP_SESSIONS_ACTIVE);
stats_remove_smf_session(sess);
ogs_pool_free(&smf_n4_seid_pool, sess->smf_n4_seid_node);
- ogs_pool_free(&smf_sess_pool, sess);
+ ogs_pool_id_free(&smf_sess_pool, sess);
}
void smf_sess_remove_all(smf_ue_t *smf_ue)
@@ -1912,9 +1945,8 @@ smf_bearer_t *smf_qos_flow_add(smf_sess_t *sess)
ogs_assert(sess);
- ogs_pool_alloc(&smf_bearer_pool, &qos_flow);
+ ogs_pool_id_calloc(&smf_bearer_pool, &qos_flow);
ogs_assert(qos_flow);
- memset(qos_flow, 0, sizeof *qos_flow);
smf_pf_identifier_pool_init(qos_flow);
@@ -1931,6 +1963,9 @@ smf_bearer_t *smf_qos_flow_add(smf_sess_t *sess)
dl_pdr->src_if = OGS_PFCP_INTERFACE_CORE;
+ dl_pdr->src_if_type_presence = true;
+ dl_pdr->src_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N6;
+
ul_pdr = ogs_pfcp_pdr_add(&sess->pfcp);
ogs_assert(ul_pdr);
qos_flow->ul_pdr = ul_pdr;
@@ -1941,7 +1976,10 @@ smf_bearer_t *smf_qos_flow_add(smf_sess_t *sess)
ul_pdr->src_if = OGS_PFCP_INTERFACE_ACCESS;
- ul_pdr->outer_header_removal_len = 2;
+ ul_pdr->src_if_type_presence = true;
+ ul_pdr->src_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N3_3GPP_ACCESS;
+
+ ul_pdr->outer_header_removal_len = 1;
if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
ul_pdr->outer_header_removal.description =
OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IPV4;
@@ -1951,10 +1989,10 @@ smf_bearer_t *smf_qos_flow_add(smf_sess_t *sess)
} else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
ul_pdr->outer_header_removal.description =
OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
- } else
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
ogs_assert_if_reached();
- ul_pdr->outer_header_removal.gtpu_extheader_deletion =
- OGS_PFCP_PDU_SESSION_CONTAINER_TO_BE_DELETED;
+ }
/* FAR */
dl_far = ogs_pfcp_far_add(&sess->pfcp);
@@ -1966,6 +2004,10 @@ smf_bearer_t *smf_qos_flow_add(smf_sess_t *sess)
ogs_assert(dl_far->apn);
dl_far->dst_if = OGS_PFCP_INTERFACE_ACCESS;
+
+ dl_far->dst_if_type_presence = true;
+ dl_far->dst_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N3_3GPP_ACCESS;
+
ogs_pfcp_pdr_associate_far(dl_pdr, dl_far);
dl_far->apply_action =
@@ -1981,6 +2023,10 @@ smf_bearer_t *smf_qos_flow_add(smf_sess_t *sess)
ogs_assert(ul_far->apn);
ul_far->dst_if = OGS_PFCP_INTERFACE_CORE;
+
+ ul_far->dst_if_type_presence = true;
+ ul_far->dst_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N6;
+
ogs_pfcp_pdr_associate_far(ul_pdr, ul_far);
ul_far->apply_action = OGS_PFCP_APPLY_ACTION_FORW;
@@ -2011,7 +2057,7 @@ smf_bearer_t *smf_qos_flow_add(smf_sess_t *sess)
qos_flow->qfi = ul_pdr->qfi = qer->qfi = *(qos_flow->qfi_node);
- qos_flow->sess = sess;
+ qos_flow->sess_id = sess->id;
ogs_list_add(&sess->bearer_list, qos_flow);
smf_metrics_inst_by_5qi_add(&sess->serving_plmn_id, &sess->s_nssai,
@@ -2043,6 +2089,10 @@ void smf_sess_create_indirect_data_forwarding(smf_sess_t *sess)
pdr->src_if = OGS_PFCP_INTERFACE_ACCESS;
+ pdr->src_if_type_presence = true;
+ pdr->src_if_type =
+ OGS_PFCP_3GPP_INTERFACE_TYPE_SGW_UPF_GTP_U_FOR_UL_DATA_FORWARDING;
+
pdr->outer_header_removal_len = 1;
if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
pdr->outer_header_removal.description =
@@ -2053,8 +2103,10 @@ void smf_sess_create_indirect_data_forwarding(smf_sess_t *sess)
} else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
pdr->outer_header_removal.description =
OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
- } else
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
ogs_assert_if_reached();
+ }
far = ogs_pfcp_far_add(&sess->pfcp);
ogs_assert(far);
@@ -2064,6 +2116,11 @@ void smf_sess_create_indirect_data_forwarding(smf_sess_t *sess)
ogs_assert(far->apn);
far->dst_if = OGS_PFCP_INTERFACE_ACCESS;
+
+ far->dst_if_type_presence = true;
+ far->dst_if_type =
+ OGS_PFCP_3GPP_INTERFACE_TYPE_SGW_UPF_GTP_U_FOR_DL_DATA_FORWARDING;
+
ogs_pfcp_pdr_associate_far(pdr, far);
far->apply_action = OGS_PFCP_APPLY_ACTION_FORW;
@@ -2116,7 +2173,7 @@ void smf_sess_create_indirect_data_forwarding(smf_sess_t *sess)
resource = ogs_pfcp_find_gtpu_resource(
&sess->pfcp_node->gtpu_resource_list,
- sess->session.name, OGS_PFCP_INTERFACE_ACCESS);
+ sess->session.name, pdr->src_if);
if (resource) {
ogs_user_plane_ip_resource_info_to_sockaddr(&resource->info,
@@ -2130,14 +2187,16 @@ void smf_sess_create_indirect_data_forwarding(smf_sess_t *sess)
else
sess->handover.upf_dl_teid = pdr->teid;
} else {
- if (sess->pfcp_node->addr.ogs_sa_family == AF_INET)
+ ogs_assert(sess->pfcp_node->addr_list);
+ if (sess->pfcp_node->addr_list->ogs_sa_family == AF_INET)
ogs_assert(OGS_OK == ogs_copyaddrinfo(
&sess->handover.upf_dl_addr,
- &sess->pfcp_node->addr));
- else if (sess->pfcp_node->addr.ogs_sa_family == AF_INET6)
+ sess->pfcp_node->addr_list));
+ else if (sess->pfcp_node->addr_list->ogs_sa_family ==
+ AF_INET6)
ogs_assert(OGS_OK == ogs_copyaddrinfo(
&sess->handover.upf_dl_addr6,
- &sess->pfcp_node->addr));
+ sess->pfcp_node->addr_list));
else
ogs_assert_if_reached();
@@ -2214,6 +2273,7 @@ void smf_sess_create_cp_up_data_forwarding(smf_sess_t *sess)
ogs_pfcp_far_t *up2cp_far = NULL;
ogs_assert(sess);
+ ogs_assert(sess->session.name);
smf_sess_delete_cp_up_data_forwarding(sess);
@@ -2221,9 +2281,10 @@ void smf_sess_create_cp_up_data_forwarding(smf_sess_t *sess)
ogs_assert(cp2up_pdr);
sess->cp2up_pdr = cp2up_pdr;
- ogs_assert(sess->session.name);
- cp2up_pdr->apn = ogs_strdup(sess->session.name);
- ogs_assert(cp2up_pdr->apn);
+ if (ogs_global_conf()->parameter.use_upg_vpp == true) {
+ cp2up_pdr->apn = ogs_strdup(sess->session.name);
+ ogs_assert(cp2up_pdr->apn);
+ }
cp2up_pdr->src_if = OGS_PFCP_INTERFACE_CP_FUNCTION;
@@ -2237,19 +2298,23 @@ void smf_sess_create_cp_up_data_forwarding(smf_sess_t *sess)
} else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
cp2up_pdr->outer_header_removal.description =
OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
- } else
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
ogs_assert_if_reached();
+ }
up2cp_pdr = ogs_pfcp_pdr_add(&sess->pfcp);
ogs_assert(up2cp_pdr);
sess->up2cp_pdr = up2cp_pdr;
- ogs_assert(sess->session.name);
up2cp_pdr->apn = ogs_strdup(sess->session.name);
ogs_assert(up2cp_pdr->apn);
up2cp_pdr->src_if = OGS_PFCP_INTERFACE_ACCESS;
+ up2cp_pdr->src_if_type_presence = true;
+ up2cp_pdr->src_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N3_3GPP_ACCESS;
+
up2cp_pdr->outer_header_removal_len = 1;
if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
up2cp_pdr->outer_header_removal.description =
@@ -2260,8 +2325,10 @@ void smf_sess_create_cp_up_data_forwarding(smf_sess_t *sess)
} else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
up2cp_pdr->outer_header_removal.description =
OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
- } else
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
ogs_assert_if_reached();
+ }
qos_flow = smf_default_bearer_in_sess(sess);
ogs_assert(qos_flow);
@@ -2277,15 +2344,23 @@ void smf_sess_create_cp_up_data_forwarding(smf_sess_t *sess)
ogs_assert(up2cp_far);
sess->up2cp_far = up2cp_far;
- ogs_assert(sess->session.name);
- up2cp_far->apn = ogs_strdup(sess->session.name);
- ogs_assert(up2cp_far->apn);
+ if (ogs_global_conf()->parameter.use_upg_vpp == true) {
+ up2cp_far->apn = ogs_strdup(sess->session.name);
+ ogs_assert(up2cp_far->apn);
+ }
up2cp_far->dst_if = OGS_PFCP_INTERFACE_CP_FUNCTION;
ogs_pfcp_pdr_associate_far(up2cp_pdr, up2cp_far);
up2cp_far->apply_action = OGS_PFCP_APPLY_ACTION_FORW;
+#if 0
+ /*
+ * MODIFIED the PDI matching for UP2CP
+ * to not distinguish the QoS Flow Identifier.
+ *
+ * When omitted, the UPF was also adjusted to not compare the QFI.
+ */
if (qos_flow->qer && qos_flow->qfi) {
/* To match the PDI of UP2CP_PDR(from ff02::2/128 to assigned)
* Router-Solicitation has QFI in the Extended Header */
@@ -2295,6 +2370,7 @@ void smf_sess_create_cp_up_data_forwarding(smf_sess_t *sess)
* it includes QFI in extension header */
ogs_pfcp_pdr_associate_qer(cp2up_pdr, qos_flow->qer);
}
+#endif
}
void smf_sess_delete_cp_up_data_forwarding(smf_sess_t *sess)
@@ -2353,9 +2429,8 @@ smf_bearer_t *smf_bearer_add(smf_sess_t *sess)
ogs_assert(sess);
- ogs_pool_alloc(&smf_bearer_pool, &bearer);
+ ogs_pool_id_calloc(&smf_bearer_pool, &bearer);
ogs_assert(bearer);
- memset(bearer, 0, sizeof *bearer);
smf_pf_identifier_pool_init(bearer);
@@ -2372,6 +2447,9 @@ smf_bearer_t *smf_bearer_add(smf_sess_t *sess)
dl_pdr->src_if = OGS_PFCP_INTERFACE_CORE;
+ dl_pdr->src_if_type_presence = true;
+ dl_pdr->src_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N6;
+
ul_pdr = ogs_pfcp_pdr_add(&sess->pfcp);
ogs_assert(ul_pdr);
bearer->ul_pdr = ul_pdr;
@@ -2382,6 +2460,9 @@ smf_bearer_t *smf_bearer_add(smf_sess_t *sess)
ul_pdr->src_if = OGS_PFCP_INTERFACE_ACCESS;
+ ul_pdr->src_if_type_presence = true;
+ ul_pdr->src_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N3_3GPP_ACCESS;
+
ul_pdr->outer_header_removal_len = 1;
if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4) {
ul_pdr->outer_header_removal.description =
@@ -2392,8 +2473,10 @@ smf_bearer_t *smf_bearer_add(smf_sess_t *sess)
} else if (sess->session.session_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
ul_pdr->outer_header_removal.description =
OGS_PFCP_OUTER_HEADER_REMOVAL_GTPU_UDP_IP;
- } else
+ } else {
+ ogs_error("Invalid session_type [%d]", sess->session.session_type);
ogs_assert_if_reached();
+ }
/* FAR */
dl_far = ogs_pfcp_far_add(&sess->pfcp);
@@ -2405,6 +2488,10 @@ smf_bearer_t *smf_bearer_add(smf_sess_t *sess)
ogs_assert(dl_far->apn);
dl_far->dst_if = OGS_PFCP_INTERFACE_ACCESS;
+
+ dl_far->dst_if_type_presence = true;
+ dl_far->dst_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N3_3GPP_ACCESS;
+
ogs_pfcp_pdr_associate_far(dl_pdr, dl_far);
dl_far->apply_action =
@@ -2420,11 +2507,15 @@ smf_bearer_t *smf_bearer_add(smf_sess_t *sess)
ogs_assert(ul_far->apn);
ul_far->dst_if = OGS_PFCP_INTERFACE_CORE;
+
+ ul_far->dst_if_type_presence = true;
+ ul_far->dst_if_type = OGS_PFCP_3GPP_INTERFACE_TYPE_N6;
+
ogs_pfcp_pdr_associate_far(ul_pdr, ul_far);
ul_far->apply_action = OGS_PFCP_APPLY_ACTION_FORW;
- bearer->sess = sess;
+ bearer->sess_id = sess->id;
ogs_list_add(&sess->bearer_list, bearer);
@@ -2434,10 +2525,12 @@ smf_bearer_t *smf_bearer_add(smf_sess_t *sess)
int smf_bearer_remove(smf_bearer_t *bearer)
{
+ smf_sess_t *sess = NULL;
ogs_assert(bearer);
- ogs_assert(bearer->sess);
+ sess = smf_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
- ogs_list_remove(&bearer->sess->bearer_list, bearer);
+ ogs_list_remove(&sess->bearer_list, bearer);
ogs_assert(bearer->dl_pdr);
ogs_pfcp_pdr_remove(bearer->dl_pdr);
@@ -2466,9 +2559,9 @@ int smf_bearer_remove(smf_bearer_t *bearer)
smf_pf_identifier_pool_final(bearer);
if (SMF_IS_QOF_FLOW(bearer))
- ogs_pool_free(&bearer->sess->qfi_pool, bearer->qfi_node);
+ ogs_pool_free(&sess->qfi_pool, bearer->qfi_node);
- ogs_pool_free(&smf_bearer_pool, bearer);
+ ogs_pool_id_free(&smf_bearer_pool, bearer);
smf_metrics_inst_global_dec(SMF_METR_GLOB_GAUGE_BEARERS_ACTIVE);
return OGS_OK;
@@ -2569,16 +2662,28 @@ void smf_bearer_tft_update(smf_bearer_t *bearer)
ogs_list_for_each(&bearer->pf_list, pf) {
if (pf->direction == OGS_FLOW_DOWNLINK_ONLY) {
- dl_pdr->flow_description[dl_pdr->num_of_flow++] =
+ dl_pdr->flow[dl_pdr->num_of_flow].fd = 1;
+ dl_pdr->flow[dl_pdr->num_of_flow].description =
pf->flow_description;
-
+ dl_pdr->num_of_flow++;
} else if (pf->direction == OGS_FLOW_UPLINK_ONLY) {
- ul_pdr->flow_description[ul_pdr->num_of_flow++] =
+ ul_pdr->flow[ul_pdr->num_of_flow].fd = 1;
+ ul_pdr->flow[ul_pdr->num_of_flow].description =
+ pf->flow_description;
+ ul_pdr->num_of_flow++;
+ } else if (pf->direction == OGS_FLOW_BIDIRECTIONAL) {
+ dl_pdr->flow[dl_pdr->num_of_flow].fd = 1;
+ dl_pdr->flow[dl_pdr->num_of_flow].description =
pf->flow_description;
+ dl_pdr->flow[dl_pdr->num_of_flow].bid = 1;
+ dl_pdr->flow[dl_pdr->num_of_flow].sdf_filter_id = pf->sdf_filter_id;
+ dl_pdr->num_of_flow++;
+ ul_pdr->flow[ul_pdr->num_of_flow].bid = 1;
+ ul_pdr->flow[ul_pdr->num_of_flow].sdf_filter_id = pf->sdf_filter_id;
+ ul_pdr->num_of_flow++;
} else {
+ ogs_fatal("Unsupported direction [%d]", pf->direction);
ogs_assert_if_reached();
- ogs_fatal("Flow Bidirectional is not supported[%d]",
- pf->direction);
}
}
}
@@ -2591,7 +2696,7 @@ void smf_bearer_qos_update(smf_bearer_t *bearer)
ogs_pfcp_qer_t *qer = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = smf_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
dl_pdr = bearer->dl_pdr;
@@ -2621,24 +2726,29 @@ smf_bearer_t *smf_default_bearer_in_sess(smf_sess_t *sess)
return ogs_list_first(&sess->bearer_list);
}
-smf_ue_t *smf_ue_cycle(smf_ue_t *smf_ue)
+smf_ue_t *smf_ue_find_by_id(ogs_pool_id_t id)
+{
+ return ogs_pool_find_by_id(&smf_ue_pool, id);
+}
+
+smf_sess_t *smf_sess_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&smf_ue_pool, smf_ue);
+ return ogs_pool_find_by_id(&smf_sess_pool, id);
}
-smf_sess_t *smf_sess_cycle(smf_sess_t *sess)
+smf_bearer_t *smf_bearer_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&smf_sess_pool, sess);
+ return ogs_pool_find_by_id(&smf_bearer_pool, id);
}
-smf_bearer_t *smf_bearer_cycle(smf_bearer_t *bearer)
+smf_bearer_t *smf_qos_flow_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&smf_bearer_pool, bearer);
+ return ogs_pool_find_by_id(&smf_bearer_pool, id);
}
-smf_bearer_t *smf_qos_flow_cycle(smf_bearer_t *qos_flow)
+smf_pf_t *smf_pf_find_by_id(ogs_pool_id_t id)
{
- return ogs_pool_cycle(&smf_bearer_pool, qos_flow);
+ return ogs_pool_find_by_id(&smf_pf_pool, id);
}
smf_pf_t *smf_pf_add(smf_bearer_t *bearer)
@@ -2647,17 +2757,16 @@ smf_pf_t *smf_pf_add(smf_bearer_t *bearer)
smf_pf_t *pf = NULL;
ogs_assert(bearer);
- sess = bearer->sess;
+ sess = smf_sess_find_by_id(bearer->sess_id);
ogs_assert(sess);
- ogs_pool_alloc(&smf_pf_pool, &pf);
+ ogs_pool_id_calloc(&smf_pf_pool, &pf);
ogs_assert(pf);
- memset(pf, 0, sizeof *pf);
ogs_pool_alloc(&bearer->pf_identifier_pool, &pf->identifier_node);
if (!pf->identifier_node) {
ogs_error("smf_pf_add: Expectation `pf->identifier_node' failed");
- ogs_pool_free(&smf_pf_pool, pf);
+ ogs_pool_id_free(&smf_pf_pool, pf);
return NULL;
}
@@ -2669,7 +2778,7 @@ smf_pf_t *smf_pf_add(smf_bearer_t *bearer)
if (!pf->precedence_node) {
ogs_error("smf_pf_add: Expectation `pf->precedence_node' failed");
ogs_pool_free(&bearer->pf_identifier_pool, pf->identifier_node);
- ogs_pool_free(&smf_pf_pool, pf);
+ ogs_pool_id_free(&smf_pf_pool, pf);
return NULL;
}
@@ -2677,7 +2786,10 @@ smf_pf_t *smf_pf_add(smf_bearer_t *bearer)
ogs_assert(pf->precedence > 0 && pf->precedence <=
(OGS_MAX_NUM_OF_BEARER * OGS_MAX_NUM_OF_FLOW_IN_BEARER));
- pf->bearer = bearer;
+ /* Re-use 'pf_precedence_pool' to generate SDF Filter ID */
+ pf->sdf_filter_id = *(pf->precedence_node);
+
+ pf->bearer_id = bearer->id;
ogs_list_add(&bearer->pf_list, pf);
@@ -2686,21 +2798,26 @@ smf_pf_t *smf_pf_add(smf_bearer_t *bearer)
int smf_pf_remove(smf_pf_t *pf)
{
+ smf_sess_t *sess = NULL;
+ smf_bearer_t *bearer = NULL;
+
ogs_assert(pf);
- ogs_assert(pf->bearer);
- ogs_assert(pf->bearer->sess);
+ bearer = smf_bearer_find_by_id(pf->bearer_id);
+ ogs_assert(bearer);
+ sess = smf_sess_find_by_id(bearer->sess_id);
+ ogs_assert(sess);
- ogs_list_remove(&pf->bearer->pf_list, pf);
+ ogs_list_remove(&bearer->pf_list, pf);
if (pf->flow_description)
ogs_free(pf->flow_description);
if (pf->identifier_node)
- ogs_pool_free(&pf->bearer->pf_identifier_pool, pf->identifier_node);
+ ogs_pool_free(&bearer->pf_identifier_pool, pf->identifier_node);
if (pf->precedence_node)
ogs_pool_free(
- &pf->bearer->sess->pf_precedence_pool, pf->precedence_node);
+ &sess->pf_precedence_pool, pf->precedence_node);
- ogs_pool_free(&smf_pf_pool, pf);
+ ogs_pool_id_free(&smf_pf_pool, pf);
return OGS_OK;
}
@@ -2714,12 +2831,13 @@ void smf_pf_remove_all(smf_bearer_t *bearer)
smf_pf_remove(pf);
}
-smf_pf_t *smf_pf_find_by_id(smf_bearer_t *bearer, uint8_t id)
+smf_pf_t *smf_pf_find_by_identifier(
+ smf_bearer_t *bearer, uint8_t identifier)
{
smf_pf_t *pf = NULL;
ogs_list_for_each(&bearer->pf_list, pf) {
- if (pf->identifier == id) return pf;
+ if (pf->identifier == identifier) return pf;
}
return NULL;
@@ -2865,6 +2983,7 @@ int smf_pco_build(uint8_t *pco_buf, uint8_t *buffer, int length)
ogs_assert(num_of_ipcp <= OGS_PCO_MAX_NUM_OF_IPCP);
pco_ipcp[num_of_ipcp].code = 2; /* Code : Configuration Ack */
+ pco_ipcp[num_of_ipcp].identifier = ipcp->identifier; /* ID: Needs to match request */
out_len = 4;
/* Primary DNS Server IP Address */
@@ -3002,7 +3121,10 @@ int smf_pco_build(uint8_t *pco_buf, uint8_t *buffer, int length)
/* TODO */
break;
case OGS_PCO_ID_MS_SUPPORT_LOCAL_ADDR_TFT_INDICATOR:
- /* TODO */
+ smf.ids[smf.num_of_id].id = ue.ids[i].id;
+ smf.ids[smf.num_of_id].len = 0;
+ smf.ids[smf.num_of_id].data = 0;
+ smf.num_of_id++;
break;
case OGS_PCO_ID_P_CSCF_RE_SELECTION_SUPPORT:
/* TODO */
diff --git a/src/smf/context.h b/src/smf/context.h
index 1cef8053f8..b43fc6b84f 100644
--- a/src/smf/context.h
+++ b/src/smf/context.h
@@ -112,6 +112,7 @@ typedef struct smf_gtp_node_s {
typedef struct smf_ue_s {
ogs_lnode_t lnode;
+ ogs_pool_id_t id;
/* SUPI */
char *supi;
@@ -138,7 +139,7 @@ typedef struct smf_ue_s {
do { \
smf_ue_t *smf_ue = NULL; \
ogs_assert(__sESS); \
- smf_ue = (__sESS)->smf_ue; \
+ smf_ue = smf_ue_find_by_id((__sESS)->smf_ue_id); \
ogs_assert(smf_ue); \
smf_metrics_inst_by_slice_add(&(__sESS)->serving_plmn_id, \
&(__sESS)->s_nssai, SMF_METR_GAUGE_SM_SESSIONNBR, -1); \
@@ -155,23 +156,28 @@ typedef struct smf_pf_s {
ogs_lnode_t lnode;
ogs_lnode_t to_add_node;
+ ogs_pool_id_t id;
+
ED3(uint8_t spare:2;,
uint8_t direction:2;,
uint8_t identifier:4;)
uint8_t precedence; /* Only used in EPC */
+ uint32_t sdf_filter_id; /* SDF Filter ID */
+
uint8_t *identifier_node; /* Pool-Node for Identifier */
uint8_t *precedence_node; /* Pool-Node for Precedence */
ogs_ipfw_rule_t ipfw_rule;
char *flow_description;
- smf_bearer_t *bearer;
+ ogs_pool_id_t bearer_id;
} smf_pf_t;
typedef struct smf_bearer_s {
ogs_lnode_t lnode; /**< A node of list_t */
+ ogs_pool_id_t id;
ogs_lnode_t to_modify_node;
ogs_lnode_t to_delete_node;
@@ -210,12 +216,13 @@ typedef struct smf_bearer_s {
uint8_t num_of_pf_to_delete;
uint8_t pf_to_delete[OGS_MAX_NUM_OF_FLOW_IN_NAS];
- smf_sess_t *sess;
+ ogs_pool_id_t sess_id;
} smf_bearer_t;
#define SMF_SESS(pfcp_sess) ogs_container_of(pfcp_sess, smf_sess_t, pfcp)
typedef struct smf_sess_s {
ogs_sbi_object_t sbi;
+ ogs_pool_id_t id;
uint32_t index; /* An index of this node */
ogs_pool_id_t *smf_n4_seid_node; /* A node of SMF-N4-SEID */
@@ -226,6 +233,8 @@ typedef struct smf_sess_s {
uint32_t gx_cca_init_err; /* Gx CCA RXed error code */
bool gy_ccr_init_in_flight; /* Waiting for Gy CCA */
uint32_t gy_cca_init_err; /* Gy CCA RXed error code */
+ bool s6b_aar_in_flight; /* Waiting for S6B AAR */
+ uint32_t s6b_aaa_err; /* S6B AAA RXed error code */
bool gx_ccr_term_in_flight; /* Waiting for Gx CCA */
uint32_t gx_cca_term_err; /* Gx CCA RXed error code */
bool gy_ccr_term_in_flight; /* Waiting for Gy CCA */
@@ -280,7 +289,65 @@ typedef struct smf_sess_s {
/* PCF sends the RESPONSE
* of [POST] /npcf-smpolocycontrol/v1/policies */
- char *policy_association_id;
+#define PCF_SM_POLICY_ASSOCIATED(__sESS) \
+ ((__sESS) && ((__sESS)->policy_association.id))
+#define PCF_SM_POLICY_CLEAR(__sESS) \
+ do { \
+ ogs_assert((__sESS)); \
+ if ((__sESS)->policy_association.resource_uri) \
+ ogs_free((__sESS)->policy_association.resource_uri); \
+ (__sESS)->policy_association.resource_uri = NULL; \
+ if ((__sESS)->policy_association.id) \
+ ogs_free((__sESS)->policy_association.id); \
+ (__sESS)->policy_association.id = NULL; \
+ } while(0)
+#define PCF_SM_POLICY_STORE(__sESS, __rESOURCE_URI, __iD) \
+ do { \
+ ogs_assert((__sESS)); \
+ ogs_assert((__rESOURCE_URI)); \
+ ogs_assert((__iD)); \
+ PCF_SM_POLICY_CLEAR(__sESS); \
+ (__sESS)->policy_association.resource_uri = ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__sESS)->policy_association.resource_uri); \
+ (__sESS)->policy_association.id = ogs_strdup(__iD); \
+ ogs_assert((__sESS)->policy_association.id); \
+ } while(0)
+ struct {
+ char *resource_uri;
+ char *id;
+ ogs_sbi_client_t *client;
+ } policy_association;
+
+ /* SubscriptionId of Subscription to Data Change Notification to UDM */
+#define UDM_SDM_SUBSCRIBED(__sESS) \
+ ((__sESS) && ((__sESS)->data_change_subscription.id))
+#define UDM_SDM_CLEAR(__sESS) \
+ do { \
+ ogs_assert((__sESS)); \
+ if ((__sESS)->data_change_subscription.resource_uri) \
+ ogs_free((__sESS)->data_change_subscription.resource_uri); \
+ (__sESS)->data_change_subscription.resource_uri = NULL; \
+ if ((__sESS)->data_change_subscription.id) \
+ ogs_free((__sESS)->data_change_subscription.id); \
+ (__sESS)->data_change_subscription.id = NULL; \
+ } while(0)
+#define UDM_SDM_STORE(__sESS, __rESOURCE_URI, __iD) \
+ do { \
+ ogs_assert((__sESS)); \
+ ogs_assert((__rESOURCE_URI)); \
+ ogs_assert((__iD)); \
+ UDM_SDM_CLEAR(__sESS); \
+ (__sESS)->data_change_subscription.resource_uri = \
+ ogs_strdup(__rESOURCE_URI); \
+ ogs_assert((__sESS)->data_change_subscription.resource_uri); \
+ (__sESS)->data_change_subscription.id = ogs_strdup(__iD); \
+ ogs_assert((__sESS)->data_change_subscription.id); \
+ } while(0)
+ struct {
+ char *resource_uri;
+ char *id;
+ ogs_sbi_client_t *client;
+ } data_change_subscription;
OpenAPI_up_cnx_state_e up_cnx_state;
@@ -312,12 +379,16 @@ typedef struct smf_sess_s {
/* S_NSSAI */
ogs_s_nssai_t s_nssai;
ogs_s_nssai_t mapped_hplmn;
+ bool mapped_hplmn_presence;
/* PDN Configuration */
ogs_session_t session;
uint8_t ue_session_type;
uint8_t ue_ssc_mode;
+ /* PDN Address Allocation (PAA) */
+ ogs_paa_t paa;
+
/* DNN */
char *full_dnn;
@@ -331,6 +402,7 @@ typedef struct smf_sess_s {
struct {
uint8_t version; /* GTPC version */
ogs_tlv_octet_t ue_pco;
+ ogs_tlv_octet_t ue_apco;
ogs_tlv_octet_t ue_epco;
ogs_tlv_octet_t user_location_information;
ogs_tlv_octet_t ue_timezone;
@@ -352,6 +424,9 @@ typedef struct smf_sess_s {
uint64_t dl_octets;
ogs_time_t duration;
uint32_t reporting_reason; /* OGS_DIAM_GY_REPORTING_REASON_* */
+ /* Whether Gy Final-Unit-Indication was received.
+ * Triggers session release upon Rx of next PFCP Report Req */
+ bool final_unit;
/* Snapshot of measurement when last report was sent: */
struct {
uint64_t ul_octets;
@@ -412,6 +487,12 @@ typedef struct smf_sess_s {
uint32_t id;
} charging;
+ /* AAA Node Identifier */
+ struct {
+ char *name;
+ char *realm;
+ } aaa_server_identifier;
+
/* Data Forwarding between the CP and UP functions */
ogs_pfcp_pdr_t *cp2up_pdr;
ogs_pfcp_pdr_t *up2cp_pdr;
@@ -426,7 +507,7 @@ typedef struct smf_sess_s {
ogs_gtp_node_t *gnode;
ogs_pfcp_node_t *pfcp_node;
- smf_ue_t *smf_ue;
+ ogs_pool_id_t smf_ue_id;
bool n1_released;
bool n2_released;
@@ -506,15 +587,17 @@ smf_bearer_t *smf_default_bearer_in_sess(smf_sess_t *sess);
void smf_bearer_tft_update(smf_bearer_t *bearer);
void smf_bearer_qos_update(smf_bearer_t *bearer);
-smf_ue_t *smf_ue_cycle(smf_ue_t *smf_ue);
-smf_sess_t *smf_sess_cycle(smf_sess_t *sess);
-smf_bearer_t *smf_qos_flow_cycle(smf_bearer_t *qos_flow);
-smf_bearer_t *smf_bearer_cycle(smf_bearer_t *bearer);
+smf_ue_t *smf_ue_find_by_id(ogs_pool_id_t id);
+smf_sess_t *smf_sess_find_by_id(ogs_pool_id_t id);
+smf_bearer_t *smf_bearer_find_by_id(ogs_pool_id_t id);
+smf_bearer_t *smf_qos_flow_find_by_id(ogs_pool_id_t id);
+smf_pf_t *smf_pf_find_by_id(ogs_pool_id_t id);
smf_pf_t *smf_pf_add(smf_bearer_t *bearer);
int smf_pf_remove(smf_pf_t *pf);
void smf_pf_remove_all(smf_bearer_t *bearer);
-smf_pf_t *smf_pf_find_by_id(smf_bearer_t *smf_bearer, uint8_t id);
+smf_pf_t *smf_pf_find_by_identifier(
+ smf_bearer_t *bearer, uint8_t identifier);
smf_pf_t *smf_pf_find_by_flow(
smf_bearer_t *bearer, uint8_t direction, char *flow_description);
smf_pf_t *smf_pf_first(smf_bearer_t *bearer);
diff --git a/src/smf/event.h b/src/smf/event.h
index 258681c6de..1bf1d5a6ed 100644
--- a/src/smf/event.h
+++ b/src/smf/event.h
@@ -72,10 +72,10 @@ typedef struct smf_event_s {
ogs_pkbuf_t *pkbuf;
smf_gtp_node_t *gnode;
- ogs_gtp_xact_t *gtp_xact;
+ ogs_pool_id_t gtp_xact_id;
ogs_pfcp_node_t *pfcp_node;
- ogs_pfcp_xact_t *pfcp_xact;
+ ogs_pool_id_t pfcp_xact_id;
ogs_pfcp_message_t *pfcp_message;
union {
@@ -99,7 +99,7 @@ typedef struct smf_event_s {
ogs_nas_5gs_message_t *message;
} nas;
- smf_sess_t *sess;
+ ogs_pool_id_t sess_id;
} smf_event_t;
OGS_STATIC_ASSERT(OGS_EVENT_SIZE >= sizeof(smf_event_t));
diff --git a/src/smf/fd-path.c b/src/smf/fd-path.c
index f239fa6fe1..0186f840f3 100644
--- a/src/smf/fd-path.c
+++ b/src/smf/fd-path.c
@@ -100,7 +100,10 @@ void smf_fd_msg_avp_add_3gpp_uli(smf_sess_t *sess, struct msg *req)
/* GTPv2C and Diameter 3GPP-User-Location-Information encoding don't match */
uli_len = ogs_gtp2_parse_uli(
&uli, &sess->gtp.user_location_information);
- ogs_assert(sess->gtp.user_location_information.len == uli_len);
+ if (sess->gtp.user_location_information.len != uli_len) {
+ ogs_error("Invalid User Location Information(ULI)");
+ return;
+ }
ogs_assert(sess->gtp.user_location_information.data);
ogs_assert(sess->gtp.user_location_information.len);
diff --git a/src/smf/fd-path.h b/src/smf/fd-path.h
index 3867e4df4d..773225bf10 100644
--- a/src/smf/fd-path.h
+++ b/src/smf/fd-path.h
@@ -38,9 +38,9 @@ void smf_gy_final(void);
int smf_s6b_init(void);
void smf_s6b_final(void);
-void smf_gx_send_ccr(smf_sess_t *sess, ogs_gtp_xact_t *xact,
+void smf_gx_send_ccr(smf_sess_t *sess, ogs_pool_id_t xact_id,
uint32_t cc_request_type);
-void smf_gy_send_ccr(smf_sess_t *sess, void *xact,
+void smf_gy_send_ccr(smf_sess_t *sess, ogs_pool_id_t xact_id,
uint32_t cc_request_type);
void smf_s6b_send_aar(smf_sess_t *sess, ogs_gtp_xact_t *xact);
diff --git a/src/smf/gn-build.c b/src/smf/gn-build.c
index d05b4e1776..abdc8e4d0c 100644
--- a/src/smf/gn-build.c
+++ b/src/smf/gn-build.c
@@ -32,6 +32,23 @@ static void build_qos_profile_from_session(ogs_gtp1_qos_profile_decoded_t *qos_p
qos_pdec->qos_profile.arp = sess->session.qos.arp.priority_level;
+ /* 3GPP TS 23.107 "Delivery order should be set to 'no' for PDP Type =
+ * 'IPv4' or 'IPv6'. The SGSN shall ensure that the appropriate value is set."
+ * 3GPP TS 23.401 D.3.5 2b NOTE4: The GTP and PDCP sequence numbers are not
+ * relevant as the network does not configure usage of "delivery order
+ * required" [...] as described in clause "compatibility issues" (4.8.1) */
+ qos_pdec->qos_profile.data.delivery_order = OGS_GTP1_DELIVERY_ORDER_NO;
+
+ qos_pdec->qos_profile.data.delivery_erroneous_sdu = OGS_GTP1_DELIVERY_ERR_SDU_NO;
+
+ /* Maximum SDU Size: If value is set to a valid value, reuse it: */
+ if (sess->gtp.v1.qos_pdec.qos_profile.data.max_sdu_size >= 0x01 &&
+ sess->gtp.v1.qos_pdec.qos_profile.data.max_sdu_size <= 0x99) {
+ qos_pdec->qos_profile.data.max_sdu_size = sess->gtp.v1.qos_pdec.qos_profile.data.max_sdu_size;
+ } else { /* Encode it as 1500, the maximum for IP 3GPP TS 23.107 Table 4, Note 4) */
+ qos_pdec->qos_profile.data.max_sdu_size = 0x96;
+ }
+
/* 3GPP TS 23.401 Annex E table Table E.3 */
/* Also take into account table 7 in 3GPP TS 23.107 9.1.2.2 */
switch (sess->session.qos.index) { /* QCI */
@@ -174,9 +191,20 @@ ogs_pkbuf_t *smf_gn_build_create_pdp_context_response(
rsp->charging_id.u32 = sess->charging.id;
/* End User Address */
- rv = ogs_paa_to_ip(&sess->session.paa, &ip_eua);
+ rv = ogs_paa_to_ip(&sess->paa, &ip_eua);
+ /* Clang scan-build SA: Value stored is not used: add check for rv error. */
+ if (rv != OGS_OK) {
+ ogs_error("ogs_paa_to_ip() failed");
+ return NULL;
+ }
rv = ogs_gtp1_ip_to_eua(sess->session.session_type, &ip_eua, &eua,
&eua_len);
+ /* Clang scan-build SA: Value stored is not used: add check for rv error. */
+ if (rv != OGS_OK) {
+ ogs_error("ogs_gtp1_ip_to_eua() failed");
+ return NULL;
+ }
+
rsp->end_user_address.presence = 1;
rsp->end_user_address.data = &eua;
rsp->end_user_address.len = eua_len;
diff --git a/src/smf/gn-handler.c b/src/smf/gn-handler.c
index 47a7ca55c3..c4c35b6ca7 100644
--- a/src/smf/gn-handler.c
+++ b/src/smf/gn-handler.c
@@ -110,7 +110,7 @@ uint8_t smf_gn_handle_create_pdp_context_request(
cause_value = OGS_GTP1_CAUSE_MANDATORY_IE_MISSING;
}
- if (!ogs_diam_app_connected(OGS_DIAM_GX_APPLICATION_ID)) {
+ if (!ogs_diam_is_relay_or_app_advertised(OGS_DIAM_GX_APPLICATION_ID)) {
ogs_error("No Gx Diameter Peer");
cause_value = OGS_GTP1_CAUSE_NO_RESOURCES_AVAILABLE;
}
@@ -118,7 +118,7 @@ uint8_t smf_gn_handle_create_pdp_context_request(
if (cause_value != OGS_GTP1_CAUSE_REQUEST_ACCEPTED)
return cause_value;
- smf_ue = sess->smf_ue;
+ smf_ue = smf_ue_find_by_id(sess->smf_ue_id);
ogs_assert(smf_ue);
/* Store NSAPI */
@@ -309,7 +309,7 @@ uint8_t smf_gn_handle_delete_pdp_context_request(
{
ogs_debug("Delete PDP Context Request");
- if (!ogs_diam_app_connected(OGS_DIAM_GX_APPLICATION_ID)) {
+ if (!ogs_diam_is_relay_or_app_advertised(OGS_DIAM_GX_APPLICATION_ID)) {
ogs_error("No Gx Diameter Peer");
return OGS_GTP1_CAUSE_NO_RESOURCES_AVAILABLE;
}
@@ -383,7 +383,7 @@ void smf_gn_handle_update_pdp_context_request(
}
ogs_assert(sess);
- smf_ue = sess->smf_ue;
+ smf_ue = smf_ue_find_by_id(sess->smf_ue_id);
ogs_assert(smf_ue);
ogs_debug(" SGW_S5C_TEID[0x%x] SMF_N4_TEID[0x%x]",
@@ -485,7 +485,7 @@ void smf_gn_handle_update_pdp_context_request(
h.teid = sess->sgw_s5c_teid;
/* Set bearer so it's accessible later when handling PFCP Session Modification Response */
- xact->data = bearer;
+ xact->data = OGS_UINT_TO_POINTER(bearer->id);
/* Update remote TEID and GTP-U IP address on the UPF. UpdatePDPContextResp
* will be sent when UPF answers back this request
@@ -509,7 +509,7 @@ void smf_gn_handle_update_pdp_context_request(
}
}
- rv = smf_epc_pfcp_send_all_pdr_modification_request(sess, xact, NULL,
+ rv = smf_epc_pfcp_send_all_pdr_modification_request(sess, xact->id, NULL,
OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_ACTIVATE,
OGS_NAS_PROCEDURE_TRANSACTION_IDENTITY_UNASSIGNED,
OGS_GTP1_CAUSE_REACTIACTION_REQUESTED);
diff --git a/src/smf/gsm-build.c b/src/smf/gsm-build.c
index b67a9ba4c0..5cead5c8da 100644
--- a/src/smf/gsm-build.c
+++ b/src/smf/gsm-build.c
@@ -154,16 +154,16 @@ ogs_pkbuf_t *gsm_build_pdu_session_establishment_accept(smf_sess_t *sess)
pdu_address->pdn_type = sess->session.session_type;
if (pdu_address->pdn_type == OGS_PDU_SESSION_TYPE_IPV4) {
- pdu_address->addr = sess->session.paa.addr;
+ pdu_address->addr = sess->paa.addr;
pdu_address->length = OGS_NAS_PDU_ADDRESS_IPV4_LEN;
} else if (pdu_address->pdn_type == OGS_PDU_SESSION_TYPE_IPV6) {
memcpy(pdu_address->addr6,
- sess->session.paa.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
+ sess->paa.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
pdu_address->length = OGS_NAS_PDU_ADDRESS_IPV6_LEN;
} else if (pdu_address->pdn_type == OGS_PDU_SESSION_TYPE_IPV4V6) {
- pdu_address->both.addr = sess->session.paa.both.addr;
+ pdu_address->both.addr = sess->paa.both.addr;
memcpy(pdu_address->both.addr6,
- sess->session.paa.both.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
+ sess->paa.both.addr6+(OGS_IPV6_LEN>>1), OGS_IPV6_LEN>>1);
pdu_address->length = OGS_NAS_PDU_ADDRESS_IPV4V6_LEN;
} else {
ogs_error("Unexpected PDN Type %u", pdu_address->pdn_type);
@@ -186,7 +186,8 @@ ogs_pkbuf_t *gsm_build_pdu_session_establishment_accept(smf_sess_t *sess)
/* S-NSSAI */
pdu_session_establishment_accept->presencemask |=
OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_PRESENT;
- ogs_nas_build_s_nssai2(nas_s_nssai, &sess->s_nssai, &sess->mapped_hplmn);
+ ogs_nas_build_s_nssai2(nas_s_nssai, &sess->s_nssai,
+ (sess->mapped_hplmn_presence) ? &sess->mapped_hplmn : NULL);
/* QoS flow descriptions */
memset(&qos_flow_description, 0, sizeof(qos_flow_description));
diff --git a/src/smf/gsm-handler.c b/src/smf/gsm-handler.c
index 058de32609..66b9638dbe 100644
--- a/src/smf/gsm-handler.c
+++ b/src/smf/gsm-handler.c
@@ -212,7 +212,7 @@ int gsm_handle_pdu_session_modification_request(
ogs_pkbuf_t *n1smbuf = NULL;
ogs_assert(sess);
- smf_ue = sess->smf_ue;
+ smf_ue = smf_ue_find_by_id(sess->smf_ue_id);
ogs_assert(smf_ue);
ogs_assert(stream);
ogs_assert(pdu_session_modification_request);
@@ -229,7 +229,11 @@ int gsm_handle_pdu_session_modification_request(
int num_of_rule = 0;
num_of_rule = ogs_nas_parse_qos_rules(qos_rule, requested_qos_rules);
- ogs_assert(num_of_rule > 0);
+ if (!num_of_rule) {
+ ogs_error("[%s:%d] Invalid modification request",
+ smf_ue->supi, sess->psi);
+ goto cleanup;
+ }
for (i = 0; i < num_of_rule; i++) {
qos_flow = smf_qos_flow_find_by_qfi(
@@ -247,87 +251,21 @@ int gsm_handle_pdu_session_modification_request(
pfcp_flags |= OGS_PFCP_MODIFY_REMOVE;
qos_flow_find_or_add(&sess->qos_flow_to_modify_list,
qos_flow, to_modify_node);
- } else if (qos_rule[i].code ==
- OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_REPLACE_PACKET_FILTERS) {
- for (j = 0; j < qos_rule[i].num_of_packet_filter &&
- j < OGS_MAX_NUM_OF_FLOW_IN_NAS; j++) {
-
- pf = smf_pf_find_by_id(
- qos_flow, qos_rule[i].pf[j].identifier+1);
- if (pf) {
- ogs_assert(
- reconfigure_packet_filter(pf, &qos_rule[i], i) > 0);
- /*
- * Refer to lib/ipfw/ogs-ipfw.h
- * Issue #338
- *
- *
- * TFT : Local REMOTE
- * -->
- * RULE : Source Destination
- *
- *
- * TFT : Local REMOTE
- * -->
- * RULE : Source Destination
- */
- if (pf->direction == OGS_FLOW_DOWNLINK_ONLY)
- ogs_ipfw_rule_swap(&pf->ipfw_rule);
-
- if (pf->flow_description)
- ogs_free(pf->flow_description);
-
- /*
- * Issue #338
- *
- *
- * RULE : Source Destination
- * -->
- * GX : permit out from to
- * PFCP : permit out from to
- *
- *
- * RULE : Source Destination
- * -->
- * GX : permit out from to
- * PFCP : permit out from to
- */
- if (pf->direction == OGS_FLOW_UPLINK_ONLY) {
- ogs_ipfw_rule_t tmp;
- ogs_ipfw_copy_and_swap(&tmp, &pf->ipfw_rule);
- pf->flow_description =
- ogs_ipfw_encode_flow_description(&tmp);
- ogs_assert(pf->flow_description);
- } else {
- pf->flow_description =
- ogs_ipfw_encode_flow_description(
- &pf->ipfw_rule);
- ogs_assert(pf->flow_description);
- }
-
- pfcp_flags |= OGS_PFCP_MODIFY_TFT_REPLACE;
- qos_flow_find_or_add(&sess->qos_flow_to_modify_list,
- qos_flow, to_modify_node);
-
- ogs_list_add(
- &qos_flow->pf_to_add_list, &pf->to_add_node);
- }
- }
} else if (qos_rule[i].code ==
OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE ||
qos_rule[i].code ==
- OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_ADD_PACKET_FILTERS) {
+ OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_ADD_PACKET_FILTERS ||
+ qos_rule[i].code ==
+ OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_REPLACE_ALL_PACKET_FILTERS) {
- if (qos_rule[i].code == OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE)
+ if (qos_rule[i].code == OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE ||
+ qos_rule[i].code == OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_REPLACE_ALL_PACKET_FILTERS)
smf_pf_remove_all(qos_flow);
for (j = 0; j < qos_rule[i].num_of_packet_filter &&
j < OGS_MAX_NUM_OF_FLOW_IN_NAS; j++) {
- pf = smf_pf_find_by_id(
- qos_flow, qos_rule[i].pf[j].identifier+1);
- if (!pf)
- pf = smf_pf_add(qos_flow);
+ pf = smf_pf_add(qos_flow);
ogs_assert(pf);
ogs_assert(
@@ -336,7 +274,7 @@ int gsm_handle_pdu_session_modification_request(
* Refer to lib/ipfw/ogs-ipfw.h
* Issue #338
*
- *
+ *
* TFT : Local REMOTE
* -->
* RULE : Source Destination