2 * Copyright (c) 2016 Cisco and/or its affiliates.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package io.fd.vpp.jvpp.acl.examples;
19 import static io.fd.vpp.jvpp.acl.examples.AclTestData.createAclRules;
20 import static io.fd.vpp.jvpp.acl.examples.AclTestData.createMacipRules;
22 import io.fd.vpp.jvpp.VppInvocationException;
23 import io.fd.vpp.jvpp.acl.dto.AclAddReplace;
24 import io.fd.vpp.jvpp.acl.dto.AclAddReplaceReply;
25 import io.fd.vpp.jvpp.acl.dto.AclDel;
26 import io.fd.vpp.jvpp.acl.dto.AclDelReply;
27 import io.fd.vpp.jvpp.acl.dto.AclDetailsReplyDump;
28 import io.fd.vpp.jvpp.acl.dto.AclDump;
29 import io.fd.vpp.jvpp.acl.dto.AclInterfaceListDetailsReplyDump;
30 import io.fd.vpp.jvpp.acl.dto.AclInterfaceListDump;
31 import io.fd.vpp.jvpp.acl.dto.AclInterfaceSetAclList;
32 import io.fd.vpp.jvpp.acl.dto.AclInterfaceSetAclListReply;
33 import io.fd.vpp.jvpp.acl.dto.MacipAclAdd;
34 import io.fd.vpp.jvpp.acl.dto.MacipAclAddReply;
35 import io.fd.vpp.jvpp.acl.dto.MacipAclAddReplace;
36 import io.fd.vpp.jvpp.acl.dto.MacipAclAddReplaceReply;
37 import io.fd.vpp.jvpp.acl.dto.MacipAclDel;
38 import io.fd.vpp.jvpp.acl.dto.MacipAclDelReply;
39 import io.fd.vpp.jvpp.acl.dto.MacipAclDetailsReplyDump;
40 import io.fd.vpp.jvpp.acl.dto.MacipAclDump;
41 import io.fd.vpp.jvpp.acl.future.FutureJVppAclFacade;
42 import java.util.concurrent.ExecutionException;
44 class AclTestRequests {
46 static MacipAclDetailsReplyDump sendMacIpDumpRequest(final FutureJVppAclFacade jvpp)
47 throws ExecutionException, InterruptedException {
48 System.out.println("Sending MacipAclDump request...");
49 MacipAclDetailsReplyDump dump = jvpp.macipAclDump(new MacipAclDump()).toCompletableFuture().get();
50 System.out.println("MacipAclDump returned");
54 static void sendMacIpAddRequest(final FutureJVppAclFacade jvpp) throws InterruptedException, ExecutionException {
55 final MacipAclAdd request = createMacIpAddRequest();
56 System.out.printf("Sending MacipAclAdd request %s%n", request.toString());
57 final MacipAclAddReply reply = jvpp.macipAclAdd(createMacIpAddRequest()).toCompletableFuture().get();
58 System.out.printf("MacipAclAdd send result = %s%n", reply);
61 static void sendMacIpAddReplaceRequest(final FutureJVppAclFacade jvpp) throws InterruptedException, ExecutionException {
62 final MacipAclAddReplace request = createMacIpAddReplaceRequest();
63 System.out.printf("Sending MacipAclAddReplace request %s%n", request.toString());
64 final MacipAclAddReplaceReply reply = jvpp.macipAclAddReplace(createMacIpAddReplaceRequest()).toCompletableFuture().get();
65 System.out.printf("MacipAclAddReplace send result = %s%n", reply);
68 static void sendMacIpDelRequest(final FutureJVppAclFacade jvpp) throws InterruptedException, ExecutionException {
69 final MacipAclDel request = new MacipAclDel();
71 System.out.printf("Sending MacipAclDel request %s%n", request.toString());
72 final MacipAclDelReply reply = jvpp.macipAclDel(request).toCompletableFuture().get();
73 System.out.printf("MacipAclDel send result = %s%n", reply);
76 static void sendAclAddRequest(final FutureJVppAclFacade jvpp) throws InterruptedException, ExecutionException {
77 final AclAddReplace request = createAclAddRequest();
78 System.out.printf("Sending AclAddReplace request %s%n", request.toString());
79 final AclAddReplaceReply reply = jvpp.aclAddReplace(request).toCompletableFuture().get();
80 System.out.printf("AclAddReplace send result = %s%n", reply);
83 static AclDetailsReplyDump sendAclDumpRequest(final FutureJVppAclFacade jvpp)
84 throws InterruptedException, VppInvocationException, ExecutionException {
85 System.out.println("Sending AclDump request...");
86 final AclDetailsReplyDump dump = jvpp.aclDump(new AclDump()).toCompletableFuture().get();
87 System.out.printf("AclDump send result = %s%n", dump);
91 static void sendAclDelRequest(final FutureJVppAclFacade jvpp) throws InterruptedException, ExecutionException {
92 final AclDel request = new AclDel();
94 System.out.printf("Sending AclDel request %s%n", request.toString());
95 final AclDelReply reply = jvpp.aclDel(request).toCompletableFuture().get();
96 System.out.printf("AclDel send result = %s%n", reply);
99 static AclInterfaceListDetailsReplyDump sendAclInterfaceListDumpRequest(final FutureJVppAclFacade jvpp)
100 throws InterruptedException, ExecutionException {
101 final AclInterfaceListDump request = new AclInterfaceListDump();
102 request.swIfIndex = 0;
103 System.out.printf("Sending AclInterfaceListDump request %s%n", request.toString());
104 final AclInterfaceListDetailsReplyDump dump = jvpp.aclInterfaceListDump(request).toCompletableFuture().get();
105 System.out.printf("AclInterfaceListDump send result = %s%n", dump);
109 static void sendAclInterfaceSetAclList(final FutureJVppAclFacade jvpp)
110 throws InterruptedException, ExecutionException {
111 final AclInterfaceSetAclList request = new AclInterfaceSetAclList();
113 request.acls = new int[]{1};
114 request.swIfIndex = 0;
116 System.out.printf("Sending AclInterfaceSetAclList request %s%n", request.toString());
117 final AclInterfaceSetAclListReply reply = jvpp.aclInterfaceSetAclList(request).toCompletableFuture().get();
118 System.out.printf("AclInterfaceSetAclList send result = %s%n", reply);
121 static void sendAclInterfaceDeleteList(final FutureJVppAclFacade jvpp)
122 throws InterruptedException, ExecutionException {
123 // uses same api but sets list to empty
124 final AclInterfaceSetAclList request = new AclInterfaceSetAclList();
126 request.acls = new int[]{};
127 request.swIfIndex = 0;
129 System.out.printf("Sending AclInterfaceSetAclList(Delete) request %s%n", request.toString());
130 final AclInterfaceSetAclListReply reply = jvpp.aclInterfaceSetAclList(request).toCompletableFuture().get();
131 System.out.printf("AclInterfaceSetAclList(Delete) send result = %s%n", reply);
134 private static MacipAclAdd createMacIpAddRequest() {
135 MacipAclAdd request = new MacipAclAdd();
138 request.r = createMacipRules();
142 private static MacipAclAddReplace createMacIpAddReplaceRequest() {
143 MacipAclAddReplace request = new MacipAclAddReplace();
146 request.aclIndex = 0;
147 request.r = createMacipRules();
151 private static AclAddReplace createAclAddRequest() {
152 AclAddReplace request = new AclAddReplace();
154 request.aclIndex = -1;// to define new one
156 request.r = createAclRules();