1
0
mirror of https://github.com/rtbrick/bngblaster.git synced 2024-05-06 15:54:57 +00:00

123 lines
5.0 KiB
Markdown
Raw Normal View History

2021-02-04 21:56:56 +01:00
# Traffic
2021-05-26 20:08:37 +02:00
The BNG Blaster is able to emulate bidirectional unicast
session traffic for all addresses assigned to a session
(IPv4, IPv6 and IPv6PD).
2021-02-04 21:56:56 +01:00
![BNG Blaster Session Traffic](images/bbl_session_traffic.png)
2021-05-26 20:08:37 +02:00
There is also support to generate IPv4 multicast traffic.
2021-02-04 21:56:56 +01:00
## Blaster Header and Fast Decode Signature
The 48 Byte fixed size BNG Blaster Header is added to all data packets
2021-05-26 20:08:37 +02:00
for traffic validation and fast decoding. The header is expected on the
last 48 bytes of the packet.
2021-02-04 21:56:56 +01:00
2021-05-26 20:08:37 +02:00
The type is set to 1 for all unicast session traffic and 2 for
IPv4 multicast traffic.
2021-02-04 21:56:56 +01:00
### Unicast Session Traffic
The 64 bit session key is used for all traffic from access (upstream)
and to access (downstream) interfaces to identify the corresponding
2021-05-26 20:08:37 +02:00
session which has send or should receive the packet.
2021-02-04 21:56:56 +01:00
```text
2021-02-04 21:56:56 +01:00
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BNG Blaster Magic Sequence |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2021-05-26 20:08:37 +02:00
| Type | Sub-Type | Direction | TX TOS |
2021-02-04 21:56:56 +01:00
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2021-05-26 20:08:37 +02:00
| Session Identifier |
2021-02-04 21:56:56 +01:00
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session Access Interface Index |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session Outer VLAN | Session Inner VLAN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flow Identifier |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flow Sequence Number |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Nanosecond Send Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```
![BNG Blaster Header](images/bbl_header.png)
### Multicast Traffic
```text
2021-02-04 21:56:56 +01:00
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BNG Blaster Magic Sequence |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2021-05-26 20:08:37 +02:00
| Type | Sub-Type | Direction | TX TOS |
2021-02-04 21:56:56 +01:00
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2021-05-26 20:08:37 +02:00
| Reserved |
2021-02-04 21:56:56 +01:00
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flow Identifier |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flow Sequence Number |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Nanosecond Send Timestamp |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```
2021-05-26 20:08:37 +02:00
NOTE: All attributes except IP addresses in the Blaster Header are
stored in host byte order for faster processing
2021-02-04 21:56:56 +01:00
(LE or BE depending on test system).
### BNG Blaster Magic Sequence
The 64 bit magic sequence is the word `RtBrick!` decoded as ASCII:
```text
2021-02-04 21:56:56 +01:00
0x5274427269636b21
```
2021-05-26 20:08:37 +02:00
The magic number allows to check for it on a given offset and process
only blaster header instead of decoding the whole packet for faster
packet processing.
2021-02-04 21:56:56 +01:00
### Flow Identifier
The 64 bit flow identifier is a global unique number which identifies
2021-05-26 20:08:37 +02:00
the flow.
2021-02-04 21:56:56 +01:00
### Flow Sequence Number
2021-05-26 20:08:37 +02:00
The 64 bit flow sequence number is sequential number starting with 1
and incremented per packet primary used to identity packet loss.
2021-02-04 21:56:56 +01:00
This number 0 means that sequencing is disabled.
### Nanosecond Send Timestamps
2021-05-26 20:08:37 +02:00
The 64 bit nanoseconds send timestamp is used for optional latency and
jitter calculations.
2021-02-04 21:56:56 +01:00
```text
2021-02-04 21:56:56 +01:00
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Seconds |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Nano Seconds |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```
The timestamp 0 means that timestamps are disabled.