SSH into your router and check if the miniupnp daemon is still running:
If it is, then something is wrong with the way the PS4 tries to use UPNP (or the way that test tries UPNP).
Also check the System Log for any message related to UPNP and expired port mapping getting removed.
I get the following in my log
Dec 1 00:01:03 qtn: bootcfg.tgz exists
Dec 1 00:01:03 start_nat_rules: apply the nat_rules(/tmp/nat_rules_ppp0_eth0)!
Dec 1 00:01:04 kernel: nf_conntrack_rtsp v0.6.21 loading
Dec 1 00:01:04 kernel: nf_nat_rtsp v0.6.21 loading
Dec 1 00:01:05 rc_service: ip-up 687:notify_rc start_upnp
Dec 1 00:01:05 rc_service: waitting "stop_upnp" via ip-up ...
Dec 1 00:01:07 miniupnpd[757]: HTTP listening on port 46737
Dec 1 00:01:07 miniupnpd[757]: Listening for NAT-PMP/PCP traffic on port 5351
Dec 1 00:01:07 ntp: start NTP update
Mar 16 12:39:16 rc_service: ntp 754:notify_rc restart_upnp
Mar 16 12:39:16 rc_service: ntp 754:notify_rc restart_diskmon
Mar 16 12:39:16 rc_service: waitting "restart_upnp" via ntp ...
Mar 16 12:39:16 miniupnpd[757]: shutting down MiniUPnPd
Mar 16 12:39:17 miniupnpd[772]: HTTP listening on port 58004
Mar 16 12:39:17 miniupnpd[772]: Listening for NAT-PMP/PCP traffic on port 5351
Mar 16 12:39:17 kernel: * Make sure sizeof(struct sw_struct)=160 is consistent
Mar 16 12:39:18 kernel: IDPfw: TrendMicro forward module ver-1.0.26
Mar 16 12:39:18 kernel: IDPfw: Apply module param dev_wan=ppp0
Mar 16 12:39:18 kernel: IDPfw: Apply module param sess_num=30000
Mar 16 12:39:18 kernel: IDPfw: Init chrdev /dev/idpfw with major 191
Mar 16 12:39:18 kernel: IDPfw: IDPfw is ready
Mar 16 12:39:18 kernel: sizeof forward param = 160
Mar 16 12:39:19 disk monitor: be idle
Mar 16 12:39:21 pppd[671]: System time change detected.
Mar 16 12:39:22 rc_service: ip-up 687:notify_rc start_firewall
Mar 16 12:39:22 start_nat_rules: apply the nat_rules(/tmp/nat_rules_ppp0_eth0)!
then a bunch of DHCP messages.. then
Mar 16 14:54:36 rc_service: httpd 589:notify_rc restart_wlcscan
Mar 16 14:54:47 wlcscan: start wlcscan scan
Mar 16 15:01:52 rc_service: httpd 589:notify_rc restart_wireless
Mar 16 15:01:55 kernel: UFFP entry not found
Mar 16 15:01:55 kernel: br0: port 2(eth1) entering forwarding state
Mar 16 15:01:55 kernel: device eth1 left promiscuous mode
Mar 16 15:01:55 kernel: br0: port 2(eth1) entering disabled state
Mar 16 15:01:55 kernel: br0: port 3(wl0.1) entering forwarding state
Mar 16 15:01:55 kernel: device wl0.1 left promiscuous mode
Mar 16 15:01:55 kernel: br0: port 3(wl0.1) entering disabled state
Mar 16 15:01:55 kernel: Hooks already unregistered
Mar 16 15:01:55 snooper: terminated with signal 15
Mar 16 15:01:55 kernel: Hooks already unregistered
Mar 16 15:01:59 kernel: wl_module_init: passivemode set to 0x0
Mar 16 15:01:59 kernel: wl_module_init: txworkq set to 0x1
Mar 16 15:01:59 kernel: eth1: Broadcom BCM4360 802.11 Wireless Controller 6.37.14.86 (r456083)
Mar 16 15:02:05 kernel: br0: received packet on vlan1 with own address as source address
Mar 16 15:02:05 kernel: br0: received packet on vlan1 with own address as source address
Mar 16 15:02:05 kernel: br0: received packet on vlan1 with own address as source address
Mar 16 15:02:07 kernel: br0: received packet on vlan1 with own address as source address
Mar 16 15:02:09 kernel: br0: received packet on vlan1 with own address as source address
Mar 16 15:02:11 kernel: device eth1 entered promiscuous mode
Mar 16 15:02:11 kernel: br0: topology change detected, propagating
Mar 16 15:02:11 kernel: br0: port 2(eth1) entering forwarding state
Mar 16 15:02:11 kernel: br0: port 2(eth1) entering forwarding state
Mar 16 15:02:15 kernel: br0: received packet on vlan1 with own address as source address
Mar 16 15:02:21 kernel: Interface wifi0 doesn't exist
Mar 16 15:02:21 kernel: device wl0.1 entered promiscuous mode
Mar 16 15:02:21 kernel: br0: topology change detected, propagating
Mar 16 15:02:21 kernel: br0: port 3(wl0.1) entering forwarding state
Mar 16 15:02:21 kernel: br0: port 3(wl0.1) entering forwarding state
Mar 16 15:02:21 snooper: started on vlan1/br0
I don't see UPNP restart - so maybe there is my issue.. but not sure why
Thanks