For reference, according to the iwyu run by CI, as part of the tidy task:
 0[13:49:05.974] /ci_container_base/src/common/pcp.cpp should add these lines:
 1[13:49:05.974] #include <algorithm>            // for __equal_fn, equal
 2[13:49:05.974] #include <compare>              // for operator<, strong_ordering
 3[13:49:05.974] #include <cstring>              // for size_t, memcpy
 4[13:49:05.974] #include <functional>           // for function
 5[13:49:05.974] #include <map>                  // for map, operator==, _Rb_tree_const_iterator
 6[13:49:05.974] #include <memory>               // for unique_ptr
 7[13:49:05.974] #include <optional>             // for optional, nullopt, nullopt_t
 8[13:49:05.974] #include <span>                 // for span
 9[13:49:05.974] #include <utility>              // for pair
10[13:49:05.974] #include <vector>               // for vector
11[13:49:05.974] #include "compat/compat.h"      // for sockaddr_storage, WSAGetLastError, in_addr, socklen_t, in6_addr, sockaddr_in, AF_INET, IPPROTO_UDP, SOCK_DGRAM, MSG_D...
12[13:49:05.974] #include "tinyformat.h"         // for format, strprintf
13[13:49:05.974] #include "util/string.h"        // for string, basic_string, HasPrefix
14[13:49:05.974] 
15[13:49:05.974] /ci_container_base/src/common/pcp.cpp should remove these lines:
16[13:49:05.974] - #include <common/netif.h>  // lines 7-7
17[13:49:05.974] - #include <random.h>  // lines 12-12
18[13:49:05.974] - #include <util/readwritefile.h>  // lines 15-15
(Just sharing, no need to pick this up here. A future change that enforces iwyu on the codebase will fix it either way)