wf

package module
v0.0.0-...-388cf6f Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2024 License: BSD-3-Clause Imports: 12 Imported by: 0

README

wf

What

This is a package for controlling the Windows Filtering Platform (WFP), also known as the Windows firewall.

See its docs: https://godoc.org/inet.af/wf

Maturity

This package is under active development. While Tailscale uses it in production, API stability is not guaranteed, and some functionality is missing.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	FieldALEAppID                        = FieldID{0xd78e1e87, 0x8644, 0x4ea5, [8]byte{0x94, 0x37, 0xd8, 0x09, 0xec, 0xef, 0xc9, 0x71}}
	FieldALEEffectiveName                = FieldID{0xb1277b9a, 0xb781, 0x40fc, [8]byte{0x96, 0x71, 0xe5, 0xf1, 0xb9, 0x89, 0xf3, 0x4e}}
	FieldALENAPContext                   = FieldID{0x46275a9d, 0xc03f, 0x4d77, [8]byte{0xb7, 0x84, 0x1c, 0x57, 0xf4, 0xd0, 0x27, 0x53}}
	FieldALEOriginalAppID                = FieldID{0x0e6cd086, 0xe1fb, 0x4212, [8]byte{0x84, 0x2f, 0x8a, 0x9f, 0x99, 0x3f, 0xb3, 0xf6}}
	FieldALEPackageID                    = FieldID{0x71bc78fa, 0xf17c, 0x4997, [8]byte{0xa6, 0x2, 0x6a, 0xbb, 0x26, 0x1f, 0x35, 0x1c}}
	FieldALEPromiscuousMode              = FieldID{0x1c974776, 0x7182, 0x46e9, [8]byte{0xaf, 0xd3, 0xb0, 0x29, 0x10, 0xe3, 0x03, 0x34}}
	FieldALEReauthReason                 = FieldID{0xb482d227, 0x1979, 0x4a98, [8]byte{0x80, 0x44, 0x18, 0xbb, 0xe6, 0x23, 0x75, 0x42}}
	FieldALERemoteMachineID              = FieldID{0x1aa47f51, 0x7f93, 0x4508, [8]byte{0xa2, 0x71, 0x81, 0xab, 0xb0, 0x0c, 0x9c, 0xab}}
	FieldALERemoteUserID                 = FieldID{0xf63073b7, 0x0189, 0x4ab0, [8]byte{0x95, 0xa4, 0x61, 0x23, 0xcb, 0xfa, 0xb8, 0x62}}
	FieldALESecurityAttributeFqbnValue   = FieldID{0x37a57699, 0x5883, 0x4963, [8]byte{0x92, 0xb8, 0x3e, 0x70, 0x46, 0x88, 0xb0, 0xad}}
	FieldALESioFirewallSystemPort        = FieldID{0xb9f4e088, 0xcb98, 0x4efb, [8]byte{0xa2, 0xc7, 0xad, 0x07, 0x33, 0x26, 0x43, 0xdb}}
	FieldALEUserID                       = FieldID{0xaf043a0a, 0xb34d, 0x4f86, [8]byte{0x97, 0x9c, 0xc9, 0x03, 0x71, 0xaf, 0x6e, 0x66}}
	FieldArrivalInterfaceIndex           = FieldID{0xcc088db3, 0x1792, 0x4a71, [8]byte{0xb0, 0xf9, 0x03, 0x7d, 0x21, 0xcd, 0x82, 0x8b}}
	FieldArrivalInterfaceProfileID       = FieldID{0xcdfe6aab, 0xc083, 0x4142, [8]byte{0x86, 0x79, 0xc0, 0x8f, 0x95, 0x32, 0x9c, 0x61}}
	FieldArrivalInterfaceType            = FieldID{0x89f990de, 0xe798, 0x4e6d, [8]byte{0xab, 0x76, 0x7c, 0x95, 0x58, 0x29, 0x2e, 0x6f}}
	FieldArrivalTunnelType               = FieldID{0x511166dc, 0x7a8c, 0x4aa7, [8]byte{0xb5, 0x33, 0x95, 0xab, 0x59, 0xfb, 0x03, 0x40}}
	FieldAuthenticationType              = FieldID{0xeb458cd5, 0xda7b, 0x4ef9, [8]byte{0x8d, 0x43, 0x7b, 0x0a, 0x84, 0x03, 0x32, 0xf2}}
	FieldBitmapIPLocalAddress            = FieldID{0x16ebc3df, 0x957a, 0x452e, [8]byte{0xa1, 0xfc, 0x3d, 0x2f, 0xf6, 0xa7, 0x30, 0xba}}
	FieldBitmapIPLocalPort               = FieldID{0x9f90a920, 0xc3b5, 0x4569, [8]byte{0xba, 0x31, 0x8b, 0xd3, 0x91, 0xd, 0xc6, 0x56}}
	FieldBitmapIPRemoteAddress           = FieldID{0x33f00e25, 0x8eec, 0x4531, [8]byte{0xa0, 0x5, 0x41, 0xb9, 0x11, 0xf6, 0x24, 0x52}}
	FieldBitmapIPRemotePort              = FieldID{0x2663d549, 0xaaf2, 0x46a2, [8]byte{0x86, 0x66, 0x1e, 0x76, 0x67, 0xf8, 0x69, 0x85}}
	FieldBitmapIndexKey                  = FieldID{0xf36514c, 0x3226, 0x4a81, [8]byte{0xa2, 0x14, 0x2d, 0x51, 0x8b, 0x4, 0xd0, 0x8a}}
	FieldClientCertKeyLength             = FieldID{0xa3ec00c7, 0x05f4, 0x4df7, [8]byte{0x91, 0xf2, 0x5f, 0x60, 0xd9, 0x1f, 0xf4, 0x43}}
	FieldClientCertOid                   = FieldID{0xc491ad5e, 0xf882, 0x4283, [8]byte{0xb9, 0x16, 0x43, 0x6b, 0x10, 0x3f, 0xf4, 0xad}}
	FieldClientToken                     = FieldID{0xc228fc1e, 0x403a, 0x4478, [8]byte{0xbe, 0x05, 0xc9, 0xba, 0xa4, 0xc0, 0x5a, 0xce}}
	FieldCompartmentID                   = FieldID{0x35a791ab, 0x4ac, 0x4ff2, [8]byte{0xa6, 0xbb, 0xda, 0x6c, 0xfa, 0xc7, 0x18, 0x6}}
	FieldCurrentProfileID                = FieldID{0xab3033c9, 0xc0e3, 0x4759, [8]byte{0x93, 0x7d, 0x57, 0x58, 0xc6, 0x5d, 0x4a, 0xe3}}
	FieldDCOMAppID                       = FieldID{0xff2e7b4d, 0x3112, 0x4770, [8]byte{0xb6, 0x36, 0x4d, 0x24, 0xae, 0x3a, 0x6a, 0xf2}}
	FieldDestinationInterfaceIndex       = FieldID{0x35cf6522, 0x4139, 0x45ee, [8]byte{0xa0, 0xd5, 0x67, 0xb8, 0x09, 0x49, 0xd8, 0x79}}
	FieldDestinationSubInterfaceIndex    = FieldID{0x2b7d4399, 0xd4c7, 0x4738, [8]byte{0xa2, 0xf5, 0xe9, 0x94, 0xb4, 0x3d, 0xa3, 0x88}}
	FieldDirection                       = FieldID{0x8784c146, 0xca97, 0x44d6, [8]byte{0x9f, 0xd1, 0x19, 0xfb, 0x18, 0x40, 0xcb, 0xf7}}
	FieldEmbeddedLocalAddressType        = FieldID{0x4672a468, 0x8a0a, 0x4202, [8]byte{0xab, 0xb4, 0x84, 0x9e, 0x92, 0xe6, 0x68, 0x09}}
	FieldEmbeddedLocalPort               = FieldID{0xbfca394d, 0xacdb, 0x484e, [8]byte{0xb8, 0xe6, 0x2a, 0xff, 0x79, 0x75, 0x73, 0x45}}
	FieldEmbeddedProtocol                = FieldID{0x07784107, 0xa29e, 0x4c7b, [8]byte{0x9e, 0xc7, 0x29, 0xc4, 0x4a, 0xfa, 0xfd, 0xbc}}
	FieldEmbeddedRemoteAddress           = FieldID{0x77ee4b39, 0x3273, 0x4671, [8]byte{0xb6, 0x3b, 0xab, 0x6f, 0xeb, 0x66, 0xee, 0xb6}}
	FieldEmbeddedRemotePort              = FieldID{0xcae4d6a1, 0x2968, 0x40ed, [8]byte{0xa4, 0xce, 0x54, 0x71, 0x60, 0xdd, 0xa8, 0x8d}}
	FieldEtherType                       = FieldID{0xfd08948d, 0xa219, 0x4d52, [8]byte{0xbb, 0x98, 0x1a, 0x55, 0x40, 0xee, 0x7b, 0x4e}}
	FieldFlags                           = FieldID{0x632ce23b, 0x5167, 0x435c, [8]byte{0x86, 0xd7, 0xe9, 0x03, 0x68, 0x4a, 0xa8, 0x0c}}
	FieldIPArrivalInterface              = FieldID{0x618a9b6d, 0x386b, 0x4136, [8]byte{0xad, 0x6e, 0xb5, 0x15, 0x87, 0xcf, 0xb1, 0xcd}}
	FieldIPDestinationAddress            = FieldID{0x2d79133b, 0xb390, 0x45c6, [8]byte{0x86, 0x99, 0xac, 0xac, 0xea, 0xaf, 0xed, 0x33}}
	FieldIPDestinationAddressType        = FieldID{0x1ec1b7c9, 0x4eea, 0x4f5e, [8]byte{0xb9, 0xef, 0x76, 0xbe, 0xaa, 0xaf, 0x17, 0xee}}
	FieldIPDestinationPort               = FieldID{0xce6def45, 0x60fb, 0x4a7b, [8]byte{0xa3, 0x04, 0xaf, 0x30, 0xa1, 0x17, 0x00, 0x0e}}
	FieldIPForwardInterface              = FieldID{0x1076b8a5, 0x6323, 0x4c5e, [8]byte{0x98, 0x10, 0xe8, 0xd3, 0xfc, 0x9e, 0x61, 0x36}}
	FieldIPLocalAddress                  = FieldID{0xd9ee00de, 0xc1ef, 0x4617, [8]byte{0xbf, 0xe3, 0xff, 0xd8, 0xf5, 0xa0, 0x89, 0x57}}
	FieldIPLocalAddressType              = FieldID{0x6ec7f6c4, 0x376b, 0x45d7, [8]byte{0x9e, 0x9c, 0xd3, 0x37, 0xce, 0xdc, 0xd2, 0x37}}
	FieldIPLocalAddressV4                = FieldID{0x03a629cb, 0x6e52, 0x49f8, [8]byte{0x9c, 0x41, 0x57, 0x09, 0x63, 0x3c, 0x09, 0xcf}}
	FieldIPLocalAddressV6                = FieldID{0x2381be84, 0x7524, 0x45b3, [8]byte{0xa0, 0x5b, 0x1e, 0x63, 0x7d, 0x9c, 0x7a, 0x6a}}
	FieldIPLocalInterface                = FieldID{0x4cd62a49, 0x59c3, 0x4969, [8]byte{0xb7, 0xf3, 0xbd, 0xa5, 0xd3, 0x28, 0x90, 0xa4}}
	FieldIPLocalPort                     = FieldID{0x0c1ba1af, 0x5765, 0x453f, [8]byte{0xaf, 0x22, 0xa8, 0xf7, 0x91, 0xac, 0x77, 0x5b}}
	FieldIPNexthopAddress                = FieldID{0xeabe448a, 0xa711, 0x4d64, [8]byte{0x85, 0xb7, 0x3f, 0x76, 0xb6, 0x52, 0x99, 0xc7}}
	FieldIPNexthopInterface              = FieldID{0x93ae8f5b, 0x7f6f, 0x4719, [8]byte{0x98, 0xc8, 0x14, 0xe9, 0x74, 0x29, 0xef, 0x04}}
	FieldIPPhysicalArrivalInterface      = FieldID{0xda50d5c8, 0xfa0d, 0x4c89, [8]byte{0xb0, 0x32, 0x6e, 0x62, 0x13, 0x6d, 0x1e, 0x96}}
	FieldIPPhysicalNexthopInterface      = FieldID{0xf09bd5ce, 0x5150, 0x48be, [8]byte{0xb0, 0x98, 0xc2, 0x51, 0x52, 0xfb, 0x1f, 0x92}}
	FieldIPProtocol                      = FieldID{0x3971ef2b, 0x623e, 0x4f9a, [8]byte{0x8c, 0xb1, 0x6e, 0x79, 0xb8, 0x06, 0xb9, 0xa7}}
	FieldIPRemoteAddress                 = FieldID{0xb235ae9a, 0x1d64, 0x49b8, [8]byte{0xa4, 0x4c, 0x5f, 0xf3, 0xd9, 0x09, 0x50, 0x45}}
	FieldIPRemoteAddressV4               = FieldID{0x1febb610, 0x3bcc, 0x45e1, [8]byte{0xbc, 0x36, 0x2e, 0x06, 0x7e, 0x2c, 0xb1, 0x86}}
	FieldIPRemoteAddressV6               = FieldID{0x246e1d8c, 0x8bee, 0x4018, [8]byte{0x9b, 0x98, 0x31, 0xd4, 0x58, 0x2f, 0x33, 0x61}}
	FieldIPRemotePort                    = FieldID{0xc35a604d, 0xd22b, 0x4e1a, [8]byte{0x91, 0xb4, 0x68, 0xf6, 0x74, 0xee, 0x67, 0x4b}}
	FieldIPSecPolicyKey                  = FieldID{0xad37dee3, 0x722f, 0x45cc, [8]byte{0xa4, 0xe3, 0x06, 0x80, 0x48, 0x12, 0x44, 0x52}}
	FieldIPSecSecurityRealmID            = FieldID{0x37a57700, 0x5884, 0x4964, [8]byte{0x92, 0xb8, 0x3e, 0x70, 0x46, 0x88, 0xb0, 0xad}}
	FieldIPSourceAddress                 = FieldID{0xae96897e, 0x2e94, 0x4bc9, [8]byte{0xb3, 0x13, 0xb2, 0x7e, 0xe8, 0x0e, 0x57, 0x4d}}
	FieldIPSourcePort                    = FieldID{0xa6afef91, 0x3df4, 0x4730, [8]byte{0xa2, 0x14, 0xf5, 0x42, 0x6a, 0xeb, 0xf8, 0x21}}
	FieldImageName                       = FieldID{0xd024de4d, 0xdeaa, 0x4317, [8]byte{0x9c, 0x85, 0xe4, 0x0e, 0xf6, 0xe1, 0x40, 0xc3}}
	FieldInterfaceIndex                  = FieldID{0x667fd755, 0xd695, 0x434a, [8]byte{0x8a, 0xf5, 0xd3, 0x83, 0x5a, 0x12, 0x59, 0xbc}}
	FieldInterfaceMACAddress             = FieldID{0xf6e63dce, 0x1f4b, 0x4c6b, [8]byte{0xb6, 0xef, 0x11, 0x65, 0xe7, 0x1f, 0x8e, 0xe7}}
	FieldInterfaceQuarantineEpoch        = FieldID{0xcce68d5e, 0x053b, 0x43a8, [8]byte{0x9a, 0x6f, 0x33, 0x38, 0x4c, 0x28, 0xe4, 0xf6}}
	FieldInterfaceType                   = FieldID{0xdaf8cd14, 0xe09e, 0x4c93, [8]byte{0xa5, 0xae, 0xc5, 0xc1, 0x3b, 0x73, 0xff, 0xca}}
	FieldKMAuthNAPContext                = FieldID{0x35d0ea0e, 0x15ca, 0x492b, [8]byte{0x90, 0x0e, 0x97, 0xfd, 0x46, 0x35, 0x2c, 0xce}}
	FieldKMMode                          = FieldID{0xfeef4582, 0xef8f, 0x4f7b, [8]byte{0x85, 0x8b, 0x90, 0x77, 0xd1, 0x22, 0xde, 0x47}}
	FieldKMType                          = FieldID{0xff0f5f49, 0x0ceb, 0x481b, [8]byte{0x86, 0x38, 0x14, 0x79, 0x79, 0x1f, 0x3f, 0x2c}}
	FieldL2Flags                         = FieldID{0x7bc43cbf, 0x37ba, 0x45f1, [8]byte{0xb7, 0x4a, 0x82, 0xff, 0x51, 0x8e, 0xeb, 0x10}}
	FieldLocalInterfaceProfileID         = FieldID{0x4ebf7562, 0x9f18, 0x4d06, [8]byte{0x99, 0x41, 0xa7, 0xa6, 0x25, 0x74, 0x4d, 0x71}}
	FieldMACDestinationAddress           = FieldID{0x04ea2a93, 0x858c, 0x4027, [8]byte{0xb6, 0x13, 0xb4, 0x31, 0x80, 0xc7, 0x85, 0x9e}}
	FieldMACDestinationAddressType       = FieldID{0xae052932, 0xef42, 0x4e99, [8]byte{0xb1, 0x29, 0xf3, 0xb3, 0x13, 0x9e, 0x34, 0xf7}}
	FieldMACLocalAddress                 = FieldID{0xd999e981, 0x7948, 0x4c83, [8]byte{0xb7, 0x42, 0xc8, 0x4e, 0x3b, 0x67, 0x8f, 0x8f}}
	FieldMACLocalAddressType             = FieldID{0xcc31355c, 0x3073, 0x4ffb, [8]byte{0xa1, 0x4f, 0x79, 0x41, 0x5c, 0xb1, 0xea, 0xd1}}
	FieldMACRemoteAddress                = FieldID{0x408f2ed4, 0x3a70, 0x4b4d, [8]byte{0x92, 0xa6, 0x41, 0x5a, 0xc2, 0x0e, 0x2f, 0x12}}
	FieldMACRemoteAddressType            = FieldID{0x027fedb4, 0xf1c1, 0x4030, [8]byte{0xb5, 0x64, 0xee, 0x77, 0x7f, 0xd8, 0x67, 0xea}}
	FieldMACSourceAddress                = FieldID{0x7b795451, 0xf1f6, 0x4d05, [8]byte{0xb7, 0xcb, 0x21, 0x77, 0x9d, 0x80, 0x23, 0x36}}
	FieldMACSourceAddressType            = FieldID{0x5c1b72e4, 0x299e, 0x4437, [8]byte{0xa2, 0x98, 0xbc, 0x3f, 0x01, 0x4b, 0x3d, 0xc2}}
	FieldNdisMediaType                   = FieldID{0xcb31cef1, 0x791d, 0x473b, [8]byte{0x89, 0xd1, 0x61, 0xc5, 0x98, 0x43, 0x04, 0xa0}}
	FieldNdisPhysicalMediaType           = FieldID{0x34c79823, 0xc229, 0x44f2, [8]byte{0xb8, 0x3c, 0x74, 0x02, 0x08, 0x82, 0xae, 0x77}}
	FieldNdisPort                        = FieldID{0xdb7bb42b, 0x2dac, 0x4cd4, [8]byte{0xa5, 0x9a, 0xe0, 0xbd, 0xce, 0x1e, 0x68, 0x34}}
	FieldNetEventType                    = FieldID{0x206e9996, 0x490e, 0x40cf, [8]byte{0xb8, 0x31, 0xb3, 0x86, 0x41, 0xeb, 0x6f, 0xcb}}
	FieldNexthopInterfaceIndex           = FieldID{0x138e6888, 0x7ab8, 0x4d65, [8]byte{0x9e, 0xe8, 0x05, 0x91, 0xbc, 0xf6, 0xa4, 0x94}}
	FieldNexthopInterfaceProfileID       = FieldID{0xd7ff9a56, 0xcdaa, 0x472b, [8]byte{0x84, 0xdb, 0xd2, 0x39, 0x63, 0xc1, 0xd1, 0xbf}}
	FieldNexthopInterfaceType            = FieldID{0x97537c6c, 0xd9a3, 0x4767, [8]byte{0xa3, 0x81, 0xe9, 0x42, 0x67, 0x5c, 0xd9, 0x20}}
	FieldNexthopSubInterfaceIndex        = FieldID{0xef8a6122, 0x0577, 0x45a7, [8]byte{0x9a, 0xaf, 0x82, 0x5f, 0xbe, 0xb4, 0xfb, 0x95}}
	FieldNexthopTunnelType               = FieldID{0x72b1a111, 0x987b, 0x4720, [8]byte{0x99, 0xdd, 0xc7, 0xc5, 0x76, 0xfa, 0x2d, 0x4c}}
	FieldOriginalICMPType                = FieldID{0x076dfdbe, 0xc56c, 0x4f72, [8]byte{0xae, 0x8a, 0x2c, 0xfe, 0x7e, 0x5c, 0x82, 0x86}}
	FieldOriginalProfileID               = FieldID{0x46ea1551, 0x2255, 0x492b, [8]byte{0x80, 0x19, 0xaa, 0xbe, 0xee, 0x34, 0x9f, 0x40}}
	FieldPeerName                        = FieldID{0x9b539082, 0xeb90, 0x4186, [8]byte{0xa6, 0xcc, 0xde, 0x5b, 0x63, 0x23, 0x50, 0x16}}
	FieldPipe                            = FieldID{0x1bd0741d, 0xe3df, 0x4e24, [8]byte{0x86, 0x34, 0x76, 0x20, 0x46, 0xee, 0xf6, 0xeb}}
	FieldProcessWithRPCIfUUID            = FieldID{0xe31180a8, 0xbbbd, 0x4d14, [8]byte{0xa6, 0x5e, 0x71, 0x57, 0xb0, 0x62, 0x33, 0xbb}}
	FieldQMMode                          = FieldID{0xf64fc6d1, 0xf9cb, 0x43d2, [8]byte{0x8a, 0x5f, 0xe1, 0x3b, 0xc8, 0x94, 0xf2, 0x65}}
	FieldRPCAuthLevel                    = FieldID{0xe5a0aed5, 0x59ac, 0x46ea, [8]byte{0xbe, 0x05, 0xa5, 0xf0, 0x5e, 0xcf, 0x44, 0x6e}}
	FieldRPCAuthType                     = FieldID{0xdaba74ab, 0x0d67, 0x43e7, [8]byte{0x98, 0x6e, 0x75, 0xb8, 0x4f, 0x82, 0xf5, 0x94}}
	FieldRPCEPFlags                      = FieldID{0x218b814a, 0x0a39, 0x49b8, [8]byte{0x8e, 0x71, 0xc2, 0x0c, 0x39, 0xc7, 0xdd, 0x2e}}
	FieldRPCEPValue                      = FieldID{0xdccea0b9, 0x0886, 0x4360, [8]byte{0x9c, 0x6a, 0xab, 0x04, 0x3a, 0x24, 0xfb, 0xa9}}
	FieldRPCIfFlag                       = FieldID{0x238a8a32, 0x3199, 0x467d, [8]byte{0x87, 0x1c, 0x27, 0x26, 0x21, 0xab, 0x38, 0x96}}
	FieldRPCIfUUID                       = FieldID{0x7c9c7d9f, 0x0075, 0x4d35, [8]byte{0xa0, 0xd1, 0x83, 0x11, 0xc4, 0xcf, 0x6a, 0xf1}}
	FieldRPCIfVersion                    = FieldID{0xeabfd9b7, 0x1262, 0x4a2e, [8]byte{0xad, 0xaa, 0x5f, 0x96, 0xf6, 0xfe, 0x32, 0x6d}}
	FieldRPCProtocol                     = FieldID{0x2717bc74, 0x3a35, 0x4ce7, [8]byte{0xb7, 0xef, 0xc8, 0x38, 0xfa, 0xbd, 0xec, 0x45}}
	FieldRPCProxyAuthType                = FieldID{0x40953fe2, 0x8565, 0x4759, [8]byte{0x84, 0x88, 0x17, 0x71, 0xb4, 0xb4, 0xb5, 0xdb}}
	FieldRPCServerName                   = FieldID{0xb605a225, 0xc3b3, 0x48c7, [8]byte{0x98, 0x33, 0x7a, 0xef, 0xa9, 0x52, 0x75, 0x46}}
	FieldRPCServerPort                   = FieldID{0x8090f645, 0x9ad5, 0x4e3b, [8]byte{0x9f, 0x9f, 0x80, 0x23, 0xca, 0x09, 0x79, 0x09}}
	FieldReauthorizeReason               = FieldID{0x11205e8c, 0x11ae, 0x457a, [8]byte{0x8a, 0x44, 0x47, 0x70, 0x26, 0xdd, 0x76, 0x4a}}
	FieldRemoteID                        = FieldID{0xf68166fd, 0x0682, 0x4c89, [8]byte{0xb8, 0xf5, 0x86, 0x43, 0x6c, 0x7e, 0xf9, 0xb7}}
	FieldRemoteUserToken                 = FieldID{0x9bf0ee66, 0x06c9, 0x41b9, [8]byte{0x84, 0xda, 0x28, 0x8c, 0xb4, 0x3a, 0xf5, 0x1f}}
	FieldReserved0                       = FieldID{0x678f4deb, 0x45af, 0x4882, [8]byte{0x93, 0xfe, 0x19, 0xd4, 0x72, 0x9d, 0x98, 0x34}}
	FieldReserved1                       = FieldID{0xd818f827, 0x5c69, 0x48eb, [8]byte{0xbf, 0x80, 0xd8, 0x6b, 0x17, 0x75, 0x5f, 0x97}}
	FieldReserved10                      = FieldID{0xb979e282, 0xd621, 0x4c8c, [8]byte{0xb1, 0x84, 0xb1, 0x05, 0xa6, 0x1c, 0x36, 0xce}}
	FieldReserved11                      = FieldID{0x2d62ee4d, 0x023d, 0x411f, [8]byte{0x95, 0x82, 0x43, 0xac, 0xbb, 0x79, 0x59, 0x75}}
	FieldReserved12                      = FieldID{0xa3677c32, 0x7e35, 0x4ddc, [8]byte{0x93, 0xda, 0xe8, 0xc3, 0x3f, 0xc9, 0x23, 0xc7}}
	FieldReserved13                      = FieldID{0x335a3e90, 0x84aa, 0x42f5, [8]byte{0x9e, 0x6f, 0x59, 0x30, 0x95, 0x36, 0xa4, 0x4c}}
	FieldReserved14                      = FieldID{0x30e44da2, 0x2f1a, 0x4116, [8]byte{0xa5, 0x59, 0xf9, 0x07, 0xde, 0x83, 0x60, 0x4a}}
	FieldReserved15                      = FieldID{0xbab8340f, 0xafe0, 0x43d1, [8]byte{0x80, 0xd8, 0x5c, 0xa4, 0x56, 0x96, 0x2d, 0xe3}}
	FieldReserved2                       = FieldID{0x53d4123d, 0xe15b, 0x4e84, [8]byte{0xb7, 0xa8, 0xdc, 0xe1, 0x6f, 0x7b, 0x62, 0xd9}}
	FieldReserved3                       = FieldID{0x7f6e8ca3, 0x6606, 0x4932, [8]byte{0x97, 0xc7, 0xe1, 0xf2, 0x07, 0x10, 0xaf, 0x3b}}
	FieldReserved4                       = FieldID{0x5f58e642, 0xb937, 0x495e, [8]byte{0xa9, 0x4b, 0xf6, 0xb0, 0x51, 0xa4, 0x92, 0x50}}
	FieldReserved5                       = FieldID{0x9ba8f6cd, 0xf77c, 0x43e6, [8]byte{0x88, 0x47, 0x11, 0x93, 0x9d, 0xc5, 0xdb, 0x5a}}
	FieldReserved6                       = FieldID{0xf13d84bd, 0x59d5, 0x44c4, [8]byte{0x88, 0x17, 0x5e, 0xcd, 0xae, 0x18, 0x05, 0xbd}}
	FieldReserved7                       = FieldID{0x65a0f930, 0x45dd, 0x4983, [8]byte{0xaa, 0x33, 0xef, 0xc7, 0xb6, 0x11, 0xaf, 0x08}}
	FieldReserved8                       = FieldID{0x4f424974, 0x0c12, 0x4816, [8]byte{0x9b, 0x47, 0x9a, 0x54, 0x7d, 0xb3, 0x9a, 0x32}}
	FieldReserved9                       = FieldID{0xce78e10f, 0x13ff, 0x4c70, [8]byte{0x86, 0x43, 0x36, 0xad, 0x18, 0x79, 0xaf, 0xa3}}
	FieldSecEncryptAlgorithm             = FieldID{0x0d306ef0, 0xe974, 0x4f74, [8]byte{0xb5, 0xc7, 0x59, 0x1b, 0x0d, 0xa7, 0xd5, 0x62}}
	FieldSecKeySize                      = FieldID{0x4772183b, 0xccf8, 0x4aeb, [8]byte{0xbc, 0xe1, 0xc6, 0xc6, 0x16, 0x1c, 0x8f, 0xe4}}
	FieldSourceInterfaceIndex            = FieldID{0x2311334d, 0xc92d, 0x45bf, [8]byte{0x94, 0x96, 0xed, 0xf4, 0x47, 0x82, 0x0e, 0x2d}}
	FieldSourceSubInterfaceIndex         = FieldID{0x055edd9d, 0xacd2, 0x4361, [8]byte{0x8d, 0xab, 0xf9, 0x52, 0x5d, 0x97, 0x66, 0x2f}}
	FieldSubInterfaceIndex               = FieldID{0x0cd42473, 0xd621, 0x4be3, [8]byte{0xae, 0x8c, 0x72, 0xa3, 0x48, 0xd2, 0x83, 0xe1}}
	FieldTunnelType                      = FieldID{0x77a40437, 0x8779, 0x4868, [8]byte{0xa2, 0x61, 0xf5, 0xa9, 0x02, 0xf1, 0xc0, 0xcd}}
	FieldVLANID                          = FieldID{0x938eab21, 0x3618, 0x4e64, [8]byte{0x9c, 0xa5, 0x21, 0x41, 0xeb, 0xda, 0x1c, 0xa2}}
	FieldVSwitchDestinationInterfaceID   = FieldID{0x8ed48be4, 0xc926, 0x49f6, [8]byte{0xa4, 0xf6, 0xef, 0x30, 0x30, 0xe3, 0xfc, 0x16}}
	FieldVSwitchDestinationInterfaceType = FieldID{0xfa9b3f06, 0x2f1a, 0x4c57, [8]byte{0x9e, 0x68, 0xa7, 0x09, 0x8b, 0x28, 0xdb, 0xfe}}
	FieldVSwitchDestinationVmID          = FieldID{0x6106aace, 0x4de1, 0x4c84, [8]byte{0x96, 0x71, 0x36, 0x37, 0xf8, 0xbc, 0xf7, 0x31}}
	FieldVSwitchID                       = FieldID{0xc4a414ba, 0x437b, 0x4de6, [8]byte{0x99, 0x46, 0xd9, 0x9c, 0x1b, 0x95, 0xb3, 0x12}}
	FieldVSwitchNetworkType              = FieldID{0x11d48b4b, 0xe77a, 0x40b4, [8]byte{0x91, 0x55, 0x39, 0x2c, 0x90, 0x6c, 0x26, 0x08}}
	FieldVSwitchSourceInterfaceID        = FieldID{0x7f4ef24b, 0xb2c1, 0x4938, [8]byte{0xba, 0x33, 0xa1, 0xec, 0xbe, 0xd5, 0x12, 0xba}}
	FieldVSwitchSourceInterfaceType      = FieldID{0xe6b040a2, 0xedaf, 0x4c36, [8]byte{0x90, 0x8b, 0xf2, 0xf5, 0x8a, 0xe4, 0x38, 0x07}}
	FieldVSwitchSourceVmID               = FieldID{0x9c2a9ec2, 0x9fc6, 0x42bc, [8]byte{0xbd, 0xd8, 0x40, 0x6d, 0x4d, 0xa0, 0xbe, 0x64}}
	FieldVSwitchTenantNetworkID          = FieldID{0xdc04843c, 0x79e6, 0x4e44, [8]byte{0xa0, 0x25, 0x65, 0xb9, 0xbb, 0x0f, 0x9f, 0x94}}
)

Well-known field IDs.

View Source
var (
	LayerALEAuthConnectV4               = LayerID{0xc38d57d1, 0x05a7, 0x4c33, [8]byte{0x90, 0x4f, 0x7f, 0xbc, 0xee, 0xe6, 0x0e, 0x82}}
	LayerALEAuthConnectV4Discard        = LayerID{0xd632a801, 0xf5ba, 0x4ad6, [8]byte{0x96, 0xe3, 0x60, 0x70, 0x17, 0xd9, 0x83, 0x6a}}
	LayerALEAuthConnectV6               = LayerID{0x4a72393b, 0x319f, 0x44bc, [8]byte{0x84, 0xc3, 0xba, 0x54, 0xdc, 0xb3, 0xb6, 0xb4}}
	LayerALEAuthConnectV6Discard        = LayerID{0xc97bc3b8, 0xc9a3, 0x4e33, [8]byte{0x86, 0x95, 0x8e, 0x17, 0xaa, 0xd4, 0xde, 0x09}}
	LayerALEAuthListenV4                = LayerID{0x88bb5dad, 0x76d7, 0x4227, [8]byte{0x9c, 0x71, 0xdf, 0x0a, 0x3e, 0xd7, 0xbe, 0x7e}}
	LayerALEAuthListenV4Discard         = LayerID{0x371dfada, 0x9f26, 0x45fd, [8]byte{0xb4, 0xeb, 0xc2, 0x9e, 0xb2, 0x12, 0x89, 0x3f}}
	LayerALEAuthListenV6                = LayerID{0x7ac9de24, 0x17dd, 0x4814, [8]byte{0xb4, 0xbd, 0xa9, 0xfb, 0xc9, 0x5a, 0x32, 0x1b}}
	LayerALEAuthListenV6Discard         = LayerID{0x60703b07, 0x63c8, 0x48e9, [8]byte{0xad, 0xa3, 0x12, 0xb1, 0xaf, 0x40, 0xa6, 0x17}}
	LayerALEAuthRecvAcceptV4            = LayerID{0xe1cd9fe7, 0xf4b5, 0x4273, [8]byte{0x96, 0xc0, 0x59, 0x2e, 0x48, 0x7b, 0x86, 0x50}}
	LayerALEAuthRecvAcceptV4Discard     = LayerID{0x9eeaa99b, 0xbd22, 0x4227, [8]byte{0x91, 0x9f, 0x00, 0x73, 0xc6, 0x33, 0x57, 0xb1}}
	LayerALEAuthRecvAcceptV6            = LayerID{0xa3b42c97, 0x9f04, 0x4672, [8]byte{0xb8, 0x7e, 0xce, 0xe9, 0xc4, 0x83, 0x25, 0x7f}}
	LayerALEAuthRecvAcceptV6Discard     = LayerID{0x89455b97, 0xdbe1, 0x453f, [8]byte{0xa2, 0x24, 0x13, 0xda, 0x89, 0x5a, 0xf3, 0x96}}
	LayerALEBindRedirectV4              = LayerID{0x66978cad, 0xc704, 0x42ac, [8]byte{0x86, 0xac, 0x7c, 0x1a, 0x23, 0x1b, 0xd2, 0x53}}
	LayerALEBindRedirectV6              = LayerID{0xbef02c9c, 0x606b, 0x4536, [8]byte{0x8c, 0x26, 0x1c, 0x2f, 0xc7, 0xb6, 0x31, 0xd4}}
	LayerALEConnectRedirectV4           = LayerID{0xc6e63c8c, 0xb784, 0x4562, [8]byte{0xaa, 0x7d, 0x0a, 0x67, 0xcf, 0xca, 0xf9, 0xa3}}
	LayerALEConnectRedirectV6           = LayerID{0x587e54a7, 0x8046, 0x42ba, [8]byte{0xa0, 0xaa, 0xb7, 0x16, 0x25, 0x0f, 0xc7, 0xfd}}
	LayerALEEndpointClosureV4           = LayerID{0xb4766427, 0xe2a2, 0x467a, [8]byte{0xbd, 0x7e, 0xdb, 0xcd, 0x1b, 0xd8, 0x5a, 0x09}}
	LayerALEEndpointClosureV6           = LayerID{0xbb536ccd, 0x4755, 0x4ba9, [8]byte{0x9f, 0xf7, 0xf9, 0xed, 0xf8, 0x69, 0x9c, 0x7b}}
	LayerALEFlowEstablishedV4           = LayerID{0xaf80470a, 0x5596, 0x4c13, [8]byte{0x99, 0x92, 0x53, 0x9e, 0x6f, 0xe5, 0x79, 0x67}}
	LayerALEFlowEstablishedV4Discard    = LayerID{0x146ae4a9, 0xa1d2, 0x4d43, [8]byte{0xa3, 0x1a, 0x4c, 0x42, 0x68, 0x2b, 0x8e, 0x4f}}
	LayerALEFlowEstablishedV6           = LayerID{0x7021d2b3, 0xdfa4, 0x406e, [8]byte{0xaf, 0xeb, 0x6a, 0xfa, 0xf7, 0xe7, 0x0e, 0xfd}}
	LayerALEFlowEstablishedV6Discard    = LayerID{0x46928636, 0xbbca, 0x4b76, [8]byte{0x94, 0x1d, 0x0f, 0xa7, 0xf5, 0xd7, 0xd3, 0x72}}
	LayerALEResourceAssignmentV4        = LayerID{0x1247d66d, 0x0b60, 0x4a15, [8]byte{0x8d, 0x44, 0x71, 0x55, 0xd0, 0xf5, 0x3a, 0x0c}}
	LayerALEResourceAssignmentV4Discard = LayerID{0x0b5812a2, 0xc3ff, 0x4eca, [8]byte{0xb8, 0x8d, 0xc7, 0x9e, 0x20, 0xac, 0x63, 0x22}}
	LayerALEResourceAssignmentV6        = LayerID{0x55a650e1, 0x5f0a, 0x4eca, [8]byte{0xa6, 0x53, 0x88, 0xf5, 0x3b, 0x26, 0xaa, 0x8c}}
	LayerALEResourceAssignmentV6Discard = LayerID{0xcbc998bb, 0xc51f, 0x4c1a, [8]byte{0xbb, 0x4f, 0x97, 0x75, 0xfc, 0xac, 0xab, 0x2f}}
	LayerALEResourceReleaseV4           = LayerID{0x74365cce, 0xccb0, 0x401a, [8]byte{0xbf, 0xc1, 0xb8, 0x99, 0x34, 0xad, 0x7e, 0x15}}
	LayerALEResourceReleaseV6           = LayerID{0xf4e5ce80, 0xedcc, 0x4e13, [8]byte{0x8a, 0x2f, 0xb9, 0x14, 0x54, 0xbb, 0x05, 0x7b}}
	LayerDatagramDataV4                 = LayerID{0x3d08bf4e, 0x45f6, 0x4930, [8]byte{0xa9, 0x22, 0x41, 0x70, 0x98, 0xe2, 0x00, 0x27}}
	LayerDatagramDataV4Discard          = LayerID{0x18e330c6, 0x7248, 0x4e52, [8]byte{0xaa, 0xab, 0x47, 0x2e, 0xd6, 0x77, 0x04, 0xfd}}
	LayerDatagramDataV6                 = LayerID{0xfa45fe2f, 0x3cba, 0x4427, [8]byte{0x87, 0xfc, 0x57, 0xb9, 0xa4, 0xb1, 0x0d, 0x00}}
	LayerDatagramDataV6Discard          = LayerID{0x09d1dfe1, 0x9b86, 0x4a42, [8]byte{0xbe, 0x9d, 0x8c, 0x31, 0x5b, 0x92, 0xa5, 0xd0}}
	LayerEgressVSwitchEthernet          = LayerID{0x86c872b0, 0x76fa, 0x4b79, [8]byte{0x93, 0xa4, 0x07, 0x50, 0x53, 0x0a, 0xe2, 0x92}}
	LayerEgressVSwitchTransportV4       = LayerID{0xb92350b6, 0x91f0, 0x46b6, [8]byte{0xbd, 0xc4, 0x87, 0x1d, 0xfd, 0x4a, 0x7c, 0x98}}
	LayerEgressVSwitchTransportV6       = LayerID{0x1b2def23, 0x1881, 0x40bd, [8]byte{0x82, 0xf4, 0x42, 0x54, 0xe6, 0x31, 0x41, 0xcb}}
	LayerIKEExtV4                       = LayerID{0xb14b7bdb, 0xdbbd, 0x473e, [8]byte{0xbe, 0xd4, 0x8b, 0x47, 0x08, 0xd4, 0xf2, 0x70}}
	LayerIKEExtV6                       = LayerID{0xb64786b3, 0xf687, 0x4eb9, [8]byte{0x89, 0xd2, 0x8e, 0xf3, 0x2a, 0xcd, 0xab, 0xe2}}
	LayerIPForwardV4                    = LayerID{0xa82acc24, 0x4ee1, 0x4ee1, [8]byte{0xb4, 0x65, 0xfd, 0x1d, 0x25, 0xcb, 0x10, 0xa4}}
	LayerIPForwardV4Discard             = LayerID{0x9e9ea773, 0x2fae, 0x4210, [8]byte{0x8f, 0x17, 0x34, 0x12, 0x9e, 0xf3, 0x69, 0xeb}}
	LayerIPForwardV6                    = LayerID{0x7b964818, 0x19c7, 0x493a, [8]byte{0xb7, 0x1f, 0x83, 0x2c, 0x36, 0x84, 0xd2, 0x8c}}
	LayerIPForwardV6Discard             = LayerID{0x31524a5d, 0x1dfe, 0x472f, [8]byte{0xbb, 0x93, 0x51, 0x8e, 0xe9, 0x45, 0xd8, 0xa2}}
	LayerIPSecKMDemuxV4                 = LayerID{0xf02b1526, 0xa459, 0x4a51, [8]byte{0xb9, 0xe3, 0x75, 0x9d, 0xe5, 0x2b, 0x9d, 0x2c}}
	LayerIPSecKMDemuxV6                 = LayerID{0x2f755cf6, 0x2fd4, 0x4e88, [8]byte{0xb3, 0xe4, 0xa9, 0x1b, 0xca, 0x49, 0x52, 0x35}}
	LayerIPSecV4                        = LayerID{0xeda65c74, 0x610d, 0x4bc5, [8]byte{0x94, 0x8f, 0x3c, 0x4f, 0x89, 0x55, 0x68, 0x67}}
	LayerIPSecV6                        = LayerID{0x13c48442, 0x8d87, 0x4261, [8]byte{0x9a, 0x29, 0x59, 0xd2, 0xab, 0xc3, 0x48, 0xb4}}
	LayerInboundICMPErrorV4             = LayerID{0x61499990, 0x3cb6, 0x4e84, [8]byte{0xb9, 0x50, 0x53, 0xb9, 0x4b, 0x69, 0x64, 0xf3}}
	LayerInboundICMPErrorV4Discard      = LayerID{0xa6b17075, 0xebaf, 0x4053, [8]byte{0xa4, 0xe7, 0x21, 0x3c, 0x81, 0x21, 0xed, 0xe5}}
	LayerInboundICMPErrorV6             = LayerID{0x65f9bdff, 0x3b2d, 0x4e5d, [8]byte{0xb8, 0xc6, 0xc7, 0x20, 0x65, 0x1f, 0xe8, 0x98}}
	LayerInboundICMPErrorV6Discard      = LayerID{0xa6e7ccc0, 0x08fb, 0x468d, [8]byte{0xa4, 0x72, 0x97, 0x71, 0xd5, 0x59, 0x5e, 0x09}}
	LayerInboundIPPacketV4              = LayerID{0xc86fd1bf, 0x21cd, 0x497e, [8]byte{0xa0, 0xbb, 0x17, 0x42, 0x5c, 0x88, 0x5c, 0x58}}
	LayerInboundIPPacketV4Discard       = LayerID{0xb5a230d0, 0xa8c0, 0x44f2, [8]byte{0x91, 0x6e, 0x99, 0x1b, 0x53, 0xde, 0xd1, 0xf7}}
	LayerInboundIPPacketV6              = LayerID{0xf52032cb, 0x991c, 0x46e7, [8]byte{0x97, 0x1d, 0x26, 0x01, 0x45, 0x9a, 0x91, 0xca}}
	LayerInboundIPPacketV6Discard       = LayerID{0xbb24c279, 0x93b4, 0x47a2, [8]byte{0x83, 0xad, 0xae, 0x16, 0x98, 0xb5, 0x08, 0x85}}
	LayerInboundMACFrameEthernet        = LayerID{0xeffb7edb, 0x0055, 0x4f9a, [8]byte{0xa2, 0x31, 0x4f, 0xf8, 0x13, 0x1a, 0xd1, 0x91}}
	LayerInboundMACFrameNative          = LayerID{0xd4220bd3, 0x62ce, 0x4f08, [8]byte{0xae, 0x88, 0xb5, 0x6e, 0x85, 0x26, 0xdf, 0x50}}
	LayerInboundMACFrameNativeFast      = LayerID{0x853aaa8e, 0x2b78, 0x4d24, [8]byte{0xa8, 0x04, 0x36, 0xdb, 0x08, 0xb2, 0x97, 0x11}}
	LayerInboundReserved2               = LayerID{0xf4fb8d55, 0xc076, 0x46d8, [8]byte{0xa2, 0xc7, 0x6a, 0x4c, 0x72, 0x2c, 0xa4, 0xed}}
	LayerInboundTransportFast           = LayerID{0xe41d2719, 0x05c7, 0x40f0, [8]byte{0x89, 0x83, 0xea, 0x8d, 0x17, 0xbb, 0xc2, 0xf6}}
	LayerInboundTransportV4             = LayerID{0x5926dfc8, 0xe3cf, 0x4426, [8]byte{0xa2, 0x83, 0xdc, 0x39, 0x3f, 0x5d, 0x0f, 0x9d}}
	LayerInboundTransportV4Discard      = LayerID{0xac4a9833, 0xf69d, 0x4648, [8]byte{0xb2, 0x61, 0x6d, 0xc8, 0x48, 0x35, 0xef, 0x39}}
	LayerInboundTransportV6             = LayerID{0x634a869f, 0xfc23, 0x4b90, [8]byte{0xb0, 0xc1, 0xbf, 0x62, 0x0a, 0x36, 0xae, 0x6f}}
	LayerInboundTransportV6Discard      = LayerID{0x2a6ff955, 0x3b2b, 0x49d2, [8]byte{0x98, 0x48, 0xad, 0x9d, 0x72, 0xdc, 0xaa, 0xb7}}
	LayerIngressVSwitchEthernet         = LayerID{0x7d98577a, 0x9a87, 0x41ec, [8]byte{0x97, 0x18, 0x7c, 0xf5, 0x89, 0xc9, 0xf3, 0x2d}}
	LayerIngressVSwitchTransportV4      = LayerID{0xb2696ff6, 0x774f, 0x4554, [8]byte{0x9f, 0x7d, 0x3d, 0xa3, 0x94, 0x5f, 0x8e, 0x85}}
	LayerIngressVSwitchTransportV6      = LayerID{0x5ee314fc, 0x7d8a, 0x47f4, [8]byte{0xb7, 0xe3, 0x29, 0x1a, 0x36, 0xda, 0x4e, 0x12}}
	LayerKMAuthorization                = LayerID{0x4aa226e9, 0x9020, 0x45fb, [8]byte{0x95, 0x6a, 0xc0, 0x24, 0x9d, 0x84, 0x11, 0x95}}
	LayerNameResolutionCacheV4          = LayerID{0x0c2aa681, 0x905b, 0x4ccd, [8]byte{0xa4, 0x67, 0x4d, 0xd8, 0x11, 0xd0, 0x7b, 0x7b}}
	LayerNameResolutionCacheV6          = LayerID{0x92d592fa, 0x6b01, 0x434a, [8]byte{0x9d, 0xea, 0xd1, 0xe9, 0x6e, 0xa9, 0x7d, 0xa9}}
	LayerOutboundICMPErrorV4            = LayerID{0x41390100, 0x564c, 0x4b32, [8]byte{0xbc, 0x1d, 0x71, 0x80, 0x48, 0x35, 0x4d, 0x7c}}
	LayerOutboundICMPErrorV4Discard     = LayerID{0xb3598d36, 0x0561, 0x4588, [8]byte{0xa6, 0xbf, 0xe9, 0x55, 0xe3, 0xf6, 0x26, 0x4b}}
	LayerOutboundICMPErrorV6            = LayerID{0x7fb03b60, 0x7b8d, 0x4dfa, [8]byte{0xba, 0xdd, 0x98, 0x01, 0x76, 0xfc, 0x4e, 0x12}}
	LayerOutboundICMPErrorV6Discard     = LayerID{0x65f2e647, 0x8d0c, 0x4f47, [8]byte{0xb1, 0x9b, 0x33, 0xa4, 0xd3, 0xf1, 0x35, 0x7c}}
	LayerOutboundIPPacketV4             = LayerID{0x1e5c9fae, 0x8a84, 0x4135, [8]byte{0xa3, 0x31, 0x95, 0x0b, 0x54, 0x22, 0x9e, 0xcd}}
	LayerOutboundIPPacketV4Discard      = LayerID{0x08e4bcb5, 0xb647, 0x48f3, [8]byte{0x95, 0x3c, 0xe5, 0xdd, 0xbd, 0x03, 0x93, 0x7e}}
	LayerOutboundIPPacketV6             = LayerID{0xa3b3ab6b, 0x3564, 0x488c, [8]byte{0x91, 0x17, 0xf3, 0x4e, 0x82, 0x14, 0x27, 0x63}}
	LayerOutboundIPPacketV6Discard      = LayerID{0x9513d7c4, 0xa934, 0x49dc, [8]byte{0x91, 0xa7, 0x6c, 0xcb, 0x80, 0xcc, 0x02, 0xe3}}
	LayerOutboundMACFrameEthernet       = LayerID{0x694673bc, 0xd6db, 0x4870, [8]byte{0xad, 0xee, 0x0a, 0xcd, 0xbd, 0xb7, 0xf4, 0xb2}}
	LayerOutboundMACFrameNative         = LayerID{0x94c44912, 0x9d6f, 0x4ebf, [8]byte{0xb9, 0x95, 0x05, 0xab, 0x8a, 0x08, 0x8d, 0x1b}}
	LayerOutboundMACFrameNativeFast     = LayerID{0x470df946, 0xc962, 0x486f, [8]byte{0x94, 0x46, 0x82, 0x93, 0xcb, 0xc7, 0x5e, 0xb8}}
	LayerOutboundTransportFast          = LayerID{0x13ed4388, 0xa070, 0x4815, [8]byte{0x99, 0x35, 0x7a, 0x9b, 0xe6, 0x40, 0x8b, 0x78}}
	LayerOutboundTransportV4            = LayerID{0x09e61aea, 0xd214, 0x46e2, [8]byte{0x9b, 0x21, 0xb2, 0x6b, 0x0b, 0x2f, 0x28, 0xc8}}
	LayerOutboundTransportV4Discard     = LayerID{0xc5f10551, 0xbdb0, 0x43d7, [8]byte{0xa3, 0x13, 0x50, 0xe2, 0x11, 0xf4, 0xd6, 0x8a}}
	LayerOutboundTransportV6            = LayerID{0xe1735bde, 0x013f, 0x4655, [8]byte{0xb3, 0x51, 0xa4, 0x9e, 0x15, 0x76, 0x2d, 0xf0}}
	LayerOutboundTransportV6Discard     = LayerID{0xf433df69, 0xccbd, 0x482e, [8]byte{0xb9, 0xb2, 0x57, 0x16, 0x56, 0x58, 0xc3, 0xb3}}
	LayerRPCEPAdd                       = LayerID{0x618dffc7, 0xc450, 0x4943, [8]byte{0x95, 0xdb, 0x99, 0xb4, 0xc1, 0x6a, 0x55, 0xd4}}
	LayerRPCEPMap                       = LayerID{0x9247bc61, 0xeb07, 0x47ee, [8]byte{0x87, 0x2c, 0xbf, 0xd7, 0x8b, 0xfd, 0x16, 0x16}}
	LayerRPCProxyConn                   = LayerID{0x94a4b50b, 0xba5c, 0x4f27, [8]byte{0x90, 0x7a, 0x22, 0x9f, 0xac, 0x0c, 0x2a, 0x7a}}
	LayerRPCProxyIf                     = LayerID{0xf8a38615, 0xe12c, 0x41ac, [8]byte{0x98, 0xdf, 0x12, 0x1a, 0xd9, 0x81, 0xaa, 0xde}}
	LayerRPCUM                          = LayerID{0x75a89dda, 0x95e4, 0x40f3, [8]byte{0xad, 0xc7, 0x76, 0x88, 0xa9, 0xc8, 0x47, 0xe1}}
	LayerStreamPacketV4                 = LayerID{0xaf52d8ec, 0xcb2d, 0x44e5, [8]byte{0xad, 0x92, 0xf8, 0xdc, 0x38, 0xd2, 0xeb, 0x29}}
	LayerStreamPacketV6                 = LayerID{0x779a8ca3, 0xf099, 0x468f, [8]byte{0xb5, 0xd4, 0x83, 0x53, 0x5c, 0x46, 0x1c, 0x02}}
	LayerStreamV4                       = LayerID{0x3b89653c, 0xc170, 0x49e4, [8]byte{0xb1, 0xcd, 0xe0, 0xee, 0xee, 0xe1, 0x9a, 0x3e}}
	LayerStreamV4Discard                = LayerID{0x25c4c2c2, 0x25ff, 0x4352, [8]byte{0x82, 0xf9, 0xc5, 0x4a, 0x4a, 0x47, 0x26, 0xdc}}
	LayerStreamV6                       = LayerID{0x47c9137a, 0x7ec4, 0x46b3, [8]byte{0xb6, 0xe4, 0x48, 0xe9, 0x26, 0xb1, 0xed, 0xa4}}
	LayerStreamV6Discard                = LayerID{0x10a59fc7, 0xb628, 0x4c41, [8]byte{0x9e, 0xb8, 0xcf, 0x37, 0xd5, 0x51, 0x03, 0xcf}}
)

Well-known layer IDs.

Functions

func AppID

func AppID(file string) (string, error)

AppID returns the application ID associated with the provided file.

Types

type Action

type Action uint32

Action is an action the filtering engine can execute.

const (
	// ActionBlock blocks a packet or session.
	ActionBlock Action = 0x1001
	// ActionPermit permits a packet or session.
	ActionPermit Action = 0x1002
	// ActionCalloutTerminating invokes a callout that must return a
	// permit or block verdict.
	ActionCalloutTerminating Action = 0x5003
	// ActionCalloutInspection invokes a callout that is expected to
	// not return a verdict (i.e. a read-only callout).
	ActionCalloutInspection Action = 0x6004
	// ActionCalloutUnknown invokes a callout that may return a permit
	// or block verdict.
	ActionCalloutUnknown Action = 0x4005
)

func (Action) String

func (i Action) String() string

type CalloutID

type CalloutID windows.GUID

CalloutID identifies a WFP callout function.

func (*CalloutID) IsZero

func (id *CalloutID) IsZero() bool

IsZero reports whether id is nil or the zero GUID.

func (CalloutID) String

func (id CalloutID) String() string

type ConditionFlag

type ConditionFlag uint32 // do not change type, used in C calls

ConditionFlag represents special conditions that can be tested.

const (
	ConditionFlagIsLoopback             ConditionFlag = 0x00000001
	ConditionFlagIsIPSecSecured         ConditionFlag = 0x00000002
	ConditionFlagIsReauthorize          ConditionFlag = 0x00000004
	ConditionFlagIsWildcardBind         ConditionFlag = 0x00000008
	ConditionFlagIsRawEndpoint          ConditionFlag = 0x00000010
	ConditionFlagIsFragmant             ConditionFlag = 0x00000020
	ConditionFlagIsFragmantGroup        ConditionFlag = 0x00000040
	ConditionFlagIsIPSecNATTReclassify  ConditionFlag = 0x00000080
	ConditionFlagIsRequiresALEClassify  ConditionFlag = 0x00000100
	ConditionFlagIsImplicitBind         ConditionFlag = 0x00000200
	ConditionFlagIsReassembled          ConditionFlag = 0x00000400
	ConditionFlagIsNameAppSpecified     ConditionFlag = 0x00004000
	ConditionFlagIsPromiscuous          ConditionFlag = 0x00008000
	ConditionFlagIsAuthFW               ConditionFlag = 0x00010000
	ConditionFlagIsReclassify           ConditionFlag = 0x00020000
	ConditionFlagIsOutboundPassThru     ConditionFlag = 0x00040000
	ConditionFlagIsInboundPassThru      ConditionFlag = 0x00080000
	ConditionFlagIsConnectionRedirected ConditionFlag = 0x00100000
)

func (ConditionFlag) String

func (i ConditionFlag) String() string

type DropEvent

type DropEvent struct {
	Timestamp  time.Time
	IPProtocol uint8
	LocalAddr  netip.AddrPort
	RemoteAddr netip.AddrPort
	AppID      string

	LayerID  uint16
	FilterID uint64
}

type Field

type Field struct {
	// ID is the unique identifier for the field.
	ID FieldID
	// Type is the type of the field.
	Type reflect.Type
}

Field is a piece of information that a layer makes available to filter rules for matching.

type FieldID

type FieldID windows.GUID

FieldID identifies a WFP layer field.

func (*FieldID) IsZero

func (id *FieldID) IsZero() bool

IsZero reports whether id is nil or the zero GUID.

func (FieldID) String

func (id FieldID) String() string

type IPProto

type IPProto uint8 // do not change type, used in C calls

IPProto represents the protocol being used.

const (
	IPProtoICMP   IPProto = 1
	IPProtoICMPV6 IPProto = 58
	IPProtoTCP    IPProto = 6
	IPProtoUDP    IPProto = 17
)

From: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket

func (IPProto) String

func (i IPProto) String() string

type Layer

type Layer struct {
	// ID is the unique identifier for this layer.
	ID LayerID
	// KernelID is the internal kernel ID for this layer.
	KernelID uint16
	// Name is a short descriptive name.
	Name string
	// Description is a longer description of the layer's function.
	Description string
	// DefaultSublayer is the ID for the default sublayer into which
	// filter rules are added.
	DefaultSublayer SublayerID
	// Fields describes the fields that are available in this layer to
	// be matched against.
	Fields []*Field
}

Layer is a point in the packet processing path where filter rules can be applied.

type LayerID

type LayerID windows.GUID

LayerID identifies a WFP layer.

func (*LayerID) IsZero

func (id *LayerID) IsZero() bool

IsZero reports whether id is nil or the zero GUID.

func (LayerID) String

func (id LayerID) String() string

type Match

type Match struct {
	Field FieldID
	Op    MatchType
	Value interface{}
}

Match is a matching test that gets run against a layer's field.

func (Match) String

func (m Match) String() string

type MatchType

type MatchType uint32 // do not change type, used in C calls

MatchType is the operator to use when testing a field in a Match.

const (
	MatchTypeEqual MatchType = iota
	MatchTypeGreater
	MatchTypeLess
	MatchTypeGreaterOrEqual
	MatchTypeLessOrEqual
	MatchTypeRange // true if the field value is within the Range.
	MatchTypeFlagsAllSet
	MatchTypeFlagsAnySet
	MatchTypeFlagsNoneSet
	MatchTypeEqualCaseInsensitive // only valid on strings, no string fields exist
	MatchTypeNotEqual
	MatchTypePrefix    // TODO: not well documented. Is this prefix.Contains(ip) ?
	MatchTypeNotPrefix // TODO: see above.
)

func (MatchType) String

func (m MatchType) String() string

type Options

type Options struct {
	// Name is a short name for the session, shown in Windows
	// administrative tools.
	Name string
	// Description is a short description for the session, shown in
	// Windows administrative tools.
	Description string
	// Dynamic, if true, indicates that all objects created during the
	// session should be removed when the session is closed or the
	// current process terminates. Dynamic sessions are meant for
	// adding firewall configuration that should not outlast your
	// program's execution.
	Dynamic bool
	// TransactionStartTimeout is how long the session is willing to
	// wait to acquire the global transaction lock. If zero, WFP's
	// default timeout (15 seconds) is used.
	TransactionStartTimeout time.Duration
}

Options configures a Session.

type Provider

type Provider struct {
	// ID is the unique identifier for this provider.
	ID ProviderID
	// Name is a short descriptive name.
	Name string
	// Description is a longer description of the provider.
	Description string
	// Persistent indicates whether the provider is preserved across
	// restarts of the filtering engine.
	Persistent bool
	// Data is optional opaque data that can be held on behalf of the
	// Provider.
	Data []byte
	// ServiceName is an optional Windows service name. If present,
	// the rules owned by this Provider are only activated when the
	// service is active.
	ServiceName string

	// Disabled indicates whether the rules owned by this Provider are
	// disabled due to its associated service being
	// disabled. Read-only, ignored on Provider creation.
	Disabled bool
}

A Provider is an entity that owns sublayers and filtering rules.

type ProviderID

type ProviderID windows.GUID

ProviderID identifies a WFP provider.

func (*ProviderID) IsZero

func (id *ProviderID) IsZero() bool

IsZero reports whether id is nil or the zero GUID.

func (ProviderID) String

func (id ProviderID) String() string

type Range

type Range struct {
	From, To interface{}
}

type Rule

type Rule struct {
	// ID is the unique identifier for this rule.
	ID RuleID
	// KernelID is the kernel ID for this rule.
	KernelID uint64
	// Name is a short descriptive name.
	Name string
	// Description is a longer description of the rule.
	Description string
	// Layer is the ID of the layer in which the rule runs.
	Layer LayerID
	// Sublayer is the ID of the sublayer in which the rule runs.
	Sublayer SublayerID
	// Weight is the priority of the rule relative to other rules in
	// its sublayer.
	Weight uint64
	// Conditions are the tests which must pass for this rule to apply
	// to a packet.
	Conditions []*Match
	// Action is the action to take on matching packets.
	Action Action
	// Callout is the ID of the callout to invoke. Only valid if
	// Action is ActionCalloutTerminating, ActionCalloutInspection, or
	// ActionCalloutUnknown.
	Callout CalloutID
	// PermitIfMissing, if set, indicates that a callout action to a
	// callout ID that isn't registered should be translated into an
	// ActionPermit, rather than an ActionBlock. Only relevant if
	// Action is ActionCalloutTerminating or ActionCalloutUnknown.
	PermitIfMissing bool
	// HardAction, if set, indicates that the action type is hard and cannot
	// be overridden except by a Veto.
	HardAction bool

	// Persistent indicates whether the rule is preserved across
	// restarts of the filtering engine.
	Persistent bool
	// BootTime indicates that this rule applies only during early
	// boot, before the filtering engine fully starts and hands off to
	// the normal runtime rules.
	BootTime bool

	// Provider optionally identifies the Provider that manages this
	// rule.
	Provider ProviderID
	// ProviderData is optional opaque data that can be held on behalf
	// of the Provider.
	ProviderData []byte

	// Disabled indicates whether the rule is currently disabled due
	// to its provider being associated with an inactive Windows
	// service. See Provider.ServiceName for details.
	Disabled bool

	// Enable logging for the rule
	EnableFirewallLog bool
}

A Rule is an action to take on packets that match a set of conditions.

type RuleID

type RuleID windows.GUID

RuleID identifies a WFP filtering rule.

func (*RuleID) IsZero

func (id *RuleID) IsZero() bool

IsZero reports whether id is nil or the zero GUID.

func (RuleID) String

func (id RuleID) String() string

type Session

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

Session is a connection to the WFP API.

func New

func New(opts *Options) (*Session, error)

New connects to the WFP API.

func (*Session) AddProvider

func (s *Session) AddProvider(p *Provider) error

AddProvider creates a new provider.

func (*Session) AddRule

func (s *Session) AddRule(r *Rule) error

func (*Session) AddSublayer

func (s *Session) AddSublayer(sl *Sublayer) error

AddSublayer creates a new Sublayer.

func (*Session) Close

func (s *Session) Close() error

Close implements io.Closer.

func (*Session) DeleteProvider

func (s *Session) DeleteProvider(id ProviderID) error

DeleteProvider deletes the Provider whose GUID is id. A provider can only be deleted once all the resources it owns have been deleted.

func (*Session) DeleteRule

func (s *Session) DeleteRule(id RuleID) error

func (*Session) DeleteSublayer

func (s *Session) DeleteSublayer(id SublayerID) error

DeleteSublayer deletes the Sublayer whose GUID is id.

func (*Session) DropEvents

func (s *Session) DropEvents() ([]*DropEvent, error)

func (*Session) Layers

func (s *Session) Layers() ([]*Layer, error)

Layers returns information on available WFP layers.

func (*Session) Providers

func (s *Session) Providers() ([]*Provider, error)

func (*Session) Rules

func (s *Session) Rules() ([]*Rule, error)

func (*Session) RulesForProvider

func (s *Session) RulesForProvider(provider ProviderID, layer LayerID) ([]*Rule, error)

TODO: figure out what currently unexposed flags do: Indexed TODO: figure out what ProviderContextKey is about. MSDN doesn't explain what contexts are.

func (*Session) Sublayers

func (s *Session) Sublayers(providers ...ProviderID) ([]*Sublayer, error)

Sublayers returns available Sublayers. If providers are given, returns only sublayers registered to those providers.

func (*Session) TransactionAbort

func (s *Session) TransactionAbort() error

func (*Session) TransactionBegin

func (s *Session) TransactionBegin() error

func (*Session) TransactionCommit

func (s *Session) TransactionCommit() error

type Sublayer

type Sublayer struct {
	// ID is the unique identifier for this sublayer.
	ID SublayerID
	// Name is a short descriptive name.
	Name string
	// Description is a longer description of the Sublayer.
	Description string
	// Persistent indicates whether the sublayer is preserved across
	// restarts of the filtering engine.
	Persistent bool
	// Provider optionally identifies the Provider that manages this
	// sublayer.
	Provider ProviderID
	// ProviderData is optional opaque data that can be held on behalf
	// of the Provider.
	ProviderData []byte
	// Weight specifies the priority of this sublayer relative to
	// other sublayers. Higher-weighted sublayers are invoked first.
	Weight uint16
}

A Sublayer is a container for filtering rules.

type SublayerID

type SublayerID windows.GUID

SublayerID identifies a WFP sublayer.

func (*SublayerID) IsZero

func (id *SublayerID) IsZero() bool

IsZero reports whether id is nil or the zero GUID.

func (SublayerID) String

func (id SublayerID) String() string

type TokenAccessInformation

type TokenAccessInformation struct{}

TokenAccessInformation represents all the information in a token that is necessary to perform an access check. This type is only present in Layer fields, and cannot be used directly as a value in firewall rules.

type TokenInformation

type TokenInformation struct{}

TokenInformation defines a set of security identifiers. This type is only present in Layer fields, and cannot be used directly as a value in firewall rules.

Directories

Path Synopsis
cmd
wfpcli
wfpcli is a CLI tool for interacting with the Windows Filtering Platform (WFP), aka the Windows firewall.
wfpcli is a CLI tool for interacting with the Windows Filtering Platform (WFP), aka the Windows firewall.

Jump to

Keyboard shortcuts

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