Hi, Any news regarding the patching process?
-- | Evgeny Uskov | HLL l QRATOR | mob.: +7 916 319 33 20 | skype: evgeny_uskov | mailto: [email protected] | visit: www.qrator.net On Mon, Jan 25, 2016 at 5:55 PM, Evgeny Uskov <[email protected]> wrote: > Paul, > > Please see the attached files created with "git format-patch". > > Regarding the chunk with bgp_dump_obuf creation, it was done intentionally > with the following purpose. > The key idea of the patch is that if the portion of data (i.e. the RIB > entry corresponding to the prefix) is greater than the remaining space in > the current MRT record, then we finalize the current record and put this > portion of data to the next record. The function writing the portion of > data (bgp_dump_routes_attr) does not perform size checking, and hence we > decided to implement the logic above in the following way. > 1) We increased the max size of bgp_dump_obuf; > 2) after each portion of data we compare the current data size > with BGP_MAX_PACKET_SIZE + BGP_DUMP_MSG_HEADER + BGP_DUMP_HEADER_SIZE. If > the data size is greater than this value, then we finalize the record with > all the RIB entries except this last one (which does not fit to max packet > size), and the last RIB entry goes to the next data portion. > > The size of bgp_dump_obuf in this case should be at least > BGP_MAX_PACKET_SIZE + BGP_DUMP_MSG_HEADER + BGP_DUMP_HEADER_SIZE + (max > size of the RIB entry). In the patches attached to this letter we removed > the magic constant 0x4000, set the size in the following way: > > - bgp_dump_obuf = stream_new (BGP_MAX_PACKET_SIZE + BGP_DUMP_MSG_HEADER > - + BGP_DUMP_HEADER_SIZE); > + bgp_dump_obuf = stream_new ((BGP_MAX_PACKET_SIZE << 1) > + + BGP_DUMP_MSG_HEADER + > BGP_DUMP_HEADER_SIZE); > > I.e. we added one extra BGP_MAX_PACKET_SIZE which should be enough to > contain any possible RIB entry. > > -- > | Evgeny Uskov | HLL l QRATOR > | mob.: +7 916 319 33 20 > | skype: evgeny_uskov > | mailto: [email protected] > | visit: www.qrator.net > > On Mon, Jan 25, 2016 at 4:16 PM, Paul Jakma <[email protected]> wrote: > >> Hi, >> >> On Mon, 25 Jan 2016, Evgeny Uskov wrote: >> >> The easiest way to eliminate the problem is to create multiple MRT records >>> if there is too much data for a prefix. Please see the attached file >>> dump_fix.patch implementing such solution. >>> >>> >>> Finally, we have noticed a typo in the description of "dump bgp" command. >>> Please see the attached file comment_fix.patch. >>> >> >> Nice. Thanks! >> >> One thing, could you supply it as a git commit, or otherwise just supply >> a commit message. >> >> Also, did you intend to submit this chunk? If yes, what's the purpose? >> >> - bgp_dump_obuf = stream_new (BGP_MAX_PACKET_SIZE + BGP_DUMP_MSG_HEADER >> - + BGP_DUMP_HEADER_SIZE); >> + bgp_dump_obuf = stream_new (0x4000); >> >> regards, >> -- >> Paul Jakma [email protected] @pjakma Key ID: 64A2FF6A >> Fortune: >> Our country has plenty of good five-cent cigars, but the trouble is >> they charge fifteen cents for them. >> > >
_______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
