1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
\r
2 package org.opendaylight.openflowjava.protocol.impl.util;
\r
4 import junit.framework.Assert;
\r
5 import io.netty.buffer.ByteBuf;
\r
6 import io.netty.buffer.UnpooledByteBufAllocator;
\r
8 import org.junit.Test;
\r
9 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
\r
10 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
\r
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowWildcardsV10;
\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10;
\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10Builder;
\r
16 * @author michal.polkorab
\r
19 public class OF10MatchSerializerTest {
\r
22 * Testing correct serialization of ofp_match
\r
25 public void test() {
\r
26 ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
\r
27 MatchV10Builder builder = new MatchV10Builder();
\r
28 builder.setWildcards(new FlowWildcardsV10(false, false, false, true, false,
\r
29 false, true, false, true, true, true));
\r
30 builder.setNwSrcMask((short) 24);
\r
31 builder.setNwDstMask((short) 16);
\r
32 builder.setInPort(6653);
\r
33 builder.setDlSrc(new MacAddress("01:01:01:01:01:01"));
\r
34 builder.setDlDst(new MacAddress("02:02:02:02:02:02"));
\r
35 builder.setDlVlan(128);
\r
36 builder.setDlVlanPcp((short) 2);
\r
37 builder.setDlType(15);
\r
38 builder.setNwTos((short) 14);
\r
39 builder.setNwProto((short) 85);
\r
40 builder.setNwSrc(new Ipv4Address("1.1.1.2"));
\r
41 builder.setNwDst(new Ipv4Address("32.16.8.1"));
\r
42 builder.setTpSrc(2048);
\r
43 builder.setTpDst(4096);
\r
44 MatchV10 match = builder.build();
\r
45 OF10MatchSerializer.encodeMatchV10(out, match);
\r
47 Assert.assertEquals("Wrong wildcards", 2361553, out.readUnsignedInt());
\r
48 Assert.assertEquals("Wrong in-port", 6653, out.readUnsignedShort());
\r
49 byte[] dlSrc = new byte[6];
\r
50 out.readBytes(dlSrc);
\r
51 Assert.assertEquals("Wrong dl-src", "01:01:01:01:01:01", ByteBufUtils.macAddressToString(dlSrc));
\r
52 byte[] dlDst = new byte[6];
\r
53 out.readBytes(dlDst);
\r
54 Assert.assertEquals("Wrong dl-dst", "02:02:02:02:02:02", ByteBufUtils.macAddressToString(dlDst));
\r
55 Assert.assertEquals("Wrong dl-vlan", 128, out.readUnsignedShort());
\r
56 Assert.assertEquals("Wrong dl-vlan-pcp", 2, out.readUnsignedByte());
\r
58 Assert.assertEquals("Wrong dl-type", 15, out.readUnsignedShort());
\r
59 Assert.assertEquals("Wrong nw-tos", 14, out.readUnsignedByte());
\r
60 Assert.assertEquals("Wrong nw-proto", 85, out.readUnsignedByte());
\r
62 Assert.assertEquals("Wrong nw-src", 16843010, out.readUnsignedInt());
\r
63 Assert.assertEquals("Wrong nw-dst", 537921537, out.readUnsignedInt());
\r
64 Assert.assertEquals("Wrong tp-src", 2048, out.readUnsignedShort());
\r
65 Assert.assertEquals("Wrong tp-dst", 4096, out.readUnsignedShort());
\r
69 * Testing correct serialization of ofp_match
\r
72 public void test2() {
\r
73 ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
\r
74 MatchV10Builder builder = new MatchV10Builder();
\r
75 builder.setWildcards(new FlowWildcardsV10(true, true, true, true, true,
\r
76 true, true, true, true, true, true));
\r
77 builder.setNwSrcMask((short) 0);
\r
78 builder.setNwDstMask((short) 0);
\r
79 builder.setInPort(6653);
\r
80 builder.setDlSrc(new MacAddress("01:01:01:01:01:01"));
\r
81 builder.setDlDst(new MacAddress("02:02:02:02:02:02"));
\r
82 builder.setDlVlan(128);
\r
83 builder.setDlVlanPcp((short) 2);
\r
84 builder.setDlType(15);
\r
85 builder.setNwTos((short) 14);
\r
86 builder.setNwProto((short) 85);
\r
87 builder.setNwSrc(new Ipv4Address("1.1.1.2"));
\r
88 builder.setNwDst(new Ipv4Address("32.16.8.1"));
\r
89 builder.setTpSrc(2048);
\r
90 builder.setTpDst(4096);
\r
91 MatchV10 match = builder.build();
\r
92 OF10MatchSerializer.encodeMatchV10(out, match);
\r
94 Assert.assertEquals("Wrong wildcards", 4194303, out.readUnsignedInt());
\r
95 Assert.assertEquals("Wrong in-port", 6653, out.readUnsignedShort());
\r
96 byte[] dlSrc = new byte[6];
\r
97 out.readBytes(dlSrc);
\r
98 Assert.assertEquals("Wrong dl-src", "01:01:01:01:01:01", ByteBufUtils.macAddressToString(dlSrc));
\r
99 byte[] dlDst = new byte[6];
\r
100 out.readBytes(dlDst);
\r
101 Assert.assertEquals("Wrong dl-dst", "02:02:02:02:02:02", ByteBufUtils.macAddressToString(dlDst));
\r
102 Assert.assertEquals("Wrong dl-vlan", 128, out.readUnsignedShort());
\r
103 Assert.assertEquals("Wrong dl-vlan-pcp", 2, out.readUnsignedByte());
\r
105 Assert.assertEquals("Wrong dl-type", 15, out.readUnsignedShort());
\r
106 Assert.assertEquals("Wrong nw-tos", 14, out.readUnsignedByte());
\r
107 Assert.assertEquals("Wrong nw-proto", 85, out.readUnsignedByte());
\r
109 Assert.assertEquals("Wrong nw-src", 16843010, out.readUnsignedInt());
\r
110 Assert.assertEquals("Wrong nw-dst", 537921537, out.readUnsignedInt());
\r
111 Assert.assertEquals("Wrong tp-src", 2048, out.readUnsignedShort());
\r
112 Assert.assertEquals("Wrong tp-dst", 4096, out.readUnsignedShort());
\r