摘要 |
<p>Compute-intensive packet processing (CIPP) in a computer system comprising a programmable computing platform is accelerated by using a packet 1/0 engine, implemented on the platform, to perform packet 1/0 functions, where the packet 1/0 engine is configured to achieve direct access to a network interface card (NIC) from a user application. For a Linux-based computer system, standard 1/0 mechanisms of Linux are bypassed and only the packet 1/0 engine is used in performing the 1/0 functions. Furthermore, the computer system is configured to: process a batch of packets, instead of packet by packet, in every function call; and when moving a packet between a buffer of an individual user application and a queue of the packet 1/0 engine, copy a packet descriptor of the packet instead the entire packet. In addition, workflows across different working threads are balanced and parallelism is exploited to fully utilize resources of the platform. Abstract figure: FIG. 14. Page 23 CD CD M 0 CDD -~ CD ~CD 0 -%- -,% 0CD CD E <CD ~CD _0 CO (0 ~ CD 77CD 7 0 _ ~CD CD = .0 C 0 ) 0 D CD cD 77 CD _00 CoCD 00 -D 0 c' <C CD ( 0 0 ,)- / CD _ ;-CD ~ CD (0 0 0~ CDD CD0 CD o CL,- 0 (nC 00 CD 0CD _D CD fl CD C) 0) 0~0 0 0 *: ~CD-0 0_C) / 0 ICD 0 CD _ - .in -0 CD_ -0 C 6;vwCD CD w M CD CD 0 -0 0 - ~CD0 CO _0 0D --%. CL) CD %-oC7 x CD o 0 0 0 0</p> |