mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
commit
e2a7c34fb2
199 changed files with 1218 additions and 655 deletions
|
|
@ -1337,6 +1337,7 @@ int ovs_execute_actions(struct datapath *dp, struct sk_buff *skb,
|
|||
goto out;
|
||||
}
|
||||
|
||||
OVS_CB(skb)->acts_origlen = acts->orig_len;
|
||||
err = do_execute_actions(dp, skb, key,
|
||||
acts->actions, acts->actions_len);
|
||||
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ static int queue_gso_packets(struct datapath *dp, struct sk_buff *skb,
|
|||
}
|
||||
|
||||
static size_t upcall_msg_size(const struct dp_upcall_info *upcall_info,
|
||||
unsigned int hdrlen)
|
||||
unsigned int hdrlen, int actions_attrlen)
|
||||
{
|
||||
size_t size = NLMSG_ALIGN(sizeof(struct ovs_header))
|
||||
+ nla_total_size(hdrlen) /* OVS_PACKET_ATTR_PACKET */
|
||||
|
|
@ -384,7 +384,7 @@ static size_t upcall_msg_size(const struct dp_upcall_info *upcall_info,
|
|||
|
||||
/* OVS_PACKET_ATTR_ACTIONS */
|
||||
if (upcall_info->actions_len)
|
||||
size += nla_total_size(upcall_info->actions_len);
|
||||
size += nla_total_size(actions_attrlen);
|
||||
|
||||
/* OVS_PACKET_ATTR_MRU */
|
||||
if (upcall_info->mru)
|
||||
|
|
@ -451,7 +451,8 @@ static int queue_userspace_packet(struct datapath *dp, struct sk_buff *skb,
|
|||
else
|
||||
hlen = skb->len;
|
||||
|
||||
len = upcall_msg_size(upcall_info, hlen - cutlen);
|
||||
len = upcall_msg_size(upcall_info, hlen - cutlen,
|
||||
OVS_CB(skb)->acts_origlen);
|
||||
user_skb = genlmsg_new(len, GFP_ATOMIC);
|
||||
if (!user_skb) {
|
||||
err = -ENOMEM;
|
||||
|
|
|
|||
|
|
@ -99,11 +99,13 @@ struct datapath {
|
|||
* when a packet is received by OVS.
|
||||
* @mru: The maximum received fragement size; 0 if the packet is not
|
||||
* fragmented.
|
||||
* @acts_origlen: The netlink size of the flow actions applied to this skb.
|
||||
* @cutlen: The number of bytes from the packet end to be removed.
|
||||
*/
|
||||
struct ovs_skb_cb {
|
||||
struct vport *input_vport;
|
||||
u16 mru;
|
||||
u16 acts_origlen;
|
||||
u32 cutlen;
|
||||
};
|
||||
#define OVS_CB(skb) ((struct ovs_skb_cb *)(skb)->cb)
|
||||
|
|
|
|||
Loading…
Reference in a new issue