netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [XFRM][PATCH v5] Fix unexpected SA hard expiration after setting new date
@ 2012-07-31  7:43 Fan Du
  2012-07-31  7:43 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
  0 siblings, 1 reply; 21+ messages in thread
From: Fan Du @ 2012-07-31  7:43 UTC (permalink / raw)
  To: davem, herbert; +Cc: netdev


Hi, Dave

Hope v5 is better than previous ones :)
Any comments are really welcome!

Thanks


Changelog:
v1->v2
1) use xflags instead of creating new flags(suggested by Steffen Klassert)

v2->v3
1) fix email problem, and remove cc to myself(requested by David Miller)

v3->v4
1) fix typo when clearing XFRM_SOFT_EXPIRE(thanks for David Miller)
2) fix email problem, and remove cc to myself AGAIN!!!

v4->v5
1) remove unnecessary empty line (David Miller)


*Background*:
Once IPsec SAs are created between two peers, kernel setup a timer to monitor
two events: soft/hard expiration. However the timer handler use xtime to
caculate whether it's soft or hard expiration event.

normal code flow(hard expire time:100s, soft expire time:82s)

a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;

b) soft expire occur, rearm the timer with hard expire interval(18s)
then notify racoon2 about soft expire event. racoon2 will create
new SAs.

c) hard expire happen, notify racoon2 about it. racoon2 will delete
the old SAs.

*Scenario*:
Setting a new date before b),and after a) could result c) happens first,
As a result, old SAs is deleted before new ones are created. Normally
new SAs will be created by the next time networking traffic, but there
is a small time being when networking connection is down, this could
result in upper layer connections failed in tel comm area, thus it's
better to keep it strict in sequence.

*Workaround*:
set new time could happen:
1) before a), then SAs is updated with new time.
2) before b),and after a)
2a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;(set flag to mark next time should
be soft time expire)

<<---- new date comes

2b) soft expire occur, the calculation results in a hard time expire
event, but flag is set, so catch ya. Sync the addtime, and rearm
the timer with hard expire interval(18s), then notify racoon2
about soft expire event;

2c) hard expire happen, notify racoon2 about it;
so everything is in order.

3) after b), hard expire always happened anyway.

^ permalink raw reply	[flat|nested] 21+ messages in thread
* [RESEND][XFRM][PATCH v4] Fix unexpected SA hard expiration after setting new date
@ 2012-07-27  2:39 Fan Du
  2012-07-27  2:39 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
  0 siblings, 1 reply; 21+ messages in thread
From: Fan Du @ 2012-07-27  2:39 UTC (permalink / raw)
  To: davem, herbert; +Cc: netdev


Hi, Dave

It has been more than one month since my last post of this patch.
Previous posting receives no objection from you and Herbert, so I
rebase it with latest linux-3.5, then it can be easily picked up.
I'm wondering could you please take a look at this patch ?

Any comments are really welcome!

Thanks


Changelog:
v1->v2
1) use xflags instead of creating new flags(suggested by Steffen Klassert)

v2->v3
1) fix email problem, and remove cc to myself(requested by David Miller)

v3->v4
1) fix typo when clearing XFRM_SOFT_EXPIRE(thanks for David Miller)
2) fix email problem, and remove cc to myself AGAIN!!!


*Background*:
Once IPsec SAs are created between two peers, kernel setup a timer to monitor
two events: soft/hard expiration. However the timer handler use xtime to
caculate whether it's soft or hard expiration event.

normal code flow(hard expire time:100s, soft expire time:82s)

a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;

b) soft expire occur, rearm the timer with hard expire interval(18s)
then notify racoon2 about soft expire event. racoon2 will create
new SAs.

c) hard expire happen, notify racoon2 about it. racoon2 will delete
the old SAs.

*Scenario*:
Setting a new date before b),and after a) could result c) happens first,
As a result, old SAs is deleted before new ones are created. Normally
new SAs will be created by the next time networking traffic, but there
is a small time being when networking connection is down, this could
result in upper layer connections failed in tel comm area, thus it's
better to keep it strict in sequence.

*Workaround*:
set new time could happen:
1) before a), then SAs is updated with new time.
2) before b),and after a)
2a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;(set flag to mark next time should
be soft time expire)

<<---- new date comes

2b) soft expire occur, the calculation results in a hard time expire
event, but flag is set, so catch ya. Sync the addtime, and rearm
the timer with hard expire interval(18s), then notify racoon2
about soft expire event;

2c) hard expire happen, notify racoon2 about it;
so everything is in order.

3) after b), hard expire always happened anyway.

^ permalink raw reply	[flat|nested] 21+ messages in thread
* [XFRM][RFC v4] Fix unexpected SA hard expiration after setting new date
@ 2012-06-21  6:26 Fan Du
  2012-06-21  6:26 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
  0 siblings, 1 reply; 21+ messages in thread
From: Fan Du @ 2012-06-21  6:26 UTC (permalink / raw)
  To: davem, herbert; +Cc: netdev


Hi, Dave and Herbert

Could you give a try to review this?
thanks

Changelog:
v1->v2
1) use xflags instead of creating new flags(suggested by Steffen Klassert)

v2->v3
1) fix email problem, and remove cc to myself(requested by David Miller)

v3->v4
1) fix typo when clearing XFRM_SOFT_EXPIRE(thanks for David Miller)
2) fix email problem, and remove cc to myself AGAIN!!!


*Background*:
Once IPsec SAs are created between two peers, kernel setup a timer to monitor
two events: soft/hard expiration. However the timer handler use xtime to
caculate whether it's soft or hard expiration event.

normal code flow(hard expire time:100s, soft expire time:82s)

a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;

b) soft expire occur, rearm the timer with hard expire interval(18s)
then notify racoon2 about soft expire event. racoon2 will create
new SAs.

c) hard expire happen, notify racoon2 about it. racoon2 will delete
the old SAs.

*Scenario*:
Setting a new date before b),and after a) could result c) happens first,
As a result, old SAs is deleted before new ones are created. Normally
new SAs will be created by the next time networking traffic, but there
is a small time being when networking connection is down, this could
result in upper layer connections failed in tel comm area, thus it's
better to keep it strict in sequence.

*Workaround*:
set new time could happen:
1) before a), then SAs is updated with new time.
2) before b),and after a)
2a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;(set flag to mark next time should
be soft time expire)

<<---- new date comes

2b) soft expire occur, the calculation results in a hard time expire
event, but flag is set, so catch ya. Sync the addtime, and rearm
the timer with hard expire interval(18s), then notify racoon2
about soft expire event;

2c) hard expire happen, notify racoon2 about it;
so everything is in order.

3) after b), hard expire always happened anyway.

^ permalink raw reply	[flat|nested] 21+ messages in thread
* [XFRM][RFC v3] Fix unexpected SA hard expiration after setting new date
@ 2012-06-19  9:28 Fan Du
  2012-06-19  9:28 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
  0 siblings, 1 reply; 21+ messages in thread
From: Fan Du @ 2012-06-19  9:28 UTC (permalink / raw)
  To: davem, herbert; +Cc: netdev


Hi, Dave and Herbert

Could you give a try to review this?
thanks

Changelog:
v1->v2
1) use xflags instead of creating new flags(suggested by Steffen Klassert)

v2->v3
1) fix email problem, and remove cc to myself(requested by David Miller)


*Background*:
Once IPsec SAs are created between two peers, kernel setup a timer to monitor
two events: soft/hard expiration. However the timer handler use xtime to
caculate whether it's soft or hard expiration event.

normal code flow(hard expire time:100s, soft expire time:82s)

a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;

b) soft expire occur, rearm the timer with hard expire interval(18s)
then notify racoon2 about soft expire event. racoon2 will create
new SAs.

c) hard expire happen, notify racoon2 about it. racoon2 will delete
the old SAs.

*Scenario*:
Setting a new date before b),and after a) could result c) happens first,
As a result, old SAs is deleted before new ones are created. Normally
new SAs will be created by the next time networking traffic, but there
is a small time being when networking connection is down, this could
result in upper layer connections failed in tel comm area, thus it's
better to keep it strict in sequence.

*Workaround*:
set new time could happen:
1) before a), then SAs is updated with new time.
2) before b),and after a)
2a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;(set flag to mark next time should
be soft time expire)

<<---- new date comes

2b) soft expire occur, the calculation results in a hard time expire
event, but flag is set, so catch ya. Sync the addtime, and rearm
the timer with hard expire interval(18s), then notify racoon2
about soft expire event;

2c) hard expire happen, notify racoon2 about it;
so everything is in order.

3) after b), hard expire always happened anyway.

^ permalink raw reply	[flat|nested] 21+ messages in thread
* [XFRM][RFC v2] Fix unexpected SA hard expiration after setting new date
@ 2012-06-19  7:51 fan.du
  2012-06-19  7:51 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date fan.du
  0 siblings, 1 reply; 21+ messages in thread
From: fan.du @ 2012-06-19  7:51 UTC (permalink / raw)
  To: davem, herbert; +Cc: netdev, fdu


Hi, Dave and Herbert

Could you give a try to review this?
thanks :)

Changelog:
v1->v2
1) use xflags instead of creating new flags(suggested by Steffen Klassert)


*Background*:
Once IPsec SAs are created between two peers, kernel setup a timer to monitor
two events: soft/hard expiration. However the timer handler use xtime to
caculate whether it's soft or hard expiration event.

normal code flow(hard expire time:100s, soft expire time:82s)

a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;

b) soft expire occur, rearm the timer with hard expire interval(18s)
then notify racoon2 about soft expire event. racoon2 will create
new SAs.

c) hard expire happen, notify racoon2 about it. racoon2 will delete
the old SAs.

*Scenario*:
Setting a new date before b),and after a) could result c) happens first,
As a result, old SAs is deleted before new ones are created. Normally
new SAs will be created by the next time networking traffic, but there
is a small time being when networking connection is down, this could
result in upper layer connections failed in tel comm area, thus it's
better to keep it strict in sequence.

*Workaround*:
set new time could happen:
1) before a), then SAs is updated with new time.
2) before b),and after a)
2a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;(set flag to mark next time should
be soft time expire)

<<---- new date comes

2b) soft expire occur, the calculation results in a hard time expire
event, but flag is set, so catch ya. Sync the addtime, and rearm
the timer with hard expire interval(18s), then notify racoon2
about soft expire event;

2c) hard expire happen, notify racoon2 about it;
so everything is in order.

3) after b), hard expire always happened anyway.

^ permalink raw reply	[flat|nested] 21+ messages in thread
* [XFRM][RFC v1] Fix unexpected SA hard expiration after setting new date
@ 2012-06-18  8:24 fan.du
  2012-06-18  8:24 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date fan.du
  0 siblings, 1 reply; 21+ messages in thread
From: fan.du @ 2012-06-18  8:24 UTC (permalink / raw)
  To: davem, herbert; +Cc: netdev, fdu


First, I'm not sure whether I Cced to the right person, if not,
apologize for the noise.


*Background*:
Once IPsec SAs are created between two peers, kernel setup a timer to monitor
two events: soft/hard expiration. However the timer handler use xtime to
caculate whether it's soft or hard expiration event.

normal code flow(hard expire time:100s, soft expire time:82s)

a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;

b) soft expire occur, rearm the timer with hard expire interval(18s)
then notify racoon2 about soft expire event. racoon2 will create
new SAs.

c) hard expire happen, notify racoon2 about it. racoon2 will delete
the old SAs.

*Scenario*:
Setting a new date before b),and after a) could result c) happens first,
As a result, old SAs is deleted before new ones are created. Normally
new SAs will be created by the next time networking traffic, but there
is a small time being when networking connection is down, this could
result in upper layer connections failed in tel comm area, thus it's
better to keep it strict in sequence.

*Workaround*:
set new time could happen:
1) before a), then SAs is updated with new time.
2) before b),and after a)
2a) When new SAs created, xfrm_timer_handler is called one second
after its creation. At this point, calculate soft expire
interval(81s), setup the timer;(set flag to mark next time should
be soft time expire)

<<---- new date comes

2b) soft expire occur, the calculation results in a hard time expire
event, but flag is set, so catch ya. Sync the addtime, and rearm
the timer with hard expire interval(18s), then notify racoon2
about soft expire event;

2c) hard expire happen, notify racoon2 about it;
so everything is in order.

3) after b), hard expire always happened anyway.


So, could you please give your comments on this?

thanks

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2012-08-02  8:55 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-31  7:43 [XFRM][PATCH v5] Fix unexpected SA hard expiration after setting new date Fan Du
2012-07-31  7:43 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
2012-08-02  7:21   ` David Miller
2012-08-02  7:23     ` David Miller
2012-08-02  7:23       ` David Miller
2012-08-02  8:58       ` Fan Du
  -- strict thread matches above, loose matches on Subject: below --
2012-07-27  2:39 [RESEND][XFRM][PATCH v4] Fix unexpected SA hard expiration after setting new date Fan Du
2012-07-27  2:39 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
2012-07-30  6:15   ` David Miller
2012-06-21  6:26 [XFRM][RFC v4] Fix unexpected SA hard expiration after setting new date Fan Du
2012-06-21  6:26 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
2012-06-25 22:29   ` David Miller
2012-06-19  9:28 [XFRM][RFC v3] Fix unexpected SA hard expiration after setting new date Fan Du
2012-06-19  9:28 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date Fan Du
2012-06-19  7:51 [XFRM][RFC v2] Fix unexpected SA hard expiration after setting new date fan.du
2012-06-19  7:51 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date fan.du
2012-06-19  9:01   ` David Miller
2012-06-19  9:05     ` David Miller
2012-06-21  2:11       ` Fan Du
2012-06-21  3:43         ` David Miller
2012-06-21  6:41           ` Fan Du
2012-06-21  4:06   ` David Miller
2012-06-18  8:24 [XFRM][RFC v1] Fix unexpected SA hard expiration after setting new date fan.du
2012-06-18  8:24 ` [PATCH] [XFRM] Fix unexpected SA hard expiration after changing date fan.du
2012-06-18 11:05   ` Steffen Klassert
2012-06-19  1:34     ` Fan Du

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).