Parallel Processing, Security, and Packet Orientation
CHAPTER 2: Introduction to the packetC Language
packetC Language Design Considerations
Virtual Machine—packetC Behavior
Digging a Little Deeper into packetC vs. C
Case Sensitivity and Identifiers
Object Orientation and Control Flow
CHAPTER 3: Style Guidelines for packetC Program
Introduction to packetC Style Guidelines
Meaning of Wording in packetC Style Guidelines
Naming Conventions for Variables, Types, and Functions
Additional Conventions for Naming Variables, Types, and Functions
Source Code Presentation, Indentation, and Form
Include Files and Include Statements
General Conditionals Formatting
General Commentary on Comments
File Naming and Construction Conventions
Broader Coding Style Guideline Tips and Techniques
Variables, Types, and Functions
Variables, Types, and Functions
CHAPTER 4: Construction of a packetC Program
packetC Modules: Three Kinds of Compilation Units
Graphical Representation of Scope Linkage
Run time Environment Data and Predefined Types
Packet Information Block ($PIB pib)
System Information ($SYS type)
CHAPTER 5: Variables: Identifiers, Basic Scalar Data Types, and Literals
Identifiers and a Few Fundamentals
CHAPTER 6: Data Initialization and Mathematical Expressions
Data Initialization, Expressions, and Operators
Variable and Constant Declarations
Variable and Constant Initialization
Classic C Expressions and Operators
Compound Repetition Assignment Operator
Increment and Decrement Operators
Post-Increment and Post-Decrement Operators
Prefix Increment and Prefix Decrement Operators
Logical and Bitwise NOT Operators (!, ~)
Bitwise Exclusive OR (XOR) Operator
Get Field Offset Within Structures
Function Declarations and Prototypes
Function Declaration and Function Call Restrictions
Function Parameter and Return Types
CHAPTER 8: packetC Data Type Fundamentals
Type Compatibility, Conversions, and Casts
Type Promotions, Conversions, and Implicit Casting
Numeric Literals and Implicit Type Casting
Variable Declaration Specifiers
Constant and Constant Integral Expressions
Types, Tags, and Name Visibility
A Discussion on Container-Based Bitfields
CHAPTER 10: Basic Packet Interaction and Operations
Interaction with the Packet through Unique-to-packetC Capabilities
CHAPTER 11: Selection Statements
Covering packetC Basic Control Statements
CHAPTER 12: Loops and Flow Control
Looping (Iteration) Statements
CHAPTER 13: Exception Handling
Try-Catch-Throw Statements (Error Handling)
Error Handling (try-catch-throw)
Errors Section from cloudshield.ph
Simple Program Flow with Try-Catch-Throw Implemented
CHAPTER 14: packetC Database Types and Operations
Database Limitations and Padding
Database Subscripting Operator
Example Database Application (ACL)
CHAPTER 15: packetC Search Set Types and Operations
Searchsets in packetC for Unstructured Content Analysis
Interaction of packetC Pre-Processor with Regular Expressions
General Search Set Usage, Operation, and Mechanics
CHAPTER 16: Reference Type and Operations
Assigning Values to References
Developing Linked Lists Without Pointers
CHAPTER 17: Semaphores in packetC
Using Lock and Unlock to Perform a Global Malloc() and Free()
CHAPTER 18: Packet Information Block and System Packet Operations
Packet Information Block ($PIB pib)
TCP/IP Stack Decode for pib Layer Offset Calculations
Layer 2 Ethernet Header Decode Procedure
Layer 2 Ethernet 802.1Q (VLAN) Decode Procedure
Layer 2 SONET Header Decode Procedure
Layer 2 ½ MPLS Label Stack Decode Procedure
Layer 3 IPv4 and IPv6 Header Decode Procedure
Example cloudshield.ph Include File
CHAPTER 19: Descriptor Type and Operations
Descriptor Example Application
Detailed View and Description of Descriptors
Complex Descriptor Structure and Union Usage
Background on Parallel Processing Paradigm and Relation to Descriptors
PART III: Developing Applications
CHAPTER 20: Control Plane and System Interaction
Alerts and Information Logging
Messages to Control Plane ($MSG_TYPE)
Messages Portion of cloudshield.ph
CHAPTER 21: packetC Pre-Processor
Valid Nesting of Comment Blocks
Miscellaneous Comments Examples
Typical packetC Comment Header
CHAPTER 22: Pragmas and Other Key Compiler Directives
Implementation-Defined Pragmas
Interaction of packetC Pre-Processor with Regular Expressions
CHAPTER 23: Developing Large Applications in packetC
Planning for Large Projects in packetC
Things to Consider in Large Application Development
Plan Out Modularity in Your Programs
Set Up the Production Environment Early
Be Careful, Be Clear, and Be Code
It’s All About Data-Driven Code—Follow the Flow
Programs Large and Small—Plan Appropriately
CHAPTER 24: Construction of a packetC Executable
A View into the CloudShield PacketWorks IDE Tools
CHAPTER 25: packetC Standard Networking Descriptors
Standard Include File protocols.ph Example
CHAPTER 26: Developing for Performance
Developing for Performance in packetC
Improving the Computational Algorithm
Altering the Algorithm with Memory Use in Exchange of Processing
Whatever You Do … Don’t Involve Other Contexts
CHAPTER 27: Standard Libraries
Assessment of C Standard Library Functions
assert.h - Directly Applicable
inttypes.h - Partially Applicable
iso646.h - Directly Applicable
limits.h - Directly Applicable
tgmath.h - Partially Applicable
stdbool.h - Directly Applicable
stddef.h - Partially Applicable
stdint.h - Partially Applicable
stdio.h - Partially Applicable
stdlib.h - Directly Applicable
string.h - Directly Applicable
cloudshield.ph—Required Platform Specific System Include (See Chapter 18)
protocols.ph—Common Layer 2 through 4 Packet Descriptors (See Chapter 19)
ascii.ph—Named Values for ASCII Characters
limits.ph—A packetC Replacement for C limits.h Functionality
moreprotocols.ph—Named Values for Network Protocol Field Values
namedoperators.ph—Replacement for iso646.h Named Operators
stdlib.ph—packetC Implementation of Many stdlib.h Functions
time.ph—packetC Implementation of Many time.h Functions
trojanprotocols.ph—Named Values for Port Numbers Trojan Network Protocol Operate on
ascii.ph - Named Values for ASCII Characters
limits.ph - A packetC Replacement For C limits.h Functionality
moreprotocols.ph - Named Values For Network Protocol Field Values
namedoperators.ph - Replacement for iso646.h Named Operators
trojanprotocols.ph - Named Values for Port Numbers Trojan Network Protocol Operate On
REPRINT 1: packetC Language for High Performance Packet Processing
REPRINT 2: A Paradigm for Processing Network Protocols in Parallel
REPRINT 3: Dynamically Accessing Packet Header Fields at High-speed
REPRINT 4: packetC Language and Parallel Processing of Masked Databases
REPRINT 5: Packet Content Matching with packetC Searchsets
REPRINT 6: References for Run-time Aggregate Selection with Strong Typing
REPRINT 7: Portable Bit Fields in packetC
REPRINT 8: packet Field and Bitfield Allocation Order
REPRINT 9: Managing Heterogeneous Architectures for High-speed Packet Processing
ASCII Table with Decimal to Hexadecimal Conversion
TCP/IP and OSI Model Network Stack
Basic Ethernet II Header Format
Ethernet Header with VLAN Tag (802.1Q) Format
Ethernet Header with Stacked VLAN Tags (802.1Q in Q) Format
3.148.103.210