Solar Capture User Guide (2014) SF 111817 DH 9 (SF 108469 CD 9) Issue
User Manual: Pdf
Open the PDF directly: View PDF
.
Page Count: 118
SolarCapture
User Guide
SolarCapture™ User Guide
Copyright © 2014 SOLARFLARE® Communications, Inc. All rights reserved.
The software and hardware as applicable (the "Product") described in this document, and this document, are protected
by copyright laws, patents and other intellectual property laws and international treaties. The Product described in this
document is provided pursuant to a license agreement, evaluation agreement and/or non-disclosure agreement. The
Product may be used only in accordance with the terms of such agreement. The software as applicable may be copied only
in accordance with the terms of such agreement.
The furnishing of this document to you does not give you any rights or licenses, express or implied, by estoppel or
otherwise, with respect to any such Product, or any copyrights, patents or other intellectual property rights covering such
Product, and this document does not contain or represent any commitment of any kind on the part of SOLARFLARE
Communications, Inc. or its affiliates.
The only warranties granted by SOLARFLARE Communications, Inc. or its affiliates in connection with the Product described
in this document are those expressly set forth in the license agreement, evaluation agreement and/or non-disclosure
agreement pursuant to which the Product is provided. EXCEPT AS EXPRESSLY SET FORTH IN SUCH AGREEMENT, NEITHER
SOLARFLARE COMMUNICATIONS, INC. NOR ITS AFFILIATES MAKE ANY REPRESENTATIONS OR WARRANTIES OF ANY KIND
(EXPRESS OR IMPLIED) REGARDING THE PRODUCT OR THIS DOCUMENTATION AND HEREBY DISCLAIM ALL IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT, AND ANY
WARRANTIES THAT MAY ARISE FROM COURSE OF DEALING, COURSE OF PERFORMANCE OR USAGE OF TRADE.
Unless otherwise expressly set forth in such agreement, to the extent allowed by applicable law (a) in no event shall
SOLARFLARE Communications, Inc. or its affiliates have any liability under any legal theory for any loss of revenues or
profits, loss of use or data, or business interruptions, or for any indirect, special, incidental or consequential damages, even
if advised of the possibility of such damages; and (b) the total liability of SOLARFLARE Communications, Inc. or its affiliates
arising from or relating to such agreement or the use of this document shall not exceed the amount received by
SOLARFLARE Communications, Inc. or its affiliates for that copy of the Product or this document which is the subject of
such liability.
The Product is not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear
facility applications.
SF-108469-CD
Issue 9
Issue 9
© Solarflare Communications 2014
i
SolarCapture
User Guide
Table of Contents
Chapter 1: What’s New . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 SolarCapture SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 SolarCapture Live. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 SolarCapture Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 SolarCapture AOE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 New Features in SolarCapture v1.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Chapter 2: Feature Availability Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 SolarCapture Features by Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 SolarCapture Features by Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Chapter 3: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Definitions, Acronyms and Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Software Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 Firmware Variants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5 Hardware Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.6 AppFlex™ Technology Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Chapter 4: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1 How it Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Threading Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 SolarCapture Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4 Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Chapter 5: Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1 Download Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2 Install Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.3 Remove Existing SolarCapture Installs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.4 The SolarCapture v1.3 Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.5 Install Onload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.6 SolarCapture - What to Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.7 Install SolarCapture AOE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.8 Install PTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Chapter 6: SolarCapture Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.1 Line Rate Packet Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2 Operating Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.3 Capture Frame Check Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.4 Capture file timestamp format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.5 Hardware Timestamps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.6 Ingress Packet Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Issue 9
© Solarflare Communications 2014
ii
SolarCapture
User Guide
6.7 Egress Packet Capture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Chapter 7: Command Line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.2 Run Command Line Interface and Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.3 Capturing packets with solar_capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.4 Command line options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7.5 Selecting Streams to Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.6 Join Multicast Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.7 Setting thread affinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.8 Command Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.9 Port Aggregation/Merging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.10 Multiple Ports/Multiple Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.11 Software Based Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.12 Capture using VLAN Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.13 Command Line Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.14 User Privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Chapter 8: Application Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.1 Application Clusters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.2 Configuration Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8.3 Snort Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.4 Configuration Sequence - Snort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.5 solar_clusterd Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.6 Running solar_clusterd as a Linux service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Chapter 9: Libpcap Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.2 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Chapter 10: Data Acquisition Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10.2 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10.3 Read File Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
10.4 Passive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.5 Inline Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10.6 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Chapter 11: AOE SolarCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
11.2 Running AOE SolarCapture daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
11.3 Running AOE SolarCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
11.4 Configuration Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Issue 9
© Solarflare Communications 2014
iii
SolarCapture
User Guide
11.5
11.6
11.7
11.8
Command Line Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Configuration Files Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Changing Default Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
AOE SolarCapture Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Chapter 12: SolarReplay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
12.2 How it Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
12.3 Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
12.4 Replay Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
12.5 Replay Script File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Chapter 13: SolarCapture Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
13.2 Getting Help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
13.3 Using solar_capture_monitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
13.4 Debug Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
13.5 Notes On Monitor Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Chapter 14: Additional Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
14.1 SolarCapture - Arista Timestamps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Chapter 15: Embedding SolarCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
15.1 Sessions — struct sc_session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
15.2 Attributes — struct sc_attr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
15.3 Threads — struct sc_thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
15.4 Virtual Interfaces — struct sc_vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
15.5 Nodes — struct sc_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
15.6 Mailboxes — struct sc_mailbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
15.7 BuiltIn Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
15.8 Additional Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Chapter 16: Extending SolarCapture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
16.1 Node factories — struct sc_node_factory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
16.2 Node types — struct sc_node_type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
16.3 Node libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
16.4 Insert a user-defined node between capture and sc_writer . . . . . . . . . . . . . . . . . 96
Chapter 17: Known Issues and Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
17.1 Captured packets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
17.2 Software Timestamp accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
17.3 Capture performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
17.4 Stopping SolarCapture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
17.5 Allocation of Packet Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Issue 9
© Solarflare Communications 2014
iv
SolarCapture
User Guide
17.6 Solarflare DAQ for Snort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
17.7 Filtering on VLAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
17.8 PTP - Hybrid Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
17.9 Onload and Line Rate Packet Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
17.10 Sniff Mode in Packed Stream Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Chapter 18: Tuning Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
18.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
18.2 File System Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
18.3 RAID Controller Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
18.4 Virtual Memory Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
18.5 Capture Thread Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
18.6 Allocating Huge Pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
18.7 NUMA Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
18.8 C-States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
18.9 Isolate CPU Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
18.10 Memory Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
18.11 Packet Pool Limitations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
18.12 RXQ size on Packed Stream Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
18.13 Kernel Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
18.14 Interrupt Moderation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
18.15 SolarCapture Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
18.16 RSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Appendix A: Configuration File Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Appendix B: SolarCapture Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Issue 9
© Solarflare Communications 2014
v
SolarCapture
User Guide
Chapter 1: What’s New
This document is the user guide for the SolarCapture™ family of Linux based network packet capture
applications.
SolarCapture is supported on Solarflare (Onload) SFN5000, SFN6000 and SFN7000 series adapters
and the Solarflare ApplicationOnload™ Engine (AOE).
Starting from distribution version 1.3, SolarCapture development follows a multi-tier license and
distribution model outlined below. The features available depend on the SolarCapture license
installed and the adapter on which SolarCapture is to run.
Figure 1: SolarCapture License Model
To identify feature availability, refer to SolarCapture Features by Distribution on page 6.
To identify features supported per Solarflare adapter, refer to SolarCapture Features by Adapter on
page 7.
For details of AppFlex™ Technology licensing requirements, refer to AppFlex™ Technology Licensing
on page 11.
1.1 SolarCapture SDK
Description
The SolarCapture Software Development Kit is a free library for developers who want to implement
efficient fast packet processing of network traffic, at high packet rates, in a Linux user mode
application. SolarCapture SDK can be used to receive and send packets with the minimum number
of CPU cycles for packet capture, network security, NFV or other packet processing (C, C++, python)
applications.
The SDK can be used on any of the supported adapters without a license.
Issue 9
© Solarflare Communications 2014
1
SolarCapture
User Guide
Version 1.3 Features and Changes
SolarCapture v1.3 includes the initial release of the SolarCapture SDK.
• C and python bindings, examples and documentation
• Ability to receive and transmit network packets direct from user-mode
• Software timestamps
• Polled and interrupt modes
• Line-rate packet capture (AOE/SFN7000 series adapters)
• Capture packets with intact FCS
• solar_capture_monitor
• solar_capture_doc
• solar_debug
1.2 SolarCapture Live
Description
In addition to the features from the SDK, SolarCapture Live provides libpcap support, providing
access to the SolarCapture feature set and SolarCapture performance for applications coded to the
standard libpcap API.
User applications or third party applications, for example the Snort network intrusion detection and
prevention system, can be dynamically linked to the alternative solar_libpcap library to take
advantage of SolarCapture performance and scalability features. Recompilation is not required.
SolarCapture Live can be run on all Solarflare Onload adapters and requires a SolarCapture Live
license or SolarCapture Pro license.
Version 1.3 Features and Changes
• SolarCapture Live includes all features from the SDK
• libpcap bindings (solar_libpcap)
• sniff mode (AOE/SFN7000 series adapters)
• Line-rate packet capture (AOE/SFN7000 series adapters)
• Capture packets with intact FCS
• Software filtering (BPF)
• Application Clustering - applications can scale over multiple cores and process significantly
higher aggregate packet rates
• Data Acquisition Module
Issue 9
© Solarflare Communications 2014
2
SolarCapture
User Guide
1.3 SolarCapture Pro
Description
SolarCapture Pro provides line-rate high performance packet capture on Solarflare SFN7000 series
adapters and includes all SolarCapture features including hardware timestamping of packets.
SolarCapture Pro also provides the solar_capture command line interface and solar_replay
interface.
SolarCapture Pro can be run on Solarflare Flareon™ SFN7000 series adapters and requires a
SolarCapture Pro license.
Version 1.3 Features and Changes
• SolarCapture Pro includes all features from the SDK and Live
• Command line interface (solar_capture)
• Packet replay interface (solar_replay)
• Hardware timestamps (AOE/SFN7000 series adapters)
• Capture packets with intact FCS
• Line-rate packet capture (AOE/SFN7000 series adapters)
• Third party timestamps (Arista)
• Data Acquisition Module
1.4 SolarCapture AOE
Description
The AOE combines a low latency server adapter with a powerful FPGA acceleration engine delivering
“on-the-fly” processing of network data. By processing data in hardware, before it is presented to
the server CPU, the AOE reduces application processing times and server CPU workloads.
Solarflare’s AOE SolarCapture is a network packet capture application that runs directly on the AOE
adapter, with the SolarCapture AOE license, allowing the SolarCapture Pro feature set to take
advantage of the AOE platform.
Version 1.3 Features and Changes
• SolarCapture AOE includes all features from SolarCapture Pro
• Guaranteed lossless packet capture at 10Gbps line rate
• On board DDR3 memory buffers - no packet drops ever
• Reduced CPU utilization and reduced I/O transaction rate
Issue 9
© Solarflare Communications 2014
3
SolarCapture
User Guide
1.5 New Features in SolarCapture v1.3
For feature availability, refer to SolarCapture Features by Distribution on page 6.
Line Rate Packet Capture
SolarCapture delivers 10Gbps line-rate packet capture on Solarflare Flareon™ SFN7000 series
adapters using the new capture-packed-stream firmware variant. For further details and
configuration requirements, refer to Line Rate Packet Capture on page 23.
SolarReplay
The SolarReplay feature provides a packet replay facility allowing packets captured in libpcap format
to be transmitted through a Solarflare adapter interface.
Command line options provide flexible control over replay speed and bandwidth whilst preserving
inter-packet pacing. For more details refer to SolarReplay on page 77.
Command Configuration File
The command configuration file is an alternative mechanism to configure SolarCapture. Instead of
specifying capture instances and options directly on the command line, these can be placed in one
or more command configuration files.
For further information and examples see Command Configuration File on page 34.
Operation Modes
New command line options, capture_busy_wait and writeout_busy_wait allow
SolarCapture to be run in a polling mode or in interrupt driven mode.
In polling mode SolarCapture will busy-wait on capture threads and writeout threads. In interrupt
mode a capture thread or writeout thread will block when there are no more packets to capture/
process.
Polling mode is recommended for applications receiving packets at high traffic rates, applications
that may be subject to sustained bursts of traffic and latency sensitive applications.
Interrupt driven mode, is ideal for applications receiving lower traffic rates and those that are not
subjected to bursts of traffic.
For further information see Operating Modes on page 24 for details.
Egress packet Capture
SolarCapture can now capture incoming and outgoing packets on Solarflare SFN7000 series adapters
- a feature previously available only on the AOE adapter. For each capture instance, the user can
elect to capture from the ingress capture point or egress capture point.
Refer to Ingress Packet Capture on page 26 and Egress Packet Capture on page 26 for details.
Issue 9
© Solarflare Communications 2014
4
SolarCapture
User Guide
Packet FCS
Running on the Solarflare SFN7000 series adapter, SolarCapture can be configured to capture
packets with the Frame Check Sequence (FCS) intact. See Capture Frame Check Sequence on
page 24 for configuration details.
Libpcap bindings - Nanosecond Timestamps
For applications linking to the Solarflare enhanced libpcap library, a new environment variable,
SC_PCAP_NANOSEC will deliver nanosecond timestamps. When set to 0 (default) timestamp
resolution is in microseconds.
Refer Libpcap Support on page 46 to for further information.
Snort Data Acquisition Module (DAQ)
The Solarflare DAQ is a library module developed to work with the Snort Data Acquisition Module
framework.
Supported features and configuration options are detailed in Data Acquisition Module on page 49.
Arista Timestamps - Replace-FCS
In SolarCapture Pro v1.3 the sc_arista_ts builtin node has been enhanced to support all modes of
the Arista 7150 ’FCS-type’ parameter so now includes the replace-fcs mode.
For further details refer to SolarCapture - Arista Timestamps on page 86.
Improved Documentation
SolarCapture includes the solar_capture_doc command to list all attributes which can be set in
the SolarCapture environment using the SC_ATTR environment variable.
For more information about the solar_capture_doc command refer to Appendix B: SolarCapture
Attributes on page 113.
Performance Tuning Guide
For performance tuning guidelines and procedures, refer to Tuning Guide on page 100.
Issue 9
© Solarflare Communications 2014
5
SolarCapture
User Guide
Chapter 2: Feature Availability Matrix
2.1 SolarCapture Features by Distribution
The following table identifies the SolarCapture features available in the SolarCapture distribution
packages.
Feature
SDK
Live
Pro
AOE
C and python bindings
example applications
solar_capture_monitor
solar_capture_doc
solar_debug
solar_replay
solar_capture (cmd line)
libpcap support
DAQ
Mode: steal
Mode: sniff
polling mode
interrupt mode
HW timestamp RX
HW timestamp TX
Line rate packet capture
SW timestamp RX
Issue 9
Software Filters (BPF)
Application Clustering
© Solarflare Communications 2014
6
SolarCapture
User Guide
2.2 SolarCapture Features by Adapter
The following table identifies the SolarCapture features supported per Solarflare adapter series.
Feature
SFN5000
SFN6000
SFN7000
AOE
C and python bindings
example applications
solar_capture_monitor
solar_capture_doc
solar_debug
solar_replay
solar_capture (cmd line)
libpcap support
DAQ
Mode: steal
Mode: sniff
Line rate packet capture
HW timestamp RX
HW timestamp TX
SW timestamp RX
Software Filters (BPF)
Application Clustering
All SolarCapture Live features are supported when Live is run on SFN7000 series adapters or the AOE
adapter. When run on other adapters certain features e.g. Line-rate packet capture, sniff mode are
not supported as identified from the table above.
Issue 9
© Solarflare Communications 2014
7
SolarCapture
User Guide
Chapter 3: Introduction
3.1 Purpose
This document describes the SolarCapture family of packet capture applications for Solarflare
network adapters. SolarCapture captures received packets from the wire, and either writes these to
a capture file, or forwards the packets to user-supplied logic for processing. SolarCapture assigns
accurate timestamps to received packets, and is able to capture at line rate.
SolarCapture can be run as a command line tool which captures packets received from network
interfaces and writes them to a file. A monitoring tool is included that provides visibility of
configuration and statistical data.
SolarCapture includes a library with C and Python bindings which can be embedded in the user’s
own applications. Users can also extend SolarCapture by providing processing nodes which can be
integrated into SolarCapture’s packet processing pipeline.
Alternatively, the libpcap bindings can be used to interface with any existing application that is
written to the pcap API.
3.2 Definitions, Acronyms and Abbreviations
Issue 9
AOE
Solarflare’s ApplicationOnload™ Engine SFA6902F adapter.
Data striping
A technique used in RAID systems where logically sequential data is
segmented such that consecutive segments are stored on different
physical storage devices. By spreading segments across multiple
devices which can be accessed concurrently, total data throughput is
increased. Data striping is also a useful method for balancing I/O load
across an array of disks.
Deadline
Deadline scheduler. An I/O scheduler which guarantees a service start
time for a request.
DMA
Direct Memory Access. Allows the adapter to write data directly to a
portion of the system memory without having to use the system CPU.
ext3
Third extended file system. A type of journaling file system commonly
used by the linux kernel.
ext4
Fourth extended file system. A type of journaling file system commonly
used by the linux kernel which extends the capabilities of ext3.
Journaling file
system
A file system which keeps track of changes which have been made in a
journal. A journal could, for example, be a circular log.
© Solarflare Communications 2014
8
SolarCapture
User Guide
Issue 9
NUMA
Non-Uniform Memory Access. A computer memory design found in
recent server designs. Memory access time is dependent on where, in
relation to the processor, the memory is located on the server (some
memory is “local” to a processor, some is “remote”).
Onload
Solarflare open source OpenOnload and EnterpriseOnload accelerated
network middleware.
PCAP
The file format for storing captured packets.
PTP
IEEE 1588-2008 Precision Time Protocol.
RAID
Redundant Array of Independent Disks. A storage technology allowing
multiple physical disks to be presented to the system as a single logical
unit.
read_expire
One of the tuning options available for the deadline scheduler. When a
read request first enters the I/O scheduler, it is assigned a deadline
that is the current time + the read_expire value (in units of
milliseconds).
RHD
Reliable Host Delivery. A mechanism on an AOE NIC which guarantees
that any network packet which arrives at the interface will be delivered
to the host system (i.e. lossless delivery of captured traffic).
RSS
Receive Side Scaling distributes data processing across the available
CPU cores.
SSD
Solid state drive or solid state disk.
Strip or stripe
The unit into which data is segmented in data striping.
Stripe size
This is the amount of data a segment used in data striping can store.
VI
The virtual interface is a receive channel between the adapter and the
software application to provide the receive queue and event queue
from which captured packets are delivered to a consumer application.
VM
Virtual Memory. A memory management technique that is
implemented using both hardware and software.
write_expire
One of the tuning options available for the deadline scheduler. When a
write request first enters the I/O scheduler, it is assigned a deadline
that is the current time + the write_expire value (in units of
milliseconds).
xfs
A type of journaling file system optimised for parallel I/O.
© Solarflare Communications 2014
9
SolarCapture
User Guide
3.3 Software Support
• SolarCapture has been developed and verified on the following OS distributions - other OS
distributions may also work:
- RHEL 5, RHEL 6, RHEL 7, SLES 10, SLES 11
• To run SolarCapture (earlier than v1.3) the following Onload package must be installed:
- OpenOnload 201310-u1 (or later release). EnterpriseOnload from version 3.0.
• To run SolarCapture v1.3 the following Onload package must be installed:
- OpenOnload 201405-u1 (or later release). Not currently supported by EnterpriseOnload.
• SolarCapture capture files conform to libpcap 1.3.0 format. Refer to http://www.tcpdump.org/
for details.
NOTE: Onload must be installed to use SolarCapture. Refer to the Onload User Guide
(SF-104474-CD) download from https://support.solarflare.com/ for installation instructions.
3.4 Firmware Variants
The Solarflare SFN7000 series adapter supports three firmware variants:
• full-featured - recommended when capturing a subset of traffic, but also using Onload features
• ultra-low-latency - low latency throughput without support for hardware-multicast-loopback,
sniffing of transmit traffic and filtering on VLAN-Id.
• capture-packed-stream - delivers line-rate packet capture on the SFN7000 series adapters.
NOTE: SolarCapture v1.3 requires firmware version 4.1.1.1023 on SFN7000 series adapters or
3.3.0.6298 on earlier Solarflare adapters. These firmware versions are available from the Solarflare
Linux Utilities package (SF-107601-LS) issue 24.
3.5 Hardware Support
• SolarCapture is supported on the following Onload enabled Solarflare adapters.
SFN5000
SFN6000
SFN7000
AOE
SDK
Live
Pro
AOE
Issue 9
© Solarflare Communications 2014
10
SolarCapture
User Guide
• SolarCapture is supported on all Intel x86 and AMD 64bit processors.
3.6 AppFlex™ Technology Licensing
The following table identifies SolarCapture license requirements.
Table 1: License Requirements
Product
License Requirement
SDK
No license required.
Live
SolarCapture Live or SolarCapture Pro license.
Pro
SolarCapture Pro license.
AOE
SolarCapture AOE license. The license enables SDK, Live
and Pro features on the AOE.
SolarCapture Pro, SolarCapture Live and AOE SolarCapture are subject to a license that must be
installed on the adapter to enable advanced features.
Live, Pro and AOE customers should contact their Solarflare sales channel for SolarCapture
download site access and to obtain the appropriate AppFlex license.
SolarCapture Pro licenses purchased for v1.2 will continue to grant access to SolarCapture Pro
features in v1.3.
The license will be installed on the adapter using the sfkey utility from the Solarflare Linux Utilities
package (SF-107601-LS) issue 24 or later.
For detailed instructions for installing the license, refer to the Solarflare Sever Adapter User Guide
(SF-103837-LS).
Issue 9
© Solarflare Communications 2014
11
SolarCapture
User Guide
Chapter 4: Overview
This section describes the SolarCapture operation, identifies the various constituent parts of the
SolarCapture product and presents a number of use-cases.
4.1 How it Works
SolarCapture performs a similar task to the tcpdump utility, but achieves a much higher level of
performance by employing the kernel-bypass features on Solarflare adapters.
Whereas packets captured by tcpdump are processed by the network stack in the OS kernel,
SolarCapture receives packets directly from the network adapter via a dedicated channel. Packets
are delivered directly into the address space of the user-level application, bypassing the network
stack.
The advantage of this architecture is that SolarCapture is able to capture packets at much higher
rates, and can assign very accurate timestamps. Hardware timestamps are used on AOE adapters
and SFN7000 series adapters with a PTP/hardware timestamping license.
SolarCapture’s default capture mode is ’steal’. In this mode, packets are consumed by the capture
process and are no longer delivered to host applications. It is common to use SolarCapture in
conjunction with a mirror port or span port on a switch in order to capture unicast traffic flowing
between other hosts in the network. SolarCapture can also capture multicast traffic.
SolarCapture Live and Pro also supports a ’sniff’ capture mode. In this mode, packets continue to be
delivered to host applications. The adapter delivers each packet a second time directly to the
SolarCapture Pro application.
On a fast server, SolarCapture can process millions of packets per second on just two CPU cores, and
can also be configured to spread the load over a larger number of cores using receive-side scaling
(RSS).
4.2 Threading Model
SolarCapture applications usually include at least two threads:
• One or more capture threads, which manage the network interface and assign accurate
timestamps.
• One or more write-out threads, which write captured packets to disk or perform application
processing.
In custom configurations there can also be other threads as needed to provide processing functions.
Although it is possible to perform capture and write-out in the same thread, this is not
recommended as delays in write-out can cause packet loss and inaccuracy in software timestamps.
Issue 9
© Solarflare Communications 2014
12
SolarCapture
User Guide
4.3 SolarCapture Components
• Command Line Interface
The command line interface is a complete application for capturing received packets and
writing these to files. The command line interface includes options for installing filters to
select packets, joining multicast groups and managing buffering etc. Refer to Command Line
Interface on page 27 for details.
• SolarReplay
The SolarReplay feature provides a playback facility allowing packets captured in libpcap
format to be transmitted through a Solarflare adapter interface.
Command line options provide flexible control over replay speed and bandwidth whilst
preserving inter-packet pacing. For more details refer to SolarReplay on page 77.
• SolarCapture Monitor
The solar_capture_monitor utility provides visibility of configuration and runtime state. Refer
to SolarCapture Monitor on page 82 for details.
• SolarCapture Extensions Interface
SolarCapture includes a plug-in interface that allows developers to define custom processing
for packets handled by SolarCapture. Custom processors are known as nodes. Refer to
Extending SolarCapture on page 95 for details.
• SolarCapture C Library
SolarCapture can be embedded in applications by linking to the SolarCapture C library. Refer to
Embedding SolarCapture on page 90 for details.
• SolarCapture Python Module
SolarCapture includes Python bindings for the C library. This provides a convenient interface
for constructing custom configurations of SolarCapture and to make use of features not
available via the command line interface.
• libpcap Library
A SolarCapture enabled libpcap library (binary) allowing existing applications, written to the
pcap API, to access SolarCapture functionality. Refer Libpcap Support on page 46 to for further
information.
• Snort Data Acquisition Module
The Solarflare DAQ is a library module developed to work with the Snort Data Acquisition
Module framework. Supported features and configuration options are detailed in Data
Acquisition Module on page 49.
Issue 9
© Solarflare Communications 2014
13
SolarCapture
User Guide
4.4 Use Cases
SolarCapture can be used in a number of different ways:
• Command Line Interface
The command line interface is sufficient for most packet capture needs. Received packets are
captured, timestamped and written to file. The command line interface is written in Python,
and so interacts with SolarCapture via the Python module.
Figure 2: Python Command Line application
• Embedding SolarCapture
SolarCapture can be embedded in user applications via the C bindings:
Figure 3: SolarCapture embedded in a C application
...or the Python bindings:
Figure 4: SolarCapture embedded in a Python application
Issue 9
© Solarflare Communications 2014
14
SolarCapture
User Guide
• Extending SolarCapture
SolarCapture can be extended by providing a shared library which conforms to the
SolarCapture node interface. Nodes can be inserted into the packet processing pipeline via the
C or Python bindings.
Figure 5: Extending SolarCapture
• libpcap Library
The SolarCapture enabled libpcap library exposes pcap API function calls and allows existing
applications written to the pcap API to use SolarCapture functionality. See Libpcap Support on
page 46 for the methods of using the libpcap library.
Figure 6: Using the Modified libpcap library
• Application Clustering
Application clustering allows the captured traffic load, from one or more physical interfaces to
be spread among multiple receiving applications.
For more details including configuration procedures refer to Application Clusters on page 39.
Issue 9
© Solarflare Communications 2014
15
SolarCapture
User Guide
Chapter 5: Installation
5.1 Download Access
Solarflare drivers, utilities packages, application software packages and user documentation can be
downloaded from: https://support.solarflare.com.
Onload distributions can be downloaded from: http://www.openonload.org/.
SolarCapture Live, Pro and AOE customers should contact their Solarflare sales channel to obtain
download site access and the required AppFlex license.
5.2 Install Dependencies
The install process will build and install Onload, the Solarflare adapter net driver and SolarCapture
software on the host. Firmware on an AOE adapter will also be updated during the install process.
Before software and firmware can be built and installed the host server:
• Must support a general build environment i.e. has gcc, make, libc and libc-devel, python-devel.
• Must be capable of compiling kernel modules i.e. have the correct kernel-devel package for the
installed kernel version.
• libpcap and libpcap-devel must be installed.
• libaio must be installed.
5.3 Remove Existing SolarCapture Installs
It is important that any previous SolarCapture versions are un-installed before installing
SolarCapture v1.3.
1
To identify a previous installation e.g.
# rpm -qa | grep solar_capture
solar_capture-core-1.2.0-0.x86_64
solar_capture-1.2.0-0.x86_64
# rpm -qa | grep solar_clusterd
solar_clusterd-oo_40041-0.x86_64
2
Remove installed packages (Note the order of removal):
# rpm -e solar_clusterd-oo_40041-0.x86_64
# rpm -e solar_capture-1.2.0-0.x86_64
# rpm -e solar_capture-core-1.2.0-0.x86_64
Issue 9
© Solarflare Communications 2014
16
SolarCapture
User Guide
5.4 The SolarCapture v1.3 Distributions
Table 2: SolarCapture Packages
SF-112972-LS
SolarCapture SDK
SF-112974-LS
SolarCapture Live and Pro
SF-110991-LS
SolarCapture AOE
SF-107601-LS
Linux utilities - including (firmware) sfupdate
sfkey and sfboot
Table 3: SolarCapture Installation RPMs
solar_capture-core-.x86_64.rpm
C library and core functionality
solar_capture-live-.x86_64.rpm
SolarCapture Live
solar_capture-pro-.x86_64.rpm
SolarCapture Pro
solar_capture-python-.src.rpm
python bindings and utilities
Table 4: SolarCapture AOE Installation RPMs
aoe_solarcapture-.x86_64.rpm
AOE SolarCapture RPMs
aoe_utils-.x86_64.rpm
AOE utilities RPMs
5.5 Install Onload
Onload should be installed before installing SolarCapture. Refer to the Onload User Guide (SF104474-CD) for install instructions. OpenOnload will be installed by the INSTALL.sh script when
installing AOE SolarCapture.
5.6 SolarCapture - What to Install
Copy the appropriate distribution zipfiles to the target server, unzip to reveal the RPMs, license file
and release notes.
• SolarCapture Live: install packages SDK and Live.
• SolarCapture Pro: install packages, SDK and Live and Pro.
• SolarCapture AOE: install packages SDK and Live and Pro and AOE.
Issue 9
© Solarflare Communications 2014
17
SolarCapture
User Guide
Install AOE
To install SolarCapture AOE - follow Install SolarCapture AOE on page 19.
Install SDK
1
Unzip package SF-112972-LS.zip
# unzip SF-112972-LS.zip
Archive: SF-112972-LS.zip
inflating: solar_capture--ChangeLog.txt
inflating: solar_capture--LICENSE.txt
inflating: solar_capture--README.txt
inflating: solar_capture--ReleaseNotes.txt
inflating: solar_capture-core-.x86_64.rpm
inflating: solar_capture-python-.src.rpm
2
Follow install Binary and Source RPM procedures below.
Install Live or Pro
1
Unzip package SF-112974-LS.zip
# unzip SF-112974-LS.zip
Archive: SF-112974-LS.zip
inflating: solar_capture-live-.x86_64.rpm
inflating: solar_capture-pro-.x86_64.rpm
2
Follow install Binary RPM procedures below.
Install a binary RPM:
1
Install a binary RPM (example).
# rpm -ivh solar_capture-core-.x86_64.rpm
2
#
To view all installed components and files:
rpm -qlp solar_capture-core-.x86_64.rpm
Build and install a source RPM:
1
Build a binary from the source RPM (example).
# rpmbuild --rebuild solar_capture-python-.src.rpm
This will produce some output including a "Wrote......" line.
2
Install the binary file:
# rpm -ivh .rpm
Issue 9
© Solarflare Communications 2014
18
SolarCapture
User Guide
5.7 Install SolarCapture AOE
1
•
•
•
•
•
2
Copy ALL of the following packages to the same directory on the AOE server.
SF-109585-LS
SF-107601-LS
SF-112972-LS
SF-112974-LS
SF-110991-LS
OpenOnload Release Package
Solarflare Linux Utilities
Solarcapture SDK
Solarcapture Live and SolarCapture Pro
AOE Solarcapture RPMs
Unzip all packages
# unzip ‘*.zip’
3
Run the INSTALL.sh script:
# ./INSTALL.sh
INSTALL.sh should be run in a directory writable by the root user. Running INSTALL.sh as above will
install AOE SolarCapture software components and FPGA image files on all adapters in the server. To
install only software components, use the no-update option:
# ./INSTALL.sh --no-update
The sfaoeupdate utility can be used independently to install the image files (listed in Table 5) on
selected adapters. For details of sfaoeupdate refer to Install FPGA Image files on page 21.
The INSTALL.sh has the following options:
--dry-run
--no-install
--no-update
--uninstall
Just print the install actions
Skip the install step, just build the sources
Just install, don't update firmware on the AOE card
Uninstall AOE-SolarCapture RPMs
• The complete installation can take upwards of 5 minutes - depending on the server.
Issue 9
© Solarflare Communications 2014
19
SolarCapture
User Guide
NOTE: If the AOE SolarCapture Pro license is NOT already installed on the AOE adapter, the
installation will succeed, but will not start the solar_aoed service and will report a FAILED
status e.g.
# service solar_aoed start
Starting solar_aoed: Registered AOE at interface eth3
Internal error: Failed to initialise capture blocks for capture point 0:
Capture component(s) not found or not licensed
Failed to initialise capture point 0: Invalid component type passed.
Hardware initialisation failed
2015-01-20 14:14:35.293784.Abnormal exit - not resetting hardware
[FAILED]
Install the AOE SolarCapture Pro license using the sfkey utility, then the solar_aoed service can be
started manually:
# service solar_aoed start
4
Check for successful installation:
Confirm that the solar_aoed service has been installed.
# service solar_aoed status
AOE SolarCapture files
Following installation the following files will be present on the host system:
Table 5: Image Files
Issue 9
File
Description
/usr/share/aoe/solarcapture/aoesolarcapture-.dat
An FPGA image file.
/usr/share/aoe/solarcapture/cpld.dat
Complex Programmable Logic Device
image file.
/usr/share/aoe/solarcapture/fcfw.dat
FPGA controller firmware image file.
/usr/share/aoe/solarcapture/mcfw.dat
MAC controller firmware image file.
/etc/aoe/solarcapture.lst
Used by the sfaoeupdate utility to write
all above listed firmware image files to
the AOE adapter.
/etc/aoe/solar_aoed.conf
Example configuration file used by the
solar_aoed daemon service.
/usr/bin/solar_aoed
The AOE SolarCapture process.
© Solarflare Communications 2014
20
SolarCapture
User Guide
Table 5: Image Files
File
Description
/etc/rc.d/init.d/solar_aoed
The AOE SolarCapture service.
Install FPGA Image files
All FPGA image files listed in Table 5 above are installed during the full installation process described
in Install SolarCapture AOE on page 19 unless the INSTALL.sh script is run with the --no-update
option.
The sfaoeupdate utility can be used to independently write FPGA images to the AOE adapter. The
sfaoeupdate utility is part of the aoe_utils package installed during Install SolarCapture AOE on
page 19.
To write FPGA images to all AOE adapters in the server use the following command:
# sfaoeupdate -w /etc/aoe/solarcapture.lst
Image files can be installed on selected adapters using the --adapter option. For a full list of
sfaoeupdate options use the following command:
# sfaoeupdate --help
Un-install AOE SolarCapture
To un-install the AOE Solarcapture components, ensure all solar_aoed processes are terminated
and then run the INSTALL script with the --uninstall option as demonstrated in the following
example:
# ./INSTALL.sh --uninstall
openonload-201210_u2_aoe_3_3_3_6329-1.el6.x86_64
solar_capture-core-1.0.1-0.x86_64
solar_capture-1.0.1-0.x86_64
sfutils-3.3.3.6330-1.i586
aoe_utils-1.3.0.1069-1.x86_64
aoe_solarcapture-1.0.0.1069-1.x86_64
openonload-kmod-2.6.32-279.el6-201210_u2_aoe_3_3_3_6329-1.el6.x86_64
rpm --erase openonload solar_capture-core solar_capture sfutils aoe_utils
aoe_solarcapture openonload-kmod-2.6.32-279.el6201210_u2_aoe_3_3_3_6329-1.el6.x86_64
Issue 9
© Solarflare Communications 2014
21
SolarCapture
User Guide
5.8 Install PTP
SolarCapture, running on any Solarflare adapter, uses software to generate the timestamp of packets
in the capture file.
SolarCapture Pro on SFN7000 series adapters and the AOE adapter, which have the AppFlex PTP/
hardware timestamping license, will use the hardware timestamp generated as packets are received
by the adapter. Using the Solarflare Enhanced PTP daemon, the adapter time can be synchronized
to an external PTP clock source.
Install Solarflare PTP
1
Download the Solarflare Enhanced PTP distribution package SF-108910-LS to the target server.
2
Unzip the package to create the sfptpd- subdirectory containing the sfptpd binary
and all supporting files.
# tar -zxvf SF-108910-LS
3
Issue 9
For instructions on configuration and operation of sfptpd refer to the Solarflare Enhanced PTP
User Guide (SF-109110-CD).
© Solarflare Communications 2014
22
SolarCapture
User Guide
Chapter 6: SolarCapture Functionality
6.1 Line Rate Packet Capture
The Solarflare AOE can, by default, capture at 10Gbps line-rate (~14.8Mpps) on both ports. Line-rate
is also possible on the SFN7000 series adapter using the capture-packed-stream firmware
variant. In this mode the SFN7142Q can capture packets at line-rate on two 10G ports
simultaneously. In this mode SFN7x22 adapters can capture packets at line-rate on a single port
when there are no packets received on the second adapter port. On a SFN7x22 adapter line-rate
capture is still possible even if the second adapter port is used only to send packets.
Using the capture-packed-stream firmware variant. The number of pages required to sustain
line-rate packet capture will depend on the ability of the application to keep up with the packet
arrival rate and write packets to the storage device. Enabling a greater number of huge pages and
packet buffers can help sustain line-rate capture during traffic burst periods.
To enable huge pages on Red Hat Enterprise Linux, the kernel must be compiled with the
CONFIG_HUGETLB_PAGE flag set.
• The size of huge pages allocated by the OS can be identified:
# cat /proc/meminfo | grep Hugepagesize
• The number of huge pages available can be identified:
# cat /proc/sys/vm/nr_hugepages
• To allocate 100 huge pages:
# echo 100 > /proc/sys/vm/nr_hugepages
• To ensure this setting is persistent across restarts add the following line to the sysctl.conf file:
vm.nr_hugepages = 100
Users of other Linux OS variants should refer to the appropriate operating system documentation for
huge pages configuration instructions.
The SFN7000 series firmware variant can be selected using the sfboot utility included in the
Solarflare Linux Utilities package (SF-107601-LS) issue 24 or later.
# sfboot --adapter=eth firmware-variant=capture-packed-stream
To display the current boot configuration for an adapter:
# sfboot
Following a firmware variant change it is necessary to reload the adapter drivers before the
change becomes effective:
Issue 9
© Solarflare Communications 2014
23
SolarCapture
User Guide
# onload_tool reload
NOTE: It is not possible at this time to run applications with Onload when the
adapter is using the capture-packed-stream firmware version.
6.2 Operating Modes
Polling vs Interrupt Mode
The command line option capture_busy_wait is used to configure SolarCapture to either ’spin’
(busy_wait) on a capture thread or to block on that thread when no traffic is being received. A
blocked capture thread will be ’unblocked’ by an interrupt to signal that there is further incoming
traffic to process. A polling (busy_wait) thread will never block.
Polling is recommended for applications receiving high traffic rates, that are latency sensitive or can
be subject to prolonged bursts of traffic. This is the default SolarCapture behaviour.
# solar_capture eth2=eth2.pcap capture_busy_wait=1....
Interrupt driven mode can be used by applications receiving lower traffic rates, that are not latency
sensitive and not expected to be receive large or sustained bursts of traffic.
# solar_capture eth2=eth2.pcap capture_busy_wait=0....
When using interrupt mode, the number of interrupts can be controlled by configuring interrupt
coalescing and interrupt moderation options rx_usecs and adaptive-rx via ethtool. For more
information refer to the Solarflare Server Adapter User Guide (SF-103873-CD).
A companion option ’writeout_busy_wait ’ controls the same behaviour for writeout threads.
6.3 Capture Frame Check Sequence
The Solarflare SFN7000 series adapter can be configured to deliver received packets with the FCS
intact. This is a global setting, when set, all packets will be delivered to all receiving applications with
the FCS intact.
To enable the driver to deliver packets and packet FCS, write a ’1’ to the following file:
echo 1 > /sys/class/net/eth/device/forward_fcs
To configure SolarCapture to retain the packet FCS use the strip_fcs option:
# solar_capture strip_fcs=0 eth4=eth4.pcap
Issue 9
© Solarflare Communications 2014
24
SolarCapture
User Guide
6.4 Capture file timestamp format
By default packets are written to files in PCAP format, which supports microsecond resolution
timestamps. There is a well-known variant of PCAP that uses nanosecond resolution for the
timestamps. Use the ’format’ solar_capture command line option to select one of the following
values:
format=pcap
format=pcap-ns
For details of the nanosecond pcap timestamp format refer to http://anonsvn.wireshark.org/
viewvc/trunk/wiretap/libpcap.h?revision=3754.
6.5 Hardware Timestamps
SolarCapture will use hardware generated timestamps if the following conditions are met:
• Running on SFN7000 series adapter or AOE adapter.
• PTP/HW timestamping license is installed or Performance Monitor license is installed.
If hardware timestamps are not available, SolarCapture will silently fallback to use software
timestamps, taking time from the host system clock. Specific attributes are available to control
timestamp options:
force_sw_timestamps - When non-zero this will always use software timestamps even when
hardware timestamps are available.
require_hw_timestamps - When non-zero, this will cause VI allocation to fail if hardware
timestamps are not available.
Use solar_capture_monitor to check that hardware timestamping is enabled on the adapter
(0=not enabled, 1=enabled):
$ solar_capture_monitor dump | grep hw_timestamps
hw_timestamps
1
For more information about setting SolarCapture attributes see Appendix B: SolarCapture Attributes
on page 113.
Solarflare recommend running PTP (sfptpd) to synchronize the adapter clock with an external PTP/
NTP time source, however, even if synchronized time is not a requirement, it may be necessary to
run sfptpd briefly in ’freerun_mode nic’ to set the initial adapter clock time to the system clock.
Refer to the Solarflare Enhanced PTP User Guide (SF-109110-CD) for instructions.
Issue 9
© Solarflare Communications 2014
25
SolarCapture
User Guide
6.6 Ingress Packet Capture
SolarCapture, by default, will capture incoming packets from the specified interface. To explicitly
capture received traffic identify the capture_point using the following syntax:
solar_capture eth4=eth4.pcap mode=sniff capture_point=ingress
All captured packets are hardware timestamped - if hardware timestamps are available. See
Hardware Timestamps on page 25.
6.7 Egress Packet Capture
SolarCapture, by default, will capture incoming packets from the specified interface. To capture
outgoing packets identify the egress capture point using the following syntax:
solar_capture eth4=eth4.pcap mode=sniff capture_point=egress
All captured packets are hardware timestamped - if hardware timestamps are available. See
Hardware Timestamps on page 25.
Issue 9
© Solarflare Communications 2014
26
SolarCapture
User Guide
Chapter 7: Command Line Interface
7.1 Introduction
The solar_capture command line application captures and timestamps packets received at one
or more network interfaces, and writes these to files. The interface includes a number of
configuration options:
• Set the capture file format
• Join multicast groups
• Control resources used by SolarCapture
• Install filters to select streams to be captured
• Affinitize threads to specific CPU cores
• Control the types of packets captured
• Capture file rotation
NOTE: The command line interface enables the most commonly used features of SolarCapture. For
more complex deployments the user can use either the SolarCapture C library or Python module.
The Command Configuration File is an alternative to the standard command line configuration
method. Refer to Command Configuration File on page 34 for details.
7.2 Run Command Line Interface and Getting Help
To run the command line interface:
$ solar_capture
To get help:
$ solar_capture --help
$ solar_capture help
Source Exif Data:
File Type : PDF
File Type Extension : pdf
MIME Type : application/pdf
PDF Version : 1.6
Linearized : Yes
Create Date : 2015:01:26 12:13:02Z
Creator : FrameMaker 12.0.3
Modify Date : 2015:01:26 12:14:37Z
Language : en
XMP Toolkit : Adobe XMP Core 5.4-c005 78.150055, 2012/11/19-18:45:32
Creator Tool : FrameMaker 12.0.3
Metadata Date : 2015:01:26 12:14:37Z
Producer : Acrobat Distiller 10.1.13 (Windows)
Format : application/pdf
Title : untitled
Document ID : uuid:c36e2c74-b4c9-4713-9155-cbf8e077881b
Instance ID : uuid:364f3f76-68a7-4af2-981e-867f76e06a2c
Page Mode : UseOutlines
Page Count : 118
EXIF Metadata provided by EXIF.tools