--- zzzz-none-000/linux-2.6.28.10/net/ipv4/udp.c 2009-05-02 18:54:43.000000000 +0000 +++ fusiv-7390-686/linux-2.6.28.10/net/ipv4/udp.c 2011-12-21 09:12:23.000000000 +0000 @@ -271,10 +271,18 @@ if (unlikely(sk = skb_steal_sock(skb))) return sk; - else - return __udp4_lib_lookup(dev_net(skb->dst->dev), iph->saddr, sport, - iph->daddr, dport, inet_iif(skb), - udptable); +#ifdef CONFIG_AVM_PA + sk = __udp4_lib_lookup(dev_net(skb->dst->dev), iph->saddr, sport, + iph->daddr, dport, inet_iif(skb), + udptable); + if (sk) + avm_pa_add_local_session(skb, sk); + return sk; +#else + return __udp4_lib_lookup(dev_net(skb->dst->dev), iph->saddr, sport, + iph->daddr, dport, inet_iif(skb), + udptable); +#endif } struct sock *udp4_lib_lookup(struct net *net, __be32 saddr, __be16 sport, @@ -585,8 +593,13 @@ connected = 1; } ipc.addr = inet->saddr; - ipc.oif = sk->sk_bound_dev_if; + +#ifdef CONFIG_TI_META_DATA + /* Initialize the meta-data field */ + ipc.ti_meta_info = 0; +#endif + if (msg->msg_controllen) { err = ip_cmsg_send(sock_net(sk), msg, &ipc); if (err) @@ -628,6 +641,7 @@ if (rt == NULL) { struct flowi fl = { .oif = ipc.oif, + .mark = sk->sk_mark, .nl_u = { .ip4_u = { .daddr = faddr, .saddr = saddr,