16 package org.openkilda.floodlight.pathverification;
18 import static org.easymock.EasyMock.expect;
19 import static org.easymock.EasyMock.replay;
20 import static org.junit.Assert.assertArrayEquals;
22 import net.floodlightcontroller.core.FloodlightContext;
23 import net.floodlightcontroller.core.IFloodlightProviderService;
24 import net.floodlightcontroller.core.IOFSwitch;
25 import net.floodlightcontroller.core.internal.IOFSwitchService;
26 import net.floodlightcontroller.core.module.FloodlightModuleContext;
27 import org.apache.commons.codec.binary.Hex;
28 import org.easymock.EasyMock;
29 import org.junit.After;
30 import org.junit.AfterClass;
31 import org.junit.Before;
32 import org.junit.BeforeClass;
33 import org.junit.Test;
35 import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
36 import org.projectfloodlight.openflow.protocol.OFPacketOut;
37 import org.projectfloodlight.openflow.protocol.OFPortDesc;
38 import org.projectfloodlight.openflow.types.MacAddress;
39 import org.projectfloodlight.openflow.types.OFPort;
41 import java.net.InetSocketAddress;
42 import java.util.Arrays;
45 protected FloodlightContext
cntx;
50 protected IOFSwitch
sw1, sw2;
61 public void setUp() throws Exception {
63 cntx =
new FloodlightContext();
64 FloodlightModuleContext fmc =
new FloodlightModuleContext();
70 pvs.initAlgorithm(
"secret");
72 srcIpTarget =
new InetSocketAddress(
"192.168.10.1", 200);
73 dstIpTarget =
new InetSocketAddress(
"192.168.10.101", 100);
75 sw2HwAddrTarget =
"AA:BB:CC:DD:EE:FF";
77 OFPortDesc sw1Port1 = EasyMock.createMock(OFPortDesc.class);
78 expect(sw1Port1.getHwAddr()).andReturn(MacAddress.of(
sw1HwAddrTarget)).anyTimes();
79 OFPortDesc sw2Port1 = EasyMock.createMock(OFPortDesc.class);
80 expect(sw2Port1.getHwAddr()).andReturn(MacAddress.of(sw2HwAddrTarget)).anyTimes();
94 @SuppressWarnings(
"static-access")
102 System.out.println(
"packet: " + Hex.encodeHexString(packet.getData()));
105 byte[] srcMac = Arrays.copyOfRange(packet.getData(), 6, 12);
109 byte[] dstMac = Arrays.copyOfRange(packet.getData(), 0, 6);
113 byte[] srcIpActual = Arrays.copyOfRange(packet.getData(), 26, 30);
114 assertArrayEquals(
srcIpTarget.getAddress().getAddress(), srcIpActual);
117 byte[] dstIpActual = Arrays.copyOfRange(packet.getData(), 30, 34);
118 assertArrayEquals(dstIpTarget.getAddress().getAddress(), dstIpActual);
127 byte[] srcMacActual = Arrays.copyOfRange(packet.getData(), 6, 12);
128 assertArrayEquals(MacAddress.of(
sw1HwAddrTarget).getBytes(), srcMacActual);
131 byte[] dstMacActual = Arrays.copyOfRange(packet.getData(), 0, 6);
132 assertArrayEquals(MacAddress.of(sw2HwAddrTarget).getBytes(), dstMacActual);
135 byte[] srcIpActual = Arrays.copyOfRange(packet.getData(), 26, 30);
136 assertArrayEquals(
srcIpTarget.getAddress().getAddress(), srcIpActual);
137 byte[] dstIpActual = Arrays.copyOfRange(packet.getData(), 30, 34);
138 assertArrayEquals(dstIpTarget.getAddress().getAddress(), dstIpActual);
PathVerificationService pvs
OFDescStatsReply swDescription
static void tearDownAfterClass()
static void setUpBeforeClass()
OFPacketOut generateVerificationPacket(IOFSwitch srcSw, OFPort port)
static final String VERIFICATION_PACKET_IP_DST
IOFSwitch buildMockIOFSwitch(Long id, OFPortDesc portDesc, OFFactory factory, OFDescStatsReply swDesc, InetSocketAddress inetAddr)
MockFloodlightProvider mockFloodlightProvider
MockSwitchManager getMockSwitchService()
static final String VERIFICATION_BCAST_PACKET_DST
InetSocketAddress srcIpTarget