• Vladimir Oltean's avatar
    net: add struct kernel_hwtstamp_config and make net_hwtstamp_validate() use it · c4bffeaa
    Vladimir Oltean authored
    Jakub Kicinski suggested that we may want to add new UAPI for
    controlling hardware timestamping through netlink in the future, and in
    that case, we will be limited to the struct hwtstamp_config that is
    currently passed in fixed binary format through the SIOCGHWTSTAMP and
    SIOCSHWTSTAMP ioctls. It would be good if new kernel code already
    started operating on an extensible kernel variant of that structure,
    similar in concept to struct kernel_ethtool_coalesce vs struct
    ethtool_coalesce.
    
    Since struct hwtstamp_config is in include/uapi/linux/net_tstamp.h, here
    we introduce include/linux/net_tstamp.h which shadows that other header,
    but also includes it, so that existing includers of this header work as
    before. In addition to that, we add the definition for the kernel-only
    structure, and a helper which translates all fields by manual copying.
    I am doing a manual copy in order to not force the alignment (or type)
    of the fields of struct kernel_hwtstamp_config to be the same as of
    struct hwtstamp_config, even though now, they are the same.
    
    Link: https://lore.kernel.org/netdev/20230330223519.36ce7d23@kernel.org/Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c4bffeaa
net_tstamp.h 929 Bytes