-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[networking] Fix Chapar & GP to new networking spec
- All protocols in networking must be declare as a `Frame` structure - Moved some unrelated details from `Chapar` to `networking` and `Asb` RFCs - some minor fixes and improvements
- Loading branch information
1 parent
c3e7cdd
commit 1bd7a4b
Showing
6 changed files
with
109 additions
and
92 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Special Signature Frame (MAC, Tag, ...) | ||
This is special frame that don't need `Type` field and always appear in the end of a packet(or a frame). Due to carry on end of each packet(or frame) it must be in reverse to read its fields. Depend on crypto mode it use to authenticate data transmitted and check packet(or frame) healthy in any network hop, But usually just first router and receiver check packet(or frame) signature. | ||
|
||
```go | ||
type PacketSignature struct { | ||
Signature []byte | ||
SignatureScheme uint16 // SignatureScheme identifies a signature algorithm supported by TLS. See RFC 8446, Section 4.2.3. | ||
Length uint16 // including the header fields | ||
} | ||
``` | ||
|
||
## Padding Frame | ||
If block cipher use, add some random data to have fix size packet in random location of the frame. | ||
|
||
```go | ||
type Padding struct { | ||
Length uint16 | ||
Padding []byte | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,37 @@ | ||
# Asb - Physical Protocol | ||
# Asb - Physical Protocol | ||
|
||
- This Frame structure will transport by physical layer so it is payload of desire frame and that frame have its header and structure like StartDelimiter, EndDelimiter, CheckSequence, ... | ||
|
||
## Hardwares | ||
Chapar functions can add by switching fabric unit (SFU) in any devices by any interfaces like PCIe, .... It can have 1 to 256 wired port or 2^16(65536) wireless port. | ||
|
||
### Core | ||
The line processing unit (LPU) provides physical interfaces connecting the SFU(switching fabric unit) to external networks. The LPU processes and forwards service data. In addition, the LPU maintains and manages link protocols and frames congestions. | ||
|
||
### Port Types | ||
- RJ45 Port. RJ45 port (on 100/1000BASE Ethernet layer one) can be used in most cases. | ||
- SFP Port | ||
- SFP+ Port | ||
- SFP28 Port | ||
- QSFP+ Port | ||
- QSFP28 Port | ||
- Combo Port | ||
- Stack Port | ||
|
||
### Adaptor | ||
Suggest to be addable port protocol like [SFP](https://en.wikipedia.org/wiki/Small_form-factor_pluggable_transceiver). | ||
|
||
### Port Interfaces | ||
offer diverse wired and wireless interfaces, for example, Ethernet(Layer1), [Power-line Communication](https://en.wikipedia.org/wiki/Power-line_communication), radio frequency(RF), RS485, RS232, ... | ||
|
||
### Wireless Access Point | ||
Each Chapar wireless ap device handles two hops of the frame instead of regular one hop in each switching hop. It means each wireless ap can serve 2^16(65536) devices. | ||
Like other wireless technology, We must provide some dedicate channel: | ||
- Broadcast control channel (BCCH) to manage broadcasting for all user equipment | ||
- Paging control channel (PCCH) to manage paging messages --- why not page device by DTCH????? | ||
- Common control channel (CCCH) and dedicated control channel (DCCH) for common messages for all user equipment in the same cell | ||
- Dedicated traffic channel (DTCH) to send data to the specific user equipment in a cell | ||
|
||
Use channel 49 (694-790 MHz) in [UHF](https://en.wikipedia.org/wiki/Ultra_high_frequency) frequency range to broadcast available | ||
|
||
Each Chapar wireless ap device handles two hops of the frame instead of regular one hop in each switching hop. It means each wireless ap can serve 2^16(65536) devices. Chapar can help layer 1 protocols to made connections betweeen AP and clients. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,49 @@ | ||
# Networking | ||
All requirements in networking response with `frame` idea. Each network packet contains many frames in desire order that read by devices in a network to do some desire logic in each device, e.g. switching, routing, multiplexing, ... | ||
|
||
## Packet | ||
Strongly suggest respect OSI network model and order frames in any packet in OSI layers order. Strongly suggest **Frames** after layer 3 always encrypted. | ||
A packet at least have two(always the special signature frame appear at the end) or more frames in [sRPC format](./sRPC.md) | ||
|
||
## Frames | ||
As describe in [sRPC](./sRPC.md) too, Each packet can carry many frames until respect network MTU. All frames have fixed first field name `Type` with `signed 8bit` length (Negative frame type reserved and use to extend types to int16 (or int64) length) that is same as [MediaTypeID](./media-type.md) but not use 64bit unsigned integer and standard here as a byte to minimize packet unnecessary overhead. | ||
Frames indicate in each protocol RFC or in [sRPC Protocol](./sRPC.md). | ||
|
||
### Fields | ||
As describe in [sRPC](./sRPC.md) too, Each packet can carry many frames until respect network MTU. All frames have fixed first field name `FrameID` with `unsigned 8bit` length, that is same as [MediaTypeID](./media-type.md) but not use 64bit unsigned integer and standard here as a byte to minimize packet unnecessary overhead. | ||
|
||
```go | ||
type Frames struct { | ||
Type int16 | ||
FrameID byte | ||
} | ||
``` | ||
|
||
## Frames Number | ||
frames number will be register here in this table and must be respect by all: | ||
### Frames Number | ||
frames number will be register here in this table and must be respect by all. Number greater than 240 (FrameID > 240) use for experimental protocols and SHOULD ignore by any device that don't want to process them. | ||
|
||
| Num. | Frame name | Doc | | ||
| :---: | :---: | :---:| | ||
| Num. | Frame name | Doc | | ||
| :---: | :---: | :---: | | ||
| 0 | Unset | -------- | | ||
| 1 | Asb | [Protocol](./networking-osi_1-Asb.md) | | ||
| 2 | | | | ||
| 3 | | | | ||
| 4 | | | | ||
| 5 | | | | ||
| 2 | Chapar | [Protocol](./networking-osi_2-Chapar.md) | | ||
| 3 | GP | [Protocol](./networking-osi_3-Giti-Network.md) | | ||
| 4 | | | | ||
| 5 | | | | ||
| 127 | | | | ||
| 128 | Padding | [Protocol](./networking-frame-signature.md) | | ||
| 129 | PacketSequenceNumber | [Protocol](./sRPC.md) | | ||
| 130 | Ping | [Protocol](./sRPC.md) | | ||
|
||
#### Suggested experimental protocols | ||
Below frames can't use directly and must wrap inside a frame with `FrameID` in declared number. Some other can be find on [EtherType](https://en.wikipedia.org/wiki/EtherType). | ||
|
||
| Num. | Frame name | Doc | | ||
| :---: | :---: | :---: | | ||
| 241 | ARP | [ARP - Address Resolution Protocol](https://en.wikipedia.org/wiki/Address_Resolution_Protocol) | | ||
| 242 | VLANs | [VLANs](https://en.wikipedia.org/wiki/IEEE_802.1Q) | | ||
| 243 | IPV4 | [IPv4 - Internet Protocol v4](https://en.wikipedia.org/wiki/IPv4) | | ||
| 244 | IPV6 | [IPv6 - Internet Protocol v6](https://en.wikipedia.org/wiki/IPv6) | | ||
| 245 | NDP | [NDP - Neighbor Discovery Protocol](https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol) | | ||
| 246 | NTP | [NTP - Network_Time_Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) | | ||
|
||
### Methods | ||
Due some frames can work without need to have `Length` field, instead All frames handler must provide `NextFrame() []byte` method. |
Oops, something went wrong.