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