5 #ifndef PLATFORM_PACKET_HOOKS
6 #define PLATFORM_PACKET_HOOKS
11 #include "../common/datapacket.h"
12 #include "../common/ternary_fields.h"
13 #include "../switch_port.h"
15 #if defined(__COMPILING_ROFL_PIPELINE__) || !defined(ROFL_PIPELINE_PP_PRESENT) || !defined(ROFL_PIPELINE_INLINE_PP_PLATFORM_FUNCS)
736 #ifdef ROFL_EXPERIMENTAL
749 uint8_t* platform_packet_get_pppoe_code(
datapacket_t *
const pkt);
755 uint8_t* platform_packet_get_pppoe_type(
datapacket_t *
const pkt);
761 uint16_t* platform_packet_get_pppoe_sid(
datapacket_t *
const pkt);
767 void platform_packet_set_pppoe_type(
datapacket_t* pkt, uint8_t type);
772 void platform_packet_set_pppoe_code(
datapacket_t* pkt, uint8_t code);
777 void platform_packet_set_pppoe_sid(
datapacket_t* pkt, uint16_t sid);
783 void platform_packet_pop_pppoe(
datapacket_t* pkt, uint16_t ether_type);
788 void platform_packet_push_pppoe(
datapacket_t* pkt, uint16_t ether_type);
799 uint16_t* platform_packet_get_ppp_proto(
datapacket_t *
const pkt);
806 void platform_packet_set_ppp_proto(
datapacket_t* pkt, uint16_t proto);
816 uint8_t* platform_packet_get_gtp_msg_type(
datapacket_t *
const pkt);
823 uint32_t* platform_packet_get_gtp_teid(
datapacket_t *
const pkt);
829 void platform_packet_set_gtp_msg_type(
datapacket_t* pkt, uint8_t msg_type);
835 void platform_packet_set_gtp_teid(
datapacket_t* pkt, uint32_t teid);
841 void platform_packet_pop_gtp(
datapacket_t* pkt, uint16_t ether_type);
845 void platform_packet_push_gtp(
datapacket_t* pkt, uint16_t ether_type);
857 uint8_t* platform_packet_get_capwap_wbid(
datapacket_t *
const pkt);
864 uint8_t* platform_packet_get_capwap_rid(
datapacket_t *
const pkt);
871 uint16_t* platform_packet_get_capwap_flags(
datapacket_t *
const pkt);
877 void platform_packet_set_capwap_wbid(
datapacket_t* pkt, uint8_t wbid);
882 void platform_packet_set_capwap_rid(
datapacket_t* pkt, uint8_t rid);
888 void platform_packet_set_capwap_flags(
datapacket_t* pkt, uint16_t flags);
911 uint16_t* platform_packet_get_wlan_fc(
datapacket_t *
const pkt);
918 uint8_t* platform_packet_get_wlan_type(
datapacket_t *
const pkt);
925 uint8_t* platform_packet_get_wlan_subtype(
datapacket_t *
const pkt);
932 uint8_t* platform_packet_get_wlan_direction(
datapacket_t *
const pkt);
939 uint64_t* platform_packet_get_wlan_address_1(
datapacket_t *
const pkt);
946 uint64_t* platform_packet_get_wlan_address_2(
datapacket_t *
const pkt);
953 uint64_t* platform_packet_get_wlan_address_3(
datapacket_t *
const pkt);
960 void platform_packet_set_wlan_fc(
datapacket_t* pkt, uint16_t fc);
965 void platform_packet_set_wlan_type(
datapacket_t* pkt, uint8_t type);
970 void platform_packet_set_wlan_subtype(
datapacket_t* pkt, uint8_t subtype);
975 void platform_packet_set_wlan_direction(
datapacket_t* pkt, uint8_t direction);
981 void platform_packet_set_wlan_address_1(
datapacket_t* pkt, uint64_t address_1);
987 void platform_packet_set_wlan_address_2(
datapacket_t* pkt, uint64_t address_2);
993 void platform_packet_set_wlan_address_3(
datapacket_t* pkt, uint64_t address_3);
1014 uint16_t* platform_packet_get_gre_version(
datapacket_t *
const pkt);
1020 uint16_t* platform_packet_get_gre_prot_type(
datapacket_t *
const pkt);
1027 uint32_t* platform_packet_get_gre_key(
datapacket_t *
const pkt);
1033 void platform_packet_set_gre_version(
datapacket_t* pkt, uint16_t version);
1038 void platform_packet_set_gre_prot_type(
datapacket_t* pkt, uint16_t prot_type);
1044 void platform_packet_set_gre_key(
datapacket_t* pkt, uint32_t key);
1050 void platform_packet_pop_gre(
datapacket_t* pkt, uint16_t ether_type);
1054 void platform_packet_push_gre(
datapacket_t* pkt, uint16_t ether_type);
1067 #endif //PLATFORM_PACKET_HOOKS