Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-27 Thread Santosh Shilimkar
On 6/27/2018 3:07 AM, Ka-Cheong Poon wrote: On 06/26/2018 09:08 PM, Sowmini Varadhan wrote: On (06/26/18 21:02), Ka-Cheong Poon wrote: [...] I don't expect RDS apps will want to use link local address in the first place.  In fact, most normal network apps don't. This is not true. You

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-27 Thread Sowmini Varadhan
On (06/27/18 18:07), Ka-Cheong Poon wrote: > > There is a reason for that. It is the way folks expect > how IPv6 addresses are being used. have you tried "traceoute6 -s abc::2 fe80::2" on linux? > It is not just forwarding. The simple case is that one > picks a global address in a different li

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-27 Thread Ka-Cheong Poon
On 06/26/2018 09:08 PM, Sowmini Varadhan wrote: On (06/26/18 21:02), Ka-Cheong Poon wrote: In this case, RFC 6724 prefers link local address as source. the keyword is "prefers". There is a reason for that. It is the way folks expect how IPv6 addresses are being used. While using non-li

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-26 Thread Sowmini Varadhan
On (06/26/18 21:02), Ka-Cheong Poon wrote: > > In this case, RFC 6724 prefers link local address as source. the keyword is "prefers". > While using non-link local address (say ULA) is not forbidden, > doing this can easily cause inter-operability issues (does the > app really know that the non-

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-26 Thread Ka-Cheong Poon
On 06/26/2018 06:16 PM, Sowmini Varadhan wrote: On (06/26/18 13:30), Ka-Cheong Poon wrote: My answer to this is that if a socket is not bound to a link local address (meaning it is bound to a non-link local address) and it is used to send to a link local peer, I think it should fail. Hmm, I'm

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-26 Thread Sowmini Varadhan
On (06/26/18 13:30), Ka-Cheong Poon wrote: > > My answer to this is that if a socket is not bound to a link > local address (meaning it is bound to a non-link local address) > and it is used to send to a link local peer, I think it should > fail. Hmm, I'm not sure I agree. I dont think this is fo

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-25 Thread Ka-Cheong Poon
On 06/26/2018 01:50 AM, Sowmini Varadhan wrote: If a socket is bound, I guess the scope_id should be used. So if a socket is not bound to a link local address and the socket is used to sent to a link local peer, it should fail. PF_RDS sockets *MUST* alwasy be bound. See Documentation/network

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-25 Thread Santosh Shilimkar
On 6/25/2018 10:50 AM, Sowmini Varadhan wrote: On (06/26/18 01:43), Ka-Cheong Poon wrote: Yes, I think if the socket is bound, it should check the scope_id in msg_name (if not NULL) to make sure that they match. A bound RDS socket can send to multiple peers. But if the bound local address is

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-25 Thread Sowmini Varadhan
On (06/26/18 01:43), Ka-Cheong Poon wrote: > > Yes, I think if the socket is bound, it should check the scope_id > in msg_name (if not NULL) to make sure that they match. A bound > RDS socket can send to multiple peers. But if the bound local > address is link local, it should only be allowed to

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-25 Thread Ka-Cheong Poon
On 06/26/2018 01:03 AM, Sowmini Varadhan wrote: On (06/25/18 03:38), Ka-Cheong Poon wrote: @@ -1105,8 +1105,27 @@ int rds_sendmsg(struct socket *sock, struct msghdr *msg, size_t payload_len) break; case sizeof(*sin6): { - ret = -EPROTONOSUPP

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-25 Thread Sowmini Varadhan
On (06/25/18 03:38), Ka-Cheong Poon wrote: > @@ -1105,8 +1105,27 @@ int rds_sendmsg(struct socket *sock, struct msghdr > *msg, size_t payload_len) > break; > > case sizeof(*sin6): { > - ret = -EPROTONOSUPPORT; > - goto o

Re: [PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-25 Thread kbuild test robot
Hi Ka-Cheong, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/Ka-Cheong-Poon/rds-IPv6-support/20180625-190047 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig

[PATCH net-next 2/3] rds: Enable RDS IPv6 support

2018-06-25 Thread Ka-Cheong Poon
This patch enables RDS to use IPv6 addresses. For RDS/TCP, the listener is now an IPv6 endpoint which accepts both IPv4 and IPv6 connection requests. RDS/RDMA/IB uses a private data (struct rds_ib_connect_private) exchange between endpoints at RDS connection establishment time to support RDMA. Thi