-
Notifications
You must be signed in to change notification settings - Fork 135
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
54 changed files
with
10,556 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
# Copyright (c) 2018. TIG developer. | ||
|
||
ifdef V | ||
Q = | ||
else | ||
Q = @ | ||
endif | ||
|
||
ifeq ($(machine),) | ||
machine = native | ||
endif | ||
|
||
RTE_SDK = $(CURDIR)/dpdk | ||
export RTE_SDK | ||
|
||
RTE_TARGET ?= x86_64-native-linuxapp-gcc | ||
export RTE_TARGET | ||
|
||
ifeq ($(bindir),) | ||
bindir = /usr/local/jupiter/bin | ||
endif | ||
|
||
ifeq ($(tooldir),) | ||
tooldir = /usr/local/jupiter/tool | ||
endif | ||
|
||
ifeq ($(kmoddir),) | ||
kmoddir = /usr/local/jupiter/kmod | ||
endif | ||
|
||
ifeq ($(confdir),) | ||
confdir = /usr/local/jupiter | ||
endif | ||
|
||
VERSION ?= 0.1 | ||
|
||
.PHONY: all | ||
all: dpdk jupiter | ||
|
||
.PHONY: dpdk | ||
dpdk: | ||
$(Q)cd $(RTE_SDK) && $(MAKE) O=$(RTE_TARGET) T=$(RTE_TARGET) config | ||
$(Q)cd $(RTE_SDK) && sed -ri 's,(RTE_MACHINE=).*,\1$(machine),' $(RTE_TARGET)/.config | ||
$(Q)cd $(RTE_SDK) && sed -ri 's,(RTE_APP_TEST=).*,\1n,' $(RTE_TARGET)/.config | ||
$(Q)cd $(RTE_SDK) && sed -ri 's,(RTE_LIBRTE_PMD_PCAP=).*,\1y,' $(RTE_TARGET)/.config | ||
$(Q)cd $(RTE_SDK) && sed -ri 's,(RTE_KNI_KMOD_ETHTOOL=).*,\1n,' $(RTE_TARGET)/.config | ||
$(Q)cd $(RTE_SDK) && $(MAKE) O=$(RTE_TARGET) | ||
|
||
.PHONY: jupiter | ||
jupiter: | ||
$(Q)cd lib && $(MAKE) O=$(RTE_TARGET) | ||
$(Q)cd cmd && $(MAKE) O=$(RTE_TARGET) | ||
$(Q)cd core && $(MAKE) O=$(RTE_TARGET) | ||
|
||
.PHONY: install | ||
install: | ||
@echo ================== Installing $(DESTDIR)/ | ||
$(Q)test -d $(DESTDIR)/$(bindir) || mkdir -p $(DESTDIR)/$(bindir) | ||
$(Q)cp -a cmd/$(RTE_TARGET)/jupiter-ctl $(DESTDIR)/$(bindir) | ||
$(Q)cp -a core/$(RTE_TARGET)/jupiter-service $(DESTDIR)/$(bindir) | ||
$(Q)cp -a $(RTE_SDK)/$(RTE_TARGET)/app/dpdk-pdump $(DESTDIR)/$(bindir)/jupiter-pdump | ||
|
||
$(Q)test -d $(DESTDIR)/$(tooldir) || mkdir -p $(DESTDIR)/$(tooldir) | ||
$(Q)cp -a $(RTE_SDK)/usertools/cpu_layout.py $(DESTDIR)/$(tooldir)/cpu_layout.py | ||
$(Q)cp -a $(RTE_SDK)/usertools/dpdk-devbind.py $(DESTDIR)/$(tooldir)/dpdk-devbind.py | ||
|
||
$(Q)test -d $(DESTDIR)/$(kmoddir) || mkdir -p $(DESTDIR)/$(kmoddir) | ||
$(Q)cp -a $(RTE_SDK)/$(RTE_TARGET)/kmod/igb_uio.ko $(DESTDIR)/$(kmoddir)/igb_uio.ko | ||
$(Q)cp -a $(RTE_SDK)/$(RTE_TARGET)/kmod/rte_kni.ko $(DESTDIR)/$(kmoddir)/rte_kni.ko | ||
|
||
$(Q)test -d $(DESTDIR)/$(confdir) || mkdir -p $(DESTDIR)/$(confdir) | ||
$(Q)cp -a jupiter.cfg $(DESTDIR)/$(confdir) | ||
@echo ================== Installation in $(DESTDIR)/ complete | ||
|
||
.PHONY: uninstall | ||
uninstall: | ||
@echo ================== Uninstalling $(DESTDIR)/ | ||
$(Q)$(if test -d $(DESTDIR)/$(bindir)/jupiter-ctl, rm -rf $(DESTDIR)/$(bindir)/jupiter-ctl,) | ||
$(Q)$(if test -d $(DESTDIR)/$(bindir)/jupiter-service, rm -rf $(DESTDIR)/$(bindir)/jupiter-service,) | ||
$(Q)$(if test -d $(DESTDIR)/$(bindir)/jupiter-pdump, rm -rf $(DESTDIR)/$(bindir)/jupiter-pdump,) | ||
$(Q)$(if test -d $(DESTDIR)/$(tooldir)/cpu_layout.py, rm -rf $(DESTDIR)/$(tooldir)/cpu_layout.py,) | ||
$(Q)$(if test -d $(DESTDIR)/$(tooldir)/dpdk-devbind.py, rm -rf $(DESTDIR)/$(tooldir)/dpdk-devbind.py,) | ||
$(Q)$(if test -d $(DESTDIR)/$(kmoddir)/igb_uio.ko, rm -rf $(DESTDIR)/$(kmoddir)/igb_uio.ko,) | ||
$(Q)$(if test -d $(DESTDIR)/$(kmoddir)/rte_kni.ko, rm -rf $(DESTDIR)/$(kmoddir)/rte_kni.ko,) | ||
$(Q)$(if test -d $(DESTDIR)/$(confdir)/jupiter.cfg, rm -rf $(DESTDIR)/$(confdir)/jupiter.cfg,) | ||
@echo ================== Uninstallation in $(DESTDIR)/ complete | ||
|
||
.PHONY: rpm-pkg | ||
rpm-pkg: | ||
$(Q)$(if test -d rpmbuild, rm -rf rpmbuild,) | ||
$(Q)$(if test -e jupiter-$(VERSION).tar.xz, rm -rf jupiter-$(VERSION).tar.xz,) | ||
$(Q)tar -cf jupiter-$(VERSION).tar.xz --xform 's#^#jupiter-$(VERSION)/#' * | ||
$(Q)mkdir -p rpmbuild/{RPMS,SRPMS,BUILD,SOURCES,SPECS} | ||
$(Q)mv jupiter-$(VERSION).tar.xz rpmbuild/SOURCES/jupiter-$(VERSION).tar.xz | ||
$(Q)cp rpm.spec rpmbuild/SPECS | ||
$(Q)rpmbuild -bb \ | ||
--define "_topdir $(PWD)/rpmbuild" \ | ||
--define "_version $(VERSION)" \ | ||
--define "_machine $(machine)" \ | ||
rpmbuild/SPECS/rpm.spec | ||
|
||
|
||
.PHONY: clean | ||
clean: | ||
$(Q)cd $(RTE_SDK) && $(MAKE) O=$(RTE_TARGET) clean | ||
$(Q)cd lib && $(MAKE) O=$(RTE_TARGET) clean | ||
$(Q)cd cmd && $(MAKE) O=$(RTE_TARGET) clean | ||
$(Q)cd core && $(MAKE) O=$(RTE_TARGET) clean |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Copyright (c) 2018. TIG developer. | ||
|
||
ifeq ($(RTE_SDK),) | ||
$(error "Please define RTE_SDK environment variable") | ||
endif | ||
|
||
# Default target, can be overriden by command line or environment | ||
include $(RTE_SDK)/mk/rte.vars.mk | ||
|
||
# binary name | ||
APP = jupiter-ctl | ||
|
||
# all source are stored in SRCS-y | ||
SRCS-y := main.c | ||
|
||
CFLAGS += $(WERROR_FLAGS) -g -O3 | ||
|
||
CFLAGS += -I$(SRCDIR)/../lib/libcmd/$(RTE_TARGET)/include | ||
LDLIBS += -L$(SRCDIR)/../lib/libcmd/$(RTE_TARGET)/lib -lcmd | ||
|
||
include $(RTE_SDK)/mk/rte.extapp.mk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
/* Copyright (c) 2018. TIG developer. */ | ||
|
||
#include <stdio.h> | ||
#include <string.h> | ||
|
||
#include "unixctl_command.h" | ||
|
||
static const char *default_unix_sock_path = "/var/run/jupiter.sock"; | ||
|
||
static void | ||
usage(const char *progname) { | ||
printf("Usage: %s COMMAND [ARG...] [--unixsock=%s]\n", progname, | ||
default_unix_sock_path); | ||
} | ||
|
||
static const char * | ||
parse_progname(const char *arg) { | ||
char *p; | ||
if ((p = strrchr(arg, '/')) != NULL) | ||
return strdup(p + 1); | ||
return strdup(arg); | ||
} | ||
|
||
int | ||
main(int argc, char **argv) { | ||
const char *unix_sock_path = NULL; | ||
char cmdline[1024] = {0}; | ||
int client, ret; | ||
int i; | ||
|
||
for (i = 1; i < argc; i++) { | ||
if (strncmp("--unixsock=", argv[i], strlen("--unixsock=")) == 0) { | ||
unix_sock_path = strdup(argv[i] + strlen("--unixsock=")); | ||
} else { | ||
strcat(cmdline, argv[i]); | ||
strcat(cmdline, " "); | ||
} | ||
} | ||
if (!unix_sock_path) | ||
unix_sock_path = default_unix_sock_path; | ||
if (strlen(cmdline) == 0) { | ||
const char *progname; | ||
progname = parse_progname(argv[0]); | ||
usage(progname); | ||
strcat(cmdline, " "); | ||
} | ||
client = unixctl_client_create(unix_sock_path); | ||
if (client < 0) { | ||
fprintf(stderr, "Create unix socket client failed.\n"); | ||
return -1; | ||
} | ||
ret = unixctl_client_request(client, cmdline); | ||
if (ret < 0) { | ||
fprintf(stderr, "Unable to request unix socket server.\n"); | ||
return -1; | ||
} | ||
return ret != 0 ? -1 : 0; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Copyright (c) 2018. TIG developer. | ||
|
||
ifeq ($(RTE_SDK),) | ||
$(error "Please define RTE_SDK environment variable") | ||
endif | ||
|
||
ifeq ($(RTE_TARGET),) | ||
$(error "Please define RTE_TARGET environment variable") | ||
endif | ||
|
||
include $(RTE_SDK)/mk/rte.vars.mk | ||
|
||
# binary name | ||
APP = jupiter-service | ||
|
||
# all source are stored in SRCS-y | ||
SRCS-y := main.c lb_device.c lb_arp.c lb_parser.c lb_service.c lb_scheduler.c \ | ||
lb_conn.c lb_proto.c lb_proto_tcp.c lb_toa.c lb_synproxy.c \ | ||
lb_proto_udp.c lb_proto_icmp.c lb_tcp_secret_seq.c \ | ||
lb_config.c | ||
|
||
CFLAGS += $(WERROR_FLAGS) -g -O3 | ||
|
||
CFLAGS += -I$(SRCDIR)/../lib/libconhash/$(RTE_TARGET)/include | ||
LDLIBS += -L$(SRCDIR)/../lib/libconhash/$(RTE_TARGET)/lib -lconhash | ||
|
||
CFLAGS += -I$(SRCDIR)/../lib/libcmd/$(RTE_TARGET)/include | ||
LDLIBS += -L$(SRCDIR)/../lib/libcmd/$(RTE_TARGET)/lib -lcmd | ||
|
||
include $(RTE_SDK)/mk/rte.extapp.mk |
Oops, something went wrong.