An exhaustive survey on p4 programmable data plane switches: Taxonomy, applications, challenges, and future trends