diff options
author | bz <bz@FreeBSD.org> | 2009-12-05 19:03:20 +0000 |
---|---|---|
committer | bz <bz@FreeBSD.org> | 2009-12-05 19:03:20 +0000 |
commit | dff8e5264778c2301d19ca3b066fbb038d97d38d (patch) | |
tree | 10871a6ea128b77763b89e3fb737858a8e0f92d9 /sys/netipsec | |
parent | 919b4f3b98c28cc9db8bd8b2765405a07ce8f2f1 (diff) | |
download | FreeBSD-src-dff8e5264778c2301d19ca3b066fbb038d97d38d.zip FreeBSD-src-dff8e5264778c2301d19ca3b066fbb038d97d38d.tar.gz |
MFC r199896:
Directly send data uncompressed if the packet payload size is lower than
the compression algorithm threshold.
Diffstat (limited to 'sys/netipsec')
-rw-r--r-- | sys/netipsec/xform_ipcomp.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/netipsec/xform_ipcomp.c b/sys/netipsec/xform_ipcomp.c index 4049154..93a157e 100644 --- a/sys/netipsec/xform_ipcomp.c +++ b/sys/netipsec/xform_ipcomp.c @@ -343,6 +343,17 @@ ipcomp_output( ipcompx = sav->tdb_compalgxform; IPSEC_ASSERT(ipcompx != NULL, ("null compression xform")); + /* + * Do not touch the packet in case our payload to compress + * is lower than the minimal threshold of the compression + * alogrithm. We will just send out the data uncompressed. + * See RFC 3173, 2.2. Non-Expansion Policy. + */ + if (m->m_pkthdr.len <= ipcompx->minlen) { + /* XXX-BZ V_ipcompstat.threshold++; */ + return ipsec_process_done(m, isr); + } + ralen = m->m_pkthdr.len - skip; /* Raw payload length before comp. */ hlen = IPCOMP_HLENGTH; |