A data processing system comprising: a host computer system supporting a software entity and a receive queue for the software entity; a network interface device having a controller unit configured to provide a data port (233, 234) for receiving data packets from a network and a data bus interface for connection to the host computer system, the network interface device being connected to the host computer system by means of the data bus interface; and characterised by: an accelerator module arranged between the controller unit and the network (206, 207) and having a first medium access controller for connection to the network and a second medium access controller coupled to the data port of the controller unit, the accelerator module being configured to: on behalf of the software entity, process incoming data packets received from the network in one or more streams associated with a first set of one or more network endpoints; encapsulate data resulting from said processing in network data packets directed to the software entity; and deliver the network data packets to the data port (233, 234) of the controller unit so as to cause the network data packets to be written to the receive queue of the software entity. a host computer system supporting a software entity and a receive queue for the software entity; a network interface device having a controller unit configured to provide a data port (233, 234) for receiving data packets from a network and a data bus interface for connection to the host computer system, the network interface device being connected to the host computer system by means of the data bus interface; and characterised by: an accelerator module arranged between the controller unit and the network (206, 207) and having a first medium access controller for connection to the network and a second medium access controller coupled to the data port of the controller unit, the accelerator module being configured to: on behalf of the software entity, process incoming data packets received from the network in one or more streams associated with a first set of one or more network endpoints; encapsulate data resulting from said processing in network data packets directed to the software entity; and deliver the network data packets to the data port (233, 234) of the controller unit so as to cause the network data packets to be written to the receive queue of the software entity. an accelerator module arranged between the controller unit and the network (206, 207) and having a first medium access controller for connection to the network and a second medium access controller coupled to the data port of the controller unit, the accelerator module being configured to: on behalf of the software entity, process incoming data packets received from the network in one or more streams associated with a first set of one or more network endpoints; encapsulate data resulting from said processing in network data packets directed to the software entity; and deliver the network data packets to the data port (233, 234) of the controller unit so as to cause the network data packets to be written to the receive queue of the software entity. on behalf of the software entity, process incoming data packets received from the network in one or more streams associated with a first set of one or more network endpoints; encapsulate data resulting from said processing in network data packets directed to the software entity; and deliver the network data packets to the data port (233, 234) of the controller unit so as to cause the network data packets to be written to the receive queue of the software entity.