Sounds like a port forwarding issue, but first, try going into router configuration and disable uPnP, and restart the router.
then do the following on both of the PC's: (for the windows OS)
1. Go to Start > Run and type in Services.msc
2. Stop the "UPnP Device Host" service.
3. Stop the "SSDP Discovery" service.
If that doesn't work, chances are it's probably a port forwarding issue.
If both PC's are connected through the same gateway IP, all the server sees is two clients with the same IP and it can't tell which machine requires which data behind the gateway IP. Port forwarding one PC will allow the router to know what traffic is directed to which private IP on your LAN (which the server cannot see) and allow that traffic through.
Go to portforward.com and find your router. It will list steps on how to forward ports for your specific router.
I checked for you, and you want to make sure the following ports are open for Battlefield
TCP(transmission control protocol): 80, 443, 9988, 20000-20100, 22990, 17502, 42127
UDP(user datagram protocol): 3659, 14000-14016, 22990-23006, 25200-25300