lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 2 Dec 2021 11:04:40 +0800
From:   Hangbin Liu <liuhangbin@...il.com>
To:     Jakub Kicinski <kuba@...nel.org>
Cc:     netdev@...r.kernel.org, Jay Vosburgh <j.vosburgh@...il.com>,
        Veaceslav Falico <vfalico@...il.com>,
        Andy Gospodarek <andy@...yhouse.net>, davem@...emloft.net,
        Richard Cochran <richardcochran@...il.com>,
        Miroslav Lichvar <mlichvar@...hat.com>
Subject: Re: [PATCH net-next] bond: pass get_ts_info and SIOC[SG]HWTSTAMP
 ioctl to active device

On Wed, Dec 01, 2021 at 07:11:18AM -0800, Jakub Kicinski wrote:
> > > Does the Ethernet spec say something about PTP over bond/LACP?  
> > 
> > bond_option_active_slave_get_rcu() only supports bond mode active-backup/tlb/alb.
> > With LACP mode _no_ active interface returns and we will use software
> > timestamping.
> 
> I understand that, I was asking about guidance from LACP as there is 
> no IEEE standard for the other modes to my knowledge.

Oh, I checked IEEE 8021AX, this is only one paragraph mentioned PTP

8. Frame distribution and collection algorithms
8.2 Per-service frame distribution
8.2.1 Goals and objectives
Distributing frames to physical links by service ID, as defined in 8.2,
provides the following:

b) Bidirectional congruity: Providing a means for the two ends of an Aggregation Group to use the
same physical link in both directions for a given service ensures that a failed link or a link
experiencing an excessive error rate will affect the fewest possible number of services and in general
provide support for protocols that have strict symmetry requirements on their transmit and receive
paths, e.g., Precision Time Protocol (PTP) in IEEE Std 1588 ™ -2008.

But I didn't find any valuable information from it.

> 
> > But you remind me that we should return -EOPNOTSUPP when there is no real_dev
> > for bond_eth_ioctl(). I will send a fixup later.
> > 
> > > What happens during failover? Presumably the user space daemon will
> > > start getting HW stamps based on a different PHC than it's disciplining?  
> > 
> > linuxptp will switch to new active interface's PHC device when there is a
> > bonding failover by filtering netlink message on pure bond.
> > 
> > But for VLAN over bond I need to figure out how to get the bond failover
> > message on VLAN interface and update the new PHC device.
> 
> Yeah, there should be some form of well understood indication in the
> uAPI telling the user space daemon that the PHC may get swapped on the
> interface, and a reliable notification which indicates PHC change.
> There is a number of user space daemons out there, fixing linuxptp does
> not mean other user space won't be broken/surprised/angry.

This is a RFE, I don't think this patch will affect the current user space as
the new topology is not supported before. i.e. no user space tool will configure
PTP based on bond or vlan over bond. And even the user space use other ways to
get bond's active interface, e.g. via netlink message. It still not affected
and could keep using the old way. So I think this patch should be safe.

Did I miss any thing?
> 
> What notification is linuxptp listening on, SETLINK?

Currently, I send RTM_GETLINK message on bond and listening on
RTM_NEWLINK message to get IFLA_LINKINFO info.

But for the new VLAN over bond topology. I haven't figure out a good solution.
Maybe I can just check the active interface status. When it get down,
do get_ts_info once again to get the new active interface on the VLAN over
bond interface. I need some testing.

Hangbin

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ