equal
deleted
inserted
replaced
20 #include "ikev2SA.h" |
20 #include "ikev2SA.h" |
21 #include "ikepolparser.h" |
21 #include "ikepolparser.h" |
22 #include "ikev2ipsecsadata.h" |
22 #include "ikev2ipsecsadata.h" |
23 #include "ikev2pluginsession.h" |
23 #include "ikev2pluginsession.h" |
24 |
24 |
|
25 static const TUint32 KMinRekeyingThreshold = 70; |
|
26 static const TUint32 KMaxRekeyingThreshold = 95; |
|
27 |
25 CIkev2SA* CIkev2SA::NewL(CIkev2PluginSession& aIkeV2PluginSession, TIkev2SAData& aIkev2SAdata, MIkeDebug& aDebug) |
28 CIkev2SA* CIkev2SA::NewL(CIkev2PluginSession& aIkeV2PluginSession, TIkev2SAData& aIkev2SAdata, MIkeDebug& aDebug) |
26 { |
29 { |
27 CIkev2SA *sa = new (ELeave) CIkev2SA(aIkeV2PluginSession, aDebug); |
30 CIkev2SA *sa = new (ELeave) CIkev2SA(aIkeV2PluginSession, aDebug); |
28 sa->ConstructL(aIkev2SAdata); |
31 sa->ConstructL(aIkev2SAdata); |
29 return sa; |
32 return sa; |
43 iIkeV2SaData.Copy(aIkev2SAdata); |
46 iIkeV2SaData.Copy(aIkev2SAdata); |
44 // |
47 // |
45 // Calculate lifetime value for the new IKE SA |
48 // Calculate lifetime value for the new IKE SA |
46 // The jitter value is adjusted from SA internal ID (SAId mod 8) |
49 // The jitter value is adjusted from SA internal ID (SAId mod 8) |
47 // |
50 // |
48 iRemainingTime = iIkeV2SaData.iLifetime + (iIkeV2SaData.SaId() % 8); |
51 |
|
52 if (iIkeV2SaData.iIkeData->iRekeyingThreshold != 0) |
|
53 { |
|
54 if (iIkeV2SaData.iIkeData->iRekeyingThreshold < KMinRekeyingThreshold) |
|
55 { |
|
56 iRekeyingThreshold = KMinRekeyingThreshold; |
|
57 } |
|
58 else if (iIkeV2SaData.iIkeData->iRekeyingThreshold > KMaxRekeyingThreshold) |
|
59 { |
|
60 iRekeyingThreshold = KMaxRekeyingThreshold; |
|
61 } |
|
62 else |
|
63 { |
|
64 iRekeyingThreshold = iIkeV2SaData.iIkeData->iRekeyingThreshold; |
|
65 } |
|
66 TReal lifeTime = (TReal)iIkeV2SaData.iLifetime * ((TReal)iRekeyingThreshold / 100.0); |
|
67 iRemainingTime = (TUint32)lifeTime + (iIkeV2SaData.SaId() % 8); |
|
68 } |
|
69 else |
|
70 { |
|
71 iRemainingTime = iIkeV2SaData.iLifetime + (iIkeV2SaData.SaId() % 8); |
|
72 } |
|
73 |
49 iIkeV2SaData.iSAState = KSaStateReady; |
74 iIkeV2SaData.iSAState = KSaStateReady; |
50 |
75 |
|
76 |
51 TInt DPDHeartbeat = 0; |
77 TInt DPDHeartbeat = 0; |
52 if ( iIkeV2SaData.iIkeData->iDPDHeartBeat ) |
78 if ( iIkeV2SaData.iIkeData->iDPDHeartBeat ) |
53 DPDHeartbeat = iIkeV2SaData.iIkeData->iDPDHeartBeat; |
79 DPDHeartbeat = iIkeV2SaData.iIkeData->iDPDHeartBeat; |
54 |
80 |
55 if ( DPDHeartbeat ) |
81 if ( DPDHeartbeat ) |
234 // |
260 // |
235 DEBUG_LOG2(_L("CIkev2SA::RunL, SAId=%d, remaining time=%d"), |
261 DEBUG_LOG2(_L("CIkev2SA::RunL, SAId=%d, remaining time=%d"), |
236 iIkeV2SaData.SaId(), iRemainingTime ); |
262 iIkeV2SaData.SaId(), iRemainingTime ); |
237 if (iRemainingTime == 0) |
263 if (iRemainingTime == 0) |
238 { |
264 { |
239 if ( iIpsecSaQue ) |
265 if ( iIpsecSaQue && iRekeyingThreshold != 0) |
240 { |
266 { |
241 iIkeV2PluginSession.RekeyIkeSAL(&iIkeV2SaData); |
267 iIkeV2PluginSession.RekeyIkeSAL(&iIkeV2SaData); |
242 } |
268 } |
243 else |
269 else |
244 { |
270 { |