re added or other bugs are fixed. Functional testing is divided into subcomponents to test (Fig. 10-1): Adherence to 3GPP or other relevant specifications at algorithmic function level. Examples include fast Fourier transform, forward error correction encode/decode functions, etc. Integrated uplink (UL)/downlink (DL) chain tests that compare against 3GPP standards such as 38.211/38.212 (Physical Layer) or 38.321/38.322/38.323 [Medium Access Control (MAC)/Radio Link Control (RLC)/Packet Data Convergence Protocol (PDCP) Layers]. At this point, conformance matrices against 3GPP features can be built. Integration with a control plane interface that includes functionality such as defined in 38.213/38.214 (Physical Layer) or 38.331 [Radio Resource Control (RRC) Layer]. Chapter 10 Interoperability and test 331 system Integration - Example: L3/L2/L1 integrated DU subsystem Integration - Defined by systems architecture L2/L3 feature chain Integration - Functional validation against test equipment compliance - Example: DL/UL L1 chain - Defined by systems architecture API/FAPI kernel - Functional validation against reference chain compliance - Example: PDSCH chain - Defined by 3GPP or algorithm conformance - Functional validation against reference chain - Example: FFT - Defined by 3GPP or algorithm - Functional validation against test vector FIGURE 10-1 Various functional validation scopes. A well-defined set of functional tests includes negative testing which is defined as testing against known invalid inputs. Consider invalid packet header formats, invalid timing, or incorrectly sequenced control plane messages as well as malicious packets that are intended to cause undesirable system behavior including application crashes. Performance Retroactive software optimization is a painful and slow task. For this reason, we want to make performance benchmarking an up-front exercise-we elaborated on this topic in Chapter 9, Software Performance. At unit level, software components can be benchmarked for performance by the developer