Advancing Deep Packet Inspection in SDNs: A Comparative Analysis of P4 and OpenFlow Programmability