1. Aug 12, 2021
    • Oleksij Rempel's avatar
      net: phy: nxp-tja11xx: log critical health state · e0ba6050
      Oleksij Rempel authored
      
      
      TJA1102 provides interrupt notification for the critical health states
      like overtemperature and undervoltage.
      
      The overtemperature bit is set if package temperature is beyond 155C°.
      This functionality was tested by heating the package up to 200C°
      
      The undervoltage bit is set if supply voltage drops beyond some critical
      threshold. Currently not tested.
      
      In a typical use case, both of this events should be logged and stored
      (or send to some remote system) for further investigations.
      
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0ba6050
    • David S. Miller's avatar
      Merge branch 'pktgen-imix' · 445af0d2
      David S. Miller authored
      Nick Richardson says:
      
      ====================
      pktgen: Add IMIX mode
      
      Adds internet mix (IMIX) mode to pktgen. Internet mix is
      included in many user-space network perf testing tools. It allows
      for the user to specify a distribution of discrete packet sizes to be
      generated. This type of test is common among vendors when perf testing
      their devices.
      [RFC link: https://datatracker.ietf.org/doc/html/rfc2544#section-9.1
      
      ]
      
      This allows users to get a
      more complete picture of how their device will perform in the
      real-world.
      
      This feature adds a command that allows users to specify an imix
      distribution in the following format:
        imix_weights size_1,weight_1 size_2,weight_2 ... size_n,weight_n
      
      The distribution of packets with size_i will be
      (weight_i / total_weights) where
      total_weights = weight_1 + weight_2 + ... + weight_n
      
      For example:
        imix_weights 40,7 576,4 1500,1
      
      The pkt_size "40" will account for 7 / (7 + 4 + 1) = ~58% of the total
      packets sent.
      
      This patch was tested with the following:
      1. imix_weights = 40,7 576,4 1500,1
      2. imix_weights = 0,7 576,4 1500,1
        - Packet size of 0 is resized to the minimum, 42
      3. imix_weights = 40,7 576,4 1500,1 count = 0
        - Zero count.
        - Runs until user stops pktgen.
      Invalid Configurations
      1. clone_skb = 200 imix_weights = 40,7 576,4 1500,1
          - Returns error code -524 (-ENOTSUPP) when setting imix_weights
      2. len(imix_weights) > MAX_IMIX_ENTRIES
          - Returns -7 (-E2BIG)
      
      This patch is split into three parts, each provide different aspects of
      required functionality:
        1. Parse internet mix input.
        2. Add IMIX Distribution representation.
        3. Process and output IMIX results.
      
      Changes in v2:
      * Remove __ prefix outside of uAPI.
      * Use seq_puts instead of seq_printf where necessary.
      * Reorder variable declaration.
      * Return -EINVAL instead of -ENOTSUPP when using IMIX with clone_skb > 0
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      445af0d2
    • Nick Richardson's avatar
      pktgen: Add output for imix results · 769afb3f
      Nick Richardson authored
      
      
      The bps for imix mode is calculated by:
      sum(imix_entry.size) / time_elapsed
      
      The actual counts of each imix_entry are displayed under the
      "Current:" section of the interface output in the following format:
      imix_size_counts: size_1,count_1 size_2,count_2 ... size_n,count_n
      
      Example (count = 200000):
      imix_weights: 256,1 859,3 205,2
      imix_size_counts: 256,32082 859,99796 205,68122
      Result: OK: 17992362(c17964678+d27684) usec, 200000 (859byte,0frags)
        11115pps 47Mb/sec (47977140bps) errors: 0
      
      Summary of changes:
      Calculate bps based on imix counters when in IMIX mode.
      Add output for IMIX counters.
      
      Signed-off-by: default avatarNick Richardson <richardsonnick@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      769afb3f
    • Nick Richardson's avatar
      pktgen: Add imix distribution bins · 90149031
      Nick Richardson authored
      
      
      In order to represent the distribution of imix packet sizes, a
      pre-computed data structure is used. It features 100 (IMIX_PRECISION)
      "bins". Contiguous ranges of these bins represent the respective
      packet size of each imix entry. This is done to avoid the overhead of
      selecting the correct imix packet size based on the corresponding weights.
      
      Example:
      imix_weights 40,7 576,4 1500,1
      total_weight = 7 + 4 + 1 = 12
      
      pkt_size 40 occurs 7/total_weight = 58% of the time
      pkt_size 576 occurs 4/total_weight = 33% of the time
      pkt_size 1500 occurs 1/total_weight = 9% of the time
      
      We generate a random number between 0-100 and select the corresponding
      packet size based on the specified weights.
      Eg. random number = 358723895 % 100 = 65
      Selects the packet size corresponding to index:65 in the pre-computed
      imix_distribution array.
      An example of the  pre-computed array is below:
      
      The imix_distribution will look like the following:
      0        ->  0 (index of imix_entry.size == 40)
      1        ->  0 (index of imix_entry.size == 40)
      2        ->  0 (index of imix_entry.size == 40)
      [...]    ->  0 (index of imix_entry.size == 40)
      57       ->  0 (index of imix_entry.size == 40)
      58       ->  1 (index of imix_entry.size == 576)
      [...]    ->  1 (index of imix_entry.size == 576)
      90       ->  1 (index of imix_entry.size == 576)
      91       ->  2 (index of imix_entry.size == 1500)
      [...]    ->  2 (index of imix_entry.size == 1500)
      99       ->  2 (index of imix_entry.size == 1500)
      
      Create and use "bin" representation of the imix distribution.
      
      Signed-off-by: default avatarNick Richardson <richardsonnick@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      90149031
    • Nick Richardson's avatar
      pktgen: Parse internet mix (imix) input · 52a62f86
      Nick Richardson authored
      
      
      Adds "imix_weights" command for specifying internet mix distribution.
      
      The command is in this format:
      "imix_weights size_1,weight_1 size_2,weight_2 ... size_n,weight_n"
      where the probability that packet size_i is picked is:
      weight_i / (weight_1 + weight_2 + .. + weight_n)
      
      The user may provide up to 100 imix entries (size_i,weight_i) in this
      command.
      
      The user specified imix entries will be displayed in the "Params"
      section of the interface output.
      
      Values for clone_skb > 0 is not supported in IMIX mode.
      
      Summary of changes:
      Add flag for enabling internet mix mode.
      Add command (imix_weights) for internet mix input.
      Return -ENOTSUPP when clone_skb > 0 in IMIX mode.
      Display imix_weights in Params.
      Create data structures to store imix entries and distribution.
      
      Signed-off-by: default avatarNick Richardson <richardsonnick@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52a62f86
    • Nikolay Aleksandrov's avatar
      net: bridge: vlan: fix global vlan option range dumping · 6c4110d9
      Nikolay Aleksandrov authored
      When global vlan options are equal sequentially we compress them in a
      range to save space and reduce processing time. In order to have the
      proper range end id we need to update range_end if the options are equal
      otherwise we get ranges with the same end vlan id as the start.
      
      Fixes: 743a53d9
      
       ("net: bridge: vlan: add support for dumping global vlan options")
      Signed-off-by: default avatarNikolay Aleksandrov <nikolay@nvidia.com>
      Link: https://lore.kernel.org/r/20210810092139.11700-1-razor@blackwall.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6c4110d9
    • Jeremy Kerr's avatar
      mctp: Specify route types, require rtm_type in RTM_*ROUTE messages · 83f0a0b7
      Jeremy Kerr authored
      
      
      This change adds a 'type' attribute to routes, which can be parsed from
      a RTM_NEWROUTE message. This will help to distinguish local vs. peer
      routes in a future change.
      
      This means userspace will need to set a correct rtm_type in RTM_NEWROUTE
      and RTM_DELROUTE messages; we currently only accept RTN_UNICAST.
      
      Signed-off-by: default avatarJeremy Kerr <jk@codeconstruct.com.au>
      Link: https://lore.kernel.org/r/20210810023834.2231088-1-jk@codeconstruct.com.au
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      83f0a0b7
    • Yufeng Mo's avatar
      net: hns3: add support for triggering reset by ethtool · ddccc5e3
      Yufeng Mo authored
      
      
      Currently, four reset types are supported for the HNS3 ethernet
      driver: IMP reset, global reset, function reset, and FLR. Only
      FLR can now be triggered by the user. To restore the device when
      an exception occurs, add support for triggering reset by ethtool.
      
      Run the "ethtool --reset DEVNAME mgmt | all | dedicated" to
      trigger the IMP | global | function reset manually.
      
      In addition, VF can only trigger function reset.
      
      Signed-off-by: default avatarYufeng Mo <moyufeng@huawei.com>
      Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
      Link: https://lore.kernel.org/r/1628602128-15640-1-git-send-email-huangguangbin2@huawei.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      ddccc5e3
    • Jakub Kicinski's avatar
      Merge branch 'bonding-cleanup-header-file-and-error-msgs' · 6e98893e
      Jakub Kicinski authored
      Jonathan Toppins says:
      
      ====================
      bonding: cleanup header file and error msgs
      
      Two small patches removing unreferenced symbols and unifying error
      messages across netlink and printk.
      ====================
      
      Link: https://lore.kernel.org/r/cover.1628650079.git.jtoppins@redhat.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6e98893e
    • Jonathan Toppins's avatar
      bonding: combine netlink and console error messages · 6569fa2d
      Jonathan Toppins authored
      
      
      There seems to be no reason to have different error messages between
      netlink and printk. It also cleans up the function slightly.
      
      Signed-off-by: default avatarJonathan Toppins <jtoppins@redhat.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6569fa2d
    • Jonathan Toppins's avatar
      bonding: remove extraneous definitions from bonding.h · 891a88f4
      Jonathan Toppins authored
      
      
      All of the symbols either only exist in bond_options.c or nowhere at
      all. These symbols were verified to not exist in the code base by
      using `git grep` and their removal was verified by compiling bonding.ko.
      
      Signed-off-by: default avatarJonathan Toppins <jtoppins@redhat.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      891a88f4
    • Mark Brown's avatar
      net: mscc: Fix non-GPL export of regmap APIs · bc8968e4
      Mark Brown authored
      
      
      The ocelot driver makes use of regmap, wrapping it with driver specific
      operations that are thin wrappers around the core regmap APIs. These are
      exported with EXPORT_SYMBOL, dropping the _GPL from the core regmap
      exports which is frowned upon. Add _GPL suffixes to at least the APIs that
      are doing register I/O.
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Acked-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Link: https://lore.kernel.org/r/20210810123748.47871-1-broonie@kernel.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      bc8968e4
  2. Aug 11, 2021