checking in net - i'll have to finish it later, but i'm getting there.
This commit is contained in:
parent
bb786855fc
commit
55ac47c869
5
go.mod
Normal file
5
go.mod
Normal file
@ -0,0 +1,5 @@
|
||||
module r00t2.io/sysutils
|
||||
|
||||
go 1.16
|
||||
|
||||
require github.com/jszwec/csvutil v1.5.0
|
2
go.sum
Normal file
2
go.sum
Normal file
@ -0,0 +1,2 @@
|
||||
github.com/jszwec/csvutil v1.5.0 h1:ErLnF1Qzzt9svk8CUY7CyLl/W9eET+KWPIZWkE1o6JM=
|
||||
github.com/jszwec/csvutil v1.5.0/go.mod h1:Rpu7Uu9giO9subDyMCIQfHVDuLrcaC36UA4YcJjGBkg=
|
236
net/README.adoc
Normal file
236
net/README.adoc
Normal file
@ -0,0 +1,236 @@
|
||||
= Basic Net types for Golang
|
||||
brent saner <bts@r00t2.io>
|
||||
Last updated {localdatetime}
|
||||
:doctype: book
|
||||
:data-uri:
|
||||
:imagesdir: images
|
||||
:sectlinks:
|
||||
:sectnums:
|
||||
:sectnumlevels: 7
|
||||
:toc: preamble
|
||||
:toc2: left
|
||||
:idprefix:
|
||||
:toclevels: 7
|
||||
//:source-highlighter: rouge
|
||||
|
||||
This "submodule/subpackage" (such a thing technically doesn't exist in Golang) is a collection of data taken directly from IANA's https://www.iana.org/protocols[database^] that contains populated ports
|
||||
footnote:[https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml[Service Name and Transport Protocol Port Number Registry^]] and
|
||||
protocolsfootnote:[https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml[Protocol Numbers^]].
|
||||
|
||||
You probably don't want to use anything in this parent directory (`r00t2.io/sysutils/net`), as it's only used to generate the data from the IANA's registries.
|
||||
|
||||
== Ports
|
||||
|
||||
You can specify your own port via several methods.
|
||||
|
||||
=== The long way
|
||||
|
||||
[source,go]
|
||||
----
|
||||
package main
|
||||
|
||||
import (
|
||||
`fmt`
|
||||
|
||||
`r00t2.io/sysutils/net/ports`
|
||||
`r00t2.io/sysutils/net/protos`
|
||||
)
|
||||
|
||||
func main() {
|
||||
var p *ports.IPPort
|
||||
|
||||
p = &ports.IPPort{
|
||||
Number: 22,
|
||||
Protocol: &protos.IPProto{
|
||||
Name: "TCP",
|
||||
Number: 6,
|
||||
Reference: "[RFC793]",
|
||||
Reserved: false,
|
||||
Description: "Transmission Control",
|
||||
IP6ExtensionHeader: false,
|
||||
},
|
||||
ServiceName: "SSH",
|
||||
Description: "Secure Shell",
|
||||
Reserved: false,
|
||||
}
|
||||
|
||||
fmt.Printf(
|
||||
"Port:\n" +
|
||||
"\tNumber: %v\n" +
|
||||
"\tProto: %v\n" +
|
||||
"\tService: %v\n" +
|
||||
"\tDesc: %v\n" +
|
||||
"\tReserved?: %v\n",
|
||||
p.Number, p.Proto.Name, p.ServiceName, p.Description, p.Reserved)
|
||||
}
|
||||
----
|
||||
|
||||
=== The Shorter Way
|
||||
|
||||
[source,go]
|
||||
----
|
||||
package main
|
||||
|
||||
import (
|
||||
`fmt`
|
||||
`log`
|
||||
|
||||
`r00t2.io/sysutils/net/ports`
|
||||
`r00t2.io/sysutils/net/protos`
|
||||
)
|
||||
|
||||
func main() {
|
||||
var proto *protos.IPProto
|
||||
var port *ports.IPPort
|
||||
var err error
|
||||
|
||||
proto = &protos.IPProto{Name: "TCP"}
|
||||
port = &ports.IPPort{Number:22, Protocol: &proto}
|
||||
// Populate recurses down into Protocol as well.
|
||||
if err = port.Populate(); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
fmt.Printf(
|
||||
"Port:\n" +
|
||||
"\tNumber: %v\n" +
|
||||
"\tProto: %v\n" +
|
||||
"\tService: %v\n" +
|
||||
"\tDesc: %v\n" +
|
||||
"\tReserved?: %v\n",
|
||||
port.Number, port.Proto.Name, port.ServiceName, port.Description, port.Reserved)
|
||||
}
|
||||
----
|
||||
|
||||
=== The "Gotta Go Fast" Way
|
||||
|
||||
[source,go]
|
||||
----
|
||||
package main
|
||||
|
||||
import (
|
||||
`fmt`
|
||||
`log`
|
||||
|
||||
`r00t2.io/sysutils/net/ports`
|
||||
)
|
||||
|
||||
func main() {
|
||||
var err error
|
||||
var port *ports.IPPort
|
||||
|
||||
// The default protocol is "TCP".
|
||||
// If a UDP service is found but no TCP for the given port number, UDP is used.
|
||||
if err = port.FetchNum(22); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
// If you need to specify a protocol (by name) - e.g. it isn't TCP, use FetchNumProto.
|
||||
port.FetchNumProto(22, "TCP")
|
||||
|
||||
fmt.Printf("%#v\n", port)
|
||||
|
||||
}
|
||||
----
|
||||
|
||||
== Protocols
|
||||
|
||||
You can specify your own protocol via several methods.
|
||||
|
||||
=== The long way
|
||||
|
||||
[source,go]
|
||||
----
|
||||
package main
|
||||
|
||||
import (
|
||||
`fmt`
|
||||
|
||||
`r00t2.io/sysutils/net/protos`
|
||||
)
|
||||
|
||||
func main() {
|
||||
var p *protos.IPProto
|
||||
|
||||
p = &protos.IPProto{
|
||||
Name: "TCP",
|
||||
Number: 6,
|
||||
Reference: "[RFC793]",
|
||||
Description: "Transmission Control",
|
||||
Reserved: false,
|
||||
IP6ExtensionHeader: false,
|
||||
}
|
||||
|
||||
fmt.Printf(
|
||||
"Protocol:\n" +
|
||||
"\tName: %v\n" +
|
||||
"\tNumber: %v\n" +
|
||||
"\tReference: %v\n" +
|
||||
"\tReserved?: %v\n" +
|
||||
"\tIPv6 Extension Header?: %v\n",
|
||||
p.Name, p.Number, p.Reference, p.Reserved, p.IP6ExtensionHeader)
|
||||
}
|
||||
----
|
||||
|
||||
=== The Shorter Way
|
||||
|
||||
[source,go]
|
||||
----
|
||||
package main
|
||||
|
||||
import (
|
||||
`fmt`
|
||||
`log`
|
||||
|
||||
`r00t2.io/sysutils/net/protos`
|
||||
)
|
||||
|
||||
func main() {
|
||||
var proto *protos.IPProto
|
||||
var err error
|
||||
|
||||
proto = &protos.IPProto{Name: "TCP"}
|
||||
if err = proto.Populate(); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
fmt.Printf(
|
||||
"Protocol:\n" +
|
||||
"\tName: %v\n" +
|
||||
"\tNumber: %v\n" +
|
||||
"\tReference: %v\n" +
|
||||
"\tReserved?: %v\n" +
|
||||
"\tIPv6 Extension Header?: %v\n",
|
||||
p.Name, p.Number, p.Reference, p.Reserved, p.IP6ExtensionHeader)
|
||||
}
|
||||
----
|
||||
|
||||
=== The "Gotta Go Fast" Way
|
||||
|
||||
[source,go]
|
||||
----
|
||||
package main
|
||||
|
||||
import (
|
||||
`fmt`
|
||||
`log`
|
||||
|
||||
`r00t2.io/sysutils/net/protos`
|
||||
)
|
||||
|
||||
func main() {
|
||||
var err error
|
||||
var proto *protos.IPProto
|
||||
|
||||
if err = proto.FetchName("TCP"); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
if err = port.FetchNum(6); err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
fmt.Printf("%#v\n", proto)
|
||||
|
||||
}
|
||||
----
|
5
net/build.sh
Executable file
5
net/build.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf {ports,protos}/data.go
|
||||
|
||||
go run consts.go main.go
|
12
net/consts.go
Normal file
12
net/consts.go
Normal file
@ -0,0 +1,12 @@
|
||||
package main
|
||||
|
||||
const (
|
||||
// RFC1700 is DEPRECATED.
|
||||
// Go to https://www.iana.org/protocols for their current database.
|
||||
// https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
|
||||
portsUrl = "https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv"
|
||||
// https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
|
||||
protosUrl = "https://www.iana.org/assignments/protocol-numbers/protocol-numbers-1.csv"
|
||||
portsFile = "ports/data.go"
|
||||
protosFile = "protos/data.go"
|
||||
)
|
31
net/genfuncs.go
Normal file
31
net/genfuncs.go
Normal file
@ -0,0 +1,31 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"r00t2.io/sysutils/net/ports"
|
||||
)
|
||||
|
||||
func download(url string) (b *[]byte, err error) {
|
||||
var resp *http.Response
|
||||
var buf bytes.Buffer
|
||||
|
||||
b = &[]byte{}
|
||||
|
||||
if resp, err = http.Get(url); err != nil {
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if _, err = io.Copy(&buf, resp.Body); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
*b = buf.Bytes()
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (ports *PortSet) parse(src *[]byte, outBytes *[]byte)
|
35
net/gentypes.go
Normal file
35
net/gentypes.go
Normal file
@ -0,0 +1,35 @@
|
||||
package main
|
||||
|
||||
type Port struct {
|
||||
// The things I do.
|
||||
// Number uint16 `csv:"-"`
|
||||
CsvNum IanaNum `csv:"Port Number"`
|
||||
// We need to map this ourselves.
|
||||
// Protocol *protos.IPProto `csv:"-"`
|
||||
Proto string `csv:"Transport Protocol"`
|
||||
ServiceName string `csv:"Service Name"`
|
||||
Description string `csv:"Description"`
|
||||
// This too.
|
||||
// Reserved bool `csv:"-"`
|
||||
}
|
||||
|
||||
type Proto struct {
|
||||
Name string `csv:"Keyword"`
|
||||
Description string `csv:"Protocol"`
|
||||
// We need to map this ourselves.
|
||||
// Number uint8 `csv:"-"`
|
||||
CsvNum IanaNum `csv:"Decimal"`
|
||||
Reference string `csv:"Reference"`
|
||||
// These too.
|
||||
// Reserved bool `csv:"-"`
|
||||
// IP6ExtensionHeader bool `csv:"-"`
|
||||
Ip6ext Ip6ExtBool `csv:"IPv6 Extension Header"`
|
||||
}
|
||||
|
||||
type ProtoSet []*Proto
|
||||
type PortSet []*Port
|
||||
|
||||
type Ip6ExtBool bool
|
||||
|
||||
// Gorram it, IANA.
|
||||
type IanaNum string
|
199
net/main.go
Normal file
199
net/main.go
Normal file
@ -0,0 +1,199 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
_ "encoding/csv"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/jszwec/csvutil"
|
||||
|
||||
"r00t2.io/sysutils/net/ports"
|
||||
"r00t2.io/sysutils/net/protos"
|
||||
"r00t2.io/sysutils/paths"
|
||||
)
|
||||
|
||||
// I really don't get all the slobbering over interfaces. They seem... pointless.
|
||||
// Because now I have to write multiple parsers with largely duplicate code.
|
||||
// Massive code duplication is, apparently, Idiomatic Go(TM).
|
||||
// I miss python.
|
||||
func parsePort(src *[]byte, dst []ports.IPPort, outBytes *[]byte) (err error) {
|
||||
|
||||
var tName string
|
||||
var varName string
|
||||
var s string
|
||||
var buf bytes.Buffer
|
||||
var allports []string
|
||||
|
||||
buf.Write([]byte("package ports\n\n"))
|
||||
|
||||
if err = csvutil.Unmarshal(*src, &dst); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
buf.Write([]byte("var (\n"))
|
||||
|
||||
for _, i := range dst {
|
||||
|
||||
// tName = fmt.Sprintf("%v", i.ServiceName)
|
||||
tName = strings.ToLower(i.ServiceName)
|
||||
varName = fmt.Sprintf("RegisteredPort_%v%v", tName, int(i.Number))
|
||||
|
||||
s = fmt.Sprintf("\t%v := %#v\n", varName, &i)
|
||||
buf.Write([]byte(s))
|
||||
}
|
||||
|
||||
buf.Write([]byte(")\n\n"))
|
||||
|
||||
// Write the easy collections.
|
||||
buf.Write([]byte("var (\n"))
|
||||
buf.Write([]byte("\tAllRegisteredPorts []*IPPort = {\n"))
|
||||
for _, i := range allports {
|
||||
buf.Write([]byte(fmt.Sprintf("\t\t%v,\n", i)))
|
||||
}
|
||||
buf.Write([]byte(")\n\n)\n"))
|
||||
|
||||
*outBytes = buf.Bytes()
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func parseProto(src *[]byte, dst []protos.IPProto, outBytes *[]byte) (err error) {
|
||||
|
||||
var tName string
|
||||
var varName string
|
||||
var s string
|
||||
var buf bytes.Buffer
|
||||
var allprotos []string
|
||||
|
||||
buf.Write([]byte("package protos\n\n"))
|
||||
|
||||
if err = csvutil.Unmarshal(*src, &dst); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
buf.Write([]byte("var (\n"))
|
||||
|
||||
for _, i := range dst {
|
||||
|
||||
tName = fmt.Sprintf("%v", i.Name)
|
||||
varName = fmt.Sprintf("RegisteredProto%v%v", tName, strconv.Itoa(int(i.Number)))
|
||||
|
||||
allprotos = append(allprotos, varName)
|
||||
|
||||
s = fmt.Sprintf("\t%v := %#v\n", varName, &i)
|
||||
buf.Write([]byte(s))
|
||||
}
|
||||
|
||||
buf.Write([]byte(")\n\n"))
|
||||
|
||||
// Write the easy collections.
|
||||
buf.Write([]byte("var (\n"))
|
||||
buf.Write([]byte("\tAllRegisteredProtos []*IPProto = {\n"))
|
||||
for _, i := range allprotos {
|
||||
buf.Write([]byte(fmt.Sprintf("\t\t%v,\n", i)))
|
||||
}
|
||||
buf.Write([]byte(")\n\n)\n"))
|
||||
|
||||
*outBytes = buf.Bytes()
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func write(path string, b []byte) (err error) {
|
||||
|
||||
if err = paths.RealPath(&path); err != nil {
|
||||
return
|
||||
}
|
||||
if err = os.WriteFile(path, b, 0644); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
||||
var dlbytes *[]byte // This is the raw downloaded CSV.
|
||||
// var rows [][]string // This is the parsed CSV.
|
||||
var err error
|
||||
|
||||
urls := map[string]map[string]string{
|
||||
// Protos needs to be first so ports can reference them.
|
||||
// TODO.
|
||||
"protos": {
|
||||
"url": protosUrl,
|
||||
"file": protosFile,
|
||||
},
|
||||
"ports": {
|
||||
"url": portsUrl,
|
||||
"file": portsFile,
|
||||
},
|
||||
}
|
||||
|
||||
rendered := map[string]*[]byte{
|
||||
"protos": &[]byte{},
|
||||
"ports": &[]byte{},
|
||||
}
|
||||
|
||||
for t, d := range urls {
|
||||
|
||||
var url string
|
||||
var fpath string
|
||||
var ok bool
|
||||
|
||||
if url, ok = d["url"]; !ok {
|
||||
fmt.Printf("URL does not exist for %v; skipping.\n", t)
|
||||
continue
|
||||
}
|
||||
if fpath, ok = d["file"]; !ok {
|
||||
fmt.Printf("File path does not exist for %v; skipping.\n", t)
|
||||
continue
|
||||
} else {
|
||||
if err = paths.RealPath(&fpath); err != nil {
|
||||
fmt.Printf("Cannot resolve file path for %v; skipping.\n", t)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if dlbytes, err = download(url); err != nil {
|
||||
fmt.Printf("Could not download '%v' for %v (skipping):\n", url, t)
|
||||
fmt.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
// I *could* set up a variable that refers to the proper func and set that func in an if block above...
|
||||
// But then I'd have to use reflection and it gets gross and hacky. This is a lot more performant even though it's a lot
|
||||
// more verbose. Write it once, run it many times...
|
||||
if t == "ports" {
|
||||
|
||||
var objs []ports.IPPort
|
||||
|
||||
if err = parsePort(dlbytes, objs, rendered[t]); err != nil {
|
||||
fmt.Printf("Could not parse %v (skipping):\n", t)
|
||||
fmt.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
} else { // t == "proto"
|
||||
|
||||
var objs []protos.IPProto
|
||||
|
||||
if err = parseProto(dlbytes, objs, rendered[t]); err != nil {
|
||||
fmt.Printf("Could not parse %v (skipping):\n", t)
|
||||
fmt.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if err = write(fpath, *rendered[t]); err != nil {
|
||||
fmt.Printf("Could not write to '%v' for %v (skipping):\n", fpath, t)
|
||||
fmt.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
}
|
||||
}
|
14278
net/ports/data.go
Normal file
14278
net/ports/data.go
Normal file
File diff suppressed because it is too large
Load Diff
1
net/ports/funcs.go
Normal file
1
net/ports/funcs.go
Normal file
@ -0,0 +1 @@
|
||||
package ports
|
13
net/ports/types.go
Normal file
13
net/ports/types.go
Normal file
@ -0,0 +1,13 @@
|
||||
package ports
|
||||
|
||||
import (
|
||||
"r00t2.io/sysutils/net/protos"
|
||||
)
|
||||
|
||||
type IPPort struct {
|
||||
Number uint16
|
||||
Protocol *protos.IPProto
|
||||
ServiceName string
|
||||
Description string
|
||||
Reserved bool
|
||||
}
|
308
net/protos/data.go
Normal file
308
net/protos/data.go
Normal file
@ -0,0 +1,308 @@
|
||||
package protos
|
||||
|
||||
var (
|
||||
RegisteredProtoHOPOPT0 := &protos.IPProto{Name:"HOPOPT", Description:"IPv6 Hop-by-Hop Option", Number:0x0, csvNum:"", Reference:"[RFC8200]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoICMP0 := &protos.IPProto{Name:"ICMP", Description:"Internet Control Message", Number:0x0, csvNum:"", Reference:"[RFC792]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIGMP0 := &protos.IPProto{Name:"IGMP", Description:"Internet Group Management", Number:0x0, csvNum:"", Reference:"[RFC1112]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoGGP0 := &protos.IPProto{Name:"GGP", Description:"Gateway-to-Gateway", Number:0x0, csvNum:"", Reference:"[RFC823]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPv40 := &protos.IPProto{Name:"IPv4", Description:"IPv4 encapsulation", Number:0x0, csvNum:"", Reference:"[RFC2003]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoST0 := &protos.IPProto{Name:"ST", Description:"Stream", Number:0x0, csvNum:"", Reference:"[RFC1190][RFC1819]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoTCP0 := &protos.IPProto{Name:"TCP", Description:"Transmission Control", Number:0x0, csvNum:"", Reference:"[RFC793]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCBT0 := &protos.IPProto{Name:"CBT", Description:"CBT", Number:0x0, csvNum:"", Reference:"[Tony_Ballardie]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoEGP0 := &protos.IPProto{Name:"EGP", Description:"Exterior Gateway Protocol", Number:0x0, csvNum:"", Reference:"[RFC888][David_Mills]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIGP0 := &protos.IPProto{Name:"IGP", Description:"any private interior gateway \n(used by Cisco for their IGRP)", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoBBN-RCC-MON0 := &protos.IPProto{Name:"BBN-RCC-MON", Description:"BBN RCC Monitoring", Number:0x0, csvNum:"", Reference:"[Steve_Chipman]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoNVP-II0 := &protos.IPProto{Name:"NVP-II", Description:"Network Voice Protocol", Number:0x0, csvNum:"", Reference:"[RFC741][Steve_Casner]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPUP0 := &protos.IPProto{Name:"PUP", Description:"PUP", Number:0x0, csvNum:"", Reference:"[Boggs, D., J. Shoch, E. Taft, and R. Metcalfe, \"PUP: An\nInternetwork Architecture\", XEROX Palo Alto Research Center,\nCSL-79-10, July 1979; also in IEEE Transactions on\nCommunication, Volume COM-28, Number 4, April 1980.][[XEROX]]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoARGUS (deprecated)0 := &protos.IPProto{Name:"ARGUS (deprecated)", Description:"ARGUS", Number:0x0, csvNum:"", Reference:"[Robert_W_Scheifler]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoEMCON0 := &protos.IPProto{Name:"EMCON", Description:"EMCON", Number:0x0, csvNum:"", Reference:"[<mystery contact>]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoXNET0 := &protos.IPProto{Name:"XNET", Description:"Cross Net Debugger", Number:0x0, csvNum:"", Reference:"[Haverty, J., \"XNET Formats for Internet Protocol Version 4\",\nIEN 158, October 1980.][Jack_Haverty]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCHAOS0 := &protos.IPProto{Name:"CHAOS", Description:"Chaos", Number:0x0, csvNum:"", Reference:"[J_Noel_Chiappa]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoUDP0 := &protos.IPProto{Name:"UDP", Description:"User Datagram", Number:0x0, csvNum:"", Reference:"[RFC768][Jon_Postel]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMUX0 := &protos.IPProto{Name:"MUX", Description:"Multiplexing", Number:0x0, csvNum:"", Reference:"[Cohen, D. and J. Postel, \"Multiplexing Protocol\", IEN 90,\nUSC/Information Sciences Institute, May 1979.][Jon_Postel]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoDCN-MEAS0 := &protos.IPProto{Name:"DCN-MEAS", Description:"DCN Measurement Subsystems", Number:0x0, csvNum:"", Reference:"[David_Mills]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoHMP0 := &protos.IPProto{Name:"HMP", Description:"Host Monitoring", Number:0x0, csvNum:"", Reference:"[RFC869][Bob_Hinden]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPRM0 := &protos.IPProto{Name:"PRM", Description:"Packet Radio Measurement", Number:0x0, csvNum:"", Reference:"[Zaw_Sing_Su]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoXNS-IDP0 := &protos.IPProto{Name:"XNS-IDP", Description:"XEROX NS IDP", Number:0x0, csvNum:"", Reference:"[\"The Ethernet, A Local Area Network: Data Link Layer and\nPhysical Layer Specification\", AA-K759B-TK, Digital\nEquipment Corporation, Maynard, MA. Also as: \"The\nEthernet - A Local Area Network\", Version 1.0, Digital\nEquipment Corporation, Intel Corporation, Xerox\nCorporation, September 1980. And: \"The Ethernet, A Local\nArea Network: Data Link Layer and Physical Layer\nSpecifications\", Digital, Intel and Xerox, November 1982.\nAnd: XEROX, \"The Ethernet, A Local Area Network: Data Link\nLayer and Physical Layer Specification\", X3T51/80-50,\nXerox Corporation, Stamford, CT., October 1980.][[XEROX]]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoTRUNK-10 := &protos.IPProto{Name:"TRUNK-1", Description:"Trunk-1", Number:0x0, csvNum:"", Reference:"[Barry_Boehm]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoTRUNK-20 := &protos.IPProto{Name:"TRUNK-2", Description:"Trunk-2", Number:0x0, csvNum:"", Reference:"[Barry_Boehm]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoLEAF-10 := &protos.IPProto{Name:"LEAF-1", Description:"Leaf-1", Number:0x0, csvNum:"", Reference:"[Barry_Boehm]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoLEAF-20 := &protos.IPProto{Name:"LEAF-2", Description:"Leaf-2", Number:0x0, csvNum:"", Reference:"[Barry_Boehm]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoRDP0 := &protos.IPProto{Name:"RDP", Description:"Reliable Data Protocol", Number:0x0, csvNum:"", Reference:"[RFC908][Bob_Hinden]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIRTP0 := &protos.IPProto{Name:"IRTP", Description:"Internet Reliable Transaction", Number:0x0, csvNum:"", Reference:"[RFC938][Trudy_Miller]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoISO-TP40 := &protos.IPProto{Name:"ISO-TP4", Description:"ISO Transport Protocol Class 4", Number:0x0, csvNum:"", Reference:"[RFC905][<mystery contact>]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoNETBLT0 := &protos.IPProto{Name:"NETBLT", Description:"Bulk Data Transfer Protocol", Number:0x0, csvNum:"", Reference:"[RFC969][David_Clark]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMFE-NSP0 := &protos.IPProto{Name:"MFE-NSP", Description:"MFE Network Services Protocol", Number:0x0, csvNum:"", Reference:"[Shuttleworth, B., \"A Documentary of MFENet, a National\nComputer Network\", UCRL-52317, Lawrence Livermore Labs,\nLivermore, California, June 1977.][Barry_Howard]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMERIT-INP0 := &protos.IPProto{Name:"MERIT-INP", Description:"MERIT Internodal Protocol", Number:0x0, csvNum:"", Reference:"[Hans_Werner_Braun]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoDCCP0 := &protos.IPProto{Name:"DCCP", Description:"Datagram Congestion Control Protocol", Number:0x0, csvNum:"", Reference:"[RFC4340]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto3PC0 := &protos.IPProto{Name:"3PC", Description:"Third Party Connect Protocol", Number:0x0, csvNum:"", Reference:"[Stuart_A_Friedberg]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIDPR0 := &protos.IPProto{Name:"IDPR", Description:"Inter-Domain Policy Routing Protocol", Number:0x0, csvNum:"", Reference:"[Martha_Steenstrup]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoXTP0 := &protos.IPProto{Name:"XTP", Description:"XTP", Number:0x0, csvNum:"", Reference:"[Greg_Chesson]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoDDP0 := &protos.IPProto{Name:"DDP", Description:"Datagram Delivery Protocol", Number:0x0, csvNum:"", Reference:"[Wesley_Craig]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIDPR-CMTP0 := &protos.IPProto{Name:"IDPR-CMTP", Description:"IDPR Control Message Transport Proto", Number:0x0, csvNum:"", Reference:"[Martha_Steenstrup]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoTP++0 := &protos.IPProto{Name:"TP++", Description:"TP++ Transport Protocol", Number:0x0, csvNum:"", Reference:"[Dirk_Fromhein]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIL0 := &protos.IPProto{Name:"IL", Description:"IL Transport Protocol", Number:0x0, csvNum:"", Reference:"[Dave_Presotto]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPv60 := &protos.IPProto{Name:"IPv6", Description:"IPv6 encapsulation", Number:0x0, csvNum:"", Reference:"[RFC2473]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSDRP0 := &protos.IPProto{Name:"SDRP", Description:"Source Demand Routing Protocol", Number:0x0, csvNum:"", Reference:"[Deborah_Estrin]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPv6-Route0 := &protos.IPProto{Name:"IPv6-Route", Description:"Routing Header for IPv6", Number:0x0, csvNum:"", Reference:"[Steve_Deering]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPv6-Frag0 := &protos.IPProto{Name:"IPv6-Frag", Description:"Fragment Header for IPv6", Number:0x0, csvNum:"", Reference:"[Steve_Deering]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIDRP0 := &protos.IPProto{Name:"IDRP", Description:"Inter-Domain Routing Protocol", Number:0x0, csvNum:"", Reference:"[Sue_Hares]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoRSVP0 := &protos.IPProto{Name:"RSVP", Description:"Reservation Protocol", Number:0x0, csvNum:"", Reference:"[RFC2205][RFC3209][Bob_Braden]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoGRE0 := &protos.IPProto{Name:"GRE", Description:"Generic Routing Encapsulation", Number:0x0, csvNum:"", Reference:"[RFC2784][Tony_Li]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoDSR0 := &protos.IPProto{Name:"DSR", Description:"Dynamic Source Routing Protocol", Number:0x0, csvNum:"", Reference:"[RFC4728]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoBNA0 := &protos.IPProto{Name:"BNA", Description:"BNA", Number:0x0, csvNum:"", Reference:"[Gary Salamon]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoESP0 := &protos.IPProto{Name:"ESP", Description:"Encap Security Payload", Number:0x0, csvNum:"", Reference:"[RFC4303]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoAH0 := &protos.IPProto{Name:"AH", Description:"Authentication Header", Number:0x0, csvNum:"", Reference:"[RFC4302]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoI-NLSP0 := &protos.IPProto{Name:"I-NLSP", Description:"Integrated Net Layer Security TUBA", Number:0x0, csvNum:"", Reference:"[K_Robert_Glenn]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSWIPE (deprecated)0 := &protos.IPProto{Name:"SWIPE (deprecated)", Description:"IP with Encryption", Number:0x0, csvNum:"", Reference:"[John_Ioannidis]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoNARP0 := &protos.IPProto{Name:"NARP", Description:"NBMA Address Resolution Protocol", Number:0x0, csvNum:"", Reference:"[RFC1735]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMOBILE0 := &protos.IPProto{Name:"MOBILE", Description:"IP Mobility", Number:0x0, csvNum:"", Reference:"[Charlie_Perkins]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoTLSP0 := &protos.IPProto{Name:"TLSP", Description:"Transport Layer Security Protocol \nusing Kryptonet key management", Number:0x0, csvNum:"", Reference:"[Christer_Oberg]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSKIP0 := &protos.IPProto{Name:"SKIP", Description:"SKIP", Number:0x0, csvNum:"", Reference:"[Tom_Markson]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPv6-ICMP0 := &protos.IPProto{Name:"IPv6-ICMP", Description:"ICMP for IPv6", Number:0x0, csvNum:"", Reference:"[RFC8200]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPv6-NoNxt0 := &protos.IPProto{Name:"IPv6-NoNxt", Description:"No Next Header for IPv6", Number:0x0, csvNum:"", Reference:"[RFC8200]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPv6-Opts0 := &protos.IPProto{Name:"IPv6-Opts", Description:"Destination Options for IPv6", Number:0x0, csvNum:"", Reference:"[RFC8200]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"any host internal protocol", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCFTP0 := &protos.IPProto{Name:"CFTP", Description:"CFTP", Number:0x0, csvNum:"", Reference:"[Forsdick, H., \"CFTP\", Network Message, Bolt Beranek and\nNewman, January 1982.][Harry_Forsdick]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"any local network", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSAT-EXPAK0 := &protos.IPProto{Name:"SAT-EXPAK", Description:"SATNET and Backroom EXPAK", Number:0x0, csvNum:"", Reference:"[Steven_Blumenthal]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoKRYPTOLAN0 := &protos.IPProto{Name:"KRYPTOLAN", Description:"Kryptolan", Number:0x0, csvNum:"", Reference:"[Paul Liu]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoRVD0 := &protos.IPProto{Name:"RVD", Description:"MIT Remote Virtual Disk Protocol", Number:0x0, csvNum:"", Reference:"[Michael_Greenwald]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPPC0 := &protos.IPProto{Name:"IPPC", Description:"Internet Pluribus Packet Core", Number:0x0, csvNum:"", Reference:"[Steven_Blumenthal]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"any distributed file system", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSAT-MON0 := &protos.IPProto{Name:"SAT-MON", Description:"SATNET Monitoring", Number:0x0, csvNum:"", Reference:"[Steven_Blumenthal]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoVISA0 := &protos.IPProto{Name:"VISA", Description:"VISA Protocol", Number:0x0, csvNum:"", Reference:"[Gene_Tsudik]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPCV0 := &protos.IPProto{Name:"IPCV", Description:"Internet Packet Core Utility", Number:0x0, csvNum:"", Reference:"[Steven_Blumenthal]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCPNX0 := &protos.IPProto{Name:"CPNX", Description:"Computer Protocol Network Executive", Number:0x0, csvNum:"", Reference:"[David Mittnacht]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCPHB0 := &protos.IPProto{Name:"CPHB", Description:"Computer Protocol Heart Beat", Number:0x0, csvNum:"", Reference:"[David Mittnacht]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoWSN0 := &protos.IPProto{Name:"WSN", Description:"Wang Span Network", Number:0x0, csvNum:"", Reference:"[Victor Dafoulas]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPVP0 := &protos.IPProto{Name:"PVP", Description:"Packet Video Protocol", Number:0x0, csvNum:"", Reference:"[Steve_Casner]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoBR-SAT-MON0 := &protos.IPProto{Name:"BR-SAT-MON", Description:"Backroom SATNET Monitoring", Number:0x0, csvNum:"", Reference:"[Steven_Blumenthal]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSUN-ND0 := &protos.IPProto{Name:"SUN-ND", Description:"SUN ND PROTOCOL-Temporary", Number:0x0, csvNum:"", Reference:"[William_Melohn]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoWB-MON0 := &protos.IPProto{Name:"WB-MON", Description:"WIDEBAND Monitoring", Number:0x0, csvNum:"", Reference:"[Steven_Blumenthal]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoWB-EXPAK0 := &protos.IPProto{Name:"WB-EXPAK", Description:"WIDEBAND EXPAK", Number:0x0, csvNum:"", Reference:"[Steven_Blumenthal]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoISO-IP0 := &protos.IPProto{Name:"ISO-IP", Description:"ISO Internet Protocol", Number:0x0, csvNum:"", Reference:"[Marshall_T_Rose]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoVMTP0 := &protos.IPProto{Name:"VMTP", Description:"VMTP", Number:0x0, csvNum:"", Reference:"[Dave_Cheriton]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSECURE-VMTP0 := &protos.IPProto{Name:"SECURE-VMTP", Description:"SECURE-VMTP", Number:0x0, csvNum:"", Reference:"[Dave_Cheriton]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoVINES0 := &protos.IPProto{Name:"VINES", Description:"VINES", Number:0x0, csvNum:"", Reference:"[Brian Horn]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoTTP0 := &protos.IPProto{Name:"TTP", Description:"Transaction Transport Protocol", Number:0x0, csvNum:"", Reference:"[Jim_Stevens]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPTM0 := &protos.IPProto{Name:"IPTM", Description:"Internet Protocol Traffic Manager", Number:0x0, csvNum:"", Reference:"[Jim_Stevens]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoNSFNET-IGP0 := &protos.IPProto{Name:"NSFNET-IGP", Description:"NSFNET-IGP", Number:0x0, csvNum:"", Reference:"[Hans_Werner_Braun]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoDGP0 := &protos.IPProto{Name:"DGP", Description:"Dissimilar Gateway Protocol", Number:0x0, csvNum:"", Reference:"[M/A-COM Government Systems, \"Dissimilar Gateway Protocol\nSpecification, Draft Version\", Contract no. CS901145,\nNovember 16, 1987.][Mike_Little]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoTCF0 := &protos.IPProto{Name:"TCF", Description:"TCF", Number:0x0, csvNum:"", Reference:"[Guillermo_A_Loyola]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoEIGRP0 := &protos.IPProto{Name:"EIGRP", Description:"EIGRP", Number:0x0, csvNum:"", Reference:"[RFC7868]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoOSPFIGP0 := &protos.IPProto{Name:"OSPFIGP", Description:"OSPFIGP", Number:0x0, csvNum:"", Reference:"[RFC1583][RFC2328][RFC5340][John_Moy]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSprite-RPC0 := &protos.IPProto{Name:"Sprite-RPC", Description:"Sprite RPC Protocol", Number:0x0, csvNum:"", Reference:"[Welch, B., \"The Sprite Remote Procedure Call System\",\nTechnical Report, UCB/Computer Science Dept., 86/302,\nUniversity of California at Berkeley, June 1986.][Bruce Willins]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoLARP0 := &protos.IPProto{Name:"LARP", Description:"Locus Address Resolution Protocol", Number:0x0, csvNum:"", Reference:"[Brian Horn]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMTP0 := &protos.IPProto{Name:"MTP", Description:"Multicast Transport Protocol", Number:0x0, csvNum:"", Reference:"[Susie_Armstrong]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoAX.250 := &protos.IPProto{Name:"AX.25", Description:"AX.25 Frames", Number:0x0, csvNum:"", Reference:"[Brian_Kantor]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPIP0 := &protos.IPProto{Name:"IPIP", Description:"IP-within-IP Encapsulation Protocol", Number:0x0, csvNum:"", Reference:"[John_Ioannidis]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMICP (deprecated)0 := &protos.IPProto{Name:"MICP (deprecated)", Description:"Mobile Internetworking Control Pro.", Number:0x0, csvNum:"", Reference:"[John_Ioannidis]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSCC-SP0 := &protos.IPProto{Name:"SCC-SP", Description:"Semaphore Communications Sec. Pro.", Number:0x0, csvNum:"", Reference:"[Howard_Hart]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoETHERIP0 := &protos.IPProto{Name:"ETHERIP", Description:"Ethernet-within-IP Encapsulation", Number:0x0, csvNum:"", Reference:"[RFC3378]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoENCAP0 := &protos.IPProto{Name:"ENCAP", Description:"Encapsulation Header", Number:0x0, csvNum:"", Reference:"[RFC1241][Robert_Woodburn]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"any private encryption scheme", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoGMTP0 := &protos.IPProto{Name:"GMTP", Description:"GMTP", Number:0x0, csvNum:"", Reference:"[[RXB5]]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIFMP0 := &protos.IPProto{Name:"IFMP", Description:"Ipsilon Flow Management Protocol", Number:0x0, csvNum:"", Reference:"[Bob_Hinden][November 1995, 1997.]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPNNI0 := &protos.IPProto{Name:"PNNI", Description:"PNNI over IP", Number:0x0, csvNum:"", Reference:"[Ross_Callon]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPIM0 := &protos.IPProto{Name:"PIM", Description:"Protocol Independent Multicast", Number:0x0, csvNum:"", Reference:"[RFC7761][Dino_Farinacci]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoARIS0 := &protos.IPProto{Name:"ARIS", Description:"ARIS", Number:0x0, csvNum:"", Reference:"[Nancy_Feldman]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSCPS0 := &protos.IPProto{Name:"SCPS", Description:"SCPS", Number:0x0, csvNum:"", Reference:"[Robert_Durst]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoQNX0 := &protos.IPProto{Name:"QNX", Description:"QNX", Number:0x0, csvNum:"", Reference:"[Michael_Hunter]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoA/N0 := &protos.IPProto{Name:"A/N", Description:"Active Networks", Number:0x0, csvNum:"", Reference:"[Bob_Braden]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPComp0 := &protos.IPProto{Name:"IPComp", Description:"IP Payload Compression Protocol", Number:0x0, csvNum:"", Reference:"[RFC2393]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSNP0 := &protos.IPProto{Name:"SNP", Description:"Sitara Networks Protocol", Number:0x0, csvNum:"", Reference:"[Manickam_R_Sridhar]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCompaq-Peer0 := &protos.IPProto{Name:"Compaq-Peer", Description:"Compaq Peer Protocol", Number:0x0, csvNum:"", Reference:"[Victor_Volpe]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPX-in-IP0 := &protos.IPProto{Name:"IPX-in-IP", Description:"IPX in IP", Number:0x0, csvNum:"", Reference:"[CJ_Lee]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoVRRP0 := &protos.IPProto{Name:"VRRP", Description:"Virtual Router Redundancy Protocol", Number:0x0, csvNum:"", Reference:"[RFC5798]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPGM0 := &protos.IPProto{Name:"PGM", Description:"PGM Reliable Transport Protocol", Number:0x0, csvNum:"", Reference:"[Tony_Speakman]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"any 0-hop protocol", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoL2TP0 := &protos.IPProto{Name:"L2TP", Description:"Layer Two Tunneling Protocol", Number:0x0, csvNum:"", Reference:"[RFC3931][Bernard_Aboba]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoDDX0 := &protos.IPProto{Name:"DDX", Description:"D-II Data Exchange (DDX)", Number:0x0, csvNum:"", Reference:"[John_Worley]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIATP0 := &protos.IPProto{Name:"IATP", Description:"Interactive Agent Transfer Protocol", Number:0x0, csvNum:"", Reference:"[John_Murphy]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSTP0 := &protos.IPProto{Name:"STP", Description:"Schedule Transfer Protocol", Number:0x0, csvNum:"", Reference:"[Jean_Michel_Pittet]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSRP0 := &protos.IPProto{Name:"SRP", Description:"SpectraLink Radio Protocol", Number:0x0, csvNum:"", Reference:"[Mark_Hamilton]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoUTI0 := &protos.IPProto{Name:"UTI", Description:"UTI", Number:0x0, csvNum:"", Reference:"[Peter_Lothberg]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSMP0 := &protos.IPProto{Name:"SMP", Description:"Simple Message Protocol", Number:0x0, csvNum:"", Reference:"[Leif_Ekblad]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSM (deprecated)0 := &protos.IPProto{Name:"SM (deprecated)", Description:"Simple Multicast Protocol", Number:0x0, csvNum:"", Reference:"[Jon_Crowcroft][draft-perlman-simple-multicast]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPTP0 := &protos.IPProto{Name:"PTP", Description:"Performance Transparency Protocol", Number:0x0, csvNum:"", Reference:"[Michael_Welzl]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoISIS over IPv40 := &protos.IPProto{Name:"ISIS over IPv4", Description:"", Number:0x0, csvNum:"", Reference:"[Tony_Przygienda]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoFIRE0 := &protos.IPProto{Name:"FIRE", Description:"", Number:0x0, csvNum:"", Reference:"[Criag_Partridge]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCRTP0 := &protos.IPProto{Name:"CRTP", Description:"Combat Radio Transport Protocol", Number:0x0, csvNum:"", Reference:"[Robert_Sautter]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoCRUDP0 := &protos.IPProto{Name:"CRUDP", Description:"Combat Radio User Datagram", Number:0x0, csvNum:"", Reference:"[Robert_Sautter]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSSCOPMCE0 := &protos.IPProto{Name:"SSCOPMCE", Description:"", Number:0x0, csvNum:"", Reference:"[Kurt_Waber]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoIPLT0 := &protos.IPProto{Name:"IPLT", Description:"", Number:0x0, csvNum:"", Reference:"[[Hollbach]]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSPS0 := &protos.IPProto{Name:"SPS", Description:"Secure Packet Shield", Number:0x0, csvNum:"", Reference:"[Bill_McIntosh]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoPIPE0 := &protos.IPProto{Name:"PIPE", Description:"Private IP Encapsulation within IP", Number:0x0, csvNum:"", Reference:"[Bernhard_Petri]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoSCTP0 := &protos.IPProto{Name:"SCTP", Description:"Stream Control Transmission Protocol", Number:0x0, csvNum:"", Reference:"[Randall_R_Stewart]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoFC0 := &protos.IPProto{Name:"FC", Description:"Fibre Channel", Number:0x0, csvNum:"", Reference:"[Murali_Rajagopal][RFC6172]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoRSVP-E2E-IGNORE0 := &protos.IPProto{Name:"RSVP-E2E-IGNORE", Description:"", Number:0x0, csvNum:"", Reference:"[RFC3175]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMobility Header0 := &protos.IPProto{Name:"Mobility Header", Description:"", Number:0x0, csvNum:"", Reference:"[RFC6275]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoUDPLite0 := &protos.IPProto{Name:"UDPLite", Description:"", Number:0x0, csvNum:"", Reference:"[RFC3828]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoMPLS-in-IP0 := &protos.IPProto{Name:"MPLS-in-IP", Description:"", Number:0x0, csvNum:"", Reference:"[RFC4023]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtomanet0 := &protos.IPProto{Name:"manet", Description:"MANET Protocols", Number:0x0, csvNum:"", Reference:"[RFC5498]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoHIP0 := &protos.IPProto{Name:"HIP", Description:"Host Identity Protocol", Number:0x0, csvNum:"", Reference:"[RFC7401]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoShim60 := &protos.IPProto{Name:"Shim6", Description:"Shim6 Protocol", Number:0x0, csvNum:"", Reference:"[RFC5533]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoWESP0 := &protos.IPProto{Name:"WESP", Description:"Wrapped Encapsulating Security Payload", Number:0x0, csvNum:"", Reference:"[RFC5840]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoROHC0 := &protos.IPProto{Name:"ROHC", Description:"Robust Header Compression", Number:0x0, csvNum:"", Reference:"[RFC5858]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoEthernet0 := &protos.IPProto{Name:"Ethernet", Description:"Ethernet", Number:0x0, csvNum:"", Reference:"[RFC-ietf-spring-srv6-network-programming-28]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"Unassigned", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"Use for experimentation and testing", Number:0x0, csvNum:"", Reference:"[RFC3692]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProto0 := &protos.IPProto{Name:"", Description:"Use for experimentation and testing", Number:0x0, csvNum:"", Reference:"[RFC3692]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
RegisteredProtoReserved0 := &protos.IPProto{Name:"Reserved", Description:"", Number:0x0, csvNum:"", Reference:"[Internet_Assigned_Numbers_Authority]", Reserved:false, IP6ExtensionHeader:false, ip6ext:false}
|
||||
)
|
||||
|
||||
var (
|
||||
AllRegisteredProtos []*IPProto = {
|
||||
RegisteredProtoHOPOPT0,
|
||||
RegisteredProtoICMP0,
|
||||
RegisteredProtoIGMP0,
|
||||
RegisteredProtoGGP0,
|
||||
RegisteredProtoIPv40,
|
||||
RegisteredProtoST0,
|
||||
RegisteredProtoTCP0,
|
||||
RegisteredProtoCBT0,
|
||||
RegisteredProtoEGP0,
|
||||
RegisteredProtoIGP0,
|
||||
RegisteredProtoBBN-RCC-MON0,
|
||||
RegisteredProtoNVP-II0,
|
||||
RegisteredProtoPUP0,
|
||||
RegisteredProtoARGUS (deprecated)0,
|
||||
RegisteredProtoEMCON0,
|
||||
RegisteredProtoXNET0,
|
||||
RegisteredProtoCHAOS0,
|
||||
RegisteredProtoUDP0,
|
||||
RegisteredProtoMUX0,
|
||||
RegisteredProtoDCN-MEAS0,
|
||||
RegisteredProtoHMP0,
|
||||
RegisteredProtoPRM0,
|
||||
RegisteredProtoXNS-IDP0,
|
||||
RegisteredProtoTRUNK-10,
|
||||
RegisteredProtoTRUNK-20,
|
||||
RegisteredProtoLEAF-10,
|
||||
RegisteredProtoLEAF-20,
|
||||
RegisteredProtoRDP0,
|
||||
RegisteredProtoIRTP0,
|
||||
RegisteredProtoISO-TP40,
|
||||
RegisteredProtoNETBLT0,
|
||||
RegisteredProtoMFE-NSP0,
|
||||
RegisteredProtoMERIT-INP0,
|
||||
RegisteredProtoDCCP0,
|
||||
RegisteredProto3PC0,
|
||||
RegisteredProtoIDPR0,
|
||||
RegisteredProtoXTP0,
|
||||
RegisteredProtoDDP0,
|
||||
RegisteredProtoIDPR-CMTP0,
|
||||
RegisteredProtoTP++0,
|
||||
RegisteredProtoIL0,
|
||||
RegisteredProtoIPv60,
|
||||
RegisteredProtoSDRP0,
|
||||
RegisteredProtoIPv6-Route0,
|
||||
RegisteredProtoIPv6-Frag0,
|
||||
RegisteredProtoIDRP0,
|
||||
RegisteredProtoRSVP0,
|
||||
RegisteredProtoGRE0,
|
||||
RegisteredProtoDSR0,
|
||||
RegisteredProtoBNA0,
|
||||
RegisteredProtoESP0,
|
||||
RegisteredProtoAH0,
|
||||
RegisteredProtoI-NLSP0,
|
||||
RegisteredProtoSWIPE (deprecated)0,
|
||||
RegisteredProtoNARP0,
|
||||
RegisteredProtoMOBILE0,
|
||||
RegisteredProtoTLSP0,
|
||||
RegisteredProtoSKIP0,
|
||||
RegisteredProtoIPv6-ICMP0,
|
||||
RegisteredProtoIPv6-NoNxt0,
|
||||
RegisteredProtoIPv6-Opts0,
|
||||
RegisteredProto0,
|
||||
RegisteredProtoCFTP0,
|
||||
RegisteredProto0,
|
||||
RegisteredProtoSAT-EXPAK0,
|
||||
RegisteredProtoKRYPTOLAN0,
|
||||
RegisteredProtoRVD0,
|
||||
RegisteredProtoIPPC0,
|
||||
RegisteredProto0,
|
||||
RegisteredProtoSAT-MON0,
|
||||
RegisteredProtoVISA0,
|
||||
RegisteredProtoIPCV0,
|
||||
RegisteredProtoCPNX0,
|
||||
RegisteredProtoCPHB0,
|
||||
RegisteredProtoWSN0,
|
||||
RegisteredProtoPVP0,
|
||||
RegisteredProtoBR-SAT-MON0,
|
||||
RegisteredProtoSUN-ND0,
|
||||
RegisteredProtoWB-MON0,
|
||||
RegisteredProtoWB-EXPAK0,
|
||||
RegisteredProtoISO-IP0,
|
||||
RegisteredProtoVMTP0,
|
||||
RegisteredProtoSECURE-VMTP0,
|
||||
RegisteredProtoVINES0,
|
||||
RegisteredProtoTTP0,
|
||||
RegisteredProtoIPTM0,
|
||||
RegisteredProtoNSFNET-IGP0,
|
||||
RegisteredProtoDGP0,
|
||||
RegisteredProtoTCF0,
|
||||
RegisteredProtoEIGRP0,
|
||||
RegisteredProtoOSPFIGP0,
|
||||
RegisteredProtoSprite-RPC0,
|
||||
RegisteredProtoLARP0,
|
||||
RegisteredProtoMTP0,
|
||||
RegisteredProtoAX.250,
|
||||
RegisteredProtoIPIP0,
|
||||
RegisteredProtoMICP (deprecated)0,
|
||||
RegisteredProtoSCC-SP0,
|
||||
RegisteredProtoETHERIP0,
|
||||
RegisteredProtoENCAP0,
|
||||
RegisteredProto0,
|
||||
RegisteredProtoGMTP0,
|
||||
RegisteredProtoIFMP0,
|
||||
RegisteredProtoPNNI0,
|
||||
RegisteredProtoPIM0,
|
||||
RegisteredProtoARIS0,
|
||||
RegisteredProtoSCPS0,
|
||||
RegisteredProtoQNX0,
|
||||
RegisteredProtoA/N0,
|
||||
RegisteredProtoIPComp0,
|
||||
RegisteredProtoSNP0,
|
||||
RegisteredProtoCompaq-Peer0,
|
||||
RegisteredProtoIPX-in-IP0,
|
||||
RegisteredProtoVRRP0,
|
||||
RegisteredProtoPGM0,
|
||||
RegisteredProto0,
|
||||
RegisteredProtoL2TP0,
|
||||
RegisteredProtoDDX0,
|
||||
RegisteredProtoIATP0,
|
||||
RegisteredProtoSTP0,
|
||||
RegisteredProtoSRP0,
|
||||
RegisteredProtoUTI0,
|
||||
RegisteredProtoSMP0,
|
||||
RegisteredProtoSM (deprecated)0,
|
||||
RegisteredProtoPTP0,
|
||||
RegisteredProtoISIS over IPv40,
|
||||
RegisteredProtoFIRE0,
|
||||
RegisteredProtoCRTP0,
|
||||
RegisteredProtoCRUDP0,
|
||||
RegisteredProtoSSCOPMCE0,
|
||||
RegisteredProtoIPLT0,
|
||||
RegisteredProtoSPS0,
|
||||
RegisteredProtoPIPE0,
|
||||
RegisteredProtoSCTP0,
|
||||
RegisteredProtoFC0,
|
||||
RegisteredProtoRSVP-E2E-IGNORE0,
|
||||
RegisteredProtoMobility Header0,
|
||||
RegisteredProtoUDPLite0,
|
||||
RegisteredProtoMPLS-in-IP0,
|
||||
RegisteredProtomanet0,
|
||||
RegisteredProtoHIP0,
|
||||
RegisteredProtoShim60,
|
||||
RegisteredProtoWESP0,
|
||||
RegisteredProtoROHC0,
|
||||
RegisteredProtoEthernet0,
|
||||
RegisteredProto0,
|
||||
RegisteredProto0,
|
||||
RegisteredProto0,
|
||||
RegisteredProtoReserved0,
|
||||
)
|
||||
|
||||
)
|
1
net/protos/funcs.go
Normal file
1
net/protos/funcs.go
Normal file
@ -0,0 +1 @@
|
||||
package protos
|
10
net/protos/types.go
Normal file
10
net/protos/types.go
Normal file
@ -0,0 +1,10 @@
|
||||
package protos
|
||||
|
||||
type IPProto struct {
|
||||
Name string `csv:"Keyword"`
|
||||
Description string `csv:"Protocol"`
|
||||
Number uint8 `csv:"-"`
|
||||
Reference string `csv:"Reference"`
|
||||
Reserved bool `csv:"-"`
|
||||
IP6ExtensionHeader bool `csv:"-"`
|
||||
}
|
Loading…
Reference in New Issue
Block a user