2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.neutron.ovsdb;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertTrue;
14 import java.util.ArrayList;
15 import java.util.List;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentationBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsBuilder;
26 public class TunnelTypeTest {
27 protected static final String VNID_KEY = "key";
28 protected static final String VNID_VALUE = "flow";
29 protected static final String REMOTE_IP_KEY = "remote_ip";
30 protected static final String REMOTE_IP_VALUE = "flow";
31 private static final String DESTPORT_KEY = "dst_port";
32 private static final Integer VXLAN_GPE_PORT_NUMBER = 6633;
33 private static final String DESTPORT_VALUE = VXLAN_GPE_PORT_NUMBER.toString();
34 private static final String NSH_NSI_KEY = "nsi";
35 private static final String NSH_NSI_VALUE = "flow";
36 private static final String NSH_NSP_KEY = "nsp";
37 private static final String NSH_NSP_VALUE = "flow";
38 private static final String NSH_NSHC1_KEY = "nshc1";
39 private static final String NSH_NSHC1_VALUE = "flow";
40 private static final String NSH_NSHC2_KEY = "nshc2";
41 private static final String NSH_NSHC2_VALUE = "flow";
42 private static final String NSH_NSHC3_KEY = "nshc3";
43 private static final String NSH_NSHC3_VALUE = "flow";
44 private static final String NSH_NSHC4_KEY = "nshc4";
45 private static final String NSH_NSHC4_VALUE = "flow";
47 private List<Options> nshOptions = null;
48 private List<Options> ofOverlayOptions = null;
50 public void setUp() throws Exception {
51 nshOptions = new ArrayList<Options>();
52 ofOverlayOptions = new ArrayList<Options>();
53 OptionsBuilder ob = new OptionsBuilder();
54 ob.setOption(VNID_KEY)
55 .setValue(VNID_VALUE);
56 nshOptions.add(ob.build());
57 ofOverlayOptions.add(ob.build());
58 ob = new OptionsBuilder();
59 ob.setOption(REMOTE_IP_KEY)
60 .setValue(REMOTE_IP_VALUE);
61 nshOptions.add(ob.build());
62 ofOverlayOptions.add(ob.build());
63 ob = new OptionsBuilder();
64 ob.setOption(NSH_NSI_KEY)
65 .setValue(NSH_NSI_VALUE);
66 nshOptions.add(ob.build());
67 ob = new OptionsBuilder();
68 ob.setOption(NSH_NSP_KEY)
69 .setValue(NSH_NSP_VALUE);
70 nshOptions.add(ob.build());
71 ob = new OptionsBuilder();
72 ob.setOption(NSH_NSHC1_KEY)
73 .setValue(NSH_NSHC1_VALUE);
74 nshOptions.add(ob.build());
75 ob = new OptionsBuilder();
76 ob.setOption(NSH_NSHC2_KEY)
77 .setValue(NSH_NSHC2_VALUE);
78 nshOptions.add(ob.build());
79 ob = new OptionsBuilder();
80 ob.setOption(NSH_NSHC3_KEY)
81 .setValue(NSH_NSHC3_VALUE);
82 nshOptions.add(ob.build());
83 ob = new OptionsBuilder();
84 ob.setOption(NSH_NSHC4_KEY)
85 .setValue(NSH_NSHC4_VALUE);
86 nshOptions.add(ob.build());
87 ob = new OptionsBuilder();
88 ob.setOption(DESTPORT_KEY)
89 .setValue(DESTPORT_VALUE);
90 nshOptions.add(ob.build());
94 public void testNshTunnelType() throws Exception {
96 AbstractTunnelType tunnel = new VxlanGpeTunnelType();
97 OvsdbTerminationPointAugmentationBuilder otpab = new OvsdbTerminationPointAugmentationBuilder();
98 otpab.setOptions(nshOptions);
99 otpab.setInterfaceType(InterfaceTypeVxlan.class);
100 OvsdbTerminationPointAugmentation tpAugmentation = otpab.build();
101 assertTrue(tunnel.isValidTunnelPort(tpAugmentation));
102 tunnel = new VxlanTunnelType();
103 otpab = new OvsdbTerminationPointAugmentationBuilder();
104 otpab.setOptions(nshOptions);
105 otpab.setInterfaceType(InterfaceTypeVxlan.class);
106 tpAugmentation = otpab.build();
107 assertFalse(tunnel.isValidTunnelPort(tpAugmentation));
111 public void testOfOverlayTunnelType() throws Exception {
112 AbstractTunnelType tunnel = new VxlanTunnelType();
113 OvsdbTerminationPointAugmentationBuilder otpab = new OvsdbTerminationPointAugmentationBuilder();
114 otpab.setOptions(ofOverlayOptions);
115 otpab.setInterfaceType(InterfaceTypeVxlan.class);
116 OvsdbTerminationPointAugmentation tpAugmentation = otpab.build();
117 assertTrue(tunnel.isValidTunnelPort(tpAugmentation));
118 tunnel = new VxlanGpeTunnelType();
119 otpab = new OvsdbTerminationPointAugmentationBuilder();
120 otpab.setOptions(ofOverlayOptions);
121 otpab.setInterfaceType(InterfaceTypeVxlan.class);
122 tpAugmentation = otpab.build();
123 assertFalse(tunnel.isValidTunnelPort(tpAugmentation));