Re: [PATCH net-next v17 14/14] netlink: specs: Enhance tsinfo netlink attributes and add a tsconfig set command
From: Jacob Keller
Date: Wed Jul 17 2024 - 13:45:07 EST
On 7/9/2024 6:53 AM, Kory Maincent wrote:
> Add new attributed to tsinfo allowing to get the tsinfo from a phc provider
> (composed by a phc index and a phc qualifier) on a netdevice's link.
> Add simultaneously a tsconfig command to be able to get and set hwtstamp
> configuration for a specified phc provider.
>
> Here is few examples:
> ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema
> --dump tsinfo-get
> --json '{"header":{"dev-name":"eth0"}}'
> [{'header': {'dev-index': 3, 'dev-name': 'eth0'},
> 'hwtst-provider': {'index': 0, 'qualifier': 0},
> 'phc-index': 0,
> 'rx-filters': {'bits': {'bit': [{'index': 0, 'name': 'none'},
> {'index': 2, 'name': 'some'}]},
> 'nomask': True,
> 'size': 16},
> 'timestamping': {'bits': {'bit': [{'index': 0, 'name': 'hardware-transmit'},
> {'index': 2, 'name': 'hardware-receive'},
> {'index': 6,
> 'name': 'hardware-raw-clock'}]},
> 'nomask': True,
> 'size': 17},
> 'tx-types': {'bits': {'bit': [{'index': 0, 'name': 'off'},
> {'index': 1, 'name': 'on'}]},
> 'nomask': True,
> 'size': 4}},
> {'header': {'dev-index': 3, 'dev-name': 'eth0'},
> 'hwtst-provider': {'index': 2, 'qualifier': 0},
> 'phc-index': 2,
> 'rx-filters': {'bits': {'bit': [{'index': 0, 'name': 'none'},
> {'index': 1, 'name': 'all'}]},
> 'nomask': True,
> 'size': 16},
> 'timestamping': {'bits': {'bit': [{'index': 0, 'name': 'hardware-transmit'},
> {'index': 1, 'name': 'software-transmit'},
> {'index': 2, 'name': 'hardware-receive'},
> {'index': 3, 'name': 'software-receive'},
> {'index': 4,
> 'name': 'software-system-clock'},
> {'index': 6,
> 'name': 'hardware-raw-clock'}]},
> 'nomask': True,
> 'size': 17},
> 'tx-types': {'bits': {'bit': [{'index': 0, 'name': 'off'},
> {'index': 1, 'name': 'on'},
> {'index': 2, 'name': 'onestep-sync'}]},
> 'nomask': True,
> 'size': 4}}]
>
> ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema --do tsinfo-get
> --json '{"header":{"dev-name":"eth0"},
> "hwtst-provider":{"index":0, "qualifier":0 }
> }'
> {'header': {'dev-index': 3, 'dev-name': 'eth0'},
> 'hwtst-provider': {'index': 0, 'qualifier': 0},
> 'phc-index': 0,
> 'rx-filters': {'bits': {'bit': [{'index': 0, 'name': 'none'},
> {'index': 2, 'name': 'some'}]},
> 'nomask': True,
> 'size': 16},
> 'timestamping': {'bits': {'bit': [{'index': 0, 'name': 'hardware-transmit'},
> {'index': 2, 'name': 'hardware-receive'},
> {'index': 6, 'name': 'hardware-raw-clock'}]},
> 'nomask': True,
> 'size': 17},
> 'tx-types': {'bits': {'bit': [{'index': 0, 'name': 'off'},
> {'index': 1, 'name': 'on'}]},
> 'nomask': True,
> 'size': 4}}
>
> ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema --do tsinfo-set
> --json '{"header":{"dev-name":"eth0"},
> "hwtst-provider":{"index":2, "qualifier":0}}'
> None
> ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema --do tsconfig-get
> --json '{"header":{"dev-name":"eth0"}}'
> {'header': {'dev-index': 3, 'dev-name': 'eth0'},
> 'hwtstamp-flags': 1,
> 'hwtstamp-provider': {'index': 1, 'qualifier': 0},
> 'rx-filters': {'bits': {'bit': [{'index': 12, 'name': 'ptpv2-event'}]},
> 'nomask': True,
> 'size': 16},
> 'tx-types': {'bits': {'bit': [{'index': 1, 'name': 'on'}]},
> 'nomask': True,
> 'size': 4}}
>
> ./ynl/cli.py --spec netlink/specs/ethtool.yaml --no-schema --do tsconfig-set
> --json '{"header":{"dev-name":"eth0"},
> "hwtstamp-provider":{"index":1, "qualifier":0 },
> "rx-filters":{"bits": {"bit": {"name":"ptpv2-l4-event"}},
> "nomask": 1},
> "tx-types":{"bits": {"bit": {"name":"on"}},
> "nomask": 1}}'
> None
>
> Signed-off-by: Kory Maincent <kory.maincent@xxxxxxxxxxx>
> ---
Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>