NLnetLabs / simdzone

Fast and standards compliant DNS zone parser

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add iterator for RDATA fields

k0ekk0ek opened this issue · comments

The user can iterate over each individual rdata field from the callback(s), which is used by NSD to add names in a different fashion to improve serve performance (names are replaced by pointers to the domain structure). Currently the rrtype specific parse function instantiates a buffer to hold a pointer to the starting octet in rdata and pairs it with a zone_field_info_t. This worked well up until now because we assumed synchronous operation. However, as stated in #39, it seems like a quick win to allow for asynchronous operation between parsing and database insertion (the quickest operation basically does not impact load performance). As a consequence, the stack allocated buffer in the rrtype parse function cannot be used in the callback. Of course, we need need multiple buffers too (more details on #39).

Based on the outcome of #98, this issue may be closed (or not).

zone_type_info_t and zone_field_info_t will be simplified and private. The application needs to understand the wire representation for all RRTYPEs it wants to support and can fallback to "generic" behavior for RRTYPEs it does not know about. Closing this issue.