/*******************************************************************************
 * (c) Copyright 2015 Microsemi Corporation.  All rights reserved.
 *
 *
 *
 * SVN $Revision: $
 * SVN $Date: $
 */

#ifndef __MR_POLICING_H__
	#define __MR_POLICING_H__

#include <api_oam_sdk/common/types/inc/mr_api_types.h>
#include "egl_types.h"

enum polModeEnum {
	vlanPrio	= 0,
	vlanOnly	= 1,
	portOnly	= 2
};
typedef enum polModeEnum	polMode_T;

int polEnPolicing(enDis_t enDis);
int polSetPolicingMode(uint8_t mode);
int polGetPolicingMode(uint8_t *mode);
//int polSetFwdClass(uint8_t recClass,uint8_t fwdClass);
//int polGetFwdClass(uint8_t recClass,uint8_t *fwdClass);
//int polSetVlan(uint8_t vlanIdx,uint16_t vLan, uint8_t dscpMode, uint8_t vlanOnly);
//int polGetVlan(uint8_t vlanIdx,uint16_t *vLan, uint8_t *dscpMode, uint8_t *vlanOnly);
//int polInitPolVlan(void);
int polSetQOSCtxt(uint8_t flowNum, uint8_t prio,uint32_t timer, uint32_t EIR, uint32_t CIR);
int polSetQOSCfg(uint8_t flowNum, uint8_t prio,uint16_t EBS, uint16_t CBS, uint32_t EIR, uint32_t CIR, uint8_t coupling, uint8_t colourMode);
int polGetQOSCfg(uint8_t flowNum, uint8_t prio,uint16_t *EBS, uint16_t *CBS, uint32_t *EIR, uint32_t *CIR, uint8_t *coupling, uint8_t *colourMode);
int polGetStats(uint8_t flowNum, uint8_t prio,uint32_t *green, uint32_t *yellow, uint32_t *red, uint32_t *discard);
int polSetStats(uint8_t flowNum, uint8_t prio,uint32_t green, uint32_t yellow, uint32_t red, uint32_t discard);

#endif //__MR_POLICING_H__
