Skip to content

Feat/tm examples docs - #29

Merged
Mingyumaz merged 4 commits into
HapCommSys:switch_channelfrom
Vineet1101:feat/tm-examples-docs
Aug 31, 2026
Merged

Feat/tm examples docs#29
Mingyumaz merged 4 commits into
HapCommSys:switch_channelfrom
Vineet1101:feat/tm-examples-docs

Conversation

@Vineet1101

Copy link
Copy Markdown
Collaborator

No description provided.

@Mingyumaz

Copy link
Copy Markdown
Contributor

The document doc/traffic-manager.md is solid and cleanly : )
After you fix #28 about the issue (e.g. "...counts a frame once it has been handed off for transmission; the datapath cannot yet report a send failure back"), I will merge all the commits.

@Vineet1101
Vineet1101 force-pushed the feat/tm-examples-docs branch from 38c9e4e to cb7325a Compare August 25, 2026 13:55
@Vineet1101

Copy link
Copy Markdown
Collaborator Author

The document doc/traffic-manager.md is solid and cleanly : ) After you fix #28 about the issue (e.g. "...counts a frame once it has been handed off for transmission; the datapath cannot yet report a send failure back"), I will merge all the commits.

done

Saturating UDP flow through the VOQ+fabric datapath with the switch egress
port as the sole bottleneck (ingress link kept fast so the queue-less host
NIC never limits). Measures goodput vs line rate.

Results: 100Mbps egress -> 97.13%, 1Gbps egress -> 97.09% of line (both at
the Ethernet/IP/UDP header-overhead ceiling ~97.1%), 0 drops, TM forwards
100% of offered load. Confirms the event-driven, completion-paced egress has
no artificial timer bottleneck.

One egress rate per invocation (bmv2 boots once per process):
  ./ns3 run "p4-voq-fabric-throughput --linkRate=100Mbps"
  ./ns3 run "p4-voq-fabric-throughput --linkRate=1000Mbps"
Design/validation doc for the Traffic Manager: VOQ -> fabric ->
strict-priority egress datapath, completion-driven egress + channel
model, the attribute/stats/drop-reason surface, and captured results
from the unit suite, the integration example, and the throughput
benchmark (near line rate at 100M/1G, zero internal drops).
Two UDP flows from separate sender hosts converge on one receiver
through the qos P4 program; HIGH (prio 3) and LOW (prio 1) contend at a
shared oversubscribed output port.  Strict priority protects HIGH at
~96% of its offered load while LOW is squeezed to the leftover capacity
and the excess is dropped from the low-priority queue.

Flows enter on separate ingress ports so each has its own VOQ and the
contention is resolved inside the switch (not at a shared host NIC).
Adds flowtable_priority.txt (3-host qos table) and folds the demo's
validated output into doc/traffic-manager.md.
…p reason

Reflect the completion-driven egress fix: NotifyEgressTxComplete() now
accounts for each frame by TmTxOutcome (transmitted / dropped / recirculated)
rather than counting every dequeued frame as transmitted. Add the
totalRecirculated counter and the EGRESS_POST_DEQUEUE_DROP drop reason to the
statistics section, and bump dropsByReason to [6].

Signed-off-by: Vineet1101 <vineetgoel692@gmail.com>
@Vineet1101
Vineet1101 force-pushed the feat/tm-examples-docs branch 2 times, most recently from 005f13a to aef9987 Compare August 31, 2026 13:03
@Mingyumaz
Mingyumaz merged commit 6423b0a into HapCommSys:switch_channel Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants