aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/recv.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rds/recv.c')
-rw-r--r--net/rds/recv.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/net/rds/recv.c b/net/rds/recv.c
index 1402c21210b1..03cd8df54c26 100644
--- a/net/rds/recv.c
+++ b/net/rds/recv.c
@@ -792,3 +792,28 @@ void rds_inc_info_copy(struct rds_incoming *inc,
792 792
793 rds_info_copy(iter, &minfo, sizeof(minfo)); 793 rds_info_copy(iter, &minfo, sizeof(minfo));
794} 794}
795
796void rds6_inc_info_copy(struct rds_incoming *inc,
797 struct rds_info_iterator *iter,
798 struct in6_addr *saddr, struct in6_addr *daddr,
799 int flip)
800{
801 struct rds6_info_message minfo6;
802
803 minfo6.seq = be64_to_cpu(inc->i_hdr.h_sequence);
804 minfo6.len = be32_to_cpu(inc->i_hdr.h_len);
805
806 if (flip) {
807 minfo6.laddr = *daddr;
808 minfo6.faddr = *saddr;
809 minfo6.lport = inc->i_hdr.h_dport;
810 minfo6.fport = inc->i_hdr.h_sport;
811 } else {
812 minfo6.laddr = *saddr;
813 minfo6.faddr = *daddr;
814 minfo6.lport = inc->i_hdr.h_sport;
815 minfo6.fport = inc->i_hdr.h_dport;
816 }
817
818 rds_info_copy(iter, &minfo6, sizeof(minfo6));
819}