Skip to content

Commit 019049d

Browse files
docs: add SGRP section (scionproto#4825)
Contributes to scionproto#4787 --------- Co-authored-by: Katya Titkova <katyatitkova@gmail.com>
1 parent 6787965 commit 019049d

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

doc/sig.rst

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,32 @@ This protocol is designed to:
2525
- provide fast detection of packet loss and subsequent recovery of decapsulation for packets that weren't lost.
2626
- support for multiple streams within a framing session such that independent packet sequences be tunneled in parallel.
2727

28+
SIGs map IP prefixes to SCION ASes using SGRP.
29+
30+
31+
SCION Gateway Routing Protocol (SGRP)
32+
=====================================
33+
34+
The SCION Gateway Routing Protocol (SGRP) enables SIGs to map IP prefixes to SCION ASes.
35+
36+
A SIG participating in SGRP between two SCION ASes does the following:
37+
38+
1. It discovers the SIGs in the remote SCION AS by periodically sending a discovery message to the Control Plane of the remote AS which replies with a list of local tunneling endpoints.
39+
40+
2. It periodically queries each discovered SIG in the remote AS to learn the IP prefixes that it announces. From that, the local SIG builds a mapping of IP prefix to remote SIGs.
41+
42+
3. When queried by a remote SIG, the local SIG replies with the set of IP prefixes it wants to announce.
43+
44+
The set of announced IP prefixes can be statically configured.
45+
46+
SGRP Messages
47+
-------------
48+
49+
https://github.com/scionproto/scion/blob/master/proto/gateway/v1/prefix.proto
50+
51+
Server - https://github.com/scionproto/scion/blob/master/gateway/control/grpc/prefix_server.go
52+
Client - https://github.com/scionproto/scion/blob/master/gateway/control/grpc/prefix_fetcher.go
53+
2854

2955
SIG Framing Protocol
3056
====================
@@ -90,21 +116,14 @@ A SIG MAY drop frames. In the current implementation, the egress SIG does not bu
90116
SIG frame payload
91117
-----------------
92118

93-
The SIG frame payload may contain multiple IPv4 or IPv6 packets, or parts
94-
thereof. No other types of packets can be encapsulated. The packets are
95-
placed one directly after another, with no padding.
96-
Multicast traffic is not supported yet.
119+
The SIG frame payload may contain multiple IPv4 or IPv6 packets, or parts thereof. No other types of packets can be encapsulated. The packets are placed one directly after another, with no padding. Multicast traffic is not yet supported.
97120

98-
SIG uses IPv4/6 "payload length" field to determine the size of the packet.
99-
To make the processing easier, it is required that the fixed part of the IP header
100-
is in the frame where the IP packet begins. In other words, the initial fragment
101-
of an IPv4 packet must be at least 20 bytes long. The initial fragment of an IPv6
102-
packet must be at least 40 bytes long.
121+
The SIG uses IPv4/6 "payload length" field to determine the size of the packet. To make the processing easier, the fixed part of the IP header MUST be in the frame where the IP packet begins. In other words, the initial fragment of an IPv4 packet must be at least 20 bytes long, and the initial fragment of an IPv6 packet must be at least 40 bytes long.
103122

104123
Example
105124
-------
106125

107-
Following example shows three IP packets packed into three SIG frames::
126+
Following example shows three IP packets packed into three SIG frames:
108127

109128
+----------------------------+---------+---------+---------+----------------+
110129
| SIG HDR Index=0 Seq=0 | IP4 HDR | payload | IP6 HDR | payload... |

0 commit comments

Comments
 (0)