trireme-lib: go.aporeto.io/trireme-lib/controller/pkg/packetprocessor Index | Files

package packetprocessor

import "go.aporeto.io/trireme-lib/controller/pkg/packetprocessor"

Index

Package Files

packetprocessor.go

type PacketProcessor Uses

type PacketProcessor interface {
    // Initialize  initializes any ACLs that the processor requires
    Initialize(fq *fqconfig.FilterQueue, p provider.IptablesProvider)

    // Stop stops the packet processor
    Stop() error

    // PreProcessTCPAppPacket will be called for application packets and return value of false means drop packet.
    PreProcessTCPAppPacket(p *packet.Packet, context *pucontext.PUContext, conn *connection.TCPConnection) bool

    // PostProcessTCPAppPacket will be called for application packets and return value of false means drop packet.
    PostProcessTCPAppPacket(p *packet.Packet, action interface{}, context *pucontext.PUContext, conn *connection.TCPConnection) bool

    // PreProcessTCPNetPacket will be called for network packets and return value of false means drop packet
    PreProcessTCPNetPacket(p *packet.Packet, context *pucontext.PUContext, conn *connection.TCPConnection) bool

    // PostProcessTCPNetPacket will be called for network packets and return value of false means drop packet
    PostProcessTCPNetPacket(p *packet.Packet, action interface{}, claims *tokens.ConnectionClaims, context *pucontext.PUContext, conn *connection.TCPConnection) bool

    // PreProcessUDPAppPacket will be called for application packets and return value of false means drop packet
    PreProcessUDPAppPacket(p *packet.Packet, context *pucontext.PUContext, conn *connection.UDPConnection, packetType uint8) bool

    // PostProcessUDPAppPacket will be called for application packets and return value of false means drop packet.
    PostProcessUDPAppPacket(p *packet.Packet, action interface{}, context *pucontext.PUContext, conn *connection.UDPConnection) bool

    // PreProcessUDPNetPacket will be called for network packets and return value of false means drop packet
    PreProcessUDPNetPacket(p *packet.Packet, context *pucontext.PUContext, conn *connection.UDPConnection) bool

    // PostProcessUDPNetPacket will be called for network packets and return value of false means drop packet
    PostProcessUDPNetPacket(p *packet.Packet, action interface{}, claims *tokens.ConnectionClaims, context *pucontext.PUContext, conn *connection.UDPConnection) bool
}

PacketProcessor is an interface for extending packet processing functions such as encryption, deep packet inspection, etc. These functions are run inline during packet processing. A services processor must implement this interface.

Package packetprocessor imports 6 packages (graph) and is imported by 10 packages. Updated 2018-11-01. Refresh now. Tools for package owners.