Skip to content

Commit

Permalink
switch: start draft 1
Browse files Browse the repository at this point in the history
  • Loading branch information
Lars Gierth committed May 29, 2016
1 parent 6bf1832 commit a5812eb
Showing 1 changed file with 53 additions and 2 deletions.
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 +
|
```

0 comments on commit a5812eb

Please sign in to comment.