在仿真中,因实验需求需实现不同的流进入不同的meter。
最开始学习omnet中inet4.4.1中ATS例子,里面使用了meter,但是该例子中同一优先级的不同流如:
*.*Switch.bridging.streamCoder.decoder.mapping =
[{pcp: 6, stream: "steering"},
{pcp: 6, stream: "front left wheel"},
{pcp: 6, stream: "front right wheel"},
{pcp: 6, stream: "rear left wheel"}]
所有pcp为6的流进入的是同一个meter,以下介绍两种方法实现不同的流使用不用的meter。
1. 在map中加入每条流的源地址。
*.*Switch.bridging.streamCoder.decoder.mapping =
[{source: "steering", pcp: 6, stream: "steering"}
{source: "frontLeftWheel", pcp: 6, stream: "front left wheel"},
{source: "frontRightWheel", pcp: 6, stream: "front right wheel"},
{source: "rearLeftWheel", pcp: 6, stream: "rear left wheel"}]
2. 为每条流添加一个VLAN,如下
# disable automatic MAC forwarding table configuration
*.macForwardingTableConfigurator.typename = ""
*.switch.bridging.streamCoder.decoder.mapping =
[{vlan: 1, pcp: 6, stream: "steering"}
{vlan: 2, pcp: 6, stream: "front left wheel"},
{vlan: 3, pcp: 6, stream: "front right wheel"},
{vlan: 4, pcp: 6, stream: "rear left wheel"}]
# map destination MAC address and VLAN pairs to network interfaces
*.switch.macTable.forwardingTable = [{address: "server1", vlan: 1, interface: "eth2"},
{address: "server1", vlan: 2, interface: "eth2"},
{address: "server1", vlan: 3, interface: "eth2"},
{address: "server1", vlan: 4, interface: "eth2"}]
# allow ingress traffic from VLAN 1 2 3 4
*.switch4.ieee8021q.qTagHeaderChecker.vlanIdFilter = [1,2,3,4]
两种方法都可实现同一优先级的不同流进入不同的meter,第一种方法更为简单,若需要同一个终端发出多条优先级相同的流时,可使用第二种方法。
在此非常感谢实验室同学的帮助。