Re: [PATCH v4] net/ceph/messenger: support IPv6 Link-Local with scope identifier
Alex Markuze <[email protected]>
| Newsgroups | org.kernel.vger.ceph-devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Max, The core issue from v3 is still present: sin6_scope_id is a local ifindex and must not go on the wire. v4 adds ceph_addr_equal_no_scope() for banner comparisons, but peer_addr still carries the scope from inet_pton_with_scope() and gets encoded into the msgr2 HELLO and client-ident. A peer with scope 0 or a different ifindex will still fail identity checks. v4 also introduces new issues: the monmap update path drops scope when installing decoded addresses, so reconnect to link-local monitors breaks after the first map; ceph_addr_equal_no_type() still memcmps full addresses including scope, breaking monmap lookup; and ceph_addr_clear_scope() does an unaligned write through a cast on a const-qualified pointer. The fix needs a clean wire/local split: scope lives only in the sockaddr used for kernel_connect(), cleared in everything that touches wire identity. -- Alex Markuze