[iccpd] build iccpd deb by auto tools (#4540)
* [iccpd] build iccpd deb by auto tools
This commit is contained in:
parent
5fefee67d7
commit
2398992d52
@ -9,7 +9,6 @@ ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y ebtables
|
||||
RUN apt-get -y install -f kmod
|
||||
|
||||
COPY \
|
||||
{% for deb in docker_iccpd_debs.split(' ') -%}
|
||||
|
@ -1,14 +1,22 @@
|
||||
# docker image for iccpd agent
|
||||
|
||||
DOCKER_ICCPD = docker-iccpd.gz
|
||||
$(DOCKER_ICCPD)_PATH = $(DOCKERS_PATH)/docker-iccpd
|
||||
DOCKER_ICCPD_STEM = docker-iccpd
|
||||
DOCKER_ICCPD = $(DOCKER_ICCPD_STEM).gz
|
||||
DOCKER_ICCPD_DBG = $(DOCKER_ICCPD_STEM)-$(DBG_IMAGE_MARK).gz
|
||||
$(DOCKER_ICCPD)_PATH = $(DOCKERS_PATH)/$(DOCKER_ICCPD_STEM)
|
||||
$(DOCKER_ICCPD)_DEPENDS += $(SWSS) $(REDIS_TOOLS) $(ICCPD)
|
||||
$(DOCKER_ICCPD)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_STRETCH)_DBG_DEPENDS)
|
||||
$(DOCKER_ICCPD)_DBG_DEPENDS += $(SWSS_DBG) $(LIBSWSSCOMMON_DBG) $(ICCPD_DBG)
|
||||
$(DOCKER_ICCPD)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_STRETCH)_DBG_IMAGE_PACKAGES)
|
||||
$(DOCKER_ICCPD)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_STRETCH)
|
||||
|
||||
ifeq ($(ENABLE_ICCPD), y)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_ICCPD)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ICCPD)
|
||||
SONIC_STRETCH_DOCKERS += $(DOCKER_ICCPD)
|
||||
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_ICCPD_DBG)
|
||||
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_ICCPD_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_ICCPD_DBG)
|
||||
endif
|
||||
|
||||
$(DOCKER_ICCPD)_CONTAINER_NAME = iccpd
|
||||
|
@ -6,8 +6,14 @@ ICCPD = iccpd_$(ICCPD_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(ICCPD)_DEPENDS += $(LIBNL_GENL3_DEV) $(LIBNL_CLI_DEV)
|
||||
$(ICCPD)_RDEPENDS += $(LIBNL_GENL3) $(LIBNL_CLI)
|
||||
$(ICCPD)_SRC_PATH = $(SRC_PATH)/iccpd
|
||||
SONIC_MAKE_DEBS += $(ICCPD)
|
||||
SONIC_DPKG_DEBS += $(ICCPD)
|
||||
|
||||
# Export these variables so they can be used in a sub-make
|
||||
export ICCPD_VERSION
|
||||
export ICCPD
|
||||
ICCPD_DBG = iccpd-dbg_$(ICCPD_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
$(ICCPD_DBG)_DEPENDS += $(ICCPD)
|
||||
$(ICCPD_DBG)_RDEPENDS += $(ICCPD)
|
||||
$(eval $(call add_derived_package,$(ICCPD),$(ICCPD_DBG)))
|
||||
|
||||
# The .c, .cpp, .h & .hpp files under src/{$DBG_SRC_ARCHIVE list}
|
||||
# are archived into debug one image to facilitate debugging.
|
||||
#
|
||||
DBG_SRC_ARCHIVE += iccpd
|
||||
|
@ -1,37 +0,0 @@
|
||||
.ONESHELL:
|
||||
SHELL = /bin/bash
|
||||
.SHELLFLAGS += -e
|
||||
|
||||
MAIN_TARGET = iccpd_$(ICCPD_VERSION)_$(CONFIGURED_ARCH).deb
|
||||
DEB_PATH = debian
|
||||
|
||||
all: iccpd-build mclagdctl-build
|
||||
|
||||
iccpd-build:
|
||||
make -C src
|
||||
|
||||
mclagdctl-build:
|
||||
make -C src/mclagdctl
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
make all
|
||||
if [ ! -d $(DEB_PATH)/usr/bin ]; then
|
||||
mkdir -p $(DEB_PATH)/usr/bin
|
||||
fi
|
||||
cp iccpd $(DEB_PATH)/usr/bin/iccpd
|
||||
cp src/mclagdctl/mclagdctl $(DEB_PATH)/usr/bin/mclagdctl
|
||||
chmod +x $(DEB_PATH)/usr/bin/iccpd
|
||||
chmod +x $(DEB_PATH)/usr/bin/mclagdctl
|
||||
md5sum $(DEB_PATH)/usr/bin/iccpd > $(DEB_PATH)/DEBIAN/md5sums
|
||||
md5sum $(DEB_PATH)/usr/bin/mclagdctl >> $(DEB_PATH)/DEBIAN/md5sums
|
||||
sed -i "s/Package: .*/Package: iccpd-$(ICCPD_VERSION)-$(CONFIGURED_ARCH)/g" $(DEB_PATH)/DEBIAN/control
|
||||
sed -i "s/Architecture: .*/Architecture: $(CONFIGURED_ARCH)/g" $(DEB_PATH)/DEBIAN/control
|
||||
dpkg-deb -b $(DEB_PATH) $(DEST)/$(MAIN_TARGET)
|
||||
|
||||
clean: iccpd-clean mclagdctl-clean
|
||||
|
||||
iccpd-clean:
|
||||
make -C src clean
|
||||
|
||||
mclagdctl-clean:
|
||||
make -C src/mclagdctl clean
|
1
src/iccpd/Makefile.am
Normal file
1
src/iccpd/Makefile.am
Normal file
@ -0,0 +1 @@
|
||||
SUBDIRS = src
|
6
src/iccpd/autogen.sh
Executable file
6
src/iccpd/autogen.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
libtoolize --force --copy &&
|
||||
autoreconf --force --install -I m4
|
||||
rm -Rf autom4te.cache
|
||||
|
32
src/iccpd/configure.ac
Normal file
32
src/iccpd/configure.ac
Normal file
@ -0,0 +1,32 @@
|
||||
AC_INIT([iccpd],[0.5])
|
||||
AC_CONFIG_SRCDIR([])
|
||||
AC_CONFIG_AUX_DIR(config)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
AM_INIT_AUTOMAKE([foreign])
|
||||
AC_LANG_C
|
||||
AC_PROG_CC
|
||||
AC_PROG_LIBTOOL
|
||||
AC_HEADER_STDC
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug Compile with debugging flags],
|
||||
[case "${enableval}" in
|
||||
yes) debug=true ;;
|
||||
no) debug=false ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
|
||||
esac],[debug=false])
|
||||
AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
|
||||
|
||||
CPPFLAGS="-D_FORTIFY_SOURCE=2"
|
||||
|
||||
CFLAGS_COMMON="-Wno-unused-result"
|
||||
|
||||
AC_SUBST(CFLAGS_COMMON)
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
src/Makefile
|
||||
src/mclagdctl/Makefile
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
@ -1,12 +0,0 @@
|
||||
Package: iccpd-0.0.5-amd64
|
||||
Source: nps
|
||||
Version: 0.0.5
|
||||
Architecture: amd64
|
||||
Maintainer: Simon Ji <Simon.Ji@nephosinc.com>
|
||||
Installed-Size: 1508
|
||||
Depends:
|
||||
Section: main
|
||||
Priority: extra
|
||||
Homepage: https://github.com/NephosInc/SONiC
|
||||
Description:
|
||||
|
6
src/iccpd/debian/changelog
Normal file
6
src/iccpd/debian/changelog
Normal file
@ -0,0 +1,6 @@
|
||||
sonic (0.0.5) stable; urgency=medium
|
||||
|
||||
* Initial release.
|
||||
|
||||
-- Tyler Li <tyler.li@mediatek.com> Thu, 23 Apr 2020 10:00:00 +0800
|
||||
|
1
src/iccpd/debian/compat
Normal file
1
src/iccpd/debian/compat
Normal file
@ -0,0 +1 @@
|
||||
10
|
18
src/iccpd/debian/control
Normal file
18
src/iccpd/debian/control
Normal file
@ -0,0 +1,18 @@
|
||||
Source: sonic
|
||||
Maintainer: Tyler Li <tyler.li@mediatek.com>
|
||||
Section: net
|
||||
Priority: optional
|
||||
Build-Depends: dh-exec (>=0.3), debhelper (>= 9), autotools-dev
|
||||
Standards-Version: 0.0.5
|
||||
|
||||
Package: iccpd
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}
|
||||
Description: This package contains Inter-Chassis Control Protocol for SONiC project.
|
||||
|
||||
Package: iccpd-dbg
|
||||
Architecture: any
|
||||
Section: debug
|
||||
Priority: extra
|
||||
Depends: iccpd (=${binary:Version})
|
||||
Description: debugging symbols for iccpd
|
34
src/iccpd/debian/rules
Executable file
34
src/iccpd/debian/rules
Executable file
@ -0,0 +1,34 @@
|
||||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/default.mk
|
||||
|
||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||
# package maintainers to append CFLAGS
|
||||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
# package maintainers to append LDFLAGS
|
||||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
|
||||
# main packaging script based on dh7 syntax
|
||||
%:
|
||||
dh $@ --with autotools-dev
|
||||
|
||||
# dh_make generated override targets
|
||||
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- \
|
||||
# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install --destdir=debian/iccpd
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --dbg-package=iccpd-dbg
|
@ -31,6 +31,7 @@
|
||||
#include <sys/queue.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include "../include/app_csm.h"
|
||||
#include "../include/msg_format.h"
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
struct CSM;
|
||||
struct System;
|
||||
|
||||
#define CONNECT_INTERVAL_SEC 1
|
||||
#define CONNECT_TIMEOUT_MSEC 100
|
||||
|
@ -1,55 +0,0 @@
|
||||
LIBNL_CFLAGS = -I/usr/include/libnl3
|
||||
LIBNL_LIBS = -lnl-cli-3 -lnl-genl-3 -lnl-nf-3 -lnl-route-3 -lnl-3
|
||||
|
||||
CC = gcc
|
||||
SOURCES = app_csm.c cmd_option.c iccp_cli.c iccp_cmd_show.c iccp_cmd.c \
|
||||
iccp_csm.c iccp_ifm.c iccp_main.c logger.c \
|
||||
port.c scheduler.c system.c iccp_consistency_check.c \
|
||||
mlacp_link_handler.c \
|
||||
mlacp_sync_prepare.c mlacp_sync_update.c\
|
||||
mlacp_fsm.c \
|
||||
iccp_netlink.c
|
||||
|
||||
OBJECTS = app_csm.o cmd_option.o iccp_cli.o iccp_cmd_show.o iccp_cmd.o \
|
||||
iccp_csm.o iccp_ifm.o iccp_main.o logger.o \
|
||||
port.o scheduler.o system.o iccp_consistency_check.o\
|
||||
mlacp_link_handler.o \
|
||||
mlacp_sync_prepare.o mlacp_sync_update.o \
|
||||
mlacp_fsm.o \
|
||||
iccp_netlink.o
|
||||
|
||||
HEADERS = ../include/app_csm.h ../include/cmd_option.h ../include/iccp_cli.h \
|
||||
../include/iccp_cmd_show.h \
|
||||
../include/iccp_csm.h ../include/iccp_ifm.h \
|
||||
../include/logger.h ../include/mlacp_fsm.h \
|
||||
../include/mlacp_tlv.h ../include/msg_format.h ../include/port.h \
|
||||
../include/scheduler.h ../include/system.h \
|
||||
../include/iccp_consistency_check.h ../include/route_info.h \
|
||||
../include/iccp_netlink.h
|
||||
|
||||
//CFLAGS = -g -O2 -fstack-protector-strong -Wformat -Werror=format-security $(LIBNL_CFLAGS) -I../include/
|
||||
CFLAGS = -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -I../include/ $(LIBNL_CFLAGS)
|
||||
LDFLAGS = $(LIBNL_LIBS) -lpthread
|
||||
LDADD = $(LIBZEBRA_BIN)
|
||||
|
||||
all: iccpd
|
||||
|
||||
%.o: %.c $(HEADERS)
|
||||
|
||||
iccpd: $(OBJECTS)
|
||||
$(CC) -o ../iccpd $(OBJECTS) $(LDFLAGS)
|
||||
|
||||
DEPS = $(patsubst %.o, %.d, $(OBJECTS))
|
||||
|
||||
-include $(DEPS)
|
||||
%.d:%.c
|
||||
@set -e; rm -f $@; \
|
||||
gcc -MM $(CPPFLAGS) $< > $@.$$$$; \
|
||||
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
||||
rm -f $@.$$$$
|
||||
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f $(OBJECTS) $(DEPS) ../iccpd
|
22
src/iccpd/src/Makefile.am
Normal file
22
src/iccpd/src/Makefile.am
Normal file
@ -0,0 +1,22 @@
|
||||
SUBDIRS = mclagdctl
|
||||
|
||||
INCLUDES = -I$(top_srcdir)/include -I/usr/include/libnl3
|
||||
|
||||
bin_PROGRAMS = iccpd
|
||||
|
||||
if DEBUG
|
||||
DBGFLAGS = -ggdb -DDEBUG
|
||||
else
|
||||
DBGFLAGS = -g -DNDEBUG
|
||||
endif
|
||||
|
||||
iccpd_SOURCES = \
|
||||
app_csm.c cmd_option.c iccp_cli.c iccp_cmd_show.c iccp_cmd.c \
|
||||
iccp_csm.c iccp_ifm.c iccp_main.c logger.c \
|
||||
port.c scheduler.c system.c iccp_consistency_check.c \
|
||||
mlacp_link_handler.c \
|
||||
mlacp_sync_prepare.c mlacp_sync_update.c\
|
||||
mlacp_fsm.c \
|
||||
iccp_netlink.c
|
||||
iccpd_CFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON)
|
||||
iccpd_LDADD = -lnl-genl-3 -lnl-route-3 -lnl-3 -lpthread
|
@ -691,7 +691,7 @@ void do_arp_update_from_reply_packet(unsigned int ifindex, unsigned int addr, ui
|
||||
if (!verify_arp)
|
||||
return;
|
||||
|
||||
if (iccp_check_if_addr_from_netlink(AF_INET, &addr, arp_lif))
|
||||
if (iccp_check_if_addr_from_netlink(AF_INET, (uint8_t *)&addr, arp_lif))
|
||||
{
|
||||
ICCPD_LOG_DEBUG(__FUNCTION__, "ARP %s is identical with the ip address of interface %s",
|
||||
show_ip_str(arp_msg->ipv4_addr), arp_lif->name);
|
||||
|
@ -1,28 +0,0 @@
|
||||
|
||||
|
||||
C = gcc
|
||||
SOURCES = \
|
||||
mclagdctl.c
|
||||
|
||||
OBJECTS = \
|
||||
mclagdctl.o
|
||||
|
||||
HEADERS = \
|
||||
mclagdctl.h
|
||||
|
||||
CFLAGS = -g -O2 -fstack-protector-strong -Wformat -Werror=format-security
|
||||
LDFLAGS =
|
||||
LDADD =
|
||||
|
||||
all: mclagdctl
|
||||
|
||||
%.o: %.c $(HEADERS)
|
||||
|
||||
mclagdctl: $(OBJECTS)
|
||||
$(CC) -o ./mclagdctl $(OBJECTS) $(LDFLAGS)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
-rm -f $(OBJECTS) ./mclagdctl
|
||||
|
||||
|
10
src/iccpd/src/mclagdctl/Makefile.am
Normal file
10
src/iccpd/src/mclagdctl/Makefile.am
Normal file
@ -0,0 +1,10 @@
|
||||
bin_PROGRAMS = mclagdctl
|
||||
|
||||
if DEBUG
|
||||
DBGFLAGS = -ggdb -DDEBUG
|
||||
else
|
||||
DBGFLAGS = -g -DNDEBUG
|
||||
endif
|
||||
|
||||
mclagdctl_SOURCES = mclagdctl.c
|
||||
mclagdctl_CFLAGS = $(DBGFLAGS) $(AM_CFLAGS) $(CFLAGS_COMMON)
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
/* Copyright(c) 2016-2019 Nephos.
|
||||
* Copyright(c) 2016-2019 Nephos.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
@ -21,6 +21,8 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include <getopt.h>
|
||||
|
@ -370,7 +370,7 @@ int mlacp_prepare_for_arp_info(struct CSM* csm, char* buf, size_t max_buf_size,
|
||||
tlv->icc_parameter.type = htons(TLV_T_MLACP_ARP_INFO);
|
||||
}
|
||||
|
||||
ArpData = (struct mLACPMACData *)&buf[sizeof(ICCHdr) + sizeof(struct mLACPARPInfoTLV) + sizeof(struct ARPMsg) * count];
|
||||
ArpData = (struct ARPMsg *)&buf[sizeof(ICCHdr) + sizeof(struct mLACPARPInfoTLV) + sizeof(struct ARPMsg) * count];
|
||||
|
||||
ArpData->op_type = arp_msg->op_type;
|
||||
sprintf(ArpData->ifname, "%s", arp_msg->ifname);
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include "../include/port.h"
|
||||
#include "../include/system.h"
|
||||
#include "../include/iccp_csm.h"
|
||||
#include "../include/iccp_netlink.h"
|
||||
#include "../include/scheduler.h"
|
||||
|
||||
void local_if_init(struct LocalInterface* local_if)
|
||||
{
|
||||
|
@ -731,7 +731,10 @@ int scheduler_unregister_sock_read_event_callback(struct CSM* csm)
|
||||
return MCLAG_ERROR;
|
||||
}
|
||||
|
||||
FD_CLR(csm->sock_fd, &(sys->readfd));
|
||||
if (csm->sock_fd > 0)
|
||||
{
|
||||
FD_CLR(csm->sock_fd, &(sys->readfd));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user