Python-API: Inital commit of Python bindings for the VPP API.
See: https://wiki.fd.io/view/VPP/Python_API Change-Id: If135fc32208c7031787e1935b399d930e0e1ea1f Signed-off-by: Ole Troan <ot@cisco.com>
This commit is contained in:
35
vpp-api/java/japi/org/openvpp/vppjapi/vppApiCallbacks.java
Normal file
35
vpp-api/java/japi/org/openvpp/vppjapi/vppApiCallbacks.java
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
import java.io.IOException;
|
||||
import org.openvpp.vppjapi.vppApi;
|
||||
|
||||
public abstract class vppApiCallbacks extends vppApi {
|
||||
public vppApiCallbacks(String clientName) throws IOException {
|
||||
super(clientName);
|
||||
}
|
||||
/* Disabled!
|
||||
*
|
||||
* public abstract void interfaceDetails(
|
||||
int ifIndex, String interfaceName, int supIfIndex, byte[] physAddr,
|
||||
byte adminUp, byte linkUp, byte linkDuplex, byte linkSpeed,
|
||||
int subId, byte subDot1ad, byte subNumberOfTags, int subOuterVlanId, int subInnerVlanId,
|
||||
byte subExactMatch, byte subDefault, byte subOuterVlanIdAny, byte subInnerVlanIdAny,
|
||||
int vtrOp, int vtrPushDot1q, int vtrTag1, int vtrTag2);
|
||||
*/
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
import org.openvpp.vppjapi.vppBridgeDomainInterfaceDetails;
|
||||
|
||||
public final class vppBridgeDomainDetails {
|
||||
public String name;
|
||||
public int bdId;
|
||||
public boolean flood;
|
||||
public boolean uuFlood;
|
||||
public boolean forward;
|
||||
public boolean learn;
|
||||
public boolean arpTerm;
|
||||
public String bviInterfaceName;
|
||||
public vppBridgeDomainInterfaceDetails[] interfaces;
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public final class vppBridgeDomainInterfaceDetails {
|
||||
public String interfaceName;
|
||||
public byte splitHorizonGroup;
|
||||
}
|
237
vpp-api/java/japi/org/openvpp/vppjapi/vppConn.java
Normal file
237
vpp-api/java/japi/org/openvpp/vppjapi/vppConn.java
Normal file
@ -0,0 +1,237 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.nio.file.attribute.PosixFilePermission;
|
||||
import java.nio.file.attribute.PosixFilePermissions;
|
||||
import java.util.Set;
|
||||
|
||||
import org.openvpp.vppjapi.vppVersion;
|
||||
import org.openvpp.vppjapi.vppInterfaceDetails;
|
||||
import org.openvpp.vppjapi.vppInterfaceCounters;
|
||||
import org.openvpp.vppjapi.vppBridgeDomainDetails;
|
||||
import org.openvpp.vppjapi.vppIPv4Address;
|
||||
import org.openvpp.vppjapi.vppIPv6Address;
|
||||
import org.openvpp.vppjapi.vppVxlanTunnelDetails;
|
||||
|
||||
public class vppConn implements AutoCloseable {
|
||||
private static final String LIBNAME = "libvppjni.so.0.0.0";
|
||||
|
||||
static {
|
||||
try {
|
||||
loadLibrary();
|
||||
} catch (Exception e) {
|
||||
System.out.printf("Can't find vpp jni library: %s\n", LIBNAME);
|
||||
throw new ExceptionInInitializerError(e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void loadStream(final InputStream is) throws IOException {
|
||||
final Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
|
||||
final Path p = Files.createTempFile(LIBNAME, null, PosixFilePermissions.asFileAttribute(perms));
|
||||
try {
|
||||
Files.copy(is, p, StandardCopyOption.REPLACE_EXISTING);
|
||||
|
||||
try {
|
||||
Runtime.getRuntime().load(p.toString());
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
throw new IOException(String.format("Failed to load library %s", p), e);
|
||||
}
|
||||
} finally {
|
||||
try {
|
||||
Files.deleteIfExists(p);
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void loadLibrary() throws IOException {
|
||||
try (final InputStream is = vppConn.class.getResourceAsStream('/' + LIBNAME)) {
|
||||
if (is == null) {
|
||||
throw new IOException(String.format("Failed to open library resource %s",
|
||||
LIBNAME));
|
||||
}
|
||||
loadStream(is);
|
||||
}
|
||||
}
|
||||
|
||||
private static vppConn currentConnection = null;
|
||||
private final String clientName;
|
||||
private volatile boolean disconnected = false;
|
||||
|
||||
// Hidden on purpose to prevent external instantiation
|
||||
vppConn(final String clientName) throws IOException {
|
||||
this.clientName = clientName;
|
||||
|
||||
synchronized (vppConn.class) {
|
||||
if (currentConnection != null) {
|
||||
throw new IOException("Already connected as " + currentConnection.clientName);
|
||||
}
|
||||
|
||||
final int ret = clientConnect(clientName);
|
||||
if (ret != 0) {
|
||||
throw new IOException("Connection returned error " + ret);
|
||||
}
|
||||
|
||||
currentConnection = this;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized final void close() {
|
||||
if (!disconnected) {
|
||||
disconnected = true;
|
||||
|
||||
synchronized (vppConn.class) {
|
||||
clientDisconnect();
|
||||
currentConnection = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this instance is connected.
|
||||
*
|
||||
* @throws IllegalStateException if this instance was disconnected.
|
||||
*/
|
||||
protected final void checkConnected() {
|
||||
if (disconnected) {
|
||||
throw new IllegalStateException("Disconnected client " + clientName);
|
||||
}
|
||||
}
|
||||
|
||||
public final int getRetval(int context, int release) {
|
||||
checkConnected();
|
||||
return getRetval0(context, release);
|
||||
}
|
||||
|
||||
public final String getInterfaceList (String nameFilter) {
|
||||
checkConnected();
|
||||
return getInterfaceList0(nameFilter);
|
||||
}
|
||||
|
||||
public final int swIfIndexFromName (String interfaceName) {
|
||||
checkConnected();
|
||||
return swIfIndexFromName0(interfaceName);
|
||||
}
|
||||
|
||||
public final String interfaceNameFromSwIfIndex (int swIfIndex) {
|
||||
checkConnected();
|
||||
return interfaceNameFromSwIfIndex0(swIfIndex);
|
||||
}
|
||||
|
||||
public final void clearInterfaceTable () {
|
||||
checkConnected();
|
||||
clearInterfaceTable0();
|
||||
}
|
||||
|
||||
public final vppInterfaceDetails[] swInterfaceDump (byte nameFilterValid, byte [] nameFilter) {
|
||||
checkConnected();
|
||||
return swInterfaceDump0(nameFilterValid, nameFilter);
|
||||
}
|
||||
|
||||
public final int bridgeDomainIdFromName(String bridgeDomain) {
|
||||
checkConnected();
|
||||
return bridgeDomainIdFromName0(bridgeDomain);
|
||||
}
|
||||
|
||||
public final int findOrAddBridgeDomainId(String bridgeDomain) {
|
||||
checkConnected();
|
||||
return findOrAddBridgeDomainId0(bridgeDomain);
|
||||
}
|
||||
|
||||
public final vppVersion getVppVersion() {
|
||||
checkConnected();
|
||||
return getVppVersion0();
|
||||
}
|
||||
|
||||
public final vppInterfaceCounters getInterfaceCounters(int swIfIndex) {
|
||||
checkConnected();
|
||||
return getInterfaceCounters0(swIfIndex);
|
||||
}
|
||||
|
||||
public final int[] bridgeDomainDump(int bdId) {
|
||||
checkConnected();
|
||||
return bridgeDomainDump0(bdId);
|
||||
}
|
||||
|
||||
public final vppBridgeDomainDetails getBridgeDomainDetails(int bdId) {
|
||||
checkConnected();
|
||||
return getBridgeDomainDetails0(bdId);
|
||||
}
|
||||
|
||||
public final vppL2Fib[] l2FibTableDump(int bdId) {
|
||||
checkConnected();
|
||||
return l2FibTableDump0(bdId);
|
||||
}
|
||||
|
||||
public final int bridgeDomainIdFromInterfaceName(String interfaceName) {
|
||||
checkConnected();
|
||||
return bridgeDomainIdFromInterfaceName0(interfaceName);
|
||||
}
|
||||
|
||||
public final vppIPv4Address[] ipv4AddressDump(String interfaceName) {
|
||||
checkConnected();
|
||||
return ipv4AddressDump0(interfaceName);
|
||||
}
|
||||
|
||||
public final vppIPv6Address[] ipv6AddressDump(String interfaceName) {
|
||||
checkConnected();
|
||||
return ipv6AddressDump0(interfaceName);
|
||||
}
|
||||
|
||||
public final vppVxlanTunnelDetails[] vxlanTunnelDump(int swIfIndex) {
|
||||
checkConnected();
|
||||
return vxlanTunnelDump0(swIfIndex);
|
||||
}
|
||||
|
||||
public final int setInterfaceDescription(String ifName, String ifDesc) {
|
||||
checkConnected();
|
||||
return setInterfaceDescription0(ifName, ifDesc);
|
||||
}
|
||||
|
||||
public final String getInterfaceDescription(String ifName) {
|
||||
checkConnected();
|
||||
return getInterfaceDescription0(ifName);
|
||||
}
|
||||
|
||||
private static native int clientConnect(String clientName);
|
||||
private static native void clientDisconnect();
|
||||
private static native int getRetval0(int context, int release);
|
||||
private static native String getInterfaceList0(String nameFilter);
|
||||
private static native int swIfIndexFromName0(String interfaceName);
|
||||
private static native String interfaceNameFromSwIfIndex0(int swIfIndex);
|
||||
private static native void clearInterfaceTable0();
|
||||
private static native vppInterfaceDetails[] swInterfaceDump0(byte nameFilterValid, byte [] nameFilter);
|
||||
private static native int bridgeDomainIdFromName0(String bridgeDomain);
|
||||
private static native int findOrAddBridgeDomainId0(String bridgeDomain);
|
||||
private static native vppVersion getVppVersion0();
|
||||
private static native vppInterfaceCounters getInterfaceCounters0(int swIfIndex);
|
||||
private static native int[] bridgeDomainDump0(int bdId);
|
||||
private static native vppBridgeDomainDetails getBridgeDomainDetails0(int bdId);
|
||||
private static native vppL2Fib[] l2FibTableDump0(int bdId);
|
||||
private static native int bridgeDomainIdFromInterfaceName0(String interfaceName);
|
||||
private static native vppIPv4Address[] ipv4AddressDump0(String interfaceName);
|
||||
private static native vppIPv6Address[] ipv6AddressDump0(String interfaceName);
|
||||
private static native vppVxlanTunnelDetails[] vxlanTunnelDump0(int swIfIndex);
|
||||
private static native int setInterfaceDescription0(String ifName, String ifDesc);
|
||||
private static native String getInterfaceDescription0(String ifName);
|
||||
}
|
26
vpp-api/java/japi/org/openvpp/vppjapi/vppIPv4Address.java
Normal file
26
vpp-api/java/japi/org/openvpp/vppjapi/vppIPv4Address.java
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public final class vppIPv4Address {
|
||||
public final int ip;
|
||||
public final byte prefixLength;
|
||||
|
||||
public vppIPv4Address(int ip, byte prefixLength) {
|
||||
this.ip = ip;
|
||||
this.prefixLength = prefixLength;
|
||||
}
|
||||
}
|
27
vpp-api/java/japi/org/openvpp/vppjapi/vppIPv6Address.java
Normal file
27
vpp-api/java/japi/org/openvpp/vppjapi/vppIPv6Address.java
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public class vppIPv6Address {
|
||||
// FIXME: this is dangerous
|
||||
public final byte[] ip;
|
||||
public final byte prefixLength;
|
||||
|
||||
public vppIPv6Address(byte[] ip, byte prefixLength) {
|
||||
this.ip = ip;
|
||||
this.prefixLength = prefixLength;
|
||||
}
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public final class vppInterfaceCounters {
|
||||
|
||||
public final long rxOctets;
|
||||
public final long rxIp4;
|
||||
public final long rxIp6;
|
||||
public final long rxUnicast;
|
||||
public final long rxMulticast;
|
||||
public final long rxBroadcast;
|
||||
public final long rxDiscard;
|
||||
public final long rxFifoFull;
|
||||
public final long rxError;
|
||||
public final long rxUnknownProto;
|
||||
public final long rxMiss;
|
||||
|
||||
public final long txOctets;
|
||||
public final long txIp4;
|
||||
public final long txIp6;
|
||||
public final long txUnicast;
|
||||
public final long txMulticast;
|
||||
public final long txBroadcast;
|
||||
public final long txDiscard;
|
||||
public final long txFifoFull;
|
||||
public final long txError;
|
||||
public final long txUnknownProto;
|
||||
public final long txMiss;
|
||||
|
||||
public vppInterfaceCounters(
|
||||
long rxOctets, long rxIp4, long rxIp6, long rxUni, long rxMulti,
|
||||
long rxBcast, long rxDiscard, long rxFifoFull, long rxError,
|
||||
long rxUnknownProto, long rxMiss,
|
||||
long txOctets, long txIp4, long txIp6, long txUni, long txMulti,
|
||||
long txBcast, long txDiscard, long txFifoFull, long txError,
|
||||
long txUnknownProto, long txMiss)
|
||||
{
|
||||
this.rxOctets = rxOctets;
|
||||
this.rxIp4 = rxIp4;
|
||||
this.rxIp6 = rxIp6;
|
||||
this.rxUnicast = rxUni;
|
||||
this.rxMulticast = rxMulti;
|
||||
this.rxBroadcast = rxBcast;
|
||||
this.rxDiscard = rxDiscard;
|
||||
this.rxFifoFull = rxFifoFull;
|
||||
this.rxError = rxError;
|
||||
this.rxUnknownProto = rxUnknownProto;
|
||||
this.rxMiss = rxMiss;
|
||||
|
||||
this.txOctets = txOctets;
|
||||
this.txIp4 = txIp4;
|
||||
this.txIp6 = txIp6;
|
||||
this.txUnicast = txUni;
|
||||
this.txMulticast = txMulti;
|
||||
this.txBroadcast = txBcast;
|
||||
this.txDiscard = txDiscard;
|
||||
this.txFifoFull = txFifoFull;
|
||||
this.txError = txError;
|
||||
this.txUnknownProto = txUnknownProto;
|
||||
this.txMiss = txMiss;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public final class vppInterfaceDetails {
|
||||
public final int ifIndex;
|
||||
public final String interfaceName;
|
||||
public final int supIfIndex;
|
||||
// FIXME: this is dangerous
|
||||
public final byte[] physAddr;
|
||||
public final byte adminUp;
|
||||
public final byte linkUp;
|
||||
public final byte linkDuplex;
|
||||
public final byte linkSpeed;
|
||||
public final int subId;
|
||||
public final byte subDot1ad;
|
||||
public final byte subNumberOfTags;
|
||||
public final int subOuterVlanId;
|
||||
public final int subInnerVlanId;
|
||||
public final byte subExactMatch;
|
||||
public final byte subDefault;
|
||||
public final byte subOuterVlanIdAny;
|
||||
public final byte subInnerVlanIdAny;
|
||||
public final int vtrOp;
|
||||
public final int vtrPushDot1q;
|
||||
public final int vtrTag1;
|
||||
public final int vtrTag2;
|
||||
public final int linkMtu;
|
||||
|
||||
public vppInterfaceDetails(int ifIndex, String interfaceName, int supIfIndex, byte[] physAddr, byte adminUp,
|
||||
byte linkUp, byte linkDuplex, byte linkSpeed, int subId, byte subDot1ad, byte subNumberOfTags,
|
||||
int subOuterVlanId, int subInnerVlanId, byte subExactMatch, byte subDefault, byte subOuterVlanIdAny,
|
||||
byte subInnerVlanIdAny, int vtrOp, int vtrPushDot1q, int vtrTag1, int vtrTag2, int linkMtu)
|
||||
{
|
||||
this.ifIndex = ifIndex;
|
||||
this.interfaceName = interfaceName;
|
||||
this.supIfIndex = supIfIndex;
|
||||
this.physAddr = physAddr;
|
||||
this.adminUp = adminUp;
|
||||
this.linkUp = linkUp;
|
||||
this.linkDuplex = linkDuplex;
|
||||
this.linkSpeed = linkSpeed;
|
||||
this.subId = subId;
|
||||
this.subDot1ad = subDot1ad;
|
||||
this.subNumberOfTags = subNumberOfTags;
|
||||
this.subOuterVlanId = subOuterVlanId;
|
||||
this.subInnerVlanId = subInnerVlanId;
|
||||
this.subExactMatch = subExactMatch;
|
||||
this.subDefault = subDefault;
|
||||
this.subOuterVlanIdAny = subOuterVlanIdAny;
|
||||
this.subInnerVlanIdAny = subInnerVlanIdAny;
|
||||
this.vtrOp = vtrOp;
|
||||
this.vtrPushDot1q = vtrPushDot1q;
|
||||
this.vtrTag1 = vtrTag1;
|
||||
this.vtrTag2 = vtrTag2;
|
||||
this.linkMtu = linkMtu;
|
||||
}
|
||||
}
|
35
vpp-api/java/japi/org/openvpp/vppjapi/vppL2Fib.java
Normal file
35
vpp-api/java/japi/org/openvpp/vppjapi/vppL2Fib.java
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public final class vppL2Fib {
|
||||
// FIXME: this is dangerous
|
||||
public final byte[] physAddress;
|
||||
public final boolean staticConfig;
|
||||
public final String outgoingInterface;
|
||||
public final boolean filter;
|
||||
public final boolean bridgedVirtualInterface;
|
||||
|
||||
public vppL2Fib(byte[] physAddress, boolean staticConfig,
|
||||
String outgoingInterface, boolean filter,
|
||||
boolean bridgedVirtualInterface) {
|
||||
this.physAddress = physAddress;
|
||||
this.staticConfig = staticConfig;
|
||||
this.outgoingInterface = outgoingInterface;
|
||||
this.filter = filter;
|
||||
this.bridgedVirtualInterface = bridgedVirtualInterface;
|
||||
}
|
||||
}
|
31
vpp-api/java/japi/org/openvpp/vppjapi/vppVersion.java
Normal file
31
vpp-api/java/japi/org/openvpp/vppjapi/vppVersion.java
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public final class vppVersion {
|
||||
public final String programName;
|
||||
public final String buildDirectory;
|
||||
public final String gitBranch;
|
||||
public final String buildDate;
|
||||
|
||||
public vppVersion(String progName, String buildDir, String gitBranch, String buildDate) {
|
||||
this.programName = progName;
|
||||
this.buildDirectory = buildDir;
|
||||
this.gitBranch = gitBranch;
|
||||
this.buildDate = buildDate;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Cisco and/or its affiliates.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at:
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openvpp.vppjapi;
|
||||
|
||||
public final class vppVxlanTunnelDetails {
|
||||
public final int srcAddress;
|
||||
public final int dstAddress;
|
||||
public final int encapVrfId;
|
||||
public final int vni;
|
||||
public final int decapNextIndex;
|
||||
|
||||
public vppVxlanTunnelDetails(int srcAddress, int dstAddress,
|
||||
int encapVrfId, int vni, int decapNextIndex) {
|
||||
this.srcAddress = srcAddress;
|
||||
this.dstAddress = dstAddress;
|
||||
this.encapVrfId = encapVrfId;
|
||||
this.vni = vni;
|
||||
this.decapNextIndex = decapNextIndex;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user