Hi all, I created a patch of RAW socket. This patch adds ip6_sk_dst_lookup()/ip6_dst_store() in rawv6_sendmsg(). so that RAW socket can use "daddr_cache". When RAW socket sent the packets to same destination, it must reduce over-head. Could you please check the following patch? Regards, Naohiro Ooiwa Signed-off-by: Naohiro Ooiwa <nooiwa@miraclelinux.com> --- net/ipv6/raw.c | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 396f0ea..58c5e25 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -858,7 +858,7 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk, fl.oif = np->mcast_oif; security_sk_classify_flow(sk, &fl); - err = ip6_dst_lookup(sk, &dst, &fl); + err = ip6_sk_dst_lookup(sk, &dst, &fl); if (err) goto out; if (final_p) @@ -905,7 +905,17 @@ back_from_confirm: release_sock(sk); } done: - dst_release(dst); + if (dst) + ip6_dst_store(sk, dst, + ipv6_addr_equal(&fl.fl6_dst, &np->daddr) ? + &np->daddr : NULL, +#ifdef CONFIG_IPV6_SUBTREES + ipv6_addr_equal(&fl.fl6_src, &np->saddr) ? + &np->saddr : +#endif + NULL); + else + dst_release(dst); out: fl6_sock_release(flowlabel); return err<0?err:len; -- -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Greg Kroah-Hartman | [PATCH 008/196] Chinese: add translation of volatile-considered-harmful.txt |
| Amit K. Arora | [RFC] Heads up on sys_fallocate() |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Linus Torvalds | Re: Slow DOWN, please!!! |
git: | |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Natalie Protasevich | [BUG] New Kernel Bugs |
