12 Sep, 2013

1 commit

  • In function __parse_flow_nlattrs(), we check for condition
    (type > OVS_KEY_ATTR_MAX) and if true, print an error, but we do
    not return from this function as in other checks. It seems this
    has been forgotten, as otherwise, we could access beyond the
    memory of ovs_key_lens, which is of ovs_key_lens[OVS_KEY_ATTR_MAX + 1].
    Hence, a maliciously prepared nla_type from user space could access
    beyond this upper limit.

    Introduced by 03f0d916a ("openvswitch: Mega flow implementation").

    Signed-off-by: Daniel Borkmann
    Cc: Andy Zhou
    Acked-by: Jesse Gross
    Signed-off-by: David S. Miller

    Daniel Borkmann
     

06 Sep, 2013

1 commit

  • sw_flow_key alignment was declared as " __aligned(__alignof__(long))".
    However, this breaks on the m68k architecture where long is 32 bit in
    size but 16 bit aligned by default. This aligns to the size of a long to
    ensure that we can always do comparsions in full long-sized chunks. It
    also adds an additional build check to catch any reduction in alignment.

    CC: Andy Zhou
    Reported-by: Fengguang Wu
    Reported-by: Geert Uytterhoeven
    Signed-off-by: Jesse Gross
    Signed-off-by: David S. Miller

    Jesse Gross
     

04 Sep, 2013

3 commits


01 Sep, 2013

1 commit

  • This patch adds IPv6 support to vxlan device, as the new version
    RFC already mentions it:

    http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-03

    Cc: David Stevens
    Cc: Stephen Hemminger
    Cc: David S. Miller
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Cong Wang
     

28 Aug, 2013

1 commit

  • Make sure the sw_flow_key structure and valid mask boundaries are always
    machine word aligned. Optimize the flow compare and mask operations
    using machine word size operations. This patch improves throughput on
    average by 15% when CPU is the bottleneck of forwarding packets.

    This patch is inspired by ideas and code from a patch submitted by Peter
    Klausler titled "replace memcmp() with specialized comparator".
    However, The original patch only optimizes for architectures
    support unaligned machine word access. This patch optimizes for all
    architectures.

    Signed-off-by: Andy Zhou
    Signed-off-by: Jesse Gross

    Andy Zhou
     

27 Aug, 2013

2 commits

  • Key_end is a better name describing the ending boundary than key_len.
    Rename those variables to make it less confusing.

    Signed-off-by: Andy Zhou
    Signed-off-by: Jesse Gross

    Andy Zhou
     
  • This patch adds support for rewriting SCTP src,dst ports similar to the
    functionality already available for TCP/UDP.

    Rewriting SCTP ports is expensive due to double-recalculation of the
    SCTP checksums; this is performed to ensure that packets traversing OVS
    with invalid checksums will continue to the destination with any
    checksum corruption intact.

    Reviewed-by: Simon Horman
    Signed-off-by: Joe Stringer
    Signed-off-by: Ben Pfaff
    Signed-off-by: Jesse Gross

    Joe Stringer
     

24 Aug, 2013

7 commits


20 Aug, 2013

1 commit


15 Aug, 2013

3 commits

  • It doesn't make sense to output a tunnel packet using the same
    parameters that it was received with since that will generally
    just result in the packet going back to us. As a result, userspace
    assumes that the tunnel key is cleared when transitioning through
    the switch. In the majority of cases this doesn't matter since a
    packet is either going to a tunnel port (in which the key is
    overwritten with new values) or to a non-tunnel port (in which
    case the key is ignored). However, it's theoreticaly possible that
    userspace could rely on the documented behavior, so this corrects
    it.

    Signed-off-by: Jesse Gross

    Jesse Gross
     
  • Flex array is used to allocate hash buckets which is type struct
    hlist_head, but we use `struct hlist_head *` to calculate
    array size. Since hlist_head is of size pointer it works fine.

    Following patch use correct type.

    Signed-off-by: Pravin B Shelar
    Signed-off-by: Jesse Gross

    Pravin B Shelar
     
  • git silently included an extra hunk in vport_cmd_set() during
    automatic merging. This code is unreachable so it does not actually
    introduce a problem but it is clearly incorrect.

    Signed-off-by: Jesse Gross

    Jesse Gross
     

02 Jul, 2013

1 commit

  • Openvswitch uses function from NET_IPGRE_DEMUX module.
    Add Kconfig dependency to fix following compilation errors:
    http://marc.info/?l=linux-netdev&m=137244035226634

    CC: Jesse Gross
    Reported-by: Randy Dunlap
    Signed-off-by: Pravin Shelar
    Acked-by: Randy Dunlap
    Acked-by: Jesse Gross
    Signed-off-by: David S. Miller

    Pravin B Shelar
     

24 Jun, 2013

1 commit


20 Jun, 2013

5 commits


15 Jun, 2013

8 commits


29 May, 2013

1 commit

  • So far, only net_device * could be passed along with netdevice notifier
    event. This patch provides a possibility to pass custom structure
    able to provide info that event listener needs to know.

    Signed-off-by: Jiri Pirko

    v2->v3: fix typo on simeth
    shortened dev_getter
    shortened notifier_info struct name
    v1->v2: fix notifier_call parameter in call_netdevice_notifier()
    Signed-off-by: David S. Miller

    Jiri Pirko
     

30 Apr, 2013

1 commit


25 Apr, 2013

1 commit

  • OVS locking was recently changed to have private OVS lock which
    simplified overall locking. Therefore there is no need to have
    another global genl lock to protect OVS data structures. Following
    patch uses of parallel_ops genl family for OVS. This also allows
    more granual OVS locking using ovs_mutex for protecting OVS data
    structures, which gives more concurrencey. E.g multiple genl
    operations OVS_PACKET_CMD_EXECUTE can run in parallel, etc.

    Signed-off-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Pravin B Shelar
     

23 Apr, 2013

1 commit

  • Conflicts:
    drivers/net/ethernet/emulex/benet/be_main.c
    drivers/net/ethernet/intel/igb/igb_main.c
    drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
    include/net/scm.h
    net/batman-adv/routing.c
    net/ipv4/tcp_input.c

    The e{uid,gid} --> {uid,gid} credentials fix conflicted with the
    cleanup in net-next to now pass cred structs around.

    The be2net driver had a bug fix in 'net' that overlapped with the VLAN
    interface changes by Patrick McHardy in net-next.

    An IGB conflict existed because in 'net' the build_skb() support was
    reverted, and in 'net-next' there was a comment style fix within that
    code.

    Several batman-adv conflicts were resolved by making sure that all
    calls to batadv_is_my_mac() are changed to have a new bat_priv first
    argument.

    Eric Dumazet's TS ECR fix in TCP in 'net' conflicted with the F-RTO
    rewrite in 'net-next', mostly overlapping changes.

    Thanks to Stephen Rothwell and Antonio Quartulli for help with several
    of these merge resolutions.

    Signed-off-by: David S. Miller

    David S. Miller
     

20 Apr, 2013

1 commit