18beef08fSSteen Hegelund# SPDX-License-Identifier: GPL-2.0-only
28beef08fSSteen Hegelund#
38beef08fSSteen Hegelund# Microchip VCAP API configuration
48beef08fSSteen Hegelund#
58beef08fSSteen Hegelund
68beef08fSSteen Hegelundif NET_VENDOR_MICROCHIP
78beef08fSSteen Hegelund
88beef08fSSteen Hegelundconfig VCAP
98beef08fSSteen Hegelund	bool "VCAP (Versatile Content-Aware Processor) library"
108beef08fSSteen Hegelund	help
118beef08fSSteen Hegelund	  Provides the basic VCAP functionality for multiple Microchip switchcores
128beef08fSSteen Hegelund
138beef08fSSteen Hegelund	  A VCAP is essentially a TCAM with rules consisting of
148beef08fSSteen Hegelund
158beef08fSSteen Hegelund	    - Programmable key fields
168beef08fSSteen Hegelund	    - Programmable action fields
178beef08fSSteen Hegelund	    - A counter (which may be only one bit wide)
188beef08fSSteen Hegelund
198beef08fSSteen Hegelund	  Besides this each VCAP has:
208beef08fSSteen Hegelund
218beef08fSSteen Hegelund	    - A number of lookups
228beef08fSSteen Hegelund	    - A keyset configuration per port per lookup
238beef08fSSteen Hegelund
248beef08fSSteen Hegelund	  The VCAP implementation provides switchcore independent handling of rules
258beef08fSSteen Hegelund	  and supports:
268beef08fSSteen Hegelund
278beef08fSSteen Hegelund	    - Creating and deleting rules
288beef08fSSteen Hegelund	    - Updating and getting rules
298beef08fSSteen Hegelund
308beef08fSSteen Hegelund	  The platform specific configuration as well as the platform specific model
318beef08fSSteen Hegelund	  of the VCAP instances are attached to the VCAP API and a client can then
328beef08fSSteen Hegelund	  access rules via the API in a platform independent way, with the
338beef08fSSteen Hegelund	  limitations that each VCAP has in terms of its supported keys and actions.
348beef08fSSteen Hegelund
358beef08fSSteen Hegelund	  Different switchcores will have different VCAP instances with different
368beef08fSSteen Hegelund	  characteristics. Look in the datasheet for the VCAP specifications for the
378beef08fSSteen Hegelund	  specific switchcore.
388beef08fSSteen Hegelund
3967d63751SSteen Hegelundconfig VCAP_KUNIT_TEST
4067d63751SSteen Hegelund	bool "KUnit test for VCAP library" if !KUNIT_ALL_TESTS
4167d63751SSteen Hegelund	depends on KUNIT
4267d63751SSteen Hegelund	depends on KUNIT=y && VCAP=y && y
43*552b7d13SSteen Hegelund	select DEBUG_FS
4467d63751SSteen Hegelund	default KUNIT_ALL_TESTS
4567d63751SSteen Hegelund	help
4667d63751SSteen Hegelund	  This builds unit tests for the VCAP library.
4767d63751SSteen Hegelund
4867d63751SSteen Hegelund	  For more information on KUnit and unit tests in general, please refer
4967d63751SSteen Hegelund	  to the KUnit documentation in Documentation/dev-tools/kunit/.
5067d63751SSteen Hegelund
5167d63751SSteen Hegelund	  If unsure, say N.
5267d63751SSteen Hegelund
538beef08fSSteen Hegelundendif # NET_VENDOR_MICROCHIP
54