Use latest sfc-model
[netvirt.git] / openstack / net-virt-sfc / it / src / test / java / org / opendaylight / ovsdb / openstack / netvirt / sfc / utils / AclUtils.java
1 /*
2  * Copyright © 2015 Red Hat, 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.ovsdb.openstack.netvirt.sfc.utils;
10
11 import java.util.ArrayList;
12 import java.util.List;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.AccessListsBuilder;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.Acl;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.AclBuilder;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.acl.AccessListEntriesBuilder;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.acl.access.list.entries.Ace;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.acl.access.list.entries.AceBuilder;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.acl.access.list.entries.ace.ActionsBuilder;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.acl.access.list.entries.ace.MatchesBuilder;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.acl.access.list.entries.ace.actions.packet.handling.PermitBuilder;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.acl.access.list.entries.ace.matches.ace.type.AceIpBuilder;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.packet.fields.rev150611.acl.transport.header.fields.DestinationPortRangeBuilder;
25
26 public class AclUtils {
27     public MatchesBuilder createMatches (MatchesBuilder matchesBuilder, int destPort) {
28         PortNumber portNumber = new PortNumber(destPort);
29         DestinationPortRangeBuilder destinationPortRangeBuilder = new DestinationPortRangeBuilder();
30         destinationPortRangeBuilder.setLowerPort(portNumber);
31         destinationPortRangeBuilder.setUpperPort(portNumber);
32
33         AceIpBuilder aceIpBuilder = new AceIpBuilder();
34         aceIpBuilder.setDestinationPortRange(destinationPortRangeBuilder.build());
35         matchesBuilder.setAceType(aceIpBuilder.build());
36
37         return matchesBuilder;
38     }
39
40     public ActionsBuilder createActions (ActionsBuilder actionsBuilder, Boolean permit) {
41         PermitBuilder permitBuilder = new PermitBuilder();
42         permitBuilder.setPermit(Boolean.TRUE);
43         actionsBuilder.setPacketHandling(permitBuilder.build());
44
45         return actionsBuilder;
46     }
47
48     public AceBuilder createAccessListEntryBuilder(AceBuilder accessListEntryBuilder,
49                                                    String ruleName,
50                                                    MatchesBuilder matchesBuilder,
51                                                    ActionsBuilder actionsBuilder) {
52         accessListEntryBuilder.setRuleName(ruleName);
53         accessListEntryBuilder.setMatches(matchesBuilder.build());
54         accessListEntryBuilder.setActions(actionsBuilder.build());
55
56         return accessListEntryBuilder;
57     }
58
59     public AccessListEntriesBuilder createAccessListEntries(AccessListEntriesBuilder accessListEntriesBuilder,
60                                                             AceBuilder accessListEntryBuilder) {
61         List<Ace> accessListEntriesList = new ArrayList<>();
62         accessListEntriesList.add(accessListEntryBuilder.build());
63
64         return accessListEntriesBuilder;
65     }
66
67     public AclBuilder createAccessList(AclBuilder accessListBuilder,
68                                        String aclName,
69                                        AccessListEntriesBuilder accessListEntriesBuilder) {
70         accessListBuilder.setAclName(aclName);
71         accessListBuilder.setAccessListEntries(accessListEntriesBuilder.build());
72
73         return accessListBuilder;
74     }
75
76     public AccessListsBuilder createAccessLists(AccessListsBuilder accessListsBuilder,
77                                                 AclBuilder accessListBuilder) {
78         List<Acl> accessListList = new ArrayList<>();
79         accessListList.add(accessListBuilder.build());
80         accessListsBuilder.setAcl(accessListList);
81
82         return accessListsBuilder;
83     }
84 }