- 05 Aug, 2024 3 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Jaroslava Fiedlerova authored
-
- 02 Aug, 2024 31 commits
-
-
Jaroslava Fiedlerova authored
-
Robert Schmidt authored
Remove openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c, and move TUN interface creation functionality to tun_if.c. Remove SIMU_ETH target.
-
Robert Schmidt authored
Move openair3/RRC/NAS/nas_config.c to common/utils/tun_if.c, and remove the former from all targets.
-
Robert Schmidt authored
- Remove globals, declare where they are used - Cleanup pdcp_fifo.c - Remove unnecessary headers from netlink_init.c - Reformat netlink_init.c
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Handle IPv6 (and IPv4v6) PDU sessions by correctly instructing nas_config() to set up the interface with provided IP addresses. Note that as of now, IPv6 PDU sessions have not been fully tested. Remove a useless assert at the gNB; to my understanding the gNB does not care about the IP session type (at least for IP), as it just transparently tunnels the IP packets from/to GTP. I added a comment in the code where to change to request a PDU session different from IPv4. Currently it is hardcoded to IPv4, and it seems that a default OAI 5GC config would reject a PDU session type different from IPv4.
-
Robert Schmidt authored
- Read interface flags before setting status to not inadvertently overwrite existing flags - Set interface flag point-to-point, remove multicast (I think a UE is not supposed to send anywhere else than to the UPF, so it seems to not make sense to declare the interface as multicast)
-
Robert Schmidt authored
Implement handling of IPv4 and IPv6 (on the same interface) in nas_config().
-
Robert Schmidt authored
These rules & route are necessary to properly send packets on oaitun_ue1 interface: 1. This forces the packets coming from a subnet different than the UE's subnet to go back through oaitun_ue1 rather than via what the default route defined on the system (e.g., important if ping from the internet arrives). 2. On machines setting net.ipv4.conf.oaitun_ue1.rp_filter=1 (e.g. RHEL), this prevents that source filtering for packets coming back is applied and those packets be dropped. By default, many hosts have rp_filter=2, so no strict source filtering is applied, and it would work; on others, this rule prevents source filter dropping.
-
Robert Schmidt authored
Prior to this commit, there was a global variable baseNetAddress that could be set independently through a setter and also through the configuration module. This baseNetAddress (16 bits IPv4) would then be complemented with two more bytes in nas_config(). However, this is counter-productive, as not only we have a global variable that is avoidable (we can give the entire address to nas_config() directly), but it also would not work with IPv6. Hence, modify to give nas_config() the entire address. A follow-up commit will add IPv6 support.
-
Robert Schmidt authored
- refactor functions to make them shorter - provide doxygen strings - open socket for operation once instead of in each function - use named constant (from enum) to differentiate interface UP/DOWN - Linux kernel defines name length as IFNAM_SIZE, so use that for interface name length. Also, it seems no null-byte is needed.
-
Robert Schmidt authored
I initially planned to entirely remove the netmask configuration. However, in specific configurations, e.g. in 4G Rfsim with feMBMS, routing does not seem to work anymore using these commands: iperf -B 10.0.2.2 -s -u -i1 iperf -c 10.0.2.2 -B 10.0.2.1 -u -t 30 -b 2.00M -i1 Therefore, we simplify by hardcoding the netmask to /24, which allows the above to work.
-
Robert Schmidt authored
Remove the broadcast address from the UE, as logically, a UE has nothing to broadcast: it can only directly talk to the core. Additionally, at least as of now, the UE interface is shown as "POINTOPOINT", so broadcasting is not possible.
-
Robert Schmidt authored
Remove unused header includes, as well as the test program (which does not do much, and certainly does not test in the way we use the interfaces).
-
Robert Schmidt authored
Remove nas_config_mbms() since nas_config_mbms() and nas_config() do the same
-
Robert Schmidt authored
The routing table is temporarily removed in this commit and introduced in one of the next commits.
-
Robert Schmidt authored
Does the same change in the _mbms() functions as in the previous commit. Also, simplify logic in netlink_init_mbms_tun(): directly use the id in the interface. This requires a slight ID change in the users, which is also done in this commit.
-
Robert Schmidt authored
Instead of implicitly using a hardcoded prefix "oaitun_" interface name, move that out to the callers of these functions to make it clear. The ID still remains outside. The "sister functions" nas_config_mbms()/netlink_init_tun_mbms() will do the same change in the next commit.
-
Robert Schmidt authored
Comparing both functions, it seems that nas_config_mbms_s1() sets the same parameters, assuming that in nas_config_mbms(), we set - (UE_NAS_USE_TUN || ENB_NAS_USE_TUN) yielding true -> should yield the same interface name - netmask is hardcoded to 255.255.255.0 - baseNetAddress is hardcoded 10.0 So replace the call with nas_config_mbms() by setting parameters accordingly.
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
Bartosz Podrygajlo authored
-
Bartosz Podrygajlo authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
- 01 Aug, 2024 6 commits
-
-
Robert Schmidt authored
- Remove unused NAS_config(): It does most of what the highly similar nas_config() does. - Remove unused set_gateway() - Remove unused blocking_NAS_config() - Remove unused functions getNetMask() - Remove unused broadcast functionality: functions setBroadcastAddress() and getBroadcastAddress(), as well as global variable broadcastAddr are not used in consumers. Remove it. - Make functions static
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
I don't know about any user of the kernel modules. It is effectively legacy code we carry around, for no good reason. Remove it for the moment. If we ever need it, we can revert.
-
Robert Schmidt authored
-
Robert Schmidt authored
-