config LTQ_PPA
	bool "PPA Acceleration Package"
	depends on ETHERNET
	default n
	help
	  Acceleration Package Support

choice
   prompt "PPA Platform Selection"
   default LTQ_PPA_XRX330
   
   config LTQ_PPA_XRX100
      depends on LTQ_PPA
      bool "xRX100"

   config LTQ_PPA_XRX200
      depends on LTQ_PPA
      bool "xRX200"

   config LTQ_PPA_XRX300
      depends on LTQ_PPA
      bool "xRX300"
   
   config LTQ_PPA_XRX330
      depends on LTQ_PPA
      bool "xRX330"

   config LTQ_PPA_GRX500
      depends on LTQ_PPA
      bool "GRX500"

   config PPA_PUMA7
      depends on LTQ_PPA
      bool "X86_PUMA7"

endchoice

config LTQ_PPA_API
	tristate "PPA Acceleration Package - Kernel APIs"
	depends on LTQ_PPA && LTQ_PPA_DATAPATH
	default y
	help
	  PPA APIs and Kernel Hookup

config LTQ_MINI_JUMBO_FRAME_SUPPORT
	tristate "Mini Jumbo Frame support"
	depends on LTQ_PPA 
	default n
	help
	  Mini Jumbo Frame support


config LTQ_PPA_API_DIRECTPATH
	bool "Direct Path Support for PPA API"
	depends on LTQ_PPA_API
	default y
	help
	  Direct Path Support (e.g. WLAN) for PPA API

config LTQ_PPA_API_DIRECTPATH_HAS_NEW_API
        bool "Support for Extended Direct Path API"
        depends on LTQ_PPA_API_DIRECTPATH
        default y
        help
          Let PPA accelerate extended API's.

config PPA_API_DIRECTCONNECT
    bool "Direct Connect Support for PPA API"
    depends on LTQ_PPA_API && LTQ_PPA_GRX500
    default y
    help
      Let PPA accelerate DirectConnect traffic.

config LTQ_PPA_HAL_SELECTOR
          bool "PPA HAL Selector support"
		  depends on LTQ_PPA_API && (LTQ_PPA_GRX500 || PPA_PUMA7)
          default y
          help
            HAL selector enables usage of multiple HAL layers and there by supports mutiple accleration engines

config PPA_PP_LEARNING
	bool "PPA learning to program packet processor on PUMA7"
	depends on LTQ_PPA_API && PPA_PUMA7
	default n
	help
	 Adaptation for PPA learning to program packet processor

config PPA_PUMA_HAL
	tristate "PPA PUMA hal"
	depends on X86_PUMA7
	default n
	help
		PPA PUMA HAL  

config LTQ_PPA_PAE_HAL
	tristate "PPA PAE HAL - kernel APIs"
	depends on LTQ_PPA && LTQ_PPA_GRX500
	default y
	help
	    PAE HAL APIs support

config PAE_HW_METER
	tristate "PPA PAE HAL - hardware meter"
	depends on LTQ_PPA_PAE_HAL
	default y
	help
		Hardware meters used to fetch statistics for logical interfaces

config LTQ_PPA_LRO
	tristate "GRX500 LRO support in PPA"
	depends on LTQ_PPA && LTQ_PPA_GRX500 && LTQ_TOE_DRIVER
	default y
	help
	    GRX500 LRO hookup in PPA	

config LTQ_PPA_TMU_HAL
	tristate "PPA TMU HAL - kernel APIs"
	depends on LTQ_PPA && LTQ_PPA_GRX500
	default y
	help
	    TMU HAL APIs support	

config LTQ_PPA_TMU_MIB_SUPPORT
        tristate "PPA TMU HAL - kernel APIs"
        depends on LTQ_PPA && LTQ_PPA_GRX500
        default y
        help
            TMU HAL MIB APIs support

config LTQ_PPA_MPE_HAL
	tristate "PPA MPE HAL - kernel APIs"
	depends on LTQ_PPA && LTQ_PPA_GRX500
	default n
	help
	    MPE HAL APIs support	

config LTQ_PPA_MPE_IP97
	tristate "LTQ PPA MPE IP97 Support"
	depends on LTQ_PPA && LTQ_PPA_GRX500
	default n
	help
	   LTQ PPA MPE IP97 Support

config NAT_LOOP_BACK
	tristate "PPA NAT Loopback Support"
	depends on LTQ_PPA && LTQ_PPA_GRX500
	default y
	help
	   PPA NAT Loopback Support

config LTQ_PPA_COC_SUPPORT
	tristate "PPA CoC Support - kernel APIs"
	depends on LTQ_PPA && LTQ_PPA_GRX500 && LTQ_CPUFREQ
	default n
	help
	    PPA CoC support	

config LTQ_PPA_ETH_BOND
	tristate "GRX500 HGU Ethernet Bondng Support"
	depends on LTQ_PPA && LTQ_PPA_GRX500
	default n
	help
	    GRX500 HGU Ethernet Bondng datapath enable	

config LTQ_PPA_ETHWAN_RGMII
	bool "GRX500 Ethernet WAN in RGMII mode"
	depends on LTQ_PPA_ETH_BOND
	default n
	help
	    GRX500 Ethernet WAN (GSWIP-R port 15) in RGMII mode	

config LTQ_BRIDGE_LEARNING
	bool "Learn bridge sessions in PPA"
	depends on LTQ_PPA
	default y
	help
	    PPA - Learn bridge sessions in PPA

config LTQ_PPA_HANDLE_CONNTRACK_SESSIONS
          bool "Handle Session Limit"
          depends on LTQ_PPA_API
          default n
          help
             Session limiting support based on session criteria ( priority and threshold )

choice
	prompt "Software TX Queue"
	depends on LTQ_PPA_API_DIRECTPATH
	default LTQ_PPA_DIRECTPATH_TX_QUEUE_NONE

config LTQ_PPA_DIRECTPATH_TX_QUEUE_NONE
	bool "No Support"
	help
	  Do not support Directpath Software TX Queue.

config LTQ_PPA_DIRECTPATH_TX_QUEUE_SIZE
	bool "Queue Length - 1524 x 50 bytes"
	help
	  TX queue length is counted in total bytes of all packets in queue.
	  It provides better performance while handling burst traffic, if the
	  size of packets is random. Default value is 1524 x 50 bytes and can
	  be changed with parameter "directpath_tx_queue_size" passed in kernel
	  command line or loadable module parameter.

config LTQ_PPA_DIRECTPATH_TX_QUEUE_PKTS
	bool "Queue Length - 50 packets"
	help
	  TX queue length is counted in number of packets in queue. It provides
	  less overhead with acceptable performance while handling burst
	  traffic. Default value is 50 packets and can be changed with parameter
	  "directpath_tx_queue_pkts" passed in kernel command line or loadable
	  module parameter.
config LTQ_PPA_DIRECTPATH_TX_IMQ
	bool "Use IMQ for Directpath Rateshaping"
	help
	  Use IMQ to do Directpath Rateshaping to solve burst issue
endchoice

config LTQ_PPA_API_DIRECTPATH_TASKLET
	bool "Directpath use tasklet on TX queue"
	depends on LTQ_PPA_API_DIRECTPATH && (LTQ_PPA_DIRECTPATH_TX_QUEUE_SIZE || LTQ_PPA_DIRECTPATH_TX_QUEUE_PKTS)
	help
        Directpath use tasklet to send frames from registered device.

config LTQ_PPA_API_PROC
	tristate "Proc Filesystem Support for PPA API"
	depends on LTQ_PPA_API
	default y
	help
	  Proc Filesystem Support for PPA API

config LTQ_PPA_MFE
        bool "Multiple Filed Classification and Vlan Editing"
        depends on LTQ_PPA_API
        default n
        help
          Multiple Field Classification and Vlan Editing feature PPA API

config LTQ_PPA_QOS
        bool "QOS"
        depends on LTQ_PPA_API
        default y
        help
          QOS support

config LTQ_PPA_QOS_WFQ
        bool "QOS WFQ"
        depends on LTQ_PPA_QOS
        default y
        help
          QOS WFQ support

config LTQ_PPA_QOS_RATE_SHAPING
        bool "QOS Rate Shaping"
        depends on LTQ_PPA_QOS
        default y
        help
          QOS Rate Shaping support

config PPA_VAP_QOS_SUPPORT
        bool "QoS on VAP interfaces"
        depends on PPA_QOS
        default y
        help
          QOS Support on VLAN & VAP Interface

choice
        prompt "QoS on VLAN VAP Support"
        depends on LTQ_PPA_VAP_QOS_SUPPORT
        default LTQ_PPA_QOS_4_VAP_SUPPORT

        config LTQ_PPA_QOS_8_VAP_SUPPORT
        depends on LTQ_PPA_VAP_QOS_SUPPORT
        bool "QoS on 8 VAP"

        config LTQ_PPA_QOS_4_VAP_SUPPORT
        depends on LTQ_PPA_VAP_QOS_SUPPORT
        bool "QoS on 4 VAP"

endchoice

config LTQ_PPA_IPv6_ENABLE
	bool "PPA IPv6 support"
	depends on LTQ_PPA_API
	default y

config LTQ_PPA_DATAPATH
	tristate "PPA Acceleration Package - Data Path Driver"
	depends on LTQ_PPA
	default y
	select LTQ_ETH_FRAMEWORK
	help
	  PPA Low Level Driver (Data Path)

menu "Package Selection"
	depends on LTQ_PPA_DATAPATH

config LTQ_PPA_A5
	bool "PPA A5 Package <MII0/1 + ATM>"
   depends on LTQ_PPA_XRX100 || LTQ_PPA_XRX200 || LTQ_PPA_XRX300
	default n

config LTQ_PPA_D5
	bool "PPA D5 Package <MII0/1>"
   depends on LTQ_PPA_XRX100 || LTQ_PPA_XRX200 || LTQ_PPA_XRX300 || LTQ_PPA_XRX330
	default n

config LTQ_PPA_E5
	bool "PPA E5 Package <MII0/1 + PTM>"
   depends on LTQ_PPA_XRX100 || LTQ_PPA_XRX200 || LTQ_PPA_XRX300
	default n

config LTQ_PPE_E5_OFFCHIP_BONDING
	bool "PPA E5 Off-chip Bonding Support"
	depends on LTQ_PPA_XRX200
	select LTQ_PPA_E5
	default n

config LTQ_PPA_A1
	bool "VRX218 ATM Module"
#	depends on VRX318_PCIE_EP && (LTQ_PPA_XRX200 || LTQ_PPA_XRX300)
	depends on (LTQ_PPA_XRX300 || LTQ_PPA_XRX330)
	select LTQ_PPA_D5
	default n

config LTQ_PPA_E1
	bool "VRX218 PTM Module"
#	depends on VRX318_PCIE_EP && (LTQ_PPA_XRX200 || LTQ_PPA_XRX300)
	depends on (LTQ_PPA_XRX300 || LTQ_PPA_XRX330)
	select LTQ_PPA_D5
	default n

endmenu

config SUPPORT_PMAC_FLOWCONTROL
	bool "Enable PMAC flow control"
	depends on LTQ_PPA_XRX300 || LTQ_PPA_XRX200 || LTQ_PPA_XRX330
	default n

config GRX390_MM_ENHANCE
	bool "Use GRX390 Memory Enhance feature,(GRX390 Only)"
	depends on LTQ_PPA_XRX330
	default n

config ACCL_11AC
	tristate "Support Acceleration Qualcomm 11ac"
	depends on GRX390_MM_ENHANCE
	default n

config VRX218_DSL_DFE_LOOPBACK
	bool "SmartPHY DSL DFE Loopback Mode (PPA Testing Only)"
	depends on LTQ_PPA_A1 || LTQ_PPA_E1
	default n

config DSL_DFE_LOOPBACK
	tristate "xRX300 DSL DFE Loopback Mode (PPA Testing Only)"
	depends on LTQ_PPA && LTQ_PPA_XRX300
	default n

config LOOP_ETH_DEV
	tristate "Loopback ETH Emulation Device(PPA Testing Only)"
	depends on LTQ_PPA
	default n

config LTQ_PORT_MIRROR
	bool "Port Mirror support (Debugging Feature)"
	depends on LTQ_PPA
	default y
	help
	  Port mirror support.

config PTM_VECTORING
	tristate "PTM Vectoring Error Report Support"
	default n

config LTQ_PPA_PORT_SEPARATION
	bool "Port Seperation support"
	default n

config LTQ_PPA_NETIF_EVENT
	depends on LTQ_PPA || LTQ_PPA_API
	bool "Event based handling to add/remove logically interfaces in PPA"
	default n

config MAC_VIOLATION_MIRROR
	tristate "Enable mac violation Mirror Module"
	depends on LTQ_PPA && LTQ_PPA_GRX500
	default n
	help
	    MAC Violation Mirror support
