old child_sa gets deleted after rekeying
rekeying almost complete, but: IKE_SA get in an invalid state when both initiate rekeying at the same time,
This commit is contained in:
@@ -57,28 +57,35 @@ void test_kernel_interface(protected_tester_t *tester)
|
||||
me = host_create(AF_INET, "192.168.0.2", 0);
|
||||
other = host_create(AF_INET, "192.168.0.3", 0);
|
||||
|
||||
status = kernel_interface->get_spi(kernel_interface, me, other, 50, 1234, &spi);
|
||||
status = kernel_interface->get_spi(kernel_interface, me, other, PROTO_ESP, 1234, &spi);
|
||||
tester->assert_true(tester, status == SUCCESS, "spi get");
|
||||
|
||||
status = kernel_interface->add_sa(kernel_interface, me, other, spi, 50, 1234, 5, 10, &enc_alg, &int_alg, prf_plus, TRUE);
|
||||
status = kernel_interface->add_sa(kernel_interface, me, other, spi, PROTO_ESP, 1234, 0, 0, &enc_alg, &int_alg, prf_plus, TRUE);
|
||||
tester->assert_true(tester, status == SUCCESS, "add sa");
|
||||
|
||||
left = host_create(AF_INET, "10.1.0.0", 0);
|
||||
right = host_create(AF_INET, "10.2.0.0", 0);
|
||||
|
||||
status = kernel_interface->add_policy(kernel_interface, me, other, left, right, 16, 16, XFRM_POLICY_OUT, 0, PROTO_ESP, 1234);
|
||||
status = kernel_interface->add_policy(kernel_interface, me, other, left, right, 24, 24, XFRM_POLICY_OUT, 0, PROTO_ESP, 1234);
|
||||
tester->assert_true(tester, status == SUCCESS, "add policy OUT");
|
||||
status = kernel_interface->add_policy(kernel_interface, me, other, left, right, 16, 16, XFRM_POLICY_IN, 0, PROTO_ESP, 1234);
|
||||
status = kernel_interface->add_policy(kernel_interface, me, other, left, right, 24, 24, XFRM_POLICY_OUT, 0, PROTO_ESP, 2345);
|
||||
tester->assert_true(tester, status == SUCCESS, "add policy OUT");
|
||||
status = kernel_interface->add_policy(kernel_interface, me, other, left, right, 24, 24, XFRM_POLICY_IN, 0, PROTO_ESP, 1234);
|
||||
tester->assert_true(tester, status == SUCCESS, "add policy IN");
|
||||
status = kernel_interface->add_policy(kernel_interface, me, other, left, right, 16, 16, XFRM_POLICY_FWD, 0, PROTO_ESP, 1234);
|
||||
status = kernel_interface->add_policy(kernel_interface, me, other, left, right, 24, 24, XFRM_POLICY_FWD, 0, PROTO_ESP, 1234);
|
||||
tester->assert_true(tester, status == SUCCESS, "add policy FWD");
|
||||
|
||||
|
||||
kernel_interface->del_sa(kernel_interface, other, spi, PROTO_ESP);
|
||||
|
||||
sleep(10);
|
||||
|
||||
me->destroy(me);
|
||||
other->destroy(other);
|
||||
left->destroy(left);
|
||||
right->destroy(right);
|
||||
|
||||
sleep(15);
|
||||
|
||||
|
||||
kernel_interface->destroy(kernel_interface);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user