Soft Patch Panel
 help / color / mirror / Atom feed
* [spp] [PATCH 0/2] Remove spp_vm
@ 2019-01-08  3:29 ogawa.yasufumi
  2019-01-08  3:29 ` [spp] [PATCH 1/2] spp_vm: remove spp_vm ogawa.yasufumi
  2019-01-08  3:29 ` [spp] [PATCH 2/2] Makefile: update dist-clean ogawa.yasufumi
  0 siblings, 2 replies; 3+ messages in thread
From: ogawa.yasufumi @ 2019-01-08  3:29 UTC (permalink / raw)
  To: ferruh.yigit, spp, ogawa.yasufumi

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Hi,

As announced in previous[1], remove spp_vm in this update. Spp_vm is
still able to be used to connect between apps in the VM, but it is
almost the same as launching spp_primary and spp_nfv on the VM. In
addition, IVSHMEM is not supported in DPDK anymore.

[1] https://mails.dpdk.org/archives/spp/2018-December/001078.html

Thanks,
Yasufumi

Yasufumi Ogawa (2):
  spp_vm: remove spp_vm
  Makefile: update dist-clean

 GNUmakefile     |   1 +
 src/Makefile    |   1 -
 src/vm/Makefile |  38 ----
 src/vm/args.c   |  79 -------
 src/vm/args.h   |  16 --
 src/vm/init.c   | 113 ----------
 src/vm/init.h   |  15 --
 src/vm/main.c   | 669 --------------------------------------------------------
 8 files changed, 1 insertion(+), 931 deletions(-)
 delete mode 100644 src/vm/Makefile
 delete mode 100644 src/vm/args.c
 delete mode 100644 src/vm/args.h
 delete mode 100644 src/vm/init.c
 delete mode 100644 src/vm/init.h
 delete mode 100644 src/vm/main.c

-- 
2.7.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [spp] [PATCH 1/2] spp_vm: remove spp_vm
  2019-01-08  3:29 [spp] [PATCH 0/2] Remove spp_vm ogawa.yasufumi
@ 2019-01-08  3:29 ` ogawa.yasufumi
  2019-01-08  3:29 ` [spp] [PATCH 2/2] Makefile: update dist-clean ogawa.yasufumi
  1 sibling, 0 replies; 3+ messages in thread
From: ogawa.yasufumi @ 2019-01-08  3:29 UTC (permalink / raw)
  To: ferruh.yigit, spp, ogawa.yasufumi

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

This update is to remove spp_vm from SPP.

Spp_vm is used to connect between apps in the VM, but it is almost the
same as launching spp_primary and spp_nfv on the VM. In addition,
IVSHMEM is not supported in DPDK anymore.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 src/Makefile    |   1 -
 src/vm/Makefile |  38 ----
 src/vm/args.c   |  79 -------
 src/vm/args.h   |  16 --
 src/vm/init.c   | 113 ----------
 src/vm/init.h   |  15 --
 src/vm/main.c   | 669 --------------------------------------------------------
 7 files changed, 931 deletions(-)
 delete mode 100644 src/vm/Makefile
 delete mode 100644 src/vm/args.c
 delete mode 100644 src/vm/args.h
 delete mode 100644 src/vm/init.c
 delete mode 100644 src/vm/init.h
 delete mode 100644 src/vm/main.c

diff --git a/src/Makefile b/src/Makefile
index 01f8929..8e2bffa 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -40,7 +40,6 @@ include $(RTE_SDK)/mk/rte.vars.mk
 
 DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += nfv
 DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += primary
-DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += vm
 DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += vf
 DIRS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += mirror
 
diff --git a/src/vm/Makefile b/src/vm/Makefile
deleted file mode 100644
index be3fa5e..0000000
--- a/src/vm/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2015-2016 Intel Corporation
-
-ifeq ($(RTE_SDK),)
-$(error "Please define RTE_SDK environment variable")
-endif
-
-# Default target, can be overriden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
-
-include $(RTE_SDK)/mk/rte.vars.mk
-
-ifneq ($(CONFIG_RTE_EXEC_ENV),"linuxapp")
-$(error This application can only operate in a linuxapp environment, \
-please change the definition of the RTE_TARGET environment variable)
-endif
-
-# binary name
-APP = spp_vm
-
-# all source are stored in SRCS-y
-SRCS-y := main.c init.c args.c ../shared/common.c
-
-INC := $(wildcard *.h)
-
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-CFLAGS += $(WERROR_FLAGS) -O3 -MMD
-CFLAGS += -I$(SRCDIR)/../shared
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-LDLIBS += -lrte_pmd_ring
-endif
-
-# for newer gcc, e.g. 4.4, no-strict-aliasing may not be necessary
-# and so the next line can be removed in those cases.
-EXTRA_CFLAGS += -fno-strict-aliasing
-
-include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/src/vm/args.c b/src/vm/args.c
deleted file mode 100644
index 4ae0e33..0000000
--- a/src/vm/args.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2015-2016 Intel Corporation
- */
-
-#include <getopt.h>
-
-#include <rte_memory.h>
-
-#include "args.h"
-#include "common.h"
-#include "init.h"
-
-/* global var for number of clients - extern in header */
-uint16_t client_id;
-char *server_ip;
-int server_port;
-
-static const char *progname;
-
-/**
- * Prints out usage information to stdout
- */
-static void
-usage(void)
-{
-	RTE_LOG(INFO, APP,
-	    "%s [EAL options] -- -p PORTMASK -n CLIENT_ID [-s NUM_SOCKETS]\n"
-	    " -p PORTMASK: hexadecimal bitmask of ports to use\n"
-	    " -n CLIENT_ID: the requested if of current client\n"
-	    , progname);
-}
-
-/**
- * The application specific arguments follow the DPDK-specific
- * arguments which are stripped by the DPDK init. This function
- * processes these application arguments, printing usage info
- * on error.
- */
-int
-parse_app_args(uint16_t max_ports, int argc, char *argv[])
-{
-	int option_index, opt;
-	char **argvopt = argv;
-	static struct option lgopts[] = { {0} };
-	int ret;
-
-	progname = argv[0];
-
-	while ((opt = getopt_long(argc, argvopt, "n:p:s:", lgopts,
-			&option_index)) != EOF) {
-		switch (opt) {
-		case 'p':
-			if (parse_portmask(ports, max_ports, optarg) != 0) {
-				usage();
-				return -1;
-			}
-			break;
-		case 'n':
-			if (parse_num_clients(&client_id, optarg) != 0) {
-				usage();
-				return -1;
-			}
-			break;
-		case 's':
-			ret = parse_server(&server_ip, &server_port, optarg);
-			if (ret != 0) {
-				usage();
-				return -1;
-			}
-			break;
-		default:
-			RTE_LOG(ERR, APP, "Unknown option '%c'\n", opt);
-			usage();
-			return -1;
-		}
-	}
-
-	return 0;
-}
diff --git a/src/vm/args.h b/src/vm/args.h
deleted file mode 100644
index d675ba5..0000000
--- a/src/vm/args.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2015-2016 Intel Corporation
- */
-
-#ifndef _ARGS_H_
-#define _ARGS_H_
-
-#include <stdint.h>
-
-extern uint16_t client_id;
-extern char *server_ip;
-extern int server_port;
-
-int parse_app_args(uint16_t max_ports, int argc, char *argv[]);
-
-#endif /* ifndef _ARGS_H_ */
diff --git a/src/vm/init.c b/src/vm/init.c
deleted file mode 100644
index dd4353d..0000000
--- a/src/vm/init.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2015-2016 Intel Corporation
- */
-
-#include <limits.h>
-
-#include <rte_cycles.h>
-#include <rte_memory.h>
-#include <rte_memzone.h>
-
-#include "args.h"
-#include "common.h"
-#include "init.h"
-
-/* The mbuf pool for packet rx */
-static struct rte_mempool *pktmbuf_pool;
-
-/* the port details */
-struct port_info *ports;
-
-/**
- * Initialise the mbuf pool for packet reception for the NIC, and any other
- * buffer pools needed by the app - currently none.
- */
-static int
-init_mbuf_pools(int total_ports)
-{
-	const unsigned int num_mbufs = total_ports * MBUFS_PER_PORT;
-
-	if (num_mbufs == 0)
-		return 0;
-
-	/*
-	 * don't pass single-producer/single-consumer flags to mbuf create as
-	 * it seems faster to use a cache instead
-	 */
-	RTE_LOG(INFO, APP,
-		"Lookup mbuf pool '%s' [%u mbufs] ...\n", VM_PKTMBUF_POOL_NAME,
-		num_mbufs);
-
-	pktmbuf_pool = rte_mempool_lookup(VM_PKTMBUF_POOL_NAME);
-	if (pktmbuf_pool == NULL) {
-		RTE_LOG(INFO, APP, "Creating mbuf pool '%s' [%u mbufs] ...\n",
-			VM_PKTMBUF_POOL_NAME, num_mbufs);
-
-		pktmbuf_pool = rte_mempool_create(VM_PKTMBUF_POOL_NAME,
-			num_mbufs, MBUF_SIZE, MBUF_CACHE_SIZE,
-			sizeof(struct rte_pktmbuf_pool_private),
-			rte_pktmbuf_pool_init, NULL, rte_pktmbuf_init, NULL,
-			rte_socket_id(), NO_FLAGS);
-	}
-
-	return (pktmbuf_pool == NULL); /* 0  on success */
-}
-
-/**
- * Main init function for the multi-process server app,
- * calls subfunctions to do each stage of the initialisation.
- */
-int
-init(int argc, char *argv[])
-{
-	int retval;
-	const struct rte_memzone *mz;
-	uint16_t count, total_ports;
-
-	/* init EAL, parsing EAL args */
-	retval = rte_eal_init(argc, argv);
-	if (retval < 0)
-		return -1;
-
-	argc -= retval;
-	argv += retval;
-
-	/* get total number of ports */
-	total_ports = rte_eth_dev_count_avail();
-
-	/* set up array for port data */
-	mz = rte_memzone_lookup(MZ_PORT_INFO);
-	if (mz == NULL) {
-		RTE_LOG(DEBUG, APP, "Cannot get port info structure\n");
-		mz = rte_memzone_reserve(MZ_PORT_INFO, sizeof(*ports),
-			rte_socket_id(), NO_FLAGS);
-		if (mz == NULL)
-			rte_exit(EXIT_FAILURE,
-				"Cannot reserve memzone for port info\n");
-		memset(mz->addr, 0, sizeof(*ports));
-	}
-	ports = mz->addr;
-
-	/* parse additional, application arguments */
-	retval = parse_app_args(total_ports, argc, argv);
-	if (retval != 0)
-		return -1;
-
-	/* initialise mbuf pools */
-	retval = init_mbuf_pools(total_ports);
-	if (retval != 0)
-		rte_exit(EXIT_FAILURE, "Cannot create needed mbuf pools\n");
-
-	/* now initialise the ports we will use */
-	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-		for (count = 0; count < total_ports; count++) {
-			retval = init_port(ports->id[count], pktmbuf_pool);
-			if (retval != 0)
-				rte_exit(EXIT_FAILURE,
-					"Cannot initialise port %d\n", count);
-		}
-	}
-	check_all_ports_link_status(ports, total_ports, (~0x0));
-
-	return 0;
-}
diff --git a/src/vm/init.h b/src/vm/init.h
deleted file mode 100644
index 6837873..0000000
--- a/src/vm/init.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2015-2016 Intel Corporation
- */
-
-#ifndef _INIT_H_
-#define _INIT_H_
-
-#include <stdint.h>
-
-/* the shared port information: port numbers, rx and tx stats etc. */
-extern struct port_info *ports;
-
-int init(int argc, char *argv[]);
-
-#endif /* ifndef _INIT_H_ */
diff --git a/src/vm/main.c b/src/vm/main.c
deleted file mode 100644
index c41502a..0000000
--- a/src/vm/main.c
+++ /dev/null
@@ -1,669 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2015-2016 Intel Corporation
- */
-
-#include <arpa/inet.h>
-
-#include <rte_eal_memconfig.h>
-#include <rte_eth_ring.h>
-#include <rte_memzone.h>
-
-#include "args.h"
-#include "common.h"
-#include "init.h"
-
-static sig_atomic_t on = 1;
-
-static enum cmd_type cmd = STOP;
-
-static struct port_map port_map[RTE_MAX_ETHPORTS];
-
-static struct port ports_fwd_array[RTE_MAX_ETHPORTS];
-
-/* It is used to convert port name from string type to enum */
-struct porttype_map {
-	const char     *port_name;
-	enum port_type port_type;
-};
-
-struct porttype_map portmap[] = {
-	{ .port_name = "phy",   .port_type = PHY, },
-	{ .port_name = "ring",  .port_type = RING, },
-	{ .port_name = "vhost", .port_type = VHOST, },
-	{ .port_name = NULL,    .port_type = UNDEF, },
-};
-
-/* Return a type of port as a enum member of porttype_map structure. */
-static enum port_type get_port_type(char *portname)
-{
-	for (int i = 0; portmap[i].port_name != NULL; i++) {
-		const char *port_name = portmap[i].port_name;
-		if (strncmp(portname, port_name, strlen(port_name)) == 0)
-			return portmap[i].port_type;
-	}
-	return UNDEF;
-}
-
-static void
-forward(void)
-{
-	uint16_t nb_rx;
-	uint16_t nb_tx;
-	uint16_t buf;
-	int in_port;
-	int out_port;
-	int i;
-
-	/* Go through every possible port numbers */
-	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
-		struct rte_mbuf *bufs[MAX_PKT_BURST];
-
-		if (ports_fwd_array[i].in_port_id == PORT_RESET)
-			continue;
-
-		if (ports_fwd_array[i].out_port_id == PORT_RESET)
-			continue;
-
-		/* if status active, i count is in port */
-		in_port = i;
-		out_port = ports_fwd_array[i].out_port_id;
-
-		/* Get burst of RX packets, from first port of pair. */
-		/* first port rx, second port tx */
-		nb_rx = ports_fwd_array[in_port].rx_func(in_port, 0, bufs,
-			MAX_PKT_BURST);
-		if (unlikely(nb_rx == 0))
-			continue;
-
-		port_map[in_port].stats->rx += nb_rx;
-
-		/* Send burst of TX packets, to second port of pair. */
-		nb_tx = ports_fwd_array[out_port].tx_func(out_port, 0, bufs,
-			nb_rx);
-
-		port_map[out_port].stats->tx += nb_tx;
-
-		/* Free any unsent packets. */
-		if (unlikely(nb_tx < nb_rx)) {
-			port_map[out_port].stats->tx_drop += nb_rx - nb_tx;
-			for (buf = nb_tx; buf < nb_rx; buf++)
-				rte_pktmbuf_free(bufs[buf]);
-		}
-	}
-}
-
-/* main processing loop */
-static void
-nfv_loop(void)
-{
-	unsigned int lcore_id = rte_lcore_id();
-
-	RTE_LOG(INFO, APP, "entering main loop on lcore %u\n", lcore_id);
-
-	while (1) {
-		if (unlikely(cmd == STOP)) {
-			sleep(1);
-			continue;
-		} else if (cmd == FORWARD) {
-			forward();
-		}
-	}
-}
-
-/* leading to nfv processing loop */
-static int
-main_loop(void *dummy __rte_unused)
-{
-	nfv_loop();
-	return 0;
-}
-
-static void
-port_map_init_one(unsigned int i)
-{
-	port_map[i].id = PORT_RESET;
-	port_map[i].port_type = UNDEF;
-	port_map[i].stats = &port_map[i].default_stats;
-}
-
-static void
-port_map_init(void)
-{
-	unsigned int i;
-
-	for (i = 0; i < RTE_MAX_ETHPORTS; i++)
-		port_map_init_one(i);
-}
-
-static void
-forward_array_init_one(int i)
-{
-	ports_fwd_array[i].in_port_id = PORT_RESET;
-	ports_fwd_array[i].out_port_id = PORT_RESET;
-}
-
-/* initialize forward array with default value */
-static void
-forward_array_init(void)
-{
-	unsigned int i;
-
-	/* initialize port forward array */
-	for (i = 0; i < RTE_MAX_ETHPORTS; i++)
-		forward_array_init_one(i);
-}
-
-static int
-do_send(int *connected, int *sock, char *str)
-{
-	int ret;
-
-	ret = send(*sock, str, MSG_SIZE, 0);
-	if (ret == -1) {
-		RTE_LOG(ERR, APP, "send failed");
-		*connected = 0;
-		return -1;
-	}
-
-	RTE_LOG(INFO, APP, "To Server: %s\n", str);
-
-	return 0;
-}
-
-static void
-forward_array_reset(void)
-{
-	unsigned int i;
-
-	/* initialize port forward array */
-	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
-		if (ports_fwd_array[i].in_port_id != PORT_RESET) {
-			ports_fwd_array[i].out_port_id = PORT_RESET;
-			RTE_LOG(INFO, APP, "Port ID %d\n", i);
-			RTE_LOG(INFO, APP, "out_port_id %d\n",
-				ports_fwd_array[i].out_port_id);
-		}
-	}
-}
-
-static void
-forward_array_remove(int port_id)
-{
-	unsigned int i;
-
-	/* Update ports_fwd_array */
-	forward_array_init_one(port_id);
-
-	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
-		if (ports_fwd_array[i].in_port_id == PORT_RESET)
-			continue;
-
-		if (ports_fwd_array[i].out_port_id == port_id) {
-			ports_fwd_array[i].out_port_id = PORT_RESET;
-			break;
-		}
-	}
-}
-
-/*
- * Return actual port ID which is assigned by system internally, or PORT_RESET
- * if port is not found.
- */
-static uint16_t
-find_port_id(int id, enum port_type type)
-{
-	uint16_t port_id = PORT_RESET;
-	uint16_t i;
-
-	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
-		if (port_map[i].port_type != type)
-			continue;
-
-		if (port_map[i].id == id) {
-			port_id = i;
-			break;
-		}
-	}
-
-	return port_id;
-}
-
-static int
-do_del(char *res_uid)
-{
-	uint16_t port_id = PORT_RESET;
-	char *p_type;
-	int p_id;
-	int res;
-
-	res = parse_resource_uid(res_uid, &p_type, &p_id);
-	if (res < 0) {
-		RTE_LOG(ERR, APP,
-			"Failed to parse resource UID\n");
-		return -1;
-	}
-
-	if (!strcmp(p_type, "ring")) {
-		RTE_LOG(DEBUG, APP, "Del ring id %d\n", p_id);
-		port_id = find_port_id(p_id, RING);
-		if (port_id == PORT_RESET)
-			return -1;
-
-		dev_detach_by_port_id(port_id);
-	}
-
-	forward_array_remove(port_id);
-	port_map_init_one(port_id);
-
-	return 0;
-}
-
-/* Return 0 if invalid */
-static int
-is_valid_port(uint16_t port_id)
-{
-	if (port_id > RTE_MAX_ETHPORTS)
-		return 0;
-
-	return port_map[port_id].id != PORT_RESET;
-}
-
-/* Return -1 as an error if given patch is invalid */
-static int
-add_patch(uint16_t in_port, uint16_t out_port)
-{
-	if (!is_valid_port(in_port) || !is_valid_port(out_port))
-		return -1;
-
-	/* Populate in port data */
-	ports_fwd_array[in_port].in_port_id = in_port;
-	ports_fwd_array[in_port].rx_func = &rte_eth_rx_burst;
-	ports_fwd_array[in_port].tx_func = &rte_eth_tx_burst;
-	ports_fwd_array[in_port].out_port_id = out_port;
-
-	/* Populate out port data */
-	ports_fwd_array[out_port].in_port_id = out_port;
-	ports_fwd_array[out_port].rx_func = &rte_eth_rx_burst;
-	ports_fwd_array[out_port].tx_func = &rte_eth_tx_burst;
-
-	RTE_LOG(DEBUG, APP, "STATUS: in port %d in_port_id %d\n", in_port,
-		ports_fwd_array[in_port].in_port_id);
-	RTE_LOG(DEBUG, APP, "STATUS: in port %d patch out port id %d\n",
-		in_port, ports_fwd_array[in_port].out_port_id);
-	RTE_LOG(DEBUG, APP, "STATUS: outport %d in_port_id %d\n", out_port,
-		ports_fwd_array[out_port].in_port_id);
-
-	return 0;
-}
-
-static struct rte_memzone *
-get_memzone_by_addr(const void *addr)
-{
-	struct rte_memzone *tmp, *mz;
-	struct rte_mem_config *mcfg;
-	struct rte_fbarray *arr;
-	int i;
-
-	mcfg = rte_eal_get_configuration()->mem_config;
-	arr = &mcfg->memzones;
-	mz = NULL;
-
-	/* find memzone for the ring */
-	i = rte_fbarray_find_next_used(arr, 0);
-	while (i >= 0) {
-		tmp = rte_fbarray_get(arr, i);
-		if (mz->addr_64 == (uint64_t) addr) {
-			mz = tmp;
-			break;
-		}
-		i = rte_fbarray_find_next_used(arr, i+1);
-	}
-
-	return mz;
-}
-
-/*
- * Create ring PMD with given ring_id.
- */
-static int
-add_ring_pmd(int ring_id)
-{
-	const struct rte_memzone *memzone;
-	struct rte_ring *ring;
-	int res;
-	char rx_queue_name[32];  /* Prefix and number like as 'eth_ring_0' */
-
-	memset(rx_queue_name, '\0', sizeof(rx_queue_name));
-	sprintf(rx_queue_name, "%s", get_rx_queue_name(ring_id));
-
-	/* Look up ring with provided ring_id */
-	ring = rte_ring_lookup(rx_queue_name);
-	if (ring == NULL) {
-		RTE_LOG(ERR, APP,
-			"Failed to get RX ring %s - is primary running?\n",
-			rx_queue_name);
-		return -1;
-	}
-	RTE_LOG(INFO, APP, "Looked up ring '%s'\n", rx_queue_name);
-
-	memzone = get_memzone_by_addr(ring);
-	if (memzone == NULL) {
-		RTE_LOG(ERR, APP, "Cannot get memzone\n");
-		return -1;
-	}
-
-	/* Create ring pmd */
-	ring->memzone = memzone;
-	res = rte_eth_from_ring(ring);
-	if (res < 0) {
-		RTE_LOG(ERR, APP,
-			"Cannot create eth dev with rte_eth_from_ring()\n");
-		return -1;
-	}
-	RTE_LOG(INFO, APP, "Created ring PMD: %d\n", res);
-
-	return res;
-}
-
-/**
- * Add a port to this process. Port is described with resource UID which is a
- * combination of port type and ID like as 'ring:0'.
- */
-static int
-do_add(char *res_uid)
-{
-	enum port_type type = UNDEF;
-	uint16_t port_id = PORT_RESET;
-	char *p_type;
-	int p_id;
-	int res;
-
-	res = parse_resource_uid(res_uid, &p_type, &p_id);
-	if (res < 0)
-		return -1;
-
-	if (!strcmp(p_type, "ring")) {
-		type = RING;
-		res = add_ring_pmd(p_id);
-	}
-
-	if (res < 0)
-		return -1;
-	else
-		port_id = (uint16_t) res;
-
-	port_map[port_id].id = p_id;
-	port_map[port_id].port_type = type;
-	port_map[port_id].stats = &ports->client_stats[p_id];
-
-	/* Update ports_fwd_array with port id */
-	ports_fwd_array[port_id].in_port_id = port_id;
-
-	return 0;
-}
-
-/* Return -1 if exit command is called to terminate the process */
-static int
-parse_command(char *str)
-{
-	char *token_list[MAX_PARAMETER] = {NULL};
-	int max_token = 0;
-	int ret = 0;
-
-	if (!str)
-		return 0;
-
-	/* tokenize the user commands from controller */
-	token_list[max_token] = strtok(str, " ");
-	while (token_list[max_token] != NULL) {
-		RTE_LOG(DEBUG, APP, "token %d = %s\n", max_token,
-			token_list[max_token]);
-		max_token++;
-		token_list[max_token] = strtok(NULL, " ");
-	}
-
-	if (max_token == 0)
-		return 0;
-
-	if (!strcmp(token_list[0], "status")) {
-		RTE_LOG(DEBUG, APP, "status\n");
-		memset(str, '\0', MSG_SIZE);
-		if (cmd == FORWARD)
-			get_sec_stats_json(str, client_id, "running",
-					ports_fwd_array, port_map);
-		else
-			get_sec_stats_json(str, client_id, "idling",
-					ports_fwd_array, port_map);
-
-	} else if (!strcmp(token_list[0], "_get_client_id")) {
-		memset(str, '\0', MSG_SIZE);
-		sprintf(str, "%d", client_id);
-
-	} else if (!strcmp(token_list[0], "_set_client_id")) {
-		int id;
-
-		if (spp_atoi(token_list[1], &id) >= 0)
-			client_id = id;
-
-	} else if (!strcmp(token_list[0], "exit")) {
-		RTE_LOG(DEBUG, APP, "exit\n");
-		RTE_LOG(DEBUG, APP, "stop\n");
-		cmd = STOP;
-		ret = -1;
-
-	} else if (!strcmp(token_list[0], "stop")) {
-		RTE_LOG(DEBUG, APP, "stop\n");
-		cmd = STOP;
-
-	} else if (!strcmp(token_list[0], "forward")) {
-		RTE_LOG(DEBUG, APP, "forward\n");
-		cmd = FORWARD;
-
-	} else if (strncmp(token_list[0], "add", 3) == 0) {
-		RTE_LOG(DEBUG, APP, "Received add command\n");
-		if (do_add(token_list[1]) < 0)
-			RTE_LOG(ERR, APP, "Failed to do_add()\n");
-
-	} else if (!strcmp(token_list[0], "patch")) {
-		RTE_LOG(DEBUG, APP, "patch\n");
-
-		if (max_token <= 1)
-			return 0;
-
-		if (strncmp(token_list[1], "reset", 5) == 0) {
-			/* reset forward array*/
-			forward_array_reset();
-		} else {
-			uint16_t in_port;
-			uint16_t out_port;
-
-			if (max_token <= 2)
-				return 0;
-
-			char *in_p_type;
-			char *out_p_type;
-			int in_p_id;
-			int out_p_id;
-
-			parse_resource_uid(token_list[1], &in_p_type, &in_p_id);
-			in_port = find_port_id(in_p_id,
-					get_port_type(in_p_type));
-
-			parse_resource_uid(token_list[2],
-					&out_p_type, &out_p_id);
-			out_port = find_port_id(out_p_id,
-					get_port_type(out_p_type));
-
-			if (in_port == PORT_RESET && out_port == PORT_RESET) {
-				char err_msg[128];
-				memset(err_msg, '\0', sizeof(err_msg));
-				sprintf(err_msg, "%s '%s:%d' and '%s:%d'",
-						"Patch not found, both of",
-						in_p_type, in_p_id,
-						out_p_type, out_p_id);
-				RTE_LOG(ERR, APP, "%s\n", err_msg);
-			} else if (in_port == PORT_RESET) {
-				char err_msg[128];
-				memset(err_msg, '\0', sizeof(err_msg));
-				sprintf(err_msg, "%s '%s:%d'",
-						"Patch not found, in_port",
-						in_p_type, in_p_id);
-				RTE_LOG(ERR, APP, "%s\n", err_msg);
-			} else if (out_port == PORT_RESET) {
-				char err_msg[128];
-				memset(err_msg, '\0', sizeof(err_msg));
-				sprintf(err_msg, "%s '%s:%d'",
-						"Patch not found, out_port",
-						out_p_type, out_p_id);
-				RTE_LOG(ERR, APP, "%s\n", err_msg);
-			}
-
-			if (add_patch(in_port, out_port) == 0)
-				RTE_LOG(INFO, APP,
-					"Patched '%s:%d' and '%s:%d'\n",
-					in_p_type, in_p_id,
-					out_p_type, out_p_id);
-			else
-				RTE_LOG(ERR, APP, "Failed to patch\n");
-			ret = 0;
-		}
-	} else if (strncmp(str, "del", 3) == 0) {
-		RTE_LOG(DEBUG, APP, "Received del command\n");
-
-		cmd = STOP;
-
-		if (do_del(token_list[1]) < 0)
-			RTE_LOG(ERR, APP, "Failed to do_del()\n");
-	}
-
-	return ret;
-}
-
-static int
-do_receive(int *connected, int *sock, char *str)
-{
-	int ret;
-
-	memset(str, '\0', MSG_SIZE);
-
-	ret = recv(*sock, str, MSG_SIZE, 0);
-	if (ret <= 0) {
-		RTE_LOG(DEBUG, APP, "Receive count: %d\n", ret);
-		if (ret < 0)
-			RTE_LOG(ERR, APP, "Receive Fail");
-		else
-			RTE_LOG(INFO, APP, "Receive 0\n");
-
-		RTE_LOG(INFO, APP, "Assume Server closed connection\n");
-		close(*sock);
-		*sock = SOCK_RESET;
-		*connected = 0;
-		return -1;
-	}
-
-	return 0;
-}
-
-static int
-do_connection(int *connected, int *sock)
-{
-	static struct sockaddr_in servaddr;
-	int ret = 0;
-
-	if (*connected == 0) {
-		if (*sock < 0) {
-			RTE_LOG(INFO, APP, "Creating socket...\n");
-			*sock = socket(AF_INET, SOCK_STREAM, 0);
-			if (*sock < 0)
-				rte_exit(EXIT_FAILURE, "socket error\n");
-
-			/* Creation of the socket */
-			memset(&servaddr, 0, sizeof(servaddr));
-			servaddr.sin_family = AF_INET;
-			servaddr.sin_addr.s_addr = inet_addr(server_ip);
-			servaddr.sin_port = htons(server_port);
-		}
-
-		RTE_LOG(INFO, APP, "Trying to connect ... socket %d\n", *sock);
-		ret = connect(*sock, (struct sockaddr *) &servaddr,
-			sizeof(servaddr));
-		if (ret < 0) {
-			RTE_LOG(ERR, APP, "Connection Error");
-			return ret;
-		}
-
-		RTE_LOG(INFO, APP, "Connected\n");
-		*connected = 1;
-	}
-
-	return ret;
-}
-
-int
-main(int argc, char *argv[])
-{
-	unsigned int lcore_id;
-	int sock = SOCK_RESET;
-	int connected = 0;
-	char str[MSG_SIZE];
-	int ret;
-	int flg_exit;  // used as res of parse_command() to exit if -1
-	int i;
-
-	/* initialise the system */
-	if (init(argc, argv) < 0)
-		return -1;
-
-	/* initialize port forward array*/
-	forward_array_init();
-	port_map_init();
-
-	/* update port_forward_array with active port */
-	for (i = 0; i < RTE_MAX_ETHPORTS; i++) {
-		if (!rte_eth_dev_is_valid_port(i))
-			continue;
-
-		/* Update ports_fwd_array with phy port*/
-		ports_fwd_array[i].in_port_id = i;
-		port_map[i].port_type = PHY;
-		port_map[i].id = i;
-		port_map[i].stats = &ports->port_stats[i];
-	}
-
-	RTE_LOG(INFO, APP, "Finished Process Init.\n");
-
-	lcore_id = 0;
-	RTE_LCORE_FOREACH_SLAVE(lcore_id) {
-		rte_eal_remote_launch(main_loop, NULL, lcore_id);
-	}
-
-	while (on) {
-		ret = do_connection(&connected, &sock);
-		if (ret < 0) {
-			sleep(1);
-			continue;
-		}
-
-		ret = do_receive(&connected, &sock, str);
-		if (ret < 0)
-			continue;
-
-		RTE_LOG(DEBUG, APP, "Received string: %s\n", str);
-
-		flg_exit = parse_command(str);
-
-		/* Send the message back to client */
-		ret = do_send(&connected, &sock, str);
-
-		if (flg_exit < 0)  /* terminate process if exit is called */
-			break;
-		else if (ret < 0)
-			continue;
-	}
-
-	/* exit */
-	close(sock);
-	sock = SOCK_RESET;
-	RTE_LOG(INFO, APP, "spp_vm exit.\n");
-	return 0;
-}
-- 
2.7.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [spp] [PATCH 2/2] Makefile: update dist-clean
  2019-01-08  3:29 [spp] [PATCH 0/2] Remove spp_vm ogawa.yasufumi
  2019-01-08  3:29 ` [spp] [PATCH 1/2] spp_vm: remove spp_vm ogawa.yasufumi
@ 2019-01-08  3:29 ` ogawa.yasufumi
  1 sibling, 0 replies; 3+ messages in thread
From: ogawa.yasufumi @ 2019-01-08  3:29 UTC (permalink / raw)
  To: ferruh.yigit, spp, ogawa.yasufumi

From: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>

Update `make dist-clean` to remove `shared` directory in each of SPP
processes under `src`.

Signed-off-by: Yasufumi Ogawa <ogawa.yasufumi@lab.ntt.co.jp>
---
 GNUmakefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/GNUmakefile b/GNUmakefile
index 7c2b55a..4f04bba 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -25,6 +25,7 @@ DOC_ROOT = docs/guides
 dist-clean:
 	make clean
 	rm -rf $(wildcard src/*/$(RTE_TARGET))
+	rm -rf $(wildcard src/*/shared)
 
 .PHONY: doc
 doc: doc-all
-- 
2.7.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-01-08  3:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-08  3:29 [spp] [PATCH 0/2] Remove spp_vm ogawa.yasufumi
2019-01-08  3:29 ` [spp] [PATCH 1/2] spp_vm: remove spp_vm ogawa.yasufumi
2019-01-08  3:29 ` [spp] [PATCH 2/2] Makefile: update dist-clean ogawa.yasufumi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).