(yea, admittedly, there's no real standard) It seems that when building a message to send to PF_ROUTE requires some magical alignment. FreeBSD defines, but doesn't document, SO_SIZE() NetBSD defines, but doesn't document, RT_ADVANCE() and RT_ROUNDUP() OpenBSD hides definitions for ADVANCE() and ROUNDUP() in route.c Can I suggest adding/documenting the RT_* macros; mainly because everything else in net/route.h starts with the RT* prefix.
^Triage: this is really more of a headers issue.