Legal claims defining the scope of protection, as filed with the USPTO.
1. A network interface device for connection between a host data processing device supporting a consumer process and a network, the network interface device comprising: a data bus interface; a controller for supporting communication with a host data processing device over the data bus interface; and a packet capture unit located between the controller and the network and comprising: a packet inspector configured to parse incoming data packets so as to identify data packets belonging to a first data flow; a duplication engine configured to generate a duplicate data flow from the first data flow; and a packet capture engine configured to process said duplicate data flow into a packet capture data stream having a predefined format; wherein the network interface device is configured to cause: the first data flow to be made available to a consumer process of a host data processing device to which the network interface device is connected; and the processed packet capture data stream to be stored at a packet capture buffer.
2. The network interface device as claimed in claim 1 , wherein the packet capture buffer is supported at the network interface device.
3. The network interface device as claimed in claim 1 , wherein the controller is arranged to make available the first data flow to a consumer process by: identifying an endpoint representing a corresponding consumer process accessible over the data bus interface; and delivering over the data bus interface data of the first data flow addressed to said identified endpoint.
4. The network interface device as claimed in claim 1 , wherein the packet capture unit is arranged to make available the processed packet capture data to the controller for delivery to an endpoint accessible over the data bus interface.
5. The network interface device as claimed in claim 4 , wherein the processed packet capture data is assigned a lower priority than data of the first data flow and the controller is configured to enforce a quality of service protocol such that the processed packet capture data is delivered over the data bus interface between data of the first data flow.
6. The network interface device as claimed in claim 4 , wherein the controller is configured to deliver data of the first data flow over the data bus interface when the data bus interface is otherwise quiescent.
7. The network interface device as claimed in claim 1 , further comprising interconnect logic for connection to a storage subsystem, the packet capture unit being configured to deliver the processed packet capture data stream to the interconnect logic for storage at the storage subsystem, the data path between the packet capture unit and the interconnect logic not including the controller.
8. The network interface device as claimed in claim 1 , wherein the packet capture unit is arranged to deliver the processed packet capture data stream onto the network over a data path that does not include the controller.
9. The network interface device as claimed in claim 8 , wherein the processed packet capture data is assigned a lower priority than data of the first data flow and the packet capture unit is configured to enforce a quality of service protocol such that the processed packet capture data is delivered onto the network between data of any outgoing data flows.
10. The network interface device as claimed in claim 1 , wherein the packet capture unit further comprises a data store including one or more triggers, the packet inspector being configured to parse incoming data packets by matching said one or more triggers to each received data packet so as to identify data packets belonging to the first data flow.
11. The network interface device as claimed in claim 10 , wherein the one or more triggers include a regular expression over at least a portion of incoming data packets.
12. The network interface device as claimed in claim 1 , further comprising timestamping apparatus configured to, on each data packet of the first data flow being received at the network interface device, generate a timestamp, each such timestamp being included in the processed packet capture data stream by the packet capture engine.
13. The network interface device as claimed in claim 1 , wherein the processing of said duplicate data flow into a packet capture data stream by the packet capture engine includes performing data compression.
14. The network interface device as claimed in claim 1 , wherein the packet capture unit is a reconfigurable logic device such as an FPGA.
15. The network interface device as claimed in claim 14 , wherein the packet inspector, duplication engine and packet capture engine are defined by one or more firmware modules installed at the reconfigurable logic device.
16. A data processing system comprising: the network interface device as claimed in claim 1 ; and a host data processing device having a plurality of processing cores, a memory subsystem and being coupled to the network interface device by means of a data bus, the host data processing device supporting said consumer process and a packet capture process arranged to support a host packet capture buffer; wherein the consumer process and the packet capture process are supported at different processing cores of the host data processing device.
17. The data processing system as claimed in claim 16 , wherein the packet capture process is a user level process supporting the host packet capture buffer in its address space, the network interface device being arranged to deliver the processed packet capture data stream over the data bus by means of direct memory access.
18. The data processing system as claimed in claim 17 , further comprising a user level protocol processing engine, the packet capture unit being configured to pass the processed packet capture data stream to a controller of the network interface device as a series of data packets for delivery to an endpoint associated with the user level protocol processing engine.
19. The data processing system as claimed in claim 18 , wherein the packet capture process is arranged to, in a first mode, service one or more receive queues associated with said endpoint so as to read data of the processed packet capture data stream into the host packet capture buffer.
20. The data processing system as claimed in claim 19 , wherein the packet capture process is arranged to, in a second mode, read processed packet capture data including timestamp information from the host packet capture buffer and cause the packet capture unit to enter a replay mode in which it: receives the read processed packet capture data from the packet capture process; reforms the read processed packet capture data into a reformed sequence of data packets and associated timestamp information representative of a corresponding sequence of received data packets of the first data flow; and causes the reformed sequence of data packets to be delivered to the host by means of the controller according to a schedule commensurate with the relative receive time intervals indicated by the associated timestamp information.
21. The data processing system as claimed in claim 20 , wherein the packet capture unit further includes a replay unit configured to perform at least the reforming step of the replay mode.
22. The data processing system as claimed in claim 20 , wherein, if the read processed packet capture data at the packet capture buffer does not allow the payload data of the corresponding sequence of received data packets of the first data flow to be entirely reformed, the packet capture unit is configured to generate the reformed sequence of data packets using one or more predetermined test patterns in the place of any missing payload data.
23. The data processing system as claimed in claim 20 , wherein the packet capture process is arranged to cause at least some of the packet capture data to be delivered to a buffer of the network interface device prior to the packet capture unit being caused to enter its replay mode.
24. A network interface device for connection between a host data processing device and a network, the network interface device comprising: a data bus interface; a controller for supporting communication with a host data processing device over the data bus interface; and a packet capture unit located between the controller and the network and comprising: a packet inspector configured to parse outgoing data packets so as to identify data packets belonging to a first data flow; a duplication engine configured to generate a duplicate data flow from the first data flow; and a packet capture engine configured to process said duplicate data flow into a packet capture data stream having a predefined format; wherein the network interface device is configured to cause: the first data flow to be transmitted onto a network to which the network interface device is connected; and the processed packet capture data stream to be stored at a packet capture buffer.
25. The network interface device as claimed in claim 24 , wherein the packet capture unit is arranged to deliver the processed packet capture data stream onto the network over a data path that does not include the controller.
26. The network interface device as claimed in claim 25 , wherein the processed packet capture data is assigned a lower priority than data of the first data flow and the packet capture unit is configured to enforce a quality of service protocol such that the processed packet capture data is delivered onto the network between data of the first data flow.
27. A data processing system comprising: the network interface device as claimed in claim 24 ; and a host data processing device having a plurality of processing cores, a memory subsystem and being coupled to the network interface device by means of a data bus, the host data processing device supporting a source process from which data of the first data flow originates and a packet capture process arranged to support a host packet capture buffer; wherein the source process and the packet capture process are supported at different processing cores of the host data processing device.
28. The data processing system as claimed in claim 27 , wherein the packet capture process is a user level process supporting the host packet capture buffer in its address space, the network interface device being arranged to deliver the processed packet capture data stream over the data bus by means of direct memory access.
29. The data processing system as claimed in claim 28 , further comprising a user level protocol processing engine, the packet capture unit being configured to pass the processed packet capture data stream to a controller of the network interface device as a series of data packets for delivery to an endpoint associated with the user level protocol processing engine.
30. The data processing system as claimed in claim 29 , wherein the packet capture process is arranged to, in a first mode, service one or more receive queues associated with said endpoint so as to read data of the processed packet capture data stream into the host packet capture buffer.
31. The data processing system as claimed in claim 30 , wherein the packet capture process is arranged to, in a second mode, read processed packet capture data including timestamp information from the host packet capture buffer and cause the packet capture unit to enter a replay mode in which it: receives the read processed packet capture data from the packet capture process; reforms the read processed packet capture data into a reformed sequence of data packets and associated timestamp information representative of a corresponding sequence of received data packets of the first data flow; and transmits the reformed sequence of data packets onto the network at the relative time intervals indicated by the associated timestamp information.
32. The data processing system as claimed in claim 31 , wherein the packet capture unit further includes a replay unit configured to perform at least the reforming step of the replay mode.
33. The network interface device as claimed in claim 1 , wherein the packet capture unit is arranged to deliver the processed packet capture data stream onto the network over a data path that does not include the controller.
Unknown
March 29, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.