mirror of
				https://github.com/open5gs/open5gs.git
				synced 2025-11-03 21:43:25 +00:00 
			
		
		
		
	Compare commits
	
		
			295 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					ff5023e95b | ||
| 
						 | 
					9b762158a6 | ||
| 
						 | 
					4e8492e878 | ||
| 
						 | 
					a5010a61ef | ||
| 
						 | 
					eb03704015 | ||
| 
						 | 
					68140efce4 | ||
| 
						 | 
					d2ef555ce4 | ||
| 
						 | 
					7e6568d800 | ||
| 
						 | 
					9a958d7af8 | ||
| 
						 | 
					83b28b5649 | ||
| 
						 | 
					eb50d64271 | ||
| 
						 | 
					9aa5559c5f | ||
| 
						 | 
					f35afa2ff7 | ||
| 
						 | 
					776103698d | ||
| 
						 | 
					2b41a215d7 | ||
| 
						 | 
					da1905b36c | ||
| 
						 | 
					fb95f1ff71 | ||
| 
						 | 
					668cc59f94 | ||
| 
						 | 
					3885cb20d9 | ||
| 
						 | 
					5e18b2bd13 | ||
| 
						 | 
					1518a4f334 | ||
| 
						 | 
					80ee4c8aa8 | ||
| 
						 | 
					aa3cded11a | ||
| 
						 | 
					0633774972 | ||
| 
						 | 
					d1a2971990 | ||
| 
						 | 
					babc30940a | ||
| 
						 | 
					fce0eb4800 | ||
| 
						 | 
					fe11ee161c | ||
| 
						 | 
					eabe8dfec5 | ||
| 
						 | 
					29525b21a4 | ||
| 
						 | 
					af4021bff4 | ||
| 
						 | 
					318fc25535 | ||
| 
						 | 
					6adf541346 | ||
| 
						 | 
					ab11220dcc | ||
| 
						 | 
					114f783d06 | ||
| 
						 | 
					50be661cf9 | ||
| 
						 | 
					ad159d1755 | ||
| 
						 | 
					b1d982a1ee | ||
| 
						 | 
					0be5e765c8 | ||
| 
						 | 
					6332f10593 | ||
| 
						 | 
					051c19b7c8 | ||
| 
						 | 
					b5956e5596 | ||
| 
						 | 
					52d5c61794 | ||
| 
						 | 
					c5a545039f | ||
| 
						 | 
					2dd577f88c | ||
| 
						 | 
					0d61f7a7f9 | ||
| 
						 | 
					9700563023 | ||
| 
						 | 
					5eaf66262a | ||
| 
						 | 
					a3593c6890 | ||
| 
						 | 
					8fe2e506c0 | ||
| 
						 | 
					df68b231b8 | ||
| 
						 | 
					f4eddf91b5 | ||
| 
						 | 
					99fd6c449a | ||
| 
						 | 
					7762da6992 | ||
| 
						 | 
					bfe214aafa | ||
| 
						 | 
					96d689a402 | ||
| 
						 | 
					3501cb0a5b | ||
| 
						 | 
					b58ebda556 | ||
| 
						 | 
					20d3dc0167 | ||
| 
						 | 
					c9598fb9c6 | ||
| 
						 | 
					13421119c3 | ||
| 
						 | 
					50cfb5f3ac | ||
| 
						 | 
					d2cbcf7118 | ||
| 
						 | 
					0f93ec23ab | ||
| 
						 | 
					c528e0d5bc | ||
| 
						 | 
					0313910ac6 | ||
| 
						 | 
					361c3b7387 | ||
| 
						 | 
					59a457fa40 | ||
| 
						 | 
					038d383584 | ||
| 
						 | 
					7be7029ac4 | ||
| 
						 | 
					720b4d3c4c | ||
| 
						 | 
					4d9112870c | ||
| 
						 | 
					58a9d31fd8 | ||
| 
						 | 
					0a3746c24d | ||
| 
						 | 
					1daac541cf | ||
| 
						 | 
					9087a480a8 | ||
| 
						 | 
					9d43646816 | ||
| 
						 | 
					240c10888d | ||
| 
						 | 
					9c3b7dfe4b | ||
| 
						 | 
					2aa40ca8c8 | ||
| 
						 | 
					12353178fb | ||
| 
						 | 
					b98c2c13f6 | ||
| 
						 | 
					9d94b33c7b | ||
| 
						 | 
					6c5a8a135a | ||
| 
						 | 
					b116630fe8 | ||
| 
						 | 
					28089e2b59 | ||
| 
						 | 
					b1e7477904 | ||
| 
						 | 
					5238771295 | ||
| 
						 | 
					cfe21c61da | ||
| 
						 | 
					0b97954208 | ||
| 
						 | 
					5084f6a71d | ||
| 
						 | 
					109949d335 | ||
| 
						 | 
					9e25482d99 | ||
| 
						 | 
					816575dc8d | ||
| 
						 | 
					28e40a0f1b | ||
| 
						 | 
					a9badd5520 | ||
| 
						 | 
					18cca7f5e4 | ||
| 
						 | 
					828fa23d16 | ||
| 
						 | 
					a6abe1fffb | ||
| 
						 | 
					7dd5d27a71 | ||
| 
						 | 
					e32139009b | ||
| 
						 | 
					502a886e43 | ||
| 
						 | 
					d99382d5bc | ||
| 
						 | 
					8b3fa5ff9f | ||
| 
						 | 
					e1e8018919 | ||
| 
						 | 
					c2bda0b576 | ||
| 
						 | 
					b6f2146594 | ||
| 
						 | 
					78b1dc77ff | ||
| 
						 | 
					de0ba3f9dc | ||
| 
						 | 
					c18e9f32cb | ||
| 
						 | 
					2c2ce143a3 | ||
| 
						 | 
					933f0b04c7 | ||
| 
						 | 
					7d496e182b | ||
| 
						 | 
					dd845a2bb2 | ||
| 
						 | 
					1679f57ac7 | ||
| 
						 | 
					b6fe640641 | ||
| 
						 | 
					a6927e18e6 | ||
| 
						 | 
					8efa364f89 | ||
| 
						 | 
					43a7259781 | ||
| 
						 | 
					aba1867902 | ||
| 
						 | 
					12d189af07 | ||
| 
						 | 
					d6c8d49ef4 | ||
| 
						 | 
					1983d9d7a7 | ||
| 
						 | 
					6710c13a44 | ||
| 
						 | 
					67fd2efd76 | ||
| 
						 | 
					c6c8dc1256 | ||
| 
						 | 
					46621538af | ||
| 
						 | 
					b2f2016a67 | ||
| 
						 | 
					e0a487f479 | ||
| 
						 | 
					a7e2a071e0 | ||
| 
						 | 
					f97f5f794d | ||
| 
						 | 
					afc562f7d5 | ||
| 
						 | 
					478723203f | ||
| 
						 | 
					c391ac1334 | ||
| 
						 | 
					fe7f9d85bb | ||
| 
						 | 
					c5715d6695 | ||
| 
						 | 
					bb4a8f34d4 | ||
| 
						 | 
					71572ae563 | ||
| 
						 | 
					e2159b1240 | ||
| 
						 | 
					99f59be5d7 | ||
| 
						 | 
					4d2f7726b9 | ||
| 
						 | 
					11d4be1779 | ||
| 
						 | 
					5d478e2488 | ||
| 
						 | 
					333e53d0dd | ||
| 
						 | 
					53a96022d9 | ||
| 
						 | 
					908d5884dc | ||
| 
						 | 
					e8d6b0be20 | ||
| 
						 | 
					7a9d06097e | ||
| 
						 | 
					3a28ddce37 | ||
| 
						 | 
					6ffdce598a | ||
| 
						 | 
					6e81564972 | ||
| 
						 | 
					76fecdb54e | ||
| 
						 | 
					aa6f3ef8d6 | ||
| 
						 | 
					3508e09a41 | ||
| 
						 | 
					b558da30c6 | ||
| 
						 | 
					de2ecd6400 | ||
| 
						 | 
					41f743af62 | ||
| 
						 | 
					d50a5a44f9 | ||
| 
						 | 
					2de12e32f4 | ||
| 
						 | 
					23ef30553e | ||
| 
						 | 
					79de674fd8 | ||
| 
						 | 
					5f979d0cc3 | ||
| 
						 | 
					433d5f6bf3 | ||
| 
						 | 
					80cd9d725f | ||
| 
						 | 
					28746c1cd8 | ||
| 
						 | 
					bb5d497298 | ||
| 
						 | 
					079bb5c40e | ||
| 
						 | 
					e61b469489 | ||
| 
						 | 
					e3da7c9934 | ||
| 
						 | 
					8c22d8a20c | ||
| 
						 | 
					e5ff03b249 | ||
| 
						 | 
					49c34605db | ||
| 
						 | 
					ff242cd6ea | ||
| 
						 | 
					2be12903cb | ||
| 
						 | 
					7455424d29 | ||
| 
						 | 
					832ab156e9 | ||
| 
						 | 
					0b3df3e3db | ||
| 
						 | 
					b5ad0feffc | ||
| 
						 | 
					b732d7bcc5 | ||
| 
						 | 
					05551f120f | ||
| 
						 | 
					106f2729c3 | ||
| 
						 | 
					aa6368132e | ||
| 
						 | 
					fb8ebcdbea | ||
| 
						 | 
					52672cff65 | ||
| 
						 | 
					0df2e9f0ba | ||
| 
						 | 
					77f7bb7af7 | ||
| 
						 | 
					8286b1c417 | ||
| 
						 | 
					5be48be634 | ||
| 
						 | 
					110a63fdfa | ||
| 
						 | 
					e213f65406 | ||
| 
						 | 
					1c9a48bfb1 | ||
| 
						 | 
					77f66e1f0e | ||
| 
						 | 
					3121d183f0 | ||
| 
						 | 
					8f603e2049 | ||
| 
						 | 
					35201f6ed1 | ||
| 
						 | 
					24d20bb20b | ||
| 
						 | 
					f2aa15d99f | ||
| 
						 | 
					c76c7d597d | ||
| 
						 | 
					9c4287f467 | ||
| 
						 | 
					2def8bb31b | ||
| 
						 | 
					f557fc8eaa | ||
| 
						 | 
					82241f5b84 | ||
| 
						 | 
					fbfb72c1b7 | ||
| 
						 | 
					038fb680f4 | ||
| 
						 | 
					da8c934326 | ||
| 
						 | 
					88016a769f | ||
| 
						 | 
					acd6610508 | ||
| 
						 | 
					4b8d3a845a | ||
| 
						 | 
					825b06b6e0 | ||
| 
						 | 
					12c656efd0 | ||
| 
						 | 
					ced37a6201 | ||
| 
						 | 
					38e2dee17f | ||
| 
						 | 
					89636fa8d3 | ||
| 
						 | 
					cc0d147f5c | ||
| 
						 | 
					12bac7a917 | ||
| 
						 | 
					41553de7a4 | ||
| 
						 | 
					2cb06b3085 | ||
| 
						 | 
					224d1caca1 | ||
| 
						 | 
					37af21a88d | ||
| 
						 | 
					fe5fd0f760 | ||
| 
						 | 
					ab5f47ef59 | ||
| 
						 | 
					72ecd1c005 | ||
| 
						 | 
					7f6f35fe6f | ||
| 
						 | 
					bf77318602 | ||
| 
						 | 
					a6ec206998 | ||
| 
						 | 
					f060da45d5 | ||
| 
						 | 
					80ce991aa6 | ||
| 
						 | 
					bcf53124d5 | ||
| 
						 | 
					73836c063c | ||
| 
						 | 
					dd5abb79b4 | ||
| 
						 | 
					5b81802be9 | ||
| 
						 | 
					4388f9bf3a | ||
| 
						 | 
					c1fc25958c | ||
| 
						 | 
					914bb0a40f | ||
| 
						 | 
					253e2ad98a | ||
| 
						 | 
					c2d10772c6 | ||
| 
						 | 
					f848785360 | ||
| 
						 | 
					a1be48ed50 | ||
| 
						 | 
					896370c2e4 | ||
| 
						 | 
					9bf8a84b81 | ||
| 
						 | 
					79e34260da | ||
| 
						 | 
					7bddc92322 | ||
| 
						 | 
					ed3444eef5 | ||
| 
						 | 
					3217e93124 | ||
| 
						 | 
					19120acadc | ||
| 
						 | 
					d06acc7f37 | ||
| 
						 | 
					bc69ddfc6d | ||
| 
						 | 
					d54e8a43ce | ||
| 
						 | 
					ba3a046c62 | ||
| 
						 | 
					efe37c1e84 | ||
| 
						 | 
					03280d1f5a | ||
| 
						 | 
					51a75cde26 | ||
| 
						 | 
					52bc4be547 | ||
| 
						 | 
					3b6da3ddb2 | ||
| 
						 | 
					dbd9e8bd78 | ||
| 
						 | 
					3833a73a14 | ||
| 
						 | 
					953a7321c6 | ||
| 
						 | 
					5ad1b188e4 | ||
| 
						 | 
					af3db1770f | ||
| 
						 | 
					d61127afcc | ||
| 
						 | 
					882548de11 | ||
| 
						 | 
					b0fc06ab6c | ||
| 
						 | 
					b7698810ac | ||
| 
						 | 
					e3fa731c4a | ||
| 
						 | 
					420c1d5ad3 | ||
| 
						 | 
					b4f382d360 | ||
| 
						 | 
					137ed99dd5 | ||
| 
						 | 
					f7999a2cad | ||
| 
						 | 
					2056a5b500 | ||
| 
						 | 
					8b1bdf42a2 | ||
| 
						 | 
					8cc70694db | ||
| 
						 | 
					3eab4be135 | ||
| 
						 | 
					7df65e832e | ||
| 
						 | 
					c0ffe1ffe4 | ||
| 
						 | 
					757285bf25 | ||
| 
						 | 
					906e7c5046 | ||
| 
						 | 
					0e1ab26ee5 | ||
| 
						 | 
					6e30f97097 | ||
| 
						 | 
					4145b8b543 | ||
| 
						 | 
					ffcd92c2f3 | ||
| 
						 | 
					900e888dc1 | ||
| 
						 | 
					acfcbda8fa | ||
| 
						 | 
					5fff69306f | ||
| 
						 | 
					9b7ebf9927 | ||
| 
						 | 
					4018833b3a | ||
| 
						 | 
					8bc584ce80 | ||
| 
						 | 
					a7d164c28d | ||
| 
						 | 
					83d56fe40d | ||
| 
						 | 
					340b23af94 | ||
| 
						 | 
					3b275edec7 | ||
| 
						 | 
					866ae78f5e | ||
| 
						 | 
					68407efa16 | ||
| 
						 | 
					c071bf3c6d | ||
| 
						 | 
					23647f643b | ||
| 
						 | 
					99d03f9d03 | 
							
								
								
									
										69
									
								
								.clang-tidy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								.clang-tidy
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
---
 | 
			
		||||
Checks: '*,
 | 
			
		||||
  -altera-id-dependent-backward-branch,
 | 
			
		||||
  -altera-struct-pack-align,
 | 
			
		||||
  -altera-unroll-loops,
 | 
			
		||||
  -android-cloexec-*,
 | 
			
		||||
  -bugprone-branch-clone,
 | 
			
		||||
  -bugprone-easily-swappable-parameters,
 | 
			
		||||
  -bugprone-macro-parentheses,
 | 
			
		||||
  -bugprone-reserved-identifier,
 | 
			
		||||
  -bugprone-sizeof-expression,
 | 
			
		||||
  -cert-dcl37-c,
 | 
			
		||||
  -cert-dcl51-cpp,
 | 
			
		||||
  -cert-err33-c,
 | 
			
		||||
  -cert-err34-c,
 | 
			
		||||
  -clang-analyzer-optin.performance.Padding,
 | 
			
		||||
  -clang-analyzer-security.insecureAPI.bcmp,
 | 
			
		||||
  -clang-analyzer-security.insecureAPI.bcopy,
 | 
			
		||||
  -clang-analyzer-security.insecureAPI.bzero,
 | 
			
		||||
  -clang-diagnostic-error,
 | 
			
		||||
  -clang-diagnostic-typedef-redefinition,
 | 
			
		||||
  -clang-diagnostic-unknown-warning-option,
 | 
			
		||||
  -concurrency-mt-unsafe,
 | 
			
		||||
  -cppcoreguidelines-avoid-magic-numbers,
 | 
			
		||||
  -cppcoreguidelines-avoid-non-const-global-variables,
 | 
			
		||||
  -cppcoreguidelines-init-variables,
 | 
			
		||||
  -google-readability-braces-around-statements,
 | 
			
		||||
  -google-readability-casting,
 | 
			
		||||
  -google-readability-function-size,
 | 
			
		||||
  -google-readability-todo,
 | 
			
		||||
  -hicpp-braces-around-statements,
 | 
			
		||||
  -hicpp-function-size,
 | 
			
		||||
  -hicpp-multiway-paths-covered,
 | 
			
		||||
  -llvm-else-after-return,
 | 
			
		||||
  -llvm-header-guard,
 | 
			
		||||
  -llvm-include-order,
 | 
			
		||||
  -llvmlibc-restrict-system-libc-headers,
 | 
			
		||||
  -misc-no-recursion,
 | 
			
		||||
  -misc-unused-parameters,
 | 
			
		||||
  -performance-no-int-to-ptr,
 | 
			
		||||
  -readability-avoid-const-params-in-decls,
 | 
			
		||||
  -readability-braces-around-statements,
 | 
			
		||||
  -readability-duplicate-include,
 | 
			
		||||
  -readability-else-after-return,
 | 
			
		||||
  -readability-function-cognitive-complexity,
 | 
			
		||||
  -readability-function-size,
 | 
			
		||||
  -readability-identifier-length,
 | 
			
		||||
  -readability-isolate-declaration,
 | 
			
		||||
  -readability-magic-numbers,
 | 
			
		||||
  -readability-non-const-parameter,
 | 
			
		||||
  -readability-redundant-control-flow,
 | 
			
		||||
  -readability-redundant-declaration,
 | 
			
		||||
  -readability-suspicious-call-argument,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  -bugprone-implicit-widening-of-multiplication-result,
 | 
			
		||||
  -bugprone-narrowing-conversions,
 | 
			
		||||
  -cert-exp42-c,
 | 
			
		||||
  -cert-flp37-c,
 | 
			
		||||
  -clang-analyzer-core.NullDereference,
 | 
			
		||||
  -clang-analyzer-deadcode.DeadStores,
 | 
			
		||||
  -clang-analyzer-security.insecureAPI.strcpy,
 | 
			
		||||
  -cppcoreguidelines-interfaces-global-init,
 | 
			
		||||
  -cppcoreguidelines-narrowing-conversions,
 | 
			
		||||
  -hicpp-signed-bitwise,
 | 
			
		||||
  '
 | 
			
		||||
 | 
			
		||||
WarningsAsErrors: false
 | 
			
		||||
HeaderFilterRegex: '(.*\.h)'
 | 
			
		||||
							
								
								
									
										10
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
**/*.md
 | 
			
		||||
**/docker-compose*.yml
 | 
			
		||||
**/docker-compose*.yaml
 | 
			
		||||
**/Dockerfile*
 | 
			
		||||
.git
 | 
			
		||||
.dockerignore
 | 
			
		||||
.cache
 | 
			
		||||
.gitignore
 | 
			
		||||
.github
 | 
			
		||||
build
 | 
			
		||||
							
								
								
									
										77
									
								
								.github/workflows/meson-ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								.github/workflows/meson-ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
name: Meson Continuous Integration
 | 
			
		||||
on: [push, pull_request]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  macos-latest:
 | 
			
		||||
    name: Build and Test on MacOS Latest
 | 
			
		||||
    runs-on: macos-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Install MongoDB with Package Manager
 | 
			
		||||
      run: |
 | 
			
		||||
          brew tap mongodb/brew
 | 
			
		||||
          brew install mongodb-community
 | 
			
		||||
          brew services start mongodb-community
 | 
			
		||||
    - name: Create the TUN device with the interface name `ogstun`.
 | 
			
		||||
      run: |
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.2 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.3 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.4 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.5 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.5 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.6 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.7 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.8 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.9 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.10 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.11 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.12 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.13 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.14 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.15 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.16 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.17 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.18 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.19 netmask 255.255.255.255
 | 
			
		||||
          sudo ifconfig lo0 alias 127.0.0.20 netmask 255.255.255.255
 | 
			
		||||
    - 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
 | 
			
		||||
      env:
 | 
			
		||||
        CC: gcc
 | 
			
		||||
    - name : Build Open5GS
 | 
			
		||||
      run: ninja -C build
 | 
			
		||||
    - name: Test Open5GS
 | 
			
		||||
      run: sudo meson test -C build -v crypt unit
 | 
			
		||||
 | 
			
		||||
  ubuntu-latest:
 | 
			
		||||
    name: Build and Test on Ubuntu Latest
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    services:
 | 
			
		||||
      mongodb:
 | 
			
		||||
        image: mongo
 | 
			
		||||
        ports:
 | 
			
		||||
          - 27017:27017
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Create the TUN device with the interface name `ogstun`.
 | 
			
		||||
      run: |
 | 
			
		||||
          sudo ip tuntap add name ogstun mode tun
 | 
			
		||||
          sudo ip addr add 10.45.0.1/16 dev ogstun
 | 
			
		||||
          sudo ip addr add 2001:db8:cafe::1/48 dev ogstun
 | 
			
		||||
          sudo ip link set ogstun up
 | 
			
		||||
    - name: Install the dependencies for building the source code.
 | 
			
		||||
      run: |
 | 
			
		||||
          sudo apt update
 | 
			
		||||
          sudo apt install python3-pip python3-setuptools python3-wheel ninja-build build-essential flex bison git libsctp-dev libgnutls28-dev libgcrypt-dev libssl-dev libidn11-dev libmongoc-dev libbson-dev libyaml-dev libnghttp2-dev libmicrohttpd-dev libcurl4-gnutls-dev libnghttp2-dev libtins-dev libtalloc-dev meson
 | 
			
		||||
    - name: Check out repository code
 | 
			
		||||
      uses: actions/checkout@main
 | 
			
		||||
    - name: Setup Meson Build
 | 
			
		||||
      run: meson setup build
 | 
			
		||||
      env:
 | 
			
		||||
        CC: gcc
 | 
			
		||||
    - name : Build Open5GS
 | 
			
		||||
      run: ninja -C build
 | 
			
		||||
    - name: Test Open5GS
 | 
			
		||||
      run: meson test -C build -v
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +1,7 @@
 | 
			
		||||
# This directory is fetched during first build and is present in this directory
 | 
			
		||||
subprojects/freeDiameter
 | 
			
		||||
subprojects/libtins
 | 
			
		||||
subprojects/prometheus-client-c
 | 
			
		||||
subprojects/usrsctp
 | 
			
		||||
 | 
			
		||||
webui/.next
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								README.md
									
									
									
									
									
								
							@@ -2,13 +2,26 @@
 | 
			
		||||
 | 
			
		||||
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">
 | 
			
		||||
  </a>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </tbody>
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<h3 align="center">Gold Sponsors</h3>
 | 
			
		||||
<table>
 | 
			
		||||
<table align="center">
 | 
			
		||||
  <tbody>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td align="center" valign="middle">
 | 
			
		||||
  <a href="http://wavemobile.com/" target="_blank">
 | 
			
		||||
    <img width="260px" src="https://open5gs.org/assets/img/Wavemobile-Logo-Mark-RGB.png">
 | 
			
		||||
    <img width="222px" src="https://open5gs.org/assets/img/Wavemobile-Logo-Mark-RGB.png">
 | 
			
		||||
  </a>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
@@ -16,14 +29,9 @@ If you find Open5GS useful for work, please consider supporting this Open Source
 | 
			
		||||
</table>
 | 
			
		||||
 | 
			
		||||
<h3 align="center">Silver Sponsors</h3>
 | 
			
		||||
<table>
 | 
			
		||||
<table align="center">
 | 
			
		||||
  <tbody>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td align="center" valign="middle" width="222px">
 | 
			
		||||
        <a href="https://www.auctionsoftware.com/" target="_blank">
 | 
			
		||||
          <img src="https://open5gs.org/assets/img/asLogonew.png">
 | 
			
		||||
        </a>
 | 
			
		||||
      </td>
 | 
			
		||||
      <td align="center" valign="middle" width="222px">
 | 
			
		||||
        <a href="https://nextepc.com/" target="_blank">
 | 
			
		||||
          <img src="https://open5gs.org/assets/img/nextepc_logo.jpg">
 | 
			
		||||
@@ -34,13 +42,13 @@ If you find Open5GS useful for work, please consider supporting this Open Source
 | 
			
		||||
          <img src="https://open5gs.org/assets/img/triple_logo.png">
 | 
			
		||||
        </a>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <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">
 | 
			
		||||
@@ -51,21 +59,21 @@ If you find Open5GS useful for work, please consider supporting this Open Source
 | 
			
		||||
          <img src="https://open5gs.org/assets/img/sysmocom-logo-only.png">
 | 
			
		||||
        </a>
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <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="https://www.peratonlabs.com/" target="_blank">
 | 
			
		||||
          <img src="https://open5gs.org/assets/img/peraton-labs-logo-full-color.png">
 | 
			
		||||
        <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>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
#    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -194,6 +195,11 @@ nrf:
 | 
			
		||||
        - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.1.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
ausf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.11
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
#    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -47,12 +48,12 @@ mme:
 | 
			
		||||
        map:
 | 
			
		||||
          tai:
 | 
			
		||||
            plmn_id:
 | 
			
		||||
              mcc: 901
 | 
			
		||||
              mcc: 999
 | 
			
		||||
              mnc: 70
 | 
			
		||||
            tac: 7
 | 
			
		||||
          lai:
 | 
			
		||||
            plmn_id:
 | 
			
		||||
              mcc: 901
 | 
			
		||||
              mcc: 999
 | 
			
		||||
              mnc: 70
 | 
			
		||||
            lac: 2342
 | 
			
		||||
        map:
 | 
			
		||||
@@ -68,7 +69,7 @@ mme:
 | 
			
		||||
            lac: 51544
 | 
			
		||||
    gummei:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        mme_gid: 2
 | 
			
		||||
        mme_code: 1
 | 
			
		||||
@@ -79,7 +80,7 @@ mme:
 | 
			
		||||
        mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 7
 | 
			
		||||
    tai:
 | 
			
		||||
@@ -146,19 +147,19 @@ amf:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        amf_id:
 | 
			
		||||
          region: 2
 | 
			
		||||
          set: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
#    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -44,13 +45,13 @@ mme:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gummei:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      mme_gid: 2
 | 
			
		||||
      mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 1
 | 
			
		||||
    security:
 | 
			
		||||
@@ -114,19 +115,19 @@ amf:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        amf_id:
 | 
			
		||||
          region: 2
 | 
			
		||||
          set: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.5
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  <NGAP Server>>
 | 
			
		||||
#
 | 
			
		||||
#  o NGAP Server(all address avaiable)
 | 
			
		||||
@@ -96,12 +108,49 @@ logger:
 | 
			
		||||
#    ngap:
 | 
			
		||||
#      dev: eth0
 | 
			
		||||
#
 | 
			
		||||
#  o NGAP Option (Default)
 | 
			
		||||
#    - sctp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    ngap:
 | 
			
		||||
#      addr: 127.0.0.5
 | 
			
		||||
#      option:
 | 
			
		||||
#        stcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  o NGAP SCTP Option (Default)
 | 
			
		||||
#    - spp_hbinterval : 5000 (5secs)
 | 
			
		||||
#    - spp_sackdelay : 200 (200ms)
 | 
			
		||||
#    - srto_initial : 3000 (3secs)
 | 
			
		||||
#    - srto_min : 1000 (1sec)
 | 
			
		||||
#    - srto_max : 5000 (5secs)
 | 
			
		||||
#    - sinit_num_ostreams : 30
 | 
			
		||||
#    - sinit_max_instreams : 65535
 | 
			
		||||
#    - sinit_max_attempts : 4
 | 
			
		||||
#    - sinit_max_init_timeo : 8000(8secs)
 | 
			
		||||
#
 | 
			
		||||
#    ngap:
 | 
			
		||||
#      addr: 127.0.0.5
 | 
			
		||||
#      option:
 | 
			
		||||
#        sctp:
 | 
			
		||||
#          spp_hbinterval : 5000
 | 
			
		||||
#          spp_sackdelay : 200
 | 
			
		||||
#          srto_initial : 3000
 | 
			
		||||
#          srto_min : 1000
 | 
			
		||||
#          srto_max : 5000
 | 
			
		||||
#          sinit_num_ostreams : 30
 | 
			
		||||
#          sinit_max_instreams : 65535
 | 
			
		||||
#          sinit_max_attempts : 4
 | 
			
		||||
#          sinit_max_init_timeo : 8000
 | 
			
		||||
#
 | 
			
		||||
#  <GUAMI>
 | 
			
		||||
#
 | 
			
		||||
#  o Multiple GUAMI
 | 
			
		||||
#    guami:
 | 
			
		||||
#      - plmn_id:
 | 
			
		||||
#          mcc: 901
 | 
			
		||||
#          mcc: 999
 | 
			
		||||
#          mnc: 70
 | 
			
		||||
#        amf_id:
 | 
			
		||||
#          region: 2
 | 
			
		||||
@@ -150,13 +199,13 @@ logger:
 | 
			
		||||
#  o Multiple PLMN Support
 | 
			
		||||
#    plmn_support:
 | 
			
		||||
#      - plmn_id:
 | 
			
		||||
#          mcc: 901
 | 
			
		||||
#          mcc: 999
 | 
			
		||||
#          mnc: 70
 | 
			
		||||
#        s_nssai:
 | 
			
		||||
#          - sst: 1
 | 
			
		||||
#            sd: 010000
 | 
			
		||||
#      - plmn_id:
 | 
			
		||||
#          mcc: 901
 | 
			
		||||
#          mcc: 999
 | 
			
		||||
#          mnc: 70
 | 
			
		||||
#        s_nssai:
 | 
			
		||||
#          - sst: 1
 | 
			
		||||
@@ -169,7 +218,7 @@ logger:
 | 
			
		||||
#
 | 
			
		||||
#  <AMF Name>
 | 
			
		||||
#
 | 
			
		||||
#    amf_name: amf1.open5gs.amf.5gc.mnc70.mcc901.3gppnetwork.org
 | 
			
		||||
#    amf_name: amf1.open5gs.amf.5gc.mnc70.mcc999.3gppnetwork.org
 | 
			
		||||
#
 | 
			
		||||
#  <Relative Capacity> - Default(255)
 | 
			
		||||
#
 | 
			
		||||
@@ -183,19 +232,19 @@ amf:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        amf_id:
 | 
			
		||||
          region: 2
 | 
			
		||||
          set: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
@@ -232,6 +281,18 @@ amf:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
@@ -264,49 +325,10 @@ parameter:
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
# usrsctp:
 | 
			
		||||
#    udp_port : 9899
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# sockopt:
 | 
			
		||||
#    no_delay : true
 | 
			
		||||
#
 | 
			
		||||
sockopt:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# sctp:
 | 
			
		||||
#    heartbit_interval : 5000 (5secs)
 | 
			
		||||
#    sack_delay : 200 (200ms)
 | 
			
		||||
#    rto_initial : 3000 (3secs)
 | 
			
		||||
#    rto_min : 1000 (1sec)
 | 
			
		||||
#    rto_max : 5000 (5secs)
 | 
			
		||||
#    max_num_of_ostreams : 30
 | 
			
		||||
#    max_num_of_istreams : 65535
 | 
			
		||||
#    max_attempts : 4
 | 
			
		||||
#    max_initial_timeout : 8000(8secs)
 | 
			
		||||
#    usrsctp_udp_port : 9899
 | 
			
		||||
#
 | 
			
		||||
sctp:
 | 
			
		||||
usrsctp:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
@@ -336,3 +358,17 @@ sctp:
 | 
			
		||||
#    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
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.11
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
ausf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.11
 | 
			
		||||
@@ -104,6 +116,18 @@ ausf:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
@@ -114,9 +138,6 @@ nrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -138,30 +159,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.15
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
bsf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.15
 | 
			
		||||
@@ -106,6 +118,18 @@ bsf:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
@@ -116,9 +140,6 @@ nrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -140,30 +161,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -26,12 +26,11 @@ logger:
 | 
			
		||||
hss:
 | 
			
		||||
    freeDiameter: @sysconfdir@/freeDiameter/hss.conf
 | 
			
		||||
 | 
			
		||||
#    sms_over_ims: "sip:smsc.mnc001.mcc001.3gppnetwork.org:7060;transport=tcp"
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -52,27 +51,3 @@ parameter:
 | 
			
		||||
#    gnb: 64
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ open5gs_conf = '''
 | 
			
		||||
    hss.yaml
 | 
			
		||||
    pcrf.yaml
 | 
			
		||||
    nrf.yaml
 | 
			
		||||
    scp.yaml
 | 
			
		||||
    ausf.yaml
 | 
			
		||||
    udm.yaml
 | 
			
		||||
    udr.yaml
 | 
			
		||||
 
 | 
			
		||||
@@ -47,6 +47,43 @@ logger:
 | 
			
		||||
#    s1ap:
 | 
			
		||||
#      dev: eth0
 | 
			
		||||
#
 | 
			
		||||
#  o S1AP Option (Default)
 | 
			
		||||
#    - sctp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    s1ap:
 | 
			
		||||
#      addr: 127.0.0.2
 | 
			
		||||
#      option:
 | 
			
		||||
#        stcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  o S1AP SCTP Option (Default)
 | 
			
		||||
#    - spp_hbinterval : 5000 (5secs)
 | 
			
		||||
#    - spp_sackdelay : 200 (200ms)
 | 
			
		||||
#    - srto_initial : 3000 (3secs)
 | 
			
		||||
#    - srto_min : 1000 (1sec)
 | 
			
		||||
#    - srto_max : 5000 (5secs)
 | 
			
		||||
#    - sinit_num_ostreams : 30
 | 
			
		||||
#    - sinit_max_instreams : 65535
 | 
			
		||||
#    - sinit_max_attempts : 4
 | 
			
		||||
#    - sinit_max_init_timeo : 8000(8secs)
 | 
			
		||||
#
 | 
			
		||||
#    s1ap:
 | 
			
		||||
#      addr: 127.0.0.2
 | 
			
		||||
#      option:
 | 
			
		||||
#        sctp:
 | 
			
		||||
#          spp_hbinterval : 5000
 | 
			
		||||
#          spp_sackdelay : 200
 | 
			
		||||
#          srto_initial : 3000
 | 
			
		||||
#          srto_min : 1000
 | 
			
		||||
#          srto_max : 5000
 | 
			
		||||
#          sinit_num_ostreams : 30
 | 
			
		||||
#          sinit_max_instreams : 65535
 | 
			
		||||
#          sinit_max_attempts : 4
 | 
			
		||||
#          sinit_max_init_timeo : 8000
 | 
			
		||||
#
 | 
			
		||||
#  <GTP-C Server>>
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-C Server(all address avaiable)
 | 
			
		||||
@@ -211,15 +248,15 @@ mme:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gtpc:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gummei: 
 | 
			
		||||
    gummei:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      mme_gid: 2
 | 
			
		||||
      mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 1
 | 
			
		||||
    security:
 | 
			
		||||
@@ -362,49 +399,10 @@ parameter:
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
# usrsctp:
 | 
			
		||||
#    udp_port : 9899
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# sockopt:
 | 
			
		||||
#    no_delay : true
 | 
			
		||||
#
 | 
			
		||||
sockopt:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# sctp:
 | 
			
		||||
#    heartbit_interval : 5000 (5secs)
 | 
			
		||||
#    sack_delay : 200 (200ms)
 | 
			
		||||
#    rto_initial : 3000 (3secs)
 | 
			
		||||
#    rto_min : 1000 (1sec)
 | 
			
		||||
#    rto_max : 5000 (5secs)
 | 
			
		||||
#    max_num_of_ostreams : 30
 | 
			
		||||
#    max_num_of_istreams : 65535
 | 
			
		||||
#    max_attempts : 4
 | 
			
		||||
#    max_initial_timeout : 8000(8secs)
 | 
			
		||||
#    usrsctp_udp_port : 9899
 | 
			
		||||
#
 | 
			
		||||
sctp:
 | 
			
		||||
usrsctp:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
@@ -423,3 +421,17 @@ sctp:
 | 
			
		||||
#    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
 | 
			
		||||
 
 | 
			
		||||
@@ -65,6 +65,18 @@ logger:
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      dev: eth0
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      addr:
 | 
			
		||||
@@ -75,9 +87,6 @@ nrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -99,30 +108,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.14
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  <List of avaiable Network Slice Instance(NSI)>
 | 
			
		||||
#
 | 
			
		||||
#  o One NSI
 | 
			
		||||
@@ -110,6 +122,18 @@ logger:
 | 
			
		||||
#        s_nssai:
 | 
			
		||||
#          sst: 1
 | 
			
		||||
#          sd: 009000
 | 
			
		||||
#
 | 
			
		||||
#  o NSI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    nsi:
 | 
			
		||||
#      addr: ::1
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
nssf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.14
 | 
			
		||||
@@ -156,9 +180,6 @@ nrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -180,30 +201,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.13
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
pcf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.13
 | 
			
		||||
@@ -106,6 +118,18 @@ pcf:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
@@ -116,9 +140,6 @@ nrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -140,30 +161,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,6 @@ pcrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -40,11 +37,6 @@ pcrf:
 | 
			
		||||
#  o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
 | 
			
		||||
#      prefer_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
#  o Legacy support for pre-release LTE 11 devices to do calling
 | 
			
		||||
#    - Replace IPv4/v6 local addr field in AAR Media-Subcomponent AVP
 | 
			
		||||
#      by 'any local port'
 | 
			
		||||
#      no_ipv4v6_local_addr_in_packet_filter: true
 | 
			
		||||
#
 | 
			
		||||
parameter:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
@@ -56,27 +48,3 @@ parameter:
 | 
			
		||||
#    gnb: 64
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										213
									
								
								configs/open5gs/scp.yaml.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								configs/open5gs/scp.yaml.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,213 @@
 | 
			
		||||
db_uri: mongodb://localhost/open5gs
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# logger:
 | 
			
		||||
#
 | 
			
		||||
#  o Set OGS_LOG_INFO to all domain level
 | 
			
		||||
#   - If `level` is omitted, the default level is OGS_LOG_INFO)
 | 
			
		||||
#   - If `domain` is omitted, the all domain level is set from 'level'
 | 
			
		||||
#    (Nothing is needed)
 | 
			
		||||
#
 | 
			
		||||
#  o Set OGS_LOG_ERROR to all domain level
 | 
			
		||||
#   - `level` can be set with none, fatal, error, warn, info, debug, trace
 | 
			
		||||
#    level: error
 | 
			
		||||
#
 | 
			
		||||
#  o Set OGS_LOG_DEBUG to mme/emm domain level
 | 
			
		||||
#    level: debug
 | 
			
		||||
#    domain: mme,emm
 | 
			
		||||
#
 | 
			
		||||
#  o Set OGS_LOG_TRACE to all domain level
 | 
			
		||||
#    level: trace
 | 
			
		||||
#    domain: core,sbi,scp,event,tlv,mem,sock
 | 
			
		||||
#
 | 
			
		||||
logger:
 | 
			
		||||
    file: @localstatedir@/log/open5gs/scp.log
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# scp:
 | 
			
		||||
#
 | 
			
		||||
#  <SBI Server>
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(http://<all address available>:80)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(http://<any address>:80)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr:
 | 
			
		||||
#          - 0.0.0.0
 | 
			
		||||
#          - ::0
 | 
			
		||||
#        port: 7777
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(https://<all address avaiable>:443)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - tls:
 | 
			
		||||
#          key: scp.key
 | 
			
		||||
#          pem: scp.pem
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(https://127.0.1.10:443, http://[::1]:80)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.1.10
 | 
			
		||||
#        tls:
 | 
			
		||||
#          key: scp.key
 | 
			
		||||
#          pem: scp.pem
 | 
			
		||||
#      - addr: ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(http://scp.open5gs.org:80)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - name: scp.open5gs.org
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(http://127.0.1.10:7777)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.1.10
 | 
			
		||||
#        port: 7777
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Server(http://<eth0 IP address>:80)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - dev: eth0
 | 
			
		||||
#
 | 
			
		||||
#  o Provide custom SBI address to be advertised to NRF
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - dev: eth0
 | 
			
		||||
#        advertise: open5gs-scp.svc.local
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: localhost
 | 
			
		||||
#        advertise:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.1.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  <Next hop SCP>
 | 
			
		||||
#
 | 
			
		||||
#  o Next hop SCP Server(https://127.0.1.11:7777)
 | 
			
		||||
#  next_scp:
 | 
			
		||||
#      sbi:
 | 
			
		||||
#        - addr: 127.0.1.11
 | 
			
		||||
#          port: 7777
 | 
			
		||||
#
 | 
			
		||||
#  <Discovery>
 | 
			
		||||
#
 | 
			
		||||
#  o NF Discovery and Selection
 | 
			
		||||
#    for indirect communication with Delegated Discovery;
 | 
			
		||||
#
 | 
			
		||||
#  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.
 | 
			
		||||
#
 | 
			
		||||
#  next_scp:
 | 
			
		||||
#      sbi:
 | 
			
		||||
#        - addr: 127.0.1.11
 | 
			
		||||
#          port: 7777
 | 
			
		||||
#      discovery:
 | 
			
		||||
#        delegated: auto|yes|no
 | 
			
		||||
#
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.1.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# nrf:
 | 
			
		||||
#
 | 
			
		||||
#  <SBI Client>>
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Client(http://127.0.0.10:7777)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      port: 7777
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Client(https://127.0.0.10:443, http://nrf.open5gs.org:80)
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      - addr: 127.0.0.10
 | 
			
		||||
#        tls:
 | 
			
		||||
#          key: nrf.key
 | 
			
		||||
#          pem: nrf.pem
 | 
			
		||||
#      - name: nrf.open5gs.org
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Client(http://[fd69:f21d:873c:fa::1]:80)
 | 
			
		||||
#    If prefer_ipv4 is true, http://127.0.0.10:80 is selected.
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
          - 127.0.0.10
 | 
			
		||||
          - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv6 addresses (only IPv4)
 | 
			
		||||
#      no_ipv6: true
 | 
			
		||||
#
 | 
			
		||||
#  o Prefer IPv4 instead of IPv6 for estabishing new GTP connections.
 | 
			
		||||
#      prefer_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
parameter:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# max:
 | 
			
		||||
#
 | 
			
		||||
# o Maximum Number of UE per AMF/MME
 | 
			
		||||
#    ue: 1024
 | 
			
		||||
# o Maximum Number of gNB/eNB per AMF/MME
 | 
			
		||||
#    gnb: 64
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
#  o NF Instance Heartbeat (Default : 0)
 | 
			
		||||
#    NFs will not send heart-beat timer in NFProfile
 | 
			
		||||
#    NRF will send heart-beat timer in NFProfile
 | 
			
		||||
#
 | 
			
		||||
#  o NF Instance Heartbeat (20 seconds)
 | 
			
		||||
#    NFs will send heart-beat timer (20 seconds) in NFProfile
 | 
			
		||||
#    NRF can change heart-beat timer in NFProfile
 | 
			
		||||
#
 | 
			
		||||
#    nf_instance:
 | 
			
		||||
#      heartbeat: 20
 | 
			
		||||
#
 | 
			
		||||
#  o Message Wait Duration (Default : 10,000 ms = 10 seconds)
 | 
			
		||||
#
 | 
			
		||||
#  o Message Wait Duration (3000 ms)
 | 
			
		||||
#    message:
 | 
			
		||||
#        duration: 3000
 | 
			
		||||
time:
 | 
			
		||||
@@ -38,6 +38,14 @@ logger:
 | 
			
		||||
#      - addr: 127.0.0.3
 | 
			
		||||
#      - addr: fd69:f21d:873c:fa::2
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-C Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    gtpc:
 | 
			
		||||
#      addr: 127.0.0.3
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
#  <PFCP Server>
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Server(127.0.0.3:8805, ::1:8805)
 | 
			
		||||
@@ -49,6 +57,14 @@ logger:
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      name: localhost
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      addr: 127.0.0.3
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
sgwc:
 | 
			
		||||
    gtpc:
 | 
			
		||||
      - addr: 127.0.0.3
 | 
			
		||||
@@ -109,9 +125,6 @@ sgwu:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -133,33 +146,11 @@ parameter:
 | 
			
		||||
#    ue: 1024
 | 
			
		||||
# o Maximum Number of gNB/eNB per AMF/MME
 | 
			
		||||
#    gnb: 64
 | 
			
		||||
# o Maximum Number of GTP peer nodes per SGWC/SMF
 | 
			
		||||
#    gtp_peer: 64
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,14 @@ logger:
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      - name: localhost
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      addr: 127.0.0.6
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
#  <GTP-U Server>
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-U Server(127.0.0.6:2152, [::1]:2152)
 | 
			
		||||
@@ -80,6 +88,14 @@ logger:
 | 
			
		||||
#      - dev: ens3
 | 
			
		||||
#        advertise: sgw1.epc.mnc001.mcc001.3gppnetwork.org
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-U Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    gtpu:
 | 
			
		||||
#      addr: 127.0.0.6
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
sgwu:
 | 
			
		||||
    pfcp:
 | 
			
		||||
      - addr: 127.0.0.6
 | 
			
		||||
@@ -101,9 +117,6 @@ sgwc:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -125,30 +138,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.4
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
#  <PFCP Server>
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Server(127.0.0.4:8805, ::1:8805)
 | 
			
		||||
@@ -84,6 +96,14 @@ logger:
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      name: localhost
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      addr: 127.0.0.4
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
#  <GTP-C Server>
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-C Server(127.0.0.4:2123, [fd69:f21d:873c:fa::3]:2123)
 | 
			
		||||
@@ -98,6 +118,14 @@ logger:
 | 
			
		||||
#      - addr: 127.0.0.4
 | 
			
		||||
#      - addr: fd69:f21d:873c:fa::3
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-C Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    gtpc:
 | 
			
		||||
#      addr: 127.0.0.4
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
#  <GTP-U Server>>
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-U Server(127.0.0.4:2152, [::1]:2152)
 | 
			
		||||
@@ -109,6 +137,14 @@ logger:
 | 
			
		||||
#    gtpu:
 | 
			
		||||
#      name: localhost
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-U Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    gtpu:
 | 
			
		||||
#      addr: 127.0.0.4
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
#  <Subnet for UE Pool>
 | 
			
		||||
#
 | 
			
		||||
#  o IPv4 Pool
 | 
			
		||||
@@ -197,6 +233,19 @@ logger:
 | 
			
		||||
#      - 127.0.0.1
 | 
			
		||||
#      - ::1
 | 
			
		||||
#
 | 
			
		||||
#  <CTF>
 | 
			
		||||
#
 | 
			
		||||
#  o Gy interface parameters towards OCS.
 | 
			
		||||
#  o enabled:
 | 
			
		||||
#    o auto: Default. Use Gy only if OCS available among Diameter peers
 | 
			
		||||
#    o yes:  Use Gy always;
 | 
			
		||||
#            reject subscribers if no OCS available among Diameter peers
 | 
			
		||||
#    o no:   Don't use Gy interface if there is an OCS available
 | 
			
		||||
#
 | 
			
		||||
#    ctf:
 | 
			
		||||
#      enabled: auto|yes|no
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
#  <SMF Selection - 5G Core only>
 | 
			
		||||
#  1. SMF sends SmfInfo(S-NSSAI, DNN, TAI) to the NRF
 | 
			
		||||
#  2. NRF responds to AMF with SmfInfo during NF-Discovery.
 | 
			
		||||
@@ -220,7 +269,7 @@ logger:
 | 
			
		||||
#              - internet
 | 
			
		||||
#              - ims
 | 
			
		||||
#
 | 
			
		||||
#  o S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1]
 | 
			
		||||
#  o S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:99970 TAC:1]
 | 
			
		||||
#    info:
 | 
			
		||||
#      - s_nssai:
 | 
			
		||||
#          - sst: 1
 | 
			
		||||
@@ -228,14 +277,14 @@ logger:
 | 
			
		||||
#              - internet
 | 
			
		||||
#        tai:
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            tac: 1
 | 
			
		||||
#
 | 
			
		||||
#  o If any of conditions below are met:
 | 
			
		||||
#   - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:90170 TAC:1-9]
 | 
			
		||||
#   - S-NSSAI[SST:1] and DNN[internet] and TAI[PLMN-ID:99970 TAC:1-9]
 | 
			
		||||
#   - S-NSSAI[SST:2 SD:000080] and DNN[internet or ims]
 | 
			
		||||
#   - S-NSSAI[SST:4] and DNN[internet] and TAI[PLMN-ID:90170 TAC:10-20,30-40]
 | 
			
		||||
#   - S-NSSAI[SST:4] and DNN[internet] and TAI[PLMN-ID:99970 TAC:10-20,30-40]
 | 
			
		||||
#
 | 
			
		||||
#    info:
 | 
			
		||||
#      - s_nssai:
 | 
			
		||||
@@ -244,7 +293,7 @@ logger:
 | 
			
		||||
#              - internet
 | 
			
		||||
#        tai:
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            range:
 | 
			
		||||
#              - 1-9
 | 
			
		||||
@@ -260,7 +309,7 @@ logger:
 | 
			
		||||
#              - internet
 | 
			
		||||
#        tai:
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            range:
 | 
			
		||||
#              - 10-20
 | 
			
		||||
@@ -290,27 +339,27 @@ logger:
 | 
			
		||||
#              - internet
 | 
			
		||||
#        tai:
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            tac: [1, 2, 3]
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            tac: 4
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            tac:
 | 
			
		||||
#              - 5
 | 
			
		||||
#              - 6
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            range:
 | 
			
		||||
#              - 100-200
 | 
			
		||||
#              - 300-400
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            range:
 | 
			
		||||
#              - 500-600
 | 
			
		||||
@@ -322,10 +371,10 @@ logger:
 | 
			
		||||
#              - internet
 | 
			
		||||
#        tai:
 | 
			
		||||
#          - plmn_id:
 | 
			
		||||
#              mcc: 901
 | 
			
		||||
#              mcc: 999
 | 
			
		||||
#              mnc: 70
 | 
			
		||||
#            tac: 99
 | 
			
		||||
# 
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
smf:
 | 
			
		||||
    sbi:
 | 
			
		||||
@@ -349,6 +398,8 @@ smf:
 | 
			
		||||
      - 2001:4860:4860::8888
 | 
			
		||||
      - 2001:4860:4860::8844
 | 
			
		||||
    mtu: 1400
 | 
			
		||||
    ctf:
 | 
			
		||||
      enabled: auto
 | 
			
		||||
    freeDiameter: @sysconfdir@/freeDiameter/smf.conf
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
@@ -377,6 +428,18 @@ smf:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
@@ -390,7 +453,7 @@ nrf:
 | 
			
		||||
#  <PFCP Client>>
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Client(127.0.0.7:8805)
 | 
			
		||||
# 
 | 
			
		||||
#
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      addr: 127.0.0.7
 | 
			
		||||
#
 | 
			
		||||
@@ -443,9 +506,6 @@ upf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -458,6 +518,10 @@ upf:
 | 
			
		||||
#  o Disable selection of UPF PFCP in Round-Robin manner
 | 
			
		||||
#      no_pfcp_rr_select: true
 | 
			
		||||
#
 | 
			
		||||
#  o Legacy support for pre-release LTE 11 devices
 | 
			
		||||
#    - Omits adding local address in packet filters for compatibility
 | 
			
		||||
#      no_ipv4v6_local_addr_in_packet_filter: true
 | 
			
		||||
#
 | 
			
		||||
parameter:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
@@ -467,33 +531,11 @@ parameter:
 | 
			
		||||
#    ue: 1024
 | 
			
		||||
# o Maximum Number of gNB/eNB per AMF/MME
 | 
			
		||||
#    gnb: 64
 | 
			
		||||
# o Maximum Number of GTP peer nodes per SGWC/SMF
 | 
			
		||||
#    gtp_peer: 64
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
@@ -523,3 +565,17 @@ pool:
 | 
			
		||||
#    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
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.12
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
udm:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.12
 | 
			
		||||
@@ -104,6 +116,18 @@ udm:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
@@ -114,9 +138,6 @@ nrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -138,30 +159,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,18 @@ logger:
 | 
			
		||||
#          - 127.0.0.99
 | 
			
		||||
#          - ::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.20
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
udr:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.20
 | 
			
		||||
@@ -106,6 +118,18 @@ udr:
 | 
			
		||||
#        - 127.0.0.10
 | 
			
		||||
#        - fd69:f21d:873c:fa::1
 | 
			
		||||
#
 | 
			
		||||
#  o SBI Option (Default)
 | 
			
		||||
#    - tcp_nodelay : true
 | 
			
		||||
#    - so_linger.l_onoff : false
 | 
			
		||||
#
 | 
			
		||||
#    sbi:
 | 
			
		||||
#      addr: 127.0.0.10
 | 
			
		||||
#      option:
 | 
			
		||||
#        tcp_nodelay: false
 | 
			
		||||
#        so_linger:
 | 
			
		||||
#          l_onoff: true
 | 
			
		||||
#          l_linger: 10
 | 
			
		||||
#
 | 
			
		||||
nrf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr:
 | 
			
		||||
@@ -116,9 +140,6 @@ nrf:
 | 
			
		||||
#
 | 
			
		||||
# parameter:
 | 
			
		||||
#
 | 
			
		||||
#  o Number of output streams per SCTP associations.
 | 
			
		||||
#      sctp_streams: 30
 | 
			
		||||
#
 | 
			
		||||
#  o Disable use of IPv4 addresses (only IPv6)
 | 
			
		||||
#      no_ipv4: true
 | 
			
		||||
#
 | 
			
		||||
@@ -140,30 +161,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,14 @@ logger:
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      name: localhost
 | 
			
		||||
#
 | 
			
		||||
#  o PFCP Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    pfcp:
 | 
			
		||||
#      addr: 127.0.0.7
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
#  <GTP-U Server>>
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-U Server(127.0.0.7:2152, [::1]:2152)
 | 
			
		||||
@@ -80,6 +88,14 @@ logger:
 | 
			
		||||
#      - dev: ens3
 | 
			
		||||
#        advertise: upf1.5gc.mnc001.mcc001.3gppnetwork.org
 | 
			
		||||
#
 | 
			
		||||
#  o GTP-U Option (Default)
 | 
			
		||||
#    - so_bindtodevice : NULL
 | 
			
		||||
#
 | 
			
		||||
#    gtpu:
 | 
			
		||||
#      addr: 127.0.0.7
 | 
			
		||||
#      option:
 | 
			
		||||
#        so_bindtodevice: vrf-blue
 | 
			
		||||
#
 | 
			
		||||
#  <Subnet for UE network>
 | 
			
		||||
#
 | 
			
		||||
#  Note that you need to setup your UE network using TUN device.
 | 
			
		||||
@@ -196,30 +212,6 @@ parameter:
 | 
			
		||||
#
 | 
			
		||||
max:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# pool:
 | 
			
		||||
#
 | 
			
		||||
# o The default memory pool size was set assuming 1024 UEs.
 | 
			
		||||
#   To connect more UEs, you need to increase the size further.
 | 
			
		||||
#
 | 
			
		||||
#   - Pool-size 128         => 65536 Number
 | 
			
		||||
#   - Pool-size 256         => 16384 Number
 | 
			
		||||
#   - Pool-size 512         => 4096 Number
 | 
			
		||||
#   - Pool-size 1024        => 1024 Number
 | 
			
		||||
#   - Pool-size 2048        => 512 Number
 | 
			
		||||
#   - Pool-size 8192        => 128 Number
 | 
			
		||||
#   - Pool-size 1024*1024   => 8 Number
 | 
			
		||||
#
 | 
			
		||||
#    128:  65536
 | 
			
		||||
#    256:  16384
 | 
			
		||||
#    512:  4096
 | 
			
		||||
#    1024: 1024
 | 
			
		||||
#    2048: 512
 | 
			
		||||
#    8192: 128
 | 
			
		||||
#    big:  8
 | 
			
		||||
#
 | 
			
		||||
pool:
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# time:
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
#    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -44,13 +45,13 @@ mme:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gummei:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      mme_gid: 2
 | 
			
		||||
      mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 1
 | 
			
		||||
    security:
 | 
			
		||||
@@ -112,19 +113,19 @@ amf:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        amf_id:
 | 
			
		||||
          region: 2
 | 
			
		||||
          set: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
@@ -194,6 +195,70 @@ 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
 | 
			
		||||
#
 | 
			
		||||
#  <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:
 | 
			
		||||
      - addr: 127.0.1.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
ausf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.11
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -44,13 +45,13 @@ mme:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gummei:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      mme_gid: 2
 | 
			
		||||
      mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 1
 | 
			
		||||
    security:
 | 
			
		||||
@@ -112,19 +113,19 @@ amf:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        amf_id:
 | 
			
		||||
          region: 202
 | 
			
		||||
          set: 1016
 | 
			
		||||
    tai:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
#    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -44,13 +45,13 @@ mme:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gummei:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      mme_gid: 2
 | 
			
		||||
      mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 7
 | 
			
		||||
    security:
 | 
			
		||||
@@ -112,19 +113,19 @@ amf:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        amf_id:
 | 
			
		||||
          region: 2
 | 
			
		||||
          set: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -4,3 +4,6 @@ Name=ogstun
 | 
			
		||||
[Network]
 | 
			
		||||
Address=10.45.0.1/16
 | 
			
		||||
Address=2001:db8:cafe::1/48
 | 
			
		||||
 | 
			
		||||
[Link]
 | 
			
		||||
RequiredForOnline=false
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS AMF Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS AUSF Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS MME Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS NSSF Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS SGW-C Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS SGW-U Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS SMF Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
Requires=systemd-networkd.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS UDM Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
After=network-online.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Open5GS UPF Daemon
 | 
			
		||||
After=networking.service
 | 
			
		||||
Requires=systemd-networkd.service
 | 
			
		||||
After=network-online.target systemd-networkd.service
 | 
			
		||||
Wants=systemd-networkd.service
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
#    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -44,15 +45,15 @@ mme:
 | 
			
		||||
      - 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: 12345
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 1
 | 
			
		||||
    security:
 | 
			
		||||
        integrity_order : [ EIA2, EIA1, EIA0 ]
 | 
			
		||||
        ciphering_order : [ EEA0, EEA1, EEA2 ]
 | 
			
		||||
@@ -115,20 +116,20 @@ amf:
 | 
			
		||||
      - addr: 127.0.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
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 001
 | 
			
		||||
          mnc: 01
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
    security:
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ logger:
 | 
			
		||||
 | 
			
		||||
parameter:
 | 
			
		||||
#    no_nrf: true
 | 
			
		||||
#    no_scp: true
 | 
			
		||||
#    no_amf: true
 | 
			
		||||
#    no_smf: true
 | 
			
		||||
#    no_upf: true
 | 
			
		||||
@@ -44,13 +45,13 @@ mme:
 | 
			
		||||
      - addr: 127.0.0.2
 | 
			
		||||
    gummei:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      mme_gid: 2
 | 
			
		||||
      mme_code: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      plmn_id:
 | 
			
		||||
        mcc: 901
 | 
			
		||||
        mcc: 999
 | 
			
		||||
        mnc: 70
 | 
			
		||||
      tac: 1
 | 
			
		||||
    security:
 | 
			
		||||
@@ -115,19 +116,19 @@ amf:
 | 
			
		||||
      - addr: 127.0.0.5
 | 
			
		||||
    guami:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        amf_id:
 | 
			
		||||
          region: 2
 | 
			
		||||
          set: 1
 | 
			
		||||
    tai:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        tac: 1
 | 
			
		||||
    plmn_support:
 | 
			
		||||
      - plmn_id:
 | 
			
		||||
          mcc: 901
 | 
			
		||||
          mcc: 999
 | 
			
		||||
          mnc: 70
 | 
			
		||||
        s_nssai:
 | 
			
		||||
          - sst: 1
 | 
			
		||||
@@ -199,6 +200,11 @@ nrf:
 | 
			
		||||
        - ::1
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
scp:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.1.10
 | 
			
		||||
        port: 7777
 | 
			
		||||
 | 
			
		||||
ausf:
 | 
			
		||||
    sbi:
 | 
			
		||||
      - addr: 127.0.0.11
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										162
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										162
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,165 @@
 | 
			
		||||
open5gs (2.4.9) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 25 Jul 2022 20:49:38 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.9~jammy) jammy; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 25 Jul 2022 20:48:36 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.9~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 25 Jul 2022 20:47:16 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.9~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Mon, 25 Jul 2022 20:45:33 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.8) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 12 Jun 2022 16:28:51 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.8~jammy) jammy; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 12 Jun 2022 16:27:13 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.8~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 12 Jun 2022 16:23:05 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.8~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 12 Jun 2022 16:22:04 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.8~impish) impish; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 12 Jun 2022 16:19:27 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.7) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 21 May 2022 19:20:07 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.7~jammy) jammy; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 21 May 2022 19:19:10 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.7~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 21 May 2022 19:18:11 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.7~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 21 May 2022 19:17:08 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.7~impish) impish; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sat, 21 May 2022 19:14:58 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.6) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 17 May 2022 22:41:32 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.6~jammy) jammy; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 17 May 2022 22:40:16 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.6~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 17 May 2022 22:38:38 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.6~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 17 May 2022 22:37:22 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.6~impish) impish; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 17 May 2022 22:34:40 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.5) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * GTP-1C(GGSN) provided by sysmocom
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 27 Mar 2022 18:41:04 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.5~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * GTP-1C(GGSN) provided by sysmocom
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 27 Mar 2022 18:40:06 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.5~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * GTP-1C(GGSN) provided by sysmocom
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 27 Mar 2022 18:38:55 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.5~impish) impish; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * GTP-1C(GGSN) provided by sysmocom
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Sun, 27 Mar 2022 18:37:40 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.4) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Fixed Memory leak
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 01 Feb 2022 15:03:37 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.4~focal) focal; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Fixed Memory leak
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 01 Feb 2022 15:02:35 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.4~bionic) bionic; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Fixed Memory leak
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 01 Feb 2022 15:01:31 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.4~impish) impish; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Fixed Memory leak
 | 
			
		||||
 | 
			
		||||
 -- Sukchan Lee <acetcom@gmail.com>  Tue, 01 Feb 2022 14:58:13 +0900
 | 
			
		||||
 | 
			
		||||
open5gs (2.4.3) unstable; urgency=medium
 | 
			
		||||
 | 
			
		||||
  * Bug Fixed
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								debian/open5gs-upf.postinst
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								debian/open5gs-upf.postinst
									
									
									
									
										vendored
									
									
								
							@@ -27,7 +27,9 @@ case "$1" in
 | 
			
		||||
	if test "x`systemctl is-enabled systemd-networkd`" = xdisabled; then
 | 
			
		||||
		systemctl enable systemd-networkd
 | 
			
		||||
	fi
 | 
			
		||||
	deb-systemd-invoke restart systemd-networkd
 | 
			
		||||
	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
 | 
			
		||||
 
 | 
			
		||||
@@ -5,15 +5,8 @@ FROM ${username}/${dist}-${tag}-open5gs-base
 | 
			
		||||
 | 
			
		||||
MAINTAINER Sukchan Lee <acetcom@gmail.com>
 | 
			
		||||
 | 
			
		||||
WORKDIR /root
 | 
			
		||||
COPY setup.sh /root
 | 
			
		||||
WORKDIR /open5gs
 | 
			
		||||
COPY docker/build/setup.sh /root
 | 
			
		||||
COPY ./ /open5gs
 | 
			
		||||
 | 
			
		||||
ARG USER=open5gs
 | 
			
		||||
ARG REPO=open5gs
 | 
			
		||||
ARG BRANCH=main
 | 
			
		||||
RUN git clone https://github.com/$USER/$REPO
 | 
			
		||||
ADD https://api.github.com/repos/$USER/$REPO/git/refs/heads/$BRANCH /root/open5gs-ver.json
 | 
			
		||||
 | 
			
		||||
RUN cd $REPO && \
 | 
			
		||||
    git fetch && git checkout -f -B $BRANCH origin/$BRANCH && \
 | 
			
		||||
    meson build && ninja -C build install
 | 
			
		||||
RUN meson build && ninja -C build install
 | 
			
		||||
 
 | 
			
		||||
@@ -15,4 +15,4 @@ services:
 | 
			
		||||
    sysctls:
 | 
			
		||||
      - net.ipv6.conf.all.disable_ipv6=0
 | 
			
		||||
    hostname: open5gs-test
 | 
			
		||||
    command: /bin/bash -c "/root/setup.sh; cd open5gs/build && meson test -v"
 | 
			
		||||
    command: /bin/bash -c "/root/setup.sh; cd /open5gs/build && meson test -v"
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,8 @@ services:
 | 
			
		||||
 | 
			
		||||
  build:
 | 
			
		||||
    build:
 | 
			
		||||
      context: ./build
 | 
			
		||||
      context: ../
 | 
			
		||||
      dockerfile: docker/build/Dockerfile
 | 
			
		||||
      args:
 | 
			
		||||
        dist: ${DIST-ubuntu}
 | 
			
		||||
        tag: ${TAG-latest}
 | 
			
		||||
@@ -67,7 +68,7 @@ services:
 | 
			
		||||
    volumes:
 | 
			
		||||
      - home:/home/${USER}
 | 
			
		||||
      - ${HOME}:/mnt
 | 
			
		||||
      - /tmp/.X11-unix:/tmp/.X11-unix
 | 
			
		||||
    # - /tmp/.X11-unix:/tmp/.X11-unix
 | 
			
		||||
    # - /etc/localtime:/etc/localtime:ro
 | 
			
		||||
    # - /usr/share/zoneinfo/Europe/Helsinki:/etc/localtime:ro
 | 
			
		||||
    hostname: open5gs-dev
 | 
			
		||||
 
 | 
			
		||||
@@ -73,7 +73,7 @@ With the exception of the SMF and UPF, all config files for the 5G SA core funct
 | 
			
		||||
 | 
			
		||||
#### Ubuntu
 | 
			
		||||
 | 
			
		||||
*Ubuntu* makes it easy to install Open5GS as shown below,
 | 
			
		||||
*Ubuntu* makes it easy to install Open5GS as shown below.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo apt update
 | 
			
		||||
@@ -112,6 +112,7 @@ https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbunt
 | 
			
		||||
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_20.10/
 | 
			
		||||
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_21.04/
 | 
			
		||||
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_21.10/
 | 
			
		||||
https://download.opensuse.org/repositories/home:/acetcom:/open5gs:/latest/xUbuntu_22.04/
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### openSUSE
 | 
			
		||||
@@ -149,6 +150,7 @@ https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_20.
 | 
			
		||||
https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_20.10/
 | 
			
		||||
https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_21.04/
 | 
			
		||||
https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_21.10/
 | 
			
		||||
https://download.opensuse.org/repositories/network:/osmocom:/nightly/xUbuntu_22.04/
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -247,7 +249,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       addr: 127.0.0.2
 | 
			
		||||
     gummei:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 901
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
+        mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+        mnc: 01  # set your PLMN-MNC
 | 
			
		||||
@@ -255,7 +257,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       mme_code: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 901
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
-      tac: 1
 | 
			
		||||
+        mcc: 001 # set your PLMN-MCC
 | 
			
		||||
@@ -306,7 +308,7 @@ amf:
 | 
			
		||||
+      - addr: 10.10.0.5 # for external gNB - a local address that can be reached by the gNB
 | 
			
		||||
     guami:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 901
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
+          mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+          mnc: 01  # set your PLMN-MNC
 | 
			
		||||
@@ -315,7 +317,7 @@ amf:
 | 
			
		||||
           set: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 901
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
-        tac: 1
 | 
			
		||||
+          mcc: 001 # set your PLMN-MCC
 | 
			
		||||
@@ -323,7 +325,7 @@ amf:
 | 
			
		||||
+        tac: 2 # should match the TAC used by your gNB
 | 
			
		||||
     plmn_support:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 901
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
+          mcc: 001 # set your PLMN-MCC
 | 
			
		||||
+          mnc: 01  # set your PLMN-MNC
 | 
			
		||||
 
 | 
			
		||||
@@ -107,7 +107,7 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
 | 
			
		||||
+      - addr: 10.10.0.5
 | 
			
		||||
     guami:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 901
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
+          mcc: 001
 | 
			
		||||
+          mnc: 01
 | 
			
		||||
@@ -116,7 +116,7 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
 | 
			
		||||
           set: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 901
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
-        tac: 1
 | 
			
		||||
+          mcc: 001
 | 
			
		||||
@@ -124,7 +124,7 @@ $ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
 | 
			
		||||
+        tac: 2
 | 
			
		||||
     plmn_support:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 901
 | 
			
		||||
-          mcc: 999
 | 
			
		||||
-          mnc: 70
 | 
			
		||||
+          mcc: 001
 | 
			
		||||
+          mnc: 01
 | 
			
		||||
@@ -168,7 +168,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       addr: 127.0.0.2
 | 
			
		||||
     gummei:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 901
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
+        mcc: 001
 | 
			
		||||
+        mnc: 01
 | 
			
		||||
@@ -176,7 +176,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       mme_code: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 901
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
-      tac: 1
 | 
			
		||||
+        mcc: 001
 | 
			
		||||
@@ -210,7 +210,6 @@ If you modify the config files while Open5GS daemons are running, please restart
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ cd install/bin/
 | 
			
		||||
$ ./install/bin/open5gs-mmed
 | 
			
		||||
Open5GS daemon v2.1.0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 001
 | 
			
		||||
-        mnc: 01
 | 
			
		||||
+        mcc: 901
 | 
			
		||||
+        mcc: 999
 | 
			
		||||
+        mnc: 70
 | 
			
		||||
       mme_gid: 2
 | 
			
		||||
       mme_code: 1
 | 
			
		||||
@@ -79,7 +79,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
-        mcc: 001
 | 
			
		||||
-        mnc: 01
 | 
			
		||||
-      tac: 7
 | 
			
		||||
+        mcc: 901
 | 
			
		||||
+        mcc: 999
 | 
			
		||||
+        mnc: 70
 | 
			
		||||
+      tac: 1
 | 
			
		||||
     security:
 | 
			
		||||
@@ -153,7 +153,7 @@ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 001
 | 
			
		||||
-          mnc: 01
 | 
			
		||||
+          mcc: 901
 | 
			
		||||
+          mcc: 999
 | 
			
		||||
+          mnc: 70
 | 
			
		||||
         amf_id:
 | 
			
		||||
           region: 2
 | 
			
		||||
@@ -163,14 +163,14 @@ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
 | 
			
		||||
-          mcc: 001
 | 
			
		||||
-          mnc: 01
 | 
			
		||||
-        tac: 7
 | 
			
		||||
+          mcc: 901
 | 
			
		||||
+          mcc: 999
 | 
			
		||||
+          mnc: 70
 | 
			
		||||
+        tac: 1
 | 
			
		||||
     plmn_support:
 | 
			
		||||
       - plmn_id:
 | 
			
		||||
-          mcc: 001
 | 
			
		||||
-          mnc: 01
 | 
			
		||||
+          mcc: 901
 | 
			
		||||
+          mcc: 999
 | 
			
		||||
+          mnc: 70
 | 
			
		||||
         s_nssai:
 | 
			
		||||
           - sst: 1
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,8 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
 | 
			
		||||
### Commercial 5G
 | 
			
		||||
---
 | 
			
		||||
 * Airspan 5G OpenRange vCU + Airspan 5G OpenRange vDU + Airspan 5G OpenRANGE06 AirVelocity 2700 RU
 | 
			
		||||
 * Airspan AirSpeed 2900
 | 
			
		||||
 * Airspan AirStrand 2200
 | 
			
		||||
 * LIONS RANathon O-CU and O-DU + RANathon RS8601 Indoor O-RU + RANathon XG8600 Fronthaul Gateway
 | 
			
		||||
 * NOKIA AEQE (SW: 5G20A)
 | 
			
		||||
 * NOKIA AEQD (SW: 5G20A)
 | 
			
		||||
@@ -40,6 +42,8 @@ If you have tested radio hardware from a vendor not listed with Open5GS, please
 | 
			
		||||
 * Nokia FW2PC BC28 Flexi Zone G2 Outdoor Micro FDD LTE 700 MHz High Power
 | 
			
		||||
 * Nokia FWH1 B38 Flexi Zone Outdoor Micro TD LTE 2600 MHz
 | 
			
		||||
 * Nokia FRGY Flexi BTS BBU with Nokia FRCG RRU Band 5 850Mhz FDD 40W. Version 16.1A to 19.0
 | 
			
		||||
 * Nokia FW2FA Flexi Zone Mini-Macro Outdoor BTS, 2x20w Band 39
 | 
			
		||||
 * Nokia FWGR Flexi Zone Mini-Macro Outdoor BTS, 2x20w Band 1
 | 
			
		||||
 * Ruckus Q710 and Q910
 | 
			
		||||
 | 
			
		||||
### 4G/5G Software Stacks + SDRs
 | 
			
		||||
 
 | 
			
		||||
@@ -3,10 +3,10 @@ title: CentOS
 | 
			
		||||
head_inline: "<style> .blue { color: blue; } </style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
This guide is based on **CentOS 8** Distribution.
 | 
			
		||||
This guide is based on **CentOS Stream 8** Distribution.
 | 
			
		||||
{: .blue}
 | 
			
		||||
 | 
			
		||||
## Install **CentOS 8** from Vagrant box (optional)
 | 
			
		||||
## Install **CentOS Stream 8** from Vagrant box (optional)
 | 
			
		||||
---
 | 
			
		||||
Vagrant provides a simple way to create and deploy Virtual Machines from
 | 
			
		||||
pre-built images using VirtualBox, libvirt, or VMWare as a hypervisor engine.
 | 
			
		||||
@@ -20,13 +20,13 @@ The instructions to install Vagrant are provided at
 | 
			
		||||
[vagrantup.com](https://www.vagrantup.com/).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Create a CentOS 8 Virtual Machine using Vagrant
 | 
			
		||||
### Create a CentOS Stream 8 Virtual Machine using Vagrant
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Use the supplied `Vagrantfile` in the `vagrant` directory to create the
 | 
			
		||||
virtual machine.
 | 
			
		||||
 | 
			
		||||
Note that this Vagrantfile is identical to the base CentOS 8 box, with
 | 
			
		||||
Note that this Vagrantfile is identical to the base CentOS Stream 8 box, with
 | 
			
		||||
the exception that the amount of virtual memory has been increased to 1GB:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
@@ -37,7 +37,7 @@ vagrant up --provider virtualbox
 | 
			
		||||
### Log into the newly created CentOS VM
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Use SSH to log into the CentOS 8 VM:
 | 
			
		||||
Use SSH to log into the CentOS Stream 8 VM:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
vagrant ssh
 | 
			
		||||
@@ -45,20 +45,20 @@ vagrant ssh
 | 
			
		||||
 | 
			
		||||
Note that the Open5GS source is *not* copied into the VM.  The instructions
 | 
			
		||||
below provide the step by step instructions for setting up Open5GS for
 | 
			
		||||
either a bare metal or virtual CentOS 8 system.
 | 
			
		||||
either a bare metal or virtual CentOS Stream 8 system.
 | 
			
		||||
 | 
			
		||||
The rest of the commands below are performed inside the CentOS VM as the
 | 
			
		||||
user 'vagrant', or on your bare metal CentOS 8 system as any normal user.
 | 
			
		||||
user 'vagrant', or on your bare metal CentOS Stream 8 system as any normal user.
 | 
			
		||||
 | 
			
		||||
## Install prerequisite packages to build and run Open5GS
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Enable CentOS 8 PowerTools repository
 | 
			
		||||
### Enable CentOS Stream 8 PowerTools repository
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo dnf install 'dnf-command(config-manager)'
 | 
			
		||||
$ sudo dnf config-manager --set-enabled PowerTools
 | 
			
		||||
$ sudo dnf config-manager --set-enabled powertools
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Enable the Extra Packages for Enterprise Linux
 | 
			
		||||
@@ -86,13 +86,13 @@ $ sudo dnf config-manager --set-enabled elrepo-testing
 | 
			
		||||
Create a repository file to install the MongoDB packages:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo sh -c 'cat << EOF > /etc/yum.repos.d/mongodb-org-3.4.repo
 | 
			
		||||
[mongodb-org-3.4]
 | 
			
		||||
$ sudo sh -c 'cat << EOF > /etc/yum.repos.d/mongodb-org-3.6.repo
 | 
			
		||||
[mongodb-org-3.6]
 | 
			
		||||
name=MongoDB Repository
 | 
			
		||||
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.4/x86_64/
 | 
			
		||||
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.6/x86_64/
 | 
			
		||||
gpgcheck=1
 | 
			
		||||
enabled=1
 | 
			
		||||
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
 | 
			
		||||
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
 | 
			
		||||
EOF'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@@ -105,20 +105,13 @@ $ sudo dnf -y install mongodb-org
 | 
			
		||||
### Install the dependencies for building the source code.
 | 
			
		||||
---
 | 
			
		||||
Open5GS requires several packages which are not installed by default in
 | 
			
		||||
a base CentOS 8 installation.
 | 
			
		||||
a base CentOS Stream 8 installation.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo dnf install python3 meson ninja-build gcc gcc-c++ flex bison git lksctp-tools-devel libidn-devel gnutls-devel libgcrypt-devel openssl-devel cyrus-sasl-devel libyaml-devel mongo-c-driver-devel libmicrohttpd-devel libcurl-devel libnghttp2-devel libtalloc-devel
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Install the SCTP kernel module in kernel-modules-extra.
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo dnf install kernel-modules-extra
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Install iproute IP interface tools.
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
@@ -126,6 +119,15 @@ $ sudo dnf install kernel-modules-extra
 | 
			
		||||
$ sudo dnf install iproute
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Install the SCTP kernel module in kernel-modules-extra.
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo dnf install kernel-modules-extra
 | 
			
		||||
$ sudo rm /etc/modprobe.d/sctp-blacklist.conf
 | 
			
		||||
$ sudo rm /etc/modprobe.d/sctp_diag-blacklist.conf
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Update all installed packages to the latest versions.
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
@@ -141,11 +143,27 @@ after this step to ensure that you are running this new kernel version.
 | 
			
		||||
This is important when you try to load the SCTP kernel module later.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
[vm] $ sudo reboot
 | 
			
		||||
[host] $ vagrant halt
 | 
			
		||||
[host] $ vagrant up --provider virtualbox
 | 
			
		||||
[host] $ # ssh back into the VM after it reboots...
 | 
			
		||||
[host] $ vagrant ssh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Check the SCTP kernel module
 | 
			
		||||
---
 | 
			
		||||
Open5GS requires the Linux SCTP kernel module to be loaded in the kernel.
 | 
			
		||||
In the CentOS Stream 8 Vagrant box SCTP is not loaded into the kernel automatically
 | 
			
		||||
so must be installed as follows:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ checksctp
 | 
			
		||||
SCTP supported
 | 
			
		||||
$ sudo modprobe sctp
 | 
			
		||||
$ # Check that SCTP was loaded successfully:
 | 
			
		||||
$ sudo dmesg | grep sctp
 | 
			
		||||
[  639.971360] sctp: Hash tables configured (bind 256/256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Build Open5GS from Source
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
@@ -252,19 +270,6 @@ to configure the TUN device as follows:
 | 
			
		||||
`$ sudo ./misc/netconf.sh`
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
 | 
			
		||||
### Install the SCTP kernel module
 | 
			
		||||
---
 | 
			
		||||
Open5GS requires the Linux SCTP kernel module to be loaded in the kernel.
 | 
			
		||||
In the CentOS 8 Vagrant box SCTP is not loaded into the kernel automatically
 | 
			
		||||
so must be installed as follows:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ sudo modprobe sctp
 | 
			
		||||
$ # Check that SCTP was loaded successfully:
 | 
			
		||||
$ sudo dmesg | grep sctp
 | 
			
		||||
[  639.971360] sctp: Hash tables configured (bind 256/256)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Testing Open5GS
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -97,7 +97,7 @@ $ mongo
 | 
			
		||||
> db.subscribers.find().pretty()
 | 
			
		||||
{
 | 
			
		||||
	"_id" : ObjectId("60969fe79459f8b40d8d3f68"),
 | 
			
		||||
	"imsi" : "901700000000001",
 | 
			
		||||
	"imsi" : "999700000000001",
 | 
			
		||||
	"__v" : 0,
 | 
			
		||||
	"access_restriction_data" : 32,
 | 
			
		||||
	"ambr" : {
 | 
			
		||||
@@ -164,7 +164,7 @@ $ mongo
 | 
			
		||||
> db.subscribers.find().pretty()
 | 
			
		||||
{
 | 
			
		||||
	"_id" : ObjectId("609715fda08851a0744e6ae7"),
 | 
			
		||||
	"imsi" : "901700000021309",
 | 
			
		||||
	"imsi" : "999700000021309",
 | 
			
		||||
	"__v" : 0,
 | 
			
		||||
	"access_restriction_data" : 32,
 | 
			
		||||
	"ambr" : {
 | 
			
		||||
@@ -317,7 +317,7 @@ index 7e939e81..dfe4456d 100644
 | 
			
		||||
         s_nssai:
 | 
			
		||||
           - sst: 1
 | 
			
		||||
+      - plmn_id:
 | 
			
		||||
+          mcc: 901
 | 
			
		||||
+          mcc: 999
 | 
			
		||||
+          mnc: 70
 | 
			
		||||
+        s_nssai:
 | 
			
		||||
+          - sst: 1
 | 
			
		||||
@@ -1089,12 +1089,12 @@ Currently, the number of UE is limited to `128*128`.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
* AMF_ID
 | 
			
		||||
  PLMN ID - MNC: 901, MCC: 70
 | 
			
		||||
  PLMN ID - MNC: 999, MCC: 70
 | 
			
		||||
  Region : 2
 | 
			
		||||
  Set : 1
 | 
			
		||||
 | 
			
		||||
* TAI
 | 
			
		||||
  PLMN ID - MNC: 901, MCC: 70
 | 
			
		||||
  PLMN ID - MNC: 999, MCC: 70
 | 
			
		||||
  TAC : 1
 | 
			
		||||
 | 
			
		||||
* S_NSSASI
 | 
			
		||||
@@ -1105,12 +1105,12 @@ Currently, the number of UE is limited to `128*128`.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
* GUMMEI
 | 
			
		||||
  PLMN ID - MNC: 901, MCC: 70
 | 
			
		||||
  PLMN ID - MNC: 999, MCC: 70
 | 
			
		||||
  MME Group : 2
 | 
			
		||||
  MME Code : 1
 | 
			
		||||
 | 
			
		||||
* TAI
 | 
			
		||||
  PLMN ID - MNC: 901, MCC: 70
 | 
			
		||||
  PLMN ID - MNC: 999, MCC: 70
 | 
			
		||||
  TAC : 1
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -190,14 +190,14 @@ Title : sysmocom SIM Card Details / AM93\PICK\00859
 | 
			
		||||
 | 
			
		||||
IMSI    ICCID   ACC PIN1    PUK1    PIN2    PUK2    Ki  OPC ADM1    KIC1    KID1    KIK1
 | 
			
		||||
...
 | 
			
		||||
901700000017408	8988211000000174089	0100	3623	84724035	8774	57473966	B1233463AB9BC2AD2DB1830EB6417E7B	625150E2A943E3353DD23554101CAFD4	47190711	C865CAA0A54542333929B29B116F4375	7D7F65DCD99003C0A0D5D31CA3E5253E	5B27983AF628FC3FCB36B89300012944
 | 
			
		||||
999700000017408	8988211000000174089	0100	3623	84724035	8774	57473966	B1233463AB9BC2AD2DB1830EB6417E7B	625150E2A943E3353DD23554101CAFD4	47190711	C865CAA0A54542333929B29B116F4375	7D7F65DCD99003C0A0D5D31CA3E5253E	5B27983AF628FC3FCB36B89300012944
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Here's my subscriber information from above.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
MCC/MNC : 901/70
 | 
			
		||||
IMSI : 901700000017408
 | 
			
		||||
MCC/MNC : 999/70
 | 
			
		||||
IMSI : 999700000017408
 | 
			
		||||
K : B1233463AB9BC2AD2DB1830EB6417E7B
 | 
			
		||||
OPc : 625150E2A943E3353DD23554101CAFD4  
 | 
			
		||||
```
 | 
			
		||||
@@ -238,7 +238,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       addr: 127.0.0.2
 | 
			
		||||
     gummei:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 901
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
+        mcc: 310
 | 
			
		||||
+        mnc: 789
 | 
			
		||||
@@ -246,7 +246,7 @@ $ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
 | 
			
		||||
       mme_code: 1
 | 
			
		||||
     tai:
 | 
			
		||||
       plmn_id:
 | 
			
		||||
-        mcc: 901
 | 
			
		||||
-        mcc: 999
 | 
			
		||||
-        mnc: 70
 | 
			
		||||
-      tac: 1
 | 
			
		||||
+        mcc: 310
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										134
									
								
								docs/_docs/tutorial/04-metrics-prometheus.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								docs/_docs/tutorial/04-metrics-prometheus.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,134 @@
 | 
			
		||||
---
 | 
			
		||||
title: Metrics with Prometheus
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### 0. Introduction
 | 
			
		||||
 | 
			
		||||
This tutorial explains how to export open5gs metrics to Prometheus, which can in
 | 
			
		||||
turn be used to visualize or export them to other systems such as Grafana or
 | 
			
		||||
StatsD.
 | 
			
		||||
 | 
			
		||||
When this method is used, any open5gs program exporting metrics becomes a
 | 
			
		||||
Prometheus server, which is basically an HTTP server serving Prometheus data to
 | 
			
		||||
the Prometheus scrapper.
 | 
			
		||||
 | 
			
		||||
Note: Only open5gs-smfd supports exporting metrics so far, though other may
 | 
			
		||||
hopefully follow soon.
 | 
			
		||||
 | 
			
		||||
#### 1. Enable Prometheus support during build
 | 
			
		||||
 | 
			
		||||
Open5GS programs use a generic internal API available in libogsmetrics. This
 | 
			
		||||
library implements the API based on configuration passed during open5gs build
 | 
			
		||||
time. By default, the library will be built using the `void` implementation,
 | 
			
		||||
which is basically a NO-OP implementation.
 | 
			
		||||
 | 
			
		||||
In order to use the Prometheus, the `prometheus` metrics implementation needs to
 | 
			
		||||
be selected at build time:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
meson configure -Dmetrics_impl=prometheus build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This will enable building the implementation under lib/metrics/prometheus/,
 | 
			
		||||
which uses:
 | 
			
		||||
 | 
			
		||||
* prometheus-client-c project (libprom): To generate the Prometheus expected
 | 
			
		||||
  output format of the metrics
 | 
			
		||||
* libmicrohttpd: To server the content generated by libprom as an HTTP server
 | 
			
		||||
 | 
			
		||||
The `prometheus-client-c` project is not currently well maintained, and uses a
 | 
			
		||||
weird mixture of build systems, which makes it difficult to make it available in
 | 
			
		||||
most Linux distributions. As a result, a fork of the project is available under
 | 
			
		||||
Open5GS GitHub namespace, with an extra patch applied making it possible to
 | 
			
		||||
include it as a subproject, which will be fetched and built automatically when
 | 
			
		||||
building the prometheus libmetrics implementation.
 | 
			
		||||
 | 
			
		||||
#### 2. Configuring for runtime
 | 
			
		||||
 | 
			
		||||
By default the created Prometheus HTTP server will be listening on `0.0.0.0`
 | 
			
		||||
port `9090`.
 | 
			
		||||
This can be configured under the following config file options:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
#
 | 
			
		||||
# metrics:
 | 
			
		||||
#
 | 
			
		||||
#  <Metrics Server>
 | 
			
		||||
#
 | 
			
		||||
#  o Metrics Server(http://<any address>:9090)
 | 
			
		||||
#    metrics:
 | 
			
		||||
#      addr: 0.0.0.0
 | 
			
		||||
#      port: 9090
 | 
			
		||||
#
 | 
			
		||||
metrics:
 | 
			
		||||
    addr: 0.0.0.0
 | 
			
		||||
    port: 9090
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Note: You may want to change the default IP address or port if you are running
 | 
			
		||||
the Prometheus scrapper in the same host, since it will also spawn its own
 | 
			
		||||
Prometheus server also in port 9090, which will collide.
 | 
			
		||||
 | 
			
		||||
#### 3. Manual visualization
 | 
			
		||||
 | 
			
		||||
Simply open the web browser at the following URL (changing IP address and port
 | 
			
		||||
as configured in previous section):
 | 
			
		||||
```
 | 
			
		||||
http://127.0.0.1:9090/metrics
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Note: URL `metrics/` (with a slash at the end) will not work.
 | 
			
		||||
 | 
			
		||||
You should see some output similar to this one below:
 | 
			
		||||
```
 | 
			
		||||
# HELP ues_active Active User Equipments
 | 
			
		||||
# TYPE ues_active gauge
 | 
			
		||||
ues_active 2
 | 
			
		||||
 | 
			
		||||
# HELP process_max_fds Maximum number of open file descriptors.
 | 
			
		||||
# TYPE process_max_fds gauge
 | 
			
		||||
process_max_fds 1024
 | 
			
		||||
 | 
			
		||||
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
 | 
			
		||||
# TYPE process_virtual_memory_max_bytes gauge
 | 
			
		||||
process_virtual_memory_max_bytes -1
 | 
			
		||||
 | 
			
		||||
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
 | 
			
		||||
# TYPE process_cpu_seconds_total gauge
 | 
			
		||||
process_cpu_seconds_total 0
 | 
			
		||||
 | 
			
		||||
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
 | 
			
		||||
# TYPE process_virtual_memory_bytes gauge
 | 
			
		||||
process_virtual_memory_bytes 3156643840
 | 
			
		||||
 | 
			
		||||
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
 | 
			
		||||
# TYPE process_start_time_seconds gauge
 | 
			
		||||
process_start_time_seconds 402433
 | 
			
		||||
 | 
			
		||||
# HELP process_open_fds Number of open file descriptors.
 | 
			
		||||
# TYPE process_open_fds gauge
 | 
			
		||||
process_open_fds 23
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### 3. Integration with Prometheus scrapper
 | 
			
		||||
 | 
			
		||||
Sample Prometheus scrapper configuration (`~/prometheus.yml`):
 | 
			
		||||
```
 | 
			
		||||
global:
 | 
			
		||||
  scrape_interval: 10s
 | 
			
		||||
 | 
			
		||||
scrape_configs:
 | 
			
		||||
  - job_name: open5gs-smfd
 | 
			
		||||
    static_configs:
 | 
			
		||||
      - targets: ["192.168.1.140:9091"]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Where `192.168.1.140:9091` is the IP address and port where `open5gs-smfd` is
 | 
			
		||||
serving its metrics, as configured in above sections.
 | 
			
		||||
 | 
			
		||||
The Prometheus scrapper can be easily started from a docker container:
 | 
			
		||||
```
 | 
			
		||||
docker run -p 9090:9090 -v  /prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then open your browser to be able to visualize the data: `http://localhost:9090/graph`
 | 
			
		||||
@@ -13,6 +13,7 @@ head_inline: "<style> ul { padding-bottom: 1em; } </style>"
 | 
			
		||||
  - [Your First LTE](tutorial/01-your-first-lte)
 | 
			
		||||
  - [VoLTE Setup with Kamailio IMS and Open5GS](tutorial/02-VoLTE-setup)
 | 
			
		||||
  - [Dockerized VoLTE Setup](tutorial/03-VoLTE-dockerized)
 | 
			
		||||
  - [Metrics with Prometheus](tutorial/04-metrics-prometheus)
 | 
			
		||||
 | 
			
		||||
- Troubleshooting
 | 
			
		||||
  - [Simple Issues](troubleshoot/01-simple-issues)
 | 
			
		||||
@@ -26,10 +27,10 @@ head_inline: "<style> ul { padding-bottom: 1em; } </style>"
 | 
			
		||||
  - [MacOSX(Intel)](platform/06-macosx-intel)
 | 
			
		||||
  - [FreeBSD](platform/07-freebsd)
 | 
			
		||||
  - [Alpine](platform/08-alpine)
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- Hardware Specific Notes
 | 
			
		||||
  - [eNodeBs/gNodeBs tested on Open5GS](hardware/01-genodebs)
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- @infinitydon
 | 
			
		||||
  - [Open5GS on Amazon Elastic Kubernetes Service](https://aws.amazon.com/blogs/opensource/open-source-mobile-core-network-implementation-on-amazon-elastic-kubernetes-service/)
 | 
			
		||||
  - [Kubernetes Open5GS Deployment](https://dev.to/infinitydon/virtual-4g-simulation-using-kubernetes-and-gns3-3b7k?fbclid=IwAR1p99h13a-mCfejanbBQe0H0-jp5grXkn5mWf1WrTHf47UtegB2-UHGGZQ)
 | 
			
		||||
@@ -46,3 +47,4 @@ head_inline: "<style> ul { padding-bottom: 1em; } </style>"
 | 
			
		||||
  - [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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.2 - Bug Fixes (mostly talloc related)"
 | 
			
		||||
date: 2022-01-14 20:50:00 +0900
 | 
			
		||||
title: "v2.4.3 - Bug Fixes (mostly talloc related)"
 | 
			
		||||
date: 2022-01-20 19:14:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
@@ -9,15 +9,18 @@ tags:
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### Modification
 | 
			
		||||
- [HSS] Changed network_access_mode default to 0 ([#1323](https://github.com/open5gs/open5gs/issues/1323)) -- [kbarlee](https://github.com/kbarlee)
 | 
			
		||||
- [SMF/UPF] Changed IPv6 prefix to documentation prefix 2001:db8::/32 ([#1320](https://github.com/open5gs/open5gs/issues/1320),[#1321](https://github.com/open5gs/open5gs/pull/1321)) -- [JM-Lemmi](https://github.com/JM-Lemmi)
 | 
			
		||||
- [ALL] Increased gNB/NF memory pool from 32 to 64 ([ea667587](https://github.com/open5gs/open5gs/commit/ea6675879c52f8c758ca215f70734a9acf54e064))
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [SBI] FQDN bug from talloc ([#1328](https://github.com/open5gs/open5gs/issues/1328)) -- [UmakantKulkarni](https://github.com/UmakantKulkarni)
 | 
			
		||||
- [SBI] Fix potential null pointer dereference ([#1324](https://github.com/open5gs/open5gs/pull/1324)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [HSS] Changed PUR-Flags to Optional ([#1298](https://github.com/open5gs/open5gs/issues/1298)) -- [fedkis](https://github.com/fedkis)
 | 
			
		||||
- [PFCP/DIAMETER] Fixed the crash by flow->description ([#1313](https://github.com/open5gs/open5gs/issues/1313)) -- [WingPig99](https://github.com/WingPig99), [s5uishida](https://github.com/s5uishida)
 | 
			
		||||
- [ALL] Fixed the crash by epoll ([#1131](https://github.com/open5gs/open5gs/issues/1131)) -- [VLiu7](https://github.com/VLiu7)
 | 
			
		||||
- [AMF] Should cipher the NAS message container IE ([715e4c0](https://github.com/open5gs/open5gs/commit/715e4c0b506357ee57df3a827ae2cbf0cadf6209))
 | 
			
		||||
 | 
			
		||||
#### Modification
 | 
			
		||||
- [SMF/UPF] Changed IPv6 prefix to documentation prefix 2001:db8::/32 ([#1320](https://github.com/open5gs/open5gs/issues/1320),[#1321](https://github.com/open5gs/open5gs/pull/1321)) -- [JM-Lemmi](https://github.com/JM-Lemmi)
 | 
			
		||||
- [ALL] Increased gNB/NF memory pool from 32 to 64 ([ea667587](https://github.com/open5gs/open5gs/commit/ea6675879c52f8c758ca215f70734a9acf54e064))
 | 
			
		||||
 | 
			
		||||
Download -- [v2.4.2.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.2.tar.gz)
 | 
			
		||||
Download -- [v2.4.3.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.3.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
							
								
								
									
										19
									
								
								docs/_posts/2022-02-01-release-v2.4.4.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								docs/_posts/2022-02-01-release-v2.4.4.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.4 - Memory leak fixed"
 | 
			
		||||
date: 2022-02-01 15:09:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
  - News
 | 
			
		||||
  - Release
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [NRF] Fixed the crash if reqNFInstanceId does not exist in Subscription ([#1347](https://github.com/open5gs/open5gs/issues/1347)) -- [ajimenezsa](https://github.com/ajimenezsa)
 | 
			
		||||
- [ALL] Memory leak fixed ([#1282](https://github.com/open5gs/open5gs/issues/1282)) -- [bluehat-f](https://github.com/bluehat-f), [micjerry](https://github.com/micjerry)
 | 
			
		||||
- [SMF] Fixed SMF crash if TransportLayerAddress in GTPTunnel does not exist ([#1341](https://github.com/open5gs/open5gs/issues/1341)) -- [modyngs](https://github.com/modyngs)
 | 
			
		||||
- [SBI] Remove one octet length in FQDN ([#1333](https://github.com/open5gs/open5gs/issues/1333)) -- [ajimenezsa](https://github.com/ajimenezsa)
 | 
			
		||||
 | 
			
		||||
Download -- [v2.4.4.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.4.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
							
								
								
									
										42
									
								
								docs/_posts/2022-03-27-release-v2.4.5.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								docs/_posts/2022-03-27-release-v2.4.5.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.5 - GTP-1C(GGSN) provided by sysmocom"
 | 
			
		||||
date: 2022-03-27 19:32:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
  - News
 | 
			
		||||
  - Release
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### New Features
 | 
			
		||||
- [SMF] Introduced Gn interface(GTPv1C) Support to SMF provided [sysmocom](https://sysmocom.de) -- [pespin](https://github.com/pespin)
 | 
			
		||||
 | 
			
		||||
#### Enhancements
 | 
			
		||||
- [SMF] Remove T_RELEASE_HOLDING timer -- [72ecd1c](https://github.com/open5gs/open5gs/commit/72ecd1c0052a55d8aefb645eb2c3e7c64057caae)
 | 
			
		||||
- [MME] Refactor to check a piggybacked ESM -- [bf77318](https://github.com/open5gs/open5gs/commit/bf773186026c9847a2aff0035d91949a1b098d14)
 | 
			
		||||
- [CORE] Added APIs to manage NTP 32-bit timestamps ([#1439](https://github.com/open5gs/open5gs/pull/1439)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [GTP] Supprt binding socket to device/Improve socket configuration ([#1404](https://github.com/open5gs/open5gs/pull/1404)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [ASN] Applied the NGAP modification of both [mouse07410/asn1c#89](https://github.com/mouse07410/asn1c/pull/89) and [mouse07410/asn1c#90](https://github.com/mouse07410/asn1c/pull/90) -- [nkout](https://github.com/nkout)
 | 
			
		||||
- [SMF] Support PCO protocol ID PAP(0xc023) ([#1357](https://github.com/open5gs/open5gs/issues/1357)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [ALL] Refined systemd sequencing ([#1366](https://github.com/open5gs/open5gs/pull/1366), [#1368](https://github.com/open5gs/open5gs/pull/1368)) -- [matt9j](https://github.com/matt9j)
 | 
			
		||||
 | 
			
		||||
#### Security Updates
 | 
			
		||||
- [UPF] Check if Source IP address is spoofing ([#1354](https://github.com/open5gs/open5gs/issues/1354), [#1355](https://github.com/open5gs/open5gs/issues/1355)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [AMF] Fixed the Slice/DNN selection method ([#1438](https://github.com/open5gs/open5gs/issues/1438), [#1440](https://github.com/open5gs/open5gs/issues/1440)) -- [dcandal-gti](https://github.com/dcandal-gti)
 | 
			
		||||
- [ALL] Use talloc memory pool in PKBUF ([#1353](https://github.com/open5gs/open5gs/issues/1353), [#1431](https://github.com/open5gs/open5gs/issues/1431)) -- [raphaelsander](https://github.com/raphaelsander)
 | 
			
		||||
- [SMF] Exception handling for APN duplicate check ([#1431](https://github.com/open5gs/open5gs/issues/1431)) -- [raphaelsander](https://github.com/raphaelsander)
 | 
			
		||||
- [SBI] Need to increase NF reference count -- [ed34444e](https://github.com/open5gs/open5gs/commit/ed3444eef5e9e57705645b500dbd6c5af453703f)
 | 
			
		||||
- [CORE] Initialize struct epoll_event ([#1399](https://github.com/open5gs/open5gs/issues/1399)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [SMF/PCRF] Fixed prefix length in Gx CCR Framed-IPv6-Prefix AVP ([#1396](https://github.com/open5gs/open5gs/pull/1396), [#1398](https://github.com/open5gs/open5gs/pull/1398)) -- [herlesupreeth](https://github.com/herlesupreeth)
 | 
			
		||||
- [SMF/PCRF] Fixed packet fileter for pre rel11 LTE devices ([#1393](https://github.com/open5gs/open5gs/pull/1393)) -- [herlesupreeth](https://github.com/herlesupreeth)
 | 
			
		||||
- [SMF] Fixed an incorrect GTP cause with a changed APN type(IPv4v6->IPv4/IPv6) ([#1360](https://github.com/open5gs/open5gs/issues/1360)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [ALL] Fixed the timezone string converter ([#1376](https://github.com/open5gs/open5gs/issues/1376)) -- [modyngs](https://github.com/modyngs)
 | 
			
		||||
- [SMF] Added DNS servers to PCO IPCP only if UE requested ([#1358](https://github.com/open5gs/open5gs/issues/1358)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [SBI] Remove Accept-Encoding(gzip) in HTTP2-Client -- [ffcd92c](https://github.com/open5gs/open5gs/commit/ffcd92c2f3b6547ae8d159b195ffc0592ad0f3e9)
 | 
			
		||||
- [SBI] Fixed NFs crash if no mandotory item such like a version in NFService ([#1350](https://github.com/open5gs/open5gs/issues/1350)) -- [ajimenezsa](https://github.com/ajimenezsa)
 | 
			
		||||
 | 
			
		||||
Download -- [v2.4.5.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.5.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
							
								
								
									
										45
									
								
								docs/_posts/2022-05-21-release-v2.4.7.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								docs/_posts/2022-05-21-release-v2.4.7.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.7 - Gy interface provided by sysmocom"
 | 
			
		||||
date: 2022-05-21 19:42:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
  - News
 | 
			
		||||
  - Release
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### New Features
 | 
			
		||||
- [SMF] Introduced Gy interface Support provided by [sysmocom](https://sysmocom.de) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [GTP] X2 Handover with SGW relocation ([#1367](https://github.com/open5gs/open5gs/issues/1367), [#1459](https://github.com/open5gs/open5gs/issues/1459)) -- [pespin](https://github.com/pespin), [cbrasho](https://github.com/cbrasho)
 | 
			
		||||
 | 
			
		||||
#### Enhancements
 | 
			
		||||
- [GY] Clarify use of Reporting-Request and set it to FINAL in TERMINATION_REQ ([#1552](https://github.com/open5gs/open5gs/pull/1552)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [SBI] Change handling of SessionManagementSubscriptionData as an array ([#1551](https://github.com/open5gs/open5gs/pull/1551)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [PFCP] Support Multi-CP with One-UP ([c6c8dc1](https://github.com/open5gs/open5gs/commit/c6c8dc1256c304aea1fc44cd70fbaeb290f31ad3))
 | 
			
		||||
- [SMF] Use Only One PFCP Session Modification Message in the ViNR([e0a487f](https://github.com/open5gs/open5gs/commit/e0a487f479b7d916044d6595228de6211d548656))
 | 
			
		||||
- [SMF] Parallelize Gx+Gy CCR Initial ([#1491](https://github.com/open5gs/open5gs/pull/1491)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [SMF] Integrate Session Setup Cycle into GSM State Machine ([#1489](https://github.com/open5gs/open5gs/pull/1489)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [CX] Functionality for send SMS with using IMS service ([#1477](https://github.com/open5gs/open5gs/pull/1477)) -- [EugeneBogush](https://github.com/EugeneBogush)
 | 
			
		||||
- [MEM] Improve data-path performance using talloc_pool() -- ([e213f65](https://github.com/open5gs/open5gs/commit/e213f654060b7b9f2bae11420c5175e876cf006e))
 | 
			
		||||
- [TEST] Automatic CI for github PRs ([#1454](https://github.com/open5gs/open5gs/issues/1454)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [DB] Add/update current IMEISV of UE in subscriber profile ([#1464](https://github.com/open5gs/open5gs/pull/1464)) -- [EugeneBogush](https://github.com/EugeneBogush)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [CORE] Fixed the linked-list BUG ([#1187](https://github.com/open5gs/open5gs/issues/1187)) -- [Vomvas](https://github.com/Vomvas)
 | 
			
		||||
- [SMF] Prevent concurrent access to ogs_pool allocating smf_event ([#1546](https://github.com/open5gs/open5gs/issues/1546)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [DIAMETER] Fix AN-Trusted AVP sent in CCR ([#1542](https://github.com/open5gs/open5gs/pull/1542)) -- [herlesupreeth](https://github.com/herlesupreeth)
 | 
			
		||||
- [PFCP] Fixed incorrect memcpy usage ([#1531](https://github.com/open5gs/open5gs/issues/1531)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [AMF] Fixed the bug Not Sending NG RESET Acknowledge ([#1525](https://github.com/open5gs/open5gs/issues/1525)) -- [mcatalancid](https://github.com/mcatalancid)
 | 
			
		||||
- [IPv6] IPv6 RS/RA with QFI Extended Header ([#1506](https://github.com/open5gs/open5gs/issues/1506)) -- [irazairspan](https://github.com/irazairspan)
 | 
			
		||||
- [SBI] cJSON v1.7.7 to v1.7.15 to solve HTTP2 request with incorrect payload ([#1503](https://github.com/open5gs/open5gs/issues/1503)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [GTP] Handling multiple bearer message ([#1498](https://github.com/open5gs/open5gs/issues/1498)) -- [cbrasho](https://github.com/cbrasho)
 | 
			
		||||
- [MME] SCTP Crash when eNB, SGW-U and UPF are going down ([#1497](https://github.com/open5gs/open5gs/pull/1497)) -- [spencersevilla](https://github.com/spencersevilla)
 | 
			
		||||
- [SBI] fixed HTTP2 header values is 0 ([#1488](https://github.com/open5gs/open5gs/issues/1488)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [MME] Send EMM Cause when Attach Request type is not same as HSS Network-Access-Mode ([#1484](https://github.com/open5gs/open5gs/pull/1484)) -- [herlesupreeth](https://github.com/herlesupreeth)
 | 
			
		||||
- [GX] Prevent sending Gx messages to non-PCRF Diameter peers ([#1468](https://github.com/open5gs/open5gs/pull/1468)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [AMF] AMF crashes when requesting a PDU session for a S-NSSAI with an SST when the network is configured with multiple S-NSSAIs with the same SST ([#1440](https://github.com/open5gs/open5gs/issues/1440)) -- [dcandal-gti](https://github.com/dcandal-gti)
 | 
			
		||||
 | 
			
		||||
Download -- [v2.4.7.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.7.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
							
								
								
									
										30
									
								
								docs/_posts/2022-06-12-release-v2.4.8.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								docs/_posts/2022-06-12-release-v2.4.8.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.8 - Upgrade PFCP to v16.9.1"
 | 
			
		||||
date: 2022-06-12 16:35:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
  - News
 | 
			
		||||
  - Release
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### New Features
 | 
			
		||||
- [Metrics] Initial metrics support based on Prometheus ([#1571](https://github.com/open5gs/open5gs/pull/1571)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
 | 
			
		||||
#### Enhancements
 | 
			
		||||
- [PFCP] Upgrade PFCP to v16.9.1 -- [1235317](https://github.com/open5gs/open5gs/commit/12353178fb7c15a5c78035e19501412af9c76ad0)
 | 
			
		||||
- [NRF] Don't abort if there are too many registered NF instances ([#1579](https://github.com/open5gs/open5gs/pull/1579)) -- [mitmitmitm](https://github.com/mitmitmitm)
 | 
			
		||||
- [SGW-C] Consider if SMF/PGW GTPv2-C address changed ([#1560](https://github.com/open5gs/open5gs/issues/1560)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [CLI] Added four addtional commands in dbctl ([#1562](https://github.com/open5gs/open5gs/pull/1562)) -- [mcatalancid](https://github.com/mcatalancid)
 | 
			
		||||
- [GY] Gy+PFCP improvements ([#1555](https://github.com/open5gs/open5gs/pull/1555)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [AMF] Added to handle an invalid RI(Routing Indicator) ([#1570](https://github.com/open5gs/open5gs/issues/1570)) -- [ray28850101](https://github.com/ray28850101)
 | 
			
		||||
- [SBI] Re-enabling HTTP/1.1 ([#1254](https://github.com/open5gs/open5gs/issues/1254)) -- [hidingturtle](https://github.com/hidingturtle), [22username2022](https://github.com/22username2022)
 | 
			
		||||
- [GTP] GTP-U address does not change when gNB with IPv6-only changes
 | 
			
		||||
([#1515](https://github.com/open5gs/open5gs/issues/1515), [#1586](https://github.com/open5gs/open5gs/issues/1586)) -- [irazairspan](https://github.com/irazairspan), [dmartyushev](https://github.com/dmartyushev)
 | 
			
		||||
 | 
			
		||||
Download -- [v2.4.8.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.8.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
							
								
								
									
										52
									
								
								docs/_posts/2022-07-25-release-v2.4.9.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/_posts/2022-07-25-release-v2.4.9.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
---
 | 
			
		||||
title: "v2.4.9 - Default MCC/MNC from 901/70 to 999/70"
 | 
			
		||||
date: 2022-07-25 20:52:00 +0900
 | 
			
		||||
categories:
 | 
			
		||||
  - Release
 | 
			
		||||
tags:
 | 
			
		||||
  - News
 | 
			
		||||
  - Release
 | 
			
		||||
head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### New Features
 | 
			
		||||
- [CONF] Changed default MCC/MNC from 901/70 to 999/70 -- [b58ebda](https://github.com/open5gs/open5gs/commit/b58ebda556cf0278fd361bcd6ca044502398e6dc)
 | 
			
		||||
- [MISC] Added static analysis & Fixed the results ([#1638](https://github.com/open5gs/open5gs/pull/1638)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
 | 
			
		||||
#### Enhancements
 | 
			
		||||
- [SBI] Support Discovery Optional Parameter -- [a5010a6](https://github.com/open5gs/open5gs/commit/a5010a61effce92fe9dfb2cbf8df1f04ddc1de64), [9b76215](https://github.com/open5gs/open5gs/commit/9b762158a6ef3f8c4f3967d04e01d1a13cc9908a)
 | 
			
		||||
- [SMF] Send PDU Session Establish Accept to serving AMF ([#1671](https://github.com/open5gs/open5gs/pull/1671)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [MME] Introduce support for handling Charging Characteristics from HSS ([#1673](https://github.com/open5gs/open5gs/pull/1673)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
 | 
			
		||||
- [MME] Set default Network-Access-Mode to 0 ([#1672](https://github.com/open5gs/open5gs/pull/1672)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
 | 
			
		||||
- [AMF] Handle namf-callback DeregNotify message from UDM ([#1654](https://github.com/open5gs/open5gs/pull/1654)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [Systemd] upf.postinst: Don't restart service in chroot ([#1644](https://github.com/open5gs/open5gs/pull/1644)) -- [osmith42](https://github.com/osmith42)
 | 
			
		||||
- [PFCP] Added UE IP address in Uplink PDR rules ([#1642](https://github.com/open5gs/open5gs/pull/1642)) -- [Networkmama](https://github.com/Networkmama)
 | 
			
		||||
- [TLV] Changed MAX TLV More to 16 -- [051c19b](https://github.com/open5gs/open5gs/commit/051c19b7c8277ecf0465eb895249e9e520ba5e63)
 | 
			
		||||
- [PFCP] Error code paths replaced with asserts() ([#1635](https://github.com/open5gs/open5gs/pull/1635)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [PFCP/GTP] context when TEID=0, SEID=0 ([#1594](https://github.com/open5gs/open5gs/pull/1594), [#1606](https://github.com/open5gs/open5gs/pull/1606), [#1620](https://github.com/open5gs/open5gs/pull/1620)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [SMF] Gn: QoS Profile and PCO IE improvements ([#1631](https://github.com/open5gs/open5gs/pull/1631)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [PFCP] Added Network Instance to CP-UP FAR ([#1630](https://github.com/open5gs/open5gs/pull/1630)) -- [Networkmama](https://github.com/Networkmama)
 | 
			
		||||
- [PFCP] Added DNN/APN in FAR ([#1629](https://github.com/open5gs/open5gs/pull/1629)) -- [Networkmama](https://github.com/Networkmama)
 | 
			
		||||
- [PFCP] Set v4/6 flag in F-TEID IE request type ([#1625](https://github.com/open5gs/open5gs/pull/1625)) -- [Networkmama](https://github.com/Networkmama)
 | 
			
		||||
- [SMF] pfcp-sm: Fix ogs_fsm_dispatch() on NULL sess ([#1628](https://github.com/open5gs/open5gs/pull/1628)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [UPF] Avoid crash if no default subnet configured ([#1624](https://github.com/open5gs/open5gs/pull/1624)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [SMF] Gy: Send Multiple-Services-Indicator AVP only during Initial CCR ([#1616](https://github.com/open5gs/open5gs/pull/1616)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
- [Docker] Use local sources to build applications ([#1583](https://github.com/open5gs/open5gs/pull/1583)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [SBI] Change nf-instance-id to Optional in nf-instance context -- [c528e0d](https://github.com/open5gs/open5gs/commit/c528e0d5bc258336ab302efe08df7ca5472d0134)
 | 
			
		||||
- [CLI] Added show commands in the dbctl ([#1613](https://github.com/open5gs/open5gs/pull/1613)) -- [JagannathS](https://github.com/JagannathS)
 | 
			
		||||
 | 
			
		||||
#### Bug Fixes
 | 
			
		||||
- [AMF] Fixed 5GMM cause in 5GMM reject message ([#1660](https://github.com/open5gs/open5gs/issues/1660)) -- [takgr](https://github.com/takgr)
 | 
			
		||||
- [ASN1C] Rework APER from [mouse07410/asn1c#94](https://github.com/mouse07410/asn1c/issues/94)
 | 
			
		||||
- [TEST] Fixed a crash for UERANSIM 500 Test ([#1652](https://github.com/open5gs/open5gs/pull/1652)) -- [lemon1009](https://github.com/lemon1009)
 | 
			
		||||
- [SBI] from NRF with wrong requester-nf-type ([#1650](https://github.com/open5gs/open5gs/issues/1650)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [PFCP] Fixed a endianness of OGS_PFCP_APPLY_ACTION ([#1640](https://github.com/open5gs/open5gs/issues/1640)) -- [mitmitmitm](https://github.com/mitmitmitm)
 | 
			
		||||
- [DBI] Fixed a crash when slice/session overflow ([#1637](https://github.com/open5gs/open5gs/issues/1637)) -- [jmasterfunk84](https://github.com/jmasterfunk84)
 | 
			
		||||
- [AMF/MME] Added a protection code for SCTP jumbo frame ([#1632](https://github.com/open5gs/open5gs/issues/1632)) -- [kbaccar](https://github.com/kbaccar)
 | 
			
		||||
- [SBI] Fix memory leak for nghttp2 session ([#1618](https://github.com/open5gs/open5gs/pull/1618)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [MME/AMF] Fixed network name encoding ([#1614](https://github.com/open5gs/open5gs/issues/1614)) -- [Mozartor2](https://github.com/Mozartor2)
 | 
			
		||||
- [SBI] Fixed invalid read beyond allocated memory ([#1610](https://github.com/open5gs/open5gs/pull/1610)) -- [bmeglicit](https://github.com/bmeglicit)
 | 
			
		||||
- [CORE] Compare port in ogs_sockaddr_is_equal() ([#1608](https://github.com/open5gs/open5gs/pull/1608)) -- [pespin](https://github.com/pespin)
 | 
			
		||||
 | 
			
		||||
Download -- [v2.4.9.tar.gz](https://github.com/open5gs/open5gs/archive/v2.4.9.tar.gz)
 | 
			
		||||
{: .notice--info}
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
PACKAGE="open5gs"
 | 
			
		||||
VERSION="2.4.3"
 | 
			
		||||
VERSION="2.4.7"
 | 
			
		||||
 | 
			
		||||
print_status() {
 | 
			
		||||
    echo
 | 
			
		||||
 
 | 
			
		||||
@@ -20,10 +20,12 @@ libapp_sources = files('''
 | 
			
		||||
 | 
			
		||||
    ogs-yaml.h
 | 
			
		||||
    ogs-context.h
 | 
			
		||||
    ogs-config.h
 | 
			
		||||
    ogs-init.h
 | 
			
		||||
 | 
			
		||||
    ogs-yaml.c
 | 
			
		||||
    ogs-context.c
 | 
			
		||||
    ogs-config.c
 | 
			
		||||
    ogs-init.c
 | 
			
		||||
'''.split())
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,6 +28,7 @@ extern int __ogs_app_domain;
 | 
			
		||||
 | 
			
		||||
#include "app/ogs-yaml.h"
 | 
			
		||||
#include "app/ogs-context.h"
 | 
			
		||||
#include "app/ogs-config.h"
 | 
			
		||||
#include "app/ogs-init.h"
 | 
			
		||||
 | 
			
		||||
#undef OGS_APP_INSIDE
 | 
			
		||||
@@ -93,6 +94,9 @@ void smf_terminate(void);
 | 
			
		||||
int amf_initialize(void);
 | 
			
		||||
void amf_terminate(void);
 | 
			
		||||
 | 
			
		||||
int scp_initialize(void);
 | 
			
		||||
void scp_terminate(void);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										110
									
								
								lib/app/ogs-config.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								lib/app/ogs-config.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
 | 
			
		||||
 *
 | 
			
		||||
 * This file is part of Open5GS.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU Affero General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "ogs-app.h"
 | 
			
		||||
 | 
			
		||||
int ogs_app_config_parse_sockopt(
 | 
			
		||||
        ogs_yaml_iter_t *parent, ogs_sockopt_t *option)
 | 
			
		||||
{
 | 
			
		||||
    ogs_yaml_iter_t sockopt_iter;
 | 
			
		||||
 | 
			
		||||
    ogs_assert(parent);
 | 
			
		||||
    ogs_assert(option);
 | 
			
		||||
 | 
			
		||||
    ogs_sockopt_init(option);
 | 
			
		||||
 | 
			
		||||
    ogs_yaml_iter_recurse(parent, &sockopt_iter);
 | 
			
		||||
    while (ogs_yaml_iter_next(&sockopt_iter)) {
 | 
			
		||||
        const char *sockopt_key = ogs_yaml_iter_key(&sockopt_iter);
 | 
			
		||||
        ogs_assert(sockopt_key);
 | 
			
		||||
 | 
			
		||||
        if (!strcmp(sockopt_key, "sctp")) {
 | 
			
		||||
            ogs_yaml_iter_t sctp_iter;
 | 
			
		||||
            ogs_yaml_iter_recurse(&sockopt_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, "spp_hbinterval")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.spp_hbinterval = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "spp_sackdelay")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.spp_sackdelay = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "srto_initial")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.srto_initial = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "srto_min")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.srto_min = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "srto_max")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.srto_max = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "sinit_num_ostreams")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.sinit_num_ostreams = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "sinit_max_instreams")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.sinit_max_instreams = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "sinit_max_attempts")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.sinit_max_attempts = atoi(v);
 | 
			
		||||
                } else if (!strcmp(sctp_key, "sinit_max_init_timeo")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&sctp_iter);
 | 
			
		||||
                    if (v) option->sctp.sinit_max_init_timeo = atoi(v);
 | 
			
		||||
                } else {
 | 
			
		||||
                    ogs_error("unknown key `%s`", sctp_key);
 | 
			
		||||
                    return OGS_ERROR;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } else if (!strcmp(sockopt_key, "sctp_nodelay")) {
 | 
			
		||||
            option->sctp_nodelay = ogs_yaml_iter_bool(&sockopt_iter);
 | 
			
		||||
        } else if (!strcmp(sockopt_key, "tcp_nodelay")) {
 | 
			
		||||
            option->tcp_nodelay = ogs_yaml_iter_bool(&sockopt_iter);
 | 
			
		||||
 | 
			
		||||
        } else if (!strcmp(sockopt_key, "so_linger")) {
 | 
			
		||||
            ogs_yaml_iter_t so_linger_iter;
 | 
			
		||||
            ogs_yaml_iter_recurse(&sockopt_iter, &so_linger_iter);
 | 
			
		||||
 | 
			
		||||
            while (ogs_yaml_iter_next(&so_linger_iter)) {
 | 
			
		||||
                const char *so_linger_key = ogs_yaml_iter_key(&so_linger_iter);
 | 
			
		||||
                ogs_assert(so_linger_key);
 | 
			
		||||
                if (!strcmp(so_linger_key, "l_onoff")) {
 | 
			
		||||
                    option->so_linger.l_onoff =
 | 
			
		||||
                        ogs_yaml_iter_bool(&so_linger_iter);
 | 
			
		||||
                } else if (!strcmp(so_linger_key, "l_linger")) {
 | 
			
		||||
                    const char *v = ogs_yaml_iter_value(&so_linger_iter);
 | 
			
		||||
                    if (v) option->so_linger.l_linger = atoi(v);
 | 
			
		||||
                } else {
 | 
			
		||||
                    ogs_error("unknown key `%s`", so_linger_key);
 | 
			
		||||
                    return OGS_ERROR;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        } else if (!strcmp(sockopt_key, "so_bindtodevice")) {
 | 
			
		||||
            option->so_bindtodevice = ogs_yaml_iter_value(&sockopt_iter);
 | 
			
		||||
 | 
			
		||||
        } else {
 | 
			
		||||
            ogs_error("unknown key `%s`", sockopt_key);
 | 
			
		||||
            return OGS_ERROR;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return OGS_OK;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								lib/app/ogs-config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								lib/app/ogs-config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
 | 
			
		||||
 *
 | 
			
		||||
 * This file is part of Open5GS.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU Affero General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 3 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#if !defined(OGS_APP_INSIDE) && !defined(OGS_APP_COMPILATION)
 | 
			
		||||
#error "This header cannot be included directly."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef OGS_APP_CONFIG_H
 | 
			
		||||
#define OGS_APP_CONFIG_H
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int ogs_app_config_parse_sockopt(
 | 
			
		||||
        ogs_yaml_iter_t *parent, ogs_sockopt_t *option);
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* OGS_APP_CONFIG_H */
 | 
			
		||||
@@ -64,36 +64,27 @@ ogs_app_context_t *ogs_app()
 | 
			
		||||
 | 
			
		||||
static void recalculate_pool_size(void)
 | 
			
		||||
{
 | 
			
		||||
    self.pool.packet = self.max.ue * OGS_MAX_NUM_OF_PACKET_BUFFER;
 | 
			
		||||
 | 
			
		||||
#define MAX_NUM_OF_TUNNEL       3   /* Num of Tunnel per Bearer */
 | 
			
		||||
    self.pool.sess = self.max.ue * OGS_MAX_NUM_OF_SESS;
 | 
			
		||||
    self.pool.bearer = self.pool.sess * OGS_MAX_NUM_OF_BEARER;
 | 
			
		||||
    self.pool.tunnel = self.pool.bearer * MAX_NUM_OF_TUNNEL;
 | 
			
		||||
 | 
			
		||||
#define MAX_NUM_OF_TIMER        16
 | 
			
		||||
    self.pool.timer = self.max.ue * MAX_NUM_OF_TIMER;
 | 
			
		||||
    self.pool.message = self.max.ue;
 | 
			
		||||
    self.pool.event = self.max.ue;
 | 
			
		||||
#define 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;
 | 
			
		||||
 | 
			
		||||
    self.pool.packet = self.max.ue * OGS_MAX_NUM_OF_PACKET_BUFFER;
 | 
			
		||||
#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.nf = self.max.gnb;
 | 
			
		||||
 | 
			
		||||
#define MAX_NUM_OF_SOCKET       4   /* Num of socket per NF */
 | 
			
		||||
    self.pool.socket = self.pool.nf * MAX_NUM_OF_SOCKET;
 | 
			
		||||
 | 
			
		||||
#define MAX_NUM_OF_XACT         8
 | 
			
		||||
    self.pool.gtp_xact = self.max.ue * MAX_NUM_OF_XACT;
 | 
			
		||||
    self.pool.gtp_node = self.pool.nf;
 | 
			
		||||
 | 
			
		||||
    self.pool.pfcp_xact = self.max.ue * MAX_NUM_OF_XACT;
 | 
			
		||||
    self.pool.pfcp_node = self.pool.nf;
 | 
			
		||||
 | 
			
		||||
#define MAX_NUM_OF_NF_SERVICE   16  /* Num of NF Service per NF Instance */
 | 
			
		||||
#define MAX_NUM_OF_SBI_MESSAGE  4   /* Num of HTTP(s) Request/Response per NF */
 | 
			
		||||
#define MAX_NUM_OF_NF_SUBSCRIPTION  4 /* Num of Subscription per NF */
 | 
			
		||||
    self.pool.nf_service = self.pool.nf * MAX_NUM_OF_NF_SERVICE;
 | 
			
		||||
    self.pool.nf_subscription = self.pool.nf * MAX_NUM_OF_NF_SUBSCRIPTION;
 | 
			
		||||
 | 
			
		||||
#define MAX_CSMAP_POOL          128
 | 
			
		||||
    self.pool.csmap = MAX_CSMAP_POOL;   /* Num of TAI-LAI Mapping Table */
 | 
			
		||||
 | 
			
		||||
@@ -113,7 +104,7 @@ static void regenerate_all_timer_duration(void)
 | 
			
		||||
        ogs_max(ogs_time_from_sec(3),
 | 
			
		||||
            self.time.message.sbi.client_wait_duration + ogs_time_from_sec(1));
 | 
			
		||||
    self.time.message.sbi.nf_register_interval_in_exception =
 | 
			
		||||
                ogs_time_from_msec(300);
 | 
			
		||||
                ogs_time_from_sec(2);
 | 
			
		||||
 | 
			
		||||
#define PFCP_N1_RESPONSE_RETRY_COUNT  3
 | 
			
		||||
    self.time.message.pfcp.n1_response_rcount = PFCP_N1_RESPONSE_RETRY_COUNT;
 | 
			
		||||
@@ -226,9 +217,12 @@ static void app_context_prepare(void)
 | 
			
		||||
     */
 | 
			
		||||
    self.time.handover.duration = ogs_time_from_msec(300);
 | 
			
		||||
 | 
			
		||||
    /* Size of internal metrics pool (amount of ogs_metrics_spec_t) */
 | 
			
		||||
    self.metrics.max_specs = 512;
 | 
			
		||||
 | 
			
		||||
    regenerate_all_timer_duration();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
static int app_context_validation(void)
 | 
			
		||||
{
 | 
			
		||||
    if (self.parameter.no_ipv4 == 1 &&
 | 
			
		||||
@@ -311,6 +305,9 @@ int ogs_app_context_parse_config(void)
 | 
			
		||||
                } else if (!strcmp(parameter_key, "no_nrf")) {
 | 
			
		||||
                    self.parameter.no_nrf =
 | 
			
		||||
                        ogs_yaml_iter_bool(¶meter_iter);
 | 
			
		||||
                } else if (!strcmp(parameter_key, "no_scp")) {
 | 
			
		||||
                    self.parameter.no_scp =
 | 
			
		||||
                        ogs_yaml_iter_bool(¶meter_iter);
 | 
			
		||||
                } else if (!strcmp(parameter_key, "no_amf")) {
 | 
			
		||||
                    self.parameter.no_amf =
 | 
			
		||||
                        ogs_yaml_iter_bool(¶meter_iter);
 | 
			
		||||
 
 | 
			
		||||
@@ -24,8 +24,6 @@
 | 
			
		||||
#ifndef OGS_APP_CONTEXT_H
 | 
			
		||||
#define OGS_APP_CONTEXT_H
 | 
			
		||||
 | 
			
		||||
#include "ogs-app.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
@@ -66,6 +64,7 @@ typedef struct ogs_app_context_s {
 | 
			
		||||
        int no_nssf;
 | 
			
		||||
        int no_bsf;
 | 
			
		||||
        int no_udr;
 | 
			
		||||
        int no_scp;
 | 
			
		||||
        int no_nrf;
 | 
			
		||||
 | 
			
		||||
        /* Network */
 | 
			
		||||
@@ -105,31 +104,30 @@ typedef struct ogs_app_context_s {
 | 
			
		||||
    struct {
 | 
			
		||||
        uint64_t ue;
 | 
			
		||||
        uint64_t gnb;
 | 
			
		||||
        uint64_t gtp_peer;
 | 
			
		||||
    } max;
 | 
			
		||||
 | 
			
		||||
    struct {
 | 
			
		||||
        ogs_pkbuf_config_t defconfig;
 | 
			
		||||
        uint64_t packet;
 | 
			
		||||
 | 
			
		||||
        uint64_t nf;
 | 
			
		||||
        uint64_t packet;
 | 
			
		||||
 | 
			
		||||
        uint64_t sess;
 | 
			
		||||
        uint64_t bearer;
 | 
			
		||||
        uint64_t tunnel;
 | 
			
		||||
 | 
			
		||||
        uint64_t nf_service;
 | 
			
		||||
        uint64_t nf_subscription;
 | 
			
		||||
 | 
			
		||||
        uint64_t csmap;
 | 
			
		||||
 | 
			
		||||
        uint64_t timer;
 | 
			
		||||
        uint64_t message;
 | 
			
		||||
        uint64_t event;
 | 
			
		||||
        uint64_t timer;
 | 
			
		||||
 | 
			
		||||
        uint64_t socket;
 | 
			
		||||
        uint64_t gtp_xact;
 | 
			
		||||
        uint64_t gtp_node;
 | 
			
		||||
        uint64_t pfcp_xact;
 | 
			
		||||
        uint64_t pfcp_node;
 | 
			
		||||
        uint64_t subscription;
 | 
			
		||||
        uint64_t xact;
 | 
			
		||||
 | 
			
		||||
        uint64_t nf;
 | 
			
		||||
 | 
			
		||||
        uint64_t csmap;
 | 
			
		||||
 | 
			
		||||
        uint64_t impi;
 | 
			
		||||
        uint64_t impu;
 | 
			
		||||
@@ -177,6 +175,10 @@ typedef struct ogs_app_context_s {
 | 
			
		||||
        } handover;
 | 
			
		||||
 | 
			
		||||
    } time;
 | 
			
		||||
 | 
			
		||||
    struct metrics {
 | 
			
		||||
        uint64_t max_specs;
 | 
			
		||||
    } metrics;
 | 
			
		||||
} ogs_app_context_t;
 | 
			
		||||
 | 
			
		||||
int ogs_app_context_init(void);
 | 
			
		||||
 
 | 
			
		||||
@@ -32,9 +32,6 @@ int ogs_app_initialize(
 | 
			
		||||
        char *log_file;
 | 
			
		||||
        char *log_level;
 | 
			
		||||
        char *domain_mask;
 | 
			
		||||
 | 
			
		||||
        bool enable_debug;
 | 
			
		||||
        bool enable_trace;
 | 
			
		||||
    } optarg;
 | 
			
		||||
 | 
			
		||||
    ogs_core_initialize();
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@
 | 
			
		||||
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "ogs-yaml.h"
 | 
			
		||||
#include "ogs-app.h"
 | 
			
		||||
 | 
			
		||||
void ogs_yaml_iter_init(ogs_yaml_iter_t *iter, yaml_document_t *document)
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -26,8 +26,6 @@
 | 
			
		||||
 | 
			
		||||
#include <yaml.h>
 | 
			
		||||
 | 
			
		||||
#include "ogs-app.h"
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,11 @@ asn_TYPE_operation_t asn_OP_ANY = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    ANY_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,10 @@ extern asn_OCTET_STRING_specifics_t asn_SPC_ANY_specs;
 | 
			
		||||
xer_type_encoder_f ANY_encode_xer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f ANY_encode_jer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_UPER_SUPPORT)
 | 
			
		||||
per_type_decoder_f ANY_decode_uper;
 | 
			
		||||
per_type_encoder_f ANY_encode_uper;
 | 
			
		||||
 
 | 
			
		||||
@@ -132,7 +132,7 @@ ANY_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
 | 
			
		||||
        int ret;
 | 
			
		||||
 | 
			
		||||
        /* Get the PER length */
 | 
			
		||||
        raw_len = aper_get_length(pd, -1, 0, &repeat);
 | 
			
		||||
        raw_len = aper_get_length(pd, -1, -1, 0, &repeat);
 | 
			
		||||
        if(raw_len < 0) RETURN(RC_WMORE);
 | 
			
		||||
        if(raw_len == 0 && st->buf) break;
 | 
			
		||||
 | 
			
		||||
@@ -173,7 +173,7 @@ ANY_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
    size = st->size;
 | 
			
		||||
    do {
 | 
			
		||||
        int need_eom = 0;
 | 
			
		||||
        ssize_t may_save = aper_put_length(po, -1, size, &need_eom);
 | 
			
		||||
        ssize_t may_save = aper_put_length(po, -1, -1, size, &need_eom);
 | 
			
		||||
        if(may_save < 0) ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
        ret = per_put_many_bits(po, buf, may_save * 8);
 | 
			
		||||
@@ -182,7 +182,7 @@ ANY_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
        buf += may_save;
 | 
			
		||||
        size -= may_save;
 | 
			
		||||
        assert(!(may_save & 0x07) || !size);
 | 
			
		||||
        if(need_eom && aper_put_length(po, -1, 0, 0))
 | 
			
		||||
        if(need_eom && aper_put_length(po, -1, -1, 0, NULL))
 | 
			
		||||
            ASN__ENCODE_FAILED; /* End of Message length */
 | 
			
		||||
    } while(size);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								lib/asn1c/common/ANY_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								lib/asn1c/common/ANY_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <ANY.h>
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
ANY_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
 | 
			
		||||
               enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
 | 
			
		||||
               void *app_key) {
 | 
			
		||||
  ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
  /* Dump as binary */
 | 
			
		||||
  return OCTET_STRING_encode_jer(td, sptr, ilevel, flags, cb, app_key);
 | 
			
		||||
}
 | 
			
		||||
@@ -38,6 +38,11 @@ asn_TYPE_operation_t asn_OP_BIT_STRING = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    BIT_STRING_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    BIT_STRING_decode_oer,
 | 
			
		||||
    BIT_STRING_encode_oer,
 | 
			
		||||
 
 | 
			
		||||
@@ -44,6 +44,10 @@ asn_constr_check_f BIT_STRING_constraint;
 | 
			
		||||
xer_type_encoder_f BIT_STRING_encode_xer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f BIT_STRING_encode_jer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
oer_type_decoder_f BIT_STRING_decode_oer;
 | 
			
		||||
oer_type_encoder_f BIT_STRING_encode_oer;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										70
									
								
								lib/asn1c/common/BIT_STRING_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								lib/asn1c/common/BIT_STRING_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <BIT_STRING.h>
 | 
			
		||||
 | 
			
		||||
static const char *_bit_pattern[16] = {
 | 
			
		||||
    "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",
 | 
			
		||||
    "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
BIT_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
 | 
			
		||||
                      int ilevel, enum jer_encoder_flags_e flags,
 | 
			
		||||
                      asn_app_consume_bytes_f *cb, void *app_key) {
 | 
			
		||||
    asn_enc_rval_t er = {0, 0, 0};
 | 
			
		||||
    char scratch[128];
 | 
			
		||||
    char *p = scratch;
 | 
			
		||||
    char *scend = scratch + (sizeof(scratch) - 10);
 | 
			
		||||
    const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
 | 
			
		||||
    int xcan = 0;
 | 
			
		||||
    uint8_t *buf;
 | 
			
		||||
    uint8_t *end;
 | 
			
		||||
 | 
			
		||||
    if(!st || !st->buf)
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    er.encoded = 0;
 | 
			
		||||
 | 
			
		||||
    buf = st->buf;
 | 
			
		||||
    end = buf + st->size - 1;  /* Last byte is special */
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Binary dump
 | 
			
		||||
     */
 | 
			
		||||
    for(; buf < end; buf++) {
 | 
			
		||||
        int v = *buf;
 | 
			
		||||
        int nline = xcan?0:(((buf - st->buf) % 8) == 0);
 | 
			
		||||
        if(p >= scend || nline) {
 | 
			
		||||
            ASN__CALLBACK(scratch, p - scratch);
 | 
			
		||||
            p = scratch;
 | 
			
		||||
            if(nline) ASN__TEXT_INDENT(1, ilevel);
 | 
			
		||||
        }
 | 
			
		||||
        memcpy(p + 0, _bit_pattern[v >> 4], 4);
 | 
			
		||||
        memcpy(p + 4, _bit_pattern[v & 0x0f], 4);
 | 
			
		||||
        p += 8;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(!xcan && ((buf - st->buf) % 8) == 0)
 | 
			
		||||
        ASN__TEXT_INDENT(1, ilevel);
 | 
			
		||||
    ASN__CALLBACK(scratch, p - scratch);
 | 
			
		||||
    p = scratch;
 | 
			
		||||
 | 
			
		||||
    if(buf == end) {
 | 
			
		||||
        int v = *buf;
 | 
			
		||||
        int ubits = st->bits_unused;
 | 
			
		||||
        int i;
 | 
			
		||||
        for(i = 7; i >= ubits; i--)
 | 
			
		||||
            *p++ = (v & (1 << i)) ? 0x31 : 0x30;
 | 
			
		||||
        ASN__CALLBACK(scratch, p - scratch);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(!xcan) ASN__TEXT_INDENT(1, ilevel - 1);
 | 
			
		||||
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
cb_failed:
 | 
			
		||||
    ASN__ENCODE_FAILED;
 | 
			
		||||
}
 | 
			
		||||
@@ -34,6 +34,11 @@ asn_TYPE_operation_t asn_OP_GraphicString = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    OCTET_STRING_encode_jer,  /* Can't expect it to be ASCII/UTF8 */
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    OCTET_STRING_decode_oer,
 | 
			
		||||
    OCTET_STRING_encode_oer,
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,10 @@ extern asn_TYPE_operation_t asn_OP_GraphicString;
 | 
			
		||||
#define GraphicString_encode_xer OCTET_STRING_encode_xer
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
#define GraphicString_encode_jer OCTET_STRING_encode_jer
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_UPER_SUPPORT)
 | 
			
		||||
#define GraphicString_decode_uper OCTET_STRING_decode_uper
 | 
			
		||||
#define GraphicString_encode_uper OCTET_STRING_encode_uper
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,11 @@ asn_TYPE_operation_t asn_OP_INTEGER = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    INTEGER_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    INTEGER_decode_oer,  /* OER decoder */
 | 
			
		||||
    INTEGER_encode_oer,  /* Canonical OER encoder */
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,10 @@ xer_type_decoder_f INTEGER_decode_xer;
 | 
			
		||||
xer_type_encoder_f INTEGER_encode_xer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f INTEGER_encode_jer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
oer_type_decoder_f INTEGER_decode_oer;
 | 
			
		||||
oer_type_encoder_f INTEGER_encode_oer;
 | 
			
		||||
 
 | 
			
		||||
@@ -129,7 +129,7 @@ INTEGER_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
 | 
			
		||||
        int ret;
 | 
			
		||||
 | 
			
		||||
        /* Get the PER length */
 | 
			
		||||
        len = aper_get_length(pd, -1, -1, &repeat);
 | 
			
		||||
        len = aper_get_length(pd, -1, -1, -1, &repeat);
 | 
			
		||||
        if(len < 0) ASN__DECODE_STARVED;
 | 
			
		||||
 | 
			
		||||
        p = REALLOC(st->buf, st->size + len + 1);
 | 
			
		||||
@@ -291,13 +291,14 @@ INTEGER_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
 | 
			
		||||
    for(buf = st->buf, end = st->buf + st->size; buf < end;) {
 | 
			
		||||
        int need_eom = 0;
 | 
			
		||||
        ssize_t mayEncode = aper_put_length(po, -1, end - buf, &need_eom);
 | 
			
		||||
        ssize_t mayEncode = aper_put_length(po, -1, -1, end - buf, &need_eom);
 | 
			
		||||
        if(mayEncode < 0)
 | 
			
		||||
            ASN__ENCODE_FAILED;
 | 
			
		||||
        if(per_put_many_bits(po, buf, 8 * mayEncode))
 | 
			
		||||
            ASN__ENCODE_FAILED;
 | 
			
		||||
        buf += mayEncode;
 | 
			
		||||
        if(need_eom && aper_put_length(po, -1, 0, 0)) ASN__ENCODE_FAILED;
 | 
			
		||||
        if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0))
 | 
			
		||||
            ASN__ENCODE_FAILED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								lib/asn1c/common/INTEGER_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								lib/asn1c/common/INTEGER_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <INTEGER.h>
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
INTEGER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
 | 
			
		||||
                   int ilevel, enum jer_encoder_flags_e flags,
 | 
			
		||||
                   asn_app_consume_bytes_f *cb, void *app_key) {
 | 
			
		||||
    const INTEGER_t *st = (const INTEGER_t *)sptr;
 | 
			
		||||
    asn_enc_rval_t er = {0,0,0};
 | 
			
		||||
 | 
			
		||||
    (void)ilevel;
 | 
			
		||||
    (void)flags;
 | 
			
		||||
 | 
			
		||||
    if(!st || !st->buf)
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    er.encoded = INTEGER__dump(td, st, cb, app_key, 1);
 | 
			
		||||
    if(er.encoded < 0) ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
}
 | 
			
		||||
@@ -33,6 +33,11 @@ asn_TYPE_operation_t asn_OP_NULL = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    NULL_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    NULL_decode_oer,
 | 
			
		||||
    NULL_encode_oer,
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,10 @@ xer_type_decoder_f NULL_decode_xer;
 | 
			
		||||
xer_type_encoder_f NULL_encode_xer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f NULL_encode_jer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
oer_type_decoder_f NULL_decode_oer;
 | 
			
		||||
oer_type_encoder_f NULL_encode_oer;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								lib/asn1c/common/NULL_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								lib/asn1c/common/NULL_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <asn_codecs_prim.h>
 | 
			
		||||
#include <NULL.h>
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
NULL_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr, int ilevel,
 | 
			
		||||
                enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb,
 | 
			
		||||
                void *app_key) {
 | 
			
		||||
    asn_enc_rval_t er = {0,0,0};
 | 
			
		||||
 | 
			
		||||
    (void)td;
 | 
			
		||||
    (void)sptr;
 | 
			
		||||
    (void)ilevel;
 | 
			
		||||
    (void)flags;
 | 
			
		||||
    (void)cb;
 | 
			
		||||
    (void)app_key;
 | 
			
		||||
 | 
			
		||||
    /* XMLNullValue is empty */
 | 
			
		||||
    er.encoded = 0;
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
}
 | 
			
		||||
@@ -40,6 +40,11 @@ asn_TYPE_operation_t asn_OP_NativeEnumerated = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    NativeEnumerated_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    NativeEnumerated_decode_oer,
 | 
			
		||||
    NativeEnumerated_encode_oer,
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,10 @@ extern asn_TYPE_operation_t asn_OP_NativeEnumerated;
 | 
			
		||||
xer_type_encoder_f NativeEnumerated_encode_xer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f NativeEnumerated_encode_jer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
oer_type_decoder_f NativeEnumerated_decode_oer;
 | 
			
		||||
oer_type_encoder_f NativeEnumerated_encode_oer;
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,7 @@ NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
    asn_enc_rval_t er = {0,0,0};
 | 
			
		||||
    long native, value;
 | 
			
		||||
    const asn_per_constraint_t *ct;
 | 
			
		||||
    int inext = 0;
 | 
			
		||||
    int inext = 0, range_bits = 1;
 | 
			
		||||
    asn_INTEGER_enum_map_t key;
 | 
			
		||||
    asn_INTEGER_enum_map_t *kf;
 | 
			
		||||
 | 
			
		||||
@@ -126,12 +126,12 @@ NativeEnumerated_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
    if(ct->flags & APC_EXTENSIBLE) {
 | 
			
		||||
        if(per_put_few_bits(po, inext, 1))
 | 
			
		||||
            ASN__ENCODE_FAILED;
 | 
			
		||||
        if(inext) ct = 0;
 | 
			
		||||
        if(inext) range_bits = 0;
 | 
			
		||||
    } else if(inext) {
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(ct && ct->range_bits >= 0) {
 | 
			
		||||
    if(range_bits && ct && ct->range_bits >= 0) {
 | 
			
		||||
        if(per_put_few_bits(po, value, ct->range_bits))
 | 
			
		||||
            ASN__ENCODE_FAILED;
 | 
			
		||||
        ASN__ENCODED_OK(er);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								lib/asn1c/common/NativeEnumerated_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								lib/asn1c/common/NativeEnumerated_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <NativeEnumerated.h>
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
NativeEnumerated_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
 | 
			
		||||
                            int ilevel, enum jer_encoder_flags_e flags,
 | 
			
		||||
                            asn_app_consume_bytes_f *cb, void *app_key) {
 | 
			
		||||
    const asn_INTEGER_specifics_t *specs =
 | 
			
		||||
        (const asn_INTEGER_specifics_t *)td->specifics;
 | 
			
		||||
    asn_enc_rval_t er = {0,0,0};
 | 
			
		||||
    const long *native = (const long *)sptr;
 | 
			
		||||
    const asn_INTEGER_enum_map_t *el;
 | 
			
		||||
 | 
			
		||||
    (void)ilevel;
 | 
			
		||||
    (void)flags;
 | 
			
		||||
 | 
			
		||||
    if(!native) ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    el = INTEGER_map_value2enum(specs, *native);
 | 
			
		||||
    if(el) {
 | 
			
		||||
        er.encoded =
 | 
			
		||||
            asn__format_to_callback(cb, app_key, "\"%s\"", el->enum_name);
 | 
			
		||||
        if(er.encoded < 0) ASN__ENCODE_FAILED;
 | 
			
		||||
        ASN__ENCODED_OK(er);
 | 
			
		||||
    } else {
 | 
			
		||||
        ASN_DEBUG(
 | 
			
		||||
            "ASN.1 forbids dealing with "
 | 
			
		||||
            "unknown value of ENUMERATED type");
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -41,6 +41,11 @@ asn_TYPE_operation_t asn_OP_NativeInteger = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    NativeInteger_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    NativeInteger_decode_oer,  /* OER decoder */
 | 
			
		||||
    NativeInteger_encode_oer,  /* Canonical OER encoder */
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,10 @@ xer_type_decoder_f NativeInteger_decode_xer;
 | 
			
		||||
xer_type_encoder_f NativeInteger_encode_xer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f NativeInteger_encode_jer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
oer_type_decoder_f NativeInteger_decode_oer;
 | 
			
		||||
oer_type_encoder_f NativeInteger_encode_oer;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								lib/asn1c/common/NativeInteger_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								lib/asn1c/common/NativeInteger_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <NativeInteger.h>
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
NativeInteger_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
 | 
			
		||||
                         int ilevel, enum jer_encoder_flags_e flags,
 | 
			
		||||
                         asn_app_consume_bytes_f *cb, void *app_key) {
 | 
			
		||||
    const asn_INTEGER_specifics_t *specs =
 | 
			
		||||
        (const asn_INTEGER_specifics_t *)td->specifics;
 | 
			
		||||
    char scratch[32];  /* Enough for 64-bit int */
 | 
			
		||||
    asn_enc_rval_t er = {0,0,0};
 | 
			
		||||
    const long *native = (const long *)sptr;
 | 
			
		||||
 | 
			
		||||
    (void)ilevel;
 | 
			
		||||
    (void)flags;
 | 
			
		||||
 | 
			
		||||
    if(!native) ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    er.encoded = snprintf(scratch, sizeof(scratch),
 | 
			
		||||
                          (specs && specs->field_unsigned)
 | 
			
		||||
                              ? "%lu" : "%ld", *native);
 | 
			
		||||
    if(er.encoded <= 0 || (size_t)er.encoded >= sizeof(scratch)
 | 
			
		||||
        || cb(scratch, er.encoded, app_key) < 0)
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
}
 | 
			
		||||
@@ -38,6 +38,11 @@ asn_TYPE_operation_t asn_OP_OBJECT_IDENTIFIER = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    OBJECT_IDENTIFIER_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    OBJECT_IDENTIFIER_decode_oer,
 | 
			
		||||
    OBJECT_IDENTIFIER_encode_oer,
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,10 @@ xer_type_decoder_f OBJECT_IDENTIFIER_decode_xer;
 | 
			
		||||
xer_type_encoder_f OBJECT_IDENTIFIER_encode_xer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f OBJECT_IDENTIFIER_encode_jer;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
#define OBJECT_IDENTIFIER_decode_oer oer_decode_primitive
 | 
			
		||||
#define OBJECT_IDENTIFIER_encode_oer oer_encode_primitive
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								lib/asn1c/common/OBJECT_IDENTIFIER_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								lib/asn1c/common/OBJECT_IDENTIFIER_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <OBJECT_IDENTIFIER.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
OBJECT_IDENTIFIER_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
 | 
			
		||||
                             int ilevel, enum jer_encoder_flags_e flags,
 | 
			
		||||
                             asn_app_consume_bytes_f *cb, void *app_key) {
 | 
			
		||||
    const OBJECT_IDENTIFIER_t *st = (const OBJECT_IDENTIFIER_t *)sptr;
 | 
			
		||||
    asn_enc_rval_t er = {0,0,0};
 | 
			
		||||
 | 
			
		||||
    (void)ilevel;
 | 
			
		||||
    (void)flags;
 | 
			
		||||
 | 
			
		||||
    if(!st || !st->buf) {
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    er.encoded = OBJECT_IDENTIFIER__dump_body(st, cb, app_key);
 | 
			
		||||
    if(er.encoded < 0) ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
}
 | 
			
		||||
@@ -40,6 +40,11 @@ asn_TYPE_operation_t asn_OP_OCTET_STRING = {
 | 
			
		||||
    0,
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
    OCTET_STRING_encode_jer,
 | 
			
		||||
#else
 | 
			
		||||
    0,
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
    OCTET_STRING_decode_oer,
 | 
			
		||||
    OCTET_STRING_encode_oer,
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,11 @@ xer_type_encoder_f OCTET_STRING_encode_xer;
 | 
			
		||||
xer_type_encoder_f OCTET_STRING_encode_xer_utf8;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_JER_SUPPORT)
 | 
			
		||||
jer_type_encoder_f OCTET_STRING_encode_jer;
 | 
			
		||||
jer_type_encoder_f OCTET_STRING_encode_jer_utf8;
 | 
			
		||||
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
 | 
			
		||||
 | 
			
		||||
#if !defined(ASN_DISABLE_OER_SUPPORT)
 | 
			
		||||
oer_type_decoder_f OCTET_STRING_decode_oer;
 | 
			
		||||
oer_type_encoder_f OCTET_STRING_encode_oer;
 | 
			
		||||
 
 | 
			
		||||
@@ -173,9 +173,10 @@ OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx,
 | 
			
		||||
        /* Get the PER length */
 | 
			
		||||
        if (csiz->upper_bound - csiz->lower_bound == 0)
 | 
			
		||||
            /* Indefinite length case */
 | 
			
		||||
            raw_len = aper_get_length(pd, -1, csiz->effective_bits, &repeat);
 | 
			
		||||
            raw_len = aper_get_length(pd, -1, -1, csiz->effective_bits, &repeat);
 | 
			
		||||
        else
 | 
			
		||||
            raw_len = aper_get_length(pd, csiz->upper_bound - csiz->lower_bound + 1, csiz->effective_bits, &repeat);
 | 
			
		||||
            raw_len = aper_get_length(pd, csiz->lower_bound, csiz->upper_bound,
 | 
			
		||||
                                      csiz->effective_bits, &repeat);
 | 
			
		||||
        if(raw_len < 0) RETURN(RC_WMORE);
 | 
			
		||||
        raw_len += csiz->lower_bound;
 | 
			
		||||
 | 
			
		||||
@@ -342,10 +343,9 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
                  st->size, sizeinunits - csiz->lower_bound,
 | 
			
		||||
                  csiz->effective_bits);
 | 
			
		||||
        if (csiz->effective_bits > 0) {
 | 
			
		||||
                ret = aper_put_length(po,
 | 
			
		||||
                                      csiz->upper_bound - csiz->lower_bound + 1,
 | 
			
		||||
                                      sizeinunits - csiz->lower_bound, 0);
 | 
			
		||||
                if(ret) ASN__ENCODE_FAILED;
 | 
			
		||||
                ret = aper_put_length(po, csiz->lower_bound, csiz->upper_bound,
 | 
			
		||||
                                      sizeinunits - csiz->lower_bound, NULL);
 | 
			
		||||
                if(ret < 0) ASN__ENCODE_FAILED;
 | 
			
		||||
        }
 | 
			
		||||
        if (csiz->effective_bits > 0 || (st->size > 2)
 | 
			
		||||
            || (csiz->upper_bound > (2 * 8 / unit_bits))
 | 
			
		||||
@@ -372,7 +372,7 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
    ASN_DEBUG("Encoding %lu bytes", st->size);
 | 
			
		||||
 | 
			
		||||
    if(sizeinunits == 0) {
 | 
			
		||||
        if(aper_put_length(po, -1, 0, 0))
 | 
			
		||||
        if(aper_put_length(po, -1, -1, 0, NULL) < 0)
 | 
			
		||||
            ASN__ENCODE_FAILED;
 | 
			
		||||
        ASN__ENCODED_OK(er);
 | 
			
		||||
    }
 | 
			
		||||
@@ -380,7 +380,7 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
    buf = st->buf;
 | 
			
		||||
    while(sizeinunits) {
 | 
			
		||||
        int need_eom = 0;
 | 
			
		||||
        ssize_t maySave = aper_put_length(po, -1, sizeinunits, &need_eom);
 | 
			
		||||
        ssize_t maySave = aper_put_length(po, -1, -1, sizeinunits, &need_eom);
 | 
			
		||||
 | 
			
		||||
        if(maySave < 0) ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
@@ -404,7 +404,7 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td,
 | 
			
		||||
            buf += maySave >> 3;
 | 
			
		||||
        sizeinunits -= maySave;
 | 
			
		||||
        assert(!(maySave & 0x07) || !sizeinunits);
 | 
			
		||||
        if(need_eom && aper_put_length(po, -1, 0, 0))
 | 
			
		||||
        if(need_eom && (aper_put_length(po, -1, -1, 0, NULL) < 0))
 | 
			
		||||
            ASN__ENCODE_FAILED; /* End of Message length */
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										151
									
								
								lib/asn1c/common/OCTET_STRING_jer.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								lib/asn1c/common/OCTET_STRING_jer.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,151 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>.
 | 
			
		||||
 * All rights reserved.
 | 
			
		||||
 * Redistribution and modifications are permitted subject to BSD license.
 | 
			
		||||
 */
 | 
			
		||||
#include <asn_internal.h>
 | 
			
		||||
#include <OCTET_STRING.h>
 | 
			
		||||
#include <BIT_STRING.h>  /* for .bits_unused member */
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
OCTET_STRING_encode_jer(const asn_TYPE_descriptor_t *td, const void *sptr,
 | 
			
		||||
                        int ilevel, enum jer_encoder_flags_e flags,
 | 
			
		||||
                        asn_app_consume_bytes_f *cb, void *app_key) {
 | 
			
		||||
    const char * const h2c = "0123456789ABCDEF";
 | 
			
		||||
    const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
 | 
			
		||||
    asn_enc_rval_t er = { 0, 0, 0 };
 | 
			
		||||
    char scratch[16 * 3 + 4];
 | 
			
		||||
    char *p = scratch;
 | 
			
		||||
    uint8_t *buf;
 | 
			
		||||
    uint8_t *end;
 | 
			
		||||
    size_t i;
 | 
			
		||||
 | 
			
		||||
    if(!st || (!st->buf && st->size))
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    er.encoded = 0;
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Dump the contents of the buffer in hexadecimal.
 | 
			
		||||
     */
 | 
			
		||||
    buf = st->buf;
 | 
			
		||||
    end = buf + st->size;
 | 
			
		||||
    for(i = 0; buf < end; buf++, i++) {
 | 
			
		||||
      if(!(i % 16) && (i || st->size > 16)) {
 | 
			
		||||
        ASN__CALLBACK(scratch, p-scratch);
 | 
			
		||||
        p = scratch;
 | 
			
		||||
        ASN__TEXT_INDENT(1, ilevel);
 | 
			
		||||
      }
 | 
			
		||||
      *p++ = h2c[(*buf >> 4) & 0x0F];
 | 
			
		||||
      *p++ = h2c[*buf & 0x0F];
 | 
			
		||||
      *p++ = 0x20;
 | 
			
		||||
    }
 | 
			
		||||
    if(p - scratch) {
 | 
			
		||||
      p--;  /* Remove the tail space */
 | 
			
		||||
      ASN__CALLBACK3("\"", 1, scratch, p-scratch, "\"", 1);  /* Dump the rest */
 | 
			
		||||
      if(st->size > 16)
 | 
			
		||||
        ASN__TEXT_INDENT(1, ilevel-1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
cb_failed:
 | 
			
		||||
    ASN__ENCODE_FAILED;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct OCTET_STRING__jer_escape_table_s {
 | 
			
		||||
    const char *string;
 | 
			
		||||
    int size;
 | 
			
		||||
} OCTET_STRING__jer_escape_table[] = {
 | 
			
		||||
#define	OSXET(s)	{ s, sizeof(s) - 1 }
 | 
			
		||||
    OSXET("\074\156\165\154\057\076"),  /* <nul/> */
 | 
			
		||||
    OSXET("\074\163\157\150\057\076"),  /* <soh/> */
 | 
			
		||||
    OSXET("\074\163\164\170\057\076"),  /* <stx/> */
 | 
			
		||||
    OSXET("\074\145\164\170\057\076"),  /* <etx/> */
 | 
			
		||||
    OSXET("\074\145\157\164\057\076"),  /* <eot/> */
 | 
			
		||||
    OSXET("\074\145\156\161\057\076"),  /* <enq/> */
 | 
			
		||||
    OSXET("\074\141\143\153\057\076"),  /* <ack/> */
 | 
			
		||||
    OSXET("\074\142\145\154\057\076"),  /* <bel/> */
 | 
			
		||||
    OSXET("\074\142\163\057\076"),      /* <bs/> */
 | 
			
		||||
    OSXET("\011"),                      /* \t */
 | 
			
		||||
    OSXET("\012"),                      /* \n */
 | 
			
		||||
    OSXET("\074\166\164\057\076"),      /* <vt/> */
 | 
			
		||||
    OSXET("\074\146\146\057\076"),      /* <ff/> */
 | 
			
		||||
    OSXET("\015"),                      /* \r */
 | 
			
		||||
    OSXET("\074\163\157\057\076"),      /* <so/> */
 | 
			
		||||
    OSXET("\074\163\151\057\076"),      /* <si/> */
 | 
			
		||||
    OSXET("\074\144\154\145\057\076"),  /* <dle/> */
 | 
			
		||||
    OSXET("\074\144\143\061\057\076"),  /* <de1/> */
 | 
			
		||||
    OSXET("\074\144\143\062\057\076"),  /* <de2/> */
 | 
			
		||||
    OSXET("\074\144\143\063\057\076"),  /* <de3/> */
 | 
			
		||||
    OSXET("\074\144\143\064\057\076"),  /* <de4/> */
 | 
			
		||||
    OSXET("\074\156\141\153\057\076"),  /* <nak/> */
 | 
			
		||||
    OSXET("\074\163\171\156\057\076"),  /* <syn/> */
 | 
			
		||||
    OSXET("\074\145\164\142\057\076"),  /* <etb/> */
 | 
			
		||||
    OSXET("\074\143\141\156\057\076"),  /* <can/> */
 | 
			
		||||
    OSXET("\074\145\155\057\076"),      /* <em/> */
 | 
			
		||||
    OSXET("\074\163\165\142\057\076"),  /* <sub/> */
 | 
			
		||||
    OSXET("\074\145\163\143\057\076"),  /* <esc/> */
 | 
			
		||||
    OSXET("\074\151\163\064\057\076"),  /* <is4/> */
 | 
			
		||||
    OSXET("\074\151\163\063\057\076"),  /* <is3/> */
 | 
			
		||||
    OSXET("\074\151\163\062\057\076"),  /* <is2/> */
 | 
			
		||||
    OSXET("\074\151\163\061\057\076"),  /* <is1/> */
 | 
			
		||||
    { 0, 0 },                           /* " " */
 | 
			
		||||
    { 0, 0 },                           /* ! */
 | 
			
		||||
    { 0, 0 },                           /* \" */
 | 
			
		||||
    { 0, 0 },                           /* # */
 | 
			
		||||
    { 0, 0 },                           /* $ */
 | 
			
		||||
    { 0, 0 },                           /* % */
 | 
			
		||||
    OSXET("\046\141\155\160\073"),      /* & */
 | 
			
		||||
    { 0, 0 },                           /* ' */
 | 
			
		||||
    {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},  /* ()*+,-./ */
 | 
			
		||||
    {0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},  /* 01234567 */
 | 
			
		||||
    {0,0},{0,0},{0,0},{0,0},            /* 89:; */
 | 
			
		||||
    OSXET("\046\154\164\073"),          /* < */
 | 
			
		||||
    { 0, 0 },                           /* = */
 | 
			
		||||
    OSXET("\046\147\164\073"),          /* > */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
asn_enc_rval_t
 | 
			
		||||
OCTET_STRING_encode_jer_utf8(const asn_TYPE_descriptor_t *td, const void *sptr,
 | 
			
		||||
                             int ilevel, enum jer_encoder_flags_e flags,
 | 
			
		||||
                             asn_app_consume_bytes_f *cb, void *app_key) {
 | 
			
		||||
    const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
 | 
			
		||||
    asn_enc_rval_t er = { 0, 0, 0 };
 | 
			
		||||
    uint8_t *buf, *end;
 | 
			
		||||
    uint8_t *ss;  /* Sequence start */
 | 
			
		||||
    ssize_t encoded_len = 0;
 | 
			
		||||
 | 
			
		||||
    (void)ilevel;  /* Unused argument */
 | 
			
		||||
    (void)flags;  /* Unused argument */
 | 
			
		||||
 | 
			
		||||
    if(!st || (!st->buf && st->size))
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    buf = st->buf;
 | 
			
		||||
    end = buf + st->size;
 | 
			
		||||
    for(ss = buf; buf < end; buf++) {
 | 
			
		||||
        unsigned int ch = *buf;
 | 
			
		||||
        int s_len;	/* Special encoding sequence length */
 | 
			
		||||
 | 
			
		||||
        /*
 | 
			
		||||
         * Escape certain characters: X.680/11.15
 | 
			
		||||
         */
 | 
			
		||||
        if(ch < sizeof(OCTET_STRING__jer_escape_table)
 | 
			
		||||
            / sizeof(OCTET_STRING__jer_escape_table[0])
 | 
			
		||||
        && (s_len = OCTET_STRING__jer_escape_table[ch].size)) {
 | 
			
		||||
            if(((buf - ss) && cb(ss, buf - ss, app_key) < 0)
 | 
			
		||||
            || cb(OCTET_STRING__jer_escape_table[ch].string, s_len, app_key) < 0)
 | 
			
		||||
                ASN__ENCODE_FAILED;
 | 
			
		||||
            encoded_len += (buf - ss) + s_len;
 | 
			
		||||
            ss = buf + 1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    encoded_len += (buf - ss);
 | 
			
		||||
    if((buf - ss) && cb(ss, buf - ss, app_key) < 0)
 | 
			
		||||
        ASN__ENCODE_FAILED;
 | 
			
		||||
 | 
			
		||||
    er.encoded = encoded_len;
 | 
			
		||||
    ASN__ENCODED_OK(er);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user