Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ethtool for openSUSE:Factory checked in at 2022-12-21 16:06:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ethtool (Old) and /work/SRC/openSUSE:Factory/.ethtool.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ethtool" Wed Dec 21 16:06:04 2022 rev:76 rq:1043943 version:6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ethtool/ethtool.changes 2022-10-13 15:39:55.682466177 +0200 +++ /work/SRC/openSUSE:Factory/.ethtool.new.1835/ethtool.changes 2022-12-21 16:06:11.598409757 +0100 @@ -1,0 +2,10 @@ +Mon Dec 19 22:33:34 UTC 2022 - Michal Kubecek <mkube...@suse.cz> + +- update to upstream release 6.1 + * Feature: update link mode tables + * Feature: register dump for NXP ENETC driver (-d) + * Feature: report TCP header-data split (-g) + * Feature: support new message types in pretty print + * Fix: man page syntax fixes + +------------------------------------------------------------------- Old: ---- ethtool-6.0.tar.sign ethtool-6.0.tar.xz New: ---- ethtool-6.1.tar.sign ethtool-6.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ethtool.spec ++++++ --- /var/tmp/diff_new_pack.x7NRm5/_old 2022-12-21 16:06:12.238413209 +0100 +++ /var/tmp/diff_new_pack.x7NRm5/_new 2022-12-21 16:06:12.242413230 +0100 @@ -17,7 +17,7 @@ Name: ethtool -Version: 6.0 +Version: 6.1 Release: 0 Summary: Utility for examining and tuning Ethernet-based network interfaces License: GPL-2.0-only ++++++ ethtool-6.0.tar.xz -> ethtool-6.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/Makefile.am new/ethtool-6.1/Makefile.am --- old/ethtool-6.0/Makefile.am 2022-08-06 23:53:42.000000000 +0200 +++ new/ethtool-6.1/Makefile.am 2022-12-16 11:00:26.000000000 +0100 @@ -1,4 +1,4 @@ -AM_CFLAGS = -Wall -Wextra +AM_CFLAGS = -Wall -Wextra -D_POSIX_C_SOURCE=200809L AM_CPPFLAGS = -I$(top_srcdir)/uapi LDADD = -lm @@ -13,8 +13,8 @@ if ETHTOOL_ENABLE_PRETTY_DUMP ethtool_SOURCES += \ amd8111e.c de2104x.c dsa.c e100.c e1000.c et131x.c igb.c \ - fec.c fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ - pcnet32.c realtek.c tg3.c marvell.c vioc.c \ + fec.c fec_8xx.c fsl_enetc.c ibm_emac.c ixgb.c ixgbe.c \ + natsemi.c pcnet32.c realtek.c tg3.c marvell.c vioc.c \ smsc911x.c at76c50x-usb.c sfc.c stmmac.c \ sff-common.c sff-common.h sfpid.c sfpdiag.c \ ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/Makefile.in new/ethtool-6.1/Makefile.in --- old/ethtool-6.0/Makefile.in 2022-10-10 18:38:35.000000000 +0200 +++ new/ethtool-6.1/Makefile.in 2022-12-19 23:15:07.000000000 +0100 @@ -90,8 +90,8 @@ sbin_PROGRAMS = ethtool$(EXEEXT) @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@am__append_1 = \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ amd8111e.c de2104x.c dsa.c e100.c e1000.c et131x.c igb.c \ -@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ fec.c fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ -@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ pcnet32.c realtek.c tg3.c marvell.c vioc.c \ +@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ fec.c fec_8xx.c fsl_enetc.c ibm_emac.c ixgb.c ixgbe.c \ +@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ natsemi.c pcnet32.c realtek.c tg3.c marvell.c vioc.c \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ smsc911x.c at76c50x-usb.c sfc.c stmmac.c \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ sff-common.c sff-common.h sfpid.c sfpdiag.c \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c \ @@ -143,20 +143,20 @@ uapi/linux/net_tstamp.h rxclass.c common.c common.h \ json_writer.c json_writer.h json_print.c json_print.h list.h \ amd8111e.c de2104x.c dsa.c e100.c e1000.c et131x.c igb.c fec.c \ - fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c \ - realtek.c tg3.c marvell.c vioc.c smsc911x.c at76c50x-usb.c \ - sfc.c stmmac.c sff-common.c sff-common.h sfpid.c sfpdiag.c \ - ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c igc.c \ - cmis.c cmis.h bnxt.c cpsw.c lan743x.c netlink/netlink.c \ - netlink/netlink.h netlink/extapi.h netlink/msgbuff.c \ - netlink/msgbuff.h netlink/nlsock.c netlink/nlsock.h \ - netlink/strset.c netlink/strset.h netlink/monitor.c \ - netlink/bitset.c netlink/bitset.h netlink/settings.c \ - netlink/parser.c netlink/parser.h netlink/permaddr.c \ - netlink/prettymsg.c netlink/prettymsg.h netlink/features.c \ - netlink/privflags.c netlink/rings.c netlink/channels.c \ - netlink/coalesce.c netlink/pause.c netlink/eee.c \ - netlink/tsinfo.c netlink/fec.c netlink/stats.c \ + fec_8xx.c fsl_enetc.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ + pcnet32.c realtek.c tg3.c marvell.c vioc.c smsc911x.c \ + at76c50x-usb.c sfc.c stmmac.c sff-common.c sff-common.h \ + sfpid.c sfpdiag.c ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h \ + fjes.c lan78xx.c igc.c cmis.c cmis.h bnxt.c cpsw.c lan743x.c \ + netlink/netlink.c netlink/netlink.h netlink/extapi.h \ + netlink/msgbuff.c netlink/msgbuff.h netlink/nlsock.c \ + netlink/nlsock.h netlink/strset.c netlink/strset.h \ + netlink/monitor.c netlink/bitset.c netlink/bitset.h \ + netlink/settings.c netlink/parser.c netlink/parser.h \ + netlink/permaddr.c netlink/prettymsg.c netlink/prettymsg.h \ + netlink/features.c netlink/privflags.c netlink/rings.c \ + netlink/channels.c netlink/coalesce.c netlink/pause.c \ + netlink/eee.c netlink/tsinfo.c netlink/fec.c netlink/stats.c \ netlink/desc-ethtool.c netlink/desc-genlctrl.c \ netlink/module-eeprom.c netlink/module.c netlink/desc-rtnl.c \ netlink/cable_test.c netlink/tunnels.c \ @@ -170,6 +170,7 @@ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ et131x.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ igb.$(OBJEXT) fec.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ fec_8xx.$(OBJEXT) \ +@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ fsl_enetc.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ ibm_emac.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ ixgb.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ ixgbe.$(OBJEXT) \ @@ -234,12 +235,12 @@ uapi/linux/ethtool.h internal.h uapi/linux/net_tstamp.h \ rxclass.c common.c common.h json_writer.c json_writer.h \ json_print.c json_print.h list.h amd8111e.c de2104x.c dsa.c \ - e100.c e1000.c et131x.c igb.c fec.c fec_8xx.c ibm_emac.c \ - ixgb.c ixgbe.c natsemi.c pcnet32.c realtek.c tg3.c marvell.c \ - vioc.c smsc911x.c at76c50x-usb.c sfc.c stmmac.c sff-common.c \ - sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c vmxnet3.c \ - qsfp.c qsfp.h fjes.c lan78xx.c igc.c cmis.c cmis.h bnxt.c \ - cpsw.c lan743x.c netlink/netlink.c netlink/netlink.h \ + e100.c e1000.c et131x.c igb.c fec.c fec_8xx.c fsl_enetc.c \ + ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c realtek.c tg3.c \ + marvell.c vioc.c smsc911x.c at76c50x-usb.c sfc.c stmmac.c \ + sff-common.c sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c \ + vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c igc.c cmis.c cmis.h \ + bnxt.c cpsw.c lan743x.c netlink/netlink.c netlink/netlink.h \ netlink/extapi.h netlink/msgbuff.c netlink/msgbuff.h \ netlink/nlsock.c netlink/nlsock.h netlink/strset.c \ netlink/strset.h netlink/monitor.c netlink/bitset.c \ @@ -263,6 +264,7 @@ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-igb.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-fec.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-fec_8xx.$(OBJEXT) \ +@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-fsl_enetc.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-ibm_emac.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-ixgb.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_cmdline-ixgbe.$(OBJEXT) \ @@ -334,20 +336,20 @@ uapi/linux/net_tstamp.h rxclass.c common.c common.h \ json_writer.c json_writer.h json_print.c json_print.h list.h \ amd8111e.c de2104x.c dsa.c e100.c e1000.c et131x.c igb.c fec.c \ - fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c \ - realtek.c tg3.c marvell.c vioc.c smsc911x.c at76c50x-usb.c \ - sfc.c stmmac.c sff-common.c sff-common.h sfpid.c sfpdiag.c \ - ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c lan78xx.c igc.c \ - cmis.c cmis.h bnxt.c cpsw.c lan743x.c netlink/netlink.c \ - netlink/netlink.h netlink/extapi.h netlink/msgbuff.c \ - netlink/msgbuff.h netlink/nlsock.c netlink/nlsock.h \ - netlink/strset.c netlink/strset.h netlink/monitor.c \ - netlink/bitset.c netlink/bitset.h netlink/settings.c \ - netlink/parser.c netlink/parser.h netlink/permaddr.c \ - netlink/prettymsg.c netlink/prettymsg.h netlink/features.c \ - netlink/privflags.c netlink/rings.c netlink/channels.c \ - netlink/coalesce.c netlink/pause.c netlink/eee.c \ - netlink/tsinfo.c netlink/fec.c netlink/stats.c \ + fec_8xx.c fsl_enetc.c ibm_emac.c ixgb.c ixgbe.c natsemi.c \ + pcnet32.c realtek.c tg3.c marvell.c vioc.c smsc911x.c \ + at76c50x-usb.c sfc.c stmmac.c sff-common.c sff-common.h \ + sfpid.c sfpdiag.c ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h \ + fjes.c lan78xx.c igc.c cmis.c cmis.h bnxt.c cpsw.c lan743x.c \ + netlink/netlink.c netlink/netlink.h netlink/extapi.h \ + netlink/msgbuff.c netlink/msgbuff.h netlink/nlsock.c \ + netlink/nlsock.h netlink/strset.c netlink/strset.h \ + netlink/monitor.c netlink/bitset.c netlink/bitset.h \ + netlink/settings.c netlink/parser.c netlink/parser.h \ + netlink/permaddr.c netlink/prettymsg.c netlink/prettymsg.h \ + netlink/features.c netlink/privflags.c netlink/rings.c \ + netlink/channels.c netlink/coalesce.c netlink/pause.c \ + netlink/eee.c netlink/tsinfo.c netlink/fec.c netlink/stats.c \ netlink/desc-ethtool.c netlink/desc-genlctrl.c \ netlink/module-eeprom.c netlink/module.c netlink/desc-rtnl.c \ netlink/cable_test.c netlink/tunnels.c \ @@ -363,6 +365,7 @@ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-igb.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-fec.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-fec_8xx.$(OBJEXT) \ +@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-fsl_enetc.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-ibm_emac.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-ixgb.$(OBJEXT) \ @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@ test_features-ixgbe.$(OBJEXT) \ @@ -817,7 +820,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AM_CFLAGS = -Wall -Wextra +AM_CFLAGS = -Wall -Wextra -D_POSIX_C_SOURCE=200809L AM_CPPFLAGS = -I$(top_srcdir)/uapi $(am__append_3) LDADD = -lm $(am__append_4) man_MANS = ethtool.8 @@ -1137,6 +1140,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fec_8xx.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fjes.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsl_enetc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibm_emac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/igb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/igc.Po@am__quote@ @@ -1174,6 +1178,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-fec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-fec_8xx.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-fjes.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-fsl_enetc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-ibm_emac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-igb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-igc.Po@am__quote@ @@ -1217,6 +1222,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_features-fec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_features-fec_8xx.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_features-fjes.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_features-fsl_enetc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_features-ibm_emac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_features-igb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_features-igc.Po@am__quote@ @@ -1571,6 +1577,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -c -o test_cmdline-fec_8xx.obj `if test -f 'fec_8xx.c'; then $(CYGPATH_W) 'fec_8xx.c'; else $(CYGPATH_W) '$(srcdir)/fec_8xx.c'; fi` +test_cmdline-fsl_enetc.o: fsl_enetc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -MT test_cmdline-fsl_enetc.o -MD -MP -MF $(DEPDIR)/test_cmdline-fsl_enetc.Tpo -c -o test_cmdline-fsl_enetc.o `test -f 'fsl_enetc.c' || echo '$(srcdir)/'`fsl_enetc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_cmdline-fsl_enetc.Tpo $(DEPDIR)/test_cmdline-fsl_enetc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsl_enetc.c' object='test_cmdline-fsl_enetc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -c -o test_cmdline-fsl_enetc.o `test -f 'fsl_enetc.c' || echo '$(srcdir)/'`fsl_enetc.c + +test_cmdline-fsl_enetc.obj: fsl_enetc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -MT test_cmdline-fsl_enetc.obj -MD -MP -MF $(DEPDIR)/test_cmdline-fsl_enetc.Tpo -c -o test_cmdline-fsl_enetc.obj `if test -f 'fsl_enetc.c'; then $(CYGPATH_W) 'fsl_enetc.c'; else $(CYGPATH_W) '$(srcdir)/fsl_enetc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_cmdline-fsl_enetc.Tpo $(DEPDIR)/test_cmdline-fsl_enetc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsl_enetc.c' object='test_cmdline-fsl_enetc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -c -o test_cmdline-fsl_enetc.obj `if test -f 'fsl_enetc.c'; then $(CYGPATH_W) 'fsl_enetc.c'; else $(CYGPATH_W) '$(srcdir)/fsl_enetc.c'; fi` + test_cmdline-ibm_emac.o: ibm_emac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -MT test_cmdline-ibm_emac.o -MD -MP -MF $(DEPDIR)/test_cmdline-ibm_emac.Tpo -c -o test_cmdline-ibm_emac.o `test -f 'ibm_emac.c' || echo '$(srcdir)/'`ibm_emac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_cmdline-ibm_emac.Tpo $(DEPDIR)/test_cmdline-ibm_emac.Po @@ -2551,6 +2571,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -c -o test_features-fec_8xx.obj `if test -f 'fec_8xx.c'; then $(CYGPATH_W) 'fec_8xx.c'; else $(CYGPATH_W) '$(srcdir)/fec_8xx.c'; fi` +test_features-fsl_enetc.o: fsl_enetc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -MT test_features-fsl_enetc.o -MD -MP -MF $(DEPDIR)/test_features-fsl_enetc.Tpo -c -o test_features-fsl_enetc.o `test -f 'fsl_enetc.c' || echo '$(srcdir)/'`fsl_enetc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_features-fsl_enetc.Tpo $(DEPDIR)/test_features-fsl_enetc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsl_enetc.c' object='test_features-fsl_enetc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -c -o test_features-fsl_enetc.o `test -f 'fsl_enetc.c' || echo '$(srcdir)/'`fsl_enetc.c + +test_features-fsl_enetc.obj: fsl_enetc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -MT test_features-fsl_enetc.obj -MD -MP -MF $(DEPDIR)/test_features-fsl_enetc.Tpo -c -o test_features-fsl_enetc.obj `if test -f 'fsl_enetc.c'; then $(CYGPATH_W) 'fsl_enetc.c'; else $(CYGPATH_W) '$(srcdir)/fsl_enetc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_features-fsl_enetc.Tpo $(DEPDIR)/test_features-fsl_enetc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fsl_enetc.c' object='test_features-fsl_enetc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -c -o test_features-fsl_enetc.obj `if test -f 'fsl_enetc.c'; then $(CYGPATH_W) 'fsl_enetc.c'; else $(CYGPATH_W) '$(srcdir)/fsl_enetc.c'; fi` + test_features-ibm_emac.o: ibm_emac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -MT test_features-ibm_emac.o -MD -MP -MF $(DEPDIR)/test_features-ibm_emac.Tpo -c -o test_features-ibm_emac.o `test -f 'ibm_emac.c' || echo '$(srcdir)/'`ibm_emac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_features-ibm_emac.Tpo $(DEPDIR)/test_features-ibm_emac.Po diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/NEWS new/ethtool-6.1/NEWS --- old/ethtool-6.0/NEWS 2022-10-10 18:34:42.000000000 +0200 +++ new/ethtool-6.1/NEWS 2022-12-19 23:05:44.000000000 +0100 @@ -1,3 +1,11 @@ +Version 6.1 - December 19, 2022 + * Feature: update link mode tables + * Feature: register dump for NXP ENETC driver (-d) + * Feature: report TCP header-data split (-g) + * Feature: support new message types in pretty print + * Fix: fix compiler warnings + * Fix: man page syntax fixes + Version 6.0 - October 10, 2022 * Fix: advertisement modes autoselection by lanes (-s) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/bnxt.c new/ethtool-6.1/bnxt.c --- old/ethtool-6.0/bnxt.c 2020-09-28 15:41:49.000000000 +0200 +++ new/ethtool-6.1/bnxt.c 2022-11-02 09:01:53.000000000 +0100 @@ -63,7 +63,7 @@ return 0; if (regs->len < (BNXT_PXP_REG_LEN + BNXT_PCIE_STATS_LEN)) { - fprintf(stdout, "Length is too short, expected 0x%lx\n", + fprintf(stdout, "Length is too short, expected 0x%zx\n", BNXT_PXP_REG_LEN + BNXT_PCIE_STATS_LEN); return -1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/configure new/ethtool-6.1/configure --- old/ethtool-6.0/configure 2022-10-10 18:38:35.000000000 +0200 +++ new/ethtool-6.1/configure 2022-12-19 23:15:06.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ethtool 6.0. +# Generated by GNU Autoconf 2.69 for ethtool 6.1. # # Report bugs to <net...@vger.kernel.org>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='ethtool' PACKAGE_TARNAME='ethtool' -PACKAGE_VERSION='6.0' -PACKAGE_STRING='ethtool 6.0' +PACKAGE_VERSION='6.1' +PACKAGE_STRING='ethtool 6.1' PACKAGE_BUGREPORT='net...@vger.kernel.org' PACKAGE_URL='' @@ -1254,7 +1254,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ethtool 6.0 to adapt to many kinds of systems. +\`configure' configures ethtool 6.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1320,7 +1320,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ethtool 6.0:";; + short | recursive ) echo "Configuration of ethtool 6.1:";; esac cat <<\_ACEOF @@ -1430,7 +1430,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ethtool configure 6.0 +ethtool configure 6.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1677,7 +1677,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ethtool $as_me 6.0, which was +It was created by ethtool $as_me 6.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2542,7 +2542,7 @@ # Define the identity of the package. PACKAGE='ethtool' - VERSION='6.0' + VERSION='6.1' cat >>confdefs.h <<_ACEOF @@ -5122,7 +5122,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ethtool $as_me 6.0, which was +This file was extended by ethtool $as_me 6.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5188,7 +5188,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ethtool config.status 6.0 +ethtool config.status 6.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/configure.ac new/ethtool-6.1/configure.ac --- old/ethtool-6.0/configure.ac 2022-10-10 18:34:42.000000000 +0200 +++ new/ethtool-6.1/configure.ac 2022-12-19 22:59:47.000000000 +0100 @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(ethtool, 6.0, net...@vger.kernel.org) +AC_INIT(ethtool, 6.1, net...@vger.kernel.org) AC_PREREQ(2.52) AC_CONFIG_SRCDIR([ethtool.c]) AM_INIT_AUTOMAKE([gnu subdir-objects]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/ethtool.8 new/ethtool-6.1/ethtool.8 --- old/ethtool-6.0/ethtool.8 2022-10-10 18:38:36.000000000 +0200 +++ new/ethtool-6.1/ethtool.8 2022-12-19 23:15:08.000000000 +0100 @@ -79,7 +79,7 @@ .\" \(*NC - Network Classifier type values .\" .ds NC \fBether\fP|\fBip4\fP|\fBtcp4\fP|\fBudp4\fP|\fBsctp4\fP|\fBah4\fP|\fBesp4\fP|\fBip6\fP|\fBtcp6\fP|\fBudp6\fP|\fBah6\fP|\fBesp6\fP|\fBsctp6\fP -.. +. .\" .\" Start URL. .de UR @@ -117,7 +117,7 @@ . hy \\n(HY .. . -.TH ETHTOOL 8 "October 2022" "Ethtool version 6.0" +.TH ETHTOOL 8 "December 2022" "Ethtool version 6.1" .SH NAME ethtool \- query or control network driver and hardware settings . @@ -249,7 +249,7 @@ .RB [\fBeth\-phy\fP] .RB [\fBeth\-mac\fP] .RB [\fBeth\-ctrl\fP] -.RN [\fBrmon\fP] +.RB [\fBrmon\fP] .RB ] .HP .B ethtool \-\-phy\-statistics @@ -695,7 +695,6 @@ .RS 4 .TP .B \fB\-\-all\-groups -.E .TP .B \fB\-\-groups [\fBeth\-phy\fP] [\fBeth\-mac\fP] [\fBeth\-ctrl\fP] [\fBrmon\fP] Request groups of standard device statistics. @@ -776,6 +775,7 @@ lB l lB. 0x001 10baseT Half 0x002 10baseT Full +0x100000000000000000000000 10baseT1L Full 0x004 100baseT Half 0x008 100baseT Full 0x80000000000000000 100baseT1 Full diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/ethtool.8.in new/ethtool-6.1/ethtool.8.in --- old/ethtool-6.0/ethtool.8.in 2022-10-10 18:34:42.000000000 +0200 +++ new/ethtool-6.1/ethtool.8.in 2022-12-19 23:00:08.000000000 +0100 @@ -79,7 +79,7 @@ .\" \(*NC - Network Classifier type values .\" .ds NC \fBether\fP|\fBip4\fP|\fBtcp4\fP|\fBudp4\fP|\fBsctp4\fP|\fBah4\fP|\fBesp4\fP|\fBip6\fP|\fBtcp6\fP|\fBudp6\fP|\fBah6\fP|\fBesp6\fP|\fBsctp6\fP -.. +. .\" .\" Start URL. .de UR @@ -117,7 +117,7 @@ . hy \\n(HY .. . -.TH ETHTOOL 8 "October 2022" "Ethtool version @VERSION@" +.TH ETHTOOL 8 "December 2022" "Ethtool version @VERSION@" .SH NAME ethtool \- query or control network driver and hardware settings . @@ -249,7 +249,7 @@ .RB [\fBeth\-phy\fP] .RB [\fBeth\-mac\fP] .RB [\fBeth\-ctrl\fP] -.RN [\fBrmon\fP] +.RB [\fBrmon\fP] .RB ] .HP .B ethtool \-\-phy\-statistics @@ -695,7 +695,6 @@ .RS 4 .TP .B \fB\-\-all\-groups -.E .TP .B \fB\-\-groups [\fBeth\-phy\fP] [\fBeth\-mac\fP] [\fBeth\-ctrl\fP] [\fBrmon\fP] Request groups of standard device statistics. @@ -776,6 +775,7 @@ lB l lB. 0x001 10baseT Half 0x002 10baseT Full +0x100000000000000000000000 10baseT1L Full 0x004 100baseT Half 0x008 100baseT Full 0x80000000000000000 100baseT1 Full diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/ethtool.c new/ethtool-6.1/ethtool.c --- old/ethtool-6.0/ethtool.c 2022-10-10 18:27:16.000000000 +0200 +++ new/ethtool-6.1/ethtool.c 2022-12-16 11:00:26.000000000 +0100 @@ -31,6 +31,7 @@ #include "internal.h" #include <string.h> +#include <strings.h> #include <stdlib.h> #include <sys/stat.h> #include <stdio.h> @@ -46,6 +47,7 @@ #include <netinet/in.h> #include <arpa/inet.h> +#include <linux/ioctl.h> #include <linux/sockios.h> #include <linux/netlink.h> @@ -301,7 +303,7 @@ case CMDL_IP4: { u32 *p = info[idx].wanted_val; struct in_addr in; - if (!inet_aton(argp[i], &in)) + if (!inet_pton(AF_INET, argp[i], &in)) exit_bad_args(); *p = in.s_addr; break; @@ -475,6 +477,7 @@ ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT, ETHTOOL_LINK_MODE_100baseFX_Half_BIT, ETHTOOL_LINK_MODE_100baseFX_Full_BIT, + ETHTOOL_LINK_MODE_10baseT1L_Full_BIT, }; static const enum ethtool_link_mode_bit_indices additional_advertised_flags_bits[] = { @@ -715,6 +718,8 @@ "100baseFX/Half" }, { 1, ETHTOOL_LINK_MODE_100baseFX_Full_BIT, "100baseFX/Full" }, + { 0, ETHTOOL_LINK_MODE_10baseT1L_Full_BIT, + "10baseT1L/Full" }, }; int indent; int did1, new_line_pend; @@ -1131,6 +1136,8 @@ { "bnxt_en", bnxt_dump_regs }, { "cpsw-switch", cpsw_dump_regs }, { "lan743x", lan743x_dump_regs }, + { "fsl_enetc", fsl_enetc_dump_regs }, + { "fsl_enetc_vf", fsl_enetc_dump_regs }, }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/ethtool.spec new/ethtool-6.1/ethtool.spec --- old/ethtool-6.0/ethtool.spec 2022-10-10 18:38:37.000000000 +0200 +++ new/ethtool-6.1/ethtool.spec 2022-12-19 23:15:09.000000000 +0100 @@ -1,5 +1,5 @@ Name : ethtool -Version : 6.0 +Version : 6.1 Release : 1 Group : Utilities diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/fsl_enetc.c new/ethtool-6.1/fsl_enetc.c --- old/ethtool-6.0/fsl_enetc.c 1970-01-01 01:00:00.000000000 +0100 +++ new/ethtool-6.1/fsl_enetc.c 2022-12-08 13:20:15.000000000 +0100 @@ -0,0 +1,259 @@ +/* Code to dump registers for the Freescale/NXP ENETC controller. + * + * Copyright 2022 NXP + */ +#include <stdio.h> +#include "internal.h" + +#define BIT(x) (1U << (x)) + +enum enetc_bdr_type {TX, RX}; +#define ENETC_SIMR 0 +#define ENETC_SIPMAR0 0x80 +#define ENETC_SIPMAR1 0x84 +#define ENETC_SICBDRMR 0x800 +#define ENETC_SICBDRSR 0x804 +#define ENETC_SICBDRBAR0 0x810 +#define ENETC_SICBDRBAR1 0x814 +#define ENETC_SICBDRPIR 0x818 +#define ENETC_SICBDRCIR 0x81c +#define ENETC_SICBDRLENR 0x820 +#define ENETC_SICAPR0 0x900 +#define ENETC_SICAPR1 0x904 +#define ENETC_SIUEFDCR 0xe28 + +#define ENETC_BDR_OFF(i) ((i) * 0x200) +#define ENETC_BDR(t, i, r) (0x8000 + (t) * 0x100 + ENETC_BDR_OFF(i) + (r)) + +/* RX BDR reg offsets */ +#define ENETC_RBMR 0 +#define ENETC_RBSR 0x4 +#define ENETC_RBBSR 0x8 +#define ENETC_RBCIR 0xc +#define ENETC_RBBAR0 0x10 +#define ENETC_RBBAR1 0x14 +#define ENETC_RBPIR 0x18 +#define ENETC_RBLENR 0x20 +#define ENETC_RBIER 0xa0 +#define ENETC_RBICR0 0xa8 +#define ENETC_RBICR1 0xac + +/* TX BDR reg offsets */ +#define ENETC_TBMR 0 +#define ENETC_TBSR 0x4 +#define ENETC_TBBAR0 0x10 +#define ENETC_TBBAR1 0x14 +#define ENETC_TBPIR 0x18 +#define ENETC_TBCIR 0x1c +#define ENETC_TBLENR 0x20 +#define ENETC_TBIER 0xa0 +#define ENETC_TBIDR 0xa4 +#define ENETC_TBICR0 0xa8 +#define ENETC_TBICR1 0xac + +/* Port registers */ +#define ENETC_PORT_BASE 0x10000 +#define ENETC_PMR ENETC_PORT_BASE + 0x0000 +#define ENETC_PSR ENETC_PORT_BASE + 0x0004 +#define ENETC_PSIPMR ENETC_PORT_BASE + 0x0018 +#define ENETC_PSIPMAR0(n) ENETC_PORT_BASE + (0x0100 + (n) * 0x8) /* n = SI index */ +#define ENETC_PSIPMAR1(n) ENETC_PORT_BASE + (0x0104 + (n) * 0x8) +#define ENETC_PTXMBAR ENETC_PORT_BASE + 0x0608 +#define ENETC_PCAPR0 ENETC_PORT_BASE + 0x0900 +#define ENETC_PCAPR1 ENETC_PORT_BASE + 0x0904 +#define ENETC_PSICFGR0(n) ENETC_PORT_BASE + (0x0940 + (n) * 0xc) /* n = SI index */ + +#define ENETC_PRFSCAPR ENETC_PORT_BASE + 0x1804 +#define ENETC_PTCMSDUR(n) ENETC_PORT_BASE + (0x2020 + (n) * 4) /* n = TC index [0..7] */ + +#define ENETC_PM0_CMD_CFG ENETC_PORT_BASE + 0x8008 +#define ENETC_PM0_CMD_TX_EN BIT(0) +#define ENETC_PM0_CMD_RX_EN BIT(1) +#define ENETC_PM0_CMD_WAN BIT(3) +#define ENETC_PM0_CMD_PROMISC BIT(4) +#define ENETC_PM0_CMD_PAD BIT(5) +#define ENETC_PM0_CMD_CRC BIT(6) +#define ENETC_PM0_CMD_PAUSE_FWD BIT(7) +#define ENETC_PM0_CMD_PAUSE_IGN BIT(8) +#define ENETC_PM0_CMD_TX_ADDR_INS BIT(9) +#define ENETC_PM0_CMD_XGLP BIT(10) +#define ENETC_PM0_CMD_TXP BIT(11) +#define ENETC_PM0_CMD_SWR BIT(12) +#define ENETC_PM0_CMD_CNT_FRM_EN BIT(13) +#define ENETC_PM0_CMD_SEND_IDLE BIT(16) +#define ENETC_PM0_CMD_NO_LEN_CHK BIT(17) +#define ENETC_PM0_CMD_SFD BIT(21) +#define ENETC_PM0_CMD_TX_LOWP_ENA BIT(23) +#define ENETC_PM0_CMD_REG_LOWP_RXETY BIT(24) +#define ENETC_PM0_CMD_RXSTP BIT(29) +#define ENETC_PM0_CMD_MG BIT(31) + +#define ENETC_PM0_MAXFRM ENETC_PORT_BASE + 0x8014 +#define ENETC_PM0_IF_MODE ENETC_PORT_BASE + 0x8300 + +struct enetc_register { + u32 addr; + const char *name; + void (*decode)(u32 val, char *buf); +}; + +#define REG(_reg, _name) { .addr = (_reg), .name = (_name) } + +#define REG_DEC(_reg, _name, _decode) \ + { .addr = (_reg), .name = (_name), .decode = (_decode) } + +static void decode_cmd_cfg(u32 val, char *buf) +{ + sprintf(buf, "\tMG %d\n\tRXSTP %d\n\tREG_LOWP_RXETY %d\n" + "\tTX_LOWP_ENA %d\n\tSFD %d\n\tNO_LEN_CHK %d\n\tSEND_IDLE %d\n" + "\tCNT_FRM_EN %d\n\tSWR %d\n\tTXP %d\n\tXGLP %d\n" + "\tTX_ADDR_INS %d\n\tPAUSE_IGN %d\n\tPAUSE_FWD %d\n\tCRC %d\n" + "\tPAD %d\n\tPROMIS %d\n\tWAN %d\n\tRX_EN %d\n\tTX_EN %d\n", + !!(val & ENETC_PM0_CMD_MG), + !!(val & ENETC_PM0_CMD_RXSTP), + !!(val & ENETC_PM0_CMD_REG_LOWP_RXETY), + !!(val & ENETC_PM0_CMD_TX_LOWP_ENA), + !!(val & ENETC_PM0_CMD_SFD), + !!(val & ENETC_PM0_CMD_NO_LEN_CHK), + !!(val & ENETC_PM0_CMD_SEND_IDLE), + !!(val & ENETC_PM0_CMD_CNT_FRM_EN), + !!(val & ENETC_PM0_CMD_SWR), + !!(val & ENETC_PM0_CMD_TXP), + !!(val & ENETC_PM0_CMD_XGLP), + !!(val & ENETC_PM0_CMD_TX_ADDR_INS), + !!(val & ENETC_PM0_CMD_PAUSE_IGN), + !!(val & ENETC_PM0_CMD_PAUSE_FWD), + !!(val & ENETC_PM0_CMD_CRC), + !!(val & ENETC_PM0_CMD_PAD), + !!(val & ENETC_PM0_CMD_PROMISC), + !!(val & ENETC_PM0_CMD_WAN), + !!(val & ENETC_PM0_CMD_RX_EN), + !!(val & ENETC_PM0_CMD_TX_EN)); +} + +#define RXBDR_REGS(_i) \ + REG(ENETC_BDR(RX, (_i), ENETC_RBMR), "RX BDR " #_i " mode register"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBSR), "RX BDR " #_i " status register"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBBSR), "RX BDR " #_i " buffer size register"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBPIR), "RX BDR " #_i " producer index register"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBCIR), "RX BDR " #_i " consumer index register"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBBAR0), "RX BDR " #_i " base address register 0"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBBAR1), "RX BDR " #_i " base address register 1"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBLENR), "RX BDR " #_i " length register"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBIER), "RX BDR " #_i " interrupt enable register"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBICR0), "RX BDR " #_i " interrupt coalescing register 0"), \ + REG(ENETC_BDR(RX, (_i), ENETC_RBICR1), "RX BDR " #_i " interrupt coalescing register 1") + +#define TXBDR_REGS(_i) \ + REG(ENETC_BDR(TX, (_i), ENETC_TBMR), "TX BDR " #_i " mode register"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBSR), "TX BDR " #_i " status register"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBBAR0), "TX BDR " #_i " base address register 0"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBBAR1), "TX BDR " #_i " base address register 1"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBPIR), "TX BDR " #_i " producer index register"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBCIR), "TX BDR " #_i " consumer index register"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBLENR), "TX BDR " #_i " length register"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBIER), "TX BDR " #_i " interrupt enable register"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBICR0), "TX BDR " #_i " interrupt coalescing register 0"), \ + REG(ENETC_BDR(TX, (_i), ENETC_TBICR1), "TX BDR " #_i " interrupt coalescing register 1") + +static const struct enetc_register known_enetc_regs[] = { + REG(ENETC_SIMR, "SI mode register"), + REG(ENETC_SIPMAR0, "SI primary MAC address register 0"), + REG(ENETC_SIPMAR1, "SI primary MAC address register 1"), + REG(ENETC_SICBDRMR, "SI control BDR mode register"), + REG(ENETC_SICBDRSR, "SI control BDR status register"), + REG(ENETC_SICBDRBAR0, "SI control BDR base address register 0"), + REG(ENETC_SICBDRBAR1, "SI control BDR base address register 1"), + REG(ENETC_SICBDRPIR, "SI control BDR producer index register"), + REG(ENETC_SICBDRCIR, "SI control BDR consumer index register"), + REG(ENETC_SICBDRLENR, "SI control BDR length register"), + REG(ENETC_SICAPR0, "SI capability register 0"), + REG(ENETC_SICAPR1, "SI capability register 1"), + REG(ENETC_SIUEFDCR, "SI uncorrectable error frame drop count register"), + + TXBDR_REGS(0), TXBDR_REGS(1), TXBDR_REGS(2), TXBDR_REGS(3), + TXBDR_REGS(4), TXBDR_REGS(5), TXBDR_REGS(6), TXBDR_REGS(7), + TXBDR_REGS(8), TXBDR_REGS(9), TXBDR_REGS(10), TXBDR_REGS(11), + TXBDR_REGS(12), TXBDR_REGS(13), TXBDR_REGS(14), TXBDR_REGS(15), + + RXBDR_REGS(0), RXBDR_REGS(1), RXBDR_REGS(2), RXBDR_REGS(3), + RXBDR_REGS(4), RXBDR_REGS(5), RXBDR_REGS(6), RXBDR_REGS(7), + RXBDR_REGS(8), RXBDR_REGS(9), RXBDR_REGS(10), RXBDR_REGS(11), + RXBDR_REGS(12), RXBDR_REGS(13), RXBDR_REGS(14), RXBDR_REGS(15), + + REG(ENETC_PMR, "Port mode register"), + REG(ENETC_PSR, "Port status register"), + REG(ENETC_PSIPMR, "Port SI promiscuous mode register"), + REG(ENETC_PSIPMAR0(0), "Port SI0 primary MAC address register 0"), + REG(ENETC_PSIPMAR1(0), "Port SI0 primary MAC address register 1"), + REG(ENETC_PTXMBAR, "Port HTA transmit memory buffer allocation register"), + REG(ENETC_PCAPR0, "Port capability register 0"), + REG(ENETC_PCAPR1, "Port capability register 1"), + REG(ENETC_PSICFGR0(0), "Port SI0 configuration register 0"), + REG(ENETC_PRFSCAPR, "Port RFS capability register"), + REG(ENETC_PTCMSDUR(0), "Port traffic class 0 maximum SDU register"), + REG_DEC(ENETC_PM0_CMD_CFG, "Port eMAC Command and Configuration Register", + decode_cmd_cfg), + REG(ENETC_PM0_MAXFRM, "Port eMAC Maximum Frame Length Register"), + REG(ENETC_PM0_IF_MODE, "Port eMAC Interface Mode Control Register"), +}; + +static void decode_known_reg(const struct enetc_register *reg, u32 val) +{ + char buf[512]; + + reg->decode(val, buf); + fprintf(stdout, "%s: 0x%x\n%s", reg->name, val, buf); +} + +static void dump_known_reg(const struct enetc_register *reg, u32 val) +{ + fprintf(stdout, "%s: 0x%x\n", reg->name, val); +} + +static void dump_unknown_reg(u32 addr, u32 val) +{ + fprintf(stdout, "Reg 0x%x: 0x%x\n", addr, val); +} + +static void dump_reg(u32 addr, u32 val) +{ + const struct enetc_register *reg; + u32 i; + + for (i = 0; i < ARRAY_SIZE(known_enetc_regs); i++) { + reg = &known_enetc_regs[i]; + if (reg->addr == addr) { + if (reg->decode) + decode_known_reg(reg, val); + else + dump_known_reg(reg, val); + return; + } + } + + dump_unknown_reg(addr, val); +} + +/* Registers are structured in an array of key/value u32 pairs. + * Compare each key to our list of known registers, or print it + * as a raw address otherwise. + */ +int fsl_enetc_dump_regs(struct ethtool_drvinfo *info __maybe_unused, + struct ethtool_regs *regs) +{ + u32 *data = (u32 *)regs->data; + u32 len = regs->len; + + if (len % 8) { + fprintf(stdout, "Expected length to be multiple of 8 bytes\n"); + return -1; + } + + while (len) { + dump_reg(data[0], data[1]); + data += 2; len -= 8; + } + + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/internal.h new/ethtool-6.1/internal.h --- old/ethtool-6.0/internal.h 2022-08-06 23:53:42.000000000 +0200 +++ new/ethtool-6.1/internal.h 2022-12-16 11:00:26.000000000 +0100 @@ -21,7 +21,7 @@ #include <unistd.h> #include <endian.h> #include <sys/ioctl.h> -#include <net/if.h> +#include <linux/if.h> #include "json_writer.h" #include "json_print.h" @@ -406,6 +406,9 @@ /* i.MX Fast Ethernet Controller */ int fec_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs); +/* Freescale/NXP ENETC Ethernet Controller */ +int fsl_enetc_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs); + /* Intel(R) Ethernet Controller I225-LM/I225-V adapter family */ int igc_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/netlink/desc-ethtool.c new/ethtool-6.1/netlink/desc-ethtool.c --- old/ethtool-6.0/netlink/desc-ethtool.c 2022-06-14 01:37:04.000000000 +0200 +++ new/ethtool-6.1/netlink/desc-ethtool.c 2022-12-19 18:20:15.000000000 +0100 @@ -77,6 +77,13 @@ NLATTR_DESC_U8(ETHTOOL_A_LINKINFO_TRANSCEIVER), }; +static const char *__linkmodes_rate_matching_names[] = { + [RATE_MATCH_NONE] = "RATE_MATCH_NONE", + [RATE_MATCH_PAUSE] = "RATE_MATCH_PAUSE", + [RATE_MATCH_CRS] = "RATE_MATCH_CRS", + [RATE_MATCH_OPEN_LOOP] = "RATE_MATCH_OPEN_LOOP", +}; + static const struct pretty_nla_desc __linkmodes_desc[] = { NLATTR_DESC_INVALID(ETHTOOL_A_LINKMODES_UNSPEC), NLATTR_DESC_NESTED(ETHTOOL_A_LINKMODES_HEADER, header), @@ -88,6 +95,8 @@ NLATTR_DESC_U8(ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG), NLATTR_DESC_U8(ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE), NLATTR_DESC_U32(ETHTOOL_A_LINKMODES_LANES), + NLATTR_DESC_U8_ENUM(ETHTOOL_A_LINKMODES_RATE_MATCHING, + linkmodes_rate_matching), }; static const struct pretty_nla_desc __linkstate_desc[] = { @@ -409,6 +418,30 @@ NLATTR_DESC_U8(ETHTOOL_A_MODULE_POWER_MODE), }; +static const char *__pse_admin_state_names[] = { + [ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN] = "ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN", + [ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED] = "ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED", + [ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED] = "ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED", +}; + +static const char *__pse_pw_d_status_names[] = { + [ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN] = "ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN", + [ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED] = "ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED", + [ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING] = "ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING", + [ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING] = "ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING", + [ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP] = "ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP", + [ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE] = "ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE", + [ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR] = "ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR", +}; + +static const struct pretty_nla_desc __pse_desc[] = { + NLATTR_DESC_INVALID(ETHTOOL_A_PSE_UNSPEC), + NLATTR_DESC_NESTED(ETHTOOL_A_PSE_HEADER, header), + NLATTR_DESC_U32_ENUM(ETHTOOL_A_PODL_PSE_ADMIN_STATE, pse_admin_state), + NLATTR_DESC_U32_ENUM(ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, pse_admin_state), + NLATTR_DESC_U32_ENUM(ETHTOOL_A_PODL_PSE_PW_D_STATUS, pse_pw_d_status), +}; + const struct pretty_nlmsg_desc ethnl_umsg_desc[] = { NLMSG_DESC_INVALID(ETHTOOL_MSG_USER_NONE), NLMSG_DESC(ETHTOOL_MSG_STRSET_GET, strset), @@ -446,6 +479,8 @@ NLMSG_DESC(ETHTOOL_MSG_PHC_VCLOCKS_GET, phc_vclocks), NLMSG_DESC(ETHTOOL_MSG_MODULE_GET, module), NLMSG_DESC(ETHTOOL_MSG_MODULE_SET, module), + NLMSG_DESC(ETHTOOL_MSG_PSE_GET, pse), + NLMSG_DESC(ETHTOOL_MSG_PSE_SET, pse), }; const unsigned int ethnl_umsg_n_desc = ARRAY_SIZE(ethnl_umsg_desc); @@ -488,6 +523,7 @@ NLMSG_DESC(ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY, phc_vclocks), NLMSG_DESC(ETHTOOL_MSG_MODULE_GET_REPLY, module), NLMSG_DESC(ETHTOOL_MSG_MODULE_NTF, module), + NLMSG_DESC(ETHTOOL_MSG_PSE_GET_REPLY, pse), }; const unsigned int ethnl_kmsg_n_desc = ARRAY_SIZE(ethnl_kmsg_desc); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/netlink/fec.c new/ethtool-6.1/netlink/fec.c --- old/ethtool-6.0/netlink/fec.c 2022-06-14 01:30:05.000000000 +0200 +++ new/ethtool-6.1/netlink/fec.c 2022-12-16 11:00:26.000000000 +0100 @@ -9,6 +9,7 @@ #include <ctype.h> #include <inttypes.h> #include <string.h> +#include <strings.h> #include <stdio.h> #include "../internal.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/netlink/rings.c new/ethtool-6.1/netlink/rings.c --- old/ethtool-6.0/netlink/rings.c 2022-06-14 01:30:05.000000000 +0200 +++ new/ethtool-6.1/netlink/rings.c 2022-12-04 17:51:19.000000000 +0100 @@ -20,6 +20,7 @@ const struct nlattr *tb[ETHTOOL_A_RINGS_MAX + 1] = {}; DECLARE_ATTR_TB_INFO(tb); struct nl_context *nlctx = data; + unsigned char tcp_hds; bool silent; int err_ret; int ret; @@ -50,6 +51,24 @@ show_u32(tb[ETHTOOL_A_RINGS_CQE_SIZE], "CQE Size:\t\t"); show_bool("tx-push", "TX Push:\t%s\n", tb[ETHTOOL_A_RINGS_TX_PUSH]); + tcp_hds = tb[ETHTOOL_A_RINGS_TCP_DATA_SPLIT] ? + mnl_attr_get_u8(tb[ETHTOOL_A_RINGS_TCP_DATA_SPLIT]) : 0; + printf("TCP data split:\t"); + switch (tcp_hds) { + case ETHTOOL_TCP_DATA_SPLIT_UNKNOWN: + printf("n/a\n"); + break; + case ETHTOOL_TCP_DATA_SPLIT_DISABLED: + printf("off\n"); + break; + case ETHTOOL_TCP_DATA_SPLIT_ENABLED: + printf("on\n"); + break; + default: + printf("unknown(%d)\n", tcp_hds); + break; + } + return MNL_CB_OK; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/netlink/settings.c new/ethtool-6.1/netlink/settings.c --- old/ethtool-6.0/netlink/settings.c 2022-10-10 18:27:16.000000000 +0200 +++ new/ethtool-6.1/netlink/settings.c 2022-12-19 18:00:47.000000000 +0100 @@ -164,6 +164,7 @@ [ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT] = __REAL(400000), [ETHTOOL_LINK_MODE_100baseFX_Half_BIT] = __HALF_DUPLEX(100), [ETHTOOL_LINK_MODE_100baseFX_Full_BIT] = __REAL(100), + [ETHTOOL_LINK_MODE_10baseT1L_Full_BIT] = __REAL(10), }; const unsigned int link_modes_count = ARRAY_SIZE(link_modes); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/uapi/linux/ethtool.h new/ethtool-6.1/uapi/linux/ethtool.h --- old/ethtool-6.0/uapi/linux/ethtool.h 2022-10-10 18:32:21.000000000 +0200 +++ new/ethtool-6.1/uapi/linux/ethtool.h 2022-12-19 18:00:47.000000000 +0100 @@ -735,6 +735,51 @@ }; /** + * enum ethtool_podl_pse_admin_state - operational state of the PoDL PSE + * functions. IEEE 802.3-2018 30.15.1.1.2 aPoDLPSEAdminState + * @ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN: state of PoDL PSE functions are + * unknown + * @ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED: PoDL PSE functions are disabled + * @ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED: PoDL PSE functions are enabled + */ +enum ethtool_podl_pse_admin_state { + ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1, + ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED, + ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED, +}; + +/** + * enum ethtool_podl_pse_pw_d_status - power detection status of the PoDL PSE. + * IEEE 802.3-2018 30.15.1.1.3 aPoDLPSEPowerDetectionStatus: + * @ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN: PoDL PSE + * @ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED: "The enumeration âdisabledâ is + * asserted true when the PoDL PSE state diagram variable mr_pse_enable is + * false" + * @ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING: "The enumeration âsearchingâ is + * asserted true when either of the PSE state diagram variables + * pi_detecting or pi_classifying is true." + * @ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING: "The enumeration âdeliveringPowerâ + * is asserted true when the PoDL PSE state diagram variable pi_powered is + * true." + * @ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP: "The enumeration âsleepâ is asserted + * true when the PoDL PSE state diagram variable pi_sleeping is true." + * @ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE: "The enumeration âidleâ is asserted true + * when the logical combination of the PoDL PSE state diagram variables + * pi_prebiased*!pi_sleeping is true." + * @ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR: "The enumeration âerrorâ is asserted + * true when the PoDL PSE state diagram variable overload_held is true." + */ +enum ethtool_podl_pse_pw_d_status { + ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1, + ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED, + ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING, + ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING, + ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP, + ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE, + ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR, +}; + +/** * struct ethtool_gstrings - string set for data tagging * @cmd: Command number = %ETHTOOL_GSTRINGS * @string_set: String set ID; one of &enum ethtool_stringset @@ -1838,6 +1883,20 @@ #define MASTER_SLAVE_STATE_SLAVE 3 #define MASTER_SLAVE_STATE_ERR 4 +/* These are used to throttle the rate of data on the phy interface when the + * native speed of the interface is higher than the link speed. These should + * not be used for phy interfaces which natively support multiple speeds (e.g. + * MII or SGMII). + */ +/* No rate matching performed. */ +#define RATE_MATCH_NONE 0 +/* The phy sends pause frames to throttle the MAC. */ +#define RATE_MATCH_PAUSE 1 +/* The phy asserts CRS to prevent the MAC from transmitting. */ +#define RATE_MATCH_CRS 2 +/* The MAC is programmed with a sufficiently-large IPG. */ +#define RATE_MATCH_OPEN_LOOP 3 + /* Which connector port. */ #define PORT_TP 0x00 #define PORT_AUI 0x01 @@ -2031,8 +2090,8 @@ * reported consistently by PHYLIB. Read-only. * @master_slave_cfg: Master/slave port mode. * @master_slave_state: Master/slave port state. + * @rate_matching: Rate adaptation performed by the PHY * @reserved: Reserved for future use; see the note on reserved space. - * @reserved1: Reserved for future use; see the note on reserved space. * @link_mode_masks: Variable length bitmaps. * * If autonegotiation is disabled, the speed and @duplex represent the @@ -2083,7 +2142,7 @@ __u8 transceiver; __u8 master_slave_cfg; __u8 master_slave_state; - __u8 reserved1[1]; + __u8 rate_matching; __u32 reserved[7]; __u32 link_mode_masks[]; /* layout of link_mode_masks fields: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/uapi/linux/ethtool_netlink.h new/ethtool-6.1/uapi/linux/ethtool_netlink.h --- old/ethtool-6.0/uapi/linux/ethtool_netlink.h 2022-10-10 18:32:21.000000000 +0200 +++ new/ethtool-6.1/uapi/linux/ethtool_netlink.h 2022-12-19 18:00:47.000000000 +0100 @@ -49,6 +49,8 @@ ETHTOOL_MSG_PHC_VCLOCKS_GET, ETHTOOL_MSG_MODULE_GET, ETHTOOL_MSG_MODULE_SET, + ETHTOOL_MSG_PSE_GET, + ETHTOOL_MSG_PSE_SET, /* add new constants above here */ __ETHTOOL_MSG_USER_CNT, @@ -94,6 +96,7 @@ ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY, ETHTOOL_MSG_MODULE_GET_REPLY, ETHTOOL_MSG_MODULE_NTF, + ETHTOOL_MSG_PSE_GET_REPLY, /* add new constants above here */ __ETHTOOL_MSG_KERNEL_CNT, @@ -242,6 +245,7 @@ ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */ ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */ ETHTOOL_A_LINKMODES_LANES, /* u32 */ + ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */ /* add new constants above here */ __ETHTOOL_A_LINKMODES_CNT, @@ -862,6 +866,19 @@ ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1) }; +/* Power Sourcing Equipment */ +enum { + ETHTOOL_A_PSE_UNSPEC, + ETHTOOL_A_PSE_HEADER, /* nest - _A_HEADER_* */ + ETHTOOL_A_PODL_PSE_ADMIN_STATE, /* u32 */ + ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, /* u32 */ + ETHTOOL_A_PODL_PSE_PW_D_STATUS, /* u32 */ + + /* add new constants above here */ + __ETHTOOL_A_PSE_CNT, + ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1) +}; + /* generic netlink info */ #define ETHTOOL_GENL_NAME "ethtool" #define ETHTOOL_GENL_VERSION 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/uapi/linux/if_link.h new/ethtool-6.1/uapi/linux/if_link.h --- old/ethtool-6.0/uapi/linux/if_link.h 2022-10-10 18:32:21.000000000 +0200 +++ new/ethtool-6.1/uapi/linux/if_link.h 2022-12-19 18:00:47.000000000 +0100 @@ -370,6 +370,7 @@ IFLA_GRO_MAX_SIZE, IFLA_TSO_MAX_SIZE, IFLA_TSO_MAX_SEGS, + IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */ __IFLA_MAX }; @@ -692,6 +693,7 @@ IFLA_XFRM_UNSPEC, IFLA_XFRM_LINK, IFLA_XFRM_IF_ID, + IFLA_XFRM_COLLECT_METADATA, __IFLA_XFRM_MAX }; @@ -1372,4 +1374,14 @@ #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) +/* DSA section */ + +enum { + IFLA_DSA_UNSPEC, + IFLA_DSA_MASTER, + __IFLA_DSA_MAX, +}; + +#define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1) + #endif /* _LINUX_IF_LINK_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-6.0/uapi/linux/netlink.h new/ethtool-6.1/uapi/linux/netlink.h --- old/ethtool-6.0/uapi/linux/netlink.h 2022-10-10 18:32:21.000000000 +0200 +++ new/ethtool-6.1/uapi/linux/netlink.h 2022-12-16 10:49:20.000000000 +0100 @@ -20,7 +20,7 @@ #define NETLINK_CONNECTOR 11 #define NETLINK_NETFILTER 12 /* netfilter subsystem */ #define NETLINK_IP6_FW 13 -#define NETLINK_DNRTMSG 14 /* DECnet routing messages */ +#define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */ #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */ #define NETLINK_GENERIC 16 /* leave room for NETLINK_DM (DM Events) */ @@ -41,12 +41,20 @@ __u32 nl_groups; /* multicast groups mask */ }; +/** + * struct nlmsghdr - fixed format metadata header of Netlink messages + * @nlmsg_len: Length of message including header + * @nlmsg_type: Message content type + * @nlmsg_flags: Additional flags + * @nlmsg_seq: Sequence number + * @nlmsg_pid: Sending process port ID + */ struct nlmsghdr { - __u32 nlmsg_len; /* Length of message including header */ - __u16 nlmsg_type; /* Message content */ - __u16 nlmsg_flags; /* Additional flags */ - __u32 nlmsg_seq; /* Sequence number */ - __u32 nlmsg_pid; /* Sending process port ID */ + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; }; /* Flags values */ @@ -54,7 +62,7 @@ #define NLM_F_REQUEST 0x01 /* It is request message. */ #define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */ #define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */ -#define NLM_F_ECHO 0x08 /* Echo this request */ +#define NLM_F_ECHO 0x08 /* Receive resulting notifications */ #define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */ #define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */ @@ -132,6 +140,10 @@ * be used - in the success case - to identify a created * object or operation or similar (binary) * @NLMSGERR_ATTR_POLICY: policy for a rejected attribute + * @NLMSGERR_ATTR_MISS_TYPE: type of a missing required attribute, + * %NLMSGERR_ATTR_MISS_NEST will not be present if the attribute was + * missing at the message level + * @NLMSGERR_ATTR_MISS_NEST: offset of the nest where attribute was missing * @__NLMSGERR_ATTR_MAX: number of attributes * @NLMSGERR_ATTR_MAX: highest attribute number */ @@ -141,6 +153,8 @@ NLMSGERR_ATTR_OFFS, NLMSGERR_ATTR_COOKIE, NLMSGERR_ATTR_POLICY, + NLMSGERR_ATTR_MISS_TYPE, + NLMSGERR_ATTR_MISS_NEST, __NLMSGERR_ATTR_MAX, NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1 @@ -333,6 +347,9 @@ * bitfield32 type (U32) * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64) * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment + * + * @__NL_POLICY_TYPE_ATTR_MAX: number of attributes + * @NL_POLICY_TYPE_ATTR_MAX: highest attribute number */ enum netlink_policy_type_attr { NL_POLICY_TYPE_ATTR_UNSPEC,