History

Fixed updating of ethertype in function skb_mpls_pop

The skb_mpls_pop was not updating ethertype of an ethernet packet if the packet was originally received from a non ARPHRD_ETHER device. In the below OVS data path flow, since the device corresponding to port 7 is an l3 device (ARPHRD_NONE) the skb_mpls_pop function does not update the ethertype of the packet even though the previous push_eth action had added an ethernet header to the packet. recirc_id(0),in_port(7),eth_type(0x8847), mpls(label=12/0xfffff,tc=0/0,ttl=0/0x0,bos=1/1), actions:push_eth(src=00:00:00:00:00:00,dst=00:00:00:00:00:00), pop_mpls(eth_type=0x800),4

Martin Varghese committed 6 years ago

Commit 040b5cf1 parent b3c424e4 files · +11 −5Browse files

Showing the changes to include/linux (1 of 4 files). Show all

Unified · Split

include/linux/skbuff.h+2−1
@@ -3530,7 +3530,8 @@ int skb_vlan_pop(struct sk_buff *skb); · 3529 unmodified lines
3530int skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci);3530int skb_vlan_push(struct sk_buff *skb, __be16 vlan_proto, u16 vlan_tci);
3531int skb_mpls_push(struct sk_buff *skb, __be32 mpls_lse, __be16 mpls_proto,3531int skb_mpls_push(struct sk_buff *skb, __be32 mpls_lse, __be16 mpls_proto,
3532 int mac_len);3532 int mac_len);
3533int skb_mpls_pop(struct sk_buff *skb, __be16 next_proto, int mac_len);3533int skb_mpls_pop(struct sk_buff *skb, __be16 next_proto, int mac_len,
3534 bool ethernet);
3534int skb_mpls_update_lse(struct sk_buff *skb, __be32 mpls_lse);3535int skb_mpls_update_lse(struct sk_buff *skb, __be32 mpls_lse);
3535int skb_mpls_dec_ttl(struct sk_buff *skb);3536int skb_mpls_dec_ttl(struct sk_buff *skb);
3536struct sk_buff *pskb_extract(struct sk_buff *skb, int off, int to_copy,3537struct sk_buff *pskb_extract(struct sk_buff *skb, int off, int to_copy,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t