|
In ns-3-dev, we do not have a way to express class of service at the application layer so that packets are prioritized in the Wi-Fi layer.
This is a proposal for how to pass PIEEE802.1p class of service value from IP layer (IPv4 only right now) to Wi-Fi so that Wi-Fi access category can be set without Wi-Fi having to peek at the IP header (Wi-Fi does not have an internet module dependency).
This is implemented as a tag that is passed from IP to Wi-Fi; it is stripped in most legacy NetDevice types but converted to Wi-Fi QoS tag.
Thoughts on the approach in general? We now have a somewhat clumsy way to pass TOS from socket to the device-- there is a SocketIpTosTag to get this info from the socket level to Ipv4L3Protocol, then converted to a ClassOfServiceTag to get from IPv4 to Wi-Fi, then converted internal to Wi-Fi to a QosTag. Should we get rid of some, or all, of these tags (seems to me that QosTag could be retired if we just kept ClassOfService tag deeper into this device)?
Tags were introduced to avoid API change between layers, but we could do it a different way (have WifiNetDevice expose a special Send() method, and use GetObject<>() at the Ipv4L3Protocol to see if the device supported that special interface).
If you don't have time to look at all files, look at ipv4-l3-protocol.cc, wifi-net-device.cc, udp-client.cc, and class-of-service-tag.{cc,h} for the main modifications and example of how it is plumbed into an application. I also added proposed documentation on setting TOS to socket.h.
See https://codereview.appspot.com/277570043/ for an alternative implementation.
Total comments: 10
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+458 lines, -0 lines) |
Patch |
|
M |
examples/wireless/wscript
|
View
|
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/applications/model/onoff-application.h
|
View
|
|
2 chunks |
+17 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/applications/model/onoff-application.cc
|
View
|
|
4 chunks |
+28 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/applications/model/udp-client.h
|
View
|
|
1 chunk |
+20 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/applications/model/udp-client.cc
|
View
|
|
4 chunks |
+29 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/bridge/model/bridge-net-device.cc
|
View
|
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/csma/model/csma-net-device.cc
|
View
|
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/fd-net-device/model/fd-net-device.cc
|
View
|
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/internet/model/ipv4-header.h
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/internet/model/ipv4-header.cc
|
View
|
|
1 chunk |
+41 lines, -0 lines |
2 comments
|
Download
|
|
M |
src/internet/model/ipv4-l3-protocol.cc
|
View
|
|
4 chunks |
+11 lines, -0 lines |
1 comment
|
Download
|
|
M |
src/lte/model/lte-enb-net-device.cc
|
View
|
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/lte/model/lte-ue-net-device.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/mesh/model/mesh-point-device.cc
|
View
|
|
2 chunks |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/network/model/socket.h
|
View
|
|
1 chunk |
+36 lines, -0 lines |
3 comments
|
Download
|
|
A |
src/network/utils/class-of-service-tag.h
|
View
|
|
1 chunk |
+96 lines, -0 lines |
1 comment
|
Download
|
|
A |
src/network/utils/class-of-service-tag.cc
|
View
|
|
1 chunk |
+97 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/network/wscript
|
View
|
|
2 chunks |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/point-to-point/model/point-to-point-net-device.cc
|
View
|
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/sixlowpan/model/sixlowpan-net-device.cc
|
View
|
|
2 chunks |
+5 lines, -0 lines |
3 comments
|
Download
|
|
M |
src/uan/model/uan-net-device.cc
|
View
|
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/virtual-net-device/model/virtual-net-device.cc
|
View
|
|
3 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/wave/model/wave-net-device.cc
|
View
|
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/wifi/model/ap-wifi-mac.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/wifi/model/wifi-net-device.cc
|
View
|
|
3 chunks |
+15 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/wimax/model/wimax-net-device.cc
|
View
|
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
Total messages: 8
|