With this patch non-real-time UDP packets a routed to the Linux network stack. You can enable this feature with the configure option "--enable-proxy-udp".
Note: this patch requires running "scripts/autogen.sh" Signed-off-by: Wolfang Grandegger <[EMAIL PROTECTED]> Index: rtnet/stack/ipv4/ip_input.c =================================================================== --- rtnet.orig/stack/ipv4/ip_input.c +++ rtnet/stack/ipv4/ip_input.c @@ -70,6 +70,13 @@ static inline void rt_ip_local_deliver(s } else { /* Get the destination socket */ if ((sock = ipprot->dest_socket(skb)) == NULL) { +#ifdef CONFIG_RTNET_ADDON_PROXY_UDP + if (rt_ip_fallback_handler) { + __rtskb_push(skb, iph->ihl*4); + rt_ip_fallback_handler(skb); + return; + } +#endif kfree_rtskb(skb); return; } Index: rtnet/stack/ipv4/ip_fragment.c =================================================================== --- rtnet.orig/stack/ipv4/ip_fragment.c +++ rtnet/stack/ipv4/ip_fragment.c @@ -33,6 +33,11 @@ #include <ipv4/ip_fragment.h> +#ifdef CONFIG_RTNET_ADDON_PROXY_UDP +#include <ipv4/ip_input.h> +#endif /* CONFIG_RTNET_ADDON_PROXY_UDP */ + +#define FRAG_DBG /* * This defined sets the number of incoming fragmented IP messages that @@ -185,6 +190,14 @@ static struct rtskb *add_to_collector(st rtdm_lock_put_irqrestore(&p_coll->frags.lock, context); } +#ifdef CONFIG_RTNET_ADDON_PROXY_UDP + if (rt_ip_fallback_handler) { + __rtskb_push(skb, iph->ihl*4); + rt_ip_fallback_handler(skb); + return NULL; + } +#endif + #ifdef FRAG_DBG rtdm_printk("RTnet: Unordered IP fragment (saddr:%x, daddr:%x)" " - dropped\n", iph->saddr, iph->daddr); @@ -276,6 +289,13 @@ struct rtskb *rt_ip_defrag(struct rtskb { /* Get the destination socket */ if ((sock = ipprot->dest_socket(skb)) == NULL) { +#ifdef CONFIG_RTNET_ADDON_PROXY_UDP + if (rt_ip_fallback_handler) { + __rtskb_push(skb, iph->ihl*4); + rt_ip_fallback_handler(skb); + return NULL; + } +#endif /* Drop the rtskb */ kfree_rtskb(skb); return NULL; Index: rtnet/configure.ac =================================================================== --- rtnet.orig/configure.ac +++ rtnet/configure.ac @@ -1189,6 +1189,19 @@ if test "$CONFIG_RTNET_ADDON_PROXY" = "y AC_DEFINE(CONFIG_RTNET_ADDON_PROXY,1,[rtnetproxy support]) fi +AC_MSG_CHECKING([whether to enable rtnetproxy UDP support]) +AC_ARG_ENABLE(proxy-udp, + AS_HELP_STRING([--enable-proxy-udp], [enable UDP support for IP protocol proxy driver @<:@default=no@:>@]), + [case "$enableval" in + y | yes) CONFIG_RTNET_ADDON_PROXY_UDP=y ;; + *) CONFIG_RTNET_ADDON_PROXY_UDP=n ;; + esac]) +AC_MSG_RESULT([${CONFIG_RTNET_ADDON_PROXY_UDP:-n}]) +AM_CONDITIONAL(CONFIG_RTNET_ADDON_PROXY_UDP,[test "$CONFIG_RTNET_ADDON_PROXY_UDP" = "y"]) +if test "$CONFIG_RTNET_ADDON_PROXY_UDP" = "y"; then + AC_DEFINE(CONFIG_RTNET_ADDON_PROXY_UDP,1,[rtnetproxy UDP support]) +fi + #dnl ====================================================================== #dnl RTDM select (disabled until RTDM actually supports this) -- ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ RTnet-users mailing list RTnet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rtnet-users