CVSROOT: /cvs Module name: src Changes by: ren...@cvs.openbsd.org 2016/06/08 17:14:03
Modified files: usr.sbin/ldpd : hello.c Log message: Discard Hello packet if advertised transport address is of different AF. IxANVL LDP test 5.13 was failing for ldpd(8) because we were not discarding IPv4 Hello messages with an IPv6 transport address (and vice-versa). Once again, the RFC is not very explicit about what to do in this case. Since the IPv4 and IPv6 Transport Address TLVs are optional, what we were doing is to just ignore them in this case and use source address of the packet as the implicit transport address. But the IxANVL team had a different interpretation on this. They think that discarding the Hello message is the right thing to do in this case. Let's follow their interpretation because that's probably what most implementations are doing. NOTE1: with this patch we still keep ignoring additional Transport Address TLVs as specified in RFC 7552; NOTE2: in order to check if a Transport Address TLV was already received or not, use the F_HELLO_TLV_RCVD_ADDR flag instead of comparing if the address is zero or not (easier to read). Fixes IxANVL LDP test 5.13.