forked from scionproto/scion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
path_mgmt.capnp
104 lines (88 loc) · 2.01 KB
/
path_mgmt.capnp
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
@0x8fcd13516850d142;
using Go = import "go.capnp";
$Go.package("proto");
$Go.import("github.com/scionproto/scion/go/proto");
using PSeg = import "path_seg.capnp";
using IFState = import "if_state.capnp";
using Sign = import "sign.capnp";
struct SegReq {
srcIA @0 :UInt64;
dstIA @1 :UInt64;
flags :group {
sibra @2 :Bool;
cacheOnly @3 :Bool;
}
}
struct SegRecs {
recs @0 :List(PSeg.PathSegMeta);
sRevInfos @1 :List(Sign.SignedBlob);
}
struct SegReply {
req @0 :SegReq;
recs @1 :SegRecs;
}
struct SegChangesIdReq {
# Timestamp of last check, seconds since Unix Epoch
lastCheck @0 :UInt32;
}
struct SegIds {
segId @0 :Data;
fullId @1 :Data;
}
struct SegChangesIdReply {
ids @0 :List(SegIds);
}
struct SegChangesReq {
segIds @0 :List(Data);
}
struct HPGroupId {
ownerAS @0 :UInt64;
groupId @1 :UInt16;
}
struct HPSegReq {
dstIA @0 :UInt64;
groupIds @1 :List(HPGroupId);
}
struct HPSegRecs {
groupId @0 :HPGroupId;
recs @1 :List(PSeg.PathSegMeta);
err @2 :Text;
}
struct HPSegReply {
recs @0 :List(HPSegRecs);
}
struct HPCfg {
groupId @0 :HPGroupId;
version @1 :UInt32;
ownerISD @2 :UInt16;
writers @3 :List(UInt64);
readers @4 :List(UInt64);
registries @5 :List(UInt64);
}
struct HPCfgReq {
changedSince @0 :UInt32;
}
struct HPCfgReply {
cfgs @0 :List(HPCfg);
}
struct PathMgmt {
union {
unset @0 :Void;
segReq @1 :SegReq;
segReply @2 :SegReply;
segReg @3 :SegRecs;
segSync @4 :SegRecs;
sRevInfo @5 :Sign.SignedBlob;
ifStateReq @6 :IFState.IFStateReq;
ifStateInfos @7 :IFState.IFStateInfos;
segChangesIdReq @8 :SegChangesIdReq;
segChangesIdReply @9 :SegChangesIdReply;
segChangesReq @10 :SegChangesReq;
segChangesReply @11 :SegRecs;
hpSegReq @12 :HPSegReq;
hpSegReply @13 :HPSegReply;
hpSegReg @14 :HPSegRecs;
hpCfgReq @15 :HPCfgReq;
hpCfgReply @16 :HPCfgReply;
}
}