1. 11 Jun, 2014 14 commits
    • Alexei Starovoitov's avatar
      net: filter: cleanup A/X name usage · e430f34e
      Alexei Starovoitov authored
      The macro 'A' used in internal BPF interpreter:
       #define A regs[insn->a_reg]
      was easily confused with the name of classic BPF register 'A', since
      'A' would mean two different things depending on context.
      
      This patch is trying to clean up the naming and clarify its usage in the
      following way:
      
      - A and X are names of two classic BPF registers
      
      - BPF_REG_A denotes internal BPF register R0 used to map classic register A
        in internal BPF programs generated from classic
      
      - BPF_REG_X denotes internal BPF register R7 used to map classic register X
        in internal BPF programs generated from classic
      
      - internal BPF instruction format:
      struct sock_filter_int {
              __u8    code;           /* opcode */
              __u8    dst_reg:4;      /* dest register */
              __u8    src_reg:4;      /* source register */
              __s16   off;            /* signed offset */
              __s32   imm;            /* signed immediate constant */
      };
      
      - BPF_X/BPF_K is 1 bit used to encode source operand of instruction
      In classic:
        BPF_X - means use register X as source operand
        BPF_K - means use 32-bit immediate as source operand
      In internal:
        BPF_X - means use 'src_reg' register as source operand
        BPF_K - means use 32-bit immediate as source operand
      Suggested-by: default avatarChema Gonzalez <chema@google.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Acked-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Acked-by: default avatarChema Gonzalez <chema@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e430f34e
    • David S. Miller's avatar
      Merge branch 'bridge_multicast_exports' · 7b0dcbd8
      David S. Miller authored
      Linus Lüssing says:
      
      ====================
      bridge: multicast snooping patches / exports
      
      The first patch is simply a cosmetic patch. So far I (and maybe others
      too?) have been regularly confusing these two structs, therefore I'd
      suggest renaming them and therefore making the follow-up patches easier
      to understand and nicer to fit in.
      
      The second patch fixes a minor issue, but probably not worth for stable.
      
      On the other hand the first two patches are also preparations for the
      third and fourth patch:
      
      These two patches are exporting functionality needed to marry the bridge
      multicast snooping with the batman-adv multicast optimizations recently
      added for the 3.15 kernel, allowing to use these optimzations in common
      setups having a bridge on top of e.g. bat0, too. So far these bridged
      setups would fall back to simple flooding through the batman-adv mesh
      network for any multicast packet entering bat0.
      
      More information about the batman-adv multicast optimizations currently
      implemented can be found here:
      
      http://www.open-mesh.org/projects/batman-adv/wiki/Basic-multicast-optimizations
      
      The integration on the batman-adv side could afterwards look like this,
      for instance:
      
      http://git.open-mesh.org/batman-adv.git/commitdiff/576b59dd3e34737c702e548b21fa72059262f796?hp=f95ce7131746c65fbcdffcf2089cab59e2c2f7ac
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7b0dcbd8
    • Linus Lüssing's avatar
      bridge: memorize and export selected IGMP/MLD querier port · 2cd41431
      Linus Lüssing authored
      Adding bridge support to the batman-adv multicast optimization requires
      batman-adv knowing about the existence of bridged-in IGMP/MLD queriers
      to be able to reliably serve any multicast listener behind this same
      bridge.
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@web.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2cd41431
    • Linus Lüssing's avatar
      bridge: add export of multicast database adjacent to net_dev · 07f8ac4a
      Linus Lüssing authored
      With this new, exported function br_multicast_list_adjacent(net_dev) a
      list of IPv4/6 addresses is returned. This list contains all multicast
      addresses sensed by the bridge multicast snooping feature on all bridge
      ports of the bridge interface of net_dev, excluding addresses from the
      specified net_device itself.
      
      Adding bridge support to the batman-adv multicast optimization requires
      batman-adv knowing about the existence of bridged-in multicast
      listeners to be able to reliably serve them with multicast packets.
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@web.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      07f8ac4a
    • Linus Lüssing's avatar
      bridge: adhere to querier election mechanism specified by RFCs · dc4eb53a
      Linus Lüssing authored
      MLDv1 (RFC2710 section 6), MLDv2 (RFC3810 section 7.6.2), IGMPv2
      (RFC2236 section 3) and IGMPv3 (RFC3376 section 6.6.2) specify that the
      querier with lowest source address shall become the selected
      querier.
      
      So far the bridge stopped its querier as soon as it heard another
      querier regardless of its source address. This results in the "wrong"
      querier potentially becoming the active querier or a potential,
      unnecessary querying delay.
      
      With this patch the bridge memorizes the source address of the currently
      selected querier and ignores queries from queriers with a higher source
      address than the currently selected one. This slight optimization is
      supposed to make it more RFC compliant (but is rather uncritical and
      therefore probably not necessary to be queued for stable kernels).
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@web.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc4eb53a
    • Linus Lüssing's avatar
      bridge: rename struct bridge_mcast_query/querier · 90010b36
      Linus Lüssing authored
      The current naming of these two structs is very random, in that
      reversing their naming would not make any semantical difference.
      
      This patch tries to make the naming less confusing by giving them a more
      specific, distinguishable naming.
      
      This is also useful for the upcoming patches reintroducing the
      "struct bridge_mcast_querier" but for storing information about the
      selected querier (no matter if our own or a foreign querier).
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@web.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      90010b36
    • David S. Miller's avatar
      Merge branch 'cxgb4' · c4d4c255
      David S. Miller authored
      Hariprasad Shenai says:
      
      ====================
      Adds support for CIQ and other misc. fixes for rdma/cxgb4
      
      This patch series adds support to allocate and use IQs specifically for
      indirect interrupts, adds fixes to align ISS for iWARP connections & fixes
      related to tcp snd/rvd window for Chelsio T4/T5 adapters on iw_cxgb4.
      Also changes Interrupt Holdoff Packet Count threshold of response queues for
      cxgb4 driver.
      
      The patches series is created against 'net-next' tree.
      And includes patches on cxgb4 and iw_cxgb4 driver.
      
      Since this patch-series contains cxgb4 and iw_cxgb4 patches, we would like to
      request this patch series to get merged via David Miller's 'net-next' tree.
      
      We have included all the maintainers of respective drivers. Kindly review the
      change and let us know in case of any review comments.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c4d4c255
    • Hariprasad Shenai's avatar
      cxgb4: Change default Interrupt Holdoff Packet Count Threshold · c887ad0e
      Hariprasad Shenai authored
      Based on original work by Casey Leedom <leedom@chelsio.com>
      Signed-off-by: default avatarCasey Leedom <leedom@chelsio.com>
      Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c887ad0e
    • Hariprasad Shenai's avatar
      iw_cxgb4: don't truncate the recv window size · b408ff28
      Hariprasad Shenai authored
      Fixed a bug that shows up with recv window sizes that exceed the size of
      the RCV_BUFSIZ field in opt0 (>= 1024K).  If the recv window exceeds
      this, then we specify the max possible in opt0, add add the rest in via
      a RX_DATA_ACK credits.
      Signed-off-by: default avatarSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b408ff28
    • Hariprasad Shenai's avatar
      iw_cxgb4: Choose appropriate hw mtu index and ISS for iWARP connections · 92e7ae71
      Hariprasad Shenai authored
      Select the appropriate hw mtu index and initial sequence number to optimize
      hw memory performance.
      
      Add new cxgb4_best_aligned_mtu() which allows callers to provide enough
      information to be used to [possibly] select an MTU which will result in the
      TCP Data Segment Size (AKA Maximum Segment Size) to be an aligned value.
      
      If an RTR message exhange is required, then align the ISS to 8B - 1 + 4, so
      that after the SYN the send seqno will align on a 4B boundary. The RTR
      message exchange will leave the send seqno aligned on an 8B boundary.
      If an RTR is not required, then align the ISS to 8B - 1.  The goal is
      to have the send seqno be 8B aligned when we send the first FPDU.
      
      Based on original work by Casey Leedom <leeedom@chelsio.com> and
      Steve Wise <swise@opengridcomputing.com>
      Signed-off-by: default avatarCasey Leedom <leedom@chelsio.com>
      Signed-off-by: default avatarSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      92e7ae71
    • Hariprasad Shenai's avatar
      iw_cxgb4: Allocate and use IQs specifically for indirect interrupts · cf38be6d
      Hariprasad Shenai authored
      Currently indirect interrupts for RDMA CQs funnel through the LLD's RDMA
      RXQs, which also handle direct interrupts for offload CPLs during RDMA
      connection setup/teardown.  The intended T4 usage model, however, is to
      have indirect interrupts flow through dedicated IQs. IE not to mix
      indirect interrupts with CPL messages in an IQ.  This patch adds the
      concept of RDMA concentrator IQs, or CIQs, setup and maintained by the
      LLD and exported to iw_cxgb4 for use when creating CQs. RDMA CPLs will
      flow through the LLD's RDMA RXQs, and CQ interrupts flow through the
      CIQs.
      
      Design:
      
      cxgb4 creates and exports an array of CIQs for the RDMA ULD.  These IQs
      are sized according to the max available CQs available at adapter init.
      In addition, these IQs don't need FL buffers since they only service
      indirect interrupts.  One CIQ is setup per RX channel similar to the
      RDMA RXQs.
      
      iw_cxgb4 will utilize these CIQs based on the vector value passed into
      create_cq().  The num_comp_vectors advertised by iw_cxgb4 will be the
      number of CIQs configured, and thus the vector value will be the index
      into the array of CIQs.
      
      Based on original work by Steve Wise <swise@opengridcomputing.com>
      Signed-off-by: default avatarSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf38be6d
    • stephen hemminger's avatar
      gre: allow changing mac address when device is up · f8c1b7ce
      stephen hemminger authored
      There is no need to require forcing device down on a Ethernet GRE (gretap)
      tunnel to change the MAC address.
      Signed-off-by: default avatarStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f8c1b7ce
    • Octavian Purdila's avatar
      tcp: add gfp parameter to tcp_fragment · 6cc55e09
      Octavian Purdila authored
      tcp_fragment can be called from process context (from tso_fragment).
      Add a new gfp parameter to allow it to preserve atomic memory if
      possible.
      Signed-off-by: default avatarOctavian Purdila <octavian.purdila@intel.com>
      Reviewed-by: default avatarChristoph Paasch <christoph.paasch@uclouvain.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6cc55e09
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next · 27fa589d
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      Intel Wired LAN Driver Updates 2014-06-09
      
      This series contains more updates to i40e and i40evf.
      
      Shannon adds checks for error status bits on the admin event queue and
      provides notification if seen.  Cleans up unused variable and memory
      allocation which was used earlier in driver development and is no longer
      needed.  Also fixes the driver to not complain about removing
      non-existent MAC addresses.  Bumps the driver versions for both i40e
      and i40evf.
      
      Catherine fixes a function header comment to make sure the comment correctly
      reflects the function name.
      
      Mitch adds code to allow for additional VSIs since the number of VSIs that
      the firmware reports to us is a guaranteed minimum, not an absolute
      maximum.  The hardware actually supports for more than the reported value,
      which we often need.  Implements anti-spoofing for VFs for both MAC
      addresses and VLANs, as well as enable this feature by default for all VFs.
      
      Anjali changes the interrupt distribution policy to change the way
      resources for special features are handled.  Fixes the driver to not fall
      back to one queue if the only feature enabled is ATR, since FD_SB
      and FD_ATR need to be checked independently in order to decide if we
      will support multiple queue or not.  Allows the RSS table entry range
      and GPS to be any number, not necessarily a power of 2 because hardware
      does not restrict us to use a power of 2 GPS in the case of RSS as long as
      we are not sharing the RSS table with another VSI (VMDq).
      
      Frank modifies the driver to keep SR-IOV enabled in the case that RSS,
      VMFq, FD_SB and DCB are disabled so that SR-IOV does not get turned off
      unnecessarily.
      
      Jesse fixes a bug in receive checksum where the driver was not marking
      packets with bad checksums correctly, especially IPv6 packets with a bad
      checksum.  To do this correctly, we need a define that may be set by
      hardware in rare cases.
      
      Greg fixes the driver to delete all the old and stale MAC filters for the
      VF VSI when the host administrator changes the VF MAC address from under
      its feet.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      27fa589d
  2. 09 Jun, 2014 13 commits
  3. 08 Jun, 2014 13 commits