Skip to content

feat: implement inbound roaming reject - #303

Merged
Takuto88 merged 7 commits into
nickvsnetworking:masterfrom
Takuto88:feat/roaming-reject
Jul 29, 2026
Merged

Takuto88 merged 7 commits into
nickvsnetworking:masterfrom
Takuto88:feat/roaming-reject

Conversation

@Takuto88

Copy link
Copy Markdown
Collaborator

Implements inbound roaming reject cause configuration. This is useful for private networks and public SIMs from other carriers try to join.

In that case, you want to respond with ROAMING_NOT_ALLOWED as reject cause in 2G/3G/4G. Otherwise, the UE may believe that its subscription is terminated.

Defaults to ROAMING_NOT_ALLOWED for a safe OOBE. Production carriers are advised to change this to IMSI_UNKNOWN.

@Takuto88
Takuto88 requested a review from osmith42 January 21, 2026 16:46

@osmith42 osmith42 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM besides the typo and some ideas, thanks for making this!

Comment thread config.yaml Outdated
Comment thread config.yaml
Comment thread config.yaml
Takuto88 and others added 3 commits July 29, 2026 01:04
Implements inbound roaming reject cause configuration. This is useful
for private networks and public SIMs from other carriers try to join.

In that case, you want to respond with ROAMING_NOT_ALLOWED as reject
cause in 2G/3G/4G. Otherwise, the UE may believe that its subscription
is terminated.

Defaults to ROAMING_NOT_ALLOWED for a safe OOBE. Production carriers are
advised to change this to IMSI_UNKNOWN.
Co-authored-by: Oliver Smith <osmith@sysmocom.de>
"Whether or not to a subscriber" -> "Whether or not to allow a subscriber"

Co-Authored-By: Qwen 3.6 27B MTP (speculative) <noreply@pi.dev>
Generated-By: pi 0.82.1
@Takuto88
Takuto88 force-pushed the feat/roaming-reject branch from dc2cc56 to 80e89bd Compare July 28, 2026 23:28
@Takuto88

Copy link
Copy Markdown
Collaborator Author

I've addressed your feedback @osmith42. I've also rebased the branch on the current master as on my Fedora 44 machine I had issues getting this to run due to the branch being incompatible to 3.14, so I needed the changes from #321 to test.

In addition, I've also changed the behavior in be9f0cc: If the value is not configured, resort to the old default. That seems the safest option, also a small typo was fixed in ecbe0a5 that got unnoticed during the review.

AI disclosure: I am currently experimenting with open weight LLMs on my own GPU (next to me under a desk, not hosted) and made that transparent with Co-Authored-By and Generated-By git trailers. That does mean that I have instructed the AI what I want and talked to it until I got the output that I would have otherwise manually typed. So rest assured that this is not "vibe coded" in the sense that I let it YOLO this in one shot or something like that. I've looked at each commit + code line myself, made sure it is up to my standards so I can vouch for it. I deeply feel that I am still responsible for what the code monkey does.

Oh and: The comments on the PR are written by me not an LLM. You are still talking to a human 😉

@osmith42 osmith42 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I'd slightly tweak the changelog entry as mentioned, otherwise it is good to go in my opinion. If you agree, feel free to make the change and then merge it directly.

Comment thread config.yaml
Comment thread config.yaml
Takuto88 and others added 4 commits July 29, 2026 12:16
Add validate_config() to reject invalid reject_unknown_imsis_with
values, preventing silent misconfiguration from typos.

Co-Authored-By: Qwen 3.6 27B MTP (speculative) <noreply@pi.dev>
Generated-By: pi 0.82.1
Use .get() with default instead of direct dict access so the
config option is optional.

Co-Authored-By: Qwen 3.6 27B MTP (speculative) <noreply@pi.dev>
Generated-By: pi 0.82.1
Co-Authored-By: Qwen 3.6 35B A3B Q5 <noreply@pi.dev>
Generated-By: pi 0.82.1
@Takuto88
Takuto88 force-pushed the feat/roaming-reject branch from 80e89bd to adc35e0 Compare July 29, 2026 10:16
@Takuto88
Takuto88 merged commit 0972802 into nickvsnetworking:master Jul 29, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants