The idea is to have ability to specify interface name that will obtain IPv6 prefix dynamically instead of using ext_prefix argument.
- to ipfw(8) added ability to use ext_if ifname argument
- to keep ABI the struct _ipfw_nptv6_cfg was modified using anonymous union. The size of if_name is the same as in6_addr.
- added ifaddr_event_ext handler and the code modified to be able use specified if_name to obtain external prefix.
The nptv6 instance will handle ifaddr events and take suitable address as external prefix. When address disappears, or interface has not suitable address, instance silently skips handling of matched packets. So, they probably will be routed untranslated.