Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17b682a0 authored by Rich Lane's avatar Rich Lane Committed by Jesse Gross
Browse files

openvswitch: Fix parsing invalid LLC/SNAP ethertypes



Before this patch, if an LLC/SNAP packet with OUI 00:00:00 had an
ethertype less than 1536 the flow key given to userspace in the upcall
would contain the invalid ethertype (for example, 3). If userspace
attempted to insert a kernel flow for this key it would be rejected
by ovs_flow_from_nlattrs.

This patch allows OVS to pass the OFTest pktact.DirectBadLlcPackets.

Signed-off-by: default avatarRich Lane <rlane@bigswitch.com>
Signed-off-by: default avatarJesse Gross <jesse@nicira.com>
parent a15ff76c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -484,7 +484,11 @@ static __be16 parse_ethertype(struct sk_buff *skb)
		return htons(ETH_P_802_2);

	__skb_pull(skb, sizeof(struct llc_snap_hdr));

	if (ntohs(llc->ethertype) >= 1536)
		return llc->ethertype;

	return htons(ETH_P_802_2);
}

static int parse_icmpv6(struct sk_buff *skb, struct sw_flow_key *key,