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
105
106
107
108
109
110
111
112
113
|
# $Id$
#
# RelaxNG (Compact Syntax) Schema for RPKI left-right protocol.
#
# libxml2 (including xmllint) only groks the XML syntax of RelaxNG, so
# run the compact syntax through trang to get XML syntax.
default namespace = "http://www.hactrn.net/uris/rpki/left-right-spec/"
start = element msg {
attribute version { xsd:positiveInteger { maxInclusive="1" } },
( self | bsc | \parent | child | repository | route_origin | list_resources | report_error )*
}
action = attribute action { "create" | "set" | "get" | "list" | "destroy" }
type = attribute type { "query" | "reply" }
base64 = xsd:base64Binary { maxLength="512000" }
peer_ta = element peer_ta { base64 }
self = element self {
action, type,
attribute self_id { xsd:token { maxLength="1024" } }?,
attribute rekey { "yes" }?,
attribute reissue { "yes" }?,
attribute revoke { "yes" }?,
attribute run_now { "yes" }?,
attribute publish_world_now { "yes" }?,
element extension_preference {
attribute name { xsd:token { maxLength="1024" } },
xsd:string { maxLength="512000" }
}*
}
bsc = element bsc {
action, type,
attribute self_id { xsd:token { maxLength="1024" } },
attribute bsc_id { xsd:token { maxLength="1024" } }?,
attribute generate_keypair { "yes" }?,
attribute key_type { xsd:token { maxLength="1024" } }?,
attribute hash_alg { xsd:token { maxLength="1024" } }?,
attribute key_length { xsd:token { maxLength="1024" } }?,
element signing_cert { base64 }*,
element pkcs10_cert_request { base64 }?,
element public_key { base64 }?
}
\parent = element parent {
action, type,
attribute self_id { xsd:token { maxLength="1024" } },
attribute parent_id { xsd:token { maxLength="1024" } }?,
attribute peer_contact { xsd:anyURI { maxLength="1024" } }?,
attribute sia_base { xsd:anyURI { maxLength="1024" } }?,
attribute bsc_link { xsd:token { maxLength="1024" } }?,
attribute repository_link { xsd:token { maxLength="1024" } }?,
attribute rekey { "yes" }?,
attribute reissue { "yes" }?,
attribute revoke { "yes" }?,
peer_ta?
}
child = element child {
action, type,
attribute self_id { xsd:token { maxLength="1024" } },
attribute child_id { xsd:token { maxLength="1024" } }?,
attribute bsc_link { xsd:token { maxLength="1024" } }?,
attribute child_db_id { xsd:token { maxLength="1024" } }?,
attribute reissue { "yes" }?,
peer_ta?
}
repository = element repository {
action, type,
attribute self_id { xsd:token { maxLength="1024" } },
attribute repository_id { xsd:token { maxLength="1024" } }?,
attribute peer_contact { xsd:anyURI { maxLength="1024" } }?,
attribute bsc_link { xsd:token { maxLength="1024" } }?,
peer_ta?
}
route_origin = element route_origin {
action, type,
attribute self_id { xsd:token { maxLength="1024" } },
attribute route_origin_id { xsd:token { maxLength="1024" } }?,
attribute suppress_publication { "yes" }?,
attribute asn { xsd:token { maxLength="1024" } }?,
attribute ipv4 { xsd:token { maxLength="1024" } }?,
attribute ipv6 { xsd:token { maxLength="1024" } }?
}
list_resources = element list_resources {
type,
attribute self_id { xsd:token { maxLength="1024" } },
attribute child_id { xsd:token { maxLength="1024" } }?,
attribute valid_until { xsd:token { maxLength="1024" } }?,
element resource_class {
attribute subject_name { xsd:token { maxLength="1024" } }?,
attribute as { xsd:token { maxLength="1024" } }?,
attribute ipv4 { xsd:token { maxLength="1024" } }?,
attribute ipv6 { xsd:token { maxLength="1024" } }?,
attribute req_as { xsd:token { maxLength="1024" } }?,
attribute req_ipv4 { xsd:token { maxLength="1024" } }?,
attribute req_ipv6 { xsd:token { maxLength="1024" } }?
}*
}
report_error = element report_error {
attribute self_id { xsd:token { maxLength="1024" } },
attribute error_code { xsd:token { maxLength="1024" } },
xsd:string { maxLength="512000" }
}
|