mirror of
https://github.com/open5gs/open5gs.git
synced 2025-11-01 04:23:40 +00:00
Compare commits
199 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f61a796058 | ||
|
|
8f24cedf41 | ||
|
|
dd8f043448 | ||
|
|
9032865688 | ||
|
|
f27fce9f6d | ||
|
|
c79e0efef4 | ||
|
|
016a1447d0 | ||
|
|
3a468b0a89 | ||
|
|
9ed56b5a7d | ||
|
|
019dc91d5d | ||
|
|
4f6986e2f4 | ||
|
|
2c5733ae51 | ||
|
|
9fe51ba0ee | ||
|
|
dd063a1d5f | ||
|
|
869cfdd403 | ||
|
|
9563788c41 | ||
|
|
3b601cff9c | ||
|
|
a1a0192f8a | ||
|
|
9c628b02bd | ||
|
|
ab40e8919f | ||
|
|
35fab037c1 | ||
|
|
c61359f6ac | ||
|
|
cd983a0884 | ||
|
|
615414f95a | ||
|
|
6c1f2c4caf | ||
|
|
0b3ac149af | ||
|
|
f32ccfbb31 | ||
|
|
eace5007b2 | ||
|
|
71a1516b03 | ||
|
|
1acb7f72b4 | ||
|
|
773c7df3e6 | ||
|
|
f71022ad4a | ||
|
|
4b26dd2a5c | ||
|
|
f72a1edc6e | ||
|
|
1d153d8b78 | ||
|
|
0c6258d108 | ||
|
|
8b10dc1edc | ||
|
|
7d5fbc6e06 | ||
|
|
e08b8f04e8 | ||
|
|
87bc82b245 | ||
|
|
2d4fbf92eb | ||
|
|
721f5e212c | ||
|
|
e704ac108e | ||
|
|
fdc84406e0 | ||
|
|
31fcedc12e | ||
|
|
0759c2da5a | ||
|
|
724fa56843 | ||
|
|
c2f6a020a7 | ||
|
|
3ad74923c1 | ||
|
|
a0d643e17f | ||
|
|
7f5476b111 | ||
|
|
2b8db5d488 | ||
|
|
d3d4e5ce60 | ||
|
|
ce7d631064 | ||
|
|
65d959a032 | ||
|
|
2762d6fd2d | ||
|
|
d63360a22d | ||
|
|
608df3b5a8 | ||
|
|
8228e446ae | ||
|
|
0f5d968149 | ||
|
|
5520cb65a5 | ||
|
|
775520d7a8 | ||
|
|
53d75e74cb | ||
|
|
a0b7865a43 | ||
|
|
1f165c1c33 | ||
|
|
31a3788021 | ||
|
|
f54bccacf5 | ||
|
|
87cd34d300 | ||
|
|
eb55e4ee3a | ||
|
|
36254e5df4 | ||
|
|
51669d73a0 | ||
|
|
e55d4d8300 | ||
|
|
c716a1294a | ||
|
|
acc36a344f | ||
|
|
9c84570a48 | ||
|
|
d87d61e851 | ||
|
|
af1f8d4f4a | ||
|
|
c28faf00ea | ||
|
|
fcb15b69f7 | ||
|
|
1d17e68c56 | ||
|
|
5295c108ad | ||
|
|
b175394839 | ||
|
|
c7830a78e6 | ||
|
|
eab29fad9a | ||
|
|
657eef9169 | ||
|
|
41e4460769 | ||
|
|
9f98d421a0 | ||
|
|
f020732ce9 | ||
|
|
e79e35dd74 | ||
|
|
9b10d70c77 | ||
|
|
83a20b82c7 | ||
|
|
49349cdb75 | ||
|
|
def99aff7f | ||
|
|
242b138597 | ||
|
|
9bb9a4cae9 | ||
|
|
321c8d4cf9 | ||
|
|
909f407c20 | ||
|
|
a9694d6474 | ||
|
|
c98333bbfe | ||
|
|
444e182288 | ||
|
|
dbf6971dcf | ||
|
|
c835556623 | ||
|
|
dbb52592d8 | ||
|
|
291b63f41a | ||
|
|
f78f042d75 | ||
|
|
7162684486 | ||
|
|
16ea972937 | ||
|
|
603a746f49 | ||
|
|
d99491aca5 | ||
|
|
e6a14cb73d | ||
|
|
ec9fe7b31d | ||
|
|
db37bc8944 | ||
|
|
4cb657c804 | ||
|
|
da20b2d035 | ||
|
|
700c71ef4c | ||
|
|
f772bf3a62 | ||
|
|
cca3027e90 | ||
|
|
e88c43e8df | ||
|
|
415e5276ba | ||
|
|
d21e9aa5e0 | ||
|
|
7231dafbf1 | ||
|
|
7031856cd7 | ||
|
|
5524dc5e29 | ||
|
|
47cbaca149 | ||
|
|
ff5023e95b | ||
|
|
9b762158a6 | ||
|
|
4e8492e878 | ||
|
|
a5010a61ef | ||
|
|
eb03704015 | ||
|
|
68140efce4 | ||
|
|
d2ef555ce4 | ||
|
|
7e6568d800 | ||
|
|
9a958d7af8 | ||
|
|
83b28b5649 | ||
|
|
eb50d64271 | ||
|
|
9aa5559c5f | ||
|
|
f35afa2ff7 | ||
|
|
776103698d | ||
|
|
2b41a215d7 | ||
|
|
da1905b36c | ||
|
|
fb95f1ff71 | ||
|
|
668cc59f94 | ||
|
|
3885cb20d9 | ||
|
|
5e18b2bd13 | ||
|
|
1518a4f334 | ||
|
|
80ee4c8aa8 | ||
|
|
aa3cded11a | ||
|
|
0633774972 | ||
|
|
d1a2971990 | ||
|
|
babc30940a | ||
|
|
fce0eb4800 | ||
|
|
fe11ee161c | ||
|
|
eabe8dfec5 | ||
|
|
29525b21a4 | ||
|
|
af4021bff4 | ||
|
|
318fc25535 | ||
|
|
6adf541346 | ||
|
|
ab11220dcc | ||
|
|
114f783d06 | ||
|
|
50be661cf9 | ||
|
|
ad159d1755 | ||
|
|
b1d982a1ee | ||
|
|
0be5e765c8 | ||
|
|
6332f10593 | ||
|
|
051c19b7c8 | ||
|
|
b5956e5596 | ||
|
|
52d5c61794 | ||
|
|
c5a545039f | ||
|
|
2dd577f88c | ||
|
|
0d61f7a7f9 | ||
|
|
9700563023 | ||
|
|
5eaf66262a | ||
|
|
a3593c6890 | ||
|
|
8fe2e506c0 | ||
|
|
df68b231b8 | ||
|
|
f4eddf91b5 | ||
|
|
99fd6c449a | ||
|
|
7762da6992 | ||
|
|
bfe214aafa | ||
|
|
96d689a402 | ||
|
|
3501cb0a5b | ||
|
|
b58ebda556 | ||
|
|
20d3dc0167 | ||
|
|
c9598fb9c6 | ||
|
|
13421119c3 | ||
|
|
50cfb5f3ac | ||
|
|
d2cbcf7118 | ||
|
|
0f93ec23ab | ||
|
|
c528e0d5bc | ||
|
|
0313910ac6 | ||
|
|
361c3b7387 | ||
|
|
59a457fa40 | ||
|
|
038d383584 | ||
|
|
7be7029ac4 | ||
|
|
720b4d3c4c | ||
|
|
4d9112870c | ||
|
|
58a9d31fd8 | ||
|
|
0a3746c24d | ||
|
|
1daac541cf |
69
.clang-tidy
Normal file
69
.clang-tidy
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
Checks: '*,
|
||||
-altera-id-dependent-backward-branch,
|
||||
-altera-struct-pack-align,
|
||||
-altera-unroll-loops,
|
||||
-android-cloexec-*,
|
||||
-bugprone-branch-clone,
|
||||
-bugprone-easily-swappable-parameters,
|
||||
-bugprone-macro-parentheses,
|
||||
-bugprone-reserved-identifier,
|
||||
-bugprone-sizeof-expression,
|
||||
-cert-dcl37-c,
|
||||
-cert-dcl51-cpp,
|
||||
-cert-err33-c,
|
||||
-cert-err34-c,
|
||||
-clang-analyzer-optin.performance.Padding,
|
||||
-clang-analyzer-security.insecureAPI.bcmp,
|
||||
-clang-analyzer-security.insecureAPI.bcopy,
|
||||
-clang-analyzer-security.insecureAPI.bzero,
|
||||
-clang-diagnostic-error,
|
||||
-clang-diagnostic-typedef-redefinition,
|
||||
-clang-diagnostic-unknown-warning-option,
|
||||
-concurrency-mt-unsafe,
|
||||
-cppcoreguidelines-avoid-magic-numbers,
|
||||
-cppcoreguidelines-avoid-non-const-global-variables,
|
||||
-cppcoreguidelines-init-variables,
|
||||
-google-readability-braces-around-statements,
|
||||
-google-readability-casting,
|
||||
-google-readability-function-size,
|
||||
-google-readability-todo,
|
||||
-hicpp-braces-around-statements,
|
||||
-hicpp-function-size,
|
||||
-hicpp-multiway-paths-covered,
|
||||
-llvm-else-after-return,
|
||||
-llvm-header-guard,
|
||||
-llvm-include-order,
|
||||
-llvmlibc-restrict-system-libc-headers,
|
||||
-misc-no-recursion,
|
||||
-misc-unused-parameters,
|
||||
-performance-no-int-to-ptr,
|
||||
-readability-avoid-const-params-in-decls,
|
||||
-readability-braces-around-statements,
|
||||
-readability-duplicate-include,
|
||||
-readability-else-after-return,
|
||||
-readability-function-cognitive-complexity,
|
||||
-readability-function-size,
|
||||
-readability-identifier-length,
|
||||
-readability-isolate-declaration,
|
||||
-readability-magic-numbers,
|
||||
-readability-non-const-parameter,
|
||||
-readability-redundant-control-flow,
|
||||
-readability-redundant-declaration,
|
||||
-readability-suspicious-call-argument,
|
||||
|
||||
|
||||
-bugprone-implicit-widening-of-multiplication-result,
|
||||
-bugprone-narrowing-conversions,
|
||||
-cert-exp42-c,
|
||||
-cert-flp37-c,
|
||||
-clang-analyzer-core.NullDereference,
|
||||
-clang-analyzer-deadcode.DeadStores,
|
||||
-clang-analyzer-security.insecureAPI.strcpy,
|
||||
-cppcoreguidelines-interfaces-global-init,
|
||||
-cppcoreguidelines-narrowing-conversions,
|
||||
-hicpp-signed-bitwise,
|
||||
'
|
||||
|
||||
WarningsAsErrors: false
|
||||
HeaderFilterRegex: '(.*\.h)'
|
||||
10
.dockerignore
Normal file
10
.dockerignore
Normal file
@@ -0,0 +1,10 @@
|
||||
**/*.md
|
||||
**/docker-compose*.yml
|
||||
**/docker-compose*.yaml
|
||||
**/Dockerfile*
|
||||
.git
|
||||
.dockerignore
|
||||
.cache
|
||||
.gitignore
|
||||
.github
|
||||
build
|
||||
11
.github/workflows/meson-ci.yml
vendored
11
.github/workflows/meson-ci.yml
vendored
@@ -6,11 +6,11 @@ jobs:
|
||||
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: 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: |
|
||||
sudo ifconfig lo0 alias 127.0.0.2 netmask 255.255.255.255
|
||||
@@ -33,6 +33,7 @@ jobs:
|
||||
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
|
||||
|
||||
94
README.md
94
README.md
@@ -1,88 +1,18 @@
|
||||
<h1 align="center">Open5GS</h1>
|
||||
<p align="center"><a href="https://open5gs.org" target="_blank" rel="noopener noreferrer"><img width="100" src="https://open5gs.org/assets/img/open5gs-logo-only.png" alt="Open5GS logo"></a></p>
|
||||
|
||||
## Getting Started
|
||||
|
||||
If you don't understand something about Open5GS, the [https://open5gs.org/open5gs/docs/](https://open5gs.org/open5gs/docs/) is a great place to look for answers.
|
||||
|
||||
## Sponsors
|
||||
|
||||
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).
|
||||
|
||||
<h3 align="center">Platinum Sponsors</h3>
|
||||
<table align="center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<a href="https://teletresearch.com/" target="_blank">
|
||||
<img width="400px" src="https://open5gs.org/assets/img/Telet-logo-v2.png">
|
||||
<p align="center">
|
||||
<a target="_blank" href="https://open5gs.org/#sponsors">
|
||||
<img alt="sponsors" src="https://open5gs.org/assets/img/sponsors.svg">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3 align="center">Gold Sponsors</h3>
|
||||
<table align="center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="middle">
|
||||
<a href="http://wavemobile.com/" target="_blank">
|
||||
<img width="222px" src="https://open5gs.org/assets/img/Wavemobile-Logo-Mark-RGB.png">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3 align="center">Silver Sponsors</h3>
|
||||
<table align="center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="https://nextepc.com/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/nextepc_logo.jpg">
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="https://www.wearetriple.com/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/triple_logo.png">
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="https://sdr.eee.strath.ac.uk/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/strath.png">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="https://skylarkwireless.com/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/SkylarkWireless-420x78-Web2-R.png">
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="https://sysmocom.de/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/sysmocom-logo-only.png">
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="https://www.p1sec.com/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/2021-logo-P1.svg">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="https://www.ng-voice.com/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/ng-voice-logo_color.png">
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" valign="middle" width="222px">
|
||||
<a href="http://www.bristol.ac.uk/engineering/research/smart/" target="_blank">
|
||||
<img src="https://open5gs.org/assets/img/smart-internet-lab.png">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Documentation
|
||||
|
||||
If you don't understand something about Open5GS, the [https://open5gs.org/open5gs/docs/](https://open5gs.org/open5gs/docs/) is a great place to look for answers.
|
||||
</p>
|
||||
|
||||
## Community
|
||||
|
||||
@@ -97,4 +27,4 @@ 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 [NextEPC, Inc.](https://nextepc.com)
|
||||
- [Commercial licenses](https://open5gs.org/open5gs/support/) are also available from [NeoPlane](https://neoplane.io/)
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
# no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -194,6 +196,11 @@ nrf:
|
||||
- ::1
|
||||
port: 7777
|
||||
|
||||
scp:
|
||||
sbi:
|
||||
- addr: 127.0.1.10
|
||||
port: 7777
|
||||
|
||||
ausf:
|
||||
sbi:
|
||||
- addr: 127.0.0.11
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
# no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -47,12 +49,12 @@ mme:
|
||||
map:
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 7
|
||||
lai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
lac: 2342
|
||||
map:
|
||||
@@ -68,7 +70,7 @@ mme:
|
||||
lac: 51544
|
||||
gummei:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
@@ -79,7 +81,7 @@ mme:
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 7
|
||||
tai:
|
||||
@@ -146,19 +148,19 @@ amf:
|
||||
- addr: 127.0.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
# no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -44,13 +46,13 @@ mme:
|
||||
- addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
security:
|
||||
@@ -114,19 +116,19 @@ amf:
|
||||
- addr: 127.0.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
|
||||
@@ -35,7 +35,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: amf.key
|
||||
@@ -85,9 +85,42 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - namf-comm
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.5
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.5
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
# <NGAP Server>>
|
||||
#
|
||||
# o NGAP Server(all address avaiable)
|
||||
# o NGAP Server(all address available)
|
||||
# ngap:
|
||||
#
|
||||
# o NGAP Server(0.0.0.0:38412)
|
||||
@@ -104,7 +137,7 @@ logger:
|
||||
# - addr: 127.0.0.5
|
||||
# port: 38413
|
||||
#
|
||||
# o NGAP Server(address avaiable in `eth0` interface)
|
||||
# o NGAP Server(address available in `eth0` interface)
|
||||
# ngap:
|
||||
# dev: eth0
|
||||
#
|
||||
@@ -145,12 +178,19 @@ logger:
|
||||
# sinit_max_attempts : 4
|
||||
# sinit_max_init_timeo : 8000
|
||||
#
|
||||
# <Metrics Server>
|
||||
#
|
||||
# o Metrics Server(http://<any address>:9090)
|
||||
# metrics:
|
||||
# addr: 0.0.0.0
|
||||
# port: 9090
|
||||
#
|
||||
# <GUAMI>
|
||||
#
|
||||
# o Multiple GUAMI
|
||||
# guami:
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# amf_id:
|
||||
# region: 2
|
||||
@@ -199,13 +239,13 @@ logger:
|
||||
# o Multiple PLMN Support
|
||||
# plmn_support:
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# s_nssai:
|
||||
# - sst: 1
|
||||
# sd: 010000
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# s_nssai:
|
||||
# - sst: 1
|
||||
@@ -218,7 +258,7 @@ logger:
|
||||
#
|
||||
# <AMF Name>
|
||||
#
|
||||
# amf_name: amf1.open5gs.amf.5gc.mnc70.mcc901.3gppnetwork.org
|
||||
# amf_name: amf1.open5gs.amf.5gc.mnc70.mcc999.3gppnetwork.org
|
||||
#
|
||||
# <Relative Capacity> - Default(255)
|
||||
#
|
||||
@@ -230,21 +270,24 @@ amf:
|
||||
port: 7777
|
||||
ngap:
|
||||
- addr: 127.0.0.5
|
||||
metrics:
|
||||
addr: 127.0.0.5
|
||||
port: 9090
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
@@ -317,10 +360,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
@@ -358,17 +401,3 @@ usrsctp:
|
||||
# handover:
|
||||
# duration: 500
|
||||
time:
|
||||
|
||||
#
|
||||
# metrics:
|
||||
#
|
||||
# <Metrics Server>
|
||||
#
|
||||
# o Metrics Server(http://<any address>:9090)
|
||||
# metrics:
|
||||
# addr: 0.0.0.0
|
||||
# port: 9090
|
||||
#
|
||||
metrics:
|
||||
addr: 0.0.0.0
|
||||
port: 9090
|
||||
|
||||
@@ -35,7 +35,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: ausf.key
|
||||
@@ -85,6 +85,39 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - nausf-auth
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.11
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.11
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
ausf:
|
||||
sbi:
|
||||
- addr: 127.0.0.11
|
||||
@@ -152,10 +185,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: bsf.key
|
||||
@@ -87,6 +87,39 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - nbsf-management
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.15
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.15
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
bsf:
|
||||
sbi:
|
||||
- addr: 127.0.0.15
|
||||
@@ -154,10 +187,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -41,13 +41,14 @@ hss:
|
||||
# prefer_ipv4: true
|
||||
#
|
||||
parameter:
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
@@ -29,6 +29,7 @@ open5gs_conf = '''
|
||||
hss.yaml
|
||||
pcrf.yaml
|
||||
nrf.yaml
|
||||
scp.yaml
|
||||
ausf.yaml
|
||||
udm.yaml
|
||||
udr.yaml
|
||||
|
||||
@@ -26,7 +26,7 @@ logger:
|
||||
#
|
||||
# <S1AP Server>>
|
||||
#
|
||||
# o S1AP Server(all address avaiable)
|
||||
# o S1AP Server(all address available)
|
||||
# s1ap:
|
||||
#
|
||||
# o S1AP Server(0.0.0.0:36412)
|
||||
@@ -43,7 +43,7 @@ logger:
|
||||
# - addr: 127.0.0.2
|
||||
# port: 36413
|
||||
#
|
||||
# o S1AP Server(address avaiable in `eth0` interface)
|
||||
# o S1AP Server(address available in `eth0` interface)
|
||||
# s1ap:
|
||||
# dev: eth0
|
||||
#
|
||||
@@ -86,7 +86,7 @@ logger:
|
||||
#
|
||||
# <GTP-C Server>>
|
||||
#
|
||||
# o GTP-C Server(all address avaiable)
|
||||
# o GTP-C Server(all address available)
|
||||
# gtpc:
|
||||
#
|
||||
# o GTP-C Server(127.0.0.2:2123, [::1]:2123)
|
||||
@@ -175,6 +175,12 @@ logger:
|
||||
# mnc: 02
|
||||
# lac: 43693
|
||||
#
|
||||
# <Metrics Server>
|
||||
#
|
||||
# o Metrics Server(http://<any address>:9090)
|
||||
# metrics:
|
||||
# addr: 0.0.0.0
|
||||
# port: 9090
|
||||
#
|
||||
# <GUMMEI>
|
||||
#
|
||||
@@ -248,15 +254,18 @@ mme:
|
||||
- addr: 127.0.0.2
|
||||
gtpc:
|
||||
- addr: 127.0.0.2
|
||||
gummei:
|
||||
metrics:
|
||||
addr: 127.0.0.2
|
||||
port: 9090
|
||||
gummei:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
security:
|
||||
@@ -391,10 +400,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
@@ -421,17 +430,3 @@ usrsctp:
|
||||
# handover:
|
||||
# duration: 500
|
||||
time:
|
||||
|
||||
#
|
||||
# metrics:
|
||||
#
|
||||
# <Metrics Server>
|
||||
#
|
||||
# o Metrics Server(http://<any address>:9090)
|
||||
# metrics:
|
||||
# addr: 0.0.0.0
|
||||
# port: 9090
|
||||
#
|
||||
metrics:
|
||||
addr: 0.0.0.0
|
||||
port: 9090
|
||||
@@ -1,5 +1,3 @@
|
||||
db_uri: mongodb://localhost/open5gs
|
||||
|
||||
#
|
||||
# logger:
|
||||
#
|
||||
@@ -38,7 +36,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# tls:
|
||||
# key: nrf.key
|
||||
@@ -77,6 +75,16 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - nnrf-nfm
|
||||
# - nnrf-disc
|
||||
#
|
||||
nrf:
|
||||
sbi:
|
||||
addr:
|
||||
@@ -101,10 +109,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: nssf.key
|
||||
@@ -85,7 +85,7 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <List of avaiable Network Slice Instance(NSI)>
|
||||
# <List of available Network Slice Instance(NSI)>
|
||||
#
|
||||
# o One NSI
|
||||
# - NRF[http://::1:7777/nnrf-nfm/v1/nf-instances]
|
||||
@@ -134,6 +134,40 @@ logger:
|
||||
# so_linger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - nnssf-nsselection
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.14
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.14
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
nssf:
|
||||
sbi:
|
||||
- addr: 127.0.0.14
|
||||
@@ -194,10 +228,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: pcf.key
|
||||
@@ -87,6 +87,46 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - npcf-am-policy-control
|
||||
# - npcf-smpolicycontrol
|
||||
# - npcf-policyauthorization
|
||||
#
|
||||
# == NOTE ==
|
||||
# Placing npcf-smpolicycontrol and pcf-policyauthorization
|
||||
# in different NFs is not supported. Both npcf-smpolicycontrol
|
||||
# and pcf-policyauthorization should be placed in the same NF.
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.13
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.13
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
pcf:
|
||||
sbi:
|
||||
- addr: 127.0.0.13
|
||||
@@ -154,10 +194,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -42,9 +42,9 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
217
configs/open5gs/scp.yaml.in
Normal file
217
configs/open5gs/scp.yaml.in
Normal file
@@ -0,0 +1,217 @@
|
||||
db_uri: mongodb://localhost/open5gs
|
||||
|
||||
#
|
||||
# logger:
|
||||
#
|
||||
# o Set OGS_LOG_INFO to all domain level
|
||||
# - If `level` is omitted, the default level is OGS_LOG_INFO)
|
||||
# - If `domain` is omitted, the all domain level is set from 'level'
|
||||
# (Nothing is needed)
|
||||
#
|
||||
# o Set OGS_LOG_ERROR to all domain level
|
||||
# - `level` can be set with none, fatal, error, warn, info, debug, trace
|
||||
# level: error
|
||||
#
|
||||
# o Set OGS_LOG_DEBUG to mme/emm domain level
|
||||
# level: debug
|
||||
# domain: mme,emm
|
||||
#
|
||||
# o Set OGS_LOG_TRACE to all domain level
|
||||
# level: trace
|
||||
# domain: core,sbi,scp,event,tlv,mem,sock
|
||||
#
|
||||
logger:
|
||||
file: @localstatedir@/log/open5gs/scp.log
|
||||
|
||||
#
|
||||
# scp:
|
||||
#
|
||||
# <SBI Server>
|
||||
#
|
||||
# o SBI Server(http://<all address available>:80)
|
||||
# sbi:
|
||||
#
|
||||
# o SBI Server(http://<any address>:80)
|
||||
# sbi:
|
||||
# - addr:
|
||||
# - 0.0.0.0
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: scp.key
|
||||
# pem: scp.pem
|
||||
#
|
||||
# o SBI Server(https://127.0.1.10:443, http://[::1]:80)
|
||||
# sbi:
|
||||
# - addr: 127.0.1.10
|
||||
# tls:
|
||||
# key: scp.key
|
||||
# pem: scp.pem
|
||||
# - addr: ::1
|
||||
#
|
||||
# o SBI Server(http://scp.open5gs.org:80)
|
||||
# sbi:
|
||||
# - name: scp.open5gs.org
|
||||
#
|
||||
# o SBI Server(http://127.0.1.10:7777)
|
||||
# sbi:
|
||||
# - addr: 127.0.1.10
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(http://<eth0 IP address>:80)
|
||||
# sbi:
|
||||
# - dev: eth0
|
||||
#
|
||||
# o Provide custom SBI address to be advertised to NRF
|
||||
# sbi:
|
||||
# - dev: eth0
|
||||
# advertise: open5gs-scp.svc.local
|
||||
#
|
||||
# sbi:
|
||||
# - addr: localhost
|
||||
# advertise:
|
||||
# - 127.0.0.99
|
||||
# - ::1
|
||||
#
|
||||
# o SBI Option (Default)
|
||||
# - tcp_nodelay : true
|
||||
# - so_linger.l_onoff : false
|
||||
#
|
||||
# sbi:
|
||||
# addr: 127.0.1.10
|
||||
# option:
|
||||
# tcp_nodelay: false
|
||||
# so_linger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <Next hop SCP>
|
||||
#
|
||||
# o Next hop SCP Server(https://127.0.1.11:7777)
|
||||
# next_scp:
|
||||
# sbi:
|
||||
# - addr: 127.0.1.11
|
||||
# port: 7777
|
||||
#
|
||||
# <For Indirect Communication with Delegated Discovery>
|
||||
#
|
||||
# o (Default) If you do not set Delegated Discovery as shown below,
|
||||
#
|
||||
# next_scp:
|
||||
# sbi:
|
||||
# - addr: 127.0.1.10
|
||||
# port: 7777
|
||||
#
|
||||
# - Use SCP if SCP avaiable. Otherwise NRF is used.
|
||||
# => App fails if both NRF and SCP are unavailable.
|
||||
#
|
||||
# next_scp:
|
||||
# sbi:
|
||||
# - addr: 127.0.1.10
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# delegated: auto
|
||||
#
|
||||
# o To use SCP always => App fails if no SCP available.
|
||||
# delegated: yes
|
||||
#
|
||||
# o Don't use SCP server => App fails if no NRF available.
|
||||
# delegated: no
|
||||
#
|
||||
scp:
|
||||
sbi:
|
||||
- addr: 127.0.1.10
|
||||
port: 7777
|
||||
|
||||
#
|
||||
# nrf:
|
||||
#
|
||||
# <SBI Client>>
|
||||
#
|
||||
# o SBI Client(http://127.0.0.10:7777)
|
||||
# sbi:
|
||||
# addr: 127.0.0.10
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
|
||||
# sbi:
|
||||
# - addr: 127.0.0.10
|
||||
# tls:
|
||||
# key: nrf.key
|
||||
# pem: nrf.pem
|
||||
# - name: nrf.open5gs.org
|
||||
#
|
||||
# o SBI Client(http://[fd69:f21d:873c:fa::1]:80)
|
||||
# If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
|
||||
#
|
||||
# sbi:
|
||||
# addr:
|
||||
# - 127.0.0.10
|
||||
# - fd69:f21d:873c:fa::1
|
||||
#
|
||||
# o SBI Option (Default)
|
||||
# - tcp_nodelay : true
|
||||
# - so_linger.l_onoff : false
|
||||
#
|
||||
# sbi:
|
||||
# addr: 127.0.0.10
|
||||
# option:
|
||||
# tcp_nodelay: false
|
||||
# so_linger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
nrf:
|
||||
sbi:
|
||||
- addr:
|
||||
- 127.0.0.10
|
||||
- ::1
|
||||
port: 7777
|
||||
|
||||
#
|
||||
# parameter:
|
||||
#
|
||||
# o Disable use of IPv4 addresses (only IPv6)
|
||||
# no_ipv4: true
|
||||
#
|
||||
# o Disable use of IPv6 addresses (only IPv4)
|
||||
# no_ipv6: true
|
||||
#
|
||||
# o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
|
||||
# prefer_ipv4: true
|
||||
#
|
||||
parameter:
|
||||
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
#
|
||||
# time:
|
||||
#
|
||||
# o NF Instance Heartbeat (Default : 0)
|
||||
# NFs will not send heart-beat timer in NFProfile
|
||||
# NRF will send heart-beat timer in NFProfile
|
||||
#
|
||||
# o NF Instance Heartbeat (20 seconds)
|
||||
# NFs will send heart-beat timer (20 seconds) in NFProfile
|
||||
# NRF can change heart-beat timer in NFProfile
|
||||
#
|
||||
# nf_instance:
|
||||
# heartbeat: 20
|
||||
#
|
||||
# o Message Wait Duration (Default : 10,000 ms = 10 seconds)
|
||||
#
|
||||
# o Message Wait Duration (3000 ms)
|
||||
# message:
|
||||
# duration: 3000
|
||||
time:
|
||||
@@ -142,10 +142,12 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
# o Maximum Number of GTP peer nodes per SGWC/SMF
|
||||
# gtp_peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -131,10 +131,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#
|
||||
# o Set OGS_LOG_TRACE to all domain level
|
||||
# level: trace
|
||||
# domain: core,pfcp,fd,pfcp,gtp,smf,event,tlv,mem,sock
|
||||
# domain: core,fd,pfcp,gtp,smf,event,tlv,mem,sock
|
||||
#
|
||||
logger:
|
||||
file: @localstatedir@/log/open5gs/smf.log
|
||||
@@ -35,7 +35,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: smf.key
|
||||
@@ -85,6 +85,40 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - nsmf-pdusession
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.4
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.4
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
#
|
||||
# <PFCP Server>
|
||||
#
|
||||
# o PFCP Server(127.0.0.4:8805, ::1:8805)
|
||||
@@ -145,6 +179,13 @@ logger:
|
||||
# option:
|
||||
# so_bindtodevice: vrf-blue
|
||||
#
|
||||
# <Metrics Server>
|
||||
#
|
||||
# o Metrics Server(http://<any address>:9090)
|
||||
# metrics:
|
||||
# addr: 0.0.0.0
|
||||
# port: 9090
|
||||
#
|
||||
# <Subnet for UE Pool>
|
||||
#
|
||||
# o IPv4 Pool
|
||||
@@ -269,7 +310,7 @@ logger:
|
||||
# - internet
|
||||
# - ims
|
||||
#
|
||||
# o S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1]
|
||||
# o S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:99970 TAC:1]
|
||||
# info:
|
||||
# - s_nssai:
|
||||
# - sst: 1
|
||||
@@ -277,14 +318,14 @@ logger:
|
||||
# - internet
|
||||
# tai:
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# tac: 1
|
||||
#
|
||||
# o If any of conditions below are met:
|
||||
# - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1-9]
|
||||
# - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:99970 TAC:1-9]
|
||||
# - S-NSSAI[SST:2 SD:000080] and DNN[internet or ims]
|
||||
# - S-NSSAI[SST:4] and DNN[internet] and TAI[PLMN-ID:90170 TAC:10-20,30-40]
|
||||
# - S-NSSAI[SST:4] and DNN[internet] and TAI[PLMN-ID:99970 TAC:10-20,30-40]
|
||||
#
|
||||
# info:
|
||||
# - s_nssai:
|
||||
@@ -293,7 +334,7 @@ logger:
|
||||
# - internet
|
||||
# tai:
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# range:
|
||||
# - 1-9
|
||||
@@ -309,7 +350,7 @@ logger:
|
||||
# - internet
|
||||
# tai:
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# range:
|
||||
# - 10-20
|
||||
@@ -339,27 +380,27 @@ logger:
|
||||
# - internet
|
||||
# tai:
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# tac: [1, 2, 3]
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# tac: 4
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# tac:
|
||||
# - 5
|
||||
# - 6
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# range:
|
||||
# - 100-200
|
||||
# - 300-400
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# range:
|
||||
# - 500-600
|
||||
@@ -371,7 +412,7 @@ logger:
|
||||
# - internet
|
||||
# tai:
|
||||
# - plmn_id:
|
||||
# mcc: 901
|
||||
# mcc: 999
|
||||
# mnc: 70
|
||||
# tac: 99
|
||||
#
|
||||
@@ -389,6 +430,9 @@ smf:
|
||||
gtpu:
|
||||
- addr: 127.0.0.4
|
||||
- addr: ::1
|
||||
metrics:
|
||||
addr: 127.0.0.4
|
||||
port: 9090
|
||||
subnet:
|
||||
- addr: 10.45.0.1/16
|
||||
- addr: 2001:db8:cafe::1/48
|
||||
@@ -527,10 +571,12 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
# o Maximum Number of GTP peer nodes per SGWC/SMF
|
||||
# gtp_peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
@@ -563,17 +609,3 @@ max:
|
||||
# handover:
|
||||
# duration: 500
|
||||
time:
|
||||
|
||||
#
|
||||
# metrics:
|
||||
#
|
||||
# <Metrics Server>
|
||||
#
|
||||
# o Metrics Server(http://<any address>:9090)
|
||||
# metrics:
|
||||
# addr: 0.0.0.0
|
||||
# port: 9090
|
||||
#
|
||||
metrics:
|
||||
addr: 0.0.0.0
|
||||
port: 9090
|
||||
|
||||
@@ -35,7 +35,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: udm.key
|
||||
@@ -85,6 +85,41 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - nudm-sdm
|
||||
# - nudm-uecm
|
||||
# - nudm-ueau
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.12
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.12
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
udm:
|
||||
sbi:
|
||||
- addr: 127.0.0.12
|
||||
@@ -152,10 +187,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ logger:
|
||||
# - ::0
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Server(https://<all address avaiable>:443)
|
||||
# o SBI Server(https://<all address available>:443)
|
||||
# sbi:
|
||||
# - tls:
|
||||
# key: udr.key
|
||||
@@ -87,6 +87,39 @@ logger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
# <NF Service>
|
||||
#
|
||||
# o NF Service Name(Default : all NF services available)
|
||||
# service_name:
|
||||
#
|
||||
# o NF Service Name(Only some NF services are available)
|
||||
# service_name:
|
||||
# - nudr-dr
|
||||
#
|
||||
# <NF Discovery Query Parameter>
|
||||
#
|
||||
# o (Default) If you do not set Query Parameter as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.20
|
||||
# port: 7777
|
||||
#
|
||||
# - 'service-names' is included.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.20
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# option:
|
||||
# no_service_names: false
|
||||
#
|
||||
# o To remove 'service-names' from URI query parameters in NS Discovery
|
||||
# no_service_names: true
|
||||
#
|
||||
# * For Indirect Communication with Delegated Discovery,
|
||||
# 'service-names' is always included in the URI query parameter.
|
||||
# * That is, 'no_service_names' has no effect.
|
||||
#
|
||||
udr:
|
||||
sbi:
|
||||
- addr: 127.0.0.20
|
||||
@@ -154,10 +187,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -205,10 +205,10 @@ parameter:
|
||||
#
|
||||
# max:
|
||||
#
|
||||
# o Maximum Number of UE per AMF/MME
|
||||
# o Maximum Number of UE
|
||||
# ue: 1024
|
||||
# o Maximum Number of gNB/eNB per AMF/MME
|
||||
# gnb: 64
|
||||
# o Maximum Number of Peer(S1AP/NGAP, DIAMETER, GTP, PFCP or SBI)
|
||||
# peer: 64
|
||||
#
|
||||
max:
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
# no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -44,13 +46,13 @@ mme:
|
||||
- addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
security:
|
||||
@@ -104,6 +106,31 @@ smf:
|
||||
connect:
|
||||
- identity: pcrf.localdomain
|
||||
addr: 127.0.0.9
|
||||
|
||||
#
|
||||
# <For Indirect Communication with Delegated Discovery>
|
||||
#
|
||||
# o (Default) If you do not set Delegated Discovery as shown below,
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.5
|
||||
# port: 7777
|
||||
#
|
||||
# - Use SCP if SCP avaiable. Otherwise NRF is used.
|
||||
# => App fails if both NRF and SCP are unavailable.
|
||||
#
|
||||
# sbi:
|
||||
# - addr: 127.0.0.5
|
||||
# port: 7777
|
||||
# discovery:
|
||||
# delegated: auto
|
||||
#
|
||||
# o To use SCP always => App fails if no SCP available.
|
||||
# delegated: yes
|
||||
#
|
||||
# o Don't use SCP server => App fails if no NRF available.
|
||||
# delegated: no
|
||||
#
|
||||
amf:
|
||||
sbi:
|
||||
- addr: 127.0.0.5
|
||||
@@ -112,19 +139,19 @@ amf:
|
||||
- addr: 127.0.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
@@ -194,6 +221,50 @@ nrf:
|
||||
- ::1
|
||||
port: 7777
|
||||
|
||||
#
|
||||
# scp:
|
||||
#
|
||||
# <SBI Client>>
|
||||
#
|
||||
# o SBI Client(http://127.0.1.10:7777)
|
||||
# sbi:
|
||||
# addr: 127.0.1.10
|
||||
# port: 7777
|
||||
#
|
||||
# o SBI Client(https://127.0.1.10:443, http://scp.open5gs.org:80)
|
||||
# sbi:
|
||||
# - addr: 127.0.1.10
|
||||
# tls:
|
||||
# key: scp.key
|
||||
# pem: scp.pem
|
||||
# - name: scp.open5gs.org
|
||||
#
|
||||
# o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
|
||||
# If prefer_ipv4 is true, http://127.0.1.10:80 is selected.
|
||||
#
|
||||
# sbi:
|
||||
# addr:
|
||||
# - 127.0.1.10
|
||||
# - fd69:f21d:873c:fb::1
|
||||
#
|
||||
# o SBI Option (Default)
|
||||
# - tcp_nodelay : true
|
||||
# - so_linger.l_onoff : false
|
||||
#
|
||||
# sbi:
|
||||
# addr: 127.0.1.10
|
||||
# option:
|
||||
# tcp_nodelay: false
|
||||
# so_linger:
|
||||
# l_onoff: true
|
||||
# l_linger: 10
|
||||
#
|
||||
#
|
||||
scp:
|
||||
sbi:
|
||||
- addr: 127.0.1.10
|
||||
port: 7777
|
||||
|
||||
ausf:
|
||||
sbi:
|
||||
- addr: 127.0.0.11
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -44,13 +46,13 @@ mme:
|
||||
- addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
security:
|
||||
@@ -112,19 +114,19 @@ amf:
|
||||
- addr: 127.0.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 202
|
||||
set: 1016
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
# no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -44,13 +46,13 @@ mme:
|
||||
- addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 7
|
||||
security:
|
||||
@@ -112,19 +114,19 @@ amf:
|
||||
- addr: 127.0.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
|
||||
@@ -6,4 +6,5 @@ Address=10.45.0.1/16
|
||||
Address=2001:db8:cafe::1/48
|
||||
|
||||
[Link]
|
||||
MTUBytes=1400
|
||||
RequiredForOnline=false
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
# no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -44,13 +46,13 @@ mme:
|
||||
- addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
security:
|
||||
@@ -115,19 +117,19 @@ amf:
|
||||
- addr: 127.0.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
|
||||
@@ -4,6 +4,7 @@ logger:
|
||||
|
||||
parameter:
|
||||
# no_nrf: true
|
||||
# no_scp: true
|
||||
# no_amf: true
|
||||
# no_smf: true
|
||||
# no_upf: true
|
||||
@@ -18,6 +19,7 @@ parameter:
|
||||
# no_sgwu: true
|
||||
# no_pcrf: true
|
||||
# no_hss: true
|
||||
# use_mongodb_change_stream: true
|
||||
|
||||
mme:
|
||||
freeDiameter:
|
||||
@@ -44,13 +46,13 @@ mme:
|
||||
- addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
security:
|
||||
@@ -115,19 +117,19 @@ amf:
|
||||
- addr: 127.0.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
mcc: 901
|
||||
mcc: 999
|
||||
mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
@@ -199,6 +201,11 @@ nrf:
|
||||
- ::1
|
||||
port: 7777
|
||||
|
||||
scp:
|
||||
sbi:
|
||||
- addr: 127.0.1.10
|
||||
port: 7777
|
||||
|
||||
ausf:
|
||||
sbi:
|
||||
- addr: 127.0.0.11
|
||||
|
||||
72
debian/changelog
vendored
72
debian/changelog
vendored
@@ -1,3 +1,75 @@
|
||||
open5gs (2.4.11) unstable; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:51:50 +0900
|
||||
|
||||
open5gs (2.4.11~jammy) jammy; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:50:11 +0900
|
||||
|
||||
open5gs (2.4.11~focal) focal; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:48:49 +0900
|
||||
|
||||
open5gs (2.4.11~bionic) bionic; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Sat, 01 Oct 2022 13:47:02 +0900
|
||||
|
||||
open5gs (2.4.10) unstable; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:36:48 +0900
|
||||
|
||||
open5gs (2.4.10~jammy) jammy; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:35:23 +0900
|
||||
|
||||
open5gs (2.4.10~focal) focal; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:34:00 +0900
|
||||
|
||||
open5gs (2.4.10~bionic) bionic; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Fri, 09 Sep 2022 09:30:16 +0900
|
||||
|
||||
open5gs (2.4.9) unstable; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:49:38 +0900
|
||||
|
||||
open5gs (2.4.9~jammy) jammy; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:48:36 +0900
|
||||
|
||||
open5gs (2.4.9~focal) focal; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:47:16 +0900
|
||||
|
||||
open5gs (2.4.9~bionic) bionic; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
-- Sukchan Lee <acetcom@gmail.com> Mon, 25 Jul 2022 20:45:33 +0900
|
||||
|
||||
open5gs (2.4.8) unstable; urgency=medium
|
||||
|
||||
* Bug Fixed
|
||||
|
||||
22
debian/open5gs-common.postinst
vendored
22
debian/open5gs-common.postinst
vendored
@@ -20,17 +20,17 @@ set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
# create a open5gs group and user
|
||||
if ! getent passwd open5gs >/dev/null; then
|
||||
adduser --system --disabled-password --disabled-login \
|
||||
--home /var/run/open5gs --no-create-home \
|
||||
--quiet --group open5gs
|
||||
fi
|
||||
for dir in /var/log/open5gs; do
|
||||
if ! dpkg-statoverride --list "$dir" >/dev/null 2>&1; then
|
||||
dpkg-statoverride --update --add open5gs open5gs 0755 "$dir"
|
||||
fi
|
||||
done
|
||||
# create a open5gs group and user
|
||||
if ! getent passwd open5gs >/dev/null; then
|
||||
adduser --system --disabled-password --disabled-login \
|
||||
--home /var/run/open5gs --no-create-home \
|
||||
--quiet --group open5gs
|
||||
fi
|
||||
for dir in /var/log/open5gs; do
|
||||
if ! dpkg-statoverride --list "$dir" >/dev/null 2>&1; then
|
||||
dpkg-statoverride --update --add open5gs open5gs 0755 "$dir"
|
||||
fi
|
||||
done
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
|
||||
26
debian/open5gs-upf.postinst
vendored
26
debian/open5gs-upf.postinst
vendored
@@ -20,18 +20,20 @@ set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if test "x`sysctl -n net.ipv6.conf.all.disable_ipv6`" = x1; then
|
||||
echo "net.ipv6.conf.all.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
|
||||
sysctl -p /etc/sysctl.d/30-open5gs.conf
|
||||
fi
|
||||
if test "x`systemctl is-enabled systemd-networkd`" = xdisabled; then
|
||||
systemctl enable systemd-networkd
|
||||
fi
|
||||
deb-systemd-invoke restart systemd-networkd
|
||||
if test -f /etc/sysctl.d/30-open5gs.conf && grep "ogstun" /proc/net/dev > /dev/null; then
|
||||
echo "net.ipv6.conf.ogstun.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
|
||||
sysctl -p /etc/sysctl.d/30-open5gs.conf
|
||||
fi
|
||||
if test "x`sysctl -n net.ipv6.conf.all.disable_ipv6`" = x1; then
|
||||
echo "net.ipv6.conf.all.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
|
||||
sysctl -p /etc/sysctl.d/30-open5gs.conf
|
||||
fi
|
||||
if test "x`systemctl is-enabled systemd-networkd`" = xdisabled; then
|
||||
systemctl enable systemd-networkd
|
||||
fi
|
||||
if test -d "/run/systemd"; then
|
||||
deb-systemd-invoke restart systemd-networkd
|
||||
fi
|
||||
if test -f /etc/sysctl.d/30-open5gs.conf && grep "ogstun" /proc/net/dev > /dev/null; then
|
||||
echo "net.ipv6.conf.ogstun.disable_ipv6=0" > /etc/sysctl.d/30-open5gs.conf
|
||||
sysctl -p /etc/sysctl.d/30-open5gs.conf
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
|
||||
2
debian/open5gs-upf.postrm
vendored
2
debian/open5gs-upf.postrm
vendored
@@ -24,7 +24,7 @@ case "$1" in
|
||||
if grep "ogstun" /proc/net/dev > /dev/null; then
|
||||
ip tuntap del name ogstun mode tun
|
||||
fi
|
||||
rm -f /etc/sysctl.d/30-open5gs.conf
|
||||
rm -f /etc/sysctl.d/30-open5gs.conf
|
||||
;;
|
||||
|
||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
|
||||
@@ -5,15 +5,8 @@ FROM ${username}/${dist}-${tag}-open5gs-base
|
||||
|
||||
MAINTAINER Sukchan Lee <acetcom@gmail.com>
|
||||
|
||||
WORKDIR /root
|
||||
COPY setup.sh /root
|
||||
WORKDIR /open5gs
|
||||
COPY docker/build/setup.sh /root
|
||||
COPY ./ /open5gs
|
||||
|
||||
ARG USER=open5gs
|
||||
ARG REPO=open5gs
|
||||
ARG BRANCH=main
|
||||
RUN git clone https://github.com/$USER/$REPO
|
||||
ADD https://api.github.com/repos/$USER/$REPO/git/refs/heads/$BRANCH /root/open5gs-ver.json
|
||||
|
||||
RUN cd $REPO && \
|
||||
git fetch && git checkout -f -B $BRANCH origin/$BRANCH && \
|
||||
meson build && ninja -C build install
|
||||
RUN meson build && ninja -C build install
|
||||
|
||||
@@ -15,4 +15,4 @@ services:
|
||||
sysctls:
|
||||
- net.ipv6.conf.all.disable_ipv6=0
|
||||
hostname: open5gs-test
|
||||
command: /bin/bash -c "/root/setup.sh; cd open5gs/build && meson test -v"
|
||||
command: /bin/bash -c "/root/setup.sh; cd /open5gs/build && meson test -v"
|
||||
|
||||
@@ -33,7 +33,8 @@ services:
|
||||
|
||||
build:
|
||||
build:
|
||||
context: ./build
|
||||
context: ../
|
||||
dockerfile: docker/build/Dockerfile
|
||||
args:
|
||||
dist: ${DIST-ubuntu}
|
||||
tag: ${TAG-latest}
|
||||
|
||||
@@ -22,7 +22,7 @@ baseurl: "/open5gs" # the subpath of your site, e.g. /blog
|
||||
url: "https://open5gs.org" # the base hostname & protocol for your site, e.g. http://example.com
|
||||
author: "Sukchan Lee"
|
||||
github_username: open5gs
|
||||
google_analytics: UA-139225646-2
|
||||
google_analytics: G-12MQZTB3JH
|
||||
|
||||
# Build settings
|
||||
markdown: kramdown
|
||||
|
||||
@@ -249,7 +249,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
+ mcc: 001 # set your PLMN-MCC
|
||||
+ mnc: 01 # set your PLMN-MNC
|
||||
@@ -257,7 +257,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
- tac: 1
|
||||
+ mcc: 001 # set your PLMN-MCC
|
||||
@@ -308,7 +308,7 @@ amf:
|
||||
+ - addr: 10.10.0.5 # for external gNB - a local address that can be reached by the gNB
|
||||
guami:
|
||||
- plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
+ mcc: 001 # set your PLMN-MCC
|
||||
+ mnc: 01 # set your PLMN-MNC
|
||||
@@ -317,7 +317,7 @@ amf:
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
- tac: 1
|
||||
+ mcc: 001 # set your PLMN-MCC
|
||||
@@ -325,7 +325,7 @@ amf:
|
||||
+ tac: 2 # should match the TAC used by your gNB
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
+ mcc: 001 # set your PLMN-MCC
|
||||
+ mnc: 01 # set your PLMN-MNC
|
||||
@@ -379,8 +379,8 @@ To add subscriber information, you can do WebUI operations in the following orde
|
||||
|
||||
Enter the subscriber details of your SIM cards using this tool, to save the subscriber profile in the HSS and UDR MongoDB database backend. If you are using test SIMs, the details are normally printed on the card.
|
||||
|
||||
**Tip:** Subscribers added with this tool immediately register in the Open5GS HSS/ UDR without the need to restart any daemon.
|
||||
{: .notice--info}
|
||||
**Note:** Subscribers added with this tool immediately register in the Open5GS HSS/UDR without the need to restart any daemon. However, if you use the WebUI to change subscriber profile, you must restart the Open5GS AMF/MME daemon for the changes to take effect.
|
||||
{: .notice--warning}
|
||||
|
||||
|
||||
#### Adding a route for the UE to have WAN connectivity {#UEInternet}
|
||||
@@ -430,6 +430,21 @@ $ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
|
||||
$ sudo ip6tables -t nat -A POSTROUTING -s 2001:db8:cafe::/48 ! -o ogstun -j MASQUERADE
|
||||
```
|
||||
|
||||
Optionally, you may consider the settings below for security purposes.
|
||||
|
||||
```bash
|
||||
### Prevent UE's from connecting to the host on which UPF is running
|
||||
$ sudo iptables -I INPUT -s 10.45.0.0/16 -j DROP
|
||||
$ sudo ip6tables -I INPUT -s 2001:db8:cafe::/48 -j DROP
|
||||
|
||||
### If your core network runs over multiple hosts, you probably want to block
|
||||
### UE originating traffic from accessing other network functions.
|
||||
### Replace x.x.x.x/y with the VNFs IP/subnet
|
||||
$ sudo iptables -I FORWARD -s 10.45.0.0/16 -d x.x.x.x/y -j DROP
|
||||
```
|
||||
|
||||
**Note:** The above assumes you do not have any existing rules in the filter and nat tables. If a program such as docker has already set up rules, you may need to add the Open5GS related rules differently.
|
||||
{: .notice--danger}
|
||||
|
||||
## 5. Turn on your eNB/gNB and UE
|
||||
---
|
||||
|
||||
@@ -97,8 +97,8 @@ Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username
|
||||
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
--- amf.yaml 2020-09-05 20:52:28.652234967 -0400
|
||||
+++ amf.yaml.new 2020-09-05 20:55:07.453114885 -0400
|
||||
--- amf.yaml 2020-09-05 20:52:28.652234967 -0400
|
||||
+++ amf.yaml.new 2020-09-05 20:55:07.453114885 -0400
|
||||
@@ -165,23 +165,23 @@
|
||||
- addr: 127.0.0.5
|
||||
port: 7777
|
||||
@@ -107,7 +107,7 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
+ - addr: 10.10.0.5
|
||||
guami:
|
||||
- plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
+ mcc: 001
|
||||
+ mnc: 01
|
||||
@@ -116,7 +116,7 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
set: 1
|
||||
tai:
|
||||
- plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
- tac: 1
|
||||
+ mcc: 001
|
||||
@@ -124,7 +124,7 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
+ tac: 2
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
+ mcc: 001
|
||||
+ mnc: 01
|
||||
@@ -136,8 +136,8 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U and PFCP IP address.
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
|
||||
--- upf.yaml 2020-09-05 20:52:28.652234967 -0400
|
||||
+++ upf.yaml.new 2020-09-05 20:52:55.279052142 -0400
|
||||
--- upf.yaml 2020-09-05 20:52:28.652234967 -0400
|
||||
+++ upf.yaml.new 2020-09-05 20:52:55.279052142 -0400
|
||||
@@ -137,9 +137,7 @@
|
||||
pfcp:
|
||||
- addr: 127.0.0.7
|
||||
@@ -156,8 +156,8 @@ Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username
|
||||
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
--- mme.yaml 2020-09-05 20:52:28.648235143 -0400
|
||||
+++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400
|
||||
--- mme.yaml 2020-09-05 20:52:28.648235143 -0400
|
||||
+++ mme.yaml.new 2020-09-05 20:56:05.434484208 -0400
|
||||
@@ -204,20 +204,20 @@
|
||||
mme:
|
||||
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
|
||||
@@ -168,7 +168,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
+ mcc: 001
|
||||
+ mnc: 01
|
||||
@@ -176,7 +176,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
- tac: 1
|
||||
+ mcc: 001
|
||||
@@ -190,8 +190,8 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
|
||||
--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400
|
||||
+++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400
|
||||
--- sgwu.yaml 2020-09-05 20:50:39.393022566 -0400
|
||||
+++ sgwu.yaml.new 2020-09-05 20:51:06.667838823 -0400
|
||||
@@ -51,7 +51,7 @@
|
||||
#
|
||||
sgwu:
|
||||
@@ -425,7 +425,7 @@ To add subscriber information, you can do WebUI operations in the following orde
|
||||
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
|
||||
4. Click `SAVE` Button
|
||||
|
||||
**Tip:** This addition immediately affects Open5GS without restarting any daemon.
|
||||
**Note:** Subscribers added with this tool immediately register in the Open5GS HSS/UDR without the need to restart any daemon. However, if you use the WebUI to change subscriber profile, you must restart the Open5GS AMF/MME daemon for the changes to take effect.
|
||||
{: .notice--warning}
|
||||
|
||||
### IP routing + NAT for UE internet connectivity
|
||||
@@ -468,6 +468,19 @@ $ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
|
||||
$ sudo ip6tables -t nat -A POSTROUTING -s 2001:db8:cafe::/48 ! -o ogstun -j MASQUERADE
|
||||
```
|
||||
|
||||
Optionally, you may consider the settings below for security purposes.
|
||||
|
||||
```bash
|
||||
### Prevent UE's from connecting to the host on which UPF is running
|
||||
$ sudo iptables -I INPUT -s 10.45.0.0/16 -j DROP
|
||||
$ sudo ip6tables -I INPUT -s 2001:db8:cafe::/48 -j DROP
|
||||
|
||||
### If your core network runs over multiple hosts, you probably want to block
|
||||
### UE originating traffic from accessing other network functions.
|
||||
### Replace x.x.x.x/y with the VNFs IP/subnet
|
||||
$ sudo iptables -I FORWARD -s 10.45.0.0/16 -d x.x.x.x/y -j DROP
|
||||
```
|
||||
|
||||
**Note:** The above assumes you do not have any existing rules in the filter and nat tables. If a program such as docker has already set up rules, you may need to add the Open5GS related rules differently.
|
||||
{: .notice--danger}
|
||||
|
||||
|
||||
@@ -56,8 +56,8 @@ Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username
|
||||
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
--- mme.yaml.old 2020-08-22 11:36:40.512418765 -0400
|
||||
+++ mme.yaml 2020-08-22 11:36:27.081466682 -0400
|
||||
--- mme.yaml.old 2020-08-22 11:36:40.512418765 -0400
|
||||
+++ mme.yaml 2020-08-22 11:36:27.081466682 -0400
|
||||
@@ -204,20 +204,20 @@
|
||||
mme:
|
||||
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
|
||||
@@ -70,7 +70,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
plmn_id:
|
||||
- mcc: 001
|
||||
- mnc: 01
|
||||
+ mcc: 901
|
||||
+ mcc: 999
|
||||
+ mnc: 70
|
||||
mme_gid: 2
|
||||
mme_code: 1
|
||||
@@ -79,7 +79,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
- mcc: 001
|
||||
- mnc: 01
|
||||
- tac: 7
|
||||
+ mcc: 901
|
||||
+ mcc: 999
|
||||
+ mnc: 70
|
||||
+ tac: 1
|
||||
security:
|
||||
@@ -113,8 +113,8 @@ $ diff -u /etc/open5gs/sgwc.yaml.old /etc/open5gs/sgwc.yaml
|
||||
Modify [install/etc/open5gs/smf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/smf.yaml.in) to set the PFCP IP address.
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/smf.yaml.old /etc/open5gs/smf.yaml
|
||||
--- smf.yaml.old 2020-08-22 11:37:39.990816411 -0400
|
||||
+++ smf.yaml 2020-08-22 11:38:18.647999952 -0400
|
||||
--- smf.yaml.old 2020-08-22 11:37:39.990816411 -0400
|
||||
+++ smf.yaml 2020-08-22 11:38:18.647999952 -0400
|
||||
@@ -187,8 +187,7 @@
|
||||
- addr: 127.0.0.4
|
||||
- addr: ::1
|
||||
@@ -141,8 +141,8 @@ Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username
|
||||
|
||||
```diff
|
||||
diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
|
||||
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
|
||||
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
|
||||
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
|
||||
@@ -67,25 +67,25 @@
|
||||
- addr: 127.0.0.5
|
||||
port: 7777
|
||||
@@ -153,7 +153,7 @@ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
- plmn_id:
|
||||
- mcc: 001
|
||||
- mnc: 01
|
||||
+ mcc: 901
|
||||
+ mcc: 999
|
||||
+ mnc: 70
|
||||
amf_id:
|
||||
region: 2
|
||||
@@ -163,14 +163,14 @@ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
- mcc: 001
|
||||
- mnc: 01
|
||||
- tac: 7
|
||||
+ mcc: 901
|
||||
+ mcc: 999
|
||||
+ mnc: 70
|
||||
+ tac: 1
|
||||
plmn_support:
|
||||
- plmn_id:
|
||||
- mcc: 001
|
||||
- mnc: 01
|
||||
+ mcc: 901
|
||||
+ mcc: 999
|
||||
+ mnc: 70
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
@@ -183,8 +183,8 @@ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U and PFCP IP address.
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
|
||||
--- sgwu.yaml.old 2020-08-22 11:41:09.214670723 -0400
|
||||
+++ sgwu.yaml 2020-08-22 11:41:27.433937124 -0400
|
||||
--- sgwu.yaml.old 2020-08-22 11:41:09.214670723 -0400
|
||||
+++ sgwu.yaml 2020-08-22 11:41:27.433937124 -0400
|
||||
@@ -51,9 +51,9 @@
|
||||
#
|
||||
sgwu:
|
||||
@@ -202,8 +202,8 @@ $ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
|
||||
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U and PFCP IP address.
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
|
||||
--- upf.yaml.old 2020-08-22 11:42:57.781750067 -0400
|
||||
+++ upf.yaml 2020-08-22 11:43:13.268901616 -0400
|
||||
--- upf.yaml.old 2020-08-22 11:42:57.781750067 -0400
|
||||
+++ upf.yaml 2020-08-22 11:43:13.268901616 -0400
|
||||
@@ -59,11 +59,9 @@
|
||||
#
|
||||
upf:
|
||||
|
||||
@@ -12,11 +12,16 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
|
||||
* Airspan 5G OpenRange vCU + Airspan 5G OpenRange vDU + Airspan 5G OpenRANGE06 AirVelocity 2700 RU
|
||||
* Airspan AirSpeed 2900
|
||||
* Airspan AirStrand 2200
|
||||
* CableFree Small Cell Outdoor radios (5G n77, n78 and other bands)
|
||||
* CableFree Small Cell Indoor radios (5G n77, n78 and other bands)
|
||||
* CableFree Macro (BBU+RRH) radios (4G and 5G, various bands)
|
||||
* Ericsson Baseband 6630 (21.Q3 Software) + Radio 2217, Radio 2219 (4G and 5G, various bands)
|
||||
* Ericsson StreetMacro 6701 (21.Q3 Software) (5G mmWave, n261) (Baseband 6318 and AIR 1281 packaged together)
|
||||
* Huawei BTS5900
|
||||
* LIONS RANathon O-CU and O-DU + RANathon RS8601 Indoor O-RU + RANathon XG8600 Fronthaul Gateway
|
||||
* NOKIA AEQE (SW: 5G20A)
|
||||
* NOKIA AEQD (SW: 5G20A)
|
||||
* NOKIA AEQP (SW: 5G21A)
|
||||
* Huawei BTS5900
|
||||
|
||||
### Commercial 4G
|
||||
---
|
||||
@@ -34,7 +39,8 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
|
||||
* Baicells Nova 436Q
|
||||
* Baicells Nova 227 (EBS & CBRS)
|
||||
* Baicells Nova 233
|
||||
* Ericsson BaseBand 6630 (21Q1 Software)
|
||||
* Ericsson Baseband 6630 (21Q1 Software)
|
||||
* Ericsson RBS 6402 (18.Q1 software, B2 B25 B4 B7 B252 B255)
|
||||
* Ericsson RBS 6601 + DUL 20 01 + RUS 01 B8
|
||||
* Gemtek WLTGFC-101 (S/W version 2.1.1746.1116)
|
||||
* Huawei BTS3900 (S/W version V100R011C10SPC230)
|
||||
@@ -50,8 +56,8 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
|
||||
---
|
||||
|
||||
* [Amarisoft](https://www.amarisoft.com/) + LimeSDR, USRP, Amarisoft PCI Express Card
|
||||
* [srsLTE / srsENB](https://github.com/srsLTE/srsLTE) + LimeSDR, USRP, BladeRF x40 (BladeRF Not stable)
|
||||
* Open Air Interface 5G ([NR_SA_F1AP_5GRECORDS branch](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/NR_SA_F1AP_5GRECORDS)) + USRP B210
|
||||
* [srsLTE / srsENB](https://github.com/srsLTE/srsLTE) + LimeSDR, USRP, BladeRF x40 (BladeRF Not stable)
|
||||
|
||||
### Misc Radio Hardware
|
||||
---
|
||||
|
||||
@@ -69,6 +69,7 @@ $ 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
|
||||
```
|
||||
|
||||
Enable IP forwarding & Masquerading
|
||||
|
||||
@@ -69,6 +69,7 @@ $ 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
|
||||
```
|
||||
|
||||
Enable IP forwarding & Masquerading
|
||||
|
||||
@@ -89,6 +89,7 @@ $ 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
|
||||
```
|
||||
|
||||
Enable IP forwarding
|
||||
|
||||
@@ -176,8 +176,8 @@ You can modify the configuration file to record more logs.
|
||||
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
|
||||
--- amf.yaml.old 2020-08-22 12:26:56.132213488 -0400
|
||||
+++ amf.yaml 2020-08-22 12:27:04.135901201 -0400
|
||||
--- amf.yaml.old 2020-08-22 12:26:56.132213488 -0400
|
||||
+++ amf.yaml 2020-08-22 12:27:04.135901201 -0400
|
||||
@@ -20,6 +20,7 @@
|
||||
#
|
||||
logger:
|
||||
|
||||
@@ -96,63 +96,63 @@ $ mongo
|
||||
> use open5gs
|
||||
> db.subscribers.find().pretty()
|
||||
{
|
||||
"_id" : ObjectId("60969fe79459f8b40d8d3f68"),
|
||||
"imsi" : "901700000000001",
|
||||
"__v" : 0,
|
||||
"access_restriction_data" : 32,
|
||||
"ambr" : {
|
||||
"uplink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
},
|
||||
"downlink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
}
|
||||
},
|
||||
"network_access_mode" : 2,
|
||||
"security" : {
|
||||
"k" : "465b5ce8b199b49faa5f0a2ee238a6bc",
|
||||
"amf" : "8000",
|
||||
"op" : null,
|
||||
"opc" : "e8ed289deba952e4283b54e88e6183ca",
|
||||
"sqn" : NumberLong(97)
|
||||
},
|
||||
"slice" : [
|
||||
{
|
||||
"sst" : 1,
|
||||
"default_indicator" : true,
|
||||
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
|
||||
"session" : [
|
||||
{
|
||||
"name" : "internet",
|
||||
"type" : 3,
|
||||
"_id" : ObjectId("60969fe7de8743b3c7b1a974"),
|
||||
"pcc_rule" : [ ],
|
||||
"ambr" : {
|
||||
"uplink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
},
|
||||
"downlink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
}
|
||||
},
|
||||
"qos" : {
|
||||
"index" : 9,
|
||||
"arp" : {
|
||||
"priority_level" : 8,
|
||||
"pre_emption_capability" : 1,
|
||||
"pre_emption_vulnerability" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"subscribed_rau_tau_timer" : 12,
|
||||
"subscriber_status" : 0
|
||||
"_id" : ObjectId("60969fe79459f8b40d8d3f68"),
|
||||
"imsi" : "999700000000001",
|
||||
"__v" : 0,
|
||||
"access_restriction_data" : 32,
|
||||
"ambr" : {
|
||||
"uplink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
},
|
||||
"downlink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
}
|
||||
},
|
||||
"network_access_mode" : 2,
|
||||
"security" : {
|
||||
"k" : "465b5ce8b199b49faa5f0a2ee238a6bc",
|
||||
"amf" : "8000",
|
||||
"op" : null,
|
||||
"opc" : "e8ed289deba952e4283b54e88e6183ca",
|
||||
"sqn" : NumberLong(97)
|
||||
},
|
||||
"slice" : [
|
||||
{
|
||||
"sst" : 1,
|
||||
"default_indicator" : true,
|
||||
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
|
||||
"session" : [
|
||||
{
|
||||
"name" : "internet",
|
||||
"type" : 3,
|
||||
"_id" : ObjectId("60969fe7de8743b3c7b1a974"),
|
||||
"pcc_rule" : [ ],
|
||||
"ambr" : {
|
||||
"uplink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
},
|
||||
"downlink" : {
|
||||
"value" : 1,
|
||||
"unit" : 3
|
||||
}
|
||||
},
|
||||
"qos" : {
|
||||
"index" : 9,
|
||||
"arp" : {
|
||||
"priority_level" : 8,
|
||||
"pre_emption_capability" : 1,
|
||||
"pre_emption_vulnerability" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"subscribed_rau_tau_timer" : 12,
|
||||
"subscriber_status" : 0
|
||||
}
|
||||
```
|
||||
|
||||
@@ -163,43 +163,43 @@ $ mongo
|
||||
> use open5gs
|
||||
> db.subscribers.find().pretty()
|
||||
{
|
||||
"_id" : ObjectId("609715fda08851a0744e6ae7"),
|
||||
"imsi" : "901700000021309",
|
||||
"__v" : 0,
|
||||
"access_restriction_data" : 32,
|
||||
"ambr" : {
|
||||
"downlink" : NumberLong(1024000),
|
||||
"uplink" : NumberLong(1024000)
|
||||
},
|
||||
"network_access_mode" : 2,
|
||||
"pdn" : [
|
||||
{
|
||||
"apn" : "internet",
|
||||
"_id" : ObjectId("609715fd455bcd38c884ce85"),
|
||||
"pcc_rule" : [ ],
|
||||
"ambr" : {
|
||||
"downlink" : NumberLong(1024000),
|
||||
"uplink" : NumberLong(1024000)
|
||||
},
|
||||
"qos" : {
|
||||
"qci" : 9,
|
||||
"arp" : {
|
||||
"priority_level" : 8,
|
||||
"pre_emption_vulnerability" : 1,
|
||||
"pre_emption_capability" : 0
|
||||
}
|
||||
},
|
||||
"type" : 0
|
||||
}
|
||||
],
|
||||
"security" : {
|
||||
"k" : "70D49A71DD1A2B806A25ABE0EF749F1E",
|
||||
"amf" : "8000",
|
||||
"op" : null,
|
||||
"opc" : "6F1BF53D624B3A43AF6592854E2444C7"
|
||||
},
|
||||
"subscribed_rau_tau_timer" : 12,
|
||||
"subscriber_status" : 0
|
||||
"_id" : ObjectId("609715fda08851a0744e6ae7"),
|
||||
"imsi" : "999700000021309",
|
||||
"__v" : 0,
|
||||
"access_restriction_data" : 32,
|
||||
"ambr" : {
|
||||
"downlink" : NumberLong(1024000),
|
||||
"uplink" : NumberLong(1024000)
|
||||
},
|
||||
"network_access_mode" : 2,
|
||||
"pdn" : [
|
||||
{
|
||||
"apn" : "internet",
|
||||
"_id" : ObjectId("609715fd455bcd38c884ce85"),
|
||||
"pcc_rule" : [ ],
|
||||
"ambr" : {
|
||||
"downlink" : NumberLong(1024000),
|
||||
"uplink" : NumberLong(1024000)
|
||||
},
|
||||
"qos" : {
|
||||
"qci" : 9,
|
||||
"arp" : {
|
||||
"priority_level" : 8,
|
||||
"pre_emption_vulnerability" : 1,
|
||||
"pre_emption_capability" : 0
|
||||
}
|
||||
},
|
||||
"type" : 0
|
||||
}
|
||||
],
|
||||
"security" : {
|
||||
"k" : "70D49A71DD1A2B806A25ABE0EF749F1E",
|
||||
"amf" : "8000",
|
||||
"op" : null,
|
||||
"opc" : "6F1BF53D624B3A43AF6592854E2444C7"
|
||||
},
|
||||
"subscribed_rau_tau_timer" : 12,
|
||||
"subscriber_status" : 0
|
||||
}
|
||||
```
|
||||
|
||||
@@ -226,12 +226,12 @@ $ mongo
|
||||
> db.subscribers.find().pretty()
|
||||
{
|
||||
...
|
||||
"slice" : [
|
||||
{
|
||||
"sst" : 1,
|
||||
"default_indicator" : true,
|
||||
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
|
||||
"session" : [
|
||||
"slice" : [
|
||||
{
|
||||
"sst" : 1,
|
||||
"default_indicator" : true,
|
||||
"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
|
||||
"session" : [
|
||||
...
|
||||
}
|
||||
```
|
||||
@@ -317,7 +317,7 @@ index 7e939e81..dfe4456d 100644
|
||||
s_nssai:
|
||||
- sst: 1
|
||||
+ - plmn_id:
|
||||
+ mcc: 901
|
||||
+ mcc: 999
|
||||
+ mnc: 70
|
||||
+ s_nssai:
|
||||
+ - sst: 1
|
||||
@@ -476,8 +476,8 @@ The Open5GS package contains a systemd-networkd configuration file for `ogstun`.
|
||||
|
||||
```diff
|
||||
$ diff -u /etc/systemd/network/99-open5gs.network /etc/systemd/network/99-open5gs.network.new
|
||||
--- /etc/systemd/network/99-open5gs.network 2020-09-17 09:29:09.137392040 -0400
|
||||
+++ /etc/systemd/network/99-open5gs.network.new 2020-09-17 09:29:03.375719620 -0400
|
||||
--- /etc/systemd/network/99-open5gs.network 2020-09-17 09:29:09.137392040 -0400
|
||||
+++ /etc/systemd/network/99-open5gs.network.new 2020-09-17 09:29:03.375719620 -0400
|
||||
@@ -2,5 +2,5 @@
|
||||
Name=ogstun
|
||||
|
||||
@@ -501,8 +501,8 @@ Now, you need to modify the configuration file of Open5GS to adjust the UE IP Po
|
||||
|
||||
```diff
|
||||
$ diff -u smf.yaml smf.yaml.new
|
||||
--- smf.yaml 2020-09-17 09:31:16.547882093 -0400
|
||||
+++ smf.yaml.new 2020-09-17 09:32:18.267726844 -0400
|
||||
--- smf.yaml 2020-09-17 09:31:16.547882093 -0400
|
||||
+++ smf.yaml.new 2020-09-17 09:32:18.267726844 -0400
|
||||
@@ -190,7 +190,7 @@
|
||||
- addr: 127.0.0.4
|
||||
- addr: ::1
|
||||
@@ -516,8 +516,8 @@ $ diff -u smf.yaml smf.yaml.new
|
||||
|
||||
```diff
|
||||
$ diff -u upf.yaml upf.yaml.new
|
||||
--- upf.yaml 2020-09-17 09:31:16.547882093 -0400
|
||||
+++ upf.yaml.new 2020-09-17 09:32:25.199619989 -0400
|
||||
--- upf.yaml 2020-09-17 09:31:16.547882093 -0400
|
||||
+++ upf.yaml.new 2020-09-17 09:32:25.199619989 -0400
|
||||
@@ -139,7 +139,7 @@
|
||||
gtpu:
|
||||
- addr: 127.0.0.7
|
||||
@@ -766,8 +766,8 @@ Create **newtables** file as below.
|
||||
|
||||
```diff
|
||||
$ diff -u oldtables newtables
|
||||
--- oldtables 2019-06-01 23:43:50.354974226 +0900
|
||||
+++ newtables 2019-06-01 23:44:16.110931684 +0900
|
||||
--- oldtables 2019-06-01 23:43:50.354974226 +0900
|
||||
+++ newtables 2019-06-01 23:44:16.110931684 +0900
|
||||
@@ -8,6 +8,7 @@
|
||||
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
|
||||
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
|
||||
@@ -1089,12 +1089,12 @@ Currently, the number of UE is limited to `128*128`.
|
||||
|
||||
```
|
||||
* AMF_ID
|
||||
PLMN ID - MNC: 901, MCC: 70
|
||||
PLMN ID - MNC: 999, MCC: 70
|
||||
Region : 2
|
||||
Set : 1
|
||||
|
||||
* TAI
|
||||
PLMN ID - MNC: 901, MCC: 70
|
||||
PLMN ID - MNC: 999, MCC: 70
|
||||
TAC : 1
|
||||
|
||||
* S_NSSASI
|
||||
@@ -1105,12 +1105,12 @@ Currently, the number of UE is limited to `128*128`.
|
||||
|
||||
```
|
||||
* GUMMEI
|
||||
PLMN ID - MNC: 901, MCC: 70
|
||||
PLMN ID - MNC: 999, MCC: 70
|
||||
MME Group : 2
|
||||
MME Code : 1
|
||||
|
||||
* TAI
|
||||
PLMN ID - MNC: 901, MCC: 70
|
||||
PLMN ID - MNC: 999, MCC: 70
|
||||
TAC : 1
|
||||
```
|
||||
|
||||
@@ -1273,10 +1273,10 @@ $ echo $(cd $(dirname ./install/lib/x86_64-linux-gnu/) && pwd -P)/$(basename ./i
|
||||
$ export LD_LIBRARY_PATH=/home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu
|
||||
$ ldd ./install/bin/open5gs-amfd
|
||||
...
|
||||
libogsapp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogsapp.so.1 (0x00007f161ab51000)
|
||||
libogscore.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogscore.so.1 (0x00007f161a922000)
|
||||
libogssctp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogssctp.so.1 (0x00007f161a71d000)
|
||||
libogss1ap.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogss1ap.so.1 (0x00007f161a519000)
|
||||
libogsapp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogsapp.so.1 (0x00007f161ab51000)
|
||||
libogscore.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogscore.so.1 (0x00007f161a922000)
|
||||
libogssctp.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogssctp.so.1 (0x00007f161a71d000)
|
||||
libogss1ap.so.1 => /home/acetcom/Documents/git/open5gs/install/lib/x86_64-linux-gnu/libogss1ap.so.1 (0x00007f161a519000)
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
@@ -190,14 +190,14 @@ Title : sysmocom SIM Card Details / AM93\PICK\00859
|
||||
|
||||
IMSI ICCID ACC PIN1 PUK1 PIN2 PUK2 Ki OPC ADM1 KIC1 KID1 KIK1
|
||||
...
|
||||
901700000017408 8988211000000174089 0100 3623 84724035 8774 57473966 B1233463AB9BC2AD2DB1830EB6417E7B 625150E2A943E3353DD23554101CAFD4 47190711 C865CAA0A54542333929B29B116F4375 7D7F65DCD99003C0A0D5D31CA3E5253E 5B27983AF628FC3FCB36B89300012944
|
||||
999700000017408 8988211000000174089 0100 3623 84724035 8774 57473966 B1233463AB9BC2AD2DB1830EB6417E7B 625150E2A943E3353DD23554101CAFD4 47190711 C865CAA0A54542333929B29B116F4375 7D7F65DCD99003C0A0D5D31CA3E5253E 5B27983AF628FC3FCB36B89300012944
|
||||
```
|
||||
|
||||
Here's my subscriber information from above.
|
||||
|
||||
```
|
||||
MCC/MNC : 901/70
|
||||
IMSI : 901700000017408
|
||||
MCC/MNC : 999/70
|
||||
IMSI : 999700000017408
|
||||
K : B1233463AB9BC2AD2DB1830EB6417E7B
|
||||
OPc : 625150E2A943E3353DD23554101CAFD4
|
||||
```
|
||||
@@ -222,12 +222,15 @@ Then proceed as follows:
|
||||
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
|
||||
4. Click `SAVE` Button
|
||||
|
||||
**Note:** Subscribers added with this tool immediately register in the Open5GS HSS/UDR without the need to restart any daemon. However, if you use the WebUI to change subscriber profile, you must restart the Open5GS AMF/MME daemon for the changes to take effect.
|
||||
{: .notice--warning}
|
||||
|
||||
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
|
||||
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
--- mme.yaml.old 2020-08-22 12:07:32.755250028 -0400
|
||||
+++ mme.yaml 2020-08-22 12:08:17.309320211 -0400
|
||||
--- mme.yaml.old 2020-08-22 12:07:32.755250028 -0400
|
||||
+++ mme.yaml 2020-08-22 12:08:17.309320211 -0400
|
||||
@@ -208,20 +208,20 @@
|
||||
mme:
|
||||
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
|
||||
@@ -238,7 +241,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
addr: 127.0.0.2
|
||||
gummei:
|
||||
plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
+ mcc: 310
|
||||
+ mnc: 789
|
||||
@@ -246,7 +249,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
mme_code: 1
|
||||
tai:
|
||||
plmn_id:
|
||||
- mcc: 901
|
||||
- mcc: 999
|
||||
- mnc: 70
|
||||
- tac: 1
|
||||
+ mcc: 310
|
||||
@@ -260,8 +263,8 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
|
||||
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
|
||||
```diff
|
||||
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
|
||||
--- sgwu.yaml.old 2020-08-22 12:08:44.782880778 -0400
|
||||
+++ sgwu.yaml 2020-08-22 12:06:49.809299514 -0400
|
||||
--- sgwu.yaml.old 2020-08-22 12:08:44.782880778 -0400
|
||||
+++ sgwu.yaml 2020-08-22 12:06:49.809299514 -0400
|
||||
@@ -82,7 +82,7 @@
|
||||
#
|
||||
sgwu:
|
||||
@@ -335,8 +338,8 @@ You should check your phone frequency. If your phone does not support Band-3, yo
|
||||
|
||||
```diff
|
||||
$ diff -u enb.conf.example enb.conf
|
||||
-- enb.conf.example 2022-01-19 20:30:13.612993155 +0900
|
||||
+++ enb.conf 2022-01-19 21:04:15.674419300 +0900
|
||||
-- enb.conf.example 2022-01-19 20:30:13.612993155 +0900
|
||||
+++ enb.conf 2022-01-19 21:04:15.674419300 +0900
|
||||
@@ -20,9 +20,9 @@
|
||||
#####################################################################
|
||||
[enb]
|
||||
@@ -372,8 +375,8 @@ $ diff -u enb.conf.example enb.conf
|
||||
|
||||
```diff
|
||||
$ diff -u rr.conf.example rr.conf
|
||||
-- rr.conf.example 2022-01-19 20:30:13.620992794 +0900
|
||||
+++ rr.conf 2022-01-19 21:05:21.959044145 +0900
|
||||
-- rr.conf.example 2022-01-19 20:30:13.620992794 +0900
|
||||
+++ rr.conf 2022-01-19 21:05:21.959044145 +0900
|
||||
@@ -55,10 +55,10 @@
|
||||
{
|
||||
// rf_port = 0;
|
||||
@@ -406,8 +409,8 @@ Device Argument : Clock source from external GPS-DO
|
||||
If you are not using GPS-DO, you can just comment out `device_args` as shown below.
|
||||
```diff
|
||||
$ diff -u enb.conf enb.conf.no_gps_do
|
||||
--- enb.conf 2022-01-19 21:08:32.941527373 +0900
|
||||
+++ enb.conf.no_gps_do 2022-01-19 21:10:18.612581261 +0900
|
||||
--- enb.conf 2022-01-19 21:08:32.941527373 +0900
|
||||
+++ enb.conf.no_gps_do 2022-01-19 21:10:18.612581261 +0900
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
# Example for ZMQ-based operation with TCP transport for I/Q samples
|
||||
|
||||
@@ -307,9 +307,9 @@ Username: test
|
||||
Password: testpasswd
|
||||
Server: ims.mnc001.mcc001.3gppnetwork.org (Created DNS Domain Name or IP to which IMS components are bound to, visible interface IP address)
|
||||
Optional Settings:
|
||||
Authentication username: test
|
||||
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
|
||||
Transport type: UDP
|
||||
Authentication username: test
|
||||
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
|
||||
Transport type: UDP
|
||||
```
|
||||
|
||||
In Phone 2:
|
||||
@@ -319,9 +319,9 @@ Username: test2
|
||||
Password: testpasswd
|
||||
Server: ims.mnc001.mcc001.3gppnetwork.org (Created DNS Domain Name or IP to which IMS components are bound to, visible interface IP address)
|
||||
Optional Settings:
|
||||
Authentication username: test2
|
||||
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
|
||||
Transport type: UDP
|
||||
Authentication username: test2
|
||||
Outbound proxy address: 172.24.15.30 (Floating IP of VM in case of OpenStack or else no need to fill in case of physical machine)
|
||||
Transport type: UDP
|
||||
```
|
||||
|
||||
- Set "Receive incoming calls" option to enabled state in both phones
|
||||
@@ -566,8 +566,8 @@ options {
|
||||
// the all-0's placeholder.
|
||||
|
||||
//forwarders {
|
||||
// Put here the IP address of other DNS server which could be used if name cannot be resolved with DNS server running in this machine (Optional)
|
||||
//10.4.128.2;
|
||||
// Put here the IP address of other DNS server which could be used if name cannot be resolved with DNS server running in this machine (Optional)
|
||||
//10.4.128.2;
|
||||
//};
|
||||
|
||||
//========================================================================
|
||||
@@ -1068,8 +1068,8 @@ In the below example. epc-ims is the hostname of the machine
|
||||
|
||||
```
|
||||
root@epc-ims:~# cat /etc/hosts
|
||||
127.0.0.1 localhost
|
||||
127.0.0.1 epc-ims
|
||||
127.0.0.1 localhost
|
||||
127.0.0.1 epc-ims
|
||||
```
|
||||
|
||||
#### 20. Add IMS subscription use in FoHSS as follows from the Web GUI
|
||||
@@ -1078,7 +1078,7 @@ Assuming IMSI of the user as 001010123456791 and MSISDN is 0198765432100
|
||||
|
||||
```
|
||||
Login to the HSS web console.
|
||||
Navigate to the User Identities page
|
||||
Navigate to the User Identities page
|
||||
Create the IMSU
|
||||
Click IMS Subscription / Create
|
||||
Enter:
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
{% if jekyll.environment == "production" %}
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
ga('create', '{{ site.google_analytics }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
gtag('js', new Date());
|
||||
gtag('config', '{{ site.google_analytics }}');
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<link rel="stylesheet" href="{{ "/assets/css/main.css" | relative_url }}">
|
||||
<link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
|
||||
<link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ "/feed.xml" | relative_url }}">
|
||||
<link rel="shortcut icon" href="{{ "/assets/favicon.ico" | relative_url }}">
|
||||
<link rel="shortcut icon" href="{{ "https://open5gs.org/assets/img/favicon.ico" | relative_url }}">
|
||||
|
||||
{% if page.head_inline %}
|
||||
{{ page.head_inline }}
|
||||
|
||||
@@ -37,14 +37,19 @@ head_inline: "<style> ul { padding-bottom: 1em; } </style>"
|
||||
|
||||
- @nickvsnetworking
|
||||
- [My first 5G Core : Open5GS and UERANSIM](http://nickvsnetworking.com/my-first-5g-core-open5gs-and-ueransim/)
|
||||
- [Backing up and restoring Open5GS](https://nickvsnetworking.com/backing-up-and-restoring-open5gs/)
|
||||
- [Open5Gs Without NAT](https://nickvsnetworking.com/open5gs-without-nat/)
|
||||
- [Sending SMS in Open5GS LTE Networks using the SGs Interface and OsmoMSC](https://nickvsnetworking.com/sending-sms-in-open5gs-lte-networks-using-the-sgs-interface-and-osmomsc-with-smsos/)
|
||||
- [OsmoMSC and Open5GS MME – SGs Interface for CSCF / InterRAT Handover](https://nickvsnetworking.com/osmomsc-and-open5gs-mme-sgs-interface-for-cscf-interran-handover/)
|
||||
- [Static IPs for UEs](http://nickvsnetworking.com/open5gs-epc-static-ip-addresses-for-ues-apns-subscribers/)
|
||||
- [Open5GS without NAT](https://nickvsnetworking.com/open5gs-without-nat/)
|
||||
- [Basics of EPC/LTE Online Charging (OCS)](https://nickvsnetworking.com/basics-of-epc-lte-online-charging-ocs/)
|
||||
- [Backing up and Restoring Open5GS](https://nickvsnetworking.com/backing-up-and-restoring-open5gs/)
|
||||
- Diameter Routing Agents - [Part 1](https://nickvsnetworking.com/diameter-routing-agents-why-you-need-them-and-how-to-build-them-part-1/), [Part 2](https://nickvsnetworking.com/diameter-routing-agents-why-you-need-them-and-how-to-build-them-part-2-routing/), [Part 3](https://nickvsnetworking.com/diameter-routing-agents-part-3-building-a-dra-with-freediameter/)
|
||||
|
||||
- @s5uishida
|
||||
- [Open5GS EPC & OpenAirInterface UE/RAN Sample configuration](https://github.com/s5uishida/open5gs_epc_oai_sample_config)
|
||||
- [Open5GS 5GC & UERANSIM UE/RAN Sample Configuration](https://github.com/s5uishida/open5gs_5gc_ueransim_sample_config)
|
||||
- [Open5GS & UERANSIM - Select nearby UPF according to the connected gNodeB](https://github.com/s5uishida/open5gs_5gc_ueransim_nearby_upf_sample_config)
|
||||
- [VoLTE and SMS Configuration for docker_open5gs](https://github.com/s5uishida/docker_open5gs_volte_sms_config)
|
||||
- [Select UPF based on S-NSSAI](https://github.com/s5uishida/open5gs_5gc_ueransim_snssai_upf_sample_config)
|
||||
- [SCP Indirect communication Model C](https://github.com/s5uishida/open5gs_5gc_ueransim_scp_model_c_sample_config)
|
||||
- [Monitoring Metrics with Prometheus](https://github.com/s5uishida/open5gs_5gc_ueransim_metrics_sample_config)
|
||||
|
||||
@@ -4,23 +4,26 @@ title: Support
|
||||
permalink: /support/
|
||||
---
|
||||
|
||||
###### Updated Sep, 2020
|
||||
###### Updated Sep, 2022
|
||||
|
||||
### Open5GS Licensing
|
||||
|
||||
Open5GS is licensed under a dual licensing model designed to meet the development and distribution needs of both commercial and open source projects.
|
||||
|
||||
### For Commercial Projects
|
||||
The commercial Open5GS license gives you the full rights to create and distribute software on your own terms without any open source license obligations. With the commercial license, you also have access to the official NeoPlane Support and close strategic relationship with [NeoPlane](https://neoplane.io) to make sure your development goals are met.
|
||||
|
||||
Commercial distributors that develop and distribute commercially licensed Open5GS software and do not wish their software under version 3 of the GNU Affero General Public License (the “AGPL-3.0”) must enter into a commercial license agreement with [NextEPC, Inc.](https://nextepc.com)
|
||||
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 \<sales@neoplane.io\>](mailto:sales@neoplane.io) for more information on commercial licenses.
|
||||
|
||||
### Our Partners
|
||||
|
||||
We work with leading partners in mobile communications to offer our customers complete solutions.
|
||||
|
||||
**[NextEPC](https://nextepc.com/)**: Established in U.S. in 2019, NextEPC Inc. provides the latest wireless telecommunications technologies and outstanding support to wireless solution providers and vendors around the world. Their solutions include scalable and versatile 4G/5G core network systems. They also offer professional development and customization services for Enterprise users.
|
||||
|
||||
Please contact [sales@nextepc.com](mailto:sales@nextepc.com) for more informations.
|
||||
|
||||
### For Open Source Projects
|
||||
|
||||
For developers of Free Open Source Software ("FOSS") applications under the AGPL-3.0 that want to combine and distribute those FOSS applications with Open5GS software, Open5GS open source software licensed under the AGPL-3.0 is the best option.
|
||||
|
||||
[sysmocom](https://sysmocom.de/) is providing commercial services around Open5GS
|
||||
open source software including support, development, consulting, training and system integration.
|
||||
**[sysmocom](https://sysmocom.de/)**: Sysmocom was founded in Berlin, Germany by two veterans of the Free / Open Source Software (FOSS) community. They are providing commercial services around Open5GS open source software including support, development, consulting, training and system integration.
|
||||
|
||||
Please contact [Harald Welte \<sales@sysmocom.de\>](mailto:sales@sysmocom.de) for any related inquiries.
|
||||
|
||||
@@ -13,8 +13,7 @@ head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>
|
||||
- [Metrics] Initial metrics support based on Prometheus ([#1571](https://github.com/open5gs/open5gs/pull/1571)) -- [pespin](https://github.com/pespin)
|
||||
|
||||
#### Enhancements
|
||||
- [PFCP] Upgrade PFCP to v16.9.1 [1235317](https://github.com/open5gs/open5gs/commit/12353178fb7c15a5c78035e19501412af9c76ad0)
|
||||
- [AMF] Added support for SUCI prtection schemes A and B( ([#1589](https://github.com/open5gs/open5gs/pull/1589)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [PFCP] Upgrade PFCP to v16.9.1 -- [1235317](https://github.com/open5gs/open5gs/commit/12353178fb7c15a5c78035e19501412af9c76ad0)
|
||||
- [NRF] Don't abort if there are too many registered NF instances ([#1579](https://github.com/open5gs/open5gs/pull/1579)) -- [mitmitmitm](https://github.com/mitmitmitm)
|
||||
- [SGW-C] Consider if SMF/PGW GTPv2-C address changed ([#1560](https://github.com/open5gs/open5gs/issues/1560)) -- [pespin](https://github.com/pespin)
|
||||
- [CLI] Added four addtional commands in dbctl ([#1562](https://github.com/open5gs/open5gs/pull/1562)) -- [mcatalancid](https://github.com/mcatalancid)
|
||||
|
||||
52
docs/_posts/2022-07-25-release-v2.4.9.md
Normal file
52
docs/_posts/2022-07-25-release-v2.4.9.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: "v2.4.9 - Default MCC/MNC from 901/70 to 999/70"
|
||||
date: 2022-07-25 20:52:00 +0900
|
||||
categories:
|
||||
- Release
|
||||
tags:
|
||||
- News
|
||||
- Release
|
||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
|
||||
---
|
||||
|
||||
#### New Features
|
||||
- [CONF] Changed default MCC/MNC from 901/70 to 999/70 -- [b58ebda](https://github.com/open5gs/open5gs/commit/b58ebda556cf0278fd361bcd6ca044502398e6dc)
|
||||
- [MISC] Added static analysis & Fixed the results ([#1638](https://github.com/open5gs/open5gs/pull/1638)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
|
||||
#### Enhancements
|
||||
- [SBI] Support Discovery Optional Parameter -- [a5010a6](https://github.com/open5gs/open5gs/commit/a5010a61effce92fe9dfb2cbf8df1f04ddc1de64), [9b76215](https://github.com/open5gs/open5gs/commit/9b762158a6ef3f8c4f3967d04e01d1a13cc9908a)
|
||||
- [SMF] Send PDU Session Establish Accept to serving AMF ([#1671](https://github.com/open5gs/open5gs/pull/1671)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [MME] Introduce support for handling Charging Characteristics from HSS ([#1673](https://github.com/open5gs/open5gs/pull/1673)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
- [MME] Set default Network-Access-Mode to 0 ([#1672](https://github.com/open5gs/open5gs/pull/1672)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
- [AMF] Handle namf-callback DeregNotify message from UDM ([#1654](https://github.com/open5gs/open5gs/pull/1654)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [Systemd] upf.postinst: Don't restart service in chroot ([#1644](https://github.com/open5gs/open5gs/pull/1644)) -- [osmith42](https://github.com/osmith42)
|
||||
- [PFCP] Added UE IP address in Uplink PDR rules ([#1642](https://github.com/open5gs/open5gs/pull/1642)) -- [Networkmama](https://github.com/Networkmama)
|
||||
- [TLV] Changed MAX TLV More to 16 -- [051c19b](https://github.com/open5gs/open5gs/commit/051c19b7c8277ecf0465eb895249e9e520ba5e63)
|
||||
- [PFCP] Error code paths replaced with asserts() ([#1635](https://github.com/open5gs/open5gs/pull/1635)) -- [pespin](https://github.com/pespin)
|
||||
- [PFCP/GTP] context when TEID=0, SEID=0 ([#1594](https://github.com/open5gs/open5gs/pull/1594), [#1606](https://github.com/open5gs/open5gs/pull/1606), [#1620](https://github.com/open5gs/open5gs/pull/1620)) -- [pespin](https://github.com/pespin)
|
||||
- [SMF] Gn: QoS Profile and PCO IE improvements ([#1631](https://github.com/open5gs/open5gs/pull/1631)) -- [pespin](https://github.com/pespin)
|
||||
- [PFCP] Added Network Instance to CP-UP FAR ([#1630](https://github.com/open5gs/open5gs/pull/1630)) -- [Networkmama](https://github.com/Networkmama)
|
||||
- [PFCP] Added DNN/APN in FAR ([#1629](https://github.com/open5gs/open5gs/pull/1629)) -- [Networkmama](https://github.com/Networkmama)
|
||||
- [PFCP] Set v4/6 flag in F-TEID IE request type ([#1625](https://github.com/open5gs/open5gs/pull/1625)) -- [Networkmama](https://github.com/Networkmama)
|
||||
- [SMF] pfcp-sm: Fix ogs_fsm_dispatch() on NULL sess ([#1628](https://github.com/open5gs/open5gs/pull/1628)) -- [pespin](https://github.com/pespin)
|
||||
- [UPF] Avoid crash if no default subnet configured ([#1624](https://github.com/open5gs/open5gs/pull/1624)) -- [pespin](https://github.com/pespin)
|
||||
- [SMF] Gy: Send Multiple-Services-Indicator AVP only during Initial CCR ([#1616](https://github.com/open5gs/open5gs/pull/1616)) -- [pespin](https://github.com/pespin)
|
||||
- [Docker] Use local sources to build applications ([#1583](https://github.com/open5gs/open5gs/pull/1583)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [SBI] Change nf-instance-id to Optional in nf-instance context -- [c528e0d](https://github.com/open5gs/open5gs/commit/c528e0d5bc258336ab302efe08df7ca5472d0134)
|
||||
- [CLI] Added show commands in the dbctl ([#1613](https://github.com/open5gs/open5gs/pull/1613)) -- [JagannathS](https://github.com/JagannathS)
|
||||
|
||||
#### Bug Fixes
|
||||
- [AMF] Fixed 5GMM cause in 5GMM reject message ([#1660](https://github.com/open5gs/open5gs/issues/1660)) -- [takgr](https://github.com/takgr)
|
||||
- [ASN1C] Rework APER from [mouse07410/asn1c#94](https://github.com/mouse07410/asn1c/issues/94)
|
||||
- [TEST] Fixed a crash for UERANSIM 500 Test ([#1652](https://github.com/open5gs/open5gs/pull/1652)) -- [lemon1009](https://github.com/lemon1009)
|
||||
- [SBI] from NRF with wrong requester-nf-type ([#1650](https://github.com/open5gs/open5gs/issues/1650)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [PFCP] Fixed a endianness of OGS_PFCP_APPLY_ACTION ([#1640](https://github.com/open5gs/open5gs/issues/1640)) -- [mitmitmitm](https://github.com/mitmitmitm)
|
||||
- [DBI] Fixed a crash when slice/session overflow ([#1637](https://github.com/open5gs/open5gs/issues/1637)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
- [AMF/MME] Added a protection code for SCTP jumbo frame ([#1632](https://github.com/open5gs/open5gs/issues/1632)) -- [kbaccar](https://github.com/kbaccar)
|
||||
- [SBI] Fix memory leak for nghttp2 session ([#1618](https://github.com/open5gs/open5gs/pull/1618)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [MME/AMF] Fixed network name encoding ([#1614](https://github.com/open5gs/open5gs/issues/1614)) -- [Mozartor2](https://github.com/Mozartor2)
|
||||
- [SBI] Fixed invalid read beyond allocated memory ([#1610](https://github.com/open5gs/open5gs/pull/1610)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [CORE] Compare port in ogs_sockaddr_is_equal() ([#1608](https://github.com/open5gs/open5gs/pull/1608)) -- [pespin](https://github.com/pespin)
|
||||
|
||||
Download -- [v2.4.9.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.9.tar.gz)
|
||||
{: .notice--info}
|
||||
58
docs/_posts/2022-11-18-release-v2.4.12.md
Normal file
58
docs/_posts/2022-11-18-release-v2.4.12.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: "v2.4.12 - Service-name based NF Discovery"
|
||||
date: 2022-11-18 22:00:00 +0900
|
||||
categories:
|
||||
- Release
|
||||
tags:
|
||||
- News
|
||||
- Release
|
||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
|
||||
---
|
||||
|
||||
|
||||
#### New Features
|
||||
- [CONF] Service-name based NF Discovery -- [f020732](https://github.com/open5gs/open5gs/commit/f020732ce9f60217dfcd0b7e9ba5c8949db966d5), [9f98d42](https://github.com/open5gs/open5gs/commit/9f98d421a081a5edc3a525d1cf2504b8b6cf059e), [5295c10](https://github.com/open5gs/open5gs/commit/5295c108adc2fc5ae97ee5007760334ef7a6297b)
|
||||
|
||||
#### Enhancements
|
||||
- [SBI] Move state machine from src to lib directory -- [e6a14cb](https://github.com/open5gs/open5gs/commit/e6a14cb73debbdc21e91499b75dde3d71a5aa02b)
|
||||
- [SBI] Increased the MAX stream number from UE * 16 -- [db37bc8](https://github.com/open5gs/open5gs/commit/db37bc894459df38661bdf98891938ec3513bc72), [ec9fe7b](https://github.com/open5gs/open5gs/commit/ec9fe7b31d0253003244be498e8f963da63e7657), [603a746](https://github.com/open5gs/open5gs/commit/603a746f49c68b06ab5d8b3ceeca3afde987cab5)
|
||||
- [Diameter] Improve S6A interface ([#1676](https://github.com/open5gs/open5gs/pull/1676), [#1698](https://github.com/open5gs/open5gs/pull/1698), [#1714](https://github.com/open5gs/open5gs/pull/1714)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
- [MME] Added protection code if no PDN-Type ([#1756](https://github.com/open5gs/open5gs/pull/1756)) -- [yar-or81](https://github.com/yar-or81)
|
||||
- [Metric] Move metrics configuration section under respective ([#1754](https://github.com/open5gs/open5gs/pull/1754)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [Diameter] Enable Change Streams ([#1758](https://github.com/open5gs/open5gs/pull/1758)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
- [AMF] Added amfInfoList to NFProfile ([#1757](https://github.com/open5gs/open5gs/pull/1757)) -- [gstaa](https://github.com/gstaa)
|
||||
- [TLV] Acceptable even if the TLV length is smaller than expected ([#1780](https://github.com/open5gs/open5gs/discussions/1780)) -- [infinitydon](https://github.com/infinitydon)
|
||||
- [Diameter] Introduce Cancel Location and Insert Subscription Data ([#1744](https://github.com/open5gs/open5gs/pull/1744)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
|
||||
#### Security Issues
|
||||
- [PFCP] Fixed security protection -- [CVE-2022-39063](https://cve.report/CVE-2022-39063), [d99491a](https://github.com/open5gs/open5gs/commit/d99491aca5304460d3929b37bf26e064efd86686), [444e182](https://github.com/open5gs/open5gs/commit/444e1822887a78d3c3ef1f0bcaad9ee10ac951c3)
|
||||
- [SBI] Fixed HTTP2 crash from random JSON data ([#1679](https://github.com/open5gs/open5gs/issues/1679)) -- [Popvlvs](https://github.com/Popvlvs)
|
||||
- [TLV] UPF crashes after UDP port scan ([#1767](https://github.com/open5gs/open5gs/issues/1767)) -- [Popvlvs](https://github.com/Popvlvs)
|
||||
|
||||
#### Bug Fixes
|
||||
- [SBI] Fixed memory leak and CPU usage 100% -- [7231daf](https://github.com/open5gs/open5gs/commit/7231dafbf12c2009ec6fe740686342e2c5d245a2), [c716a12](https://github.com/open5gs/open5gs/commit/c716a1294a6120f4100ba2efa9039f6168d74ce7)
|
||||
- [Metrics] Fixed double-free on application exit load error ([#1717](https://github.com/open5gs/open5gs/issues/1717)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [NRF] Fixed library load error -- [9b10d70](https://github.com/open5gs/open5gs/commit/9b10d70c7730ba86800b85fe05260c5bb072d91e)
|
||||
- [SMF] Fixed abort on app exit when no diameter configuration -- ([#1710](https://github.com/open5gs/open5gs/issues/1710)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [MME] Fixed crash on sending SMS between UEs -- ([#1701](https://github.com/open5gs/open5gs/issues/1701)) -- [salibeh](https://github.com/salibeh)
|
||||
- [MME] Fixed GTP transaction crash if it has already been removed during paging-- ([#1696](https://github.com/open5gs/open5gs/issues/1696)) -- [vsbc2010](https://github.com/vsbc2010)
|
||||
- [5GC] Session deletion was not properly worked in BSF([#1725](https://github.com/open5gs/open5gs/issues/1725)) -- [prasenjitpdas](https://github.com/prasenjitpdas)
|
||||
- [AMF] In deregistration state, we use an invalid state-machine pointer. ([#1805](https://github.com/open5gs/open5gs/pull/1805)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [SGWC] Fixed crash because session context could be deleted before response message is not received from SMF ([#1765](https://github.com/open5gs/open5gs/issues/1765)) -- [dai9000](https://github.com/dai9000)
|
||||
- [SMF] Wait for both N1&N2 release signals before releasing session ([#1753](https://github.com/open5gs/open5gs/pull/1753)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [UPF] UL and DL URR usage Report was swapped ([#1793](https://github.com/open5gs/open5gs/issues/1793)) -- [dibasdas02](https://github.com/dibasdas02)
|
||||
- [CORE] Fixed timer overflow on 32bit systems ([#1770](https://github.com/open5gs/open5gs/pull/1770)) -- [spencersevilla](https://github.com/spencersevilla)
|
||||
|
||||
#### Specification Compliance
|
||||
- [5GC] Handle APN/DNN names as case-insensitive ([#1747](https://github.com/open5gs/open5gs/pull/1747)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
- [AMF] Accept Deregistration Notification from UDM only for registered UE -- ([#1737](https://github.com/open5gs/open5gs/pull/1737)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [SBI] Send NF discovery query with service-names delimited with comma -- ([#1730](https://github.com/open5gs/open5gs/pull/1730)) -- [bmeglicit](https://github.com/bmeglicit)
|
||||
- [Gx] Handle upCnxState=ACTIVATION by later replaying with 200 instead of 204 ([#1729](https://github.com/open5gs/open5gs/pull/1729)) -- [mitmitmitm](https://github.com/mitmitmitm)
|
||||
- [MME] Fixed buffer overflow in S6A IDR([#1728](https://github.com/open5gs/open5gs/pull/1728)) -- [mitmitmitm](https://github.com/mitmitmitm)
|
||||
- [Gx] Added 3GPP-Charging-Characteristics if received on S5/8c ([#1724](https://github.com/open5gs/open5gs/pull/1724)) -- [lynxis](https://github.com/lynxis)
|
||||
- [S5c/Gn] Fix PCO IE sent in response its presence in request ([#1691](https://github.com/open5gs/open5gs/pull/1691)) -- [herlesupreeth](https://github.com/herlesupreeth)
|
||||
- [Diameter] Fixed the path of Nnrf_NFManagement Service ([#1683](https://github.com/open5gs/open5gs/issues/1683)) -- [s5uishida](https://github.com/s5uishida)
|
||||
- [Diameter] Fixed AVP Occurring Too Many Times ([#1680](https://github.com/open5gs/open5gs/pull/1680)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
|
||||
Download -- [v2.4.12.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.12.tar.gz)
|
||||
{: .notice--info}
|
||||
29
docs/_posts/2023-01-14-release-v2.4.13.md
Normal file
29
docs/_posts/2023-01-14-release-v2.4.13.md
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: "v2.4.13 - Bug Fixes"
|
||||
date: 2023-01-14 11:21:00 +0900
|
||||
categories:
|
||||
- Release
|
||||
tags:
|
||||
- News
|
||||
- Release
|
||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
|
||||
---
|
||||
|
||||
#### Security Issues
|
||||
- [UPF] Fixed an infinite loop when ext_len is 0 -- [2319375](https://github.com/open5gs/open5gs/commit/2319375ea7084e6e9f5db6f16853f7f8c146aa86)
|
||||
|
||||
#### Bug Fixes
|
||||
- [PCRF] Fixed a crash when switching between video and audio. ([#1981](https://github.com/open5gs/open5gs/issues/1981)) -- [lglhust](https://github.com/lglhust)
|
||||
- [MME] Sending UEContextReleaseCommand after Attach-Reject to clear UE Context ([#1848](https://github.com/open5gs/open5gs/issues/1848)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
|
||||
- [SBI] Case-Insensitive inside MIME message ([#1939](https://github.com/open5gs/open5gs/issues/1939)) -- [congzee](https://github.com/congzee)
|
||||
- [AMF] Fixed a problem of SMF selection -- ([#1929](https://github.com/open5gs/open5gs/pull/1929)) -- [miguelbf-alb](https://github.com/miguelbf-alb)
|
||||
- [AMF] Fixed a crash while NG_Reset in response for UE_Context_Release_Command ([#1928](https://github.com/open5gs/open5gs/issues/1928)) -- [mateuszmichalskiacc](https://github.com/mateuszmichalskiacc)
|
||||
- [AMF] Wrongly sending NG-AP "PDU Session Release" to gNodeB when gNodeB does not have a PDU Session ([#1925](https://github.com/open5gs/open5gs/issues/1925)) -- [irazairspan](https://github.com/irazairspan)
|
||||
- [AMF/MME] Forgetting the UE Radio Capabilities when UE is sending NAS "De-Registration Request" with "type = Switch-Off" ([#1917](https://github.com/open5gs/open5gs/issues/1917)) -- [irazairspan](https://github.com/irazairspan)
|
||||
- [SMF/UPF] Fixed stack overflow on small memory like Alpine. ([#1911](https://github.com/open5gs/open5gs/issues/1911)) -- [maikovisky](https://github.com/maikovisky)
|
||||
- [AMF/MME] Refactoring common_register_state() to prevent a crash ([#1912](https://github.com/open5gs/open5gs/issues/1912)) -- [lemon1009](https://github.com/lemon1009)
|
||||
- [UPF] Packet buffer must be freed after sending replay message -- ([#1936](https://github.com/open5gs/open5gs/pull/1936)) -- [lester-001](https://github.com/lester-001)
|
||||
- [AMF] Added safety code to prevent crash while getting amf_ue from sess -- ([#1913](https://github.com/open5gs/open5gs/pull/1913)) -- [lester-001](https://github.com/lester-001)
|
||||
|
||||
Download -- [v2.4.13.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.13.tar.gz)
|
||||
{: .notice--info}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
@@ -10,7 +10,7 @@
|
||||
#
|
||||
|
||||
PACKAGE="open5gs"
|
||||
VERSION="2.4.7"
|
||||
VERSION="2.4.12"
|
||||
|
||||
print_status() {
|
||||
echo
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#ifndef OGS_APP_H
|
||||
#define OGS_APP_H
|
||||
|
||||
#include "ogs-core.h"
|
||||
#include "proto/ogs-proto.h"
|
||||
|
||||
#define OGS_APP_INSIDE
|
||||
|
||||
@@ -94,6 +94,9 @@ void smf_terminate(void);
|
||||
int amf_initialize(void);
|
||||
void amf_terminate(void);
|
||||
|
||||
int scp_initialize(void);
|
||||
void scp_terminate(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -29,7 +29,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
int ogs_app_config_parse_sockopt(
|
||||
ogs_yaml_iter_t *parent, ogs_sockopt_t *sockopt);
|
||||
ogs_yaml_iter_t *parent, ogs_sockopt_t *option);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -64,38 +64,32 @@ ogs_app_context_t *ogs_app()
|
||||
|
||||
static void recalculate_pool_size(void)
|
||||
{
|
||||
self.pool.packet = self.max.ue * OGS_MAX_NUM_OF_PACKET_BUFFER;
|
||||
|
||||
#define MAX_NUM_OF_TUNNEL 3 /* Num of Tunnel per Bearer */
|
||||
self.pool.sess = self.max.ue * OGS_MAX_NUM_OF_SESS;
|
||||
self.pool.bearer = self.pool.sess * OGS_MAX_NUM_OF_BEARER;
|
||||
self.pool.tunnel = self.pool.bearer * MAX_NUM_OF_TUNNEL;
|
||||
|
||||
#define MAX_NUM_OF_TIMER 16
|
||||
self.pool.timer = self.max.ue * MAX_NUM_OF_TIMER;
|
||||
self.pool.message = self.max.ue;
|
||||
self.pool.event = self.max.ue;
|
||||
#define POOL_NUM_PER_UE 16
|
||||
self.pool.timer = self.max.ue * POOL_NUM_PER_UE;
|
||||
self.pool.message = self.max.ue * POOL_NUM_PER_UE;
|
||||
self.pool.event = self.max.ue * POOL_NUM_PER_UE;
|
||||
self.pool.socket = self.max.ue * POOL_NUM_PER_UE;
|
||||
self.pool.subscription = self.max.ue * POOL_NUM_PER_UE;
|
||||
self.pool.xact = self.max.ue * POOL_NUM_PER_UE;
|
||||
self.pool.stream = self.max.ue * POOL_NUM_PER_UE;
|
||||
|
||||
self.pool.packet = self.max.ue * OGS_MAX_NUM_OF_PACKET_BUFFER;
|
||||
self.pool.nf = self.max.peer;
|
||||
#define NF_SERVICE_PER_NF_INSTANCE 16
|
||||
self.pool.nf_service = self.pool.nf * NF_SERVICE_PER_NF_INSTANCE;
|
||||
|
||||
self.pool.nf = self.max.gnb;
|
||||
|
||||
#define MAX_NUM_OF_SOCKET 4 /* Num of socket per NF */
|
||||
self.pool.socket = self.pool.nf * MAX_NUM_OF_SOCKET;
|
||||
|
||||
#define MAX_NUM_OF_XACT 8
|
||||
self.pool.gtp_xact = self.max.ue * MAX_NUM_OF_XACT;
|
||||
self.pool.gtp_node = self.pool.nf;
|
||||
if (self.max.gtp_peer)
|
||||
self.pool.gtp_node = self.max.gtp_peer;
|
||||
|
||||
self.pool.pfcp_xact = self.max.ue * MAX_NUM_OF_XACT;
|
||||
self.pool.pfcp_node = self.pool.nf;
|
||||
|
||||
#define MAX_NUM_OF_NF_SERVICE 16 /* Num of NF Service per NF Instance */
|
||||
#define MAX_NUM_OF_SBI_MESSAGE 4 /* Num of HTTP(s) Request/Response per NF */
|
||||
#define MAX_NUM_OF_NF_SUBSCRIPTION 4 /* Num of Subscription per NF */
|
||||
self.pool.nf_service = self.pool.nf * MAX_NUM_OF_NF_SERVICE;
|
||||
self.pool.nf_subscription = self.pool.nf * MAX_NUM_OF_NF_SUBSCRIPTION;
|
||||
|
||||
#define MAX_CSMAP_POOL 128
|
||||
self.pool.csmap = MAX_CSMAP_POOL; /* Num of TAI-LAI Mapping Table */
|
||||
/* Num of TAI-LAI Mapping Table */
|
||||
self.pool.csmap = self.pool.nf;
|
||||
|
||||
#define MAX_NUM_OF_IMPU 8
|
||||
self.pool.impi = self.max.ue;
|
||||
@@ -113,7 +107,7 @@ static void regenerate_all_timer_duration(void)
|
||||
ogs_max(ogs_time_from_sec(3),
|
||||
self.time.message.sbi.client_wait_duration + ogs_time_from_sec(1));
|
||||
self.time.message.sbi.nf_register_interval_in_exception =
|
||||
ogs_time_from_msec(300);
|
||||
ogs_time_from_sec(2);
|
||||
|
||||
#define PFCP_N1_RESPONSE_RETRY_COUNT 3
|
||||
self.time.message.pfcp.n1_response_rcount = PFCP_N1_RESPONSE_RETRY_COUNT;
|
||||
@@ -176,23 +170,13 @@ static void app_context_prepare(void)
|
||||
#define USRSCTP_LOCAL_UDP_PORT 9899
|
||||
self.usrsctp.udp_port = USRSCTP_LOCAL_UDP_PORT;
|
||||
|
||||
self.sctp.heartbit_interval = 5000; /* 5 seconds */
|
||||
self.sctp.sack_delay = 200; /* 200 ms */
|
||||
self.sctp.rto_initial = 3000; /* 3 seconds */
|
||||
self.sctp.rto_min = 1000; /* 1 seconds */
|
||||
self.sctp.rto_max = 5000; /* 5 seconds */
|
||||
self.sctp.max_num_of_ostreams = OGS_DEFAULT_SCTP_MAX_NUM_OF_OSTREAMS;
|
||||
self.sctp.max_num_of_istreams = 65535;
|
||||
self.sctp.max_attempts = 4;
|
||||
self.sctp.max_initial_timeout = 8000; /* 8 seconds */
|
||||
|
||||
self.sockopt.no_delay = true;
|
||||
|
||||
#define MAX_NUM_OF_UE 1024 /* Num of UE per AMF/MME */
|
||||
#define MAX_NUM_OF_GNB 64 /* Num of gNB per AMF/MME */
|
||||
#define MAX_NUM_OF_UE 1024 /* Num of UEs */
|
||||
#define MAX_NUM_OF_PEER 64 /* Num of Peer */
|
||||
|
||||
self.max.gnb = MAX_NUM_OF_GNB;
|
||||
self.max.ue = MAX_NUM_OF_UE;
|
||||
self.max.peer = MAX_NUM_OF_PEER;
|
||||
|
||||
ogs_pkbuf_default_init(&self.pool.defconfig);
|
||||
|
||||
@@ -314,6 +298,9 @@ int ogs_app_context_parse_config(void)
|
||||
} else if (!strcmp(parameter_key, "no_nrf")) {
|
||||
self.parameter.no_nrf =
|
||||
ogs_yaml_iter_bool(¶meter_iter);
|
||||
} else if (!strcmp(parameter_key, "no_scp")) {
|
||||
self.parameter.no_scp =
|
||||
ogs_yaml_iter_bool(¶meter_iter);
|
||||
} else if (!strcmp(parameter_key, "no_amf")) {
|
||||
self.parameter.no_amf =
|
||||
ogs_yaml_iter_bool(¶meter_iter);
|
||||
@@ -363,6 +350,10 @@ int ogs_app_context_parse_config(void)
|
||||
} else if (!strcmp(parameter_key, "no_pfcp_rr_select")) {
|
||||
self.parameter.no_pfcp_rr_select =
|
||||
ogs_yaml_iter_bool(¶meter_iter);
|
||||
} else if (!strcmp(parameter_key,
|
||||
"use_mongodb_change_stream")) {
|
||||
self.use_mongodb_change_stream =
|
||||
ogs_yaml_iter_bool(¶meter_iter);
|
||||
} else
|
||||
ogs_warn("unknown key `%s`", parameter_key);
|
||||
}
|
||||
@@ -382,48 +373,6 @@ int ogs_app_context_parse_config(void)
|
||||
} else
|
||||
ogs_warn("unknown key `%s`", sockopt_key);
|
||||
}
|
||||
} else if (!strcmp(root_key, "sctp")) {
|
||||
ogs_yaml_iter_t sctp_iter;
|
||||
ogs_yaml_iter_recurse(&root_iter, &sctp_iter);
|
||||
while (ogs_yaml_iter_next(&sctp_iter)) {
|
||||
const char *sctp_key = ogs_yaml_iter_key(&sctp_iter);
|
||||
ogs_assert(sctp_key);
|
||||
if (!strcmp(sctp_key, "heartbit_interval")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v) self.sctp.heartbit_interval = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "sack_delay")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v) self.sctp.sack_delay = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "rto_initial")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v) self.sctp.rto_initial = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "rto_min")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v) self.sctp.rto_min = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "rto_max")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v) self.sctp.rto_max = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "max_num_of_ostreams")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v)
|
||||
self.sctp.max_num_of_ostreams = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "max_num_of_istreams")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v)
|
||||
self.sctp.max_num_of_istreams = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "max_attempts")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v) self.sctp.max_attempts = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "max_initial_timeout")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v)
|
||||
self.sctp.max_initial_timeout = atoi(v);
|
||||
} else if (!strcmp(sctp_key, "usrsctp_udp_port")) {
|
||||
const char *v = ogs_yaml_iter_value(&sctp_iter);
|
||||
if (v) self.usrsctp.udp_port = atoi(v);
|
||||
} else
|
||||
ogs_warn("unknown key `%s`", sctp_key);
|
||||
}
|
||||
} else if (!strcmp(root_key, "max")) {
|
||||
ogs_yaml_iter_t max_iter;
|
||||
ogs_yaml_iter_recurse(&root_iter, &max_iter);
|
||||
@@ -433,10 +382,14 @@ int ogs_app_context_parse_config(void)
|
||||
if (!strcmp(max_key, "ue")) {
|
||||
const char *v = ogs_yaml_iter_value(&max_iter);
|
||||
if (v) self.max.ue = atoi(v);
|
||||
} else if (!strcmp(max_key, "gnb") ||
|
||||
} else if (!strcmp(max_key, "peer") ||
|
||||
!strcmp(max_key, "enb")) {
|
||||
const char *v = ogs_yaml_iter_value(&max_iter);
|
||||
if (v) self.max.gnb = atoi(v);
|
||||
if (v) self.max.peer = atoi(v);
|
||||
} else if (!strcmp(max_key, "gtp_peer") ||
|
||||
!strcmp(max_key, "enb")) {
|
||||
const char *v = ogs_yaml_iter_value(&max_iter);
|
||||
if (v) self.max.gtp_peer = atoi(v);
|
||||
} else
|
||||
ogs_warn("unknown key `%s`", max_key);
|
||||
}
|
||||
@@ -468,10 +421,10 @@ int ogs_app_context_parse_config(void)
|
||||
const char *v = ogs_yaml_iter_value(&pool_iter);
|
||||
if (v)
|
||||
self.pool.defconfig.cluster_2048_pool = atoi(v);
|
||||
} else if (!strcmp(pool_key, "8192")) {
|
||||
} else if (!strcmp(pool_key, "16384")) {
|
||||
const char *v = ogs_yaml_iter_value(&pool_iter);
|
||||
if (v)
|
||||
self.pool.defconfig.cluster_8192_pool = atoi(v);
|
||||
self.pool.defconfig.cluster_16384_pool = atoi(v);
|
||||
} else if (!strcmp(pool_key, "big")) {
|
||||
const char *v = ogs_yaml_iter_value(&pool_iter);
|
||||
if (v)
|
||||
|
||||
@@ -35,6 +35,8 @@ typedef struct ogs_app_context_s {
|
||||
void *document;
|
||||
|
||||
const char *db_uri;
|
||||
int use_mongodb_change_stream;
|
||||
|
||||
struct {
|
||||
const char *file;
|
||||
const char *level;
|
||||
@@ -64,6 +66,7 @@ typedef struct ogs_app_context_s {
|
||||
int no_nssf;
|
||||
int no_bsf;
|
||||
int no_udr;
|
||||
int no_scp;
|
||||
int no_nrf;
|
||||
|
||||
/* Network */
|
||||
@@ -84,50 +87,39 @@ typedef struct ogs_app_context_s {
|
||||
int l_linger;
|
||||
} sockopt;
|
||||
|
||||
struct {
|
||||
int heartbit_interval;
|
||||
int sack_delay;
|
||||
int rto_initial;
|
||||
int rto_min;
|
||||
int rto_max;
|
||||
int max_num_of_ostreams;
|
||||
int max_num_of_istreams;
|
||||
int max_attempts;
|
||||
int max_initial_timeout;
|
||||
} sctp;
|
||||
|
||||
struct {
|
||||
int udp_port;
|
||||
} usrsctp;
|
||||
|
||||
struct {
|
||||
uint64_t ue;
|
||||
uint64_t gnb;
|
||||
uint64_t peer;
|
||||
uint64_t gtp_peer;
|
||||
} max;
|
||||
|
||||
struct {
|
||||
ogs_pkbuf_config_t defconfig;
|
||||
uint64_t packet;
|
||||
|
||||
uint64_t nf;
|
||||
uint64_t packet;
|
||||
|
||||
uint64_t sess;
|
||||
uint64_t bearer;
|
||||
uint64_t tunnel;
|
||||
|
||||
uint64_t nf_service;
|
||||
uint64_t nf_subscription;
|
||||
|
||||
uint64_t csmap;
|
||||
|
||||
uint64_t timer;
|
||||
uint64_t message;
|
||||
uint64_t event;
|
||||
uint64_t timer;
|
||||
|
||||
uint64_t socket;
|
||||
uint64_t gtp_xact;
|
||||
uint64_t subscription;
|
||||
uint64_t xact;
|
||||
uint64_t stream;
|
||||
|
||||
uint64_t nf;
|
||||
uint64_t gtp_node;
|
||||
uint64_t pfcp_xact;
|
||||
uint64_t pfcp_node;
|
||||
|
||||
uint64_t csmap;
|
||||
|
||||
uint64_t impi;
|
||||
uint64_t impu;
|
||||
|
||||
@@ -32,6 +32,11 @@ asn_TYPE_operation_t asn_OP_ANY = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
ANY_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
0,
|
||||
0,
|
||||
|
||||
@@ -42,6 +42,10 @@ extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs;
|
||||
xer_type_encoder_f ANY_encode_xer;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f ANY_encode_jer;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_UPER_SUPPORT)
|
||||
per_type_decoder_f ANY_decode_uper;
|
||||
per_type_encoder_f ANY_encode_uper;
|
||||
|
||||
@@ -132,7 +132,7 @@ ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
|
||||
int ret;
|
||||
|
||||
/* Get the PER length */
|
||||
raw_len = aper_get_length(pd, -1, 0, &repeat);
|
||||
raw_len = aper_get_length(pd, -1, -1, 0, &repeat);
|
||||
if(raw_len < 0) RETURN(RC_WMORE);
|
||||
if(raw_len == 0 && st->buf) break;
|
||||
|
||||
@@ -173,7 +173,7 @@ ANY_encode_aper(const asn_TYPE_descriptor_t *td,
|
||||
size = st->size;
|
||||
do {
|
||||
int need_eom = 0;
|
||||
ssize_t may_save = aper_put_length(po, -1, size, &need_eom);
|
||||
ssize_t may_save = aper_put_length(po, -1, -1, size, &need_eom);
|
||||
if(may_save < 0) ASN__ENCODE_FAILED;
|
||||
|
||||
ret = per_put_many_bits(po, buf, may_save * 8);
|
||||
@@ -182,7 +182,7 @@ ANY_encode_aper(const asn_TYPE_descriptor_t *td,
|
||||
buf += may_save;
|
||||
size -= may_save;
|
||||
assert(!(may_save & 0x07) || !size);
|
||||
if(need_eom && aper_put_length(po, -1, 0, 0))
|
||||
if(need_eom && aper_put_length(po, -1, -1, 0, NULL))
|
||||
ASN__ENCODE_FAILED; /* End of Message length */
|
||||
} while(size);
|
||||
|
||||
|
||||
17
lib/asn1c/common/ANY_jer.c
Normal file
17
lib/asn1c/common/ANY_jer.c
Normal file
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <ANY.h>
|
||||
|
||||
asn_enc_rval_t
|
||||
ANY_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
|
||||
void *app_key) {
|
||||
ASN__ENCODE_FAILED;
|
||||
|
||||
/* Dump as binary */
|
||||
return OCTET_STRING_encode_jer(td, sptr, ilevel, flags, cb, app_key);
|
||||
}
|
||||
@@ -38,6 +38,11 @@ asn_TYPE_operation_t asn_OP_BIT_STRING = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
BIT_STRING_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
BIT_STRING_decode_oer,
|
||||
BIT_STRING_encode_oer,
|
||||
|
||||
@@ -44,6 +44,10 @@ asn_constr_check_f BIT_STRING_constraint;
|
||||
xer_type_encoder_f BIT_STRING_encode_xer;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f BIT_STRING_encode_jer;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
oer_type_decoder_f BIT_STRING_decode_oer;
|
||||
oer_type_encoder_f BIT_STRING_encode_oer;
|
||||
|
||||
70
lib/asn1c/common/BIT_STRING_jer.c
Normal file
70
lib/asn1c/common/BIT_STRING_jer.c
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <BIT_STRING.h>
|
||||
|
||||
static const char *_bit_pattern[16] = {
|
||||
"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
|
||||
"1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"
|
||||
};
|
||||
|
||||
asn_enc_rval_t
|
||||
BIT_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, enum jer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
asn_enc_rval_t er = {0, 0, 0};
|
||||
char scratch[128];
|
||||
char *p = scratch;
|
||||
char *scend = scratch + (sizeof(scratch) - 10);
|
||||
const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
|
||||
int xcan = 0;
|
||||
uint8_t *buf;
|
||||
uint8_t *end;
|
||||
|
||||
if(!st || !st->buf)
|
||||
ASN__ENCODE_FAILED;
|
||||
|
||||
er.encoded = 0;
|
||||
|
||||
buf = st->buf;
|
||||
end = buf + st->size - 1; /* Last byte is special */
|
||||
|
||||
/*
|
||||
* Binary dump
|
||||
*/
|
||||
for(; buf < end; buf++) {
|
||||
int v = *buf;
|
||||
int nline = xcan?0:(((buf - st->buf) % 8) == 0);
|
||||
if(p >= scend || nline) {
|
||||
ASN__CALLBACK(scratch, p - scratch);
|
||||
p = scratch;
|
||||
if(nline) ASN__TEXT_INDENT(1, ilevel);
|
||||
}
|
||||
memcpy(p + 0, _bit_pattern[v >> 4], 4);
|
||||
memcpy(p + 4, _bit_pattern[v & 0x0f], 4);
|
||||
p += 8;
|
||||
}
|
||||
|
||||
if(!xcan && ((buf - st->buf) % 8) == 0)
|
||||
ASN__TEXT_INDENT(1, ilevel);
|
||||
ASN__CALLBACK(scratch, p - scratch);
|
||||
p = scratch;
|
||||
|
||||
if(buf == end) {
|
||||
int v = *buf;
|
||||
int ubits = st->bits_unused;
|
||||
int i;
|
||||
for(i = 7; i >= ubits; i--)
|
||||
*p++ = (v & (1 << i)) ? 0x31 : 0x30;
|
||||
ASN__CALLBACK(scratch, p - scratch);
|
||||
}
|
||||
|
||||
if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
|
||||
|
||||
ASN__ENCODED_OK(er);
|
||||
cb_failed:
|
||||
ASN__ENCODE_FAILED;
|
||||
}
|
||||
@@ -34,6 +34,11 @@ asn_TYPE_operation_t asn_OP_GraphicString = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
OCTET_STRING_encode_jer, /* Can't expect it to be ASCII/UTF8 */
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
OCTET_STRING_decode_oer,
|
||||
OCTET_STRING_encode_oer,
|
||||
|
||||
@@ -36,6 +36,10 @@ extern asn_TYPE_operation_t asn_OP_GraphicString;
|
||||
#define GraphicString_encode_xer OCTET_STRING_encode_xer
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
#define GraphicString_encode_jer OCTET_STRING_encode_jer
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_UPER_SUPPORT)
|
||||
#define GraphicString_decode_uper OCTET_STRING_decode_uper
|
||||
#define GraphicString_encode_uper OCTET_STRING_encode_uper
|
||||
|
||||
@@ -36,6 +36,11 @@ asn_TYPE_operation_t asn_OP_INTEGER = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
INTEGER_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
INTEGER_decode_oer, /* OER decoder */
|
||||
INTEGER_encode_oer, /* Canonical OER encoder */
|
||||
|
||||
@@ -60,6 +60,10 @@ xer_type_decoder_f INTEGER_decode_xer;
|
||||
xer_type_encoder_f INTEGER_encode_xer;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f INTEGER_encode_jer;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
oer_type_decoder_f INTEGER_decode_oer;
|
||||
oer_type_encoder_f INTEGER_encode_oer;
|
||||
|
||||
@@ -129,7 +129,7 @@ INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
|
||||
int ret;
|
||||
|
||||
/* Get the PER length */
|
||||
len = aper_get_length(pd, -1, -1, &repeat);
|
||||
len = aper_get_length(pd, -1, -1, -1, &repeat);
|
||||
if(len < 0) ASN__DECODE_STARVED;
|
||||
|
||||
p = REALLOC(st->buf, st->size + len + 1);
|
||||
@@ -291,13 +291,14 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
|
||||
|
||||
for(buf = st->buf, end = st->buf + st->size; buf < end;) {
|
||||
int need_eom = 0;
|
||||
ssize_t mayEncode = aper_put_length(po, -1, end - buf, &need_eom);
|
||||
ssize_t mayEncode = aper_put_length(po, -1, -1, end - buf, &need_eom);
|
||||
if(mayEncode < 0)
|
||||
ASN__ENCODE_FAILED;
|
||||
if(per_put_many_bits(po, buf, 8 * mayEncode))
|
||||
ASN__ENCODE_FAILED;
|
||||
buf += mayEncode;
|
||||
if(need_eom && aper_put_length(po, -1, 0, 0)) ASN__ENCODE_FAILED;
|
||||
if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0))
|
||||
ASN__ENCODE_FAILED;
|
||||
}
|
||||
|
||||
ASN__ENCODED_OK(er);
|
||||
|
||||
26
lib/asn1c/common/INTEGER_jer.c
Normal file
26
lib/asn1c/common/INTEGER_jer.c
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <INTEGER.h>
|
||||
|
||||
asn_enc_rval_t
|
||||
INTEGER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, enum jer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const INTEGER_t *st = (const INTEGER_t *)sptr;
|
||||
asn_enc_rval_t er = {0,0,0};
|
||||
|
||||
(void)ilevel;
|
||||
(void)flags;
|
||||
|
||||
if(!st || !st->buf)
|
||||
ASN__ENCODE_FAILED;
|
||||
|
||||
er.encoded = INTEGER__dump(td, st, cb, app_key, 1);
|
||||
if(er.encoded < 0) ASN__ENCODE_FAILED;
|
||||
|
||||
ASN__ENCODED_OK(er);
|
||||
}
|
||||
@@ -33,6 +33,11 @@ asn_TYPE_operation_t asn_OP_NULL = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
NULL_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
NULL_decode_oer,
|
||||
NULL_encode_oer,
|
||||
|
||||
@@ -40,6 +40,10 @@ xer_type_decoder_f NULL_decode_xer;
|
||||
xer_type_encoder_f NULL_encode_xer;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f NULL_encode_jer;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
oer_type_decoder_f NULL_decode_oer;
|
||||
oer_type_encoder_f NULL_encode_oer;
|
||||
|
||||
26
lib/asn1c/common/NULL_jer.c
Normal file
26
lib/asn1c/common/NULL_jer.c
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <asn_codecs_prim.h>
|
||||
#include <NULL.h>
|
||||
|
||||
asn_enc_rval_t
|
||||
NULL_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
|
||||
enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
|
||||
void *app_key) {
|
||||
asn_enc_rval_t er = {0,0,0};
|
||||
|
||||
(void)td;
|
||||
(void)sptr;
|
||||
(void)ilevel;
|
||||
(void)flags;
|
||||
(void)cb;
|
||||
(void)app_key;
|
||||
|
||||
/* XMLNullValue is empty */
|
||||
er.encoded = 0;
|
||||
ASN__ENCODED_OK(er);
|
||||
}
|
||||
@@ -40,6 +40,11 @@ asn_TYPE_operation_t asn_OP_NativeEnumerated = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
NativeEnumerated_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
NativeEnumerated_decode_oer,
|
||||
NativeEnumerated_encode_oer,
|
||||
|
||||
@@ -41,6 +41,10 @@ extern asn_TYPE_operation_t asn_OP_NativeEnumerated;
|
||||
xer_type_encoder_f NativeEnumerated_encode_xer;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f NativeEnumerated_encode_jer;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
oer_type_decoder_f NativeEnumerated_decode_oer;
|
||||
oer_type_encoder_f NativeEnumerated_encode_oer;
|
||||
|
||||
36
lib/asn1c/common/NativeEnumerated_jer.c
Normal file
36
lib/asn1c/common/NativeEnumerated_jer.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <NativeEnumerated.h>
|
||||
|
||||
asn_enc_rval_t
|
||||
NativeEnumerated_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, enum jer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const asn_INTEGER_specifics_t *specs =
|
||||
(const asn_INTEGER_specifics_t *)td->specifics;
|
||||
asn_enc_rval_t er = {0,0,0};
|
||||
const long *native = (const long *)sptr;
|
||||
const asn_INTEGER_enum_map_t *el;
|
||||
|
||||
(void)ilevel;
|
||||
(void)flags;
|
||||
|
||||
if(!native) ASN__ENCODE_FAILED;
|
||||
|
||||
el = INTEGER_map_value2enum(specs, *native);
|
||||
if(el) {
|
||||
er.encoded =
|
||||
asn__format_to_callback(cb, app_key, "\"%s\"", el->enum_name);
|
||||
if(er.encoded < 0) ASN__ENCODE_FAILED;
|
||||
ASN__ENCODED_OK(er);
|
||||
} else {
|
||||
ASN_DEBUG(
|
||||
"ASN.1 forbids dealing with "
|
||||
"unknown value of ENUMERATED type");
|
||||
ASN__ENCODE_FAILED;
|
||||
}
|
||||
}
|
||||
@@ -41,6 +41,11 @@ asn_TYPE_operation_t asn_OP_NativeInteger = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
NativeInteger_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
NativeInteger_decode_oer, /* OER decoder */
|
||||
NativeInteger_encode_oer, /* Canonical OER encoder */
|
||||
|
||||
@@ -42,6 +42,10 @@ xer_type_decoder_f NativeInteger_decode_xer;
|
||||
xer_type_encoder_f NativeInteger_encode_xer;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f NativeInteger_encode_jer;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
oer_type_decoder_f NativeInteger_decode_oer;
|
||||
oer_type_encoder_f NativeInteger_encode_oer;
|
||||
|
||||
32
lib/asn1c/common/NativeInteger_jer.c
Normal file
32
lib/asn1c/common/NativeInteger_jer.c
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <NativeInteger.h>
|
||||
|
||||
asn_enc_rval_t
|
||||
NativeInteger_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, enum jer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const asn_INTEGER_specifics_t *specs =
|
||||
(const asn_INTEGER_specifics_t *)td->specifics;
|
||||
char scratch[32]; /* Enough for 64-bit int */
|
||||
asn_enc_rval_t er = {0,0,0};
|
||||
const long *native = (const long *)sptr;
|
||||
|
||||
(void)ilevel;
|
||||
(void)flags;
|
||||
|
||||
if(!native) ASN__ENCODE_FAILED;
|
||||
|
||||
er.encoded = snprintf(scratch, sizeof(scratch),
|
||||
(specs && specs->field_unsigned)
|
||||
? "%lu" : "%ld", *native);
|
||||
if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch)
|
||||
|| cb(scratch, er.encoded, app_key) < 0)
|
||||
ASN__ENCODE_FAILED;
|
||||
|
||||
ASN__ENCODED_OK(er);
|
||||
}
|
||||
@@ -38,6 +38,11 @@ asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
OBJECT_IDENTIFIER_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
OBJECT_IDENTIFIER_decode_oer,
|
||||
OBJECT_IDENTIFIER_encode_oer,
|
||||
|
||||
@@ -45,6 +45,10 @@ xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer;
|
||||
xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f OBJECT_IDENTIFIER_encode_jer;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive
|
||||
#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive
|
||||
|
||||
28
lib/asn1c/common/OBJECT_IDENTIFIER_jer.c
Normal file
28
lib/asn1c/common/OBJECT_IDENTIFIER_jer.c
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <OBJECT_IDENTIFIER.h>
|
||||
|
||||
|
||||
asn_enc_rval_t
|
||||
OBJECT_IDENTIFIER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, enum jer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
|
||||
asn_enc_rval_t er = {0,0,0};
|
||||
|
||||
(void)ilevel;
|
||||
(void)flags;
|
||||
|
||||
if(!st || !st->buf) {
|
||||
ASN__ENCODE_FAILED;
|
||||
}
|
||||
|
||||
er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key);
|
||||
if(er.encoded < 0) ASN__ENCODE_FAILED;
|
||||
|
||||
ASN__ENCODED_OK(er);
|
||||
}
|
||||
@@ -40,6 +40,11 @@ asn_TYPE_operation_t asn_OP_OCTET_STRING = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
OCTET_STRING_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
OCTET_STRING_decode_oer,
|
||||
OCTET_STRING_encode_oer,
|
||||
|
||||
@@ -45,6 +45,11 @@ xer_type_encoder_f OCTET_STRING_encode_xer;
|
||||
xer_type_encoder_f OCTET_STRING_encode_xer_utf8;
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
jer_type_encoder_f OCTET_STRING_encode_jer;
|
||||
jer_type_encoder_f OCTET_STRING_encode_jer_utf8;
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
oer_type_decoder_f OCTET_STRING_decode_oer;
|
||||
oer_type_encoder_f OCTET_STRING_encode_oer;
|
||||
|
||||
@@ -173,9 +173,10 @@ OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
|
||||
/* Get the PER length */
|
||||
if (csiz->upper_bound - csiz->lower_bound == 0)
|
||||
/* Indefinite length case */
|
||||
raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat);
|
||||
raw_len = aper_get_length(pd, -1, -1, csiz->effective_bits, &repeat);
|
||||
else
|
||||
raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat);
|
||||
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;
|
||||
|
||||
@@ -342,10 +343,9 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
|
||||
st->size, sizeinunits - csiz->lower_bound,
|
||||
csiz->effective_bits);
|
||||
if (csiz->effective_bits > 0) {
|
||||
ret = aper_put_length(po,
|
||||
csiz->upper_bound - csiz->lower_bound + 1,
|
||||
sizeinunits - csiz->lower_bound, 0);
|
||||
if(ret) ASN__ENCODE_FAILED;
|
||||
ret = aper_put_length(po, csiz->lower_bound, csiz->upper_bound,
|
||||
sizeinunits - csiz->lower_bound, NULL);
|
||||
if(ret < 0) ASN__ENCODE_FAILED;
|
||||
}
|
||||
if (csiz->effective_bits > 0 || (st->size > 2)
|
||||
|| (csiz->upper_bound > (2 * 8 / unit_bits))
|
||||
@@ -372,7 +372,7 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
|
||||
ASN_DEBUG("Encoding %lu bytes", st->size);
|
||||
|
||||
if(sizeinunits == 0) {
|
||||
if(aper_put_length(po, -1, 0, 0))
|
||||
if(aper_put_length(po, -1, -1, 0, NULL) < 0)
|
||||
ASN__ENCODE_FAILED;
|
||||
ASN__ENCODED_OK(er);
|
||||
}
|
||||
@@ -380,7 +380,7 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
|
||||
buf = st->buf;
|
||||
while(sizeinunits) {
|
||||
int need_eom = 0;
|
||||
ssize_t maySave = aper_put_length(po, -1, sizeinunits, &need_eom);
|
||||
ssize_t maySave = aper_put_length(po, -1, -1, sizeinunits, &need_eom);
|
||||
|
||||
if(maySave < 0) ASN__ENCODE_FAILED;
|
||||
|
||||
@@ -404,7 +404,7 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
|
||||
buf += maySave >> 3;
|
||||
sizeinunits -= maySave;
|
||||
assert(!(maySave & 0x07) || !sizeinunits);
|
||||
if(need_eom && aper_put_length(po, -1, 0, 0))
|
||||
if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0))
|
||||
ASN__ENCODE_FAILED; /* End of Message length */
|
||||
}
|
||||
|
||||
|
||||
151
lib/asn1c/common/OCTET_STRING_jer.c
Normal file
151
lib/asn1c/common/OCTET_STRING_jer.c
Normal file
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
|
||||
* All rights reserved.
|
||||
* Redistribution and modifications are permitted subject to BSD license.
|
||||
*/
|
||||
#include <asn_internal.h>
|
||||
#include <OCTET_STRING.h>
|
||||
#include <BIT_STRING.h> /* for .bits_unused member */
|
||||
|
||||
asn_enc_rval_t
|
||||
OCTET_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, enum jer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const char * const h2c = "0123456789ABCDEF";
|
||||
const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
|
||||
asn_enc_rval_t er = { 0, 0, 0 };
|
||||
char scratch[16 * 3 + 4];
|
||||
char *p = scratch;
|
||||
uint8_t *buf;
|
||||
uint8_t *end;
|
||||
size_t i;
|
||||
|
||||
if(!st || (!st->buf && st->size))
|
||||
ASN__ENCODE_FAILED;
|
||||
|
||||
er.encoded = 0;
|
||||
|
||||
/*
|
||||
* Dump the contents of the buffer in hexadecimal.
|
||||
*/
|
||||
buf = st->buf;
|
||||
end = buf + st->size;
|
||||
for(i = 0; buf < end; buf++, i++) {
|
||||
if(!(i % 16) && (i || st->size > 16)) {
|
||||
ASN__CALLBACK(scratch, p-scratch);
|
||||
p = scratch;
|
||||
ASN__TEXT_INDENT(1, ilevel);
|
||||
}
|
||||
*p++ = h2c[(*buf >> 4) & 0x0F];
|
||||
*p++ = h2c[*buf & 0x0F];
|
||||
*p++ = 0x20;
|
||||
}
|
||||
if(p - scratch) {
|
||||
p--; /* Remove the tail space */
|
||||
ASN__CALLBACK3("\"", 1, scratch, p-scratch, "\"", 1); /* Dump the rest */
|
||||
if(st->size > 16)
|
||||
ASN__TEXT_INDENT(1, ilevel-1);
|
||||
}
|
||||
|
||||
ASN__ENCODED_OK(er);
|
||||
cb_failed:
|
||||
ASN__ENCODE_FAILED;
|
||||
}
|
||||
|
||||
static const struct OCTET_STRING__jer_escape_table_s {
|
||||
const char *string;
|
||||
int size;
|
||||
} OCTET_STRING__jer_escape_table[] = {
|
||||
#define OSXET(s) { s, sizeof(s) - 1 }
|
||||
OSXET("\074\156\165\154\057\076"), /* <nul/> */
|
||||
OSXET("\074\163\157\150\057\076"), /* <soh/> */
|
||||
OSXET("\074\163\164\170\057\076"), /* <stx/> */
|
||||
OSXET("\074\145\164\170\057\076"), /* <etx/> */
|
||||
OSXET("\074\145\157\164\057\076"), /* <eot/> */
|
||||
OSXET("\074\145\156\161\057\076"), /* <enq/> */
|
||||
OSXET("\074\141\143\153\057\076"), /* <ack/> */
|
||||
OSXET("\074\142\145\154\057\076"), /* <bel/> */
|
||||
OSXET("\074\142\163\057\076"), /* <bs/> */
|
||||
OSXET("\011"), /* \t */
|
||||
OSXET("\012"), /* \n */
|
||||
OSXET("\074\166\164\057\076"), /* <vt/> */
|
||||
OSXET("\074\146\146\057\076"), /* <ff/> */
|
||||
OSXET("\015"), /* \r */
|
||||
OSXET("\074\163\157\057\076"), /* <so/> */
|
||||
OSXET("\074\163\151\057\076"), /* <si/> */
|
||||
OSXET("\074\144\154\145\057\076"), /* <dle/> */
|
||||
OSXET("\074\144\143\061\057\076"), /* <de1/> */
|
||||
OSXET("\074\144\143\062\057\076"), /* <de2/> */
|
||||
OSXET("\074\144\143\063\057\076"), /* <de3/> */
|
||||
OSXET("\074\144\143\064\057\076"), /* <de4/> */
|
||||
OSXET("\074\156\141\153\057\076"), /* <nak/> */
|
||||
OSXET("\074\163\171\156\057\076"), /* <syn/> */
|
||||
OSXET("\074\145\164\142\057\076"), /* <etb/> */
|
||||
OSXET("\074\143\141\156\057\076"), /* <can/> */
|
||||
OSXET("\074\145\155\057\076"), /* <em/> */
|
||||
OSXET("\074\163\165\142\057\076"), /* <sub/> */
|
||||
OSXET("\074\145\163\143\057\076"), /* <esc/> */
|
||||
OSXET("\074\151\163\064\057\076"), /* <is4/> */
|
||||
OSXET("\074\151\163\063\057\076"), /* <is3/> */
|
||||
OSXET("\074\151\163\062\057\076"), /* <is2/> */
|
||||
OSXET("\074\151\163\061\057\076"), /* <is1/> */
|
||||
{ 0, 0 }, /* " " */
|
||||
{ 0, 0 }, /* ! */
|
||||
{ 0, 0 }, /* \" */
|
||||
{ 0, 0 }, /* # */
|
||||
{ 0, 0 }, /* $ */
|
||||
{ 0, 0 }, /* % */
|
||||
OSXET("\046\141\155\160\073"), /* & */
|
||||
{ 0, 0 }, /* ' */
|
||||
{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* ()*+,-./ */
|
||||
{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, /* 01234567 */
|
||||
{0,0},{0,0},{0,0},{0,0}, /* 89:; */
|
||||
OSXET("\046\154\164\073"), /* < */
|
||||
{ 0, 0 }, /* = */
|
||||
OSXET("\046\147\164\073"), /* > */
|
||||
};
|
||||
|
||||
asn_enc_rval_t
|
||||
OCTET_STRING_encode_jer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr,
|
||||
int ilevel, enum jer_encoder_flags_e flags,
|
||||
asn_app_consume_bytes_f *cb, void *app_key) {
|
||||
const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
|
||||
asn_enc_rval_t er = { 0, 0, 0 };
|
||||
uint8_t *buf, *end;
|
||||
uint8_t *ss; /* Sequence start */
|
||||
ssize_t encoded_len = 0;
|
||||
|
||||
(void)ilevel; /* Unused argument */
|
||||
(void)flags; /* Unused argument */
|
||||
|
||||
if(!st || (!st->buf && st->size))
|
||||
ASN__ENCODE_FAILED;
|
||||
|
||||
buf = st->buf;
|
||||
end = buf + st->size;
|
||||
for(ss = buf; buf < end; buf++) {
|
||||
unsigned int ch = *buf;
|
||||
int s_len; /* Special encoding sequence length */
|
||||
|
||||
/*
|
||||
* Escape certain characters: X.680/11.15
|
||||
*/
|
||||
if(ch < sizeof(OCTET_STRING__jer_escape_table)
|
||||
/ sizeof(OCTET_STRING__jer_escape_table[0])
|
||||
&& (s_len = OCTET_STRING__jer_escape_table[ch].size)) {
|
||||
if(((buf - ss) && cb(ss, buf - ss, app_key) < 0)
|
||||
|| cb(OCTET_STRING__jer_escape_table[ch].string, s_len, app_key) < 0)
|
||||
ASN__ENCODE_FAILED;
|
||||
encoded_len += (buf - ss) + s_len;
|
||||
ss = buf + 1;
|
||||
}
|
||||
}
|
||||
|
||||
encoded_len += (buf - ss);
|
||||
if((buf - ss) && cb(ss, buf - ss, app_key) < 0)
|
||||
ASN__ENCODE_FAILED;
|
||||
|
||||
er.encoded = encoded_len;
|
||||
ASN__ENCODED_OK(er);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,11 @@ asn_TYPE_operation_t asn_OP_OPEN_TYPE = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
OPEN_TYPE_encode_jer,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
OPEN_TYPE_decode_oer,
|
||||
OPEN_TYPE_encode_oer,
|
||||
|
||||
@@ -58,6 +58,10 @@ asn_dec_rval_t OPEN_TYPE_xer_get(
|
||||
#define OPEN_TYPE_encode_xer CHOICE_encode_xer
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
#define OPEN_TYPE_encode_jer CHOICE_encode_jer
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
asn_dec_rval_t OPEN_TYPE_oer_get(
|
||||
const asn_codec_ctx_t *opt_codec_ctx,
|
||||
|
||||
@@ -146,7 +146,7 @@ OPEN_TYPE_aper_unknown_type_discard_bytes (asn_per_data_t *pd) {
|
||||
rv.code = RC_FAIL;
|
||||
|
||||
do {
|
||||
bytes = aper_get_length(pd, -1, -1, &repeat);
|
||||
bytes = aper_get_length(pd, -1, -1, -1, &repeat);
|
||||
if (bytes > 10 * ASN_DUMMY_BYTES)
|
||||
{
|
||||
return rv;
|
||||
@@ -171,4 +171,3 @@ OPEN_TYPE_aper_unknown_type_discard_bytes (asn_per_data_t *pd) {
|
||||
return rv;
|
||||
#undef ASN_DUMMY_BYTES
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,11 @@ asn_TYPE_operation_t asn_OP_ObjectDescriptor = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
OCTET_STRING_encode_jer_utf8,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
0,
|
||||
0,
|
||||
|
||||
@@ -34,6 +34,10 @@ extern asn_TYPE_operation_t asn_OP_ObjectDescriptor;
|
||||
#define ObjectDescriptor_encode_xer OCTET_STRING_encode_xer_utf8
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
#define ObjectDescriptor_encode_jer OCTET_STRING_encode_jer_utf8
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_UPER_SUPPORT)
|
||||
#define ObjectDescriptor_decode_uper OCTET_STRING_decode_uper
|
||||
#define ObjectDescriptor_encode_uper OCTET_STRING_encode_uper
|
||||
|
||||
@@ -71,6 +71,11 @@ asn_TYPE_operation_t asn_OP_PrintableString = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
OCTET_STRING_encode_jer_utf8,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
OCTET_STRING_decode_oer,
|
||||
OCTET_STRING_encode_oer,
|
||||
|
||||
@@ -36,6 +36,10 @@ asn_constr_check_f PrintableString_constraint;
|
||||
#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
#define PrintableString_encode_jer OCTET_STRING_encode_jer_utf8
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
|
||||
#if !defined(ASN_DISABLE_UPER_SUPPORT)
|
||||
#define PrintableString_decode_uper OCTET_STRING_decode_uper
|
||||
#define PrintableString_encode_uper OCTET_STRING_encode_uper
|
||||
|
||||
@@ -35,6 +35,11 @@ asn_TYPE_operation_t asn_OP_UTF8String = {
|
||||
0,
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
|
||||
OCTET_STRING_encode_jer_utf8,
|
||||
#else
|
||||
0,
|
||||
#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
|
||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
|
||||
OCTET_STRING_decode_oer,
|
||||
OCTET_STRING_encode_oer,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user