diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2018-07-16 09:05:42 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2018-07-17 18:40:00 +0000 |
commit | 220404db4488c6562f50f4b45ba75c8c256c8121 (patch) | |
tree | 4779f2d71f5e9ed6a7fae1bd0ad941ac088eeb72 | |
parent | bbf757556378fa52b0b0446d19b0c4cf806c9cef (diff) |
HC2VPP-176: add support for api-segment prefix
VPP can be run with custom SHM segment prefix:
sudo vpp unix {cli-listen /run/vpp/cli-vpp1.sock} api-segment { prefix vpp1 }
sudo vppctl -s /run/vpp/cli-vpp1.sock
this patch adds optional api-segment-prefix parameter to
/opt/honeycomb/config/jvpp.json file.
Example configuration:
{
"jvpp-connection-name": "honeycomb",
"api-segment-prefix": "vpp1",
"jvpp-request-timeout": 5
}
Change-Id: I7ca298644891602afe7898db88bb90d59b49ce4d
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2 files changed, 16 insertions, 7 deletions
diff --git a/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppRegistryProvider.java b/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppRegistryProvider.java index 300e03806..1432f2c53 100644 --- a/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppRegistryProvider.java +++ b/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/JVppRegistryProvider.java @@ -16,6 +16,9 @@ package io.fd.hc2vpp.common.integration; +import static com.google.common.base.Preconditions.checkState; +import static java.lang.String.format; + import com.google.common.base.Charsets; import com.google.common.io.CharStreams; import com.google.common.primitives.UnsignedInts; @@ -25,15 +28,11 @@ import io.fd.honeycomb.data.init.ShutdownHandler; import io.fd.vpp.jvpp.JVppRegistry; import io.fd.vpp.jvpp.JVppRegistryImpl; import io.fd.vpp.jvpp.VppJNIConnection; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStreamReader; - -import static com.google.common.base.Preconditions.checkState; -import static java.lang.String.format; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Provides JVppRegistry. Must be a singleton due to shutdown hook usage. Registers shutdown hook to disconnect from @@ -54,7 +53,13 @@ public final class JVppRegistryProvider extends ProviderTrait<JVppRegistry> { protected JVppRegistry create() { final JVppRegistry registry; try { - registry = new JVppRegistryImpl(config.jvppConnectionName); + if (config.apiSegmentPrefix.isPresent()) { + // TODO(VPP-1342): JVppRegistryImpl requires full SHM region name + final String shmName = String.format("/%s-vpe-api", config.apiSegmentPrefix.get()); + registry = new JVppRegistryImpl(config.jvppConnectionName, shmName); + } else { + registry = new JVppRegistryImpl(config.jvppConnectionName); + } connectedVppPid = initConnectedVppPid(registry); shutdownHandler.register("jvpp-registry", () -> { // Closing JVpp connection with shutdown hook to erase the connection from VPP so HC will be able diff --git a/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/VppConfigAttributes.java b/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/VppConfigAttributes.java index 9c351cb7c..ba1a843a4 100644 --- a/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/VppConfigAttributes.java +++ b/vpp-common/vpp-common-integration/src/main/java/io/fd/hc2vpp/common/integration/VppConfigAttributes.java @@ -16,6 +16,7 @@ package io.fd.hc2vpp.common.integration; +import java.util.Optional; import net.jmob.guice.conf.core.BindConfig; import net.jmob.guice.conf.core.InjectConfig; import net.jmob.guice.conf.core.Syntax; @@ -26,6 +27,9 @@ public class VppConfigAttributes { @InjectConfig("jvpp-connection-name") public String jvppConnectionName; + @InjectConfig("api-segment-prefix") + public Optional<String> apiSegmentPrefix; + @InjectConfig("jvpp-request-timeout") public int jvppRequestTimeout; } |