Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch: draft 1 #3

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 53 additions & 2 deletions switch.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,54 @@
# Switch
# The FC Switch

TODO: add skeleton
The Switch provides multihop message passing.
It receives packets from several Peering Connections,
and passes them on to the respective next hop,
as defined by the packet's Switch Label.

The Switch operates below the Routing layer and above the Peering layer.
The Switch is to FC, what Layer 2 is to an IP/Ethernet network.

## Overview

- Wire
- Switch label
- Encoding schemes
- Fixed-width vs. variable-width
- Label operations
- Packets
- PeerLink
- Congestion Control
- Multipath Peering

The Router adds a Switch Label to the packet,
which is used by the Switch to pass the packet on
to the right connection maintained by the Peering Controller.

An fc00 node doesn't neccessarily run the layers above the Switch.
It can just as well merely provide transit to its peers.
(how to look past the switch?)

The Peering Controller opens, maintains, and closes Peering Connections.
Every connection is registered with the Switch, which assigns it a Director.
Multiple connections might be registered per peer,
and will result in separate Directors, e.g. for Wifi and cable.
In addition to outgoing and incoming connections,
a "self connection" is registered, which is not backed by a transport.
The self connection is used by the router to transmit and receive packets.

## Packet Layout

```
1 2 3
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 | |
+ Switch Label +
4 | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
8 | Congest |S| V |labelShift | Penalty |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 | |
+ Data Packet or Control Packet +
|
```