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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.