Commit 9f177f4e authored by Alessandro Rubini's avatar Alessandro Rubini

bmc: compare most-significant first

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 46f9cde3
......@@ -150,27 +150,23 @@ static int bmc_dataset_cmp(struct pp_instance *ppi,
}
/* GrandMaster are not identical */
if (ann_a->grandmasterPriority1 == ann_b->grandmasterPriority1) {
if (ann_a->grandmasterClockQuality.clockClass ==
ann_b->grandmasterClockQuality.clockClass) {
if (ann_a->grandmasterClockQuality.clockAccuracy == ann_b->grandmasterClockQuality.clockAccuracy) {
if (ann_a->grandmasterClockQuality.offsetScaledLogVariance == ann_b->grandmasterClockQuality.offsetScaledLogVariance) {
if (ann_a->grandmasterPriority2 == ann_b->grandmasterPriority2)
return memcmp(&ann_a->grandmasterIdentity, &ann_b->grandmasterIdentity, PP_CLOCK_IDENTITY_LENGTH);
/* Priority2 are not identical */
return ann_a->grandmasterPriority2 - ann_b->grandmasterPriority2;
}
/* offsetScaledLogVariance are not identical */
return ann_a->grandmasterClockQuality.clockClass - ann_b->grandmasterClockQuality.clockClass;
}
/* Accuracy are not identitcal */
return ann_a->grandmasterClockQuality.clockAccuracy - ann_b->grandmasterClockQuality.clockAccuracy;
}
/* ClockClass are not identical */
if (ann_a->grandmasterPriority1 != ann_b->grandmasterPriority1)
return ann_a->grandmasterPriority1 - ann_b->grandmasterPriority1;
if (ann_a->grandmasterClockQuality.clockClass != ann_b->grandmasterClockQuality.clockClass)
return ann_a->grandmasterClockQuality.clockClass - ann_b->grandmasterClockQuality.clockClass;
}
/* Priority1 are not identical */
return ann_a->grandmasterPriority1 - ann_b->grandmasterPriority1;
if (ann_a->grandmasterClockQuality.clockAccuracy != ann_b->grandmasterClockQuality.clockAccuracy)
return ann_a->grandmasterClockQuality.clockAccuracy - ann_b->grandmasterClockQuality.clockAccuracy;
if (ann_a->grandmasterClockQuality.offsetScaledLogVariance != ann_b->grandmasterClockQuality.offsetScaledLogVariance)
return ann_a->grandmasterClockQuality.clockClass - ann_b->grandmasterClockQuality.clockClass;
if (ann_a->grandmasterPriority2 != ann_b->grandmasterPriority2)
return ann_a->grandmasterPriority2 - ann_b->grandmasterPriority2;
return memcmp(&ann_a->grandmasterIdentity, &ann_b->grandmasterIdentity, PP_CLOCK_IDENTITY_LENGTH);
}
/* State decision algorithm 9.3.3 Fig 26 */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment