Magnesium platform upgrade
[lispflowmapping.git] / integrationtest / src / test / java / org / opendaylight / lispflowmapping / integrationtest / MultiSiteScenarioUtil.java
1 /*
2  * Copyright (c) 2016 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 package org.opendaylight.lispflowmapping.integrationtest;
9
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId;
11
12 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
13
14 class MultiSiteScenarioUtil {
15     private final static String COMMON_IPV4_PREFIX = "192.0.";
16     private final static String COMMON_IPV4_SUFFIX = ".0";
17     private final static String HOST1 = ".1";
18     private final static String HOST2 = ".2";
19     private final static String HOST3 = ".3";
20     private final static String HOST4 = ".4";
21     private final static String HOST5 = ".5";
22
23     protected final static long VNI2 = 2L;
24     private final static long VNI3 = 3L;
25
26     static final Short DEFAULT_PRIORITY = 1;
27     static final Short DEFAULT_WEIGHT = 1;
28
29
30     /**
31      * constants for test scenario A
32      */
33     static final Site SITE_A = new Site("1", 'A', VNI2);
34     static final Site SITE_B = new Site("2", 'B', VNI2);
35     static final Site SITE_C = new Site("3", 'C', VNI2);
36     static final Site SITE_C_NEGATIVE = new Site("3", 'C', VNI2, "3", true);
37     static final Site SITE_C_RLOC_10 = new Site("3", 'C', VNI2, "10");
38     static final Site SITE_D4 = new Site("4", 'D', VNI2);
39     static final Site SITE_D5 = new Site("5", 'D', VNI3);
40
41     /**
42      * constants for test scenario B
43      */
44     static final Site SITE_A_SB = SITE_A;
45     static final Site SITE_B_SB = SITE_B;
46     static final Site SITE_C_SB = SITE_C;
47     static final Site SITE_C_WP_50_2_SB = new Site("3", 'C', VNI2, "3", (short) 50, (short) 2);
48     static final Site SITE_C_WP_100_1_SB = new Site("3", 'C', VNI2, "3", (short) 100, (short) 1);
49     static final Site SITE_D_DELETE_SB = new Site("3", 'D', VNI2, "4", true);
50     static final Site SITE_D_SB = new Site("3", 'D', VNI2, "4");
51     static final Site SITE_D_WP_50_2_SB = new Site("3", 'D', VNI2, "4", (short) 50, (short) 2);
52     static final Site SITE_D_WP_100_1_SB = new Site("3", 'D', VNI2, "4", (short) 100, (short) 1);
53     static final Site SITE_E_SB = new Site("10", 'E', VNI3);
54
55     private MultiSiteScenarioUtil() {
56         throw new UnsupportedOperationException();
57     }
58
59     static class Site {
60         protected final boolean isForDeletion;
61         protected final String eidPrefix;
62         protected final String[] host;
63         protected final String rloc;
64         protected final XtrId xtrId;
65         protected final InstanceIdType vni;
66         protected final short weight;
67         protected final short priority;
68
69         String getEidPrefix() {
70             return eidPrefix;
71         }
72
73         String getHost(final int index) {
74             return host[index];
75         }
76
77         String getRloc() {
78             return rloc;
79         }
80
81         XtrId getXtrId() {
82             return xtrId;
83         }
84
85         InstanceIdType getVNI() {
86             return vni;
87         }
88
89         short getWeight() {
90             return weight;
91         }
92
93         short getPriority() {
94             return priority;
95         }
96
97         boolean isForDeletion() {
98             return isForDeletion;
99         }
100
101         Site(final String siteSpecificIpPart, char siteId, final long vni, final String rloc, final boolean
102                 isForDeletion) {
103             this(siteSpecificIpPart, siteId, vni, rloc, DEFAULT_WEIGHT, DEFAULT_PRIORITY, isForDeletion);
104         }
105
106         Site(final String siteSpecificIpPart, char siteId, final long vni) {
107             this(siteSpecificIpPart, siteId, vni, siteSpecificIpPart, DEFAULT_WEIGHT, DEFAULT_PRIORITY, false);
108         }
109
110         Site(final String siteSpecificIpPart, char siteId, final long vni, final String rloc) {
111             this(siteSpecificIpPart, siteId, vni, rloc, DEFAULT_WEIGHT, DEFAULT_PRIORITY, false);
112         }
113
114         Site(final String siteSpecificIpPart, char siteId, final long vni, final String rloc, final short weight,
115              final short priority) {
116             this(siteSpecificIpPart, siteId, vni, rloc, weight, priority, false);
117         }
118         Site(final String siteSpecificIpPart, char siteId, final long vni, final String rloc, final short weight,
119              final short priority, final boolean isForDeletion) {
120             this.eidPrefix = COMMON_IPV4_PREFIX + siteSpecificIpPart + COMMON_IPV4_SUFFIX;
121             this.host = new String[]{
122                     ""
123                     ,COMMON_IPV4_PREFIX + siteSpecificIpPart + HOST1
124                     ,COMMON_IPV4_PREFIX + siteSpecificIpPart + HOST2
125                     ,COMMON_IPV4_PREFIX + siteSpecificIpPart + HOST3
126                     ,COMMON_IPV4_PREFIX + siteSpecificIpPart + HOST4
127                     ,COMMON_IPV4_PREFIX + siteSpecificIpPart + HOST5
128             };
129             this.xtrId = new XtrId(new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (byte) siteId});
130             this.vni = new InstanceIdType(vni);
131             this.rloc = rloc + "." + rloc + "." + rloc + "." + rloc;
132             this.weight = weight;
133             this.priority = priority;
134             this.isForDeletion = isForDeletion;
135         }
136
137     }
138
139 }