Skip to content

[broadcom]: respect the current network namespace when creating netdev#3896

Merged
lguohan merged 1 commit intosonic-net:masterfrom
ishidawataru:fix-knet-netns
Dec 23, 2019
Merged

[broadcom]: respect the current network namespace when creating netdev#3896
lguohan merged 1 commit intosonic-net:masterfrom
ishidawataru:fix-knet-netns

Conversation

@ishidawataru
Copy link
Copy Markdown
Collaborator

@ishidawataru ishidawataru commented Dec 13, 2019

Broadcom-Switch/OpenNSL#26

Signed-off-by: Wataru Ishida ishida@nel-america.com

@lguohan
Copy link
Copy Markdown
Collaborator

lguohan commented Dec 13, 2019

retest vsimage please

@lguohan
Copy link
Copy Markdown
Collaborator

lguohan commented Dec 13, 2019

I do not see other netdev drivers have this patch. Do you know if this is a standard behavior in kernel module?

@ishidawataru
Copy link
Copy Markdown
Collaborator Author

It depends on the device.
TUN device which I think similar to KNET device sets the current netns when creating netdevice.

https://elixir.bootlin.com/linux/latest/source/drivers/net/tun.c#L2789

ref: list of dev_net_set usage

https://elixir.bootlin.com/linux/latest/ident/dev_net_set

This patch won't change the current SONiC behavior since all SONiC containers are running with --net=host.
However, I think it is better to run containers which need access to front panel ports (like syncd/swss/frr/lldp) in a separate network namespace so that we can avoid configuring the netdevs directly without using SONiC toolchains from the default network namespace (e.g. assign an IP address via ip command which is not recommended in SONiC ).

@lguohan
Copy link
Copy Markdown
Collaborator

lguohan commented Dec 13, 2019

you assume the syncd container will be in the same namespace as swss. it is not always the case. a more generic solution is the create the netdev in global namespace and have a user space daemon to move the netdev to the right namespace.

@ishidawataru
Copy link
Copy Markdown
Collaborator Author

ishidawataru commented Dec 13, 2019

Yes, I was assuming putting syncd and swss ( and other daemons that need front panel port access ) in the same netns.
What would be the motivation to put syncd and swss in different namespaces?

I think it's not consistent with other virtual netdev like TUN or veth if we create KNET netdev in a network namespace other than the default and it pops out in the default one.
I feel more natural that the KNET will get created in the netns of the user.

If we need to move it to another namespace, we can do that after creating it.

@lguohan
Copy link
Copy Markdown
Collaborator

lguohan commented Dec 14, 2019

we are working on a case a single syncd support multiple asic, in that case, all the netdevs created by syncd will likely not in the same namespace. but I think your have a point. this knet driver is more like a tun/tap device than other traditional netdev.

@lguohan
Copy link
Copy Markdown
Collaborator

lguohan commented Dec 16, 2019

@judyjoseph

@lguohan lguohan merged commit ed2d5f8 into sonic-net:master Dec 23, 2019
@ishidawataru ishidawataru deleted the fix-knet-netns branch December 23, 2019 19:45
ishidawataru added a commit to ishidawataru/sonic-buildimage that referenced this pull request Jun 10, 2020
mssonicbld added a commit that referenced this pull request Jul 23, 2025
…atically (#22686)

#### Why I did it
src/sonic-utilities
```
* e18640e - (HEAD -> master, origin/master, origin/HEAD) Switchport mode update for 'show interfaces status' (#3788) (3 hours ago) [Shivashankar C R]
* 809646a - Revert "Addition of prober_type in config and show commands for muxcable (#3884)" (#3979) (17 hours ago) [Xin Wang]
* 3db35d5 - `vnet_route_check.py` should not report VNET routes in APP DB but not in STATE DB and ASIC DB as mismatches (#3990) (26 hours ago) [mramezani95]
* 8647356 - [show][config][plugin] add processing of ModuleNotFoundError with log_warning (#3832) (32 hours ago) [Maksym Kovalchuk]
* 20976de - fix show bgp cli on multiple asic device (#3981) (5 days ago) [Liping Xu]
* 46c82ab - [db_migrator] Fix parse_xml fails when minigraph has SonicQosProfile (#3972) (6 days ago) [Xin Wang]
* 1c3f789 - Fix route_check.py to ignore local p2p IP prefixes (#3882) (7 days ago) [prabhataravind]
* 898a037 - Make 'show interface errors' lookup the correct oper_error_status count published by OA (#3956) (8 days ago) [Bobby McGonigle]
* eda6ada - [sonic-package-manager] Save tag that was used to install the application (#3917) (8 days ago) [DavidZagury]
* c409594 - [SPM] Add support for configuring systemd service Type in package manifests (#3946) (8 days ago) [DavidZagury]
* 09b4292 - [trim]: Add Packet Trimming Asym DSCP CLI (#3920) (9 days ago) [Nazarii Hnydyn]
* f751730 - Lodoga-Prime: lodogaprime platform support (#3954) (13 days ago) [NobutomoNakano]
* 0424ae0 - Add GCU Support for SKU Mellanox-SN4280-C48/O8C40/O8V40 (#3964) (13 days ago) [Sai Rama Mohan Reddy S]
* 57b9846 - fix issue #22476 remove quagga in show bgp cmd (#3947) (2 weeks ago) [Liping Xu]
* 5d11fc5 - Fix comparison error when replace (#3941) (3 weeks ago) [jingwenxie]
* f6d6d9a - Fix for 22138: Chassisd does not wait for the execution to complete for previous admin state change requests - Replaces PR: #3845 (#3937) (4 weeks ago) [rameshraghupathy]
* be72304 - [YANG] remove uses clause handling, now part of sonic-yang-mgmt (#3814) (4 weeks ago) [Brad House]
* 19a6b3c - Switch to using chrony instead of ntpd : gcu - services_validator.py (#3929) (4 weeks ago) [Anukul Verma]
* 5db9c27 - Fixed cli command for ECN config on voq switch (#3928) (4 weeks ago) [saksarav-nokia]
* 020f9d0 - Improved GCU's field validation logic for the WRED_PROFILE table (#3910) (4 weeks ago) [mramezani95]
* f15e2d0 - feat: support specific BP port info for show int (#3926) (4 weeks ago) [Chenyang Wang]
* 5a59f19 - [multi-asic] Fix the 'config reload' flow in case when multiple golden_config.json files provided (#3895) (5 weeks ago) [Vadym Hlushko]
* 82ec8f4 - fix show cmd for bgp (#3922) (5 weeks ago) [Liping Xu]
* e0f9da4 - Skip checking offload flags for static routes/sids in route check and add check_sids (#3919) (5 weeks ago) [Changrong Wu]
* 5ea861d - [copp]: Added CoPP show configuration commands (#3863) (6 weeks ago) [Ravi Minnikanti(Marvell)]
* 9fd8c3c - [sfputil] Use host lane mask as part of rx-output enable/disable (#3911) (6 weeks ago) [mihirpat1]
* 3e157a2 - Support reboot cause: Kernel Panic - Out of memory (#3918) (6 weeks ago) [byu343]
* 49d36ff - [gcu]: Add marvell-teralynx platform to gcu field validator (#3881) (6 weeks ago) [Ravi Minnikanti(Marvell)]
* 8415aee - [Mellanox] Collect sai.xml to sysdump (#3903) (6 weeks ago) [Sai Rama Mohan Reddy S]
* 6e26c8d - [intfstat] Align output format between cached/non-cached scenarios (#3902) (6 weeks ago) [Yair Raviv]
* 57d825e - Add version_202411_02 function (#3864) (6 weeks ago) [Ben Levi]
* d5051cd - [Smartswitch][reboot] Addition of pre shutdown and post startup function calls (#3900) (7 weeks ago) [Gagan Punathil Ellath]
* b3509b9 - Add CLI show commands to view bgp network, neighbors and summary on per-vrf basis (#3866) (7 weeks ago) [Navdha Jindal]
* dfa51d3 - Upgrade portstat to support nonzero option and sort heterogeneous interfaces names (#3894) (7 weeks ago) [Changrong Wu]
* ba255b6 - Issue #22407: ConfigReload fails when RADIUS statistics is enabled (#3860) (8 weeks ago) [Anders Linn]
* 7116edf - Fix warm-reboot script so it can be run via reboot DBus service (#3872) (8 weeks ago) [jkmar]
* 2f1c4e0 - config: Modify AAA config commands to use pass_db decorator (#3755) (8 weeks ago) [Anders Linn]
* d6d866f - show command for icmp echo offload sessions (#3889) (8 weeks ago) [manamand2020]
* 1b3498c - add TH5-512 hwsku into gcu support list (#3896) (8 weeks ago) [Dashuai Zhang]
* b106a82 - Addition of prober_type in config and show commands for muxcable (#3884) (9 weeks ago) [harjotsinghpawra]
* 733bdde - [smartswitch] Fix incorrect reboot status check and improve debug logging in reboot scripts (#3888) (9 weeks ago) [Vasundhara Volam]
* 60110fa - feat: support namespace arg for show mac (#3873) (9 weeks ago) [Chenyang Wang]
* aeba823 - feat: support namespace arg for show bfd (#3885) (9 weeks ago) [Chenyang Wang]
```
#### How I did it
#### How to verify it
#### Description for the changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants