mirror of
				https://github.com/open5gs/open5gs.git
				synced 2025-11-03 21:43:25 +00:00 
			
		
		
		
	Compare commits
	
		
			207 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a4fe2f2a44 | ||
| 
						 | 
					5d388d7423 | ||
| 
						 | 
					8b3ae96212 | ||
| 
						 | 
					eff191a265 | ||
| 
						 | 
					be25059381 | ||
| 
						 | 
					2387ca8c5a | ||
| 
						 | 
					8fd54fb35f | ||
| 
						 | 
					ea6afaba89 | ||
| 
						 | 
					254d961a4e | ||
| 
						 | 
					8cb8a49f02 | ||
| 
						 | 
					32d6d359ee | ||
| 
						 | 
					a834eef6cd | ||
| 
						 | 
					2ae17cd2a6 | ||
| 
						 | 
					05452c8731 | ||
| 
						 | 
					d8957130c1 | ||
| 
						 | 
					87e5620401 | ||
| 
						 | 
					5c10632a1b | ||
| 
						 | 
					e3bba81d5f | ||
| 
						 | 
					99783bda92 | ||
| 
						 | 
					9c245ce6c9 | ||
| 
						 | 
					c1a04bed45 | ||
| 
						 | 
					2a6d3d26cf | ||
| 
						 | 
					2f525f054f | ||
| 
						 | 
					1d57db6df7 | ||
| 
						 | 
					8bc2f66128 | ||
| 
						 | 
					476fc64f6d | ||
| 
						 | 
					882f13ae11 | ||
| 
						 | 
					f2645bf01f | ||
| 
						 | 
					fa74863ee1 | ||
| 
						 | 
					7df3ebb363 | ||
| 
						 | 
					31470c3ea3 | ||
| 
						 | 
					4d85d0965f | ||
| 
						 | 
					5f9ca55645 | ||
| 
						 | 
					9e9ba42c78 | ||
| 
						 | 
					d35a707ee2 | ||
| 
						 | 
					8a722de16c | ||
| 
						 | 
					9013dd6fd9 | ||
| 
						 | 
					e3b261eb8b | ||
| 
						 | 
					750478bfd4 | ||
| 
						 | 
					172cec51e7 | ||
| 
						 | 
					a601a7a775 | ||
| 
						 | 
					694a48a6ca | ||
| 
						 | 
					2319375ea7 | ||
| 
						 | 
					c5bf02313f | ||
| 
						 | 
					c5b1b18dd7 | ||
| 
						 | 
					6bf406b454 | ||
| 
						 | 
					80cda9b03f | ||
| 
						 | 
					c4235ef489 | ||
| 
						 | 
					968236af20 | ||
| 
						 | 
					8ea6e2415f | ||
| 
						 | 
					3531166d38 | ||
| 
						 | 
					25f8c9a03e | ||
| 
						 | 
					148ea44562 | ||
| 
						 | 
					d5b34322f3 | ||
| 
						 | 
					517bb6ad85 | ||
| 
						 | 
					3730db615e | ||
| 
						 | 
					935f50bb24 | ||
| 
						 | 
					ba8a7ce1af | ||
| 
						 | 
					4106207150 | ||
| 
						 | 
					4091484215 | ||
| 
						 | 
					ddf09f270a | ||
| 
						 | 
					95459f8376 | ||
| 
						 | 
					77c92eb37b | ||
| 
						 | 
					0d4cd88379 | ||
| 
						 | 
					0a9f2e5c40 | ||
| 
						 | 
					1cc6736fa8 | ||
| 
						 | 
					fa35b06963 | ||
| 
						 | 
					00a86c5a73 | ||
| 
						 | 
					406e3f07dc | ||
| 
						 | 
					5fd4fe9379 | ||
| 
						 | 
					e9db0b0889 | ||
| 
						 | 
					2a2d5c5cfa | ||
| 
						 | 
					9a7b75eb3b | ||
| 
						 | 
					15e3c1f166 | ||
| 
						 | 
					cca53fb8e8 | ||
| 
						 | 
					243bf9850a | ||
| 
						 | 
					78359374ab | ||
| 
						 | 
					3e22805941 | ||
| 
						 | 
					0df2cba257 | ||
| 
						 | 
					f1c0b6d239 | ||
| 
						 | 
					b9f6432e54 | ||
| 
						 | 
					ead6f8e973 | ||
| 
						 | 
					5ef88fcd01 | ||
| 
						 | 
					67dd7d8633 | ||
| 
						 | 
					844ec8a810 | ||
| 
						 | 
					e3ba32c85d | ||
| 
						 | 
					b151642fa1 | ||
| 
						 | 
					e81265f015 | ||
| 
						 | 
					ec4acd4eca | ||
| 
						 | 
					5ccb5f0f99 | ||
| 
						 | 
					7a14f2c505 | ||
| 
						 | 
					24e20f2503 | ||
| 
						 | 
					8fb85db310 | ||
| 
						 | 
					0daef1686a | ||
| 
						 | 
					82863653eb | ||
| 
						 | 
					395707831a | ||
| 
						 | 
					b019dce982 | ||
| 
						 | 
					704fe72d11 | ||
| 
						 | 
					3955e9ba8d | ||
| 
						 | 
					d1ed8aa61d | ||
| 
						 | 
					a99a76d916 | ||
| 
						 | 
					e9aaceee98 | ||
| 
						 | 
					dc6ca962bb | ||
| 
						 | 
					be2af54682 | ||
| 
						 | 
					6d27fbb8cc | ||
| 
						 | 
					15680003b5 | ||
| 
						 | 
					7c8722d9d4 | ||
| 
						 | 
					c537166d37 | ||
| 
						 | 
					1f2a8678ed | ||
| 
						 | 
					35ae3317b7 | ||
| 
						 | 
					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 | 
							
								
								
									
										13
									
								
								.github/workflows/meson-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.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,12 +33,13 @@ 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
 | 
			
		||||
      uses: actions/checkout@main
 | 
			
		||||
    - name: Setup Meson Build
 | 
			
		||||
      run: PATH="/usr/local/opt/bison/bin:$PATH" meson setup build
 | 
			
		||||
      run: PATH="/usr/local/opt/bison/bin:$PATH" PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH" meson setup build
 | 
			
		||||
      env:
 | 
			
		||||
        CC: gcc
 | 
			
		||||
    - name : Build Open5GS
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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
 | 
			
		||||
 | 
			
		||||
Please follow the [documentation](https://open5gs.org/open5gs/docs/) at [open5gs.org](https://open5gs.org/)!
 | 
			
		||||
 | 
			
		||||
## 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/)
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
@@ -220,7 +221,7 @@ nssf:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
@@ -249,7 +250,7 @@ nssf:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
    create 640 open5gs open5gs
 | 
			
		||||
 | 
			
		||||
    postrotate
 | 
			
		||||
        for i in nrfd pcrfd hssd ausfd udmd udrd upfd sgwcd sgwud smfd mmed amfd; do
 | 
			
		||||
        for i in nrfd scpd pcrfd hssd ausfd udmd udrd upfd sgwcd sgwud smfd mmed amfd; do
 | 
			
		||||
            systemctl reload open5gs-$i
 | 
			
		||||
        done
 | 
			
		||||
    endscript
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
#
 | 
			
		||||
# logfilename                         [owner:group] mode count size  when  flags [/pid_file]        [sig_num]
 | 
			
		||||
@localstatedir@/log/open5gs/nrf.log               644  14    *     $D0   GZ    @localstatedir@/run/open5gs-nrfd/pid`
 | 
			
		||||
@localstatedir@/log/open5gs/scp.log               644  14    *     $D0   GZ    @localstatedir@/run/open5gs-scpd/pid`
 | 
			
		||||
@localstatedir@/log/open5gs/pcrf.log               644  14    *     $D0   GZ    @localstatedir@/run/open5gs-pcrfd/pid`
 | 
			
		||||
@localstatedir@/log/open5gs/hss.log               644  14    *     $D0   GZ    @localstatedir@/run/open5gs-hssd/pid`
 | 
			
		||||
@localstatedir@/log/open5gs/ausf.log               644  14    *     $D0   GZ    @localstatedir@/run/open5gs-ausfd/pid`
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
@@ -219,7 +220,7 @@ nssf:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/amf.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# amf:
 | 
			
		||||
#
 | 
			
		||||
@@ -35,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: amf.key
 | 
			
		||||
@@ -85,9 +86,65 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <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
 | 
			
		||||
#
 | 
			
		||||
#  <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 +161,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,6 +202,13 @@ 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
 | 
			
		||||
@@ -230,6 +294,9 @@ amf:
 | 
			
		||||
        port: 7777
 | 
			
		||||
    ngap:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    metrics:
 | 
			
		||||
        addr: 127.0.0.5
 | 
			
		||||
        port: 9090
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 999
 | 
			
		||||
@@ -255,6 +322,50 @@ amf:
 | 
			
		||||
        full: Open5GS
 | 
			
		||||
    amf_name: open5gs-amf0
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# 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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -293,12 +404,12 @@ amf:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
@@ -317,10 +428,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 +469,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: 127.0.0.5
 | 
			
		||||
    port: 9090
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/ausf.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# ausf:
 | 
			
		||||
#
 | 
			
		||||
@@ -35,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: ausf.key
 | 
			
		||||
@@ -85,11 +86,111 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.11
 | 
			
		||||
#        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.11
 | 
			
		||||
#        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
 | 
			
		||||
#
 | 
			
		||||
ausf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.11
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -128,12 +229,12 @@ ausf:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
@@ -152,10 +253,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:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ db_uri: mongodb://localhost/open5gs
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/bsf.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# bsf:
 | 
			
		||||
#
 | 
			
		||||
@@ -37,7 +38,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,11 +88,111 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.15
 | 
			
		||||
#        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.15
 | 
			
		||||
#        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
 | 
			
		||||
#
 | 
			
		||||
bsf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.15
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -130,12 +231,12 @@ bsf:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
@@ -154,10 +255,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:
 | 
			
		||||
 
 | 
			
		||||
@@ -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,6 +254,9 @@ mme:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gtpc:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    metrics:
 | 
			
		||||
      addr: 127.0.0.2
 | 
			
		||||
      port: 9090
 | 
			
		||||
    gummei:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 999
 | 
			
		||||
@@ -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: 127.0.0.2
 | 
			
		||||
    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:
 | 
			
		||||
@@ -84,6 +92,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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
@@ -101,10 +153,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:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/nssf.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nssf:
 | 
			
		||||
#
 | 
			
		||||
@@ -35,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: nssf.key
 | 
			
		||||
@@ -85,7 +86,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,16 +135,117 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.14
 | 
			
		||||
#        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.14
 | 
			
		||||
#        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
 | 
			
		||||
#
 | 
			
		||||
nssf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# 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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -170,12 +272,12 @@ nssf:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
@@ -194,10 +296,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:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ db_uri: mongodb://localhost/open5gs
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/pcf.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pcf:
 | 
			
		||||
#
 | 
			
		||||
@@ -37,7 +38,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,11 +88,118 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.13
 | 
			
		||||
#        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.13
 | 
			
		||||
#        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
 | 
			
		||||
#
 | 
			
		||||
pcf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.13
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -130,12 +238,12 @@ pcf:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
@@ -154,10 +262,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:
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ logger:
 | 
			
		||||
#          - ::0
 | 
			
		||||
#        port: 7777
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(https://<all address avaiable>:443)
 | 
			
		||||
#  o SBI Server(https://<all address available>:443)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - tls:
 | 
			
		||||
#          key: scp.key
 | 
			
		||||
@@ -88,40 +88,73 @@ logger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  <Next hop SCP>
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o Next hop SCP Server(https://127.0.1.11:7777)
 | 
			
		||||
#  next_scp:
 | 
			
		||||
#      sbi:
 | 
			
		||||
#        - addr: 127.0.1.11
 | 
			
		||||
#          port: 7777
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#  <Discovery>
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.1.10
 | 
			
		||||
#        port: 7777
 | 
			
		||||
#
 | 
			
		||||
#  o NF Discovery and Selection
 | 
			
		||||
#    for indirect communication with Delegated Discovery;
 | 
			
		||||
#    - Use SCP if SCP avaiable. Otherwise NRF is used.
 | 
			
		||||
#      => App fails if both NRF and SCP are unavailable.
 | 
			
		||||
#
 | 
			
		||||
#  o delegated:
 | 
			
		||||
#    o auto: (Default)
 | 
			
		||||
#            Use next-hop SCP if next-hop SCP avaiable. Otherwise NRF is used.
 | 
			
		||||
#            => App fails if both next-hop SCP and NRF are unavailable.
 | 
			
		||||
#    o yes:  Use next-hop SCP always.
 | 
			
		||||
#            => App fails if no next-hop SCP available.
 | 
			
		||||
#    o no:   Don't use next-hop SCP server.
 | 
			
		||||
#            => App fails if no NRF available.
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.1.10
 | 
			
		||||
#        port: 7777
 | 
			
		||||
#    discovery:
 | 
			
		||||
#      delegated: auto
 | 
			
		||||
#
 | 
			
		||||
#  next_scp:
 | 
			
		||||
#      sbi:
 | 
			
		||||
#        - addr: 127.0.1.11
 | 
			
		||||
#          port: 7777
 | 
			
		||||
#      discovery:
 | 
			
		||||
#        delegated: auto|yes|no
 | 
			
		||||
#  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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# next_scp:
 | 
			
		||||
#
 | 
			
		||||
#  <Next hop SCP>
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Client(http://127.0.1.11:7777)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.1.11
 | 
			
		||||
#      port: 7777
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Client(https://127.0.1.11:443, http://next-scp.open5gs.org:80)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.1.11
 | 
			
		||||
#        tls:
 | 
			
		||||
#          key: next-scp.key
 | 
			
		||||
#          pem: next-scp.pem
 | 
			
		||||
#      - name: next-scp.open5gs.org
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Client(http://[fd69:f21d:873c:fb::1]:80)
 | 
			
		||||
#    If prefer_ipv4 is true, http://127.0.1.11:80 is selected.
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr:
 | 
			
		||||
#        - 127.0.1.11
 | 
			
		||||
#        - fd69:f21d:873c:fb::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.1.11
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -184,10 +217,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:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -142,10 +142,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
 | 
			
		||||
# o Maximum Number of GTP peer nodes per SGWC/SMF
 | 
			
		||||
#    gtp_peer: 64
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -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,10 +16,11 @@
 | 
			
		||||
#
 | 
			
		||||
#  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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# smf:
 | 
			
		||||
#
 | 
			
		||||
@@ -35,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: smf.key
 | 
			
		||||
@@ -85,6 +86,63 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.4
 | 
			
		||||
#        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.4
 | 
			
		||||
#        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
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
#  <PFCP Server>
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Server(127.0.0.4:8805, ::1:8805)
 | 
			
		||||
@@ -145,6 +203,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
 | 
			
		||||
@@ -375,7 +440,20 @@ logger:
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            tac: 99
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
#  <Security Indication - 5G Core only>
 | 
			
		||||
#
 | 
			
		||||
#   According to 3GPP TS38.413 Section 9.3.1.27,
 | 
			
		||||
#   Security Indication IE may be instructed to 5G gNB.
 | 
			
		||||
#
 | 
			
		||||
#   If you set the security_indication in smf.yaml,
 | 
			
		||||
#   this information is delivered using PDU Session Resource Request Transfer IE
 | 
			
		||||
#
 | 
			
		||||
#    security_indication:
 | 
			
		||||
#      integrity_protection_indication: required|preferred|not-needed
 | 
			
		||||
#      confidentiality_protection_indication: required|preferred|not-needed
 | 
			
		||||
#      maximum_integrity_protected_data_rate_uplink: bitrate64kbs|maximum-UE-rate
 | 
			
		||||
#      maximum_integrity_protected_data_rate_downlink: bitrate64kbs|maximum-UE-rate
 | 
			
		||||
#
 | 
			
		||||
smf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.4
 | 
			
		||||
@@ -389,6 +467,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
 | 
			
		||||
@@ -402,6 +483,50 @@ smf:
 | 
			
		||||
      enabled: auto
 | 
			
		||||
    freeDiameter: @sysconfdir@/freeDiameter/smf.conf
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# 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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -440,12 +565,12 @@ smf:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# upf:
 | 
			
		||||
@@ -527,10 +652,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
 | 
			
		||||
# o Maximum Number of GTP peer nodes per SGWC/SMF
 | 
			
		||||
#    gtp_peer: 64
 | 
			
		||||
#
 | 
			
		||||
@@ -565,17 +690,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: 127.0.0.4
 | 
			
		||||
    port: 9090
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/udm.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# udm:
 | 
			
		||||
#
 | 
			
		||||
@@ -35,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: udm.key
 | 
			
		||||
@@ -85,11 +86,113 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.12
 | 
			
		||||
#        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.12
 | 
			
		||||
#        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
 | 
			
		||||
#
 | 
			
		||||
udm:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.12
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -128,12 +231,12 @@ udm:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
@@ -152,10 +255,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:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ db_uri: mongodb://localhost/open5gs
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/udr.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# udr:
 | 
			
		||||
#
 | 
			
		||||
@@ -37,7 +38,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,11 +88,111 @@ 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.
 | 
			
		||||
#
 | 
			
		||||
#  <For Indirect Communication with Delegated Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o (Default) If you do not set Delegated Discovery as shown below,
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.20
 | 
			
		||||
#        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.20
 | 
			
		||||
#        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
 | 
			
		||||
#
 | 
			
		||||
udr:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.20
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
@@ -130,12 +231,12 @@ udr:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
@@ -154,10 +255,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:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
@@ -105,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
 | 
			
		||||
@@ -233,26 +259,6 @@ nrf:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  <Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o NF Discovery and Selection
 | 
			
		||||
#    for indirect communication with Delegated Discovery;
 | 
			
		||||
#
 | 
			
		||||
#  o delegated:
 | 
			
		||||
#    o auto: (Default)
 | 
			
		||||
#            Use SCP if SCP avaiable. Otherwise NRF is used.
 | 
			
		||||
#            => App fails if both NRF and SCP are unavailable.
 | 
			
		||||
#    o yes:  Use SCP always.
 | 
			
		||||
#            => App fails if no SCP available.
 | 
			
		||||
#    o no:   Don't use SCP server.
 | 
			
		||||
#            => App fails if no NRF available.
 | 
			
		||||
#
 | 
			
		||||
#  scp:
 | 
			
		||||
#      sbi:
 | 
			
		||||
#        - addr: 127.0.1.10
 | 
			
		||||
#          port: 7777
 | 
			
		||||
#      discovery:
 | 
			
		||||
#        delegated: auto|yes|no
 | 
			
		||||
#
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
@@ -279,7 +285,7 @@ nssf:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
@@ -215,7 +216,7 @@ nssf:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        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
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ systemd_conf_in = '''
 | 
			
		||||
    open5gs-hssd.service
 | 
			
		||||
    open5gs-pcrfd.service
 | 
			
		||||
    open5gs-nrfd.service
 | 
			
		||||
    open5gs-scpd.service
 | 
			
		||||
    open5gs-ausfd.service
 | 
			
		||||
    open5gs-udmd.service
 | 
			
		||||
    open5gs-pcfd.service
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								configs/systemd/open5gs-scpd.service.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								configs/systemd/open5gs-scpd.service.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS NRF Daemon
 | 
			
		||||
Wants=mongodb.service mongod.service
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 | 
			
		||||
User=open5gs
 | 
			
		||||
Group=open5gs
 | 
			
		||||
 | 
			
		||||
Restart=always
 | 
			
		||||
ExecStart=@bindir@/open5gs-scpd -c @sysconfdir@/open5gs/scp.yaml
 | 
			
		||||
RestartSec=2
 | 
			
		||||
RestartPreventExitStatus=1
 | 
			
		||||
ExecReload=/bin/kill -HUP $MAINPID
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
@@ -222,7 +223,7 @@ nssf:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ parameter:
 | 
			
		||||
#    no_sgwu: true
 | 
			
		||||
#    no_pcrf: true
 | 
			
		||||
#    no_hss: true
 | 
			
		||||
#    use_mongodb_change_stream: true
 | 
			
		||||
 | 
			
		||||
mme:
 | 
			
		||||
    freeDiameter:
 | 
			
		||||
@@ -225,7 +226,7 @@ nssf:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
        port: 7777
 | 
			
		||||
    nsi:
 | 
			
		||||
      - addr: ::1
 | 
			
		||||
      - addr: 127.0.0.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          sst: 1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										144
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										144
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,147 @@
 | 
			
		||||
open5gs (2.5.9) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 06 Mar 2023 21:43:02 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.8) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 23 Jan 2023 10:58:46 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.8~kinetic) kinetic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 23 Jan 2023 10:57:23 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.8~jammy) jammy; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 23 Jan 2023 10:55:19 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.8~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 23 Jan 2023 10:53:56 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.8~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 23 Jan 2023 10:52:22 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.7) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 14 Jan 2023 11:18:40 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.7~kinetic) kinetic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 14 Jan 2023 11:17:17 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.7~jammy) jammy; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 14 Jan 2023 11:15:53 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.7~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 14 Jan 2023 11:14:32 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.7~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 14 Jan 2023 11:12:57 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.6) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * New NF - SCP(Service Communication Proxy)
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Fri, 18 Nov 2022 23:24:32 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.6~jammy5) jammy; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * New NF - SCP(Service Communication Proxy)
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Fri, 18 Nov 2022 23:23:07 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.6~kinetic3) kinetic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * New NF - SCP(Service Communication Proxy)
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Fri, 18 Nov 2022 23:21:16 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.6~bionic3) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * New NF - SCP(Service Communication Proxy)
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Fri, 18 Nov 2022 23:18:33 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.5.6~focal3) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * New NF - SCP(Service Communication Proxy)
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Fri, 18 Nov 2022 23:17:05 +0900
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								debian/control
									
									
									
									
										vendored
									
									
								
							@@ -165,6 +165,18 @@ Description: NRF (Network Repository Function)
 | 
			
		||||
 .
 | 
			
		||||
 This package provides the NRF (Network Repository Function)
 | 
			
		||||
 | 
			
		||||
Package: open5gs-scp
 | 
			
		||||
Architecture: any
 | 
			
		||||
Multi-Arch: same
 | 
			
		||||
Depends: ${shlibs:Depends},
 | 
			
		||||
         ${misc:Depends},
 | 
			
		||||
         open5gs-common (= ${binary:Version})
 | 
			
		||||
Description: SCP (Network Repository Function)
 | 
			
		||||
 Open5GS is a C-language implementation of 5G Core and EPC
 | 
			
		||||
 Packet Core, i.e. the core network of an NR/LTE network (Release-16)
 | 
			
		||||
 .
 | 
			
		||||
 This package provides the SCP (Service Communication Proxy)
 | 
			
		||||
 | 
			
		||||
Package: open5gs-ausf
 | 
			
		||||
Architecture: any
 | 
			
		||||
Multi-Arch: same
 | 
			
		||||
@@ -251,6 +263,7 @@ Depends: ${misc:Depends},
 | 
			
		||||
         open5gs-hss (= ${binary:Version}),
 | 
			
		||||
         open5gs-pcrf (= ${binary:Version}),
 | 
			
		||||
         open5gs-nrf (= ${binary:Version}),
 | 
			
		||||
         open5gs-scp (= ${binary:Version}),
 | 
			
		||||
         open5gs-ausf (= ${binary:Version}),
 | 
			
		||||
         open5gs-udm (= ${binary:Version}),
 | 
			
		||||
         open5gs-pcf (= ${binary:Version}),
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								debian/open5gs-common.install
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								debian/open5gs-common.install
									
									
									
									
										vendored
									
									
								
							@@ -3,4 +3,3 @@ usr/lib/*/libfd*.so*
 | 
			
		||||
usr/lib/*/freeDiameter/*.fdx
 | 
			
		||||
configs/freeDiameter/cacert.pem /etc/freeDiameter
 | 
			
		||||
configs/logrotate/open5gs /etc/logrotate.d
 | 
			
		||||
misc/db/open5gs-dbctl /usr/bin
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								debian/open5gs-scp.install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								debian/open5gs-scp.install
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
usr/bin/open5gs-scpd
 | 
			
		||||
configs/open5gs/scp.yaml etc/open5gs
 | 
			
		||||
configs/systemd/open5gs-scpd.service lib/systemd/system
 | 
			
		||||
							
								
								
									
										28
									
								
								debian/open5gs-upf.postinst
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								debian/open5gs-upf.postinst
									
									
									
									
										vendored
									
									
								
							@@ -20,20 +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
 | 
			
		||||
	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
 | 
			
		||||
    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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,52 +1,32 @@
 | 
			
		||||
Docker running example
 | 
			
		||||
===========================================
 | 
			
		||||
* Build Image
 | 
			
		||||
* Development
 | 
			
		||||
  
 | 
			
		||||
  `$ docker-compose build`
 | 
			
		||||
  `$ docker compose run dev`
 | 
			
		||||
 | 
			
		||||
* Development 
 | 
			
		||||
* Run WebUI
 | 
			
		||||
  
 | 
			
		||||
  `$ docker-compose run dev`
 | 
			
		||||
 | 
			
		||||
* Runtime
 | 
			
		||||
  ```
 | 
			
		||||
  $ docker-compose \
 | 
			
		||||
    -f docker-compose.yml -f docker-compose.run.yml run run
 | 
			
		||||
  ```
 | 
			
		||||
  `$ docker-compose up webui`
 | 
			
		||||
 | 
			
		||||
* Test
 | 
			
		||||
  ```
 | 
			
		||||
  $ docker-compose \
 | 
			
		||||
    -f docker-compose.yml -f docker-compose.test.yml run test
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
* Test(ubuntu:artful)
 | 
			
		||||
  ```
 | 
			
		||||
  $ TAG=eoan docker-compose build
 | 
			
		||||
  $ TAG=eoan docker-compose \
 | 
			
		||||
    -f docker-compose.yml -f docker-compose.test.yml run test
 | 
			
		||||
  ```
 | 
			
		||||
  `$ docker compose run test`
 | 
			
		||||
 | 
			
		||||
* Test(ubuntu:focal)
 | 
			
		||||
 | 
			
		||||
  `$ TAG=focal docker compose run test`
 | 
			
		||||
 | 
			
		||||
* Development(fedora:latest)
 | 
			
		||||
  ```
 | 
			
		||||
  $ DIST=fedora docker-compose build
 | 
			
		||||
  $ DIST=fedora docker-compose run dev
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
* Runtime(debian:jessie)
 | 
			
		||||
  ```
 | 
			
		||||
  $ DIST=debian TAG=stretch docker-compose build
 | 
			
		||||
  $ DIST=debian TAG=stretch docker-compose 
 | 
			
		||||
    -f docker-compose.yml -f docker-compose.run.yml run run
 | 
			
		||||
  ```
 | 
			
		||||
  `$ DIST=fedora docker compose run dev`
 | 
			
		||||
 | 
			
		||||
* All Test with All Environment
 | 
			
		||||
  
 | 
			
		||||
  `$ ./check.sh`
 | 
			
		||||
 | 
			
		||||
* Run WebUI 
 | 
			
		||||
  
 | 
			
		||||
  `$ docker-compose up -d`
 | 
			
		||||
* Runtime
 | 
			
		||||
 | 
			
		||||
  `$ docker compose run run`
 | 
			
		||||
 | 
			
		||||
For OpenSUSE Build Service Release
 | 
			
		||||
===========================================
 | 
			
		||||
@@ -100,8 +80,18 @@ export DEBEMAIL='acetcom@gmail.com'
 | 
			
		||||
* Version Change
 | 
			
		||||
  
 | 
			
		||||
  ```
 | 
			
		||||
  $ vi meson.build
 | 
			
		||||
  $ ./misc/git-version-gen . > .tarball-version 2>/dev/null
 | 
			
		||||
  $ cat ./meson.build
 | 
			
		||||
  $ cat ./webui/package.json
 | 
			
		||||
  $ cat ./webui/package-lock.json
 | 
			
		||||
  $ cat ./docs/assets/webui/install
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
* New NF
 | 
			
		||||
  ```
 | 
			
		||||
  $ cat debian/control
 | 
			
		||||
  $ cat configs/systemd/open5gs-scpd.service.in
 | 
			
		||||
  $ cat configs/logrotate/open5gs.in
 | 
			
		||||
  $ cat configs/newsyslog/open5gs.conf.in
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
* Upload OpenBuildService
 | 
			
		||||
 
 | 
			
		||||
@@ -9,4 +9,7 @@ WORKDIR /open5gs
 | 
			
		||||
COPY docker/build/setup.sh /root
 | 
			
		||||
COPY ./ /open5gs
 | 
			
		||||
 | 
			
		||||
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait
 | 
			
		||||
RUN chmod +x /wait
 | 
			
		||||
 | 
			
		||||
RUN meson build && ninja -C build install
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,9 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
docker-compose build
 | 
			
		||||
docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
 | 
			
		||||
 | 
			
		||||
TAG=bionic docker-compose build
 | 
			
		||||
TAG=bionic docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
 | 
			
		||||
 | 
			
		||||
DIST=fedora TAG=32 docker-compose build
 | 
			
		||||
DIST=fedora TAG=32 docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
 | 
			
		||||
 | 
			
		||||
DIST=debian docker-compose build
 | 
			
		||||
DIST=debian docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test
 | 
			
		||||
docker compose run --rm test
 | 
			
		||||
TAG=focal docker compose run --rm test
 | 
			
		||||
DIST=fedora docker compose run --rm test
 | 
			
		||||
DIST=debian docker compose run --rm test
 | 
			
		||||
#DIST=alpine docker compose run --rm test
 | 
			
		||||
 | 
			
		||||
docker rm $(docker ps -qa --no-trunc --filter "status=exited")
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +0,0 @@
 | 
			
		||||
version: '3'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  run:
 | 
			
		||||
    network_mode: "host"
 | 
			
		||||
    image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mongodb
 | 
			
		||||
      - build
 | 
			
		||||
    cap_add:
 | 
			
		||||
      - NET_ADMIN
 | 
			
		||||
    devices:
 | 
			
		||||
      - "/dev/net/tun:/dev/net/tun"
 | 
			
		||||
    sysctls:
 | 
			
		||||
      - net.ipv6.conf.all.disable_ipv6=0
 | 
			
		||||
    volumes:
 | 
			
		||||
      - config:/etc/open5gs
 | 
			
		||||
    hostname: open5gs-run
 | 
			
		||||
    command: /bin/bash -c "/root/setup.sh; /usr/bin/open5gs-pcrfd -D; /usr/bin/open5gs-pgwd -D; /usr/bin/open5gs-sgwd -D; /usr/bin/open5gs-hssd -D; /usr/bin/open5gs-mmed"
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
  config: {}
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
version: '3'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  test:
 | 
			
		||||
    image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mongodb
 | 
			
		||||
      - build
 | 
			
		||||
    environment:
 | 
			
		||||
      DB_URI: mongodb://mongodb/open5gs
 | 
			
		||||
    cap_add:
 | 
			
		||||
      - NET_ADMIN
 | 
			
		||||
    devices:
 | 
			
		||||
      - "/dev/net/tun:/dev/net/tun"
 | 
			
		||||
    sysctls:
 | 
			
		||||
      - net.ipv6.conf.all.disable_ipv6=0
 | 
			
		||||
    hostname: open5gs-test
 | 
			
		||||
    command: /bin/bash -c "/root/setup.sh; cd /open5gs/build && meson test -v"
 | 
			
		||||
@@ -6,21 +6,24 @@ services:
 | 
			
		||||
    container_name: open5gs-mongodb
 | 
			
		||||
    ports:
 | 
			
		||||
      - "27017:27017"
 | 
			
		||||
    restart: unless-stopped
 | 
			
		||||
    volumes:
 | 
			
		||||
      - mongodb:/data/db
 | 
			
		||||
      - ../docs/assets/webui/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
 | 
			
		||||
 | 
			
		||||
  webui:
 | 
			
		||||
    build: webui
 | 
			
		||||
    build:
 | 
			
		||||
      context: ../
 | 
			
		||||
      dockerfile: docker/webui/Dockerfile
 | 
			
		||||
    image: ${USER}/open5gs-webui
 | 
			
		||||
    container_name: open5gs-webui
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mongodb
 | 
			
		||||
    ports:
 | 
			
		||||
      - "3000:3000"
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mongodb
 | 
			
		||||
    environment:
 | 
			
		||||
      DB_URI: mongodb://mongodb/open5gs
 | 
			
		||||
      - DB_URI=mongodb://mongodb/open5gs
 | 
			
		||||
      - WAIT_HOSTS=mongodb:27017
 | 
			
		||||
 | 
			
		||||
  base:
 | 
			
		||||
    build:
 | 
			
		||||
@@ -44,6 +47,40 @@ services:
 | 
			
		||||
      - base
 | 
			
		||||
    command: /bin/bash -c "echo 'build' services"
 | 
			
		||||
 | 
			
		||||
  run:
 | 
			
		||||
#    network_mode: "host"
 | 
			
		||||
    image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mongodb
 | 
			
		||||
      - build
 | 
			
		||||
    cap_add:
 | 
			
		||||
      - NET_ADMIN
 | 
			
		||||
    devices:
 | 
			
		||||
      - "/dev/net/tun:/dev/net/tun"
 | 
			
		||||
    sysctls:
 | 
			
		||||
      - net.ipv6.conf.all.disable_ipv6=0
 | 
			
		||||
    volumes:
 | 
			
		||||
      - config:/etc/open5gs
 | 
			
		||||
    hostname: open5gs-run
 | 
			
		||||
#    command: /bin/bash -c "/root/setup.sh; /usr/bin/open5gs-pcrfd -D; /usr/bin/open5gs-pgwd -D; /usr/bin/open5gs-sgwd -D; /usr/bin/open5gs-hssd -D; /usr/bin/open5gs-mmed"
 | 
			
		||||
 | 
			
		||||
  test:
 | 
			
		||||
    image: ${USER}/${DIST-ubuntu}-${TAG-latest}-open5gs-build
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - mongodb
 | 
			
		||||
      - build
 | 
			
		||||
    environment:
 | 
			
		||||
      - DB_URI=mongodb://mongodb/open5gs
 | 
			
		||||
      - WAIT_HOSTS=mongodb:27017
 | 
			
		||||
    cap_add:
 | 
			
		||||
      - NET_ADMIN
 | 
			
		||||
    devices:
 | 
			
		||||
      - "/dev/net/tun:/dev/net/tun"
 | 
			
		||||
    sysctls:
 | 
			
		||||
      - net.ipv6.conf.all.disable_ipv6=0
 | 
			
		||||
    hostname: open5gs-test
 | 
			
		||||
    command: /bin/bash -c "/root/setup.sh; cd /open5gs/build && /wait && meson test -v"
 | 
			
		||||
 | 
			
		||||
  dev:
 | 
			
		||||
    build:
 | 
			
		||||
      context: ./${DIST-ubuntu}/${TAG-latest}/dev
 | 
			
		||||
@@ -83,3 +120,4 @@ services:
 | 
			
		||||
volumes:
 | 
			
		||||
  mongodb: {}
 | 
			
		||||
  home: {}
 | 
			
		||||
  config: {}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,21 +1,16 @@
 | 
			
		||||
FROM node:carbon
 | 
			
		||||
FROM node:19
 | 
			
		||||
 | 
			
		||||
MAINTAINER Sukchan Lee <acetcom@gmail.com>
 | 
			
		||||
 | 
			
		||||
ARG PACKAGE=open5gs
 | 
			
		||||
ARG VERSION=2.2.6
 | 
			
		||||
 | 
			
		||||
RUN set -e; \
 | 
			
		||||
    cd /usr/src; \
 | 
			
		||||
    rm -rf ./$PACKAGE; \
 | 
			
		||||
    curl -SLO "https://github.com/open5gs/$PACKAGE/archive/v$VERSION.tar.gz"; \
 | 
			
		||||
    tar -xvf v$VERSION.tar.gz; \
 | 
			
		||||
    mv ./$PACKAGE-$VERSION/ ./$PACKAGE;
 | 
			
		||||
COPY webui /usr/src/open5gs/webui
 | 
			
		||||
 | 
			
		||||
WORKDIR /usr/src/open5gs/webui
 | 
			
		||||
RUN npm install && \
 | 
			
		||||
RUN npm clean-install && \
 | 
			
		||||
    npm run build
 | 
			
		||||
 | 
			
		||||
CMD npm run start
 | 
			
		||||
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait
 | 
			
		||||
RUN chmod +x /wait
 | 
			
		||||
 | 
			
		||||
CMD /wait && npm run start
 | 
			
		||||
 | 
			
		||||
EXPOSE 3000
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -44,18 +44,19 @@ All of these Open5GS components have config files. Each config file contains the
 | 
			
		||||
#### 5G SA Core
 | 
			
		||||
 | 
			
		||||
The Open5GS 5G SA Core contains the following functions:
 | 
			
		||||
* NRF - NF Repository Function
 | 
			
		||||
* SCP - Service Communication Proxy
 | 
			
		||||
* AMF - Access and Mobility Management Function
 | 
			
		||||
* SMF - Session Management Function
 | 
			
		||||
* UPF - User Plane Function
 | 
			
		||||
* AUSF - Authentication Server Function
 | 
			
		||||
* NRF - NF Repository Function
 | 
			
		||||
* UDM - Unified Data Management
 | 
			
		||||
* UDR - Unified Data Repository
 | 
			
		||||
* PCF - Policy and Charging Function
 | 
			
		||||
* NSSF - Network Slice Selection Function
 | 
			
		||||
* BSF - Binding Support Function
 | 
			
		||||
 | 
			
		||||
The 5G SA core works in a different way to the 4G core - it uses a **Service Based Architecture** (SBI). **Control plane** functions are configured to register with the NRF, and the NRF then helps them discover the other core functions. Running through the other functions: The AMF handles connection and mobility management; a subset of what the 4G MME is tasked with. gNBs (5G basestations) connect to the AMF. The UDM, AUSF and UDR carry out similar operations as the 4G HSS, generating SIM authentication vectors and holding the subscriber profile. Session management is all handled by the SMF (previously the responsibility of the 4G MME/ SGWC/ PGWC). The NSSF provides a way to select the network slice. Finally there is the PCF, used for charging and enforcing subscriber policies.
 | 
			
		||||
The 5G SA core works in a different way to the 4G core - it uses a **Service Based Architecture** (SBI). **Control plane** functions are configured to register with the NRF, and the NRF then helps them discover the other core functions. Running through the other functions: The AMF handles connection and mobility management; a subset of what the 4G MME is tasked with. gNBs (5G basestations) connect to the AMF. The UDM, AUSF and UDR carry out similar operations as the 4G HSS, generating SIM authentication vectors and holding the subscriber profile. Session management is all handled by the SMF (previously the responsibility of the 4G MME/ SGWC/ PGWC). The NSSF provides a way to select the network slice, and PCF is used for charging and enforcing subscriber policies. Finally there is the SCP that enable indirect communication.
 | 
			
		||||
 | 
			
		||||
The 5G SA core **user plane** is much simpler, as it only contains a single function. The UPF carries user data packets between the gNB and the external WAN. It connects back to the SMF too. 
 | 
			
		||||
 | 
			
		||||
@@ -70,14 +71,36 @@ With the exception of the SMF and UPF, all config files for the 5G SA core funct
 | 
			
		||||
**Note:** Nighly builds are offered by [Osmocom](https://osmocom.org) on [OBS](https://build.opensuse.org/package/show/network:osmocom:nightly/open5gs). Scroll down to use a nightly build package.
 | 
			
		||||
{: .notice--warning}
 | 
			
		||||
 | 
			
		||||
#### Getting MongoDB
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Import the public key used by the package management system.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt install wget gnupg
 | 
			
		||||
$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Create the list file /etc/apt/sources.list.d/mongodb-org-6.0.list for your version of Ubuntu.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Install the MongoDB packages.
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt-get install -y mongodb-org
 | 
			
		||||
$ sudo systemctl start mongod (if '/usr/bin/mongod' is not running)
 | 
			
		||||
$ sudo systemctl enable mongod (ensure to automatically start it on system boot)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Ubuntu
 | 
			
		||||
 | 
			
		||||
*Ubuntu* makes it easy to install Open5GS as shown below.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt install software-properties-common
 | 
			
		||||
$ sudo add-apt-repository ppa:open5gs/latest
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt install open5gs
 | 
			
		||||
@@ -90,13 +113,9 @@ The Open5GS packages for Debian are available on [OBS](https://build.opensuse.or
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt install wget gnupg
 | 
			
		||||
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
 | 
			
		||||
$ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org.list
 | 
			
		||||
$ wget -qO - https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_10/Release.key | sudo apt-key add -
 | 
			
		||||
$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/Debian_10/ ./' > /etc/apt/sources.list.d/open5gs.list"
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt install mongodb-org
 | 
			
		||||
$ sudo apt install open5gs
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@@ -115,16 +134,6 @@ https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbunt
 | 
			
		||||
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_22.04/
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### openSUSE
 | 
			
		||||
 | 
			
		||||
[Martin Hauke](https://build.opensuse.org/user/show/mnhauke) packaged Open5GS for *openSUSE* on [OBS](https://build.opensuse.org/package/show/home:mnhauke:open5gs/open5gs).
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo zypper addrepo -f obs://home:mnhauke:open5gs home:mnhauke:open5gs
 | 
			
		||||
$ sudo zypper install mongodb-server mongodb-shell
 | 
			
		||||
$ sudo zypper install open5gs
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Nightly Builds
 | 
			
		||||
 | 
			
		||||
Nightly bulit package are provided by [Osmocom](https://osmocom.org) on [OBS](https://build.opensuse.org/package/show/network:osmocom:nightly/open5gs). On *Ubuntu 20.04* you can install it like this:
 | 
			
		||||
@@ -153,6 +162,15 @@ https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_21.
 | 
			
		||||
https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_22.04/
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### openSUSE
 | 
			
		||||
 | 
			
		||||
[Martin Hauke](https://build.opensuse.org/user/show/mnhauke) packaged Open5GS for *openSUSE* on [OBS](https://build.opensuse.org/package/show/home:mnhauke:open5gs/open5gs).
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo zypper addrepo -f obs://home:mnhauke:open5gs home:mnhauke:open5gs
 | 
			
		||||
$ sudo zypper install mongodb-server mongodb-shell
 | 
			
		||||
$ sudo zypper install open5gs
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 3. Install the  WebUI of Open5GS
 | 
			
		||||
---
 | 
			
		||||
@@ -167,7 +185,7 @@ The WebUI allows you to interactively edit subscriber data. While it is not esse
 | 
			
		||||
    ```bash
 | 
			
		||||
    $ sudo apt update
 | 
			
		||||
    $ sudo apt install curl
 | 
			
		||||
    $ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
 | 
			
		||||
    $ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
 | 
			
		||||
    $ sudo apt install nodejs
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
@@ -220,6 +238,7 @@ HSS-frDi  = 127.0.0.8 :3868 for S6a, Cx
 | 
			
		||||
PCRF-frDi = 127.0.0.9 :3868 for Gx
 | 
			
		||||
 | 
			
		||||
NRF-sbi   = 127.0.0.10:7777 for 5G SBI
 | 
			
		||||
SCP-sbi   = 127.0.1.10:7777 for 5G SBI
 | 
			
		||||
AUSF-sbi  = 127.0.0.11:7777 for 5G SBI
 | 
			
		||||
UDM-sbi   = 127.0.0.12:7777 for 5G SBI
 | 
			
		||||
PCF-sbi   = 127.0.0.13:7777 for 5G SBI
 | 
			
		||||
@@ -239,45 +258,49 @@ Modify [/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/ope
 | 
			
		||||
 | 
			
		||||
```diff
 | 
			
		||||
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
 | 
			
		||||
 mme:
 | 
			
		||||
     freeDiameter: /etc/freeDiameter/mme.conf
 | 
			
		||||
--- mme.yaml    2020-09-05 20:52:28.648235143 -0400
 | 
			
		||||
+++ mme.yaml.new    2020-09-05 20:56:05.434484208 -0400
 | 
			
		||||
@@ -253,20 +253,20 @@ mme:
 | 
			
		||||
     s1ap:
 | 
			
		||||
-      addr: 127.0.0.2
 | 
			
		||||
+      addr: 10.10.0.2 # for external eNB - a local address that can be reached by the eNB
 | 
			
		||||
-      - addr: 127.0.0.2
 | 
			
		||||
+      - addr: 10.10.0.2
 | 
			
		||||
     gtpc:
 | 
			
		||||
       - addr: 127.0.0.2
 | 
			
		||||
     metrics:
 | 
			
		||||
       addr: 127.0.0.2
 | 
			
		||||
       port: 9090
 | 
			
		||||
     gummei:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
+        mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+        mnc: 01  # set your PLMN-MNC
 | 
			
		||||
+        mcc: 001
 | 
			
		||||
+        mnc: 01
 | 
			
		||||
       mme_gid: 2
 | 
			
		||||
       mme_code: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
-      tac: 1
 | 
			
		||||
+        mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+        mnc: 01  # set your PLMN-MNC
 | 
			
		||||
+      tac: 2 # should match the TAC used by your eNB
 | 
			
		||||
+        mcc: 001
 | 
			
		||||
+        mnc: 01
 | 
			
		||||
       tac: 1
 | 
			
		||||
     security:
 | 
			
		||||
 | 
			
		||||
         integrity_order : [ EIA2, EIA1, EIA0 ]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Modify [/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
 | 
			
		||||
@@ -98,7 +98,7 @@ logger:
 | 
			
		||||
 #
 | 
			
		||||
 sgwu:
 | 
			
		||||
     gtpu:
 | 
			
		||||
-      addr: 127.0.0.6
 | 
			
		||||
+      addr: 10.11.0.6  # for external eNB - a local address that can be reached by the eNB
 | 
			
		||||
     pfcp:
 | 
			
		||||
       addr: 127.0.0.6
 | 
			
		||||
 | 
			
		||||
-      - addr: 127.0.0.6
 | 
			
		||||
+      - addr: 10.11.0.6
 | 
			
		||||
     gtpu:
 | 
			
		||||
       - addr: 127.0.0.6
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After changing config files, please restart Open5GS daemons.
 | 
			
		||||
@@ -298,20 +321,23 @@ Modify [/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/ope
 | 
			
		||||
 | 
			
		||||
```diff
 | 
			
		||||
$ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
 | 
			
		||||
 | 
			
		||||
amf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
        port: 7777
 | 
			
		||||
--- amf.yaml    2020-09-05 20:52:28.652234967 -0400
 | 
			
		||||
+++ amf.yaml.new    2020-09-05 20:55:07.453114885 -0400
 | 
			
		||||
@@ -293,26 +293,26 @@ amf:
 | 
			
		||||
       - addr: 127.0.0.5
 | 
			
		||||
         port: 7777
 | 
			
		||||
     ngap:
 | 
			
		||||
-      - addr: 127.0.0.5
 | 
			
		||||
+      - addr: 10.10.0.5 # for external gNB - a local address that can be reached by the gNB
 | 
			
		||||
+      - addr: 10.10.0.5
 | 
			
		||||
     metrics:
 | 
			
		||||
         addr: 127.0.0.5
 | 
			
		||||
         port: 9090
 | 
			
		||||
     guami:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
+          mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+          mnc: 01  # set your PLMN-MNC
 | 
			
		||||
+          mcc: 001
 | 
			
		||||
+          mnc: 01
 | 
			
		||||
         amf_id:
 | 
			
		||||
           region: 2
 | 
			
		||||
           set: 1
 | 
			
		||||
@@ -319,36 +345,34 @@ amf:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
-        tac: 1
 | 
			
		||||
+          mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+          mnc: 01  # set your PLMN-MNC
 | 
			
		||||
+        tac: 2 # should match the TAC used by your gNB
 | 
			
		||||
+          mcc: 001
 | 
			
		||||
+          mnc: 01
 | 
			
		||||
         tac: 1
 | 
			
		||||
     plmn_support:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
+          mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+          mnc: 01  # set your PLMN-MNC
 | 
			
		||||
+          mcc: 001
 | 
			
		||||
+          mnc: 01
 | 
			
		||||
         s_nssai:
 | 
			
		||||
           - sst: 1
 | 
			
		||||
     security:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Modify [/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/upf.yaml.in) to set the GTP-U address.
 | 
			
		||||
```diff
 | 
			
		||||
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
 | 
			
		||||
 | 
			
		||||
upf:
 | 
			
		||||
--- upf.yaml    2020-09-05 20:52:28.652234967 -0400
 | 
			
		||||
+++ upf.yaml.new    2020-09-05 20:52:55.279052142 -0400
 | 
			
		||||
@@ -168,7 +168,7 @@ upf:
 | 
			
		||||
     pfcp:
 | 
			
		||||
       - addr: 127.0.0.7
 | 
			
		||||
     gtpu:
 | 
			
		||||
-      - addr: 127.0.0.7
 | 
			
		||||
+      - addr: 10.11.0.7 # for external gNB - a local address that can be reached by the gNB
 | 
			
		||||
+      - addr: 10.11.0.7
 | 
			
		||||
     subnet:
 | 
			
		||||
       - addr: 10.45.0.1/16
 | 
			
		||||
       - addr: 2001:db8:cafe::1/48
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After changing config files, please restart Open5GS daemons.
 | 
			
		||||
@@ -379,8 +403,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 +454,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
 | 
			
		||||
---
 | 
			
		||||
@@ -467,6 +506,7 @@ $ sudo systemctl stop open5gs-upfd
 | 
			
		||||
$ sudo systemctl stop open5gs-hssd
 | 
			
		||||
$ sudo systemctl stop open5gs-pcrfd
 | 
			
		||||
$ sudo systemctl stop open5gs-nrfd
 | 
			
		||||
$ sudo systemctl stop open5gs-scpd
 | 
			
		||||
$ sudo systemctl stop open5gs-ausfd
 | 
			
		||||
$ sudo systemctl stop open5gs-udmd
 | 
			
		||||
$ sudo systemctl stop open5gs-pcfd
 | 
			
		||||
@@ -486,6 +526,7 @@ $ sudo systemctl restart open5gs-upfd
 | 
			
		||||
$ sudo systemctl restart open5gs-hssd
 | 
			
		||||
$ sudo systemctl restart open5gs-pcrfd
 | 
			
		||||
$ sudo systemctl restart open5gs-nrfd
 | 
			
		||||
$ sudo systemctl restart open5gs-scpd
 | 
			
		||||
$ sudo systemctl restart open5gs-ausfd
 | 
			
		||||
$ sudo systemctl restart open5gs-udmd
 | 
			
		||||
$ sudo systemctl restart open5gs-pcfd
 | 
			
		||||
@@ -524,4 +565,3 @@ The WebUI of Open5GS can be removed as follows:
 | 
			
		||||
```bash
 | 
			
		||||
curl -fsSL {{ site.url }}{{ site.baseurl }}/assets/webui/uninstall | sudo -E bash -
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,15 +13,29 @@ This post explains how to compile and install the source code on **Debian/Ubuntu
 | 
			
		||||
### Getting MongoDB
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Install MongoDB with package manager. It is used as database for NRF/PCF/UDR and PCRF/HSS.
 | 
			
		||||
Import the public key used by the package management system.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt install mongodb
 | 
			
		||||
$ sudo systemctl start mongodb (if '/usr/bin/mongod' is not running)
 | 
			
		||||
$ sudo systemctl enable mongodb (ensure to automatically start it on system boot)
 | 
			
		||||
$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Create the list file /etc/apt/sources.list.d/mongodb-org-6.0.list for your version of Ubuntu.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Install the MongoDB packages.
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt-get install -y mongodb-org
 | 
			
		||||
$ sudo systemctl start mongod (if '/usr/bin/mongod' is not running)
 | 
			
		||||
$ sudo systemctl enable mongod (ensure to automatically start it on system boot)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Tip:** MongoDB is used as database for NRF/PCF/UDR and PCRF/HSS.
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
 | 
			
		||||
### Setting up TUN device (not persistent after rebooting)
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
@@ -97,14 +111,17 @@ 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
 | 
			
		||||
@@ -165,23 +165,23 @@
 | 
			
		||||
--- amf.yaml    2020-09-05 20:52:28.652234967 -0400
 | 
			
		||||
+++ amf.yaml.new    2020-09-05 20:55:07.453114885 -0400
 | 
			
		||||
@@ -293,26 +293,26 @@ amf:
 | 
			
		||||
       - addr: 127.0.0.5
 | 
			
		||||
         port: 7777
 | 
			
		||||
     ngap:
 | 
			
		||||
-      - addr: 127.0.0.5
 | 
			
		||||
+      - addr: 10.10.0.5
 | 
			
		||||
     metrics:
 | 
			
		||||
         addr: 127.0.0.5
 | 
			
		||||
         port: 9090
 | 
			
		||||
     guami:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
@@ -118,10 +135,9 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
-        tac: 1
 | 
			
		||||
+          mcc: 001
 | 
			
		||||
+          mnc: 01
 | 
			
		||||
+        tac: 2
 | 
			
		||||
         tac: 1
 | 
			
		||||
     plmn_support:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
@@ -136,15 +152,13 @@ $ 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
 | 
			
		||||
@@ -137,9 +137,7 @@
 | 
			
		||||
--- upf.yaml    2020-09-05 20:52:28.652234967 -0400
 | 
			
		||||
+++ upf.yaml.new    2020-09-05 20:52:55.279052142 -0400
 | 
			
		||||
@@ -168,7 +168,7 @@ upf:
 | 
			
		||||
     pfcp:
 | 
			
		||||
       - addr: 127.0.0.7
 | 
			
		||||
     gtpu:
 | 
			
		||||
-      - addr:
 | 
			
		||||
-        - 127.0.0.7
 | 
			
		||||
-        - ::1
 | 
			
		||||
-      - addr: 127.0.0.7
 | 
			
		||||
+      - addr: 10.11.0.7
 | 
			
		||||
     subnet:
 | 
			
		||||
       - addr: 10.45.0.1/16
 | 
			
		||||
@@ -156,16 +170,17 @@ 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
 | 
			
		||||
@@ -204,20 +204,20 @@
 | 
			
		||||
 mme:
 | 
			
		||||
     freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
 | 
			
		||||
--- mme.yaml    2020-09-05 20:52:28.648235143 -0400
 | 
			
		||||
+++ mme.yaml.new    2020-09-05 20:56:05.434484208 -0400
 | 
			
		||||
@@ -253,20 +253,20 @@ mme:
 | 
			
		||||
     s1ap:
 | 
			
		||||
-      addr: 127.0.0.2
 | 
			
		||||
+      addr: 10.10.0.2
 | 
			
		||||
-      - addr: 127.0.0.2
 | 
			
		||||
+      - addr: 10.10.0.2
 | 
			
		||||
     gtpc:
 | 
			
		||||
       - addr: 127.0.0.2
 | 
			
		||||
     metrics:
 | 
			
		||||
       addr: 127.0.0.2
 | 
			
		||||
       port: 9090
 | 
			
		||||
     gummei:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
@@ -178,29 +193,26 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
-      tac: 1
 | 
			
		||||
+        mcc: 001
 | 
			
		||||
+        mnc: 01
 | 
			
		||||
+      tac: 2
 | 
			
		||||
       tac: 1
 | 
			
		||||
     security:
 | 
			
		||||
         integrity_order : [ EIA1, EIA2, EIA0 ]
 | 
			
		||||
         ciphering_order : [ EEA0, EEA1, EEA2 ]
 | 
			
		||||
         integrity_order : [ EIA2, EIA1, EIA0 ]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
@@ -51,7 +51,7 @@
 | 
			
		||||
--- sgwu.yaml    2020-09-05 20:50:39.393022566 -0400
 | 
			
		||||
+++ sgwu.yaml.new    2020-09-05 20:51:06.667838823 -0400
 | 
			
		||||
@@ -98,7 +98,7 @@ logger:
 | 
			
		||||
 #
 | 
			
		||||
 sgwu:
 | 
			
		||||
     gtpu:
 | 
			
		||||
-      addr: 127.0.0.6
 | 
			
		||||
+      addr: 10.11.0.6
 | 
			
		||||
     pfcp:
 | 
			
		||||
       addr: 127.0.0.6
 | 
			
		||||
 | 
			
		||||
-      - addr: 127.0.0.6
 | 
			
		||||
+      - addr: 10.11.0.6
 | 
			
		||||
     gtpu:
 | 
			
		||||
       - addr: 127.0.0.6
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If you modify the config files while Open5GS daemons are running, please restart them
 | 
			
		||||
@@ -210,140 +222,164 @@ If you modify the config files while Open5GS daemons are running, please restart
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ ./install/bin/open5gs-mmed
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
$ ./install/bin/open5gs-nrfd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:53:47.328: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:53:47.328: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:53:47.365: [app] INFO: MME initialize...done (../src/mme/app-init.c:33)
 | 
			
		||||
08/21 22:53:47.365: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:32)
 | 
			
		||||
08/21 22:53:47.365: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:59)
 | 
			
		||||
08/21 22:53:47.366: [mme] INFO: s1ap_server() [127.0.0.2]:36412 (../src/mme/s1ap-sctp.c:57)
 | 
			
		||||
10/22 10:43:43.669: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nrf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:43:43.669: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nrf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:43:43.670: [sbi] INFO: nghttp2_server() [127.0.0.10]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:43:43.670: [sbi] INFO: nghttp2_server() [::1]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:43:43.671: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-sgwcd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
$ ./install/bin/open5gs-scpd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:54:43.059: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwc.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:54:43.059: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwc.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:54:43.065: [app] INFO: SGW-C initialize...done (../src/sgwc/app.c:31)
 | 
			
		||||
08/21 22:54:43.066: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:32)
 | 
			
		||||
08/21 22:54:43.066: [pfcp] INFO: pfcp_server() [127.0.0.3]:8805 (../lib/pfcp/path.c:32)
 | 
			
		||||
08/21 22:54:43.066: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.6]:8805 (../lib/pfcp/path.c:60)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-smfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
 | 
			
		||||
08/21 22:54:56.000: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/smf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:54:56.000: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/smf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:54:56.050: [gtp] INFO: gtp_server() [127.0.0.4]:2123 (../lib/gtp/path.c:32)
 | 
			
		||||
08/21 22:54:56.050: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
 | 
			
		||||
08/21 22:54:56.050: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:32)
 | 
			
		||||
08/21 22:54:56.050: [pfcp] INFO: pfcp_server() [127.0.0.4]:8805 (../lib/pfcp/path.c:32)
 | 
			
		||||
08/21 22:54:56.050: [pfcp] INFO: pfcp_server() [::1]:8805 (../lib/pfcp/path.c:32)
 | 
			
		||||
08/21 22:54:56.050: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.7]:8805 (../lib/pfcp/path.c:60)
 | 
			
		||||
08/21 22:54:56.051: [sbi] INFO: sbi_server() [127.0.0.4]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
10/22 10:43:45.709: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/scp.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:43:45.709: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/scp.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:43:45.711: [sbi] INFO: nghttp2_server() [127.0.1.10]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:43:45.712: [app] INFO: SCP initialize...done (../src/scp/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-amfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:55:14.015: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/amf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:55:14.015: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:55:14.039: [app] INFO: AMF initialize...done (../src/amf/app.c:33)
 | 
			
		||||
08/21 22:55:14.040: [sbi] INFO: sbi_server() [127.0.0.5]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
08/21 22:55:14.040: [amf] INFO: ngap_server() [127.0.0.5]:38412 (../src/amf/ngap-sctp.c:56)
 | 
			
		||||
10/22 10:44:01.416: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/amf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:01.416: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:01.419: [sbi] INFO: NF Service [namf-comm] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:01.420: [sbi] INFO: nghttp2_server() [127.0.0.5]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:01.420: [amf] INFO: ngap_server() [127.0.0.5]:38412 (../src/amf/ngap-sctp.c:61)
 | 
			
		||||
10/22 10:44:01.420: [sctp] INFO: AMF initialize...done (../src/amf/app.c:33)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-sgwud
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
$ ./install/bin/open5gs-smfd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:54:10.357: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwu.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:54:10.357: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwu.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:54:10.360: [pfcp] INFO: pfcp_server() [127.0.0.6]:8805 (../lib/pfcp/path.c:32)
 | 
			
		||||
08/21 22:54:10.360: [app] INFO: SGW-U initialize...done (../src/sgwu/app.c:31)
 | 
			
		||||
08/21 22:54:10.361: [gtp] INFO: gtp_server() [127.0.0.6]:2152 (../lib/gtp/path.c:32)
 | 
			
		||||
10/22 10:44:03.217: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/smf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:03.217: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/smf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:03.269: [gtp] INFO: gtp_server() [127.0.0.4]:2123 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:03.269: [gtp] INFO: gtp_server() [::1]:2123 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:03.269: [gtp] INFO: gtp_server() [127.0.0.4]:2152 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:03.269: [gtp] INFO: gtp_server() [::1]:2152 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:03.269: [pfcp] INFO: pfcp_server() [127.0.0.4]:8805 (../lib/pfcp/path.c:30)
 | 
			
		||||
10/22 10:44:03.269: [pfcp] INFO: pfcp_server() [::1]:8805 (../lib/pfcp/path.c:30)
 | 
			
		||||
10/22 10:44:03.269: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.7]:8805 (../lib/pfcp/path.c:61)
 | 
			
		||||
10/22 10:44:03.269: [sbi] INFO: NF Service [nsmf-pdusession] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:03.270: [sbi] INFO: nghttp2_server() [127.0.0.4]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:03.270: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-upfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:54:21.596: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/upf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:54:21.596: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/upf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:54:21.601: [pfcp] INFO: pfcp_server() [127.0.0.7]:8805 (../lib/pfcp/path.c:32)
 | 
			
		||||
08/21 22:54:21.601: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
 | 
			
		||||
08/21 22:54:21.601: [gtp] INFO: gtp_server() [127.0.0.7]:2152 (../lib/gtp/path.c:32)
 | 
			
		||||
08/21 22:54:21.601: [gtp] INFO: gtp_server() [::1]:2152 (../lib/gtp/path.c:32)
 | 
			
		||||
10/22 10:44:06.884: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/upf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:06.884: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/upf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:06.892: [pfcp] INFO: pfcp_server() [127.0.0.7]:8805 (../lib/pfcp/path.c:30)
 | 
			
		||||
10/22 10:44:06.892: [gtp] INFO: gtp_server() [127.0.0.7]:2152 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:06.892: [app] INFO: UPF initialize...done (../src/upf/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-hssd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
$./install/bin/open5gs-ausfd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:57:17.450: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/hss.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:57:17.450: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/hss.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:57:17.451: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
 | 
			
		||||
08/21 22:57:17.519: [app] INFO: HSS initialize...done (../src/hss/app-init.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-pcrfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
 | 
			
		||||
08/21 22:57:45.894: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcrf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:57:45.894: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcrf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:57:45.896: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
 | 
			
		||||
08/21 22:57:45.997: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-nrfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
 | 
			
		||||
08/21 22:56:35.472: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nrf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:56:35.472: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nrf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:56:35.472: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
 | 
			
		||||
08/21 22:56:35.473: [sbi] INFO: sbi_server() [127.0.0.10]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
08/21 22:56:35.473: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:298
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-ausfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
 | 
			
		||||
08/21 22:55:41.899: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/ausf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:55:41.899: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/ausf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:55:41.900: [app] INFO: AUSF initialize...done (../src/ausf/app.c:31)
 | 
			
		||||
08/21 22:55:41.900: [sbi] INFO: sbi_server() [127.0.0.11]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
10/22 10:44:08.747: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/ausf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:08.747: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/ausf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:08.748: [sbi] INFO: NF Service [nausf-auth] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:08.749: [sbi] INFO: nghttp2_server() [127.0.0.11]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:08.749: [app] INFO: AUSF initialize...done (../src/ausf/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-udmd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udm.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udm.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:56:02.155: [app] INFO: UDM initialize...done (../src/udm/app.c:31)
 | 
			
		||||
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
10/22 10:44:10.724: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udm.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:10.724: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udm.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:10.726: [sbi] INFO: NF Service [nudm-ueau] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:10.726: [sbi] INFO: NF Service [nudm-uecm] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:10.726: [sbi] INFO: NF Service [nudm-sdm] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:10.727: [sbi] INFO: nghttp2_server() [127.0.0.12]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:10.727: [app] INFO: UDM initialize...done (../src/udm/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-pcfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
$./install/bin/open5gs-pcfd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:56:02.155: [app] INFO: PCF initialize...done (../src/pcf/app.c:31)
 | 
			
		||||
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
10/22 10:44:14.265: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:14.265: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:14.269: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
 | 
			
		||||
10/22 10:44:14.269: [sbi] INFO: NF Service [npcf-am-policy-control] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:14.269: [sbi] INFO: NF Service [npcf-smpolicycontrol] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:14.269: [sbi] INFO: NF Service [npcf-policyauthorization] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:14.269: [sbi] INFO: nghttp2_server() [127.0.0.13]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:14.269: [app] INFO: PCF initialize...done (../src/pcf/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-nssfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nssfd.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nssfd.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:56:02.155: [app] INFO: NSSF initialize...done (../src/nssfd/app.c:31)
 | 
			
		||||
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
10/22 10:44:16.250: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/nssf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:16.250: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/nssf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:16.252: [sbi] INFO: NF Service [nnssf-nsselection] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:16.252: [sbi] INFO: nghttp2_server() [127.0.0.14]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:16.252: [app] INFO: NSSF initialize...done (../src/nssf/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-bsfd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/bsf.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:56:02.154: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/bsf.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:56:02.155: [app] INFO: BSF initialize...done (../src/bsf/app.c:31)
 | 
			
		||||
08/21 22:56:02.155: [sbi] INFO: sbi_server() [127.0.0.12]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
10/22 10:44:18.836: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/bsf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:18.836: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/bsf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:18.837: [sbi] INFO: NF Service [nbsf-management] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:18.837: [sbi] INFO: nghttp2_server() [127.0.0.15]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:18.837: [app] INFO: BSF initialize...done (../src/bsf/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-udrd
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 22:56:15.810: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udr.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 22:56:15.810: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udr.log' (../src/main.c:57)
 | 
			
		||||
08/21 22:56:15.813: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
 | 
			
		||||
08/21 22:56:15.813: [app] INFO: UDR initialize...done (../src/udr/app.c:31)
 | 
			
		||||
08/21 22:56:15.813: [sbi] INFO: sbi_server() [127.0.0.13]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
10/22 10:44:24.018: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/udr.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:24.018: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/udr.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:24.021: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
 | 
			
		||||
10/22 10:44:24.021: [sbi] INFO: NF Service [nudr-dr] (../lib/sbi/context.c:1401)
 | 
			
		||||
10/22 10:44:24.021: [sbi] INFO: nghttp2_server() [127.0.0.20]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:44:24.021: [app] INFO: UDR initialize...done (../src/udr/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-mmed
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
10/22 10:44:26.011: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:26.011: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/mme.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:26.062: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:26.063: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:60)
 | 
			
		||||
10/22 10:44:26.063: [mme] INFO: s1ap_server() [127.0.0.2]:36412 (../src/mme/s1ap-sctp.c:62)
 | 
			
		||||
10/22 10:44:26.063: [sctp] INFO: MME initialize...done (../src/mme/app-init.c:33)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-sgwcd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
10/22 10:44:29.050: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwc.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:29.050: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwc.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:29.058: [gtp] INFO: gtp_server() [127.0.0.3]:2123 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:29.058: [pfcp] INFO: pfcp_server() [127.0.0.3]:8805 (../lib/pfcp/path.c:30)
 | 
			
		||||
10/22 10:44:29.058: [pfcp] INFO: ogs_pfcp_connect() [127.0.0.6]:8805 (../lib/pfcp/path.c:61)
 | 
			
		||||
10/22 10:44:29.058: [app] INFO: SGW-C initialize...done (../src/sgwc/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-sgwud
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
10/22 10:44:36.178: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/sgwu.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:44:36.178: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/sgwu.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:44:36.185: [pfcp] INFO: pfcp_server() [127.0.0.6]:8805 (../lib/pfcp/path.c:30)
 | 
			
		||||
10/22 10:44:36.185: [gtp] INFO: gtp_server() [127.0.0.6]:2152 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 10:44:36.185: [app] INFO: SGW-U initialize...done (../src/sgwu/app.c:31)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-hssd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
10/22 10:49:22.963: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/hss.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:49:22.963: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/hss.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:49:22.965: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
 | 
			
		||||
10/22 10:49:22.996: [app] INFO: HSS initialize...done (../src/hss/app-init.c:31)
 | 
			
		||||
10/22 10:49:22.997: [diam] INFO: CONNECTED TO 'mme.localdomain' (SCTP,soc#15): (../lib/diameter/common/logger.c:108)
 | 
			
		||||
 | 
			
		||||
$ ./install/bin/open5gs-pcrfd
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
10/22 10:49:26.089: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/pcrf.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:49:26.089: [app] INFO: File Logging: '/home/acetcom/Documents/git/open5gs/install/var/log/open5gs/pcrf.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 10:49:26.091: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:130)
 | 
			
		||||
10/22 10:49:26.124: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
 | 
			
		||||
10/22 10:49:26.125: [diam] INFO: CONNECTED TO 'smf.localdomain' (SCTP,soc#15): (../lib/diameter/common/logger.c:108)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Several command line options are provided.
 | 
			
		||||
@@ -382,7 +418,7 @@ $ ./build/tests/app/app ## Both 5G Core and EPC with ./build/configs/sample.yaml
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt install curl
 | 
			
		||||
$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
 | 
			
		||||
$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
 | 
			
		||||
$ sudo apt install nodejs
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@@ -390,7 +426,7 @@ Install the dependencies to run WebUI
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The WebUI runs as an [npm](https://www.npmjs.com/) script.
 | 
			
		||||
@@ -425,7 +461,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 +504,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}
 | 
			
		||||
 | 
			
		||||
@@ -534,32 +583,37 @@ You can use the command line option[`-d`] to record more logs.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ ./tests/app/app -d
 | 
			
		||||
Open5GS daemon v1.3.0-213-gd190548+
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
08/21 23:01:54.246: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 23:01:54.246: [thread] DEBUG: [0x7f8de4d25018] worker signal (../lib/core/ogs-thread.c:66)
 | 
			
		||||
08/21 23:01:54.246: [thread] DEBUG: [0x7f8de4d25018] thread started (../lib/core/ogs-thread.c:101)
 | 
			
		||||
Open5GS daemon v1.3.0-213-gd190548+
 | 
			
		||||
 | 
			
		||||
08/21 23:01:54.254: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 23:01:54.254: [thread] DEBUG: [0x7ff8d13be818] worker signal (../lib/core/ogs-thread.c:66)
 | 
			
		||||
08/21 23:01:54.254: [nrf] DEBUG: nrf_state_initial(): INIT (../src/nrf/nrf-sm.c:25)
 | 
			
		||||
08/21 23:01:54.254: [nrf] DEBUG: nrf_state_operational(): ENTRY (../src/nrf/nrf-sm.c:50)
 | 
			
		||||
08/21 23:01:54.254: [thread] DEBUG: [0x7ff8d13be818] thread started (../lib/core/ogs-thread.c:101)
 | 
			
		||||
08/21 23:01:54.254: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
 | 
			
		||||
08/21 23:01:54.255: [sbi] INFO: sbi_server() [127.0.0.10]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
08/21 23:01:54.255: [sbi] INFO: sbi_server() [::1]:7777 (../lib/sbi/server.c:298)
 | 
			
		||||
08/21 23:01:54.296: [thread] DEBUG: [0x7f8de4d25098] worker signal (../lib/core/ogs-thread.c:66)
 | 
			
		||||
08/21 23:01:54.296: [thread] DEBUG: [0x7f8de4d25098] thread started (../lib/core/ogs-thread.c:101)
 | 
			
		||||
Open5GS daemon v1.3.0-213-gd190548+
 | 
			
		||||
 | 
			
		||||
08/21 23:01:54.315: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../src/main.c:54)
 | 
			
		||||
08/21 23:01:54.319: [dbi] INFO: MongoDB URI: 'mongodb://localhost/open5gs' (../lib/dbi/ogs-mongoc.c:99)
 | 
			
		||||
08/21 23:01:54.332: [app] INFO: PCRF initialize...done (../src/pcrf/app-init.c:31)
 | 
			
		||||
08/21 23:01:54.347: [thread] DEBUG: [0x7f8de4d25118] worker signal (../lib/core/ogs-thread.c:66)
 | 
			
		||||
08/21 23:01:54.347: [thread] DEBUG: [0x7f8de4d25118] thread started (../lib/core/ogs-thread.c:101)
 | 
			
		||||
Open5GS daemon v1.3.0-213-gd190548+
 | 
			
		||||
10/22 10:59:03.813: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:59:03.813: [thread] DEBUG: [0x55fab86aff40] worker signal (../lib/core/ogs-thread.c:66)
 | 
			
		||||
10/22 10:59:03.813: [thread] DEBUG: [0x55fab86aff40] thread started (../lib/core/ogs-thread.c:101)
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
10/22 10:59:03.818: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/build/configs/sample.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: addr:127.0.0.10, port:7777 (../lib/core/ogs-sockaddr.c:140)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: addr:::1, port:7777 (../lib/core/ogs-sockaddr.c:140)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: addr:127.0.1.10, port:7777 (../lib/core/ogs-sockaddr.c:140)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: socket create(2:1:6) (../lib/core/ogs-socket.c:92)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: Turn on TCP_NODELAY (../lib/core/ogs-sockopt.c:139)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: Turn on SO_REUSEADDR (../lib/core/ogs-sockopt.c:120)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: socket bind 127.0.0.10:7777 (../lib/core/ogs-socket.c:117)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: tcp_server() [127.0.0.10]:7777 (../lib/core/ogs-tcp.c:60)
 | 
			
		||||
10/22 10:59:03.819: [sbi] INFO: nghttp2_server() [127.0.0.10]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: socket create(10:1:6) (../lib/core/ogs-socket.c:92)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: Turn on TCP_NODELAY (../lib/core/ogs-sockopt.c:139)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: Turn on SO_REUSEADDR (../lib/core/ogs-sockopt.c:120)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: socket bind ::1:7777 (../lib/core/ogs-socket.c:117)
 | 
			
		||||
10/22 10:59:03.819: [sock] DEBUG: tcp_server() [::1]:7777 (../lib/core/ogs-tcp.c:60)
 | 
			
		||||
10/22 10:59:03.819: [sbi] INFO: nghttp2_server() [::1]:7777 (../lib/sbi/nghttp2-server.c:150)
 | 
			
		||||
10/22 10:59:03.819: [thread] DEBUG: [0x5601b141e520] worker signal (../lib/core/ogs-thread.c:66)
 | 
			
		||||
10/22 10:59:03.819: [nrf] DEBUG: nrf_state_initial(): INIT (../src/nrf/nrf-sm.c:25)
 | 
			
		||||
10/22 10:59:03.819: [nrf] DEBUG: nrf_state_operational(): ENTRY (../src/nrf/nrf-sm.c:50)
 | 
			
		||||
10/22 10:59:03.819: [thread] DEBUG: [0x5601b141e520] thread started (../lib/core/ogs-thread.c:101)
 | 
			
		||||
10/22 10:59:03.819: [app] INFO: NRF initialize...done (../src/nrf/app.c:31)
 | 
			
		||||
10/22 10:59:03.864: [thread] DEBUG: [0x55fab86d2100] worker signal (../lib/core/ogs-thread.c:66)
 | 
			
		||||
10/22 10:59:03.864: [thread] DEBUG: [0x55fab86d2100] thread started (../lib/core/ogs-thread.c:101)
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 
 | 
			
		||||
@@ -1,372 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
title: Open5GS Splitting Network Functions
 | 
			
		||||
head_inline: "<style> .blue { color: blue; } </style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
In a production network, NFs are usually not on the same machine as the default example that comes with Open5GS.
 | 
			
		||||
 | 
			
		||||
Open5GS is designed to comply with standards, so in theory you can connect core network functions from Open5GS or other vendors to form a functioning network. However, this is only possible if it complies with 3GPP.
 | 
			
		||||
 | 
			
		||||
To demonstrate this, we will cover how to isolate each network function and connect each network function to another. For some interfaces, you can specify multiple interfaces to connect to multiple interfaces.
 | 
			
		||||
 | 
			
		||||
In this example, we are connecting the Open5GS NF together, but instead of the Open5GS network function, you can easily connect them like other vendors' NFs.
 | 
			
		||||
 | 
			
		||||
## 1. Configuring Open5GS (Without other vendors' NFs)
 | 
			
		||||
 | 
			
		||||
_Cloud Authentication and Session Management Server_
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
MongoDB   = 127.0.0.1 (subscriber data) - http://localhost:3000
 | 
			
		||||
MME-s1ap  = 10.10.0.2 :36412 (authVPN) for S1-MME
 | 
			
		||||
MME-gtpc  = 127.0.0.2 :2123 for S11
 | 
			
		||||
MME-frDi  = 127.0.0.2 :3868 for S6a auth
 | 
			
		||||
SGWC-gtpc = 127.0.0.3 :2123 for S11
 | 
			
		||||
SGWC-pfcp = 10.10.0.3 :8805 (authVPN) for Sxa
 | 
			
		||||
SMF-gtpc  = 127.0.0.4 :2123 for S5/8c, N11
 | 
			
		||||
SMF-pfcp  = 10.10.0.4 :8805 (authVPN) for N4
 | 
			
		||||
SMF-frDi  = 127.0.0.4 :3868 for Gx auth
 | 
			
		||||
SMF-sbi   = 127.0.0.4 :7777 for 5G SBI (N7,N10,N11)
 | 
			
		||||
AMF-ngap  = 10.10.0.5 :38412 (authVPN) for N2
 | 
			
		||||
AMF-sbi   = 127.0.0.5 :7777 for 5G SBI (N8,N12,N11)
 | 
			
		||||
HSS-frDi  = 127.0.0.8 :3868 for S6a auth
 | 
			
		||||
PCRF-frDi = 127.0.0.9 :3868 for Gx auth
 | 
			
		||||
NRF-sbi   = 127.0.0.10:7777 for 5G SBI
 | 
			
		||||
AUSF-sbi  = 127.0.0.11:7777 for 5G SBI
 | 
			
		||||
UDM-sbi   = 127.0.0.12:7777 for 5G SBI
 | 
			
		||||
PCF-sbi   = 127.0.0.13:7777 for 5G SBI
 | 
			
		||||
NSSF-sbi   = 127.0.0.14:7777 for 5G SBI
 | 
			
		||||
BSF-sbi   = 127.0.0.15:7777 for 5G SBI
 | 
			
		||||
UDR-sbi   = 127.0.0.20:7777 for 5G SBI
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
_Cloud Userplane Server (to host IMS etc)_
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
SGWU-pfcp = 10.10.0.6 :8805 (authVPN) for Sxa
 | 
			
		||||
SGWU-gtpu = 10.11.0.6 :2152 (userplaneVPN) for S1-U, S5/8u
 | 
			
		||||
UPF-pfcp  = 10.10.0.7 :8805 (authVPN) for N4
 | 
			
		||||
UPF-gtpu  = 10.11.0.7 :2152 (userplaneVPN) for S5/8u, N3
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You can refer to the network settings at
 | 
			
		||||
[{{ site.url }}{{ site.baseurl }}/assets/Open5GS-Diagram.pdf]({{ site.url }}{{ site.baseurl }}/assets/Open5GS-Diagram.pdf) provided by [@kbarlee](https://github.com/kbarlee) in issue [#528](https://github.com/{{ site.github_username }}/open5gs/issues/528)
 | 
			
		||||
{: .notice--danger}
 | 
			
		||||
 | 
			
		||||
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 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
 | 
			
		||||
     s1ap:
 | 
			
		||||
-      addr: 127.0.0.2
 | 
			
		||||
+      addr: 10.10.0.2
 | 
			
		||||
     gtpc:
 | 
			
		||||
       addr: 127.0.0.2
 | 
			
		||||
     gummei: 
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 001
 | 
			
		||||
-        mnc: 01
 | 
			
		||||
+        mcc: 999
 | 
			
		||||
+        mnc: 70
 | 
			
		||||
       mme_gid: 2
 | 
			
		||||
       mme_code: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 001
 | 
			
		||||
-        mnc: 01
 | 
			
		||||
-      tac: 7
 | 
			
		||||
+        mcc: 999
 | 
			
		||||
+        mnc: 70
 | 
			
		||||
+      tac: 1
 | 
			
		||||
     security:
 | 
			
		||||
         integrity_order : [ EIA1, EIA2, EIA0 ]
 | 
			
		||||
         ciphering_order : [ EEA0, EEA1, EEA2 ]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Modify [install/etc/open5gs/sgwc.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/sgwc.yaml.in) to set the PFCP IP address.
 | 
			
		||||
```diff
 | 
			
		||||
$ diff -u /etc/open5gs/sgwc.yaml.old /etc/open5gs/sgwc.yaml
 | 
			
		||||
@@ -49,7 +49,7 @@
 | 
			
		||||
     gtpc:
 | 
			
		||||
       addr: 127.0.0.3
 | 
			
		||||
     pfcp:
 | 
			
		||||
-      addr: 127.0.0.3
 | 
			
		||||
+      addr: 10.10.0.3
 | 
			
		||||
 | 
			
		||||
 #
 | 
			
		||||
 # sgwu:
 | 
			
		||||
@@ -100,7 +100,7 @@
 | 
			
		||||
 #
 | 
			
		||||
 sgwu:
 | 
			
		||||
     pfcp:
 | 
			
		||||
-      addr: 127.0.0.6
 | 
			
		||||
+      addr: 10.10.0.6
 | 
			
		||||
 | 
			
		||||
 #
 | 
			
		||||
 # parameter:
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
@@ -187,8 +187,7 @@
 | 
			
		||||
       - addr: 127.0.0.4
 | 
			
		||||
       - addr: ::1
 | 
			
		||||
     pfcp:
 | 
			
		||||
-      - addr: 127.0.0.4
 | 
			
		||||
-      - addr: ::1
 | 
			
		||||
+      - addr: 10.10.0.4
 | 
			
		||||
     subnet:
 | 
			
		||||
       - addr: 10.45.0.1/16
 | 
			
		||||
       - addr: 2001:db8:cafe::1/48
 | 
			
		||||
@@ -282,7 +281,7 @@
 | 
			
		||||
 #
 | 
			
		||||
 upf:
 | 
			
		||||
     pfcp:
 | 
			
		||||
-      - addr: 127.0.0.7
 | 
			
		||||
+      - addr: 10.10.0.7
 | 
			
		||||
 | 
			
		||||
 #
 | 
			
		||||
 # parameter:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/main/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
 | 
			
		||||
 | 
			
		||||
```diff
 | 
			
		||||
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
 | 
			
		||||
@@ -67,25 +67,25 @@
 | 
			
		||||
       - addr: 127.0.0.5
 | 
			
		||||
         port: 7777
 | 
			
		||||
     ngap:
 | 
			
		||||
-      - addr: 127.0.0.5
 | 
			
		||||
+      - addr: 10.10.0.5
 | 
			
		||||
     guami:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 001
 | 
			
		||||
-          mnc: 01
 | 
			
		||||
+          mcc: 999
 | 
			
		||||
+          mnc: 70
 | 
			
		||||
         amf_id:
 | 
			
		||||
           region: 2
 | 
			
		||||
           set: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 001
 | 
			
		||||
-          mnc: 01
 | 
			
		||||
-        tac: 7
 | 
			
		||||
+          mcc: 999
 | 
			
		||||
+          mnc: 70
 | 
			
		||||
+        tac: 1
 | 
			
		||||
     plmn_support:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 001
 | 
			
		||||
-          mnc: 01
 | 
			
		||||
+          mcc: 999
 | 
			
		||||
+          mnc: 70
 | 
			
		||||
         s_nssai:
 | 
			
		||||
           - sst: 1
 | 
			
		||||
-          - sd: 2
 | 
			
		||||
     security:
 | 
			
		||||
         integrity_order : [ NIA1, NIA2, NIA0 ]
 | 
			
		||||
         ciphering_order : [ NEA0, NEA1, NEA2 ]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
@@ -51,9 +51,9 @@
 | 
			
		||||
 #
 | 
			
		||||
 sgwu:
 | 
			
		||||
     gtpu:
 | 
			
		||||
-      addr: 127.0.0.6
 | 
			
		||||
+      addr: 10.11.0.6
 | 
			
		||||
     pfcp:
 | 
			
		||||
-      addr: 127.0.0.6
 | 
			
		||||
+      addr: 10.10.0.6
 | 
			
		||||
 | 
			
		||||
 #
 | 
			
		||||
 # sgwc:
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
@@ -59,11 +59,9 @@
 | 
			
		||||
 #
 | 
			
		||||
 upf:
 | 
			
		||||
     pfcp:
 | 
			
		||||
-      - addr: 127.0.0.7
 | 
			
		||||
+      - addr: 10.10.0.7
 | 
			
		||||
     gtpu:
 | 
			
		||||
-      - addr:
 | 
			
		||||
-        - 127.0.0.7
 | 
			
		||||
-        - ::1
 | 
			
		||||
+      - addr: 10.11.0.7
 | 
			
		||||
     subnet:
 | 
			
		||||
       - addr: 10.45.0.1/16
 | 
			
		||||
       - addr: 2001:db8:cafe::1/48
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After changing conf files, please restart Open5GS daemons.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo systemctl restart open5gs-mmed.service
 | 
			
		||||
$ sudo systemctl restart open5gs-sgwcd.service
 | 
			
		||||
$ sudo systemctl restart open5gs-smfd.service
 | 
			
		||||
$ sudo systemctl restart open5gs-amfd.service
 | 
			
		||||
$ sudo systemctl restart open5gs-upfd.service
 | 
			
		||||
$ sudo systemctl restart open5gs-sgwud.service
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 2. External SMF
 | 
			
		||||
In it's simplest form the SMF has 4 interfaces:
 | 
			
		||||
 * S5 - Connection to home network SGW-C (GTP-C)
 | 
			
		||||
 * Gx - Connection to PCRF (Diameter)
 | 
			
		||||
 * SBI - Service-based interface(HTTP2)
 | 
			
		||||
 * Sgi - Connection to external network (Generally the Internet via standard TCP/IP)
 | 
			
		||||
 | 
			
		||||
#### S5 Interface Configuration
 | 
			
		||||
Edit ```/etc/open5gs/smf.yaml``` and change the address to IP of the server running the SMF for the listener on GTP-C interfaces.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
smf:
 | 
			
		||||
    freeDiameter: /etc/freeDiameter/smf.conf
 | 
			
		||||
    gtpc: 
 | 
			
		||||
      addr:
 | 
			
		||||
        - 10.0.1.121
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### Gx Interface Configuration
 | 
			
		||||
Edit ```/etc/freeDiameter/smf.conf```
 | 
			
		||||
 | 
			
		||||
Update ```ListenOn``` address to IP of the server running the SMF:
 | 
			
		||||
 | 
			
		||||
``` ListenOn = "10.0.1.121"; ``` 
 | 
			
		||||
 | 
			
		||||
Update ConnectPeer to connect to the PCRF on it's IP.
 | 
			
		||||
 | 
			
		||||
```ConnectPeer = "pcrf.localdomain" { ConnectTo = "10.0.1.123"; No_TLS; };```
 | 
			
		||||
 | 
			
		||||
#### Restart Services
 | 
			
		||||
Restart Open5GS SMF Daemon:
 | 
			
		||||
 | 
			
		||||
``` $ sudo systemctl restart open5gs-smfd.service ```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 3. External SGW-C
 | 
			
		||||
In it's simplest form the SGW-C has 2 interfaces:
 | 
			
		||||
 * S11 - Connection to MME (GTP-C)
 | 
			
		||||
 * S5 - Connection to the home network SMF (GTP-C)
 | 
			
		||||
 | 
			
		||||
#### S5 Interface Configuration
 | 
			
		||||
Edit ```/etc/open5gs/sgwc.yaml``` and change the address to IP of the server running the SGW-C for the listener on GTP-C interface.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
sgwc:
 | 
			
		||||
    gtpc: 
 | 
			
		||||
      addr:
 | 
			
		||||
        - 10.0.1.122
 | 
			
		||||
```
 | 
			
		||||
 
 | 
			
		||||
 Restart Open5GS SGW-C Daemon:
 | 
			
		||||
 | 
			
		||||
``` $ sudo systemctl restart open5gs-sgwcd.service ```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 4. External PCRF
 | 
			
		||||
In it's simplest from the PCRF has 1 network interface:
 | 
			
		||||
 * Gx - Connection to SMF (Diameter)
 | 
			
		||||
 | 
			
		||||
#### Gx Interface Configuration
 | 
			
		||||
Edit ```/etc/freeDiameter/pcrf.conf```
 | 
			
		||||
 | 
			
		||||
Update ```ListenOn``` address to IP of the server running the HSS on it's IP:
 | 
			
		||||
 | 
			
		||||
``` ListenOn = "10.0.1.123"; ``` 
 | 
			
		||||
 | 
			
		||||
Update ConnectPeer to connect to the MME.
 | 
			
		||||
 | 
			
		||||
```ConnectPeer = "smf.localdomain" { ConnectTo = "10.0.1.121"; No_TLS; };```
 | 
			
		||||
 | 
			
		||||
#### MongoDB Interface Configuration
 | 
			
		||||
Edit the ```db_uri:``` to point at the Open5GS: ```db_uri: mongodb://10.0.1.118/open5gs``` 
 | 
			
		||||
 | 
			
		||||
Restart Open5GS PCRF Daemon:
 | 
			
		||||
 | 
			
		||||
``` $ sudo systemctl restart open5gs-pcrfd.service ```
 | 
			
		||||
 | 
			
		||||
## 5. External HSS
 | 
			
		||||
In it's simplest form the HSS has 1 network interface:
 | 
			
		||||
 * S6a - Connection to MME (Diameter)
 | 
			
		||||
 | 
			
		||||
#### S6a Interface Configuration
 | 
			
		||||
Edit ```/etc/freeDiameter/hss.conf```
 | 
			
		||||
 | 
			
		||||
Update ```ListenOn``` address to IP of the server running the HSS on it's IP:
 | 
			
		||||
 | 
			
		||||
``` ListenOn = "10.0.1.118"; ``` 
 | 
			
		||||
 | 
			
		||||
Update ConnectPeer to connect to the MME.
 | 
			
		||||
 | 
			
		||||
```ConnectPeer = "mme.localdomain" { ConnectTo = "10.0.1.124"; No_TLS; };```
 | 
			
		||||
 | 
			
		||||
Restart Open5GS HSS Daemon:
 | 
			
		||||
 | 
			
		||||
``` $ sudo systemctl restart open5gs-hssd.service ```
 | 
			
		||||
 | 
			
		||||
#### MongoDB Interface Configuration (Open5GS specific)
 | 
			
		||||
If you are using Open5GS's HSS you may need to enable MongoDB access from the PCRF. This is done by editing ''/etc/mongodb.conf'' and changing the bind IP to:
 | 
			
		||||
``` bind_ip = 0.0.0.0 ```
 | 
			
		||||
 | 
			
		||||
Restart MongoDB for changes to take effect.
 | 
			
		||||
 | 
			
		||||
``` $ /etc/init.d/mongodb restart ```
 | 
			
		||||
 | 
			
		||||
## 6. External MME
 | 
			
		||||
In it's simplest form the MME has 3 interfaces:
 | 
			
		||||
 * S1AP - Connections from eNodeBs
 | 
			
		||||
 * S6a - Connection to HSS (Diameter)
 | 
			
		||||
 * S11 - Connection to SGW-C (GTP-C)
 | 
			
		||||
 
 | 
			
		||||
#### S11 Interface Configuration
 | 
			
		||||
Edit ```/etc/open5gs/mme.yaml``` and filling the IP address of the SGW-C and SMF servers.
 | 
			
		||||
```
 | 
			
		||||
sgwc:
 | 
			
		||||
    gtpc:
 | 
			
		||||
      addr: 10.0.1.122
 | 
			
		||||
 | 
			
		||||
smf:
 | 
			
		||||
    gtpc:
 | 
			
		||||
      addr:
 | 
			
		||||
        - 10.0.1.121
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### S6a Interface Configuration
 | 
			
		||||
Edit ```/etc/freeDiameter/mme.conf```
 | 
			
		||||
 | 
			
		||||
Update ```ListenOn``` address to IP of the server running the MME:
 | 
			
		||||
 | 
			
		||||
``` ListenOn = "10.0.1.124"; ``` 
 | 
			
		||||
 | 
			
		||||
Update ConnectPeer to connect to the PCRF on it's IP.
 | 
			
		||||
 | 
			
		||||
```ConnectPeer = "hss.localdomain" { ConnectTo = "10.0.1.118"; No_TLS; };```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### Restart Services
 | 
			
		||||
Restart Open5GS MME Daemon:
 | 
			
		||||
 | 
			
		||||
``` $ sudo systemctl restart open5gs-mmed.service ```
 | 
			
		||||
@@ -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
 | 
			
		||||
---
 | 
			
		||||
 
 | 
			
		||||
@@ -328,9 +328,10 @@ $ cd build
 | 
			
		||||
$ ninja install
 | 
			
		||||
$ cd ../
 | 
			
		||||
$ ls install/bin
 | 
			
		||||
open5gs-amfd   open5gs-hssd  open5gs-nrfd   open5gs-sgwcd  open5gs-smfd  open5gs-udrd
 | 
			
		||||
open5gs-ausfd  open5gs-mmed  open5gs-pcrfd  open5gs-sgwud  open5gs-udmd  open5gs-pcfd
 | 
			
		||||
open5gs-upfd   open5gs-nssfd open5gs-bsfd
 | 
			
		||||
open5gs-amfd   open5gs-mmed   open5gs-pcrfd  open5gs-smfd
 | 
			
		||||
open5gs-ausfd  open5gs-nrfd   open5gs-scpd   open5gs-udmd
 | 
			
		||||
open5gs-bsfd   open5gs-nssfd  open5gs-sgwcd  open5gs-udrd
 | 
			
		||||
open5gs-hssd   open5gs-pcfd   open5gs-sgwud  open5gs-upfd
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Building WebUI of Open5GS
 | 
			
		||||
@@ -347,7 +348,7 @@ Install the dependencies to run WebUI
 | 
			
		||||
```bash
 | 
			
		||||
$ cd ~/open5gs
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The WebUI runs as an [npm](https://www.npmjs.com/) script.
 | 
			
		||||
 
 | 
			
		||||
@@ -127,7 +127,7 @@ Install the dependencies to run WebUI
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The WebUI runs as an [npm](https://www.npmjs.com/) script.
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -163,7 +164,7 @@ Install the dependencies to run WebUI
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The WebUI runs as an [npm](https://www.npmjs.com/) script.
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -161,7 +162,7 @@ Install the dependencies to run WebUI
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The WebUI runs as an [npm](https://www.npmjs.com/) script.
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -206,7 +207,7 @@ Install the dependencies to run WebUI
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The WebUI runs as an [npm](https://www.npmjs.com/) script.
 | 
			
		||||
 
 | 
			
		||||
@@ -105,7 +105,7 @@ Install the dependencies to run WebUI
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The WebUI runs as an [npm](https://www.npmjs.com/) script.
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ open5gs  26934  0.0  0.0 707472 12732 ?        Ssl  12:13   0:00 /usr/bin/open5g
 | 
			
		||||
open5gs  27244  0.2  0.0 2861424 13584 ?       Ssl  12:13   0:00 /usr/bin/open5gs-hssd -c /etc/open5gs/hss.yaml
 | 
			
		||||
open5gs  27366  0.0  0.0 2890772 14380 ?       Ssl  12:13   0:00 /usr/bin/open5gs-pcrfd -c /etc/open5gs/pcrf.yaml
 | 
			
		||||
open5gs  27485  0.0  0.0 243816 15064 ?        Ssl  12:13   0:00 /usr/bin/open5gs-nrfd -c /etc/open5gs/nrf.yaml
 | 
			
		||||
open5gs  27485  0.0  0.0 243916 13064 ?        Ssl  12:13   0:00 /usr/bin/open5gs-scpd -c /etc/open5gs/scp.yaml
 | 
			
		||||
open5gs  27543  0.0  0.0 222416  9672 ?        Ssl  12:13   0:00 /usr/bin/open5gs-ausfd -c /etc/open5gs/ausf.yaml
 | 
			
		||||
open5gs  27600  0.0  0.0 222328  9668 ?        Ssl  12:13   0:00 /usr/bin/open5gs-udmd -c /etc/open5gs/udm.yaml
 | 
			
		||||
open5gs  27600  0.0  0.0 222329  9669 ?        Ssl  12:13   0:00 /usr/bin/open5gs-pcfd -c /etc/open5gs/pcf.yaml
 | 
			
		||||
@@ -29,7 +30,7 @@ open5gs  27600  0.0  0.0 222329  9669 ?        Ssl  12:13   0:00 /usr/bin/open5g
 | 
			
		||||
open5gs  27697  0.0  0.0 243976 13716 ?        Ssl  12:13   0:00 /usr/bin/open5gs-udrd -c /etc/open5gs/udr.yaml
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You should see each of the above services, MME, SGW-C, SMF, AMF, SGW-U, UPF, HSS, PCRF, NRF, AUSF, UDM, PCF, NSSF, BSF & UDR are all running.
 | 
			
		||||
You should see each of the above services, MME, SGW-C, SMF, AMF, SGW-U, UPF, HSS, PCRF, NRF, SCP, AUSF, UDM, PCF, NSSF, BSF & UDR are all running.
 | 
			
		||||
 | 
			
		||||
If your instance doesn't show this make sure you're started each service:
 | 
			
		||||
```bash
 | 
			
		||||
@@ -42,6 +43,7 @@ $ systemctl start open5gs-upfd.service
 | 
			
		||||
$ systemctl start open5gs-hssd.service
 | 
			
		||||
$ systemctl start open5gs-pcrfd.service
 | 
			
		||||
$ systemctl start open5gs-nrfd.service
 | 
			
		||||
$ systemctl start open5gs-scpd.service
 | 
			
		||||
$ systemctl start open5gs-ausfd.service
 | 
			
		||||
$ systemctl start open5gs-udmd.service
 | 
			
		||||
$ systemctl start open5gs-pcfd.service
 | 
			
		||||
@@ -55,14 +57,15 @@ $ systemctl start open5gs-udrd.service
 | 
			
		||||
If a service isn't running check the log for that service - logs for each service live in */var/log/open5gs/* where each service logs to it's own file - MME logs in mme.log, AMF logs in amf.log, and so on. 
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cat /var/log/open5gs/mme.log
 | 
			
		||||
Open5GS daemon v1.0.0
 | 
			
		||||
$ cat a.log
 | 
			
		||||
Open5GS daemon v2.4.11-100-gbea24d7
 | 
			
		||||
 | 
			
		||||
[app] INFO: Configuration: '/etc/open5gs/mme.yaml' (../src/main.c:54)
 | 
			
		||||
[app] INFO: File Logging: '/var/log/open5gs/mme.log' (../src/main.c:57)
 | 
			
		||||
[mme] ERROR: No sgwc.gtpc in '/etc/open5gs/mme.yaml' (../src/mme/mme-context.c:192)
 | 
			
		||||
[app] ERROR: Failed to intialize MME (../src/mme/app-init.c:30)
 | 
			
		||||
[app] FATAL: Open5GS initialization failed. Aborted (../src/main.c:222)
 | 
			
		||||
10/22 11:05:40.032: [app] INFO: Configuration: '/home/acetcom/Documents/git/open5gs/install/etc/open5gs/mme.yaml' (../lib/app/ogs-init.c:126)
 | 
			
		||||
10/22 11:05:40.032: [app] INFO: File Logging: 'a.log' (../lib/app/ogs-init.c:129)
 | 
			
		||||
10/22 11:05:40.094: [gtp] INFO: gtp_server() [127.0.0.2]:2123 (../lib/gtp/path.c:30)
 | 
			
		||||
10/22 11:05:40.094: [gtp] INFO: gtp_connect() [127.0.0.3]:2123 (../lib/gtp/path.c:60)
 | 
			
		||||
10/22 11:05:40.094: [mme] INFO: s1ap_server() [127.0.0.2]:36412 (../src/mme/s1ap-sctp.c:62)
 | 
			
		||||
10/22 11:05:40.094: [sctp] INFO: MME initialize...done (../src/mme/app-init.c:33)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Or, you can use `journalctl` like below to view live log.
 | 
			
		||||
@@ -176,16 +179,16 @@ 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:
 | 
			
		||||
     file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log
 | 
			
		||||
     file: @localstatedir@/log/open5gs/amf.log
 | 
			
		||||
+    level: debug
 | 
			
		||||
 | 
			
		||||
 #
 | 
			
		||||
 # amf:
 | 
			
		||||
 #
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
After changing conf files, please restart Open5GS daemons.
 | 
			
		||||
 
 | 
			
		||||
@@ -92,114 +92,114 @@ home/open5gs/install/lib/x86_64-linux-gnu/libfdcore.so.7(+0x67c3c) [0x7f3b715f9c
 | 
			
		||||
At this time, you need to check the DB schema is in the form below by using the command the below.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ mongo
 | 
			
		||||
$ mongosh
 | 
			
		||||
> use open5gs
 | 
			
		||||
> db.subscribers.find().pretty()
 | 
			
		||||
{
 | 
			
		||||
	"_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
 | 
			
		||||
    "_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
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If you see below, you are using the old format DB schema.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ mongo
 | 
			
		||||
$ mongosh
 | 
			
		||||
> use open5gs
 | 
			
		||||
> db.subscribers.find().pretty()
 | 
			
		||||
{
 | 
			
		||||
	"_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
 | 
			
		||||
    "_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
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@@ -207,7 +207,7 @@ If you are using old format DB schema, please perform the following step.
 | 
			
		||||
 | 
			
		||||
1. First of all, it is recommended to use the following command to remove all existing subscription DB.
 | 
			
		||||
```
 | 
			
		||||
$ mongo
 | 
			
		||||
$ mongosh
 | 
			
		||||
> use open5gs
 | 
			
		||||
switched to db open5gs
 | 
			
		||||
> db.subscribers.drop()
 | 
			
		||||
@@ -221,17 +221,17 @@ $ curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
 | 
			
		||||
4. Log in to the new WebUI and add new subscriber information using your web browser.
 | 
			
		||||
5. Make sure it is a new DB schema as below:
 | 
			
		||||
```
 | 
			
		||||
$ mongo
 | 
			
		||||
$ mongosh
 | 
			
		||||
> use open5gs
 | 
			
		||||
> db.subscribers.find().pretty()
 | 
			
		||||
{
 | 
			
		||||
...
 | 
			
		||||
	"slice" : [
 | 
			
		||||
		{
 | 
			
		||||
			"sst" : 1,
 | 
			
		||||
			"default_indicator" : true,
 | 
			
		||||
			"_id" : ObjectId("60969fe7de8743b3c7b1a973"),
 | 
			
		||||
			"session" : [
 | 
			
		||||
    "slice" : [
 | 
			
		||||
        {
 | 
			
		||||
            "sst" : 1,
 | 
			
		||||
            "default_indicator" : true,
 | 
			
		||||
            "_id" : ObjectId("60969fe7de8743b3c7b1a973"),
 | 
			
		||||
            "session" : [
 | 
			
		||||
...
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
@@ -256,7 +256,7 @@ This is a test program bug and has not yet been resolved.
 | 
			
		||||
 | 
			
		||||
To restart the test program, first remove all subscriber information using MongoDB Client
 | 
			
		||||
```
 | 
			
		||||
$ mongo
 | 
			
		||||
$ mongosh
 | 
			
		||||
> use open5gs
 | 
			
		||||
switched to db open5gs
 | 
			
		||||
> db.subscribers.find()  ### Check the test subscriber
 | 
			
		||||
@@ -276,6 +276,7 @@ $ sudo pkill -9 open5gs-upfd
 | 
			
		||||
$ sudo pkill -9 open5gs-hssd
 | 
			
		||||
$ sudo pkill -9 open5gs-pcrfd
 | 
			
		||||
$ sudo pkill -9 open5gs-nrfd
 | 
			
		||||
$ sudo pkill -9 open5gs-scpd
 | 
			
		||||
$ sudo pkill -9 open5gs-ausfd
 | 
			
		||||
$ sudo pkill -9 open5gs-udmd
 | 
			
		||||
$ sudo pkill -9 open5gs-pcfd
 | 
			
		||||
@@ -312,7 +313,7 @@ $ diff --git a/configs/open5gs/amf.yaml.in b/configs/open5gs/amf.yaml.in
 | 
			
		||||
index 7e939e81..dfe4456d 100644
 | 
			
		||||
--- a/configs/open5gs/amf.yaml.in
 | 
			
		||||
+++ b/configs/open5gs/amf.yaml.in
 | 
			
		||||
@@ -199,6 +199,12 @@ amf:
 | 
			
		||||
@@ -315,6 +315,12 @@ amf:
 | 
			
		||||
           mnc: 70
 | 
			
		||||
         s_nssai:
 | 
			
		||||
           - sst: 1
 | 
			
		||||
@@ -332,9 +333,9 @@ $ diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in
 | 
			
		||||
index d45aa60f..701ee533 100644
 | 
			
		||||
--- a/configs/open5gs/smf.yaml.in
 | 
			
		||||
+++ b/configs/open5gs/smf.yaml.in
 | 
			
		||||
@@ -317,6 +317,11 @@ logger:
 | 
			
		||||
 # 
 | 
			
		||||
 
 | 
			
		||||
@@ -442,6 +442,11 @@ logger:
 | 
			
		||||
 #
 | 
			
		||||
 | 
			
		||||
 smf:
 | 
			
		||||
+    info:
 | 
			
		||||
+      - s_nssai:
 | 
			
		||||
@@ -351,7 +352,7 @@ $ diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in
 | 
			
		||||
index d45aa60f..949da220 100644
 | 
			
		||||
--- a/configs/open5gs/smf.yaml.in
 | 
			
		||||
+++ b/configs/open5gs/smf.yaml.in
 | 
			
		||||
@@ -317,6 +317,12 @@ logger:
 | 
			
		||||
@@ -442,6 +442,12 @@ logger:
 | 
			
		||||
 #
 | 
			
		||||
 | 
			
		||||
 smf:
 | 
			
		||||
@@ -370,7 +371,7 @@ $ diff --git a/configs/open5gs/nssf.yaml.in b/configs/open5gs/nssf.yaml.in
 | 
			
		||||
index ecd4f7e2..04d9c4ba 100644
 | 
			
		||||
--- a/configs/open5gs/nssf.yaml.in
 | 
			
		||||
+++ b/configs/open5gs/nssf.yaml.in
 | 
			
		||||
@@ -119,6 +119,11 @@ nssf:
 | 
			
		||||
@@ -201,6 +201,12 @@ nssf:
 | 
			
		||||
         port: 7777
 | 
			
		||||
         s_nssai:
 | 
			
		||||
           sst: 1
 | 
			
		||||
@@ -379,9 +380,10 @@ index ecd4f7e2..04d9c4ba 100644
 | 
			
		||||
+        s_nssai:
 | 
			
		||||
+          sst: 1
 | 
			
		||||
+          sd: 000080
 | 
			
		||||
 
 | 
			
		||||
+
 | 
			
		||||
 | 
			
		||||
 #
 | 
			
		||||
 # nrf:
 | 
			
		||||
 # scp:
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then add a slice to MongoDB's subscriber info.
 | 
			
		||||
@@ -409,6 +411,7 @@ And the process below is only used in 5G, so there is no need to run it.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ open5gs-nrfd
 | 
			
		||||
$ open5gs-scpd
 | 
			
		||||
$ open5gs-amfd
 | 
			
		||||
$ open5gs-ausfd
 | 
			
		||||
$ open5gs-udmd
 | 
			
		||||
@@ -476,8 +479,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,11 +504,11 @@ 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
 | 
			
		||||
@@ -190,7 +190,7 @@
 | 
			
		||||
       - addr: 127.0.0.4
 | 
			
		||||
       - addr: ::1
 | 
			
		||||
--- smf.yaml    2020-09-17 09:31:16.547882093 -0400
 | 
			
		||||
+++ smf.yaml.new    2020-09-17 09:32:18.267726844 -0400
 | 
			
		||||
@@ -458,7 +458,7 @@ smf:
 | 
			
		||||
         addr: 127.0.0.4
 | 
			
		||||
         port: 9090
 | 
			
		||||
     subnet:
 | 
			
		||||
-      - addr: 10.45.0.1/16
 | 
			
		||||
+      - addr: 10.46.0.1/16
 | 
			
		||||
@@ -516,9 +519,9 @@ $ 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
 | 
			
		||||
@@ -139,7 +139,7 @@
 | 
			
		||||
--- upf.yaml    2020-09-17 09:31:16.547882093 -0400
 | 
			
		||||
+++ upf.yaml.new    2020-09-17 09:32:25.199619989 -0400
 | 
			
		||||
@@ -170,7 +170,7 @@ upf:
 | 
			
		||||
     gtpu:
 | 
			
		||||
       - addr: 127.0.0.7
 | 
			
		||||
     subnet:
 | 
			
		||||
@@ -596,7 +599,7 @@ Please make sure that MongoDB server daemon is running.
 | 
			
		||||
 | 
			
		||||
Then, remove all subscriber information using MongoDB Client
 | 
			
		||||
```
 | 
			
		||||
$ mongo
 | 
			
		||||
$ mongosh
 | 
			
		||||
> use open5gs
 | 
			
		||||
switched to db open5gs
 | 
			
		||||
> db.subscribers.find()  ### Check the test subscriber
 | 
			
		||||
@@ -616,6 +619,7 @@ $ sudo pkill -9 open5gs-upfd
 | 
			
		||||
$ sudo pkill -9 open5gs-hssd
 | 
			
		||||
$ sudo pkill -9 open5gs-pcrfd
 | 
			
		||||
$ sudo pkill -9 open5gs-nrfd
 | 
			
		||||
$ sudo pkill -9 open5gs-scpd
 | 
			
		||||
$ sudo pkill -9 open5gs-ausfd
 | 
			
		||||
$ sudo pkill -9 open5gs-udmd
 | 
			
		||||
$ sudo pkill -9 open5gs-pcfd
 | 
			
		||||
@@ -766,8 +770,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
 | 
			
		||||
@@ -998,7 +1002,7 @@ attach_test         : -Line 134: Condition is false, but expected true
 | 
			
		||||
 | 
			
		||||
Remove all subscriber information using MongoDB Client
 | 
			
		||||
```
 | 
			
		||||
$ mongo
 | 
			
		||||
$ mongosh
 | 
			
		||||
> db.subscribers.find()  ### Check the test subscriber
 | 
			
		||||
> db.subscribers.drop()  ### Remove all subscriber
 | 
			
		||||
> db.subscribers.find()  ### Check that all subscribers are empty
 | 
			
		||||
@@ -1077,6 +1081,7 @@ Currently, the number of UE is limited to `128*128`.
 | 
			
		||||
* HSS : 127.0.0.8
 | 
			
		||||
* PCRF : 127.0.0.9
 | 
			
		||||
* NRF : 127.0.0.10
 | 
			
		||||
* SCP : 127.0.1.10
 | 
			
		||||
* AUSF : 127.0.0.11
 | 
			
		||||
* UDM : 127.0.0.12
 | 
			
		||||
* PCF : 127.0.0.13
 | 
			
		||||
@@ -1273,10 +1278,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)
 | 
			
		||||
...
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -156,9 +156,20 @@ $ make test
 | 
			
		||||
 | 
			
		||||
#### 3. Open5GS
 | 
			
		||||
 | 
			
		||||
Install the MongoDB packages.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The Open5GS package is available on the recent versions of *Ubuntu*.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
# Install the MongoDB Packages
 | 
			
		||||
$ wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
 | 
			
		||||
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
$ sudo apt install mongodb-org
 | 
			
		||||
 | 
			
		||||
# Getting the authentication key
 | 
			
		||||
$ sudo apt install wget
 | 
			
		||||
$ wget https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_20.04/Release.key
 | 
			
		||||
@@ -173,7 +184,7 @@ $ sudo apt install open5gs
 | 
			
		||||
The following shows how to install the Web UI of Open5GS.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
 | 
			
		||||
$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
 | 
			
		||||
$ sudo apt install nodejs
 | 
			
		||||
$ curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
 | 
			
		||||
```
 | 
			
		||||
@@ -190,7 +201,7 @@ Title : sysmocom SIM Card Details / AM93\PICK\00859
 | 
			
		||||
 | 
			
		||||
IMSI    ICCID   ACC PIN1    PUK1    PIN2    PUK2    Ki  OPC ADM1    KIC1    KID1    KIK1
 | 
			
		||||
...
 | 
			
		||||
999700000017408	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.
 | 
			
		||||
@@ -222,20 +233,24 @@ 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
 | 
			
		||||
@@ -208,20 +208,20 @@
 | 
			
		||||
 mme:
 | 
			
		||||
     freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
 | 
			
		||||
--- mme.yaml    2020-09-05 20:52:28.648235143 -0400
 | 
			
		||||
+++ mme.yaml.new    2020-09-05 20:56:05.434484208 -0400
 | 
			
		||||
@@ -253,20 +253,20 @@ mme:
 | 
			
		||||
     s1ap:
 | 
			
		||||
-      addr: 127.0.0.2
 | 
			
		||||
+      addr: 127.0.1.2
 | 
			
		||||
-      - addr: 127.0.0.2
 | 
			
		||||
+      - addr: 10.10.0.2
 | 
			
		||||
     gtpc:
 | 
			
		||||
       - addr: 127.0.0.2
 | 
			
		||||
     metrics:
 | 
			
		||||
       addr: 127.0.0.2
 | 
			
		||||
       port: 9090
 | 
			
		||||
     gummei:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
@@ -248,28 +263,26 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
-      tac: 1
 | 
			
		||||
+        mcc: 310
 | 
			
		||||
+        mnc: 789
 | 
			
		||||
+      tac: 2
 | 
			
		||||
       tac: 1
 | 
			
		||||
     security:
 | 
			
		||||
         integrity_order : [ EIA1, EIA2, EIA0 ]
 | 
			
		||||
         ciphering_order : [ EEA0, EEA1, EEA2 ]
 | 
			
		||||
         integrity_order : [ EIA2, EIA1, EIA0 ]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
@@ -82,7 +82,7 @@
 | 
			
		||||
--- sgwu.yaml    2020-09-05 20:50:39.393022566 -0400
 | 
			
		||||
+++ sgwu.yaml.new    2020-09-05 20:51:06.667838823 -0400
 | 
			
		||||
@@ -98,7 +98,7 @@ logger:
 | 
			
		||||
 #
 | 
			
		||||
 sgwu:
 | 
			
		||||
     gtpu:
 | 
			
		||||
-      addr: 10.11.0.6
 | 
			
		||||
+      addr: 127.0.0.6
 | 
			
		||||
     pfcp:
 | 
			
		||||
       addr: 127.0.0.6
 | 
			
		||||
-      - addr: 10.11.0.6
 | 
			
		||||
+      - addr: 127.0.0.6
 | 
			
		||||
     gtpu:
 | 
			
		||||
       - addr: 127.0.0.6
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -335,8 +348,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 +385,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 +419,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 }}
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,11 @@ head_inline: "<style> ul { padding-bottom: 1em; } </style>"
 | 
			
		||||
  - [Dockerized VoLTE Setup](tutorial/03-VoLTE-dockerized)
 | 
			
		||||
  - [Metrics with Prometheus](tutorial/04-metrics-prometheus)
 | 
			
		||||
 | 
			
		||||
- Inside Source Code
 | 
			
		||||
  - [Detailed Architecture of Open5GS](https://chowdera.com/2022/151/202205312246348316.html)
 | 
			
		||||
  - [UPF Code Explanation](https://medium.com/@aditya.koranga/open5gs-upf-code-explanation-with-flow-c-79c50f253dd1)
 | 
			
		||||
  - [SMF Code Explanation](https://medium.com/@aditya.koranga/open5gs-smf-code-explanation-with-flow-charts-a3b3cd38c991)
 | 
			
		||||
 | 
			
		||||
- Troubleshooting
 | 
			
		||||
  - [Simple Issues](troubleshoot/01-simple-issues)
 | 
			
		||||
  - [Now in Github Issues](troubleshoot/02-now-in-github-issues)
 | 
			
		||||
@@ -37,14 +42,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.
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ true
 | 
			
		||||
$ git checkout v2.1.7
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You should log out
 | 
			
		||||
@@ -60,7 +60,7 @@ $ npm run dev
 | 
			
		||||
$ git checkout main
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You can log back in
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ true
 | 
			
		||||
$ git checkout v2.1.7
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You should log out
 | 
			
		||||
@@ -54,7 +54,7 @@ $ npm run dev
 | 
			
		||||
$ git checkout main
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You can log back in
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ true
 | 
			
		||||
$ git checkout v2.1.7
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You should log out
 | 
			
		||||
@@ -50,7 +50,7 @@ $ npm run dev
 | 
			
		||||
$ git checkout main
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You can log back in
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,7 @@ true
 | 
			
		||||
$ git checkout v2.1.7
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You should log out
 | 
			
		||||
@@ -44,7 +44,7 @@ $ npm run dev
 | 
			
		||||
$ git checkout main
 | 
			
		||||
$ cd webui
 | 
			
		||||
$ rm -Rf ./node_modules
 | 
			
		||||
$ npm ci --no-optional
 | 
			
		||||
$ npm ci
 | 
			
		||||
$ npm run dev
 | 
			
		||||
 | 
			
		||||
## You can log back in
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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}
 | 
			
		||||
							
								
								
									
										99
									
								
								docs/_posts/2022-11-18-release-v2.5.6.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								docs/_posts/2022-11-18-release-v2.5.6.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.5.6 - SCP for Indirect Communication"
 | 
			
		||||
date: 2022-11-18 22:59:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
  - News
 | 
			
		||||
  - Release
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### New Feature
 | 
			
		||||
 | 
			
		||||
SCP(Service Communication Proxy) is added to support Indirect Communication based on TS29.500. The default Open5GS configuration is provided as an indirect communication using SCP.
 | 
			
		||||
 | 
			
		||||
- [amf.yaml] If NFs are configured to use Delegated Discovery through the SCP, you do not need to set up NRF.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
amf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.1.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
#nrf:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 127.0.0.10
 | 
			
		||||
#          - ::1
 | 
			
		||||
#        port: 7777
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- [scp.yaml] NRF is needed for Delegated Discovery in SCP configuration.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.1.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# next_scp:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.1.11
 | 
			
		||||
#      port: 7777
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- [nrf.yaml] If there is an SCP in the NRF configuration, a notification(nnrf-nfm/nf-status-notify) is sent through an indirect communication.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      addr:
 | 
			
		||||
        - 127.0.0.10
 | 
			
		||||
        - ::1
 | 
			
		||||
      port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.1.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### Enhancements
 | 
			
		||||
- [WebUI/DB] Fixed the WebUI to Support MongoDB 6.0 ([#1824](https://github.com/open5gs/open5gs/issues/1824)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [NAS] Discard NAS message if integrity is failed ([#1848](https://github.com/open5gs/open5gs/pull/1848)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
 | 
			
		||||
- [AMF] Support REREGISTRATION_REQUIRED in dereg notify ([#1858](https://github.com/open5gs/open5gs/pull/1858)) -- [mitmitmitm](https://github.com/mitmitmitm)
 | 
			
		||||
- [SMF] Support Security Indication IE for 5G-SA UP integrity and confidentiality([#1851](https://github.com/open5gs/open5gs/discussions/1851)) -- [irazairspan](https://github.com/irazairspan)
 | 
			
		||||
- [DBI] Disable Changes Streams with mongo Version ([#1833](https://github.com/open5gs/open5gs/pull/1833)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
 | 
			
		||||
- [SBI] Added 3gpp-Sbi-Sender-Timestamp and 3gpp-Sbi-Max-Rsp-Time -- [7c8722d](https://github.com/open5gs/open5gs/commit/7c8722d9d4d2db13d889be1e5e37bc062f069396)
 | 
			
		||||
- [MME] Cancel Location while Idle ([#1797](https://github.com/open5gs/open5gs/pull/1797)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
 | 
			
		||||
- [MME] Support for Insert Subscriber Data ([#1794](https://github.com/open5gs/open5gs/pull/1794)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [AMD] Added implicit_unsubscribe field to SDMSubscription ([#1884](https://github.com/open5gs/open5gs/pull/1884)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [SMF] Fixed PTI when PDU Session Reject -- [ddf09f2](https://github.com/open5gs/open5gs/commit/ddf09f270aaaaae67ac9ec1c157b4b28f1c90d10)
 | 
			
		||||
- [SBI] Do not send empty arrays in NRF/PCF ([#1876](https://github.com/open5gs/open5gs/pull/1876)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [SGW-C] Fixed the bug of SGW-C session deletion ([#1825](https://github.com/open5gs/open5gs/pull/1825)) -- [dai9000](https://github.com/dai9000), [cmmacneill53](https://github.com/cmmacneill53)
 | 
			
		||||
- [AMF] Reject registration requests when pool for UE context is empty ([#1828](https://github.com/open5gs/open5gs/pull/1828)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [AMF] Increase size of TMSI pool ([#1827](https://github.com/open5gs/open5gs/pull/1827)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [AMF/UDM] Added support to subscribe to SDM changes ([#1820](https://github.com/open5gs/open5gs/pull/1820)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [PFCP] Do not check qos_flow in PFCP Report message ([#1819](https://github.com/open5gs/open5gs/pull/1819)) -- [ssafaorhan](https://github.com/ssafaorhan)
 | 
			
		||||
- [PFCP] Fixed invalid message of Dropped DL Traffic threshold ([#1817](https://github.com/open5gs/open5gs/pull/1817)) -- [ssafaorhan](https://github.com/ssafaorhan)
 | 
			
		||||
 | 
			
		||||
Download -- [v2.5.6.tar.gz](https://github.com/open5gs/open5gs/archive/v2.5.6.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
							
								
								
									
										32
									
								
								docs/_posts/2023-01-23-release-v2.4.14-v2.5.8.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								docs/_posts/2023-01-23-release-v2.4.14-v2.5.8.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.14 and v2.5.8 - Bug Fixes"
 | 
			
		||||
date: 2023-01-23 11:04: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
 | 
			
		||||
- [PROTO] Increased SDU buffer from 8k to 16k ([#2008](https://github.com/open5gs/open5gs/issues/2008)) -- [Sabreu](https://github.com/Sabreu)
 | 
			
		||||
- [AMF] Fixed a memory leak ([#1925](https://github.com/open5gs/open5gs/issues/1925)) -- [irazairspan](https://github.com/irazairspan)
 | 
			
		||||
- [UPF] Fixed a bug when 2 PDRs with same TEID ([#2003](https://github.com/open5gs/open5gs/issues/2003)) -- [shizw2](https://github.com/shizw2)
 | 
			
		||||
- [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.5.8.tar.gz](https://github.com/open5gs/open5gs/archive/v2.5.8.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
							
								
								
									
										35
									
								
								docs/_posts/2023-03-06-release-v2.4.15-v2.5.9.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								docs/_posts/2023-03-06-release-v2.4.15-v2.5.9.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.15 and v2.5.9 - Bug Fixes"
 | 
			
		||||
date: 2023-03-06 21:44:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
  - News
 | 
			
		||||
  - Release
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### Security Issues
 | 
			
		||||
- [PFCP/GTP] Fixed security bug (#2127,#2128,#2129)
 | 
			
		||||
([#2127](https://github.com/open5gs/open5gs/issues/2127), [#2128](https://github.com/open5gs/open5gs/issues/2128), [#2129](https://github.com/open5gs/open5gs/issues/2129)) -- [pventuzelo](https://github.com/pventuzelo)
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [AMF] Disallow handling service requests unless UE is already registered ([#2069](https://github.com/open5gs/open5gs/pull/2069)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [SBI] Fixed openapitools MAP generation ([#2103](https://github.com/open5gs/open5gs/issues/2103)) -- [alonsocamaro](https://github.com/alonsocamaro)
 | 
			
		||||
- [SBI] Fix possible crash when handling PatchItems in NFProfile PATCH req ([#2069](https://github.com/open5gs/open5gs/pull/2069)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [MME] KeNB derive from TAU(active flag=1) ([#2063](https://github.com/open5gs/open5gs/issues/2063)) -- [Sabreu](https://github.com/Sabreu)
 | 
			
		||||
- [AMF/MME] UE capability deletion ([#1917](https://github.com/open5gs/open5gs/issues/1917),[#2040](https://github.com/open5gs/open5gs/issues/2040)) -- [irazairspan](https://github.com/irazairspan), [Sabreu](https://github.com/Sabreu)
 | 
			
		||||
- [SBI] Open5GS now checks User-AGENT only in SCP. ([#2049](https://github.com/open5gs/open5gs/issues/2049)) -- [Borjis131](https://github.com/Borjis131)
 | 
			
		||||
- [NF] Fix double-free crash when NF is under heavy load ([#2048](https://github.com/open5gs/open5gs/pull/2048)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [CORE] Add defense code to ogs_pkbuf_copy ([#2032](https://github.com/open5gs/open5gs/issues/2032)) -- [ahankak](https://github.com/ahankak)
 | 
			
		||||
- [NRF] Fixed a crash during NRF discovery ([#2034](https://github.com/open5gs/open5gs/issues/2034)) -- [gustavobsch](https://github.com/gustavobsch)
 | 
			
		||||
- Added Service-MAP to Requester-Features in Discovery Option ([#2027](https://github.com/open5gs/open5gs/issues/2027)) -- [gustavobsch](https://github.com/gustavobsch)
 | 
			
		||||
- [AMF] Fixed a crash on explicit network-initiated deregister ([#2021](https://github.com/open5gs/open5gs/issues/2021)) -- [gstaa](https://github.com/gstaa)
 | 
			
		||||
- [AMF] Fixed crashed from malformed 5GS-ID ([#2020](https://github.com/open5gs/open5gs/issues/2020)) -- [p1-bmu](https://github.com/p1-bmu)
 | 
			
		||||
- [AMF/MME] Not assert for ogs_asn_copy_ie() ([#2018](https://github.com/open5gs/open5gs/issues/2018)) -- [p1-bmu](https://github.com/p1-bmu)
 | 
			
		||||
- [AMF] Fixed a crash when no UE context ([#2016](https://github.com/open5gs/open5gs/issues/2016)) -- [Sabreu](https://github.com/Sabreu)
 | 
			
		||||
- [AMF] Failed to encode ASN-PDU for very large UERadioCapability size ([#2008](https://github.com/open5gs/open5gs/issues/2008)) -- [Sabreu](https://github.com/Sabreu)
 | 
			
		||||
- [AMF] Fixed crash if no BW Unit(Xbps) ([#2000](https://github.com/open5gs/open5gs/issues/2000)) -- [oktavlachs](https://github.com/oktavlachs)
 | 
			
		||||
 | 
			
		||||
Download -- [v2.5.9.tar.gz](https://github.com/open5gs/open5gs/archive/v2.5.9.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.5.6"
 | 
			
		||||
 | 
			
		||||
print_status() {
 | 
			
		||||
    echo
 | 
			
		||||
@@ -93,18 +93,23 @@ preinstall() {
 | 
			
		||||
 | 
			
		||||
PRE_INSTALL_PKGS=""
 | 
			
		||||
 | 
			
		||||
if [ ! -x /usr/bin/lsb_release ]; then
 | 
			
		||||
    PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release"
 | 
			
		||||
# Check that HTTPS transport is available to APT
 | 
			
		||||
# (Check snaked from: https://get.docker.io/ubuntu/)
 | 
			
		||||
 | 
			
		||||
if [ ! -e /usr/lib/apt/methods/https ]; then
 | 
			
		||||
    PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} apt-transport-https"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ ! -x /usr/bin/node ] && [ ! -x /usr/bin/wget ]; then
 | 
			
		||||
    PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} nodejs"
 | 
			
		||||
if [ ! -x /usr/bin/lsb_release ]; then
 | 
			
		||||
    PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ ! -x /usr/bin/curl ] && [ ! -x /usr/bin/wget ]; then
 | 
			
		||||
    PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} curl"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Used by apt-key to add new keys
 | 
			
		||||
 | 
			
		||||
if [ ! -x /usr/bin/gpg ]; then
 | 
			
		||||
    PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} gnupg"
 | 
			
		||||
fi
 | 
			
		||||
@@ -114,9 +119,17 @@ exec_cmd 'apt-get update'
 | 
			
		||||
 | 
			
		||||
if [ "X${PRE_INSTALL_PKGS}" != "X" ]; then
 | 
			
		||||
    print_status "Installing packages required for setup:${PRE_INSTALL_PKGS}..."
 | 
			
		||||
    # This next command needs to be redirected to /dev/null or the script will bork
 | 
			
		||||
    # in some environments
 | 
			
		||||
    exec_cmd "apt-get install -y${PRE_INSTALL_PKGS} > /dev/null 2>&1"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
IS_PRERELEASE=$(lsb_release -d | grep 'Ubuntu .*development' >& /dev/null; echo $?)
 | 
			
		||||
if [[ $IS_PRERELEASE -eq 0 ]]; then
 | 
			
		||||
    print_status "Your distribution, identified as \"$(lsb_release -d -s)\", is a pre-release version of Ubuntu. NodeSource does not maintain official support for Ubuntu versions until they are formally released. You can try using the manual installation instructions available at https://github.com/nodesource/distributions and use the latest supported Ubuntu version name as the distribution identifier, although this is not guaranteed to work."
 | 
			
		||||
    exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
DISTRO=$(lsb_release -c -s)
 | 
			
		||||
 | 
			
		||||
check_alt() {
 | 
			
		||||
@@ -128,54 +141,76 @@ check_alt() {
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
check_alt "SolydXK"       "solydxk-9" "Debian" "stretch"
 | 
			
		||||
check_alt "Kali"          "sana"     "Debian" "jessie"
 | 
			
		||||
check_alt "Kali"          "kali-rolling" "Debian" "jessie"
 | 
			
		||||
check_alt "Sparky Linux"  "Tyche"    "Debian" "stretch"
 | 
			
		||||
check_alt "Sparky Linux"  "Nibiru"   "Debian" "buster"
 | 
			
		||||
check_alt "MX Linux 17"   "Horizon"  "Debian" "stretch"
 | 
			
		||||
check_alt "MX Linux 18"   "Continuum" "Debian" "stretch"
 | 
			
		||||
check_alt "MX Linux 19"   "patito feo" "Debian" "buster"
 | 
			
		||||
check_alt "Linux Mint"    "maya"     "Ubuntu" "precise"
 | 
			
		||||
check_alt "Linux Mint"    "qiana"    "Ubuntu" "trusty"
 | 
			
		||||
check_alt "Linux Mint"    "rafaela"  "Ubuntu" "trusty"
 | 
			
		||||
check_alt "Linux Mint"    "rebecca"  "Ubuntu" "trusty"
 | 
			
		||||
check_alt "Linux Mint"    "rosa"     "Ubuntu" "trusty"
 | 
			
		||||
check_alt "Linux Mint"    "sarah"    "Ubuntu" "xenial"
 | 
			
		||||
check_alt "Linux Mint"    "serena"   "Ubuntu" "xenial"
 | 
			
		||||
check_alt "Linux Mint"    "sonya"    "Ubuntu" "xenial"
 | 
			
		||||
check_alt "Linux Mint"    "sylvia"   "Ubuntu" "xenial"
 | 
			
		||||
check_alt "Linux Mint"    "tara"     "Ubuntu" "bionic"
 | 
			
		||||
check_alt "Linux Mint"    "tessa"    "Ubuntu" "bionic"
 | 
			
		||||
check_alt "Linux Mint"    "tina"     "Ubuntu" "bionic"
 | 
			
		||||
check_alt "Linux Mint"    "tricia"   "Ubuntu" "bionic"
 | 
			
		||||
check_alt "LMDE"          "betsy"    "Debian" "jessie"
 | 
			
		||||
check_alt "LMDE"          "cindy"    "Debian" "stretch"
 | 
			
		||||
check_alt "elementaryOS"  "luna"     "Ubuntu" "precise"
 | 
			
		||||
check_alt "elementaryOS"  "freya"    "Ubuntu" "trusty"
 | 
			
		||||
check_alt "elementaryOS"  "loki"     "Ubuntu" "xenial"
 | 
			
		||||
check_alt "elementaryOS"  "juno"     "Ubuntu" "bionic"
 | 
			
		||||
check_alt "elementaryOS"  "hera"     "Ubuntu" "bionic"
 | 
			
		||||
check_alt "Trisquel"      "toutatis" "Ubuntu" "precise"
 | 
			
		||||
check_alt "Trisquel"      "belenos"  "Ubuntu" "trusty"
 | 
			
		||||
check_alt "Trisquel"      "flidas"   "Ubuntu" "xenial"
 | 
			
		||||
check_alt "Uruk GNU/Linux" "lugalbanda" "Ubuntu" "xenial"
 | 
			
		||||
check_alt "BOSS"          "anokha"   "Debian" "wheezy"
 | 
			
		||||
check_alt "BOSS"          "anoop"    "Debian" "jessie"
 | 
			
		||||
check_alt "BOSS"          "drishti"  "Debian" "stretch"
 | 
			
		||||
check_alt "bunsenlabs"    "bunsen-hydrogen" "Debian" "jessie"
 | 
			
		||||
check_alt "bunsenlabs"    "helium"   "Debian" "stretch"
 | 
			
		||||
check_alt "Tanglu"        "chromodoris" "Debian" "jessie"
 | 
			
		||||
check_alt "PureOS"        "green"    "Debian" "sid"
 | 
			
		||||
check_alt "Devuan"        "jessie"   "Debian" "jessie"
 | 
			
		||||
check_alt "Devuan"        "ascii"    "Debian" "stretch"
 | 
			
		||||
check_alt "Devuan"        "beowulf"  "Debian" "buster"
 | 
			
		||||
check_alt "Devuan"        "ceres"    "Debian" "sid"
 | 
			
		||||
check_alt "Deepin"        "panda"    "Debian" "sid"
 | 
			
		||||
check_alt "Deepin"        "unstable" "Debian" "sid"
 | 
			
		||||
check_alt "Deepin"        "stable"   "Debian" "buster"
 | 
			
		||||
check_alt "Pardus"        "onyedi"   "Debian" "stretch"
 | 
			
		||||
check_alt "Liquid Lemur"  "lemur-3"  "Debian" "stretch"
 | 
			
		||||
check_alt "Astra Linux"    "orel"            "Debian"        "stretch"
 | 
			
		||||
check_alt "BOSS"           "anokha"          "Debian"        "wheezy"
 | 
			
		||||
check_alt "BOSS"           "anoop"           "Debian"        "jessie"
 | 
			
		||||
check_alt "BOSS"           "drishti"         "Debian"        "stretch"
 | 
			
		||||
check_alt "BOSS"           "unnati"          "Debian"        "buster"
 | 
			
		||||
check_alt "BOSS"           "urja"            "Debian"        "bullseye"
 | 
			
		||||
check_alt "bunsenlabs"     "bunsen-hydrogen" "Debian"        "jessie"
 | 
			
		||||
check_alt "bunsenlabs"     "helium"          "Debian"        "stretch"
 | 
			
		||||
check_alt "bunsenlabs"     "lithium"         "Debian"        "buster"
 | 
			
		||||
check_alt "Devuan"         "jessie"          "Debian"        "jessie"
 | 
			
		||||
check_alt "Devuan"         "ascii"           "Debian"        "stretch"
 | 
			
		||||
check_alt "Devuan"         "beowulf"         "Debian"        "buster"
 | 
			
		||||
check_alt "Devuan"         "chimaera"        "Debian"        "bullseye"
 | 
			
		||||
check_alt "Devuan"         "ceres"           "Debian"        "sid"
 | 
			
		||||
check_alt "Deepin"         "panda"           "Debian"        "sid"
 | 
			
		||||
check_alt "Deepin"         "unstable"        "Debian"        "sid"
 | 
			
		||||
check_alt "Deepin"         "stable"          "Debian"        "buster"
 | 
			
		||||
check_alt "Deepin"         "apricot"         "Debian"        "buster"
 | 
			
		||||
check_alt "elementaryOS"   "luna"            "Ubuntu"        "precise"
 | 
			
		||||
check_alt "elementaryOS"   "freya"           "Ubuntu"        "trusty"
 | 
			
		||||
check_alt "elementaryOS"   "loki"            "Ubuntu"        "xenial"
 | 
			
		||||
check_alt "elementaryOS"   "juno"            "Ubuntu"        "bionic"
 | 
			
		||||
check_alt "elementaryOS"   "hera"            "Ubuntu"        "bionic"
 | 
			
		||||
check_alt "elementaryOS"   "odin"            "Ubuntu"        "focal"
 | 
			
		||||
check_alt "elementaryOS"   "jolnir"          "Ubuntu"        "focal"
 | 
			
		||||
check_alt "Kali"           "sana"            "Debian"        "jessie"
 | 
			
		||||
check_alt "Kali"           "kali-rolling"    "Debian"        "bullseye"
 | 
			
		||||
check_alt "Linux Mint"     "maya"            "Ubuntu"        "precise"
 | 
			
		||||
check_alt "Linux Mint"     "qiana"           "Ubuntu"        "trusty"
 | 
			
		||||
check_alt "Linux Mint"     "rafaela"         "Ubuntu"        "trusty"
 | 
			
		||||
check_alt "Linux Mint"     "rebecca"         "Ubuntu"        "trusty"
 | 
			
		||||
check_alt "Linux Mint"     "rosa"            "Ubuntu"        "trusty"
 | 
			
		||||
check_alt "Linux Mint"     "sarah"           "Ubuntu"        "xenial"
 | 
			
		||||
check_alt "Linux Mint"     "serena"          "Ubuntu"        "xenial"
 | 
			
		||||
check_alt "Linux Mint"     "sonya"           "Ubuntu"        "xenial"
 | 
			
		||||
check_alt "Linux Mint"     "sylvia"          "Ubuntu"        "xenial"
 | 
			
		||||
check_alt "Linux Mint"     "tara"            "Ubuntu"        "bionic"
 | 
			
		||||
check_alt "Linux Mint"     "tessa"           "Ubuntu"        "bionic"
 | 
			
		||||
check_alt "Linux Mint"     "tina"            "Ubuntu"        "bionic"
 | 
			
		||||
check_alt "Linux Mint"     "tricia"          "Ubuntu"        "bionic"
 | 
			
		||||
check_alt "Linux Mint"     "ulyana"          "Ubuntu"        "focal"
 | 
			
		||||
check_alt "Linux Mint"     "ulyssa"          "Ubuntu"        "focal"
 | 
			
		||||
check_alt "Linux Mint"     "uma"             "Ubuntu"        "focal"
 | 
			
		||||
check_alt "Linux Mint"     "una"             "Ubuntu"        "focal"
 | 
			
		||||
check_alt "Linux Mint"     "vanessa"         "Ubuntu"        "jammy"
 | 
			
		||||
check_alt "Liquid Lemur"   "lemur-3"         "Debian"        "stretch"
 | 
			
		||||
check_alt "LMDE"           "betsy"           "Debian"        "jessie"
 | 
			
		||||
check_alt "LMDE"           "cindy"           "Debian"        "stretch"
 | 
			
		||||
check_alt "LMDE"           "debbie"          "Debian"        "buster"
 | 
			
		||||
check_alt "LMDE"           "elsie"           "Debian"        "bullseye"
 | 
			
		||||
check_alt "MX Linux 17"    "Horizon"         "Debian"        "stretch"
 | 
			
		||||
check_alt "MX Linux 18"    "Continuum"       "Debian"        "stretch"
 | 
			
		||||
check_alt "MX Linux 19"    "patito feo"      "Debian"        "buster"
 | 
			
		||||
check_alt "MX Linux 21"    "wildflower"      "Debian"        "bullseye"
 | 
			
		||||
check_alt "Pardus"         "onyedi"          "Debian"        "stretch"
 | 
			
		||||
check_alt "Parrot"         "ara"             "Debian"        "bullseye"
 | 
			
		||||
check_alt "PureOS"         "green"           "Debian"        "sid"
 | 
			
		||||
check_alt "PureOS"         "amber"           "Debian"        "buster"
 | 
			
		||||
check_alt "PureOS"         "byzantium"       "Debian"        "bullseye"
 | 
			
		||||
check_alt "SolydXK"        "solydxk-9"       "Debian"        "stretch"
 | 
			
		||||
check_alt "Sparky Linux"   "Tyche"           "Debian"        "stretch"
 | 
			
		||||
check_alt "Sparky Linux"   "Nibiru"          "Debian"        "buster"
 | 
			
		||||
check_alt "Sparky Linux"   "Po-Tolo"         "Debian"        "bullseye"
 | 
			
		||||
check_alt "Tanglu"         "chromodoris"     "Debian"        "jessie"
 | 
			
		||||
check_alt "Trisquel"       "toutatis"        "Ubuntu"        "precise"
 | 
			
		||||
check_alt "Trisquel"       "belenos"         "Ubuntu"        "trusty"
 | 
			
		||||
check_alt "Trisquel"       "flidas"          "Ubuntu"        "xenial"
 | 
			
		||||
check_alt "Trisquel"       "etiona"          "Ubuntu"        "bionic"
 | 
			
		||||
check_alt "Ubilinux"       "dolcetto"        "Debian"        "stretch"
 | 
			
		||||
check_alt "Uruk GNU/Linux" "lugalbanda"      "Ubuntu"        "xenial"
 | 
			
		||||
 | 
			
		||||
if [ "X${DISTRO}" == "Xdebian" ]; then
 | 
			
		||||
  print_status "Unknown Debian-based distribution, checking /etc/debian_version..."
 | 
			
		||||
@@ -188,31 +223,25 @@ if [ "X${DISTRO}" == "Xdebian" ]; then
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "X${DISTRO}" == "Xbuster" ]; then
 | 
			
		||||
    if [ -f "/etc/apt/sources.list.d/mongodb-org.list" ]; then
 | 
			
		||||
        print_status 'Removing Launchpad PPA Repository for MongoDB...'
 | 
			
		||||
        exec_cmd "rm -f /etc/apt/sources.list.d/mongodb-org.list"
 | 
			
		||||
    fi
 | 
			
		||||
print_status 'Removing Launchpad PPA Repository for MongoDB...'
 | 
			
		||||
for i in /etc/apt/sources.list.d/mongodb-org*; do
 | 
			
		||||
    exec_cmd "rm -f $i"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
    print_status 'Adding the MongoDB signing key to your keyring...'
 | 
			
		||||
print_status 'Adding the MongoDB signing key to your keyring...'
 | 
			
		||||
 | 
			
		||||
    if [ -x /usr/bin/curl ]; then
 | 
			
		||||
        exec_cmd 'curl -s https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -'
 | 
			
		||||
    else
 | 
			
		||||
        exec_cmd 'wget -qO- https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -'
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    print_status "Creating apt sources list file for the MongoDB repo..."
 | 
			
		||||
 | 
			
		||||
    exec_cmd "echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' > /etc/apt/sources.list.d/mongodb-org.list"
 | 
			
		||||
 | 
			
		||||
    if [ ! -x /usr/bin/mongod ]; then
 | 
			
		||||
        MONGODB_INSTALL_PKGS="${MONGODB_INSTALL_PKGS} mongodb-org"
 | 
			
		||||
    fi
 | 
			
		||||
if [ -x /usr/bin/curl ]; then
 | 
			
		||||
    exec_cmd_nobail "curl -sLf 'https://www.mongodb.org/static/pgp/server-6.0.asc' | apt-key add -"
 | 
			
		||||
else
 | 
			
		||||
    if [ ! -x /usr/bin/mongod ]; then
 | 
			
		||||
        MONGODB_INSTALL_PKGS="${MONGODB_INSTALL_PKGS} mongodb"
 | 
			
		||||
    fi
 | 
			
		||||
    exec_cmd_nobail "wget -qO - 'https://www.mongodb.org/static/pgp/server-6.0.asc' | apt-key add -"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
print_status "Creating apt sources list file for the MongoDB repo..."
 | 
			
		||||
 | 
			
		||||
exec_cmd "echo 'deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse' > /etc/apt/sources.list.d/mongodb-org-6.0.list"
 | 
			
		||||
 | 
			
		||||
if [ ! -x /usr/bin/mongod ]; then
 | 
			
		||||
    MONGODB_INSTALL_PKGS="${MONGODB_INSTALL_PKGS} mongodb-org"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "X${MONGODB_INSTALL_PKGS}" != "X" ]; then
 | 
			
		||||
@@ -230,7 +259,7 @@ if [ -x /usr/bin/curl ]; then
 | 
			
		||||
    exec_cmd "curl -sLf 'https://github.com/open5gs/${PACKAGE}/archive/v${VERSION}.tar.gz' | tar zxf -"
 | 
			
		||||
    RC=$?
 | 
			
		||||
else
 | 
			
		||||
    exec_cmd "wget -qO- /dev/null 'https://github.com/open5gs/${PACKAGE}/archive/v${VERSION}.tar.gz' | tar zxf -"
 | 
			
		||||
    exec_cmd "wget -qO - 'https://github.com/open5gs/${PACKAGE}/archive/v${VERSION}.tar.gz' | tar zxf -"
 | 
			
		||||
    RC=$?
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -240,7 +269,7 @@ if [[ $RC != 0 ]]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
print_status "Build the Open5GS WebUI..."
 | 
			
		||||
exec_cmd "cd ./${PACKAGE}-${VERSION}/webui && npm ci --no-optional && npm run build"
 | 
			
		||||
exec_cmd "cd ./${PACKAGE}-${VERSION}/webui && npm clean-install && npm run build"
 | 
			
		||||
 | 
			
		||||
print_status "Install the Open5GS WebUI..."
 | 
			
		||||
exec_cmd "mv ./${PACKAGE}-${VERSION}/webui /usr/lib/node_modules/${PACKAGE}"
 | 
			
		||||
@@ -267,23 +296,14 @@ EOF"
 | 
			
		||||
exec_cmd_nobail "systemctl daemon-reload"
 | 
			
		||||
exec_cmd "systemctl enable open5gs-webui"
 | 
			
		||||
exec_cmd "deb-systemd-invoke start open5gs-webui"
 | 
			
		||||
 | 
			
		||||
exec_cmd "rm -rf ./${PACKAGE}-${VERSION}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
postinstall() {
 | 
			
		||||
 | 
			
		||||
print_status "Default Administrator Account [Username:admin, Password:1423]..."
 | 
			
		||||
exec_cmd "mongosh open5gs ./${PACKAGE}-${VERSION}/docs/assets/webui/mongo-init.js"
 | 
			
		||||
 | 
			
		||||
exec_cmd "cat << EOF > ./account.js
 | 
			
		||||
db = db.getSiblingDB('open5gs')
 | 
			
		||||
cursor = db.accounts.find()
 | 
			
		||||
if ( cursor.count() == 0 ) {
 | 
			
		||||
    db.accounts.insert({ salt: 'f5c15fa72622d62b6b790aa8569b9339729801ab8bda5d13997b5db6bfc1d997', hash: '402223057db5194899d2e082aeb0802f6794622e1cbc47529c419e5a603f2cc592074b4f3323b239ffa594c8b756d5c70a4e1f6ecd3f9f0d2d7328c4cf8b1b766514effff0350a90b89e21eac54cd4497a169c0c7554a0e2cd9b672e5414c323f76b8559bc768cba11cad2ea3ae704fb36abc8abc2619231ff84ded60063c6e1554a9777a4a464ef9cfdfa90ecfdacc9844e0e3b2f91b59d9ff024aec4ea1f51b703a31cda9afb1cc2c719a09cee4f9852ba3cf9f07159b1ccf8133924f74df770b1a391c19e8d67ffdcbbef4084a3277e93f55ac60d80338172b2a7b3f29cfe8a36738681794f7ccbe9bc98f8cdeded02f8a4cd0d4b54e1d6ba3d11792ee0ae8801213691848e9c5338e39485816bb0f734b775ac89f454ef90992003511aa8cceed58a3ac2c3814f14afaaed39cbaf4e2719d7213f81665564eec02f60ede838212555873ef742f6666cc66883dcb8281715d5c762fb236d72b770257e7e8d86c122bb69028a34cf1ed93bb973b440fa89a23604cd3fefe85fbd7f55c9b71acf6ad167228c79513f5cfe899a2e2cc498feb6d2d2f07354a17ba74cecfbda3e87d57b147e17dcc7f4c52b802a8e77f28d255a6712dcdc1519e6ac9ec593270bfcf4c395e2531a271a841b1adefb8516a07136b0de47c7fd534601b16f0f7a98f1dbd31795feb97da59e1d23c08461cf37d6f2877d0f2e437f07e25015960f63', username: 'admin', roles: [ 'admin' ], "__v" : 0})
 | 
			
		||||
}
 | 
			
		||||
EOF"
 | 
			
		||||
exec_cmd "mongo open5gs ./account.js"
 | 
			
		||||
exec_cmd "rm -f ./account.js"
 | 
			
		||||
exec_cmd "rm -rf ./${PACKAGE}-${VERSION}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## Defer setup until we have the complete script
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								docs/assets/webui/mongo-init.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/assets/webui/mongo-init.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
db = db.getSiblingDB('open5gs')
 | 
			
		||||
cursor = db.accounts.find()
 | 
			
		||||
if ( cursor.count() == 0 ) {
 | 
			
		||||
    db.accounts.insertOne({ salt: 'f5c15fa72622d62b6b790aa8569b9339729801ab8bda5d13997b5db6bfc1d997', hash: '402223057db5194899d2e082aeb0802f6794622e1cbc47529c419e5a603f2cc592074b4f3323b239ffa594c8b756d5c70a4e1f6ecd3f9f0d2d7328c4cf8b1b766514effff0350a90b89e21eac54cd4497a169c0c7554a0e2cd9b672e5414c323f76b8559bc768cba11cad2ea3ae704fb36abc8abc2619231ff84ded60063c6e1554a9777a4a464ef9cfdfa90ecfdacc9844e0e3b2f91b59d9ff024aec4ea1f51b703a31cda9afb1cc2c719a09cee4f9852ba3cf9f07159b1ccf8133924f74df770b1a391c19e8d67ffdcbbef4084a3277e93f55ac60d80338172b2a7b3f29cfe8a36738681794f7ccbe9bc98f8cdeded02f8a4cd0d4b54e1d6ba3d11792ee0ae8801213691848e9c5338e39485816bb0f734b775ac89f454ef90992003511aa8cceed58a3ac2c3814f14afaaed39cbaf4e2719d7213f81665564eec02f60ede838212555873ef742f6666cc66883dcb8281715d5c762fb236d72b770257e7e8d86c122bb69028a34cf1ed93bb973b440fa89a23604cd3fefe85fbd7f55c9b71acf6ad167228c79513f5cfe899a2e2cc498feb6d2d2f07354a17ba74cecfbda3e87d57b147e17dcc7f4c52b802a8e77f28d255a6712dcdc1519e6ac9ec593270bfcf4c395e2531a271a841b1adefb8516a07136b0de47c7fd534601b16f0f7a98f1dbd31795feb97da59e1d23c08461cf37d6f2877d0f2e437f07e25015960f63', username: 'admin', roles: [ 'admin' ], "__v" : 0})
 | 
			
		||||
}
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -71,22 +71,25 @@ static void recalculate_pool_size(void)
 | 
			
		||||
    self.pool.bearer = self.pool.sess * OGS_MAX_NUM_OF_BEARER;
 | 
			
		||||
    self.pool.tunnel = self.pool.bearer * MAX_NUM_OF_TUNNEL;
 | 
			
		||||
 | 
			
		||||
#define OGS_MAX_NUM_OF_NF_SUBSCRIPTION  4 /* Num of Subscription per NF */
 | 
			
		||||
    self.pool.nf_service = self.max.gnb * OGS_MAX_NUM_OF_NF_SERVICE;
 | 
			
		||||
 | 
			
		||||
#define POOL_NUM_PER_UE 16
 | 
			
		||||
#define POOL_NUM_PER_GNB 8
 | 
			
		||||
    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.nf = self.max.gnb;
 | 
			
		||||
    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;
 | 
			
		||||
 | 
			
		||||
#define MAX_CSMAP_POOL          128
 | 
			
		||||
    self.pool.csmap = MAX_CSMAP_POOL;   /* Num of TAI-LAI Mapping Table */
 | 
			
		||||
    self.pool.gtp_node = self.pool.nf;
 | 
			
		||||
    if (self.max.gtp_peer)
 | 
			
		||||
        self.pool.gtp_node = self.max.gtp_peer;
 | 
			
		||||
 | 
			
		||||
    /* Num of TAI-LAI Mapping Table */
 | 
			
		||||
    self.pool.csmap = self.pool.nf;
 | 
			
		||||
 | 
			
		||||
#define MAX_NUM_OF_IMPU         8
 | 
			
		||||
    self.pool.impi = self.max.ue;
 | 
			
		||||
@@ -167,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);
 | 
			
		||||
 | 
			
		||||
@@ -357,6 +350,14 @@ 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")) {
 | 
			
		||||
#if MONGOC_MAJOR_VERSION >= 1 && MONGOC_MINOR_VERSION >= 9
 | 
			
		||||
                    self.use_mongodb_change_stream = 
 | 
			
		||||
                        ogs_yaml_iter_bool(¶meter_iter);
 | 
			
		||||
#else
 | 
			
		||||
                    self.use_mongodb_change_stream = false;
 | 
			
		||||
#endif
 | 
			
		||||
                } else
 | 
			
		||||
                    ogs_warn("unknown key `%s`", parameter_key);
 | 
			
		||||
            }
 | 
			
		||||
@@ -376,48 +377,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);
 | 
			
		||||
@@ -427,10 +386,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);
 | 
			
		||||
            }
 | 
			
		||||
@@ -466,6 +429,10 @@ int ogs_app_context_parse_config(void)
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&pool_iter);
 | 
			
		||||
                    if (v)
 | 
			
		||||
                        self.pool.defconfig.cluster_8192_pool = atoi(v);
 | 
			
		||||
                } else if (!strcmp(pool_key, "32768")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&pool_iter);
 | 
			
		||||
                    if (v)
 | 
			
		||||
                        self.pool.defconfig.cluster_32768_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;
 | 
			
		||||
@@ -85,25 +87,13 @@ 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;
 | 
			
		||||
 | 
			
		||||
@@ -124,8 +114,10 @@ typedef struct ogs_app_context_s {
 | 
			
		||||
        uint64_t socket;
 | 
			
		||||
        uint64_t subscription;
 | 
			
		||||
        uint64_t xact;
 | 
			
		||||
        uint64_t stream;
 | 
			
		||||
 | 
			
		||||
        uint64_t nf;
 | 
			
		||||
        uint64_t gtp_node;
 | 
			
		||||
 | 
			
		||||
        uint64_t csmap;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ int get_asn1c_environment_version(void);	/* Run-time version */
 | 
			
		||||
#define	REALLOC(oldptr, size)	realloc(oldptr, size)
 | 
			
		||||
#define	FREEMEM(ptr)		free(ptr)
 | 
			
		||||
#else
 | 
			
		||||
#include "ogs-core.h"
 | 
			
		||||
#include "proto/ogs-proto.h"
 | 
			
		||||
 | 
			
		||||
static ogs_inline void *ogs_asn_malloc(size_t size, const char *file_line)
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -106,6 +106,29 @@ index 4a23d705..3afbede8 100644
 | 
			
		||||
                        memb_NGAP_OCTET_STRING_CONTAINING_PDUSessionResourceReleaseResponseTransfer__constraint_648
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
Check ExtIEs in ProtocolExtensionContainer
 | 
			
		||||
==========================================
 | 
			
		||||
diff --git a/src/smf/ngap-build.c b/src/smf/ngap-build.c
 | 
			
		||||
index 9554be276..051cb6e8a 100644
 | 
			
		||||
--- a/src/smf/ngap-build.c
 | 
			
		||||
+++ b/src/smf/ngap-build.c
 | 
			
		||||
@@ -180,13 +180,13 @@ ogs_pkbuf_t *ngap_build_pdu_session_resource_setup_request_transfer(
 | 
			
		||||
 | 
			
		||||
             if (smf_self()->security_indication.
 | 
			
		||||
                     maximum_integrity_protected_data_rate_downlink) {
 | 
			
		||||
-                NGAP_ProtocolExtensionContainer_9625P229_t *extContainer = NULL;
 | 
			
		||||
+                NGAP_ProtocolExtensionContainer_11905P297_t *extContainer = NULL;
 | 
			
		||||
                 NGAP_SecurityIndication_ExtIEs_t *extIe = NULL;
 | 
			
		||||
                 NGAP_MaximumIntegrityProtectedDataRate_t
 | 
			
		||||
                     *MaximumIntegrityProtectedDataRate = NULL;
 | 
			
		||||
 | 
			
		||||
                 extContainer = CALLOC(1,
 | 
			
		||||
-                        sizeof(NGAP_ProtocolExtensionContainer_9625P229_t));
 | 
			
		||||
+                        sizeof(NGAP_ProtocolExtensionContainer_11905P297_t));
 | 
			
		||||
                 ogs_assert(extContainer);
 | 
			
		||||
                 SecurityIndication->iE_Extensions =
 | 
			
		||||
                     (struct NGAP_ProtocolExtensionContainer *)extContainer;
 | 
			
		||||
 | 
			
		||||
Check common file
 | 
			
		||||
===========================================
 | 
			
		||||
user@host ~/Documents/git/open5gs/lib/asn1c/common$ \
 | 
			
		||||
 
 | 
			
		||||
@@ -215,15 +215,22 @@ int ogs_asn_copy_ie(const asn_TYPE_descriptor_t *td, void *src, void *dst)
 | 
			
		||||
{
 | 
			
		||||
    asn_enc_rval_t enc_ret = {0};
 | 
			
		||||
    asn_dec_rval_t dec_ret = {0};
 | 
			
		||||
    uint8_t buffer[OGS_MAX_SDU_LEN];
 | 
			
		||||
    uint8_t *buffer = NULL;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(td);
 | 
			
		||||
    ogs_assert(src);
 | 
			
		||||
    ogs_assert(dst);
 | 
			
		||||
 | 
			
		||||
    buffer = ogs_calloc(1, OGS_MAX_SDU_LEN);
 | 
			
		||||
    if (!buffer) {
 | 
			
		||||
        ogs_error("ogs_calloc() failed");
 | 
			
		||||
        return OGS_ERROR;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    enc_ret = aper_encode_to_buffer(td, NULL, src, buffer, OGS_MAX_SDU_LEN);
 | 
			
		||||
    if (enc_ret.encoded < 0) {
 | 
			
		||||
        ogs_error("aper_encode_to_buffer() failed[%d]", (int)enc_ret.encoded);
 | 
			
		||||
        ogs_free(buffer);
 | 
			
		||||
        return OGS_ERROR;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -232,8 +239,11 @@ int ogs_asn_copy_ie(const asn_TYPE_descriptor_t *td, void *src, void *dst)
 | 
			
		||||
 | 
			
		||||
    if (dec_ret.code != RC_OK) {
 | 
			
		||||
        ogs_error("aper_decode() failed[%d]", dec_ret.code);
 | 
			
		||||
        ogs_free(buffer);
 | 
			
		||||
        return OGS_ERROR;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ogs_free(buffer);
 | 
			
		||||
 | 
			
		||||
    return OGS_OK;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -256,7 +256,6 @@ libcore_sources = files('''
 | 
			
		||||
    ogs-hash.h
 | 
			
		||||
    ogs-misc.h
 | 
			
		||||
    ogs-getopt.h
 | 
			
		||||
    ogs-3gpp-types.h
 | 
			
		||||
    abts.h
 | 
			
		||||
 | 
			
		||||
    ogs-abort.c
 | 
			
		||||
@@ -292,7 +291,6 @@ libcore_sources = files('''
 | 
			
		||||
    ogs-hash.c
 | 
			
		||||
    ogs-misc.c
 | 
			
		||||
    ogs-getopt.c
 | 
			
		||||
    ogs-3gpp-types.c
 | 
			
		||||
    ogs-core.c
 | 
			
		||||
    abts.c
 | 
			
		||||
'''.split())
 | 
			
		||||
 
 | 
			
		||||
@@ -54,15 +54,16 @@ void *ogs_ascii_to_hex(char *in, int in_len, void *out, int out_len)
 | 
			
		||||
 | 
			
		||||
void *ogs_hex_to_ascii(void *in, int in_len, void *out, int out_len)
 | 
			
		||||
{
 | 
			
		||||
    char *p;
 | 
			
		||||
    char *p, *last;
 | 
			
		||||
    int i = 0, l, off = 0;
 | 
			
		||||
 | 
			
		||||
    p = out;
 | 
			
		||||
    last = p + out_len;
 | 
			
		||||
    p[0] = 0;
 | 
			
		||||
 | 
			
		||||
    l = (in_len - off) > out_len ? out_len : in_len - off;
 | 
			
		||||
    for (i = 0; i < l; i++) {
 | 
			
		||||
        p += sprintf(p, "%02x", ((char*)in)[off+i] & 0xff);
 | 
			
		||||
        p = ogs_slprintf(p, last, "%02x", ((char*)in)[off+i] & 0xff);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return out;
 | 
			
		||||
@@ -232,25 +233,3 @@ uint64_t ogs_uint64_from_string(char *str)
 | 
			
		||||
 | 
			
		||||
    return x;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ogs_extract_digit_from_string(char *digit, char *string)
 | 
			
		||||
{
 | 
			
		||||
    bool extracting = false;
 | 
			
		||||
    int i = 0;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(string);
 | 
			
		||||
    ogs_assert(digit);
 | 
			
		||||
 | 
			
		||||
    while (*string && i < OGS_MAX_IMSI_BCD_LEN) {
 | 
			
		||||
        if (*string >= '0' && *string <= '9') {
 | 
			
		||||
            *digit++ = *string;
 | 
			
		||||
            extracting = true;
 | 
			
		||||
        } else if (extracting == true) {
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        string++;
 | 
			
		||||
        i++;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    *digit = 0;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -49,8 +49,6 @@ char *ogs_uint64_to_string(uint64_t x);
 | 
			
		||||
ogs_uint24_t ogs_uint24_from_string(char *str);
 | 
			
		||||
uint64_t ogs_uint64_from_string(char *str);
 | 
			
		||||
 | 
			
		||||
void ogs_extract_digit_from_string(char *digit, char *string);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -62,7 +62,6 @@
 | 
			
		||||
#include "core/ogs-hash.h"
 | 
			
		||||
#include "core/ogs-misc.h"
 | 
			
		||||
#include "core/ogs-getopt.h"
 | 
			
		||||
#include "core/ogs-3gpp-types.h"
 | 
			
		||||
 | 
			
		||||
#undef OGS_CORE_INSIDE
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@
 | 
			
		||||
char *ogs_strerror(ogs_err_t err, char *buf, size_t size)
 | 
			
		||||
{
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
	/*
 | 
			
		||||
    /*
 | 
			
		||||
     * The following code is stolen from APR Library
 | 
			
		||||
     * http://svn.apache.org/repos/asf/apr/apr/trunk/misc/unix/errorcodes.c
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -34,69 +34,116 @@ const char *OGS_FSM_NAME_INIT_SIG = "INIT";
 | 
			
		||||
const char *OGS_FSM_NAME_ENTRY_SIG = "ENTRY";
 | 
			
		||||
const char *OGS_FSM_NAME_EXIT_SIG = "EXIT";
 | 
			
		||||
 | 
			
		||||
void ogs_fsm_init(void *sm, void *event)
 | 
			
		||||
static void fsm_entry(ogs_fsm_t *sm, ogs_fsm_handler_t state, fsm_event_t *e)
 | 
			
		||||
{
 | 
			
		||||
    ogs_fsm_t *s = sm;
 | 
			
		||||
    fsm_event_t *e = event;
 | 
			
		||||
    ogs_assert(s);
 | 
			
		||||
    ogs_assert(sm);
 | 
			
		||||
    ogs_assert(state);
 | 
			
		||||
 | 
			
		||||
    if (s->init != NULL) {
 | 
			
		||||
        (*s->init)(s, e);
 | 
			
		||||
        if (s->init != s->state) {
 | 
			
		||||
            if (e) {
 | 
			
		||||
                e->id = OGS_FSM_ENTRY_SIG;
 | 
			
		||||
                (*s->state)(s, e);
 | 
			
		||||
            } else {
 | 
			
		||||
                (*s->state)(s, &entry_event);
 | 
			
		||||
            }
 | 
			
		||||
    if (e) {
 | 
			
		||||
        e->id = OGS_FSM_ENTRY_SIG;
 | 
			
		||||
        (*state)(sm, e);
 | 
			
		||||
    } else {
 | 
			
		||||
        (*state)(sm, &entry_event);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void fsm_exit(ogs_fsm_t *sm, ogs_fsm_handler_t state, fsm_event_t *e)
 | 
			
		||||
{
 | 
			
		||||
    ogs_assert(sm);
 | 
			
		||||
    ogs_assert(state);
 | 
			
		||||
 | 
			
		||||
    if (e) {
 | 
			
		||||
        e->id = OGS_FSM_EXIT_SIG;
 | 
			
		||||
        (*state)(sm, e);
 | 
			
		||||
    } else {
 | 
			
		||||
        (*state)(sm, &exit_event);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void fsm_change(
 | 
			
		||||
        ogs_fsm_t *sm,
 | 
			
		||||
        ogs_fsm_handler_t oldstate,
 | 
			
		||||
        ogs_fsm_handler_t newstate,
 | 
			
		||||
        fsm_event_t *e)
 | 
			
		||||
{
 | 
			
		||||
    ogs_assert(sm);
 | 
			
		||||
    ogs_assert(oldstate);
 | 
			
		||||
    ogs_assert(newstate);
 | 
			
		||||
 | 
			
		||||
    fsm_exit(sm, oldstate, e);
 | 
			
		||||
    fsm_entry(sm, newstate, e);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ogs_fsm_init(void *fsm, void *init, void *fini, void *event)
 | 
			
		||||
{
 | 
			
		||||
    ogs_fsm_t *sm = fsm;
 | 
			
		||||
    fsm_event_t *e = event;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(sm);
 | 
			
		||||
 | 
			
		||||
    sm->init = sm->state = init;
 | 
			
		||||
    sm->fini = fini;
 | 
			
		||||
 | 
			
		||||
    if (sm->init) {
 | 
			
		||||
        (*sm->init)(sm, e);
 | 
			
		||||
 | 
			
		||||
        if (sm->init != sm->state) {
 | 
			
		||||
            ogs_assert(sm->state);
 | 
			
		||||
            fsm_entry(sm, sm->state, e);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ogs_fsm_dispatch(void *sm, void *event)
 | 
			
		||||
void ogs_fsm_tran(void *fsm, void *state, void *event)
 | 
			
		||||
{
 | 
			
		||||
    ogs_fsm_t *s = sm;
 | 
			
		||||
    ogs_fsm_t *sm = fsm;
 | 
			
		||||
    fsm_event_t *e = event;
 | 
			
		||||
    ogs_assert(s);
 | 
			
		||||
    ogs_fsm_handler_t tmp = s->state;
 | 
			
		||||
    ogs_fsm_handler_t tmp = NULL;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(sm);
 | 
			
		||||
 | 
			
		||||
    tmp = sm->state;
 | 
			
		||||
    ogs_assert(tmp);
 | 
			
		||||
 | 
			
		||||
    sm->state = state;
 | 
			
		||||
    ogs_assert(sm->state);
 | 
			
		||||
 | 
			
		||||
    if (sm->state != tmp)
 | 
			
		||||
        fsm_change(fsm, tmp, sm->state, e);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ogs_fsm_dispatch(void *fsm, void *event)
 | 
			
		||||
{
 | 
			
		||||
    ogs_fsm_t *sm = fsm;
 | 
			
		||||
    fsm_event_t *e = event;
 | 
			
		||||
    ogs_fsm_handler_t tmp = NULL;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(sm);
 | 
			
		||||
 | 
			
		||||
    tmp = sm->state;
 | 
			
		||||
    ogs_assert(tmp);
 | 
			
		||||
 | 
			
		||||
    if (e)
 | 
			
		||||
        (*tmp)(s, e);
 | 
			
		||||
        (*tmp)(sm, e);
 | 
			
		||||
 | 
			
		||||
    if (s->state != tmp) {
 | 
			
		||||
        if (e) {
 | 
			
		||||
            e->id = OGS_FSM_EXIT_SIG;
 | 
			
		||||
            (*tmp)(s, e);
 | 
			
		||||
        } else {
 | 
			
		||||
            (*tmp)(s, &exit_event);
 | 
			
		||||
        }
 | 
			
		||||
        if (e) {
 | 
			
		||||
            e->id = OGS_FSM_ENTRY_SIG;
 | 
			
		||||
            (*s->state)(s, e);
 | 
			
		||||
        } else {
 | 
			
		||||
            (*s->state)(s, &entry_event);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if (sm->state != tmp)
 | 
			
		||||
        fsm_change(fsm, tmp, sm->state, e);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void ogs_fsm_fini(void *sm, void *event)
 | 
			
		||||
void ogs_fsm_fini(void *fsm, void *event)
 | 
			
		||||
{
 | 
			
		||||
    ogs_fsm_t *s = sm;
 | 
			
		||||
    ogs_fsm_t *sm = fsm;
 | 
			
		||||
    fsm_event_t *e = event;
 | 
			
		||||
    ogs_assert(s);
 | 
			
		||||
 | 
			
		||||
    if (s->fini != s->state) {
 | 
			
		||||
        if (e) {
 | 
			
		||||
            e->id = OGS_FSM_EXIT_SIG;
 | 
			
		||||
            (*s->state)(s, e);
 | 
			
		||||
        } else {
 | 
			
		||||
            (*s->state)(s, &exit_event);
 | 
			
		||||
        }
 | 
			
		||||
    ogs_assert(sm);
 | 
			
		||||
 | 
			
		||||
    if (sm->fini != sm->state) {
 | 
			
		||||
        ogs_assert(sm->state);
 | 
			
		||||
        fsm_exit(sm, sm->state, e);
 | 
			
		||||
 | 
			
		||||
        if (sm->fini)
 | 
			
		||||
            (*sm->fini)(sm, e);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (s->fini != NULL) {
 | 
			
		||||
        (*s->fini)(s, e);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    s->state = s->init;
 | 
			
		||||
    sm->init = sm->state = sm->fini = NULL;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -46,16 +46,10 @@ typedef struct _ogs_fsm_t {
 | 
			
		||||
    ogs_fsm_handler_t state;
 | 
			
		||||
} ogs_fsm_t;
 | 
			
		||||
 | 
			
		||||
#define ogs_fsm_create(__s, __i, __f) \
 | 
			
		||||
    (((__s)->init = (__s)->state = (ogs_fsm_handler_t)(__i)), \
 | 
			
		||||
     (__s)->fini = (ogs_fsm_handler_t)(__f))
 | 
			
		||||
 | 
			
		||||
#define ogs_fsm_delete(__s) \
 | 
			
		||||
    ((__s)->init = (__s)->state = (__s)->fini = NULL)
 | 
			
		||||
 | 
			
		||||
void ogs_fsm_init(void *sm, void *event);
 | 
			
		||||
void ogs_fsm_dispatch(void *sm, void *event);
 | 
			
		||||
void ogs_fsm_fini(void *sm, void *event);
 | 
			
		||||
void ogs_fsm_init(void *fsm, void *init, void *fini, void *event);
 | 
			
		||||
void ogs_fsm_tran(void *fsm, void *state, void *event);
 | 
			
		||||
void ogs_fsm_dispatch(void *fsm, void *event);
 | 
			
		||||
void ogs_fsm_fini(void *fsm, void *event);
 | 
			
		||||
 | 
			
		||||
#define OGS_FSM_TRAN(__s, __target) \
 | 
			
		||||
    ((ogs_fsm_t *)__s)->state = (ogs_fsm_handler_t)(__target)
 | 
			
		||||
 
 | 
			
		||||
@@ -52,8 +52,8 @@ const ogs_pollset_actions_t ogs_kqueue_actions = {
 | 
			
		||||
struct kqueue_context_s {
 | 
			
		||||
    int kqueue;
 | 
			
		||||
 | 
			
		||||
	struct kevent *change_list;
 | 
			
		||||
	struct kevent *event_list;
 | 
			
		||||
    struct kevent *change_list;
 | 
			
		||||
    struct kevent *event_list;
 | 
			
		||||
    int nchanges, nevents;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -66,12 +66,12 @@ static void kqueue_init(ogs_pollset_t *pollset)
 | 
			
		||||
    ogs_assert(context);
 | 
			
		||||
    pollset->context = context;
 | 
			
		||||
 | 
			
		||||
	context->change_list = ogs_calloc(
 | 
			
		||||
    context->change_list = ogs_calloc(
 | 
			
		||||
        pollset->capacity, sizeof(struct kevent));
 | 
			
		||||
    ogs_assert(context->change_list);
 | 
			
		||||
	context->event_list = ogs_calloc(
 | 
			
		||||
    context->event_list = ogs_calloc(
 | 
			
		||||
        pollset->capacity, sizeof(struct kevent));
 | 
			
		||||
	ogs_assert(context->change_list);
 | 
			
		||||
    ogs_assert(context->change_list);
 | 
			
		||||
    context->nchanges = 0;
 | 
			
		||||
    context->nevents = pollset->capacity;
 | 
			
		||||
 | 
			
		||||
@@ -89,8 +89,8 @@ static void kqueue_cleanup(ogs_pollset_t *pollset)
 | 
			
		||||
    context = pollset->context;
 | 
			
		||||
    ogs_assert(context);
 | 
			
		||||
 | 
			
		||||
	ogs_free(context->change_list);
 | 
			
		||||
	ogs_free(context->event_list);
 | 
			
		||||
    ogs_free(context->change_list);
 | 
			
		||||
    ogs_free(context->event_list);
 | 
			
		||||
 | 
			
		||||
    close(context->kqueue);
 | 
			
		||||
 | 
			
		||||
@@ -215,75 +215,75 @@ static int kqueue_process(ogs_pollset_t *pollset, ogs_time_t timeout)
 | 
			
		||||
        return OGS_TIMEUP;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < n; i++) {
 | 
			
		||||
    for (i = 0; i < n; i++) {
 | 
			
		||||
        ogs_poll_t *poll = NULL;
 | 
			
		||||
        short when = 0;
 | 
			
		||||
 | 
			
		||||
        if (context->event_list[i].flags & EV_ERROR) {
 | 
			
		||||
			switch (context->event_list[i].data) {
 | 
			
		||||
            switch (context->event_list[i].data) {
 | 
			
		||||
 | 
			
		||||
			/* Can occur on delete if we are not currently
 | 
			
		||||
			 * watching any events on this fd.  That can
 | 
			
		||||
			 * happen when the fd was closed and another
 | 
			
		||||
			 * file was opened with that fd. */
 | 
			
		||||
			case ENOENT:
 | 
			
		||||
			/* Can occur for reasons not fully understood
 | 
			
		||||
			 * on FreeBSD. */
 | 
			
		||||
			case EINVAL:
 | 
			
		||||
				continue;
 | 
			
		||||
            /* Can occur on delete if we are not currently
 | 
			
		||||
             * watching any events on this fd.  That can
 | 
			
		||||
             * happen when the fd was closed and another
 | 
			
		||||
             * file was opened with that fd. */
 | 
			
		||||
            case ENOENT:
 | 
			
		||||
            /* Can occur for reasons not fully understood
 | 
			
		||||
             * on FreeBSD. */
 | 
			
		||||
            case EINVAL:
 | 
			
		||||
                continue;
 | 
			
		||||
#if defined(__FreeBSD__)
 | 
			
		||||
			/*
 | 
			
		||||
			 * This currently occurs if an FD is closed
 | 
			
		||||
			 * before the EV_DELETE makes it out via kevent().
 | 
			
		||||
			 * The FreeBSD capabilities code sees the blank
 | 
			
		||||
			 * capability set and rejects the request to
 | 
			
		||||
			 * modify an event.
 | 
			
		||||
			 *
 | 
			
		||||
			 * To be strictly correct - when an FD is closed,
 | 
			
		||||
			 * all the registered events are also removed.
 | 
			
		||||
			 * Queuing EV_DELETE to a closed FD is wrong.
 | 
			
		||||
			 * The event(s) should just be deleted from
 | 
			
		||||
			 * the pending changelist.
 | 
			
		||||
			 */
 | 
			
		||||
			case ENOTCAPABLE:
 | 
			
		||||
				continue;
 | 
			
		||||
            /*
 | 
			
		||||
             * This currently occurs if an FD is closed
 | 
			
		||||
             * before the EV_DELETE makes it out via kevent().
 | 
			
		||||
             * The FreeBSD capabilities code sees the blank
 | 
			
		||||
             * capability set and rejects the request to
 | 
			
		||||
             * modify an event.
 | 
			
		||||
             *
 | 
			
		||||
             * To be strictly correct - when an FD is closed,
 | 
			
		||||
             * all the registered events are also removed.
 | 
			
		||||
             * Queuing EV_DELETE to a closed FD is wrong.
 | 
			
		||||
             * The event(s) should just be deleted from
 | 
			
		||||
             * the pending changelist.
 | 
			
		||||
             */
 | 
			
		||||
            case ENOTCAPABLE:
 | 
			
		||||
                continue;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
			/* Can occur on a delete if the fd is closed. */
 | 
			
		||||
			case EBADF:
 | 
			
		||||
				/* XXXX On NetBSD, we can also get EBADF if we
 | 
			
		||||
				 * try to add the write side of a pipe, but
 | 
			
		||||
				 * the read side has already been closed.
 | 
			
		||||
				 * Other BSDs call this situation 'EPIPE'. It
 | 
			
		||||
				 * would be good if we had a way to report
 | 
			
		||||
				 * this situation. */
 | 
			
		||||
				continue;
 | 
			
		||||
			/* These two can occur on an add if the fd was one side
 | 
			
		||||
			 * of a pipe, and the other side was closed. */
 | 
			
		||||
			case EPERM:
 | 
			
		||||
			case EPIPE:
 | 
			
		||||
				/* Report read events, if we're listening for
 | 
			
		||||
				 * them, so that the user can learn about any
 | 
			
		||||
				 * add errors.  (If the operation was a
 | 
			
		||||
				 * delete, then udata should be cleared.) */
 | 
			
		||||
				if (context->event_list[i].udata) {
 | 
			
		||||
					/* The operation was an add:
 | 
			
		||||
					 * report the error as a read. */
 | 
			
		||||
					when |= OGS_POLLIN;
 | 
			
		||||
					break;
 | 
			
		||||
				} else {
 | 
			
		||||
					/* The operation was a del:
 | 
			
		||||
					 * report nothing. */
 | 
			
		||||
					continue;
 | 
			
		||||
				}
 | 
			
		||||
            /* Can occur on a delete if the fd is closed. */
 | 
			
		||||
            case EBADF:
 | 
			
		||||
                /* XXXX On NetBSD, we can also get EBADF if we
 | 
			
		||||
                 * try to add the write side of a pipe, but
 | 
			
		||||
                 * the read side has already been closed.
 | 
			
		||||
                 * Other BSDs call this situation 'EPIPE'. It
 | 
			
		||||
                 * would be good if we had a way to report
 | 
			
		||||
                 * this situation. */
 | 
			
		||||
                continue;
 | 
			
		||||
            /* These two can occur on an add if the fd was one side
 | 
			
		||||
             * of a pipe, and the other side was closed. */
 | 
			
		||||
            case EPERM:
 | 
			
		||||
            case EPIPE:
 | 
			
		||||
                /* Report read events, if we're listening for
 | 
			
		||||
                 * them, so that the user can learn about any
 | 
			
		||||
                 * add errors.  (If the operation was a
 | 
			
		||||
                 * delete, then udata should be cleared.) */
 | 
			
		||||
                if (context->event_list[i].udata) {
 | 
			
		||||
                    /* The operation was an add:
 | 
			
		||||
                     * report the error as a read. */
 | 
			
		||||
                    when |= OGS_POLLIN;
 | 
			
		||||
                    break;
 | 
			
		||||
                } else {
 | 
			
		||||
                    /* The operation was a del:
 | 
			
		||||
                     * report nothing. */
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
			/* Other errors shouldn't occur. */
 | 
			
		||||
			default:
 | 
			
		||||
            /* Other errors shouldn't occur. */
 | 
			
		||||
            default:
 | 
			
		||||
                ogs_error("kevent() error : flags = 0x%x, errno = %d",
 | 
			
		||||
                        context->event_list[i].flags,
 | 
			
		||||
                        (int)context->event_list[i].data);
 | 
			
		||||
				return OGS_ERROR;
 | 
			
		||||
			}
 | 
			
		||||
                return OGS_ERROR;
 | 
			
		||||
            }
 | 
			
		||||
        } else if (context->event_list[i].filter == EVFILT_READ) {
 | 
			
		||||
            when |= OGS_POLLIN;
 | 
			
		||||
        } else if (context->event_list[i].filter == EVFILT_WRITE) {
 | 
			
		||||
@@ -316,7 +316,7 @@ static void kqueue_notify_init(ogs_pollset_t *pollset)
 | 
			
		||||
    int rc;
 | 
			
		||||
    struct kqueue_context_s *context = NULL;
 | 
			
		||||
    struct kevent kev;
 | 
			
		||||
	struct timespec timeout = { 0, 0 };
 | 
			
		||||
    struct timespec timeout = { 0, 0 };
 | 
			
		||||
    ogs_assert(pollset);
 | 
			
		||||
 | 
			
		||||
    ogs_assert(pollset);
 | 
			
		||||
@@ -325,8 +325,8 @@ static void kqueue_notify_init(ogs_pollset_t *pollset)
 | 
			
		||||
 | 
			
		||||
    memset(&kev, 0, sizeof kev);
 | 
			
		||||
    kev.ident = NOTIFY_IDENT;
 | 
			
		||||
	kev.filter = EVFILT_USER;
 | 
			
		||||
	kev.flags = EV_ADD | EV_CLEAR;
 | 
			
		||||
    kev.filter = EVFILT_USER;
 | 
			
		||||
    kev.flags = EV_ADD | EV_CLEAR;
 | 
			
		||||
 | 
			
		||||
    rc = kevent(context->kqueue, &kev, 1, NULL, 0, &timeout);
 | 
			
		||||
    ogs_assert(rc != -1);
 | 
			
		||||
@@ -337,7 +337,7 @@ static int kqueue_notify_pollset(ogs_pollset_t *pollset)
 | 
			
		||||
    int rc;
 | 
			
		||||
    struct kqueue_context_s *context = NULL;
 | 
			
		||||
    struct kevent kev;
 | 
			
		||||
	struct timespec timeout = { 0, 0 };
 | 
			
		||||
    struct timespec timeout = { 0, 0 };
 | 
			
		||||
    ogs_assert(pollset);
 | 
			
		||||
 | 
			
		||||
    ogs_assert(pollset);
 | 
			
		||||
@@ -346,8 +346,8 @@ static int kqueue_notify_pollset(ogs_pollset_t *pollset)
 | 
			
		||||
 | 
			
		||||
    memset(&kev, 0, sizeof kev);
 | 
			
		||||
    kev.ident = NOTIFY_IDENT;
 | 
			
		||||
	kev.filter = EVFILT_USER;
 | 
			
		||||
	kev.fflags = NOTE_TRIGGER;
 | 
			
		||||
    kev.filter = EVFILT_USER;
 | 
			
		||||
    kev.fflags = NOTE_TRIGGER;
 | 
			
		||||
 | 
			
		||||
    rc = kevent(context->kqueue, &kev, 1, NULL, 0, &timeout);
 | 
			
		||||
    if (rc == -1) {
 | 
			
		||||
 
 | 
			
		||||
@@ -113,7 +113,7 @@ void ogs_log_hexdump_func(ogs_log_level_e level, int domain_id,
 | 
			
		||||
 | 
			
		||||
#define ogs_assert_if_reached() \
 | 
			
		||||
    do { \
 | 
			
		||||
        ogs_warn("%s: should not be reached.", OGS_FUNC); \
 | 
			
		||||
        ogs_fatal("%s: should not be reached.", OGS_FUNC); \
 | 
			
		||||
        ogs_abort(); \
 | 
			
		||||
    } while(0)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -196,8 +196,8 @@ static ogs_inline ogs_uint24_t ogs_htobe24(ogs_uint24_t x)
 | 
			
		||||
                              __switch_p__; \
 | 
			
		||||
                              __switch_p__ = 0, __switch_next__ = 1) { {
 | 
			
		||||
    #define CASE(X)            } if (!__switch_next__ || \
 | 
			
		||||
                                     !(__switch_next__ = \
 | 
			
		||||
                                         strcmp(__switch_p__, X))) {
 | 
			
		||||
                                     (__switch_next__ = \
 | 
			
		||||
                                         strcmp(__switch_p__, X)) == 0) {
 | 
			
		||||
    #define DEFAULT            } {
 | 
			
		||||
    #define END          }}}
 | 
			
		||||
#endif
 | 
			
		||||
@@ -206,10 +206,22 @@ static ogs_inline ogs_uint24_t ogs_htobe24(ogs_uint24_t x)
 | 
			
		||||
#define OGS_MAX_FILEPATH_LEN            256
 | 
			
		||||
#define OGS_MAX_IFNAME_LEN              32
 | 
			
		||||
 | 
			
		||||
#define OGS_MAX_SDU_LEN                 32768 /* Should Heap */
 | 
			
		||||
#define OGS_HUGE_LEN                    8192  /* Can Stack */
 | 
			
		||||
#define OGS_MAX_PKT_LEN                 2048
 | 
			
		||||
 | 
			
		||||
#define OGS_FILE_LINE __FILE__ ":" OGS_STRINGIFY(__LINE__)
 | 
			
		||||
 | 
			
		||||
#define ogs_uint64_to_uint32(x) ((x >= 0xffffffffUL) ? 0xffffffffU : x)
 | 
			
		||||
 | 
			
		||||
#define OGS_OBJECT_REF(__oBJ) \
 | 
			
		||||
    ((__oBJ)->reference_count)++, \
 | 
			
		||||
    ogs_debug("[REF] %d", ((__oBJ)->reference_count))
 | 
			
		||||
#define OGS_OBJECT_UNREF(__oBJ) \
 | 
			
		||||
    ogs_debug("[UNREF] %d", ((__oBJ)->reference_count)), \
 | 
			
		||||
    ((__oBJ)->reference_count)--
 | 
			
		||||
#define OGS_OBJECT_IS_REF(__oBJ) ((__oBJ)->reference_count > 1)
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,20 @@
 | 
			
		||||
#define OGS_CLUSTER_1024_SIZE   1024
 | 
			
		||||
#define OGS_CLUSTER_2048_SIZE   2048
 | 
			
		||||
#define OGS_CLUSTER_8192_SIZE   8192
 | 
			
		||||
#define OGS_CLUSTER_BIG_SIZE    1024*1024
 | 
			
		||||
#define OGS_CLUSTER_32768_SIZE  32768
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *
 | 
			
		||||
 * In lib/core/ogs-kqueue.c:69
 | 
			
		||||
 *   context->change_list = ogs_calloc(
 | 
			
		||||
 *       pollset->capacity, sizeof(struct kevent));
 | 
			
		||||
 *   1. pollset->capacity : 1024*16
 | 
			
		||||
 *   2. sizeof(struct kevent) : 64
 | 
			
		||||
 *   3. sizeof(ogs_pkbuf_t *) is headroom in ogs_calloc()
 | 
			
		||||
 *
 | 
			
		||||
 * So, we use BIG_SIZE : 1024*(16*64=1024)*64+8
 | 
			
		||||
 */
 | 
			
		||||
#define OGS_CLUSTER_BIG_SIZE    (1024*1024+sizeof(ogs_pkbuf_t *))
 | 
			
		||||
 | 
			
		||||
typedef uint8_t ogs_cluster_128_t[OGS_CLUSTER_128_SIZE];
 | 
			
		||||
typedef uint8_t ogs_cluster_256_t[OGS_CLUSTER_256_SIZE];
 | 
			
		||||
@@ -37,6 +50,7 @@ typedef uint8_t ogs_cluster_512_t[OGS_CLUSTER_512_SIZE];
 | 
			
		||||
typedef uint8_t ogs_cluster_1024_t[OGS_CLUSTER_1024_SIZE];
 | 
			
		||||
typedef uint8_t ogs_cluster_2048_t[OGS_CLUSTER_2048_SIZE];
 | 
			
		||||
typedef uint8_t ogs_cluster_8192_t[OGS_CLUSTER_8192_SIZE];
 | 
			
		||||
typedef uint8_t ogs_cluster_32768_t[OGS_CLUSTER_32768_SIZE];
 | 
			
		||||
typedef uint8_t ogs_cluster_big_t[OGS_CLUSTER_BIG_SIZE];
 | 
			
		||||
 | 
			
		||||
OGS_STATIC_ASSERT(sizeof(ogs_cluster_128_t) % sizeof(void *) == 0);
 | 
			
		||||
@@ -45,6 +59,7 @@ OGS_STATIC_ASSERT(sizeof(ogs_cluster_512_t) % sizeof(void *) == 0);
 | 
			
		||||
OGS_STATIC_ASSERT(sizeof(ogs_cluster_1024_t) % sizeof(void *) == 0);
 | 
			
		||||
OGS_STATIC_ASSERT(sizeof(ogs_cluster_2048_t) % sizeof(void *) == 0);
 | 
			
		||||
OGS_STATIC_ASSERT(sizeof(ogs_cluster_8192_t) % sizeof(void *) == 0);
 | 
			
		||||
OGS_STATIC_ASSERT(sizeof(ogs_cluster_32768_t) % sizeof(void *) == 0);
 | 
			
		||||
OGS_STATIC_ASSERT(sizeof(ogs_cluster_big_t) % sizeof(void *) == 0);
 | 
			
		||||
 | 
			
		||||
typedef struct ogs_pkbuf_pool_s {
 | 
			
		||||
@@ -57,6 +72,7 @@ typedef struct ogs_pkbuf_pool_s {
 | 
			
		||||
    OGS_POOL(cluster_1024, ogs_cluster_1024_t);
 | 
			
		||||
    OGS_POOL(cluster_2048, ogs_cluster_2048_t);
 | 
			
		||||
    OGS_POOL(cluster_8192, ogs_cluster_8192_t);
 | 
			
		||||
    OGS_POOL(cluster_32768, ogs_cluster_32768_t);
 | 
			
		||||
    OGS_POOL(cluster_big, ogs_cluster_big_t);
 | 
			
		||||
 | 
			
		||||
    ogs_thread_mutex_t mutex;
 | 
			
		||||
@@ -104,7 +120,8 @@ void ogs_pkbuf_default_init(ogs_pkbuf_config_t *config)
 | 
			
		||||
    config->cluster_512_pool = 4096;
 | 
			
		||||
    config->cluster_1024_pool = 2048;
 | 
			
		||||
    config->cluster_2048_pool = 1024;
 | 
			
		||||
    config->cluster_8192_pool = 512;
 | 
			
		||||
    config->cluster_8192_pool = 256;
 | 
			
		||||
    config->cluster_32768_pool = 64;
 | 
			
		||||
    config->cluster_big_pool = 8;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
@@ -140,7 +157,7 @@ ogs_pkbuf_pool_t *ogs_pkbuf_pool_create(ogs_pkbuf_config_t *config)
 | 
			
		||||
    tmp = config->cluster_128_pool + config->cluster_256_pool +
 | 
			
		||||
        config->cluster_512_pool + config->cluster_1024_pool +
 | 
			
		||||
        config->cluster_2048_pool + config->cluster_8192_pool +
 | 
			
		||||
        config->cluster_big_pool;
 | 
			
		||||
        config->cluster_32768_pool + config->cluster_big_pool;
 | 
			
		||||
 | 
			
		||||
    ogs_pool_init(&pool->pkbuf, tmp);
 | 
			
		||||
    ogs_pool_init(&pool->cluster, tmp);
 | 
			
		||||
@@ -151,6 +168,7 @@ ogs_pkbuf_pool_t *ogs_pkbuf_pool_create(ogs_pkbuf_config_t *config)
 | 
			
		||||
    ogs_pool_init(&pool->cluster_1024, config->cluster_1024_pool);
 | 
			
		||||
    ogs_pool_init(&pool->cluster_2048, config->cluster_2048_pool);
 | 
			
		||||
    ogs_pool_init(&pool->cluster_8192, config->cluster_8192_pool);
 | 
			
		||||
    ogs_pool_init(&pool->cluster_32768, config->cluster_32768_pool);
 | 
			
		||||
    ogs_pool_init(&pool->cluster_big, config->cluster_big_pool);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -189,6 +207,7 @@ void ogs_pkbuf_pool_destroy(ogs_pkbuf_pool_t *pool)
 | 
			
		||||
    ogs_pool_final(&pool->cluster_1024);
 | 
			
		||||
    ogs_pool_final(&pool->cluster_2048);
 | 
			
		||||
    ogs_pool_final(&pool->cluster_8192);
 | 
			
		||||
    ogs_pool_final(&pool->cluster_32768);
 | 
			
		||||
    ogs_pool_final(&pool->cluster_big);
 | 
			
		||||
 | 
			
		||||
    ogs_thread_mutex_destroy(&pool->mutex);
 | 
			
		||||
@@ -245,7 +264,7 @@ ogs_pkbuf_t *ogs_pkbuf_alloc_debug(
 | 
			
		||||
    }
 | 
			
		||||
    memset(pkbuf, 0, sizeof(*pkbuf));
 | 
			
		||||
 | 
			
		||||
    cluster->ref++;
 | 
			
		||||
    OGS_OBJECT_REF(cluster);
 | 
			
		||||
 | 
			
		||||
    pkbuf->cluster = cluster;
 | 
			
		||||
 | 
			
		||||
@@ -283,8 +302,9 @@ void ogs_pkbuf_free(ogs_pkbuf_t *pkbuf)
 | 
			
		||||
    cluster = pkbuf->cluster;
 | 
			
		||||
    ogs_assert(cluster);
 | 
			
		||||
 | 
			
		||||
    cluster->ref--;
 | 
			
		||||
    if (cluster->ref == 0)
 | 
			
		||||
    if (OGS_OBJECT_IS_REF(cluster))
 | 
			
		||||
        OGS_OBJECT_UNREF(cluster);
 | 
			
		||||
    else
 | 
			
		||||
        cluster_free(pool, pkbuf->cluster);
 | 
			
		||||
 | 
			
		||||
    ogs_pool_free(&pool->pkbuf, pkbuf);
 | 
			
		||||
@@ -297,11 +317,21 @@ ogs_pkbuf_t *ogs_pkbuf_copy_debug(ogs_pkbuf_t *pkbuf, const char *file_line)
 | 
			
		||||
{
 | 
			
		||||
#if OGS_USE_TALLOC
 | 
			
		||||
    ogs_pkbuf_t *newbuf;
 | 
			
		||||
#else
 | 
			
		||||
    ogs_pkbuf_pool_t *pool = NULL;
 | 
			
		||||
    ogs_pkbuf_t *newbuf = NULL;
 | 
			
		||||
#endif
 | 
			
		||||
    int size = 0;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(pkbuf);
 | 
			
		||||
    size = pkbuf->end - pkbuf->head;
 | 
			
		||||
    ogs_assert(size > 0);
 | 
			
		||||
    if (size <= 0) {
 | 
			
		||||
        ogs_error("Invalid argument[size=%d, head=%p, end=%p] in (%s)",
 | 
			
		||||
                size, pkbuf->head, pkbuf->end, file_line);
 | 
			
		||||
        return NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if OGS_USE_TALLOC
 | 
			
		||||
    newbuf = ogs_pkbuf_alloc_debug(NULL, size, file_line);
 | 
			
		||||
    if (!newbuf) {
 | 
			
		||||
        ogs_error("ogs_pkbuf_alloc() failed [size=%d]", size);
 | 
			
		||||
@@ -319,10 +349,6 @@ ogs_pkbuf_t *ogs_pkbuf_copy_debug(ogs_pkbuf_t *pkbuf, const char *file_line)
 | 
			
		||||
 | 
			
		||||
    return newbuf;
 | 
			
		||||
#else
 | 
			
		||||
    ogs_pkbuf_pool_t *pool = NULL;
 | 
			
		||||
    ogs_pkbuf_t *newbuf = NULL;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(pkbuf);
 | 
			
		||||
    pool = pkbuf->pool;
 | 
			
		||||
    ogs_assert(pool);
 | 
			
		||||
 | 
			
		||||
@@ -330,14 +356,14 @@ ogs_pkbuf_t *ogs_pkbuf_copy_debug(ogs_pkbuf_t *pkbuf, const char *file_line)
 | 
			
		||||
 | 
			
		||||
    ogs_pool_alloc(&pool->pkbuf, &newbuf);
 | 
			
		||||
    if (!newbuf) {
 | 
			
		||||
        ogs_error("ogs_pkbuf_copy() failed");
 | 
			
		||||
        ogs_error("ogs_pkbuf_copy() failed [size=%d]", size);
 | 
			
		||||
        ogs_thread_mutex_unlock(&pool->mutex);
 | 
			
		||||
        return NULL;
 | 
			
		||||
    }
 | 
			
		||||
    ogs_assert(newbuf);
 | 
			
		||||
    memcpy(newbuf, pkbuf, sizeof *pkbuf);
 | 
			
		||||
 | 
			
		||||
    newbuf->cluster->ref++;
 | 
			
		||||
    OGS_OBJECT_REF(newbuf->cluster);
 | 
			
		||||
 | 
			
		||||
    ogs_thread_mutex_unlock(&pool->mutex);
 | 
			
		||||
#endif
 | 
			
		||||
@@ -379,8 +405,18 @@ static ogs_cluster_t *cluster_alloc(
 | 
			
		||||
        cluster->size = OGS_CLUSTER_2048_SIZE;
 | 
			
		||||
    } else if (size <= OGS_CLUSTER_8192_SIZE) {
 | 
			
		||||
        ogs_pool_alloc(&pool->cluster_8192, (ogs_cluster_8192_t**)&buffer);
 | 
			
		||||
        ogs_expect_or_return_val(buffer, NULL);
 | 
			
		||||
        if (!buffer) {
 | 
			
		||||
            ogs_error("ogs_pool_alloc() failed");
 | 
			
		||||
            return NULL;
 | 
			
		||||
        }
 | 
			
		||||
        cluster->size = OGS_CLUSTER_8192_SIZE;
 | 
			
		||||
    } else if (size <= OGS_CLUSTER_32768_SIZE) {
 | 
			
		||||
        ogs_pool_alloc(&pool->cluster_32768, (ogs_cluster_32768_t**)&buffer);
 | 
			
		||||
        if (!buffer) {
 | 
			
		||||
            ogs_error("ogs_pool_alloc() failed");
 | 
			
		||||
            return NULL;
 | 
			
		||||
        }
 | 
			
		||||
        cluster->size = OGS_CLUSTER_32768_SIZE;
 | 
			
		||||
    } else if (size <= OGS_CLUSTER_BIG_SIZE) {
 | 
			
		||||
        ogs_pool_alloc(&pool->cluster_big, (ogs_cluster_big_t**)&buffer);
 | 
			
		||||
        ogs_expect_or_return_val(buffer, NULL);
 | 
			
		||||
@@ -422,6 +458,10 @@ static void cluster_free(ogs_pkbuf_pool_t *pool, ogs_cluster_t *cluster)
 | 
			
		||||
        ogs_pool_free(
 | 
			
		||||
                &pool->cluster_8192, (ogs_cluster_8192_t*)cluster->buffer);
 | 
			
		||||
        break;
 | 
			
		||||
    case OGS_CLUSTER_32768_SIZE:
 | 
			
		||||
        ogs_pool_free(
 | 
			
		||||
                &pool->cluster_32768, (ogs_cluster_32768_t*)cluster->buffer);
 | 
			
		||||
        break;
 | 
			
		||||
    case OGS_CLUSTER_BIG_SIZE:
 | 
			
		||||
        ogs_pool_free(&pool->cluster_big, (ogs_cluster_big_t*)cluster->buffer);
 | 
			
		||||
        break;
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ typedef struct ogs_cluster_s {
 | 
			
		||||
    unsigned char *buffer;
 | 
			
		||||
    unsigned int size;
 | 
			
		||||
 | 
			
		||||
    unsigned int ref;
 | 
			
		||||
    unsigned int reference_count;
 | 
			
		||||
} ogs_cluster_t;
 | 
			
		||||
 | 
			
		||||
#if OGS_USE_TALLOC
 | 
			
		||||
@@ -69,6 +69,7 @@ typedef struct ogs_pkbuf_config_s {
 | 
			
		||||
    int cluster_1024_pool;
 | 
			
		||||
    int cluster_2048_pool;
 | 
			
		||||
    int cluster_8192_pool;
 | 
			
		||||
    int cluster_32768_pool;
 | 
			
		||||
    int cluster_big_pool;
 | 
			
		||||
} ogs_pkbuf_config_t;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -79,7 +79,7 @@ void ogs_random(void *buf, size_t buflen)
 | 
			
		||||
            fd = -1; /* force open() again */
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
			buf = (unsigned char *)buf + rc;
 | 
			
		||||
            buf = (unsigned char *)buf + rc;
 | 
			
		||||
            buflen -= rc;
 | 
			
		||||
        }
 | 
			
		||||
    } while (buflen > 0);
 | 
			
		||||
@@ -123,7 +123,7 @@ void *(*volatile evutil_memset_volatile_)(void *, int, size_t) = memset;
 | 
			
		||||
 | 
			
		||||
static void evutil_memclear_(void *mem, size_t len)
 | 
			
		||||
{
 | 
			
		||||
	evutil_memset_volatile_(mem, 0, len);
 | 
			
		||||
    evutil_memset_volatile_(mem, 0, len);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#include "arc4random.c"
 | 
			
		||||
 
 | 
			
		||||
@@ -369,7 +369,7 @@ int ogs_signal_thread(int(*signal_handler)(int signum))
 | 
			
		||||
            return OGS_OK;
 | 
			
		||||
        }
 | 
			
		||||
#elif HAVE_SIGSUSPEND
 | 
			
		||||
	sigsuspend(&sig_mask);
 | 
			
		||||
    sigsuspend(&sig_mask);
 | 
			
		||||
#else
 | 
			
		||||
#error No sigwait() and no sigsuspend()
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -255,23 +255,23 @@ int ogs_sortaddrinfo(ogs_sockaddr_t **sa_list, int family)
 | 
			
		||||
ogs_sockaddr_t *ogs_link_local_addr(const char *dev, const ogs_sockaddr_t *sa)
 | 
			
		||||
{
 | 
			
		||||
#if defined(HAVE_GETIFADDRS)
 | 
			
		||||
	struct ifaddrs *iflist, *cur;
 | 
			
		||||
    struct ifaddrs *iflist, *cur;
 | 
			
		||||
    int rc;
 | 
			
		||||
 | 
			
		||||
	rc = getifaddrs(&iflist);
 | 
			
		||||
    rc = getifaddrs(&iflist);
 | 
			
		||||
    if (rc != 0) {
 | 
			
		||||
        ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno, "getifaddrs failed");
 | 
			
		||||
        return NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	for (cur = iflist; cur != NULL; cur = cur->ifa_next) {
 | 
			
		||||
    for (cur = iflist; cur != NULL; cur = cur->ifa_next) {
 | 
			
		||||
        ogs_sockaddr_t *ifa_addr = NULL;
 | 
			
		||||
        ogs_sockaddr_t *addr = NULL;
 | 
			
		||||
 | 
			
		||||
        ifa_addr = (ogs_sockaddr_t *)cur->ifa_addr;
 | 
			
		||||
 | 
			
		||||
		if (ifa_addr == NULL) /* may happen with ppp interfaces */
 | 
			
		||||
			continue;
 | 
			
		||||
        if (ifa_addr == NULL) /* may happen with ppp interfaces */
 | 
			
		||||
            continue;
 | 
			
		||||
 | 
			
		||||
        if (ifa_addr->ogs_sa_family == AF_INET)
 | 
			
		||||
            continue;
 | 
			
		||||
@@ -293,9 +293,9 @@ ogs_sockaddr_t *ogs_link_local_addr(const char *dev, const ogs_sockaddr_t *sa)
 | 
			
		||||
 | 
			
		||||
        freeifaddrs(iflist);
 | 
			
		||||
        return addr;
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	freeifaddrs(iflist);
 | 
			
		||||
    freeifaddrs(iflist);
 | 
			
		||||
#endif
 | 
			
		||||
    return NULL;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -112,16 +112,16 @@ int ogs_socknode_probe(ogs_list_t *list, ogs_list_t *list6,
 | 
			
		||||
{
 | 
			
		||||
#if defined(HAVE_GETIFADDRS)
 | 
			
		||||
    ogs_socknode_t *node = NULL;
 | 
			
		||||
	struct ifaddrs *iflist, *cur;
 | 
			
		||||
    struct ifaddrs *iflist, *cur;
 | 
			
		||||
    int rc;
 | 
			
		||||
 | 
			
		||||
	rc = getifaddrs(&iflist);
 | 
			
		||||
    rc = getifaddrs(&iflist);
 | 
			
		||||
    if (rc != 0) {
 | 
			
		||||
        ogs_log_message(OGS_LOG_ERROR, ogs_socket_errno, "getifaddrs failed");
 | 
			
		||||
        return OGS_ERROR;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	for (cur = iflist; cur != NULL; cur = cur->ifa_next) {
 | 
			
		||||
    for (cur = iflist; cur != NULL; cur = cur->ifa_next) {
 | 
			
		||||
        ogs_sockaddr_t *addr = NULL;
 | 
			
		||||
 | 
			
		||||
        if (cur->ifa_flags & IFF_LOOPBACK)
 | 
			
		||||
@@ -130,8 +130,8 @@ int ogs_socknode_probe(ogs_list_t *list, ogs_list_t *list6,
 | 
			
		||||
        if (cur->ifa_flags & IFF_POINTOPOINT)
 | 
			
		||||
            continue;
 | 
			
		||||
 | 
			
		||||
		if (cur->ifa_addr == NULL) /* may happen with ppp interfaces */
 | 
			
		||||
			continue;
 | 
			
		||||
        if (cur->ifa_addr == NULL) /* may happen with ppp interfaces */
 | 
			
		||||
            continue;
 | 
			
		||||
 | 
			
		||||
        if (dev && strcmp(dev, cur->ifa_name) != 0)
 | 
			
		||||
            continue;
 | 
			
		||||
@@ -185,9 +185,9 @@ int ogs_socknode_probe(ogs_list_t *list, ogs_list_t *list6,
 | 
			
		||||
 | 
			
		||||
        if (option)
 | 
			
		||||
            node->option = ogs_memdup(option, sizeof *option);
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	freeifaddrs(iflist);
 | 
			
		||||
    freeifaddrs(iflist);
 | 
			
		||||
    return OGS_OK;
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
    return OGS_OK;
 | 
			
		||||
@@ -202,7 +202,7 @@ int ogs_socknode_probe(ogs_list_t *list, ogs_list_t *list6,
 | 
			
		||||
int ogs_socknode_fill_scope_id_in_local(ogs_sockaddr_t *sa_list)
 | 
			
		||||
{
 | 
			
		||||
#if defined(HAVE_GETIFADDRS)
 | 
			
		||||
	struct ifaddrs *iflist = NULL, *cur;
 | 
			
		||||
    struct ifaddrs *iflist = NULL, *cur;
 | 
			
		||||
    int rc;
 | 
			
		||||
    ogs_sockaddr_t *addr, *ifaddr;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,7 @@ typedef struct ogs_sockopt_s {
 | 
			
		||||
        uint32_t srto_initial;
 | 
			
		||||
        uint32_t srto_min;
 | 
			
		||||
        uint32_t srto_max;
 | 
			
		||||
#define OGS_DEFAULT_SCTP_MAX_NUM_OF_OSTREAMS 30
 | 
			
		||||
        uint16_t sinit_num_ostreams;
 | 
			
		||||
        uint16_t sinit_max_instreams;
 | 
			
		||||
        uint16_t sinit_max_attempts;
 | 
			
		||||
 
 | 
			
		||||
@@ -54,8 +54,6 @@
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define OGS_HUGE_LEN        8192
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32)
 | 
			
		||||
#define ogs_strtok_r strtok_s
 | 
			
		||||
#define ogs_strcasecmp _stricmp
 | 
			
		||||
 
 | 
			
		||||
@@ -78,18 +78,18 @@ int ogs_gettimeofday(struct timeval *tv)
 | 
			
		||||
#else
 | 
			
		||||
#define DELTA_EPOCH_IN_MICROSEC 11644473600000000ULL
 | 
			
		||||
#endif
 | 
			
		||||
	FILETIME ft;
 | 
			
		||||
	uint64_t tmp = 0;
 | 
			
		||||
    FILETIME ft;
 | 
			
		||||
    uint64_t tmp = 0;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * The const value is shamelessy stolen from
 | 
			
		||||
	 * http://www.boost.org/doc/libs/1_55_0/boost/chrono/detail/inlined/win/chrono.hpp
 | 
			
		||||
	 *
 | 
			
		||||
	 * File times are the number of 100 nanosecond intervals elapsed since
 | 
			
		||||
	 * 12:00 am Jan 1, 1601 UTC.  I haven't check the math particularly hard
 | 
			
		||||
	 *
 | 
			
		||||
	 * ...  good luck
 | 
			
		||||
	 */
 | 
			
		||||
    /*
 | 
			
		||||
     * The const value is shamelessy stolen from
 | 
			
		||||
     * http://www.boost.org/doc/libs/1_55_0/boost/chrono/detail/inlined/win/chrono.hpp
 | 
			
		||||
     *
 | 
			
		||||
     * File times are the number of 100 nanosecond intervals elapsed since
 | 
			
		||||
     * 12:00 am Jan 1, 1601 UTC.  I haven't check the math particularly hard
 | 
			
		||||
     *
 | 
			
		||||
     * ...  good luck
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    if (tv) {
 | 
			
		||||
        GetSystemTimeAsFileTime (&ft);
 | 
			
		||||
@@ -125,7 +125,7 @@ ogs_time_t ogs_time_now(void)
 | 
			
		||||
    rc = ogs_gettimeofday(&tv);
 | 
			
		||||
    ogs_assert(rc == 0);
 | 
			
		||||
 | 
			
		||||
    return tv.tv_sec * OGS_USEC_PER_SEC + tv.tv_usec;
 | 
			
		||||
    return ogs_time_from_sec(tv.tv_sec) + tv.tv_usec;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The following code is stolen from APR library */
 | 
			
		||||
@@ -182,23 +182,23 @@ int ogs_time_from_gmt(ogs_time_t *t, struct tm *tm, int tm_usec)
 | 
			
		||||
 */
 | 
			
		||||
uint32_t ogs_time_ntp32_now(void)
 | 
			
		||||
{
 | 
			
		||||
	int rc;
 | 
			
		||||
    int rc;
 | 
			
		||||
    struct timeval tv;
 | 
			
		||||
 | 
			
		||||
    rc = ogs_gettimeofday(&tv);
 | 
			
		||||
    ogs_assert(rc == 0);
 | 
			
		||||
 | 
			
		||||
    return ogs_time_to_ntp32(tv.tv_sec * OGS_USEC_PER_SEC + tv.tv_usec);
 | 
			
		||||
    return ogs_time_to_ntp32(ogs_time_from_sec(tv.tv_sec) + tv.tv_usec);
 | 
			
		||||
}
 | 
			
		||||
ogs_time_t ogs_time_from_ntp32(uint32_t ntp_timestamp)
 | 
			
		||||
{
 | 
			
		||||
	if (ntp_timestamp < OGS_1970_1900_SEC_DIFF)
 | 
			
		||||
		return 0;
 | 
			
		||||
	return (ntp_timestamp - OGS_1970_1900_SEC_DIFF) * OGS_USEC_PER_SEC;
 | 
			
		||||
    if (ntp_timestamp < OGS_1970_1900_SEC_DIFF)
 | 
			
		||||
        return 0;
 | 
			
		||||
    return ogs_time_from_sec(ntp_timestamp - OGS_1970_1900_SEC_DIFF);
 | 
			
		||||
}
 | 
			
		||||
uint32_t ogs_time_to_ntp32(ogs_time_t time)
 | 
			
		||||
{
 | 
			
		||||
	return (time / OGS_USEC_PER_SEC) + OGS_1970_1900_SEC_DIFF;
 | 
			
		||||
    return (time / OGS_USEC_PER_SEC) + OGS_1970_1900_SEC_DIFF;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ogs_timezone(void)
 | 
			
		||||
@@ -242,7 +242,7 @@ ogs_time_t ogs_get_monotonic_time(void)
 | 
			
		||||
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
 | 
			
		||||
    struct timespec ts;
 | 
			
		||||
    clock_gettime(CLOCK_MONOTONIC, &ts);
 | 
			
		||||
    return ((ts.tv_sec * 1000000UL) + (ts.tv_nsec / 1000UL));
 | 
			
		||||
    return ogs_time_from_sec(ts.tv_sec) + ts.tv_nsec / 1000UL;
 | 
			
		||||
#elif defined(__APPLE__)
 | 
			
		||||
    static mach_timebase_info_data_t info = {0};
 | 
			
		||||
    static double ratio = 0.0;
 | 
			
		||||
@@ -268,7 +268,7 @@ ogs_time_t ogs_get_monotonic_time(void)
 | 
			
		||||
    struct timeval tv;
 | 
			
		||||
 | 
			
		||||
    ogs_gettimeofday(&tv);
 | 
			
		||||
    return (tv.tv_sec * 1000000UL) + tv.tv_usec;
 | 
			
		||||
    return ogs_time_from_sec(tv.tv_sec) + tv.tv_usec;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user