/****************************************************************************** ** ** FILE NAME : ifx_ppa_hook.c ** PROJECT : PPA ** MODULES : PPA Protocol Stack Hooks ** ** DATE : 3 NOV 2008 ** AUTHOR : Xu Liang ** DESCRIPTION : PPA Protocol Stack Hook Pointers ** COPYRIGHT : Copyright (c) 2006 ** Infineon Technologies AG ** Am Campeon 1-12, 85579 Neubiberg, Germany ** ** Any use of this software is subject to the conclusion of a respective ** License agreement. Without such a License agreement no rights to the ** software are granted ** ** HISTORY ** $Date $Author $Comment ** 03 NOV 2008 Xu Liang Initiate Version *******************************************************************************/ /* * #################################### * Version No. * #################################### */ #define VER_FAMILY 0x60 // bit 0: res // 1: Danube // 2: Twinpass // 3: Amazon-SE // 4: res // 5: AR9 // 6: GR9 #define VER_DRTYPE 0x08 // bit 0: Normal Data Path driver // 1: Indirect-Fast Path driver // 2: HAL driver // 3: Hook driver // 4: Stack/System Adaption Layer driver // 5: PPA API driver #define VER_INTERFACE 0x00 // bit 0: MII 0 // 1: MII 1 // 2: ATM WAN // 3: PTM WAN #define VER_ACCMODE 0x03 // bit 0: Routing // 1: Bridging #define VER_MAJOR 0 #define VER_MID 0 #define VER_MINOR 2 /* * #################################### * Head File * #################################### */ /* * Common Head File */ #include #include #include #include #include #include #include #include #include #include /* * Chip Specific Head File */ #include /* * #################################### * Extern Variable * #################################### */ int32_t (*ppa_hook_init_fn)(PPA_INIT_INFO *, uint32_t) = NULL; void (*ppa_hook_exit_fn)(void) = NULL; int32_t (*ppa_hook_enable_fn)(uint32_t, uint32_t, uint32_t) = NULL; int32_t (*ppa_hook_get_status_fn)(uint32_t *, uint32_t *, uint32_t) = NULL; int32_t (*ppa_hook_session_add_fn)(PPA_BUF *, PPA_SESSION *, uint32_t) = NULL; int32_t (*ppa_hook_session_del_fn)(PPA_SESSION *, uint32_t) = NULL; int32_t (*ppa_hook_session_modify_fn)(PPA_SESSION *, PPA_SESSION_EXTRA *, uint32_t) = NULL; int32_t (*ppa_hook_session_get_fn)(PPA_SESSION ***, PPA_SESSION_EXTRA **, int32_t *, uint32_t) = NULL; int32_t (*ppa_hook_mc_group_update_fn)(PPA_MC_GROUP *, uint32_t) = NULL; int32_t (*ppa_hook_mc_group_get_fn)(IPADDR, PPA_MC_GROUP *, uint32_t) = NULL; int32_t (*ppa_hook_mc_entry_modify_fn)(IPADDR, PPA_MC_GROUP *, PPA_SESSION_EXTRA *, uint32_t) = NULL; int32_t (*ppa_hook_mc_entry_get_fn)(IPADDR, PPA_SESSION_EXTRA *, uint32_t) = NULL; int32_t (*ppa_hook_multicast_pkt_srcif_add_fn)(PPA_BUF *, PPA_NETIF *) = NULL; int32_t (*ppa_hook_inactivity_status_fn)(PPA_U_SESSION *) = NULL; int32_t (*ppa_hook_set_inactivity_fn)(PPA_U_SESSION*, int32_t) = NULL; int32_t (*ppa_hook_bridge_entry_add_fn)(uint8_t *, PPA_NETIF *, uint32_t) = NULL; int32_t (*ppa_hook_bridge_entry_delete_fn)(uint8_t *, uint32_t) = NULL; int32_t (*ppa_hook_bridge_entry_hit_time_fn)(uint8_t *, uint32_t *) = NULL; int32_t (*ppa_hook_bridge_entry_inactivity_status_fn)(uint8_t *) = NULL; int32_t (*ppa_hook_set_bridge_entry_timeout_fn)(uint8_t *, uint32_t) = NULL; int32_t (*ppa_hook_set_bridge_if_vlan_config_fn)(PPA_NETIF *, PPA_VLAN_TAG_CTRL *, PPA_VLAN_CFG *, uint32_t) = NULL; int32_t (*ppa_hook_get_bridge_if_vlan_config_fn)(PPA_NETIF *, PPA_VLAN_TAG_CTRL *, PPA_VLAN_CFG *, uint32_t) = NULL; int32_t (*ppa_hook_vlan_filter_add_fn)(PPA_VLAN_MATCH_FIELD *, PPA_VLAN_INFO *, uint32_t) = NULL; int32_t (*ppa_hook_vlan_filter_del_fn)(PPA_VLAN_MATCH_FIELD *, PPA_VLAN_INFO *, uint32_t) = NULL; int32_t (*ppa_hook_vlan_filter_get_all_fn)(int32_t *, PPA_VLAN_FILTER_CONFIG *, uint32_t) = NULL; int32_t (*ppa_hook_vlan_filter_del_all_fn)(uint32_t); int32_t (*ppa_hook_get_if_stats_fn)(PPA_IFNAME *, PPA_IF_STATS *, uint32_t) = NULL; int32_t (*ppa_hook_get_accel_stats_fn)(PPA_IFNAME *, PPA_ACCEL_STATS *, uint32_t) = NULL; int32_t (*ppa_hook_set_if_mac_address_fn)(PPA_IFNAME *, uint8_t *, uint32_t) = NULL; int32_t (*ppa_hook_get_if_mac_address_fn)(PPA_IFNAME *, uint8_t *, uint32_t) = NULL; int32_t (*ppa_hook_add_if_fn)(PPA_IFINFO *, uint32_t) = NULL; int32_t (*ppa_hook_del_if_fn)(PPA_IFINFO *, uint32_t) = NULL; int32_t (*ppa_hook_get_if_fn)(int32_t *, PPA_IFINFO **, uint32_t) = NULL; int32_t (*ppa_hook_directpath_register_dev_fn)(uint32_t *, PPA_NETIF *, PPA_DIRECTPATH_CB *, uint32_t) = NULL; int32_t (*ppa_hook_directpath_send_fn)(uint32_t, PPA_BUF *, int32_t, uint32_t) = NULL; int32_t (*ppa_hook_directpath_rx_stop_fn)(uint32_t, uint32_t) = NULL; int32_t (*ppa_hook_directpath_rx_restart_fn)(uint32_t, uint32_t) = NULL; PPA_NETIF *(*ppa_hook_get_netif_for_ppa_ifid_fn)(uint32_t) = NULL; int32_t (*ppa_hook_get_ifid_for_netif_fn)(PPA_NETIF *) = NULL; int32_t (*ppa_hook_wan_mii0_vlan_range_add_fn)(PPA_VLAN_RANGE *, uint32_t) = NULL; int32_t (*ppa_hook_wan_mii0_vlan_range_del_fn)(PPA_VLAN_RANGE *, int32_t) = NULL ; int32_t (*ppa_hook_wan_mii0_vlan_ranges_get_fn)(int32_t *, PPA_VLAN_RANGE *, uint32_t) = NULL; EXPORT_SYMBOL(ppa_hook_init_fn); EXPORT_SYMBOL(ppa_hook_exit_fn); EXPORT_SYMBOL(ppa_hook_enable_fn); EXPORT_SYMBOL(ppa_hook_get_status_fn); EXPORT_SYMBOL(ppa_hook_session_add_fn); EXPORT_SYMBOL(ppa_hook_session_del_fn); EXPORT_SYMBOL(ppa_hook_session_modify_fn); EXPORT_SYMBOL(ppa_hook_session_get_fn); EXPORT_SYMBOL(ppa_hook_mc_group_update_fn); EXPORT_SYMBOL(ppa_hook_mc_group_get_fn); EXPORT_SYMBOL(ppa_hook_mc_entry_modify_fn); EXPORT_SYMBOL(ppa_hook_mc_entry_get_fn); EXPORT_SYMBOL(ppa_hook_multicast_pkt_srcif_add_fn); EXPORT_SYMBOL(ppa_hook_inactivity_status_fn); EXPORT_SYMBOL(ppa_hook_set_inactivity_fn); EXPORT_SYMBOL(ppa_hook_bridge_entry_add_fn); EXPORT_SYMBOL(ppa_hook_bridge_entry_delete_fn); EXPORT_SYMBOL(ppa_hook_bridge_entry_hit_time_fn); EXPORT_SYMBOL(ppa_hook_bridge_entry_inactivity_status_fn); EXPORT_SYMBOL(ppa_hook_set_bridge_entry_timeout_fn); EXPORT_SYMBOL(ppa_hook_set_bridge_if_vlan_config_fn); EXPORT_SYMBOL(ppa_hook_get_bridge_if_vlan_config_fn); EXPORT_SYMBOL(ppa_hook_vlan_filter_add_fn); EXPORT_SYMBOL(ppa_hook_vlan_filter_del_fn); EXPORT_SYMBOL(ppa_hook_wan_mii0_vlan_range_add_fn); EXPORT_SYMBOL(ppa_hook_wan_mii0_vlan_range_del_fn); EXPORT_SYMBOL(ppa_hook_wan_mii0_vlan_ranges_get_fn); EXPORT_SYMBOL(ppa_hook_vlan_filter_get_all_fn); EXPORT_SYMBOL(ppa_hook_vlan_filter_del_all_fn); EXPORT_SYMBOL(ppa_hook_get_if_stats_fn); EXPORT_SYMBOL(ppa_hook_get_accel_stats_fn); EXPORT_SYMBOL(ppa_hook_set_if_mac_address_fn); EXPORT_SYMBOL(ppa_hook_get_if_mac_address_fn); EXPORT_SYMBOL(ppa_hook_add_if_fn); EXPORT_SYMBOL(ppa_hook_del_if_fn); EXPORT_SYMBOL(ppa_hook_get_if_fn); EXPORT_SYMBOL(ppa_hook_directpath_register_dev_fn); EXPORT_SYMBOL(ppa_hook_directpath_send_fn); EXPORT_SYMBOL(ppa_hook_directpath_rx_stop_fn); EXPORT_SYMBOL(ppa_hook_directpath_rx_restart_fn); EXPORT_SYMBOL(ppa_hook_get_netif_for_ppa_ifid_fn); EXPORT_SYMBOL(ppa_hook_get_ifid_for_netif_fn);