panapi

package module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2021 License: Apache-2.0 Imports: 3 Imported by: 0

README

PANAPI -- Work In Progress

Go Go Report Card Go Reference License

PANAPI is an early research implementation of a next-generation networking API to the transport layer. The latter is currently under development in the IETF TAPS working group. PANAPI is an EU-funded open-source project, that adds support for the SCION network architecture to a general purpose TAPS-like networking API.

import "panapi" - The PANAPI Library

cmd/daemon - The PANAPI Daemon

  • applications selecting SCION as transport benefit from daemon running in the backend
  • Graceful fallback to default behavior when daemon not running
  • Create dedicated daemon README
  • Lua scripting examples

Protocol support

  • TCP/IP support
  • QUIC/IP support
  • UDP/IP support (currently broken)
  • QUIC/SCION support
  • UDP/SCION support (currently broken)

Features

Path selection
  • Scriptable path selector, implementing pan.Selector
    • working Lua Data model
    • working path ranking (currently broken, script needs to be ported to new API)
  • Central path selection Daemon
Path quality
  • Passive throughput monitoring
Convenience features
  • Different log levels
Other
  • Full test coverage
  • Code Documentation
  • Move scripting selector to /pkg such that it could be used without the rest of PANAPI

Ported Applications

  • spate traffic generator
  • concurrent code example client/server timestamp echoing
  • http
    • server
    • client

Affiliations

OVGU

NGI Pointer

SCION

Documentation

Index

Constants

View Source
const (
	DaemonSocketPath = "/tmp/panapi.sock"
)

Variables

This section is empty.

Functions

func NewLocalEndpoint

func NewLocalEndpoint() *network.Endpoint

func NewRemoteEndpoint

func NewRemoteEndpoint() *network.Endpoint

Types

type Listener

type Listener struct {
	ConnectionReceived chan network.Connection
	// contains filtered or unexported fields
}

func (*Listener) Stop

func (l *Listener) Stop() error

type Preconnection

type Preconnection struct {
	// contains filtered or unexported fields
}

func (*Preconnection) Initiate

func (p *Preconnection) Initiate() (network.Connection, error)

func (*Preconnection) Listen

func (p *Preconnection) Listen() Listener

type TransportProperties

type TransportProperties struct {
	network.TransportProperties
}

HACK, let's see if this works

func NewTransportProperties

func NewTransportProperties() *TransportProperties

Directories

Path Synopsis
cmd
examples
internal
ip

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL