Patent attributes
Apparatus and a corresponding method for processing received datagram fragments are provided. Fragments are considered in fragments lists, which comprise a linked list of fragments. The fragments lists are referenced by corresponding entries stored in fragment list storage, where all received fragments from a given datagram will form part of the same fragment list, but a given fragment list can comprise fragments from multiple datagrams. An accumulated size of the payloads for a linked list of fragments is maintained and allows a determination to be made of whether it appears that sufficient fragments have been received that reassembly of a datagram may be possible. Access to a selected fragment list entry is made atomically, wherein the existing entry is first read and then if a datagram reassembly is to be attempted a write access sets the selected fragment list entry to a null entry before that datagram reassembly is attempted. If no reassembly is to be attempted the write access comprises updating the selected fragment list entry to include the received fragment in the linked list of fragments. A lock-free mechanism for access to the fragment list storage is thus provided and contention between parallel accesses is nonetheless limited, promoting the scaling of fragment reception processing to multiple parallel processes.