* [PATCH net-next 0/2] Removal of struct esp_data
@ 2013-10-18 10:09 Mathias Krause
2013-10-18 10:09 ` [PATCH net-next 1/2] net: esp{4,6}: remove padlen from " Mathias Krause
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Mathias Krause @ 2013-10-18 10:09 UTC (permalink / raw)
To: netdev; +Cc: Mathias Krause, Steffen Klassert, Herbert Xu, David S. Miller
This series removes one level of indirection when accessing the aead
crypto algorithm in ESP transforms by simply removing struct esp_data.
This results in smaller code and less memory usage per xfrm state.
Please apply!
Mathias Krause (2):
net: esp{4,6}: remove padlen from struct esp_data
net: esp{4,6}: get rid of struct esp_data
include/net/esp.h | 10 ----------
net/ipv4/esp4.c | 49 +++++++++++++++----------------------------------
net/ipv6/esp6.c | 48 +++++++++++++++---------------------------------
3 files changed, 30 insertions(+), 77 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH net-next 1/2] net: esp{4,6}: remove padlen from struct esp_data
2013-10-18 10:09 [PATCH net-next 0/2] Removal of struct esp_data Mathias Krause
@ 2013-10-18 10:09 ` Mathias Krause
2013-10-18 10:09 ` [PATCH net-next 2/2] net: esp{4,6}: get rid of " Mathias Krause
2013-10-18 17:55 ` [PATCH net-next 0/2] Removal " David Miller
2 siblings, 0 replies; 9+ messages in thread
From: Mathias Krause @ 2013-10-18 10:09 UTC (permalink / raw)
To: netdev; +Cc: Mathias Krause, Steffen Klassert, Herbert Xu, David S. Miller
The padlen member of struct esp_data is always zero. Get rid of it.
Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
---
include/net/esp.h | 3 ---
net/ipv4/esp4.c | 9 +--------
net/ipv6/esp6.c | 9 +--------
3 files changed, 2 insertions(+), 19 deletions(-)
diff --git a/include/net/esp.h b/include/net/esp.h
index 1356dda..706b740 100644
--- a/include/net/esp.h
+++ b/include/net/esp.h
@@ -6,9 +6,6 @@
struct crypto_aead;
struct esp_data {
- /* 0..255 */
- int padlen;
-
/* Confidentiality & Integrity */
struct crypto_aead *aead;
};
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index 109ee89..8b5386a 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -154,8 +154,6 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
}
blksize = ALIGN(crypto_aead_blocksize(aead), 4);
clen = ALIGN(skb->len + 2 + tfclen, blksize);
- if (esp->padlen)
- clen = ALIGN(clen, esp->padlen);
plen = clen - skb->len - tfclen;
err = skb_cow_data(skb, tfclen + plen + alen, &trailer);
@@ -461,7 +459,6 @@ static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
{
struct esp_data *esp = x->data;
u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
- u32 align = max_t(u32, blksize, esp->padlen);
unsigned int net_adj;
switch (x->props.mode) {
@@ -477,7 +474,7 @@ static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
}
return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
- net_adj) & ~(align - 1)) + net_adj - 2;
+ net_adj) & ~(blksize - 1)) + net_adj - 2;
}
static void esp4_err(struct sk_buff *skb, u32 info)
@@ -659,8 +656,6 @@ static int esp_init_state(struct xfrm_state *x)
aead = esp->aead;
- esp->padlen = 0;
-
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
if (x->props.mode == XFRM_MODE_TUNNEL)
@@ -683,8 +678,6 @@ static int esp_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- if (esp->padlen)
- align = max_t(u32, align, esp->padlen);
x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
error:
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index d3618a7..0073cd0 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -181,8 +181,6 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
}
blksize = ALIGN(crypto_aead_blocksize(aead), 4);
clen = ALIGN(skb->len + 2 + tfclen, blksize);
- if (esp->padlen)
- clen = ALIGN(clen, esp->padlen);
plen = clen - skb->len - tfclen;
err = skb_cow_data(skb, tfclen + plen + alen, &trailer);
@@ -416,7 +414,6 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
{
struct esp_data *esp = x->data;
u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
- u32 align = max_t(u32, blksize, esp->padlen);
unsigned int net_adj;
if (x->props.mode != XFRM_MODE_TUNNEL)
@@ -425,7 +422,7 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
net_adj = 0;
return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
- net_adj) & ~(align - 1)) + net_adj - 2;
+ net_adj) & ~(blksize - 1)) + net_adj - 2;
}
static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
@@ -606,8 +603,6 @@ static int esp6_init_state(struct xfrm_state *x)
aead = esp->aead;
- esp->padlen = 0;
-
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
switch (x->props.mode) {
@@ -626,8 +621,6 @@ static int esp6_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- if (esp->padlen)
- align = max_t(u32, align, esp->padlen);
x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
error:
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH net-next 2/2] net: esp{4,6}: get rid of struct esp_data
2013-10-18 10:09 [PATCH net-next 0/2] Removal of struct esp_data Mathias Krause
2013-10-18 10:09 ` [PATCH net-next 1/2] net: esp{4,6}: remove padlen from " Mathias Krause
@ 2013-10-18 10:09 ` Mathias Krause
2013-10-18 17:55 ` [PATCH net-next 0/2] Removal " David Miller
2 siblings, 0 replies; 9+ messages in thread
From: Mathias Krause @ 2013-10-18 10:09 UTC (permalink / raw)
To: netdev; +Cc: Mathias Krause, Steffen Klassert, Herbert Xu, David S. Miller
struct esp_data consists of a single pointer, vanishing the need for it
to be a structure. Fold the pointer into 'data' direcly, removing one
level of pointer indirection.
Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
---
include/net/esp.h | 7 -------
net/ipv4/esp4.c | 40 ++++++++++++++--------------------------
net/ipv6/esp6.c | 39 ++++++++++++++-------------------------
3 files changed, 28 insertions(+), 58 deletions(-)
diff --git a/include/net/esp.h b/include/net/esp.h
index 706b740..c92213c 100644
--- a/include/net/esp.h
+++ b/include/net/esp.h
@@ -3,13 +3,6 @@
#include <linux/skbuff.h>
-struct crypto_aead;
-
-struct esp_data {
- /* Confidentiality & Integrity */
- struct crypto_aead *aead;
-};
-
void *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len);
struct ip_esp_hdr;
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index 8b5386a..7785b28 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -121,7 +121,6 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
struct aead_givcrypt_request *req;
struct scatterlist *sg;
struct scatterlist *asg;
- struct esp_data *esp;
struct sk_buff *trailer;
void *tmp;
u8 *iv;
@@ -139,8 +138,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
/* skb is pure payload to encrypt */
- esp = x->data;
- aead = esp->aead;
+ aead = x->data;
alen = crypto_aead_authsize(aead);
tfclen = 0;
@@ -278,8 +276,7 @@ static int esp_input_done2(struct sk_buff *skb, int err)
{
const struct iphdr *iph;
struct xfrm_state *x = xfrm_input_state(skb);
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
int alen = crypto_aead_authsize(aead);
int hlen = sizeof(struct ip_esp_hdr) + crypto_aead_ivsize(aead);
int elen = skb->len - hlen;
@@ -374,8 +371,7 @@ static void esp_input_done(struct crypto_async_request *base, int err)
static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
{
struct ip_esp_hdr *esph;
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
struct aead_request *req;
struct sk_buff *trailer;
int elen = skb->len - sizeof(*esph) - crypto_aead_ivsize(aead);
@@ -457,8 +453,8 @@ out:
static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
{
- struct esp_data *esp = x->data;
- u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
+ struct crypto_aead *aead = x->data;
+ u32 blksize = ALIGN(crypto_aead_blocksize(aead), 4);
unsigned int net_adj;
switch (x->props.mode) {
@@ -473,7 +469,7 @@ static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
BUG();
}
- return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
+ return ((mtu - x->props.header_len - crypto_aead_authsize(aead) -
net_adj) & ~(blksize - 1)) + net_adj - 2;
}
@@ -508,18 +504,16 @@ static void esp4_err(struct sk_buff *skb, u32 info)
static void esp_destroy(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
+ struct crypto_aead *aead = x->data;
- if (!esp)
+ if (!aead)
return;
- crypto_free_aead(esp->aead);
- kfree(esp);
+ crypto_free_aead(aead);
}
static int esp_init_aead(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
int err;
@@ -528,7 +522,7 @@ static int esp_init_aead(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
err = crypto_aead_setkey(aead, x->aead->alg_key,
(x->aead->alg_key_len + 7) / 8);
@@ -545,7 +539,6 @@ error:
static int esp_init_authenc(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
struct crypto_authenc_key_param *param;
struct rtattr *rta;
@@ -580,7 +573,7 @@ static int esp_init_authenc(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
keylen = (x->aalg ? (x->aalg->alg_key_len + 7) / 8 : 0) +
(x->ealg->alg_key_len + 7) / 8 + RTA_SPACE(sizeof(*param));
@@ -635,16 +628,11 @@ error:
static int esp_init_state(struct xfrm_state *x)
{
- struct esp_data *esp;
struct crypto_aead *aead;
u32 align;
int err;
- esp = kzalloc(sizeof(*esp), GFP_KERNEL);
- if (esp == NULL)
- return -ENOMEM;
-
- x->data = esp;
+ x->data = NULL;
if (x->aead)
err = esp_init_aead(x);
@@ -654,7 +642,7 @@ static int esp_init_state(struct xfrm_state *x)
if (err)
goto error;
- aead = esp->aead;
+ aead = x->data;
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
@@ -678,7 +666,7 @@ static int esp_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
+ x->props.trailer_len = align + 1 + crypto_aead_authsize(aead);
error:
return err;
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index 0073cd0..87eb79e 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -164,10 +164,9 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
u8 *iv;
u8 *tail;
__be32 *seqhi;
- struct esp_data *esp = x->data;
/* skb is pure payload to encrypt */
- aead = esp->aead;
+ aead = x->data;
alen = crypto_aead_authsize(aead);
tfclen = 0;
@@ -269,8 +268,7 @@ error:
static int esp_input_done2(struct sk_buff *skb, int err)
{
struct xfrm_state *x = xfrm_input_state(skb);
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
int alen = crypto_aead_authsize(aead);
int hlen = sizeof(struct ip_esp_hdr) + crypto_aead_ivsize(aead);
int elen = skb->len - hlen;
@@ -323,8 +321,7 @@ static void esp_input_done(struct crypto_async_request *base, int err)
static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
{
struct ip_esp_hdr *esph;
- struct esp_data *esp = x->data;
- struct crypto_aead *aead = esp->aead;
+ struct crypto_aead *aead = x->data;
struct aead_request *req;
struct sk_buff *trailer;
int elen = skb->len - sizeof(*esph) - crypto_aead_ivsize(aead);
@@ -412,8 +409,8 @@ out:
static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
{
- struct esp_data *esp = x->data;
- u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
+ struct crypto_aead *aead = x->data;
+ u32 blksize = ALIGN(crypto_aead_blocksize(aead), 4);
unsigned int net_adj;
if (x->props.mode != XFRM_MODE_TUNNEL)
@@ -421,7 +418,7 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
else
net_adj = 0;
- return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
+ return ((mtu - x->props.header_len - crypto_aead_authsize(aead) -
net_adj) & ~(blksize - 1)) + net_adj - 2;
}
@@ -452,18 +449,16 @@ static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
static void esp6_destroy(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
+ struct crypto_aead *aead = x->data;
- if (!esp)
+ if (!aead)
return;
- crypto_free_aead(esp->aead);
- kfree(esp);
+ crypto_free_aead(aead);
}
static int esp_init_aead(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
int err;
@@ -472,7 +467,7 @@ static int esp_init_aead(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
err = crypto_aead_setkey(aead, x->aead->alg_key,
(x->aead->alg_key_len + 7) / 8);
@@ -489,7 +484,6 @@ error:
static int esp_init_authenc(struct xfrm_state *x)
{
- struct esp_data *esp = x->data;
struct crypto_aead *aead;
struct crypto_authenc_key_param *param;
struct rtattr *rta;
@@ -524,7 +518,7 @@ static int esp_init_authenc(struct xfrm_state *x)
if (IS_ERR(aead))
goto error;
- esp->aead = aead;
+ x->data = aead;
keylen = (x->aalg ? (x->aalg->alg_key_len + 7) / 8 : 0) +
(x->ealg->alg_key_len + 7) / 8 + RTA_SPACE(sizeof(*param));
@@ -579,7 +573,6 @@ error:
static int esp6_init_state(struct xfrm_state *x)
{
- struct esp_data *esp;
struct crypto_aead *aead;
u32 align;
int err;
@@ -587,11 +580,7 @@ static int esp6_init_state(struct xfrm_state *x)
if (x->encap)
return -EINVAL;
- esp = kzalloc(sizeof(*esp), GFP_KERNEL);
- if (esp == NULL)
- return -ENOMEM;
-
- x->data = esp;
+ x->data = NULL;
if (x->aead)
err = esp_init_aead(x);
@@ -601,7 +590,7 @@ static int esp6_init_state(struct xfrm_state *x)
if (err)
goto error;
- aead = esp->aead;
+ aead = x->data;
x->props.header_len = sizeof(struct ip_esp_hdr) +
crypto_aead_ivsize(aead);
@@ -621,7 +610,7 @@ static int esp6_init_state(struct xfrm_state *x)
}
align = ALIGN(crypto_aead_blocksize(aead), 4);
- x->props.trailer_len = align + 1 + crypto_aead_authsize(esp->aead);
+ x->props.trailer_len = align + 1 + crypto_aead_authsize(aead);
error:
return err;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH net-next 0/2] Removal of struct esp_data
2013-10-18 10:09 [PATCH net-next 0/2] Removal of struct esp_data Mathias Krause
2013-10-18 10:09 ` [PATCH net-next 1/2] net: esp{4,6}: remove padlen from " Mathias Krause
2013-10-18 10:09 ` [PATCH net-next 2/2] net: esp{4,6}: get rid of " Mathias Krause
@ 2013-10-18 17:55 ` David Miller
2013-10-22 13:08 ` Steffen Klassert
2 siblings, 1 reply; 9+ messages in thread
From: David Miller @ 2013-10-18 17:55 UTC (permalink / raw)
To: mathias.krause; +Cc: netdev, steffen.klassert, herbert
From: Mathias Krause <mathias.krause@secunet.com>
Date: Fri, 18 Oct 2013 12:09:03 +0200
> This series removes one level of indirection when accessing the aead
> crypto algorithm in ESP transforms by simply removing struct esp_data.
> This results in smaller code and less memory usage per xfrm state.
>
> Please apply!
No objections from me, I'll let Steffen pick this up.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next 0/2] Removal of struct esp_data
2013-10-18 17:55 ` [PATCH net-next 0/2] Removal " David Miller
@ 2013-10-22 13:08 ` Steffen Klassert
2013-10-22 18:05 ` David Miller
0 siblings, 1 reply; 9+ messages in thread
From: Steffen Klassert @ 2013-10-22 13:08 UTC (permalink / raw)
To: David Miller; +Cc: mathias.krause, netdev, herbert
On Fri, Oct 18, 2013 at 01:55:36PM -0400, David Miller wrote:
> From: Mathias Krause <mathias.krause@secunet.com>
> Date: Fri, 18 Oct 2013 12:09:03 +0200
>
> > This series removes one level of indirection when accessing the aead
> > crypto algorithm in ESP transforms by simply removing struct esp_data.
> > This results in smaller code and less memory usage per xfrm state.
> >
> > Please apply!
>
> No objections from me, I'll let Steffen pick this up.
I'm a bit hesitating with removing the padlen field. We resisted
several attempts to remove it in the past. It is currenly unused,
but it provides the infrastructure for ESP padding as defined
in RFC 4303. However, RFC 4303 recommends the use of TFC padding
instead to conceal the actual length of the packet. So I'm not
sure what's the actual usecase for ESP padding. I'll reconsider
this next week when I'm back at office.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next 0/2] Removal of struct esp_data
2013-10-22 13:08 ` Steffen Klassert
@ 2013-10-22 18:05 ` David Miller
2013-10-23 8:07 ` Steffen Klassert
0 siblings, 1 reply; 9+ messages in thread
From: David Miller @ 2013-10-22 18:05 UTC (permalink / raw)
To: steffen.klassert; +Cc: mathias.krause, netdev, herbert
From: Steffen Klassert <steffen.klassert@secunet.com>
Date: Tue, 22 Oct 2013 15:08:22 +0200
> On Fri, Oct 18, 2013 at 01:55:36PM -0400, David Miller wrote:
>> From: Mathias Krause <mathias.krause@secunet.com>
>> Date: Fri, 18 Oct 2013 12:09:03 +0200
>>
>> > This series removes one level of indirection when accessing the aead
>> > crypto algorithm in ESP transforms by simply removing struct esp_data.
>> > This results in smaller code and less memory usage per xfrm state.
>> >
>> > Please apply!
>>
>> No objections from me, I'll let Steffen pick this up.
>
> I'm a bit hesitating with removing the padlen field. We resisted
> several attempts to remove it in the past. It is currenly unused,
> but it provides the infrastructure for ESP padding as defined
> in RFC 4303. However, RFC 4303 recommends the use of TFC padding
> instead to conceal the actual length of the packet. So I'm not
> sure what's the actual usecase for ESP padding. I'll reconsider
> this next week when I'm back at office.
Steffen, is it really the case that we cannot add it back later if we
really need to?
Holding an unused member "just in case" for such a long time doesn't
seem very wise to me.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next 0/2] Removal of struct esp_data
2013-10-22 18:05 ` David Miller
@ 2013-10-23 8:07 ` Steffen Klassert
2013-10-23 19:40 ` David Miller
0 siblings, 1 reply; 9+ messages in thread
From: Steffen Klassert @ 2013-10-23 8:07 UTC (permalink / raw)
To: David Miller; +Cc: mathias.krause, netdev, herbert
On Tue, Oct 22, 2013 at 02:05:10PM -0400, David Miller wrote:
> From: Steffen Klassert <steffen.klassert@secunet.com>
> Date: Tue, 22 Oct 2013 15:08:22 +0200
>
> > On Fri, Oct 18, 2013 at 01:55:36PM -0400, David Miller wrote:
> >> From: Mathias Krause <mathias.krause@secunet.com>
> >> Date: Fri, 18 Oct 2013 12:09:03 +0200
> >>
> >> > This series removes one level of indirection when accessing the aead
> >> > crypto algorithm in ESP transforms by simply removing struct esp_data.
> >> > This results in smaller code and less memory usage per xfrm state.
> >> >
> >> > Please apply!
> >>
> >> No objections from me, I'll let Steffen pick this up.
> >
> > I'm a bit hesitating with removing the padlen field. We resisted
> > several attempts to remove it in the past. It is currenly unused,
> > but it provides the infrastructure for ESP padding as defined
> > in RFC 4303. However, RFC 4303 recommends the use of TFC padding
> > instead to conceal the actual length of the packet. So I'm not
> > sure what's the actual usecase for ESP padding. I'll reconsider
> > this next week when I'm back at office.
>
> Steffen, is it really the case that we cannot add it back later if we
> really need to?
>
Well, I thought to either take this as a reminder to implement the
missing stuff or to take the removing patches if this is really obsolete.
I'll do one of both once I'm back from conference week in Edinburgh.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next 0/2] Removal of struct esp_data
2013-10-23 8:07 ` Steffen Klassert
@ 2013-10-23 19:40 ` David Miller
2013-10-29 12:11 ` Steffen Klassert
0 siblings, 1 reply; 9+ messages in thread
From: David Miller @ 2013-10-23 19:40 UTC (permalink / raw)
To: steffen.klassert; +Cc: mathias.krause, netdev, herbert
From: Steffen Klassert <steffen.klassert@secunet.com>
Date: Wed, 23 Oct 2013 10:07:16 +0200
> Well, I thought to either take this as a reminder to implement the
> missing stuff or to take the removing patches if this is really obsolete.
> I'll do one of both once I'm back from conference week in Edinburgh.
Sounds like a good plan, thanks.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH net-next 0/2] Removal of struct esp_data
2013-10-23 19:40 ` David Miller
@ 2013-10-29 12:11 ` Steffen Klassert
0 siblings, 0 replies; 9+ messages in thread
From: Steffen Klassert @ 2013-10-29 12:11 UTC (permalink / raw)
To: David Miller; +Cc: mathias.krause, netdev, herbert
On Wed, Oct 23, 2013 at 03:40:02PM -0400, David Miller wrote:
> From: Steffen Klassert <steffen.klassert@secunet.com>
> Date: Wed, 23 Oct 2013 10:07:16 +0200
>
> > Well, I thought to either take this as a reminder to implement the
> > missing stuff or to take the removing patches if this is really obsolete.
> > I'll do one of both once I'm back from conference week in Edinburgh.
>
> Sounds like a good plan, thanks.
RFC 4303 recommends to use TFC padding instead of the padding field:
'As noted above, the Padding field is limited to 255 bytes in length.
This generally will not be adequate to hide traffic characteristics
relative to traffic flow confidentiality requirements. An optional
field, within the payload data, is provided specifically to address
the TFC requirement.'
So looks like we can remove the padlen field, both patches
applied to ipsec-next. Thanks Mathias!
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-10-29 12:11 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-18 10:09 [PATCH net-next 0/2] Removal of struct esp_data Mathias Krause
2013-10-18 10:09 ` [PATCH net-next 1/2] net: esp{4,6}: remove padlen from " Mathias Krause
2013-10-18 10:09 ` [PATCH net-next 2/2] net: esp{4,6}: get rid of " Mathias Krause
2013-10-18 17:55 ` [PATCH net-next 0/2] Removal " David Miller
2013-10-22 13:08 ` Steffen Klassert
2013-10-22 18:05 ` David Miller
2013-10-23 8:07 ` Steffen Klassert
2013-10-23 19:40 ` David Miller
2013-10-29 12:11 ` Steffen Klassert
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).