214186cac8a60c3f8c79c884cd924fba214b4475
[groupbasedpolicy.git] / neutron-ovsdb / src / test / java / org / opendaylight / groupbasedpolicy / neutron / ovsdb / TunnelTypeTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.groupbasedpolicy.neutron.ovsdb;
10
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertTrue;
13
14 import java.util.ArrayList;
15 import java.util.List;
16
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;
24
25
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";
46
47     private List<Options> nshOptions = null;
48     private List<Options> ofOverlayOptions = null;
49     @Before
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());
91     }
92
93     @Test
94     public void testNshTunnelType() throws Exception {
95
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));
108     }
109
110     @Test
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));
124     }
125 }