IPVS: skb defrag in L7 helpers
L7 helpers like sip needs skb defrag since L7 data can be fragmented. This patch requires "IPVS Break ports-2 into src_port and dst_port" patch Signed-off-by: Hans Schillstrom <hans.schillstrom@ericsson.com> Acked-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
ce144f249f
commit
3716522653
@ -71,6 +71,7 @@ ip_vs_sip_fill_param(struct ip_vs_conn_param *p, struct sk_buff *skb)
|
|||||||
struct ip_vs_iphdr iph;
|
struct ip_vs_iphdr iph;
|
||||||
unsigned int dataoff, datalen, matchoff, matchlen;
|
unsigned int dataoff, datalen, matchoff, matchlen;
|
||||||
const char *dptr;
|
const char *dptr;
|
||||||
|
int retc;
|
||||||
|
|
||||||
ip_vs_fill_iphdr(p->af, skb_network_header(skb), &iph);
|
ip_vs_fill_iphdr(p->af, skb_network_header(skb), &iph);
|
||||||
|
|
||||||
@ -83,6 +84,8 @@ ip_vs_sip_fill_param(struct ip_vs_conn_param *p, struct sk_buff *skb)
|
|||||||
if (dataoff >= skb->len)
|
if (dataoff >= skb->len)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
if ((retc=skb_linearize(skb)) < 0)
|
||||||
|
return retc;
|
||||||
dptr = skb->data + dataoff;
|
dptr = skb->data + dataoff;
|
||||||
datalen = skb->len - dataoff;
|
datalen = skb->len - dataoff;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user