ndppd: initial import (release 0.2.1)
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 2 Feb 2012 10:01:49 +0000 (10:01 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 2 Feb 2012 10:01:49 +0000 (10:01 +0000)
Hi,

here is a patch to add a package for ndppd:

    ndppd, or NDP Proxy Daemon, is a daemon that proxies NDP (Neighbor Discovery
    Protocol) messages between interfaces.  ndppd currently only supports
    Neighbor Solicitation Messages and Neighbor Advertisement Messages.

    The ndp_proxy provided by Linux doesn't support listing proxies, and only
    hosts are supported.  No subnets.  ndppd solves this by listening for
    Neighbor Solicitation messages on an interface, then query the internal
    interfaces for that target IP before finally sending a Neighbor
    Advertisement message.
    http://www.priv.nu/projects/ndppd/

I tested it and it works fine.  I am willing to maintain it.

Note that this my first C++ package and it took a lot of trial and error to get
the Build/Compile target working.  Any feedback would be much welcome.

Best regard,

>From 689b4a52af2e25e3574d0dca7cc5e63ed100c50a Mon Sep 17 00:00:00 2001
From: Gabriel Kerneis <kerneis@pps.jussieu.fr>
Date: Fri, 27 Jan 2012 15:35:14 +0100
Subject: [PATCH] [packages] ndppd: initial import (release 0.2.1)

SVN-Revision: 29987

ipv6/ndppd/Makefile [new file with mode: 0644]
ipv6/ndppd/files/ndppd.init [new file with mode: 0644]

diff --git a/ipv6/ndppd/Makefile b/ipv6/ndppd/Makefile
new file mode 100644 (file)
index 0000000..08ccc76
--- /dev/null
@@ -0,0 +1,62 @@
+# 
+# Copyright (C) 2007-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ndppd
+PKG_VERSION:=0.2.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.priv.nu/projects/ndppd/files/
+PKG_MD5SUM:=9b65a8cccfce8689f0c1c410c20b4790
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/ndppd
+  SECTION:=ipv6
+  CATEGORY:=IPv6
+  TITLE:=NDP Proxy Daemon
+  URL:=http://www.priv.nu/projects/ndppd/
+  MAINTAINER:=Gabriel Kerneis <kerneis@pps.jussieu.fr>
+  DEPENDS:=+kmod-ipv6 +confuse +uclibcxx
+endef
+
+define Package/ndppd/description
+ ndppd, or NDP Proxy Daemon, is a daemon that proxies NDP (Neighbor Discovery
+ Protocol) messages between interfaces.  ndppd currently only supports Neighbor
+ Solicitation Messages and Neighbor Advertisement Messages.
+
+ The ndp_proxy provided by Linux doesn't support listing proxies, and only hosts
+ are supported.  No subnets.  ndppd solves this by listening for Neighbor
+ Solicitation messages on an interface, then query the internal interfaces for
+ that target IP before finally sending a Neighbor Advertisement message.
+endef
+
+define Package/ndppd/conffiles
+/etc/ndppd.conf
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               CXX="$(TARGET_CXX)" \
+               CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS) -fno-builtin -fno-rtti -nostdinc++ \
+                       -I$(STAGING_DIR)/usr/include/uClibc++ -I$(LINUX_DIR)/include" \
+               LDFLAGS="$(TARGET_LDFLAGS)" \
+               LIBS="-nodefaultlibs -luClibc++ -lconfuse" \
+               ndppd
+endef
+
+define Package/ndppd/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/ndppd $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/ndppd.init $(1)/etc/init.d/ndppd
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/ndppd.conf-dist $(1)/etc/ndppd.conf
+endef
+
+$(eval $(call BuildPackage,ndppd))
diff --git a/ipv6/ndppd/files/ndppd.init b/ipv6/ndppd/files/ndppd.init
new file mode 100644 (file)
index 0000000..4cf0e8a
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2007-2011 OpenWrt.org
+
+START=90
+
+SERVICE_USE_PID=1
+SERVICE_PID_FILE=/var/run/ndppd.pid
+
+start() {
+       mkdir -p /var/run
+       service_start /usr/sbin/ndppd -p $SERVICE_PID_FILE -d
+}
+
+stop() {
+       service_stop /usr/sbin/ndppd
+}