aboutsummaryrefslogtreecommitdiff
path: root/doc/images/ipsec_sa_states.msc
blob: 7030877e39b80df2cb4b3fdf030f5cee80a7ea2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
msc {

    a [label = "Application"],
    o [label = "ODP"],
    p [label = "Platform"];

    --- [label = "IPsec configuration, done once"];
    a->o [label = "odp_ipsec_config()"];
    o->p [label = "Config IPsec"];
    o->a [label = "OK"];

    |||;
    --- [label = "IPsec SA creation, per SA"];
    |||;

    a->o [label = "odp_ipsec_sa_create()"];
    o->p [label = "SA Create"];
    o->a [label = "OK"];

    |||;
    --- [label = "IPsec operations, per SA"];
    |||;

    a->o [label = "odp_ipsec_in()"];
    o->p [label = "IPsec Decrypt"];
    p->a [label = "Done"];

    a->o [label = "odp_ipsec_out()"];
    o->p [label = "IPsec Encrypt"];
    p->a [label = "Done"];

    a->o [label = "odp_ipsec_out_inline()"];
    o->p [label = "IPsec Encrypt Inline"];
    o->a [label = "OK"];
    p->o [label = "OK"];

    a->o [label = "odp_ipsec_in_enq()"];
    o->p [label = "Initiate IPsec operation"];
    a->o [label = "odp_ipsec_out_enq()"];
    o->p [label = "Initiate IPsec operation"];

    |||;
    --- [label = "Time passes"];
    |||;

    p->o [label = "IPsec op complete"];
    a->o [label = "odp_schedule()"];
    o->p [label = "Get Event"];
    p->a [label = "ODP_EVENT_PACKET subtype ODP_EVENT_PACKET_IPSEC"];
    a->o [label = "odp_ipsec_result()"];
    o->a [label = "OK"];

    |||;
    --- [label = "App done with SA, per SA"];
    |||;

    a->o [label = "odp_ipsec_sa_disable()"];
    o->p [label = "Disable/Delete SA"];
    o->a [label = "OK"];
    p->o [label = "Done"];

    |||;
    --- [label = "Time passes"];
    |||;

    a->o [label = "odp_schedule()"];
    o->p [label = "Get Event"];
    p->a [label = "ODP_EVENT_IPSEC_STATUS"];
    a->o [label = "odp_ipsec_status"];
    o->a [label = "ODP_IPSEC_STATUS_SA_DISABLED"];

    a->o [label = "odp_ipsec_sa_destroy()"];
    o->a [label = "OK"];


}