-------- Forwarded Message -------- From: Thomas Haller <[email protected]> To: [email protected], [email protected] Cc: [email protected], [email protected] Subject: Re: Clarification on Network Manager - Implementing new configuration for T1S network device Date: Tue, 21 Apr 2020 09:53:41 +0200
On Mon, 2020-04-20 at 12:57 +0000, [email protected] wrote: > Hi Thomas, > > On Mon, 2020-04-20 at 13:26 +0200, Thomas Haller wrote: > > On Mon, 2020-04-20 at 10:51 +0000, > > [email protected] > > wrote: > > > > Hi, > > > > > > > Yes this is not a shell script of course and this is a typical > > > function name and it has to be implemented in the Network Manager > > > using ioctl. I gave this function format to describe the > > > configuration/functionality. > > > > > > ioctl implementation for accessing/configuring phy device already > > > exists and also we are using successfully. If we want to go with > > > Network Manager then we need to implement/include those ioctl > > > calls > > > inside the Network Manager. > > > > > > As you mentioned below ioctl can be used to access mii. Herewith > > > I > > > have attached the user space application which we use for your > > > reference. With reference to the attached file the example would > > > be, > > > > > > access_reg(CMD_WR, 0x50001, ¶m1); > > > access_reg(CMD_WR, 0x50002, ¶m2); > > > > > > Summarizing the above points, could you please reply to the below > > > queries, > > > > > > To configure particular properties param1 and param2, we use > > > specific > > > for our phy register addresses like 0x50001 and 0x50002. How the > > > access to such registers can be implemented? Hardcoded in the > > > Network > > > Manager, implemented in a plugin, etc?" > > > > > > So basically we want to know, Is it allowed to implement those > > > ioctl > > > calls inside Network Manager to access/configure phy device ? if > > > not > > > then do you have any other proposal to go for ? > > > > Yes... I wonder, why do you think it would not be? > > To access the MDIO register we use MDIO Clause 45 well defined in a > IEEE 802.3 specification. The Linux kernel supports ioctl's that > provide access to MII, that is used to build up the MDIO > access. That > all is not a problem. > > The point of the question is that we use Vendor/Product specific MDIO > register address (0x50001) for the T1S property mentioned here as > "param1" (just an abstract name). > > The mapping of standard T1S properties to MDIO Register Addresses is > not defined by T1S specifications. Every vendor uses their own > register map for the standard T1S property "param1". > > Thus, the code accessing the MDIO Register 0x50001 will configure > standard T1S property "param1" for only T1S PHY of one particular > vendor. > > Does Network Manager have any problem with this design? Hi, Probably it is a problem. NetworkManager probably shouldn't allow a user to write arbitrary ethernet registers. Should it? Shouldn't this be setup by a udev rule? But let's please not continue this thread here, but return the the mailing list [email protected] . For one, I am not familiar with this, second, the discussion should not be only in my private mail box. Thank you! Hi All, @Thomas Haller: Thank you for your clarifications. Initially, I started this mail thread with [email protected]. After that I got a reply from Thomas Haller so I just continued discussing with him. As per Thomas Haller's suggestion, it should not be a private mail. So I am sharing it with you all. Please have a look in the discussions we made here and give your opinions/suggestions on this. Let me summarize our requirement once again here shortly. We have a plan to use the Network Manager as the network configuration tool for configuring T1S network device. We have some parameters those needs to be configured whenever the network device is getting up. Those parameters should be visible in the user interface applications like nmcli, nmtui and desktop gui applications for configuring and those needs to be configured in the phy device in the lower layer. A typical function would be like below, access_reg(CMD_WR, 0x50001, ¶m1); access_reg(CMD_WR, 0x50002, ¶m2); To configure particular properties param1 and param2, we use specific for our phy register addresses like 0x50001 and 0x50002. How the access to such registers can be implemented ? Hardcoded in the Network Manager, implemented in a plugin, etc ? To access the MDIO registers we use MDIO clause 22/45 well defined in a IEEE 802.3 specification. The linux kernel supports ioctl's that provide access to MII, that is used to build up the MDIO access. The point of the question is that we use Vendor/Product specific MDIO register address (0x50001) for the T1S property mentioned here as "param1" (just an abstract name). The mapping of standard T1S properties to MDIO register addresses is not defined by T1S specifications. Every vendor uses their own register map for the standard T1S property "param1". Thus, the code accessing the MDIO Register 0x50001 will configure the standard T1S property "param1" for only T1S PHY of one particular vendor. Does Network Manager have any problem with this design ? Thanks & Regards, Parthiban V best, Thomas > Regards > Andre. > > > The only restriciton is that this functionality must be available > > on > > an > > upstream linux kernel. I should be free software and available so > > that > > a user can use this on a reasonably common Linux distribution. > > > > > > > If you say ok then I can start the implementation in Network > > > Manager > > > source using ioctl. > > > > Other ioctl calls are implemented here: > > > > https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/2ad8e6acae7b2c76d40e00a60a85aef0ea625de5/src/platform/nm-platform-utils.c > > > > > > > > Btw, let's continue further discussion on the upstream mailing > > list, > > so > > that others might also participate. > > > > > > best!! > > Thomas > > > > > > > -----Original Message----- > > > From: Thomas Haller <[email protected]> > > > Sent: Friday, April 17, 2020 4:28 PM > > > To: Parthiban Veerasooran - I17164 < > > > [email protected]> > > > Cc: Michael Fabry - M21080 <[email protected]>; Andre > > > Edich > > > - M21181 <[email protected]> > > > Subject: Re: Clarification on Network Manager - Implementing new > > > configuration for T1S network device > > > > > > On Wed, 2020-04-15 at 11:02 +0000, > > > [email protected] > > > wrote: > > > > Hi, > > > > > > > > Thank you for the reply. > > > > > > > > A typical script would be like below, > > > > > > > > write_class45_mdio_register(0x50001, param_one); > > > > write_class45_mdio_register(0x50002, param_two); > > > > > > Hm... well, this isn't a "shell script". Is > > > write_class45_mdio_register() supposed to be C? > > > > > > What does it do? Where is it implemented? Is it some ioctl call? > > > > > > > > > > param_one and param_two are needed to be configured from user > > > > interface applications nmcli, nmtui and desktop GUI > > > > applications > > > > of > > > > Network Manager. 0x50001 and 0x50002 are phy register addresses > > > > for > > > > those params. Whenever the network device is getting up the > > > > Network > > > > Manager should do the above settings in the phy device. So > > > > basically > > > > we would like to know to know the implementation mechanism > > > > between > > > > user space application and kernel space for setting up the phy > > > > device. > > > > It would be nice if you could provide an example implementation > > > > for > > > > doing the above settings. > > > > > > NetworkManager can use any "implementation mechanism" -- if > > > implemented. In particular, it already: > > > > > > - talk netlink (rtnl, genl for nl80211, nl802154, WireGuard), > > > - ioctl (ethtool, mii, wext), > > > - sysctl, > > > - talk to a unix socket (ovsdb), > > > - make D-Bus call, > > > - spawn processes (dcbtool), > > > - or use a library (libmm, libteamdctl). > > > > > > > > > > > > > Thanks & Regards, > > > > Parthiban V > > > > > > > > -----Original Message----- > > > > From: Thomas Haller <[email protected]> > > > > Sent: Friday, April 10, 2020 2:52 PM > > > > To: Parthiban Veerasooran - I17164 < > > > > [email protected]>; > > > > [email protected] > > > > Cc: Michael Fabry - M21080 <[email protected]> > > > > Subject: Re: Clarification on Network Manager - Implementing > > > > new > > > > configuration for T1S network device > > > > > > > > On Tue, 2020-04-07 at 09:37 +0000, Parthiban.Veerasooran--- > > > > via > > > > networkmanager-list wrote: > > > > > Hi Team, > > > > > > > > > > Good Day...! This is Parthiban from Microchip Technology. > > > > > > > > > > This is regarding T1S network device configuration > > > > > implementation > > > > > in > > > > > Network Manager. > > > > > > > > > > We have a plan to use the Network Manager as the network > > > > > configuration tool for T1S network device. We have some > > > > > parameters > > > > > those needs to be configured in the phy device whenever the > > > > > network > > > > > device is up. > > > > > Those > > > > > parameters should be visible in the user interface > > > > > applications > > > > > like > > > > > nmcli, nmtui and desktop GUI to configure them and those > > > > > needs > > > > > to > > > > > be > > > > > configured in the phy device in the lower level. > > > > > > > > > > So could you please reply to the below queries, > > > > > > > > > > 1. Is the Network Manager allows this type > > > > > of > > > > > configuration ? > > > > > > > > > > 2. If yes to the above question then could > > > > > you > > > > > please suggest how to do it ? since this configuration is > > > > > required > > > > > to access phy layer to configure phy device. > > > > > > > > > > 3. Is Network Manager has access to the phy > > > > > layer > > > > > ? > > > > > if yes then how to implement it ? > > > > > > > > > > Please let me know it you need more information from my side. > > > > > If > > > > > it > > > > > is required I can even send you a pictorial representation of > > > > > the > > > > > requirement. > > > > > > > > > > > > > Hi, > > > > > > > > what parameters need to be configured? > > > > > > > > can you show a shell script that sets up the desired > > > > configuration? > > > > > > > > > > > > in principle, NetworkManager configures the interface using > > > > kernel > > > > API > > > > like netlink, sysctl, ioctl (ethtool), etc. So, yes, > > > > NetworkManager > > > > should be able to set all kinds of parameters, if implemented. > > > > > > > > > > > > best, > > > > Thomas _______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
