Add implementation for flat L3 overlay
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / commands / LoopbackCommandWrapper.java
1 /*
2  * Copyright (c) 2017 Cisco Systems. 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.renderer.vpp.commands;
10
11 import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General;
12 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
14
15 /**
16  * Created by Shakib Ahmed on 5/16/17.
17  */
18 public class LoopbackCommandWrapper {
19
20     public static LoopbackCommand simpleLoopbackPutCommand(String interfaceName,
21                                                     long vrf,
22                                                     IpAddress ipAddress,
23                                                     IpPrefix cidr) {
24         LoopbackCommand.LoopbackCommandBuilder simpleLoopbackCommandBuilder =
25                 simpleLoopbackCommandBuilder(interfaceName, vrf, ipAddress, cidr);
26         simpleLoopbackCommandBuilder.setOperation(General.Operations.PUT);
27         return simpleLoopbackCommandBuilder.build();
28     }
29
30     public static LoopbackCommand bviLoopbackPutCommand(String interfaceName,
31                                                  long vrf,
32                                                  IpAddress ipAddress,
33                                                  IpPrefix cidr,
34                                                  String bridgeDomainName) {
35         LoopbackCommand.LoopbackCommandBuilder bviLoopbackCommandBuilder =
36                 bviLoopbackCommandBuilder(interfaceName, vrf, ipAddress, cidr, bridgeDomainName);
37         bviLoopbackCommandBuilder.setOperation(General.Operations.PUT);
38         return bviLoopbackCommandBuilder.build();
39     }
40
41     private static LoopbackCommand.LoopbackCommandBuilder simpleLoopbackCommandBuilder(String interfaceName,
42                                                                                        long vrf,
43                                                                                        IpAddress ipAddress,
44                                                                                        IpPrefix cidr) {
45         LoopbackCommand.LoopbackCommandBuilder loopbackCommandBuilder = new LoopbackCommand.LoopbackCommandBuilder();
46         loopbackCommandBuilder.setInterfaceName(interfaceName);
47         loopbackCommandBuilder.setEnabled(true);
48         loopbackCommandBuilder.setVrfId(vrf);
49         loopbackCommandBuilder.setIpAddress(ipAddress);
50         loopbackCommandBuilder.setIpPrefix(cidr);
51         return loopbackCommandBuilder;
52     }
53
54     private static LoopbackCommand.LoopbackCommandBuilder bviLoopbackCommandBuilder(String interfaceName,
55                                                                                     long vrf,
56                                                                                     IpAddress ipAddress,
57                                                                                     IpPrefix cidr,
58                                                                                     String bridgeDomainName) {
59         LoopbackCommand.LoopbackCommandBuilder simpleLoopbackCommandBuilder =
60                 simpleLoopbackCommandBuilder(interfaceName, vrf, ipAddress, cidr);
61         simpleLoopbackCommandBuilder.setBridgeDomain(bridgeDomainName);
62         simpleLoopbackCommandBuilder.setBvi(true);
63         return simpleLoopbackCommandBuilder;
64     }
65 }