Documentation
¶
Index ¶
- Constants
- type ConnAdapter
- func (c *ConnAdapter) Close() error
- func (c *ConnAdapter) Register(k etherconn.L4HashKey) (torecvch chan *etherconn.EthernetResponse)
- func (c *ConnAdapter) SetWriteDeadline(t time.Time) error
- func (c *ConnAdapter) Start(ctx context.Context)
- func (c *ConnAdapter) Unregister(k etherconn.L4HashKey)
- func (c *ConnAdapter) WriteIPPktTo(p []byte, _ net.HardwareAddr) (int, error)
- type Deserializer
- type PPP
- type Packet
- type ProtocolNumber
- type Serializer
- type SerializerDeserializer
Constants ¶
const ( // IPv4 header size: 20 bytes (min) // IPv6 header size: 40 bytes MinimumFrameSize = 20 // MaxPPPMsgSize specifies max length of a received PPP packet MaxPPPMsgSize = 1500 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnAdapter ¶
type ConnAdapter struct {
// contains filtered or unexported fields
}
ConnAdapter wraps a PPP connection into the etherconn.SharedEthernetConn interface.
func NewConnAdapter ¶
func NewConnAdapter(ppp *PPP, proto ProtocolNumber) *ConnAdapter
func (*ConnAdapter) Close ¶
func (c *ConnAdapter) Close() error
func (*ConnAdapter) Register ¶
func (c *ConnAdapter) Register(k etherconn.L4HashKey) (torecvch chan *etherconn.EthernetResponse)
func (*ConnAdapter) SetWriteDeadline ¶
func (c *ConnAdapter) SetWriteDeadline(t time.Time) error
SetWriteDeadline sets deadline for WriteIPPktTo
func (*ConnAdapter) Start ¶
func (c *ConnAdapter) Start(ctx context.Context)
func (*ConnAdapter) Unregister ¶ added in v1.1.0
func (c *ConnAdapter) Unregister(k etherconn.L4HashKey)
func (*ConnAdapter) WriteIPPktTo ¶
func (c *ConnAdapter) WriteIPPktTo(p []byte, _ net.HardwareAddr) (int, error)
WriteIPPktTo implements etherconn.SharedEthernetConn interface. dstmac is not used at all.
type Deserializer ¶
type PPP ¶
PPP represents the PPP protocol (built over PPPoE for usage over ethernet)
func NewPPP ¶
NewPPP creates a new PPP protocol instance, using conn as underlying transport, l as Logger;
func (*PPP) Register ¶
func (ppp *PPP) Register(p ProtocolNumber) (chan []byte, chan []byte)
Register a new protocol over PPP. 1. send is used to send packets 2. receive is used to receive packets
func (*PPP) Unregister ¶
func (ppp *PPP) Unregister(p ProtocolNumber)
Unregister removes a previously registered protocol if present.
type Packet ¶
type Packet struct { Proto ProtocolNumber Payload Serializer }
Packet represents PPP packet
func NewPacket ¶
func NewPacket(data Serializer, proto ProtocolNumber) *Packet
NewPacket return a new PPP packet with protocol number and payload
type ProtocolNumber ¶
type ProtocolNumber uint16
ProtocolNumber is the PPP protocol number
const ( ProtoNone ProtocolNumber = 0x00 ProtoPAD ProtocolNumber = 0x01 ProtoIPv4 ProtocolNumber = 0x21 ProtoIPv6 ProtocolNumber = 0x57 ProtoLCP ProtocolNumber = 0xc021 ProtoPAP ProtocolNumber = 0xc023 ProtoCHAP ProtocolNumber = 0xc223 ProtoEAP ProtocolNumber = 0xc227 ProtoIPCP ProtocolNumber = 0x8021 ProtoIPv6CP ProtocolNumber = 0x8057 ProtoROHCsmallCID ProtocolNumber = 0x03 ProtoROHClargeCID ProtocolNumber = 0x05 ProtoOSINetworkLayer ProtocolNumber = 0x23 ProtoXeroxNSIDP ProtocolNumber = 0x25 ProtoDECnetPhaseIV ProtocolNumber = 0x27 ProtoAppletalk ProtocolNumber = 0x29 ProtoNovellIPX ProtocolNumber = 0x002b ProtoVanJacobsonCompressedTCPIP ProtocolNumber = 0x002d ProtoVanJacobsonUncompressedTCPIP ProtocolNumber = 0x002f ProtoBridgingPDU ProtocolNumber = 0x31 ProtoStreamProtocol ProtocolNumber = 0x33 ProtoBanyanVines ProtocolNumber = 0x35 ProtoUnassigned ProtocolNumber = 0x37 ProtoAppleTalkEDDP ProtocolNumber = 0x39 ProtoAppleTalkSmartBuffered ProtocolNumber = 0x003b ProtoMultiLink ProtocolNumber = 0x003d ProtoNETBIOSFraming ProtocolNumber = 0x003f ProtoCiscoSystems ProtocolNumber = 0x41 ProtoAscomTimeplex ProtocolNumber = 0x43 ProtoFujitsuLinkBackupandLoadBalancing ProtocolNumber = 0x45 ProtoDCARemoteLan ProtocolNumber = 0x47 ProtoSerialDataTransportProtocol ProtocolNumber = 0x49 ProtoSNAover802 ProtocolNumber = 0x004b ProtoSNA ProtocolNumber = 0x004d ProtoIPv6HeaderCompression ProtocolNumber = 0x004f ProtoKNXBridgingData ProtocolNumber = 0x51 ProtoEncryption ProtocolNumber = 0x53 ProtoIndividualLinkEncryption ProtocolNumber = 0x55 ProtoPPPMuxing ProtocolNumber = 0x59 ProtoVendorSpecificNetworkProtocol ProtocolNumber = 0x005b ProtoTRILLNetworkProtocol ProtocolNumber = 0x005d ProtoRTPIPHCFullHeader ProtocolNumber = 0x61 ProtoRTPIPHCCompressedTCP ProtocolNumber = 0x63 ProtoRTPIPHCCompressedNonTCP ProtocolNumber = 0x65 ProtoRTPIPHCCompressedUDP8 ProtocolNumber = 0x67 ProtoRTPIPHCCompressedRTP8 ProtocolNumber = 0x69 ProtoStampedeBridging ProtocolNumber = 0x006f ProtoMPPlus ProtocolNumber = 0x73 ProtoNTCITSIPI ProtocolNumber = 0x00c1 ProtoSinglelinkcompressioninmultilink ProtocolNumber = 0x00fb ProtoCompresseddatagram ProtocolNumber = 0x00fd ProtoHelloPackets8021d ProtocolNumber = 0x201 ProtoIBMSourceRoutingBPDU ProtocolNumber = 0x203 ProtoDECLANBridge100SpanningTree ProtocolNumber = 0x205 ProtoCiscoDiscoveryProtocol ProtocolNumber = 0x207 ProtoNetcsTwinRouting ProtocolNumber = 0x209 ProtoSTPScheduledTransferProtocol ProtocolNumber = 0x020b ProtoEDPExtremeDiscoveryProtocol ProtocolNumber = 0x020d ProtoOpticalSupervisoryChannelProtocol ProtocolNumber = 0x211 ProtoOpticalSupervisoryChannelProtocolAlias ProtocolNumber = 0x213 ProtoLuxcom ProtocolNumber = 0x231 ProtoSigmaNetworkSystems ProtocolNumber = 0x233 ProtoAppleClientServerProtocol ProtocolNumber = 0x235 ProtoMPLSUnicast ProtocolNumber = 0x281 ProtoMPLSMulticast ProtocolNumber = 0x283 ProtoIEEEp12844standarddatapackets ProtocolNumber = 0x285 ProtoETSITETRANetworkProtocolType1 ProtocolNumber = 0x287 ProtoMultichannelFlowTreatmentProtocol ProtocolNumber = 0x289 ProtoRTPIPHCCompressedTCPNoDelta ProtocolNumber = 0x2063 ProtoRTPIPHCContextState ProtocolNumber = 0x2065 ProtoRTPIPHCCompressedUDP16 ProtocolNumber = 0x2067 ProtoRTPIPHCCompressedRTP16 ProtocolNumber = 0x2069 ProtoCrayCommunicationsControlProtocol ProtocolNumber = 0x4001 ProtoCDPDMobileNetworkRegistrationProtocol ProtocolNumber = 0x4003 ProtoExpandacceleratorprotocol ProtocolNumber = 0x4005 ProtoODSICPNCP ProtocolNumber = 0x4007 ProtoDOCSISDLL ProtocolNumber = 0x4009 ProtoCetaceanNetworkDetectionProtocol ProtocolNumber = 0x400B ProtoStackerLZS ProtocolNumber = 0x4021 ProtoRefTekProtocol ProtocolNumber = 0x4023 ProtoFibreChannel ProtocolNumber = 0x4025 ProtoOpenDOF ProtocolNumber = 0x4027 ProtoVendorSpecificProtocol ProtocolNumber = 0x405b ProtoTRILLLinkStateProtocol ProtocolNumber = 0x405d ProtoOSINetworkLayerControlProtocol ProtocolNumber = 0x8023 ProtoXeroxNSIDPControlProtocol ProtocolNumber = 0x8025 ProtoDECnetPhaseIVControlProtocol ProtocolNumber = 0x8027 ProtoAppletalkControlProtocol ProtocolNumber = 0x8029 ProtoNovellIPXControlProtocol ProtocolNumber = 0x802b ProtoBridgingNCP ProtocolNumber = 0x8031 ProtoStreamProtocolControlProtocol ProtocolNumber = 0x8033 ProtoBanyanVinesControlProtocol ProtocolNumber = 0x8035 ProtoMultiLinkControlProtocol ProtocolNumber = 0x803d ProtoNETBIOSFramingControlProtocol ProtocolNumber = 0x803f ProtoCiscoSystemsControlProtocol ProtocolNumber = 0x8041 ProtoAscomTimeplexAlias ProtocolNumber = 0x8043 ProtoFujitsuLBLBControlProtocol ProtocolNumber = 0x8045 ProtoDCARemoteLanNetworkControlProtocol ProtocolNumber = 0x8047 ProtoSerialDataControlProtocol ProtocolNumber = 0x8049 ProtoSNAover802Control ProtocolNumber = 0x804b ProtoSNAControlProtocol ProtocolNumber = 0x804d ProtoIP6HeaderCompressionControlProtocol ProtocolNumber = 0x804f ProtoKNXBridgingControlProtocol ProtocolNumber = 0x8051 ProtoEncryptionControlProtocol ProtocolNumber = 0x8053 ProtoIndividualLinkEncryptionControlProtocol ProtocolNumber = 0x8055 ProtoPPPMuxingControlProtocol ProtocolNumber = 0x8059 ProtoVendorSpecificNetworkControlProtocol ProtocolNumber = 0x805b ProtoTRILLNetworkControlProtocol ProtocolNumber = 0x805d ProtoStampedeBridgingControlProtocol ProtocolNumber = 0x806f ProtoMPPlusControlProtocol ProtocolNumber = 0x8073 ProtoNTCITSIPIControlProtocol ProtocolNumber = 0x80c1 Protosinglelinkcompressioninmultilinkcontrol ProtocolNumber = 0x80fb ProtoCompressionControlProtocol ProtocolNumber = 0x80fd ProtoCiscoDiscoveryProtocolControl ProtocolNumber = 0x8207 ProtoNetcsTwinRoutingAlias ProtocolNumber = 0x8209 ProtoSTPControlProtocol ProtocolNumber = 0x820b ProtoEDPCPExtremeDiscoveryProtocolCtrlPrtcl ProtocolNumber = 0x820d ProtoAppleClientServerProtocolControl ProtocolNumber = 0x8235 ProtoMPLSCP ProtocolNumber = 0x8281 ProtoIEEEp12844standardProtocolControl ProtocolNumber = 0x8285 ProtoETSITETRATNP1ControlProtocol ProtocolNumber = 0x8287 ProtoMultichannelFlowTreatmentProtocolAlias ProtocolNumber = 0x8289 ProtoLinkQualityReport ProtocolNumber = 0xc025 ProtoShivaPasswordAuthenticationProtocol ProtocolNumber = 0xc027 ProtoCallBackControlProtocol ProtocolNumber = 0xc029 ProtoBACPBandwidthAllocationControlProtocolAlias ProtocolNumber = 0xc02b ProtoBAP ProtocolNumber = 0xc02d ProtoVendorSpecificAuthenticationProtocol ProtocolNumber = 0xc05b ProtoContainerControlProtocol ProtocolNumber = 0xc081 ProtoRSAAuthenticationProtocol ProtocolNumber = 0xc225 ProtoMitsubishiSecurityInfoExchPtcl ProtocolNumber = 0xc229 ProtoStampedeBridgingAuthorizationProtocol ProtocolNumber = 0xc26f ProtoProprietaryAuthenticationProtocol ProtocolNumber = 0xc281 ProtoProprietaryAuthenticationProtocolAlias ProtocolNumber = 0xc283 ProtoProprietaryNodeIDAuthenticationProtocol ProtocolNumber = 0xc481 )
List of PPP protocol number
func (ProtocolNumber) String ¶
func (val ProtocolNumber) String() string
type Serializer ¶
func NewStaticSerializer ¶
func NewStaticSerializer(data []byte) Serializer
type SerializerDeserializer ¶
type SerializerDeserializer interface { Serializer Deserializer }