isochron-rcv(8)

πŸ“¦
version 0.9 Β· 2 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– isochron-rcv(8) πŸ’–

okay bestie, welcome to the isochron-rcv page from the ISOCHRON manual (section 8, the big-girl system administration section πŸ’…). this is the receiver half of the isochron duo and it's lowkey the moment.


✨ NAME ✨

isochron-rcv β€” start an isochron test in the role of a receiver 🫢


🌸 SYNOPSIS 🌸

isochron rcv [OPTIONS]

πŸ¦‹ DESCRIPTION πŸ¦‹

so basically this command kicks off a long-running process that sits there and listens for connections from an isochron sender. when the test packets come rolling in, it logs timestamps for each received test packet, and then sends all that logged data back. it's giving diligent note-taker energy πŸ“βœ¨


πŸ‘‘ OPTIONS πŸ‘‘

  • -h, --help β€” prints the short help message and then dips. iconic exit behaviour.
  • -i, --interface <IFNAME> β€” tell it which network interface the packets are gonna be received on πŸ›œ
  • -d, --dmac <MACADDRESS> β€” the destination MAC address the application uses for recognizing test packets. can be either unicast or multicast, no gatekeeping. this one's necessary only for the L2 transport (plain Ethernet). it's optional tho, because by default it just uses the interface's unicast MAC address.
  • -e, --etype <NUMBER> β€” the EtherType the application uses for recognizing test packets sent over the L2 transport. optional, defaults to 0xdead πŸ’€ (yes fr, that's the actual default).
  • -P, --stats-port <NUMBER> β€” the TCP port the receiver program is listening on for incoming connections. this socket is the one used for management and statistics. optional, defaults to port 5000.
  • -s, --frame-size <NUMBER> β€” the size of test frames. and the way it counts is so specific: from the first octet of the destination MAC address all the way until the last octet of data before the FCS. periodt.
  • -S, --stats-address <NUMBER> β€” the IP address the receiver program is listening on for incoming connections. again, this socket = management and statistics. it supports binding to a given network device using the address%device syntax (example: --stats-address ::%vrf0). optional, defaults to ::, with a fallback to 0.0.0.0 if IPv6 is not available.
  • -q, --quiet β€” suppresses error messages about invalid test packets. optional, defaults to false. shhh 🀫
  • -f, --sched-fifo β€” when set, the program asks the kernel to switch its scheduling policy to SCHED_FIFO for the whole duration of the test.
  • -r, --sched-rr β€” when set, the program asks the kernel to switch its scheduling policy to SCHED_RR for the duration of the test.
  • -H, --sched-priority <NUMBER> β€” when either --sched-fifo or --sched-rr is being used, the program asks the kernel to change its scheduling priority for the duration of the test.
  • -O, --utc-tai-offset <NUMBER> β€” the program uses the CLOCK_TAI time base for its timers and for every reported timestamp, and this option sets the correction in seconds to apply to software timestamps (those are taken by the kernel in the CLOCK_REALTIME (UTC) time base). if this option is present, isochron will also change the kernel's CLOCK_TAI offset to the value you gave, so that its timers fire correctly. if the option is absent, isochron queries the kernel's CLOCK_TAI offset and tries to use that. and if isochron can also query the UTC offset from ptp4l's TIME_PROPERTIES_DATA_SET using management messages, it does that too and compares that offset against the kernel's UTC offset. the UTC offset reported by ptp4l has the highest priority, and if the application detects it's different from the kernel's CLOCK_TAI offset, it changes the kernel offset to the value queried from ptp4l. so much drama in one flag 😭
  • -2, --l2 β€” says the plain Ethernet transport should be used for the test packets. optional, defaults to true unless the sender overrides this via the management socket.
  • -4, --l4 β€” says the UDP transport should be used for test packets. optional, defaults to false unless the sender overrides this via the management socket.
  • -U, --unix-domain-socket <PATH> β€” isochron queries ptp4l's state by creating and sending PTP management messages over a local UNIX domain socket, and this option specifies the path of that socket in the filesystem. optional, defaults to /var/run/ptp4l.
  • -N, --domain-number <NUMBER> β€” provides the domainNumber value used when constructing PTP management messages sent to the ptp4l process. it must coincide with the domainNumber ptp4l is using, otherwise ptp4l will not respond to management messages. optional, defaults to 0.
  • -t, --transport-specific <NUMBER> β€” provides the transportSpecific value used when constructing PTP management messages sent to the ptp4l process. it must coincide with the transportSpecific ptp4l is using, otherwise ptp4l will not respond to management messages. optional, defaults to 0. also heads up bestie: PTP variants like IEEE 802.1AS/gPTP require this value to be set to a different value such as 1 ⚠️
  • -R, --num-readings <NUMBER> β€” isochron monitors the synchronization quality between the NIC's PTP Hardware Clock (PHC) and the system time by successively reading the system time, the PHC time and the system time again, several times in a row, and then picking the group of 3 time readouts that took the least amount of time overall. this option says how many readouts should be performed before picking the fastest one. optional, defaults to 5.

πŸŽ€ EXAMPLES πŸŽ€

to start an isochron receiver with PTP synchronization:

ip link set eth0 up && ip addr add 192.168.100.2/24 dev eth0
ptp4l -i eth0 -2 -P --step_threshold 0.00002 &
phc2sys -a -rr --step_threshold 0.00002 &
isochron rcv \
    --interface eth0 \
    --quiet \
    --sched-rr \
    --sched-priority 98

look at that little stack of commands, it's giving main character energy 🌈


πŸ’œ AUTHOR πŸ’œ

isochron was written by Vladimir Oltean vladimir.oltean@nxp.com β€” thank you king πŸ‘‘


⭐ SEE ALSO ⭐

isochron(8) isochron-send(8) isochron-report(1)

go read the whole squad, iykyk 🧚


🌸 COMMENTS 🌸

this man page was written using pandoc by the same author. no cap.


and that's the whole page bestie!! this was isochron-rcv(8) from the ISOCHRON manual, section 8 β€” and the footer is literally just the page name again (isochron-rcv(8)), which is honestly so on brand. go forth and receive some packets πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from