/*
 * Include Files
 */
#ifdef __KERNEL__
#include <osal/lib.h>
#include <common/error.h>	//redefine in rtk_rg_liteRomeDriver.h as CONFIG_APOLLO
#include <common/rt_type.h>	//redefine in rtk_rg_liteRomeDriver.h as CONFIG_APOLLO
//#include <rtk_rg_liteRomeDriver.h>
//#include <rtk_rg_apolloPro_asicDriver.h>
#include <rtk_rg_internal.h>
#define rtlglue_printf printk
#else
#include <string.h>
#include <unistd.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <math.h>
#include <rtk/rtusr/include/rtusr_util.h>
#include <rtdrv/rtdrv_rg_netfilter.h>
#include <rtdrv/rtdrv_netfilter.h>
#define rtlglue_printf printf
#endif


//#include <rtk/port.h>

/*
#ifdef CONFIG_APOLLO_RLE0371
#include <hal/chipdef/apollo/apollo_def.h>
#else
#include <hal/chipdef/apollomp/apollomp_def.h>
#endif
*/

//#include <rtk_rg_debug.h>



#if defined(CONFIG_RTL9607C_SERIES)
int32 dump_netif_index(uint32 idx, rtk_rg_asic_netif_entry_t * intf)
//int32 dump_netif_index(uint32 idx)
{
	uint8	*mac;
	//rtk_rg_asic_netif_entry_t intf;
	rtk_rg_asic_netifMib_entry_t intfMib;
	int retval  = 0;
	
	//rtlglue_printf(">>ASIC Netif Table:\n\n");
	if (intf->valid)
	{
		/*memset(&intf,0,sizeof(rtk_rg_asic_netif_entry_t));
		retval = rtk_rg_asic_netifTable_get(i, &intf);
		if (retval == FAIL)
			continue;
		*/

		mac = (uint8 *)&intf->gateway_mac_addr.octet[0];
		rtlglue_printf("  [%d]- %02x:%02x:%02x:%02x:%02x:%02x    IP: %d.%d.%d.%d", 
			idx, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], 
			(intf->gateway_ipv4_addr>>24)&0xff, (intf->gateway_ipv4_addr>>16)&0xff, (intf->gateway_ipv4_addr>>8)&0xff, intf->gateway_ipv4_addr&0xff);
		rtlglue_printf("\n      MTU check: %d, MTU %d Bytes", intf->intf_mtu_check, intf->intf_mtu);
		rtlglue_printf("\n      IgrAct: %d, EgrAct: %d, denyv4: %d, denyv6: %d", intf->ingress_action, intf->egress_action, intf->deny_ipv4, intf->deny_ipv6);
		rtlglue_printf("\n      Allow IgrPMask: 0x%x, IgrExtPmask: 0x%x", intf->allow_ingress_portmask.bits[0], intf->allow_ingress_ext_portmask.bits[0]);
		rtlglue_printf("\n      Out PPPoE Act: %d, sid: 0x%x", intf->out_pppoe_act, intf->out_pppoe_sid);

			
		retval = rtk_rg_asic_netifMib_get(idx, &intfMib);
		
		rtlglue_printf("\n      Igr pkt count : ");
		rtlglue_printf("uc(%u), mc(%u), bc(%u)", intfMib.in_intf_uc_packet_cnt, intfMib.in_intf_mc_packet_cnt, intfMib.in_intf_bc_packet_cnt);
		rtlglue_printf("\n      Igr byte count: ");
		rtlglue_printf("uc(%llu), mc(%llu), bc(%llu)", intfMib.in_intf_uc_byte_cnt, intfMib.in_intf_mc_byte_cnt, intfMib.in_intf_bc_byte_cnt);

		rtlglue_printf("\n      Egr pkt count : ");
		rtlglue_printf("uc(%u), mc(%u), bc(%u)", intfMib.out_intf_uc_packet_cnt, intfMib.out_intf_mc_packet_cnt, intfMib.out_intf_bc_packet_cnt);
		rtlglue_printf("\n      Egr byte count: ");
		rtlglue_printf("uc(%llu), mc(%llu), bc(%llu)", intfMib.out_intf_uc_byte_cnt, intfMib.out_intf_mc_byte_cnt, intfMib.out_intf_bc_byte_cnt);
			
		rtlglue_printf("\n\n");
	}
	return SUCCESS;
}
#endif