2 * Copyright © 2015 Red Hat, 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.ovsdb.openstack.netvirt.sfc.utils;
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;
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);
33 AceIpBuilder aceIpBuilder = new AceIpBuilder();
34 aceIpBuilder.setDestinationPortRange(destinationPortRangeBuilder.build());
35 matchesBuilder.setAceType(aceIpBuilder.build());
37 return matchesBuilder;
40 public ActionsBuilder createActions (ActionsBuilder actionsBuilder, Boolean permit) {
41 PermitBuilder permitBuilder = new PermitBuilder();
42 permitBuilder.setPermit(Boolean.TRUE);
43 actionsBuilder.setPacketHandling(permitBuilder.build());
45 return actionsBuilder;
48 public AceBuilder createAccessListEntryBuilder(AceBuilder accessListEntryBuilder,
50 MatchesBuilder matchesBuilder,
51 ActionsBuilder actionsBuilder) {
52 accessListEntryBuilder.setRuleName(ruleName);
53 accessListEntryBuilder.setMatches(matchesBuilder.build());
54 accessListEntryBuilder.setActions(actionsBuilder.build());
56 return accessListEntryBuilder;
59 public AccessListEntriesBuilder createAccessListEntries(AccessListEntriesBuilder accessListEntriesBuilder,
60 AceBuilder accessListEntryBuilder) {
61 List<Ace> accessListEntriesList = new ArrayList<>();
62 accessListEntriesList.add(accessListEntryBuilder.build());
64 return accessListEntriesBuilder;
67 public AclBuilder createAccessList(AclBuilder accessListBuilder,
69 AccessListEntriesBuilder accessListEntriesBuilder) {
70 accessListBuilder.setAclName(aclName);
71 accessListBuilder.setAccessListEntries(accessListEntriesBuilder.build());
73 return accessListBuilder;
76 public AccessListsBuilder createAccessLists(AccessListsBuilder accessListsBuilder,
77 AclBuilder accessListBuilder) {
78 List<Acl> accessListList = new ArrayList<>();
79 accessListList.add(accessListBuilder.build());
80 accessListsBuilder.setAcl(accessListList);
82 return accessListsBuilder;