[PATCH v3 net 0/4] qbv cycle time extension/truncation

From: Faizal Rahim
Date: Tue Dec 19 2023 - 03:17:33 EST


According to IEEE Std. 802.1Q-2018 section Q.5 CycleTimeExtension,
the Cycle Time Extension variable allows this extension of the last old
cycle to be done in a defined way. If the last complete old cycle would
normally end less than OperCycleTimeExtension nanoseconds before the new
base time, then the last complete cycle before AdminBaseTime is reached
is extended so that it ends at AdminBaseTime.

Changes in v3:
- Removed the last 3 patches related to fixing cycle time adjustment
for the "current entry". This is to simplify this patch series submission
which only covers cycle time adjustment for the "next entry".
- Negative correction calculation in get_cycle_time_correction() is
guarded so that it doesn't exceed interval
- Some rename (macro, function)
- Transport commit message comments to the code comments
- Removed unnecessary null check
- Reword commit message

Changes in v2:
- Added 's64 cycle_time_correction' in 'sched_gate_list struct'.
- Removed sched_changed created in v1 since the new cycle_time_correction
field can also serve to indicate the need for a schedule change.
- Added 'bool correction_active' in 'struct sched_entry' to represent
the correction state from the entry's perspective and return corrected
interval value when active.
- Fix cycle time correction logics for the next entry in advance_sched()
- Fix and implement proper cycle time correction logics for current
entry in taprio_start_sched()

v2 at:
https://lore.kernel.org/lkml/20231107112023.676016-1-faizal.abdul.rahim@xxxxxxxxxxxxxxx/
v1 at:
https://lore.kernel.org/lkml/20230530082541.495-1-muhammad.husaini.zulkifli@xxxxxxxxx/

Faizal Rahim (4):
net/sched: taprio: fix too early schedules switching
net/sched: taprio: fix cycle time adjustment for next entry
net/sched: taprio: fix impacted fields value during cycle time
adjustment
net/sched: taprio: get corrected value of cycle_time and interval

net/sched/sch_taprio.c | 178 +++++++++++++++++++++++++++++++----------
1 file changed, 135 insertions(+), 43 deletions(-)

--
2.25.1