hi all,
this patch tries to correct the incorrect behavior of Quagga's ospfd in
the special situation that a node's opaque capability has changed as "ON
-> OFF -> ON"
without the patch, ospfd did call ospfapi ready callbacks only for those
opaque types which did NOT have injected lsa's before the ON->OFF->ON
sequence. when SRRD (an ospfapi client application) injected only
type-11 lsa's this resulted in ready-9, ready-10 and NO ready-11 after
the ON->OFF->ON sequence.
now, with the patch, ospfd correctly generates the 3 ready callbacks.
the patch simply removes the test for emptyness of the list ipt->id_list.
i'm not sure if it's correct. as far as i can see everything still works
after applying the patch.
BUT ... the list oipt->id_list IS not empty and this means that the
headler is already active... this means also that with the test for
oipt->id_list's emptyness ospf_opaque_lsa_reoriginate_schedule() never
gets called, resulting in NO ready callback of every type which existed
before the ON->OFF->ON sequence.
eventually someone with more insight into ospfd's data structures could
correct me?
cheers
- amir
--
Amir Guindehi, nospam.amir@datacore.ch
DataCore GmbH, Witikonerstrasse 289, 8053 Zurich, Switzerland
this patch tries to correct the incorrect behavior of Quagga's ospfd in
the special situation that a node's opaque capability has changed as "ON
-> OFF -> ON"
without the patch, ospfd did call ospfapi ready callbacks only for those
opaque types which did NOT have injected lsa's before the ON->OFF->ON
sequence. when SRRD (an ospfapi client application) injected only
type-11 lsa's this resulted in ready-9, ready-10 and NO ready-11 after
the ON->OFF->ON sequence.
now, with the patch, ospfd correctly generates the 3 ready callbacks.
the patch simply removes the test for emptyness of the list ipt->id_list.
i'm not sure if it's correct. as far as i can see everything still works
after applying the patch.
BUT ... the list oipt->id_list IS not empty and this means that the
headler is already active... this means also that with the test for
oipt->id_list's emptyness ospf_opaque_lsa_reoriginate_schedule() never
gets called, resulting in NO ready callback of every type which existed
before the ON->OFF->ON sequence.
eventually someone with more insight into ospfd's data structures could
correct me?
cheers
- amir
--
Amir Guindehi, nospam.amir@datacore.ch
DataCore GmbH, Witikonerstrasse 289, 8053 Zurich, Switzerland