kernel-netlink: Enable UDP GRO
This enables GRO offload for inbound ESP-in-UDP packets if the esp4|6_offload modules are loaded. Note that inbound ESP or ESP-in-UDP packets won't be visible on layer 3 in Netfilter or tcpdump.
This commit is contained in:
@@ -29,6 +29,7 @@ struct udphdr {
|
|||||||
/* UDP socket options */
|
/* UDP socket options */
|
||||||
#define UDP_CORK 1 /* Never send partially complete segments */
|
#define UDP_CORK 1 /* Never send partially complete segments */
|
||||||
#define UDP_ENCAP 100 /* Set the socket to accept encapsulated packets */
|
#define UDP_ENCAP 100 /* Set the socket to accept encapsulated packets */
|
||||||
|
#define UDP_GRO 104 /* This socket can receive UDP GRO packets */
|
||||||
|
|
||||||
/* UDP encapsulation types */
|
/* UDP encapsulation types */
|
||||||
#define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
|
#define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */
|
||||||
|
|||||||
@@ -3884,6 +3884,12 @@ METHOD(kernel_ipsec_t, enable_udp_decap, bool,
|
|||||||
DBG1(DBG_KNL, "unable to set UDP_ENCAP: %s", strerror(errno));
|
DBG1(DBG_KNL, "unable to set UDP_ENCAP: %s", strerror(errno));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
type = 1;
|
||||||
|
if (setsockopt(fd, SOL_UDP, UDP_GRO, &type, sizeof(type)) < 0)
|
||||||
|
{
|
||||||
|
DBG1(DBG_KNL, "unable to set UDP_GRO: %s", strerror(errno));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user