#! /usr/bin/perl
+# Copyright (c) 2009, 2010 Nicira Networks.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
use strict;
use warnings;
$flow{DL_SRC} = "00:02:e3:0f:80:a4";
$flow{DL_DST} = "00:1a:92:40:ac:05";
$flow{NW_PROTO} = 0;
+ $flow{NW_TOS} = 0;
$flow{NW_SRC} = '0.0.0.0';
$flow{NW_DST} = '0.0.0.0';
$flow{TP_SRC} = 0;
$flow{DL_TYPE} = 0x0800; # ETH_TYPE_IP
$flow{NW_SRC} = '10.0.2.15';
$flow{NW_DST} = '192.168.1.20';
+ $flow{NW_TOS} = 44;
if ($attrs{TP_PROTO} eq 'other') {
$flow{NW_PROTO} = 42;
} elsif ($attrs{TP_PROTO} eq 'TCP' ||
if ($attrs{DL_TYPE} eq 'ip') {
my $ip = pack('CCnnnCCnNN',
(4 << 4) | 5, # version, hdrlen
- 0, # type of service
+ $flow{NW_TOS}, # type of service
0, # total length (filled in later)
65432, # id
0, # frag offset
1); # in_port
print FLOWS pack_ethaddr($flow{DL_SRC});
print FLOWS pack_ethaddr($flow{DL_DST});
- print FLOWS pack('nnCxNNnn',
+ print FLOWS pack('nCxnCCxxNNnn',
$flow{DL_VLAN},
+ 0, # DL_VLAN_PCP
$flow{DL_TYPE},
+ $flow{NW_TOS},
$flow{NW_PROTO},
inet_aton($flow{NW_SRC}),
inet_aton($flow{NW_DST}),