Revert "Checkstyle enforcer"
[controller.git] / opendaylight / sal / api / src / test / java / org / opendaylight / controller / sal / packet / PacketTest.java
1
2 /*
3  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
4  *
5  * This program and the accompanying materials are made available under the
6  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7  * and is available at http://www.eclipse.org/legal/epl-v10.html
8  */
9
10 package org.opendaylight.controller.sal.packet;
11
12 import java.util.Map;
13
14 import junit.framework.Assert;
15
16 import org.junit.Test;
17 import org.opendaylight.controller.sal.packet.Ethernet;
18
19 public class PacketTest {
20
21     @Test
22     public void testDeserialize() throws NoSuchFieldException, Exception {
23         short startOffset, numBits;
24
25         Ethernet eth = new Ethernet();
26         byte[] data = { 10, 12, 14, 20, 55, 69, //DMAC
27                 -90, -20, -100, -82, -78, -97, //SMAC
28                 8, 6, //ethype
29                 0, 1, // hw type
30                 8, 0, // proto (ip)
31                 6, // hw addr len
32                 4, // proto addr len
33                 0, 1, // op codes
34                 -90, -20, -100, -82, -78, -97, //src hw addr
35                 9, 9, 9, 1, // src proto
36                 0, 0, 0, 0, 0, 0, // target hw addr
37                 9, 9, 9, -2 }; // target proto
38
39         startOffset = 0;
40         numBits = 42 * 8;
41         eth.deserialize(data, startOffset, numBits);
42
43         byte[] dMAC = eth.getDestinationMACAddress();
44         byte[] sMAC = eth.getSourceMACAddress();
45         short etherType = eth.getEtherType();
46
47         Assert.assertTrue(dMAC[0] == 10);
48         Assert.assertTrue(dMAC[1] == 12);
49         Assert.assertTrue(dMAC[2] == 14);
50         Assert.assertTrue(dMAC[3] == 20);
51         Assert.assertTrue(dMAC[4] == 55);
52         Assert.assertTrue(dMAC[5] == 69);
53
54         Assert.assertTrue(sMAC[0] == -90);
55         Assert.assertTrue(sMAC[1] == -20);
56         Assert.assertTrue(sMAC[2] == -100);
57         Assert.assertTrue(sMAC[3] == -82);
58         Assert.assertTrue(sMAC[4] == -78);
59         Assert.assertTrue(sMAC[5] == -97);
60
61         Assert.assertTrue(etherType == 0x806);
62         
63         ARP arpPacket = (ARP) eth.getPayload();
64         
65         Assert.assertTrue(arpPacket.getHardwareType() == (byte)0x1);
66         Assert.assertTrue(arpPacket.getProtocolType() == 2048);
67         Assert.assertTrue(arpPacket.getHardwareAddressLength() == (byte)0x6);
68         Assert.assertTrue(arpPacket.getProtocolAddressLength() == (byte)0x4);
69         Assert.assertTrue(arpPacket.getOpCode() == 1);
70         
71         byte[] senderHwAddress = arpPacket.getSenderHardwareAddress();
72         byte[] senderProtocolAddress = arpPacket.getSenderProtocolAddress(); 
73         
74         byte[] targetHwAddress = arpPacket.getTargetHardwareAddress();
75         byte[] targetProtocolAddress = arpPacket.getTargetProtocolAddress(); 
76
77         
78         Assert.assertTrue(senderHwAddress[0] == (byte)0xA6);
79         Assert.assertTrue(senderHwAddress[1] == (byte)0xEC);
80         Assert.assertTrue(senderHwAddress[2] == (byte)0x9C);
81         Assert.assertTrue(senderHwAddress[3] == (byte)0xAE);
82         Assert.assertTrue(senderHwAddress[4] == (byte)0xB2);
83         Assert.assertTrue(senderHwAddress[5] == (byte)0x9F);
84         
85         Assert.assertTrue(senderProtocolAddress[0] == (byte)0x9);
86         Assert.assertTrue(senderProtocolAddress[1] == (byte)0x9);
87         Assert.assertTrue(senderProtocolAddress[2] == (byte)0x9);
88         Assert.assertTrue(senderProtocolAddress[3] == (byte)0x1);
89
90         Assert.assertTrue(targetHwAddress[0] == (byte)0x0);
91         Assert.assertTrue(targetHwAddress[1] == (byte)0x0);
92         Assert.assertTrue(targetHwAddress[2] == (byte)0x0);
93         Assert.assertTrue(targetHwAddress[3] == (byte)0x0);
94         Assert.assertTrue(targetHwAddress[4] == (byte)0x0);
95         Assert.assertTrue(targetHwAddress[5] == (byte)0x0);
96
97         Assert.assertTrue(senderProtocolAddress[0] == (byte)0x9);
98         Assert.assertTrue(senderProtocolAddress[1] == (byte)0x9);
99         Assert.assertTrue(senderProtocolAddress[2] == (byte)0x9);
100         Assert.assertTrue(senderProtocolAddress[3] == (byte)0x1);
101
102         Assert.assertTrue(targetProtocolAddress[0] == (byte)0x9);
103         Assert.assertTrue(targetProtocolAddress[1] == (byte)0x9);
104         Assert.assertTrue(targetProtocolAddress[2] == (byte)0x9);
105         Assert.assertTrue(targetProtocolAddress[3] == (byte)0xFE);      
106     }
107
108     @Test
109     public void testSerialize() throws NoSuchFieldException, Exception {
110         Ethernet eth = new Ethernet();
111         Map<String, byte[]> fCValues = eth.hdrFieldsMap;
112
113         byte[] dMAC = { 10, 12, 14, 20, 55, 69 };
114         byte[] sMAC = { 82, 97, 109, 117, 127, -50 };
115         short etherType = 2054;
116
117         byte[] dMACdata, sMACdata, etherTypedata;
118         byte[] data = new byte[20];
119
120         eth.setDestinationMACAddress(dMAC);
121         eth.setSourceMACAddress(sMAC);
122         eth.setEtherType(etherType);
123
124         dMACdata = (byte[]) fCValues.get("DestinationMACAddress");
125         sMACdata = (byte[]) fCValues.get("SourceMACAddress");
126         etherTypedata = (byte[]) fCValues.get("EtherType");
127
128         Assert.assertTrue(dMACdata[0] == 10);
129         Assert.assertTrue(dMACdata[1] == 12);
130         Assert.assertTrue(dMACdata[2] == 14);
131         Assert.assertTrue(dMACdata[3] == 20);
132         Assert.assertTrue(dMACdata[4] == 55);
133         Assert.assertTrue(dMACdata[5] == 69);
134
135         Assert.assertTrue(sMACdata[0] == 82);
136         Assert.assertTrue(sMACdata[1] == 97);
137         Assert.assertTrue(sMACdata[2] == 109);
138         Assert.assertTrue(sMACdata[3] == 117);
139         Assert.assertTrue(sMACdata[4] == 127);
140         Assert.assertTrue(sMACdata[5] == -50);
141
142         Assert.assertTrue(etherTypedata[0] == 8);
143         Assert.assertTrue(etherTypedata[1] == 6);
144         data = eth.serialize();
145
146         Assert.assertTrue(data[0] == 10);
147         Assert.assertTrue(data[1] == 12);
148         Assert.assertTrue(data[2] == 14);
149         Assert.assertTrue(data[3] == 20);
150         Assert.assertTrue(data[4] == 55);
151         Assert.assertTrue(data[5] == 69);
152
153         Assert.assertTrue(data[6] == 82);
154         Assert.assertTrue(data[7] == 97);
155         Assert.assertTrue(data[8] == 109);
156         Assert.assertTrue(data[9] == 117);
157         Assert.assertTrue(data[10] == 127);
158         Assert.assertTrue(data[11] == -50);
159
160         Assert.assertTrue(data[12] == 8);
161         Assert.assertTrue(data[13] == 6);
162
163     }
164 }