pf: allow MLD LR to be sent without state

Change PF behavior to allow MLD Listener Report packets to be sent
without needing a previously created state by MLD Listener Query. It
wasn't working because: (1) you might not have a previous MLD Listener
Query and (2) the addresses of the Query and Report don't match.

ok mikeb@, sashan@

MFC after:	1 day
Obtained From:	OpenBSD, rzalamena <rzalamena@openbsd.org>, 5c526dbdb0f2
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 1afe4da75d1d2acd33b25eea942af28aa41c82c2)
This commit is contained in:
Kristof Provost 2024-07-10 14:36:18 +02:00
parent 7f77305a5b
commit 3382c691dc

View file

@ -1854,8 +1854,15 @@ pf_icmp_mapping(struct pf_pdesc *pd, u_int8_t type,
break;
case MLD_LISTENER_QUERY:
*icmp_dir = PF_IN;
case MLD_LISTENER_REPORT: {
/*
* Listener Report can be sent by clients
* without an associated Listener Query.
* In addition to that, when Report is sent as a
* reply to a Query its source and destination
* address are different.
*/
*icmp_dir = PF_IN;
*virtual_type = MLD_LISTENER_QUERY;
*virtual_id = 0;
break;