* adss in-kernel udp redirect plugin for lantiq voice optimisation

SVN-Revision: 25413
This commit is contained in:
John Crispin 2011-02-07 21:48:55 +00:00
parent e651a9341a
commit b549fce06b
3 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,48 @@
#
# Copyright (C) 2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=drv_kpi2udp
PKG_VERSION:=2.2.0
PKG_RELEASE:=1
PKG_SOURCE:=drv_kpi2udp-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
PKG_MD5SUM:=af3855609554c7f3d2c3df8c597f50a7
include $(INCLUDE_DIR)/package.mk
define KernelPackage/ltq-kpi2udp
SUBMENU:=Voice over IP
TITLE:=TAPI KPI2UDP plug-in
URL:=http://www.lantiq.com/
DEPENDS:=+kmod-ltq-tapi @TARGET_lantiq
FILES:=$(PKG_BUILD_DIR)/drv_kpi2udp.ko
AUTOLOAD:=$(call AutoLoad,26,drv_kpi2udp)
MAINTAINER:=John Crispin <blogic@openwrt.org>
endef
define KernelPackage/ltq-kpi2udp/description
RTP packet path accelleration into IP stack (strongly recommended)
endef
CONFIGURE_ARGS += --enable-kernelincl="$(LINUX_DIR)/include" \
--enable-tapiincl="$(STAGING_DIR)/usr/include/drv_tapi" \
--with-ifxos-incl=$(STAGING_DIR)/usr/include/ifxos \
--enable-warning \
--enable-linux-26 \
--enable-kernelbuild="$(LINUX_DIR)" \
ARCH=$(LINUX_KARCH)
define Build/Configure
(cd $(PKG_BUILD_DIR); aclocal && autoconf && automake)
$(call Build/Configure/Default)
endef
$(eval $(call KernelPackage,ltq-kpi2udp))

View File

@ -0,0 +1,11 @@
--- a/configure.in
+++ b/configure.in
@@ -113,7 +113,7 @@
AC_ARG_ENABLE(kernelbuild,
AS_HELP_STRING(--enable-kernelbuild=x,Set the target kernel build path),
[
- if test -r $enableval/include/linux/autoconf.h; then
+ if test -r $enableval/include/generated/autoconf.h; then
AC_SUBST([KERNEL_BUILD_PATH],[$enableval])
else
AC_MSG_ERROR([The kernel build directory is not valid or not configured!])

View File

@ -0,0 +1,29 @@
--- a/ifx_udp_redirect.c
+++ b/ifx_udp_redirect.c
@@ -256,7 +256,7 @@
{
if (redtab.channels[i].in_use == IFX_TRUE)
{
- if (redtab.channels[i].sk->sk_lock.owner != 0)
+ if (redtab.channels[i].sk->sk_lock.owned != 0)
return IFX_TRUE;
}
}
@@ -545,7 +545,7 @@
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
if (sk->num != htons(sport))
#else
- if (((struct inet_sock *)sk)->num != htons(sport))
+ if (((struct inet_sock *)sk)->inet_num != htons(sport))
#endif
{
return CALL_MK_SESSION_ERR;
@@ -628,7 +628,7 @@
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
if((vsock != NULL)&&(vsk != NULL)&&(vsk->num > 0))
#else
- if((vsock != NULL)&&(vsk != NULL)&&(((struct inet_sock *)vsk)->num > 0))
+ if((vsock != NULL)&&(vsk != NULL)&&(((struct inet_sock *)vsk)->inet_num > 0))
#endif
{
/*printk("[KPI2UDP] releasing vsock...%p, ops %p\n", vsock, vsock->ops);*/