Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport ethtool to support QSFP-DD #5725

Merged
merged 2 commits into from
Mar 16, 2021
Merged

Backport ethtool to support QSFP-DD #5725

merged 2 commits into from
Mar 16, 2021

Conversation

shlomibitton
Copy link
Contributor

@shlomibitton shlomibitton commented Oct 27, 2020

Signed-off-by: Shlomi Bitton shlomibi@nvidia.com

- Why I did it
Backport ethtool debian package version 5.9 to support QSFP-DD cable parsing.

- How I did it

  • Added a Makefile ,a rule and a cache file to build debian package of ethtool version 5.9.
  • Install the package on base image and pmon docker.

- How to verify it
Build the image with this commit.
try to parse a QSFP-DD cable with the tool - "ethtool -m sfp#"

- Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012

- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

src/ethtool/Makefile Outdated Show resolved Hide resolved
rules/ethtool.mk Outdated Show resolved Hide resolved
rules/ethtool.mk Outdated Show resolved Hide resolved
rules/ethtool.mk Outdated Show resolved Hide resolved
src/ethtool/Makefile Outdated Show resolved Hide resolved
rules/ethtool.dep Outdated Show resolved Hide resolved
@keboliu
Copy link
Collaborator

keboliu commented Nov 4, 2020

retest this please

@keboliu
Copy link
Collaborator

keboliu commented Nov 4, 2020

retest vsimage please

@jleveque
Copy link
Contributor

Retest baseimage please

@shlomibitton
Copy link
Contributor Author

retest mellanox please

@shlomibitton
Copy link
Contributor Author

@jleveque could you please review?

build_debian.sh Outdated Show resolved Hide resolved
build_debian.sh Outdated
@@ -318,6 +317,14 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
haveged \
jq


# Build ethtool package for generic platform
Copy link
Contributor

Choose a reason for hiding this comment

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

Why build only for generic platform?

Copy link
Contributor Author

@shlomibitton shlomibitton Nov 19, 2020

Choose a reason for hiding this comment

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

@jleveque on the Makefile it is configured to add this binary to SONIC_MAKE_FILES, for all other platforms it is ok and the binary is built.
For generic platform it is not, so in case we build it as generic we need to force it to make the binary.

Copy link
Contributor

Choose a reason for hiding this comment

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

@lguohan: Does this seem like the proper approach here? Is there a cleaner method to get this installed in the generic image?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

A better solution was suggested by @nazariig (thanks!)
I applied it, can you please review it now?
@jleveque @lguohan

@liat-grozovik
Copy link
Collaborator

@lguohan can you please review so we can merge? this is needed for 202012 so better to have it done soon

build_debian.sh Outdated Show resolved Hide resolved
@shlomibitton
Copy link
Contributor Author

retest vsimage please

nazariig
nazariig previously approved these changes Dec 2, 2020
@liat-grozovik
Copy link
Collaborator

@jleveque and @lguohan kindly reminder. I believe all comments were addressed. Can you please review?

jleveque
jleveque previously approved these changes Jan 4, 2021
@jleveque jleveque requested a review from lguohan January 4, 2021 18:09
@jleveque
Copy link
Contributor

jleveque commented Jan 12, 2021

@shlomibitton, @liat-grozovik: One question: we were previously installing a Debian package, but with this PR we're only copying the binary. Are we sure we're not missing any files with this approach? E.g., bash-completion files, etc.?

@shlomibitton shlomibitton dismissed stale reviews from jleveque and nazariig via 8c94b63 January 13, 2021 07:54
@shlomibitton
Copy link
Contributor Author

shlomibitton commented Jan 13, 2021

@shlomibitton, @liat-grozovik: One question: we were previously installing a Debian package, but with this PR we're only copying the binary. Are we sure we're not missing any files with this approach? E.g., bash-completion files, etc.?

@jleveque no additional files are required, the tool works very well from my testing.
By copying the file to /usr/bin it will be auto completed by default.

src/ethtool/Makefile Outdated Show resolved Hide resolved
@dprital
Copy link
Collaborator

dprital commented Feb 19, 2021

@lguohan - Can you please review ? Thnx

@lguohan
Copy link
Collaborator

lguohan commented Mar 16, 2021

@jleveque , please take a look?

@jleveque jleveque merged commit 43d4d45 into sonic-net:master Mar 16, 2021
@dprital
Copy link
Collaborator

dprital commented Mar 17, 2021

@daall - Can you please merge to 202012 ? Thanks,

daall pushed a commit that referenced this pull request Mar 19, 2021
Backport ethtool debian package version 5.9 to support QSFP-DD cable parsing.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
@shlomibitton shlomibitton deleted the shlomi_ethtool_backport_qsfp_dd_master branch March 24, 2021 20:37
lguohan added a commit that referenced this pull request Apr 1, 2021
lguohan pushed a commit that referenced this pull request Apr 8, 2021
)

Compiling ethtool from source is causing ethtool unit tests to fail on ARM Platforms.

These tests are failing: (By default netlink-interface is enabled while compiling ethtool)
Link: ([Test File Link](https://salsa.debian.org/kernel-team/ethtool/-/blob/debian/1%255.9-1/test-cmdline.c#L28))
```
FAIL: test-cmdline
==================

E: ethtool 16_char_devname! returns 1
E: ethtool 
127_char_devname0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde returns 1
E: ethtool --change devname xcvr external returns 0
E: ethtool --change devname speed 100 duplex half port tp autoneg on advertise 0x1 phyad 1 xcvr external wol p sopass 01:23:45:67:89:ab msglvl 1 returns 0

FAIL test-cmdline (exit status: 1)
```
Tested this on Local ARM Emulated Container:

```
(Docker Container Emulating ARM)
vkarri@3a03c70eed35:/tmp/ethtool$ ./ethtool 16_char_devname!
netlink interface initialization failed, device name longer than 15 not supported
vkarri@3a03c70eed35:/tmp/ethtool$ echo $?
1 (Expected 0)
vkarri@3a03c70eed35:~/ethtool$ ./ethtool 16_char_devnameee
netlink interface initialization failed, device name longer than 15 not supported

Checked for dependencies: (all are present)
vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libmnl0
libmnl0:
  Installed: 1.0.4-2
  Candidate: 1.0.4-2
  Version table:
 *** 1.0.4-2 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status

vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libc6  
libc6:
  Installed: 2.28-10
  Candidate: 2.28-10
  Version table:
 *** 2.28-10 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status
```

#### How I did it
Disabled netlink-interface for ethtool. 

Even though Netlink is not available, it doesn't seem to impact what ethtool was supposed to do. In fact the older version which was in use before this PR [#5725](#5725) did not have netlink support and everything seemed to work well

Article on Netlink-Support for ethtool: https://lwn.net/Articles/783633/

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
vivekrnv added a commit to vivekrnv/sonic-buildimage that referenced this pull request Apr 8, 2021
vivekrnv added a commit to vivekrnv/sonic-buildimage that referenced this pull request Apr 8, 2021
…nic-net#7226)

Compiling ethtool from source is causing ethtool unit tests to fail on ARM Platforms.

These tests are failing: (By default netlink-interface is enabled while compiling ethtool)
Link: ([Test File Link](https://salsa.debian.org/kernel-team/ethtool/-/blob/debian/1%255.9-1/test-cmdline.c#L28))
```
FAIL: test-cmdline
==================

E: ethtool 16_char_devname! returns 1
E: ethtool 
127_char_devname0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde returns 1
E: ethtool --change devname xcvr external returns 0
E: ethtool --change devname speed 100 duplex half port tp autoneg on advertise 0x1 phyad 1 xcvr external wol p sopass 01:23:45:67:89:ab msglvl 1 returns 0

FAIL test-cmdline (exit status: 1)
```
Tested this on Local ARM Emulated Container:

```
(Docker Container Emulating ARM)
vkarri@3a03c70eed35:/tmp/ethtool$ ./ethtool 16_char_devname!
netlink interface initialization failed, device name longer than 15 not supported
vkarri@3a03c70eed35:/tmp/ethtool$ echo $?
1 (Expected 0)
vkarri@3a03c70eed35:~/ethtool$ ./ethtool 16_char_devnameee
netlink interface initialization failed, device name longer than 15 not supported

Checked for dependencies: (all are present)
vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libmnl0
libmnl0:
  Installed: 1.0.4-2
  Candidate: 1.0.4-2
  Version table:
 *** 1.0.4-2 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status

vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libc6  
libc6:
  Installed: 2.28-10
  Candidate: 2.28-10
  Version table:
 *** 2.28-10 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status
```

#### How I did it
Disabled netlink-interface for ethtool. 

Even though Netlink is not available, it doesn't seem to impact what ethtool was supposed to do. In fact the older version which was in use before this PR [sonic-net#5725](sonic-net#5725) did not have netlink support and everything seemed to work well

Article on Netlink-Support for ethtool: https://lwn.net/Articles/783633/

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
lguohan pushed a commit that referenced this pull request Apr 16, 2021
lguohan pushed a commit that referenced this pull request Apr 16, 2021
)

Compiling ethtool from source is causing ethtool unit tests to fail on ARM Platforms.

These tests are failing: (By default netlink-interface is enabled while compiling ethtool)
Link: ([Test File Link](https://salsa.debian.org/kernel-team/ethtool/-/blob/debian/1%255.9-1/test-cmdline.c#L28))
```
FAIL: test-cmdline
==================

E: ethtool 16_char_devname! returns 1
E: ethtool 
127_char_devname0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde returns 1
E: ethtool --change devname xcvr external returns 0
E: ethtool --change devname speed 100 duplex half port tp autoneg on advertise 0x1 phyad 1 xcvr external wol p sopass 01:23:45:67:89:ab msglvl 1 returns 0

FAIL test-cmdline (exit status: 1)
```
Tested this on Local ARM Emulated Container:

```
(Docker Container Emulating ARM)
vkarri@3a03c70eed35:/tmp/ethtool$ ./ethtool 16_char_devname!
netlink interface initialization failed, device name longer than 15 not supported
vkarri@3a03c70eed35:/tmp/ethtool$ echo $?
1 (Expected 0)
vkarri@3a03c70eed35:~/ethtool$ ./ethtool 16_char_devnameee
netlink interface initialization failed, device name longer than 15 not supported

Checked for dependencies: (all are present)
vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libmnl0
libmnl0:
  Installed: 1.0.4-2
  Candidate: 1.0.4-2
  Version table:
 *** 1.0.4-2 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status

vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libc6  
libc6:
  Installed: 2.28-10
  Candidate: 2.28-10
  Version table:
 *** 2.28-10 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status
```

#### How I did it
Disabled netlink-interface for ethtool. 

Even though Netlink is not available, it doesn't seem to impact what ethtool was supposed to do. In fact the older version which was in use before this PR [#5725](#5725) did not have netlink support and everything seemed to work well

Article on Netlink-Support for ethtool: https://lwn.net/Articles/783633/

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
praveen-li pushed a commit to praveen-li/sonic-buildimage that referenced this pull request May 14, 2021
Commit: 50e4cc1  Backport ethtool to support QSFP-DD (sonic-net#5725)

Using Diff from Last Merge i.e. below commit:

6aef4d3 (HEAD) Merge branch 'dev_3.0' of ssh://git.corp.linkedin.com:29418/sonic/sonic-buildimage into MERGE_201911_0824
diff from 4810db8 [monit]: monit_telemetry which will have error when telemetry is in secure mode (sonic-net#4286)

Signed-off-by: svc-lnos-user <svc-lnos-user@linkedin.com>
Signed-off-by: Praveen Chaudhary <pchaudhary@linkedin.com>
RB=
G=lnos-reviewers
R=pchaudhary,pmao,samaity,zxu
A=

RB=
G=lnos-reviewers
R=pchaudhary,pmao,samaity,zxu
A=

 Changes to be committed:
	new file:   .reviewboardrc
	new file:   acl/main.acl
	modified:   build_debian.sh
	modified:   device/celestica/x86_64-cel_e1031-r0/installer.conf
	new file:   device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50-40/th-seastone-dx010-32x50G-16x100G.config.bcm
	new file:   device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50-50-40/th-seastone-dx010-48x50G-8x100G.config.bcm
	modified:   device/celestica/x86_64-cel_seastone-r0/th-seastone-dx010-config-flex-all.bcm
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/buffers.json.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/buffers_defaults_def_lossy.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/buffers_defaults_t1.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/inno.config.yaml
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/innovium.77700_B
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/pg_profile_lookup.ini
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/pltfm.profile
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/port_config.ini
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/qos.json.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/qos_defaults_def_lossy.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/qos_defaults_t1.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/sai.profile
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32C/utopias_32x100.config.yaml
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/buffers.json.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/buffers_defaults_def_lossy.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/buffers_defaults_t1.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/config_db.json
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/inno.config.yaml
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/innovium.77700_A
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/pg_profile_lookup.ini
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/pltfm.profile
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/port_config.ini
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/qos.json.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/qos_defaults_def_lossy.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/qos_defaults_t1.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/sai.profile
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-32d/utopias_p3b.config.yaml
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/buffers.json.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/buffers_defaults_def_lossy.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/buffers_defaults_t1.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/config_db.json
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/inno.config.yaml
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/innovium.77700_B
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/pg_profile_lookup.ini
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/pltfm.profile
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/port_config.ini
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/qos.json.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/qos_defaults_def_lossy.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/qos_defaults_t1.j2
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/sai.profile
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/Nexus-C3432D-brk/utopias_128x100.config.yaml
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/default_sku
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/installer.conf
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/plugins/eeprom.py
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/plugins/led_control.py
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/plugins/psuutil.py
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/plugins/qsfpdd.py
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/plugins/sfputil.py
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/sensors.conf
	new file:   device/cisco/x86_64-cisco_N3K_C3432D/topo.conf
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-100/port_config.ini
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-100/sai.profile
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-100/th-cisco-3232c-32x100G.config.bcm
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-25-50/port_config.ini
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-25-50/sai.profile
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-25-50/th-cisco-3232c-96x25G-16x50G.config.bcm
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-50/port_config.ini
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-50/sai.profile
	new file:   device/cisco/x86_64-n3200-r0/Cisco-3232C-50/th-cisco-3232c-64x50G.config.bcm
	new file:   device/cisco/x86_64-n3200-r0/installer.conf
	new file:   device/cisco/x86_64-n3200-r0/plugins/eeprom.py
	new file:   device/cisco/x86_64-n3200-r0/plugins/led_control.py
	new file:   device/cisco/x86_64-n3200-r0/plugins/psuutil.py
	new file:   device/cisco/x86_64-n3200-r0/plugins/sfputil.py
	new file:   device/cisco/x86_64-n3200-r0/sensors.conf
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-100/port_config.ini
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-100/sai.profile
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-100/th-open19-bolt-32x100G.config.bcm
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-25-100/port_config.ini
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-25-100/sai.profile
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-25-100/th-open19-bolt-96x25G-8x100G.config.bcm
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-25-50/hwsku.json
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-25-50/port_config.ini
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-25-50/sai.profile
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-25-50/th-open19-bolt-96x25G-16x50G.config.bcm
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-50-100/port_config.ini
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-50-100/sai.profile
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-50-100/th-open19-bolt-48x50G-8x100G.config.bcm
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-50-50/port_config.ini
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-50-50/sai.profile
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/Open19-Bolt-50-50/th-open19-bolt-48x50G-16x50G.config.bcm
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/i2c_init.sh
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/installer.conf
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/led-code/ledcode0
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/led_proc_init.soc
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/platform.json
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/plugins/eeprom.py
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/plugins/helper_data.json
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/plugins/sensorutil.py
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/plugins/sfputil.py
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/plugins/urlheader.py
	new file:   device/linkedin/x86_64-flex_bolthawk-r0/th-open19-bolt-flex-all.config.bcm
	new file:   device/linkedin/x86_64-open19_bolt-r0
	new file:   device/linkedin/x86_64-qwave_bolt_uefi-r0
	modified:   dockers/docker-base/Dockerfile.j2
	modified:   dockers/docker-fpm-quagga/supervisord.conf
	modified:   dockers/docker-router-advertiser/docker-init.sh
	modified:   dockers/docker-router-advertiser/radvd.conf.j2
	modified:   dockers/docker-sonic-telemetry/Dockerfile.j2
	new file:   dockers/docker-sonic-telemetry/node_exporter.sh
	modified:   dockers/docker-sonic-telemetry/start.sh
	modified:   dockers/docker-sonic-telemetry/supervisord.conf
	modified:   files/build_templates/docker_image_ctl.j2
	modified:   files/build_templates/organization_extensions.sh
	modified:   files/build_templates/sonic_debian_extension.j2
	modified:   files/image_config/bash/bash.bashrc
	modified:   files/image_config/interfaces/interfaces.j2
	modified:   files/image_config/rsyslog/rsyslog.conf.j2
	modified:   files/scripts/arp_update
	modified:   installer/x86_64/install.sh
	modified:   platform/broadcom/docker-syncd-brcm/Dockerfile.j2
	modified:   platform/broadcom/docker-syncd-brcm/start.sh
	modified:   platform/broadcom/docker-syncd-brcm/supervisord.conf
	modified:   platform/broadcom/one-image.mk
	new file:   platform/broadcom/platform-modules-linkedin.mk
	new file:   platform/broadcom/platform-modules-n9200.mk
	modified:   platform/broadcom/rules.mk
	new file:   platform/broadcom/sonic-platform-modules-linkedin/LICENSE
	new file:   platform/broadcom/sonic-platform-modules-linkedin/README.md
	new file:   platform/broadcom/sonic-platform-modules-linkedin/bolt-cel
	new file:   platform/broadcom/sonic-platform-modules-linkedin/bolt-flex-old
	new file:   platform/innovium/docker-orchagent-invm.mk
	new file:   platform/innovium/platform-modules-cisco.mk
	modified:   platform/vs/docker-sonic-vs/Dockerfile.j2
	new file:   release_version.json
	modified:   rules/config
	modified:   rules/docker-telemetry.mk
	modified:   rules/sonic-utilities.mk
	modified:   rules/telemetry.mk
	modified:   slave.mk
	modified:   sonic-slave-stretch/Dockerfile.j2
	modified:   src/sonic-config-engine/minigraph.py
	modified:   src/sonic-device-data/tests/permitted_list
	new file:   src/sonic-device-data/tests/platformJson_checker
	new file:   src/wpasupplicant/sonic-wpa-supplicant

Conflicts:
	.reviewboardrc
	acl/
	build_debian.sh.rej
	device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50-40/th-seastone-dx010-32x50G-16x100G.config.bcm
	device/celestica/x86_64-cel_seastone-r0/Seastone-DX010-50-50-40/th-seastone-dx010-48x50G-8x100G.config.bcm
	device/cisco/
	device/linkedin/
	dockers/docker-router-advertiser/docker-init.sh.rej
	dockers/docker-sonic-telemetry/node_exporter.sh
	files/build_templates/docker_image_ctl.j2.rej
	files/build_templates/sonic_debian_extension.j2.rej
	files/image_config/interfaces/interfaces.j2.rej
	files/image_config/logrotate/logrotate.d/rsyslog.rej
	files/image_config/rsyslog/rsyslog.d/00-sonic.conf.rej
	files/scripts/arp_update.rej
	platform/broadcom/docker-syncd-brcm/Dockerfile.j2.rej
	platform/broadcom/platform-modules-linkedin.mk
	platform/broadcom/platform-modules-n9200.mk
	platform/broadcom/sai.mk.rej
	platform/broadcom/sonic-platform-modules-linkedin/
	platform/innovium/docker-orchagent-invm.mk
	platform/innovium/platform-modules-cisco.mk
	platform/vs/docker-sonic-vs.mk.rej
	platform/vs/docker-sonic-vs/Dockerfile.j2.rej
	platform/vs/docker-sonic-vs/start.sh.rej
	release_version.json
	rules/config.rej
	rules/docker-telemetry.mk.rej
	rules/sonic-platform-common.mk.rej
	rules/sonic-utilities.mk.rej
	rules/sonic-yang-mgmt-py2.mk
	rules/telemetry.mk.rej
	slave.mk.rej
	sonic-slave-jessie/Dockerfile.j2.rej
	sonic-slave-stretch/Dockerfile.j2.rej
	src/sonic-config-engine/minigraph.py.rej
	src/sonic-config-engine/portconfig.py.rej
	src/sonic-config-engine/sonic-cfggen.rej
	src/sonic-device-data/src/Makefile.rej
	src/sonic-device-data/tests/media_checker.rej
	src/sonic-device-data/tests/permitted_list.rej
	src/sonic-device-data/tests/platformJson_checker
	src/wpasupplicant/
raphaelt-nvidia pushed a commit to raphaelt-nvidia/sonic-buildimage that referenced this pull request May 23, 2021
Backport ethtool debian package version 5.9 to support QSFP-DD cable parsing.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
raphaelt-nvidia pushed a commit to raphaelt-nvidia/sonic-buildimage that referenced this pull request May 23, 2021
…nic-net#7226)

Compiling ethtool from source is causing ethtool unit tests to fail on ARM Platforms.

These tests are failing: (By default netlink-interface is enabled while compiling ethtool)
Link: ([Test File Link](https://salsa.debian.org/kernel-team/ethtool/-/blob/debian/1%255.9-1/test-cmdline.c#L28))
```
FAIL: test-cmdline
==================

E: ethtool 16_char_devname! returns 1
E: ethtool 
127_char_devname0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde returns 1
E: ethtool --change devname xcvr external returns 0
E: ethtool --change devname speed 100 duplex half port tp autoneg on advertise 0x1 phyad 1 xcvr external wol p sopass 01:23:45:67:89:ab msglvl 1 returns 0

FAIL test-cmdline (exit status: 1)
```
Tested this on Local ARM Emulated Container:

```
(Docker Container Emulating ARM)
vkarri@3a03c70eed35:/tmp/ethtool$ ./ethtool 16_char_devname!
netlink interface initialization failed, device name longer than 15 not supported
vkarri@3a03c70eed35:/tmp/ethtool$ echo $?
1 (Expected 0)
vkarri@3a03c70eed35:~/ethtool$ ./ethtool 16_char_devnameee
netlink interface initialization failed, device name longer than 15 not supported

Checked for dependencies: (all are present)
vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libmnl0
libmnl0:
  Installed: 1.0.4-2
  Candidate: 1.0.4-2
  Version table:
 *** 1.0.4-2 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status

vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libc6  
libc6:
  Installed: 2.28-10
  Candidate: 2.28-10
  Version table:
 *** 2.28-10 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status
```

#### How I did it
Disabled netlink-interface for ethtool. 

Even though Netlink is not available, it doesn't seem to impact what ethtool was supposed to do. In fact the older version which was in use before this PR [sonic-net#5725](sonic-net#5725) did not have netlink support and everything seemed to work well

Article on Netlink-Support for ethtool: https://lwn.net/Articles/783633/

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
Backport ethtool debian package version 5.9 to support QSFP-DD cable parsing.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
…nic-net#7226)

Compiling ethtool from source is causing ethtool unit tests to fail on ARM Platforms.

These tests are failing: (By default netlink-interface is enabled while compiling ethtool)
Link: ([Test File Link](https://salsa.debian.org/kernel-team/ethtool/-/blob/debian/1%255.9-1/test-cmdline.c#L28))
```
FAIL: test-cmdline
==================

E: ethtool 16_char_devname! returns 1
E: ethtool 
127_char_devname0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde returns 1
E: ethtool --change devname xcvr external returns 0
E: ethtool --change devname speed 100 duplex half port tp autoneg on advertise 0x1 phyad 1 xcvr external wol p sopass 01:23:45:67:89:ab msglvl 1 returns 0

FAIL test-cmdline (exit status: 1)
```
Tested this on Local ARM Emulated Container:

```
(Docker Container Emulating ARM)
vkarri@3a03c70eed35:/tmp/ethtool$ ./ethtool 16_char_devname!
netlink interface initialization failed, device name longer than 15 not supported
vkarri@3a03c70eed35:/tmp/ethtool$ echo $?
1 (Expected 0)
vkarri@3a03c70eed35:~/ethtool$ ./ethtool 16_char_devnameee
netlink interface initialization failed, device name longer than 15 not supported

Checked for dependencies: (all are present)
vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libmnl0
libmnl0:
  Installed: 1.0.4-2
  Candidate: 1.0.4-2
  Version table:
 *** 1.0.4-2 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status

vkarri@3a03c70eed35:~/ethtool$ apt-cache policy libc6  
libc6:
  Installed: 2.28-10
  Candidate: 2.28-10
  Version table:
 *** 2.28-10 500
        500 http://deb.debian.org/debian buster/main armhf Packages
        500 http://packages.trafficmanager.net/debian/debian buster/main armhf Packages
        100 /var/lib/dpkg/status
```

#### How I did it
Disabled netlink-interface for ethtool. 

Even though Netlink is not available, it doesn't seem to impact what ethtool was supposed to do. In fact the older version which was in use before this PR [sonic-net#5725](sonic-net#5725) did not have netlink support and everything seemed to work well

Article on Netlink-Support for ethtool: https://lwn.net/Articles/783633/

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
@prgeor prgeor mentioned this pull request Sep 12, 2023
11 tasks
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.

8 participants