Documentation
¶
Overview ¶
Package nftables contains a set of nftables tests implemented as TestCases
Index ¶
- Constants
- Variables
- func RegisterTestCase(tc TestCase)
- type FilterInputDropAll
- func (*FilterInputDropAll) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*FilterInputDropAll) ContainerSufficient() bool
- func (*FilterInputDropAll) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*FilterInputDropAll) LocalSufficient() bool
- func (*FilterInputDropAll) Name() string
- func (*FilterInputDropAll) Timeout() time.Duration
- type FilterInputMultiUDPRules
- func (*FilterInputMultiUDPRules) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*FilterInputMultiUDPRules) ContainerSufficient() bool
- func (*FilterInputMultiUDPRules) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*FilterInputMultiUDPRules) LocalSufficient() bool
- func (*FilterInputMultiUDPRules) Name() string
- func (*FilterInputMultiUDPRules) Timeout() time.Duration
- type FilterInputRequireProtocolUDP
- func (*FilterInputRequireProtocolUDP) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*FilterInputRequireProtocolUDP) ContainerSufficient() bool
- func (*FilterInputRequireProtocolUDP) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*FilterInputRequireProtocolUDP) LocalSufficient() bool
- func (*FilterInputRequireProtocolUDP) Name() string
- func (*FilterInputRequireProtocolUDP) Timeout() time.Duration
- type IptFilterInputCreateUserChain
- func (*IptFilterInputCreateUserChain) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputCreateUserChain) ContainerSufficient() bool
- func (*IptFilterInputCreateUserChain) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputCreateUserChain) LocalSufficient() bool
- func (*IptFilterInputCreateUserChain) Name() string
- func (*IptFilterInputCreateUserChain) Timeout() time.Duration
- type IptFilterInputDefaultPolicyAccept
- func (*IptFilterInputDefaultPolicyAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDefaultPolicyAccept) ContainerSufficient() bool
- func (*IptFilterInputDefaultPolicyAccept) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDefaultPolicyAccept) LocalSufficient() bool
- func (*IptFilterInputDefaultPolicyAccept) Name() string
- func (*IptFilterInputDefaultPolicyAccept) Timeout() time.Duration
- type IptFilterInputDefaultPolicyDrop
- func (*IptFilterInputDefaultPolicyDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDefaultPolicyDrop) ContainerSufficient() bool
- func (*IptFilterInputDefaultPolicyDrop) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDefaultPolicyDrop) LocalSufficient() bool
- func (*IptFilterInputDefaultPolicyDrop) Name() string
- func (*IptFilterInputDefaultPolicyDrop) Timeout() time.Duration
- type IptFilterInputDestination
- func (*IptFilterInputDestination) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDestination) ContainerSufficient() bool
- func (*IptFilterInputDestination) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDestination) LocalSufficient() bool
- func (*IptFilterInputDestination) Name() string
- func (*IptFilterInputDestination) Timeout() time.Duration
- type IptFilterInputDropAll
- func (*IptFilterInputDropAll) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropAll) ContainerSufficient() bool
- func (*IptFilterInputDropAll) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropAll) LocalSufficient() bool
- func (*IptFilterInputDropAll) Name() string
- func (*IptFilterInputDropAll) Timeout() time.Duration
- type IptFilterInputDropAllExceptOneDstPort
- func (*IptFilterInputDropAllExceptOneDstPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropAllExceptOneDstPort) ContainerSufficient() bool
- func (*IptFilterInputDropAllExceptOneDstPort) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropAllExceptOneDstPort) LocalSufficient() bool
- func (*IptFilterInputDropAllExceptOneDstPort) Name() string
- func (*IptFilterInputDropAllExceptOneDstPort) Timeout() time.Duration
- type IptFilterInputDropAllSrcPorts
- func (*IptFilterInputDropAllSrcPorts) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropAllSrcPorts) ContainerSufficient() bool
- func (*IptFilterInputDropAllSrcPorts) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropAllSrcPorts) LocalSufficient() bool
- func (*IptFilterInputDropAllSrcPorts) Name() string
- func (*IptFilterInputDropAllSrcPorts) Timeout() time.Duration
- type IptFilterInputDropDifferentUDPPort
- func (*IptFilterInputDropDifferentUDPPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropDifferentUDPPort) ContainerSufficient() bool
- func (*IptFilterInputDropDifferentUDPPort) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropDifferentUDPPort) LocalSufficient() bool
- func (*IptFilterInputDropDifferentUDPPort) Name() string
- func (*IptFilterInputDropDifferentUDPPort) Timeout() time.Duration
- type IptFilterInputDropOnlyUDP
- func (*IptFilterInputDropOnlyUDP) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropOnlyUDP) ContainerSufficient() bool
- func (*IptFilterInputDropOnlyUDP) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropOnlyUDP) LocalSufficient() bool
- func (*IptFilterInputDropOnlyUDP) Name() string
- func (*IptFilterInputDropOnlyUDP) Timeout() time.Duration
- type IptFilterInputDropTCPDestPort
- func (*IptFilterInputDropTCPDestPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropTCPDestPort) ContainerSufficient() bool
- func (*IptFilterInputDropTCPDestPort) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropTCPDestPort) LocalSufficient() bool
- func (*IptFilterInputDropTCPDestPort) Name() string
- func (*IptFilterInputDropTCPDestPort) Timeout() time.Duration
- type IptFilterInputDropTCPSrcPort
- func (*IptFilterInputDropTCPSrcPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropTCPSrcPort) ContainerSufficient() bool
- func (*IptFilterInputDropTCPSrcPort) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropTCPSrcPort) LocalSufficient() bool
- func (*IptFilterInputDropTCPSrcPort) Name() string
- func (*IptFilterInputDropTCPSrcPort) Timeout() time.Duration
- type IptFilterInputDropUDP
- func (*IptFilterInputDropUDP) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropUDP) ContainerSufficient() bool
- func (*IptFilterInputDropUDP) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropUDP) LocalSufficient() bool
- func (*IptFilterInputDropUDP) Name() string
- func (*IptFilterInputDropUDP) Timeout() time.Duration
- type IptFilterInputDropUDPPort
- func (*IptFilterInputDropUDPPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropUDPPort) ContainerSufficient() bool
- func (*IptFilterInputDropUDPPort) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputDropUDPPort) LocalSufficient() bool
- func (*IptFilterInputDropUDPPort) Name() string
- func (*IptFilterInputDropUDPPort) Timeout() time.Duration
- type IptFilterInputInterface
- func (*IptFilterInputInterface) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterface) ContainerSufficient() bool
- func (*IptFilterInputInterface) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterface) LocalSufficient() bool
- func (*IptFilterInputInterface) Name() string
- func (*IptFilterInputInterface) Timeout() time.Duration
- type IptFilterInputInterfaceAccept
- func (*IptFilterInputInterfaceAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceAccept) ContainerSufficient() bool
- func (*IptFilterInputInterfaceAccept) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceAccept) LocalSufficient() bool
- func (*IptFilterInputInterfaceAccept) Name() string
- func (*IptFilterInputInterfaceAccept) Timeout() time.Duration
- type IptFilterInputInterfaceBeginsWith
- func (*IptFilterInputInterfaceBeginsWith) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceBeginsWith) ContainerSufficient() bool
- func (*IptFilterInputInterfaceBeginsWith) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceBeginsWith) LocalSufficient() bool
- func (*IptFilterInputInterfaceBeginsWith) Name() string
- func (*IptFilterInputInterfaceBeginsWith) Timeout() time.Duration
- type IptFilterInputInterfaceDrop
- func (*IptFilterInputInterfaceDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceDrop) ContainerSufficient() bool
- func (*IptFilterInputInterfaceDrop) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceDrop) LocalSufficient() bool
- func (*IptFilterInputInterfaceDrop) Name() string
- func (*IptFilterInputInterfaceDrop) Timeout() time.Duration
- type IptFilterInputInterfaceInvertAccept
- func (*IptFilterInputInterfaceInvertAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceInvertAccept) ContainerSufficient() bool
- func (*IptFilterInputInterfaceInvertAccept) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceInvertAccept) LocalSufficient() bool
- func (*IptFilterInputInterfaceInvertAccept) Name() string
- func (*IptFilterInputInterfaceInvertAccept) Timeout() time.Duration
- type IptFilterInputInterfaceInvertDrop
- func (*IptFilterInputInterfaceInvertDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceInvertDrop) ContainerSufficient() bool
- func (*IptFilterInputInterfaceInvertDrop) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInterfaceInvertDrop) LocalSufficient() bool
- func (*IptFilterInputInterfaceInvertDrop) Name() string
- func (*IptFilterInputInterfaceInvertDrop) Timeout() time.Duration
- type IptFilterInputInvertDestination
- func (*IptFilterInputInvertDestination) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertDestination) ContainerSufficient() bool
- func (*IptFilterInputInvertDestination) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertDestination) LocalSufficient() bool
- func (*IptFilterInputInvertDestination) Name() string
- func (*IptFilterInputInvertDestination) Timeout() time.Duration
- type IptFilterInputInvertDportAccept
- func (*IptFilterInputInvertDportAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertDportAccept) ContainerSufficient() bool
- func (*IptFilterInputInvertDportAccept) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertDportAccept) LocalSufficient() bool
- func (*IptFilterInputInvertDportAccept) Name() string
- func (*IptFilterInputInvertDportAccept) Timeout() time.Duration
- type IptFilterInputInvertDportDrop
- func (*IptFilterInputInvertDportDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertDportDrop) ContainerSufficient() bool
- func (*IptFilterInputInvertDportDrop) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertDportDrop) LocalSufficient() bool
- func (*IptFilterInputInvertDportDrop) Name() string
- func (*IptFilterInputInvertDportDrop) Timeout() time.Duration
- type IptFilterInputInvertSource
- func (*IptFilterInputInvertSource) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertSource) ContainerSufficient() bool
- func (*IptFilterInputInvertSource) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputInvertSource) LocalSufficient() bool
- func (*IptFilterInputInvertSource) Name() string
- func (*IptFilterInputInvertSource) Timeout() time.Duration
- type IptFilterInputJumpBasic
- func (*IptFilterInputJumpBasic) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpBasic) ContainerSufficient() bool
- func (*IptFilterInputJumpBasic) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpBasic) LocalSufficient() bool
- func (*IptFilterInputJumpBasic) Name() string
- func (*IptFilterInputJumpBasic) Timeout() time.Duration
- type IptFilterInputJumpBuiltin
- func (*IptFilterInputJumpBuiltin) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpBuiltin) ContainerSufficient() bool
- func (*IptFilterInputJumpBuiltin) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpBuiltin) LocalSufficient() bool
- func (*IptFilterInputJumpBuiltin) Name() string
- func (*IptFilterInputJumpBuiltin) Timeout() time.Duration
- type IptFilterInputJumpReturn
- func (*IptFilterInputJumpReturn) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpReturn) ContainerSufficient() bool
- func (*IptFilterInputJumpReturn) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpReturn) LocalSufficient() bool
- func (*IptFilterInputJumpReturn) Name() string
- func (*IptFilterInputJumpReturn) Timeout() time.Duration
- type IptFilterInputJumpReturnDrop
- func (*IptFilterInputJumpReturnDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpReturnDrop) ContainerSufficient() bool
- func (*IptFilterInputJumpReturnDrop) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpReturnDrop) LocalSufficient() bool
- func (*IptFilterInputJumpReturnDrop) Name() string
- func (*IptFilterInputJumpReturnDrop) Timeout() time.Duration
- type IptFilterInputJumpTwice
- func (*IptFilterInputJumpTwice) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpTwice) ContainerSufficient() bool
- func (*IptFilterInputJumpTwice) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputJumpTwice) LocalSufficient() bool
- func (*IptFilterInputJumpTwice) Name() string
- func (*IptFilterInputJumpTwice) Timeout() time.Duration
- type IptFilterInputReturnUnderflow
- func (*IptFilterInputReturnUnderflow) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputReturnUnderflow) ContainerSufficient() bool
- func (*IptFilterInputReturnUnderflow) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputReturnUnderflow) LocalSufficient() bool
- func (*IptFilterInputReturnUnderflow) Name() string
- func (*IptFilterInputReturnUnderflow) Timeout() time.Duration
- type IptFilterInputSerializeJump
- func (*IptFilterInputSerializeJump) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputSerializeJump) ContainerSufficient() bool
- func (*IptFilterInputSerializeJump) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputSerializeJump) LocalSufficient() bool
- func (*IptFilterInputSerializeJump) Name() string
- func (*IptFilterInputSerializeJump) Timeout() time.Duration
- type IptFilterInputSource
- func (*IptFilterInputSource) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputSource) ContainerSufficient() bool
- func (*IptFilterInputSource) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*IptFilterInputSource) LocalSufficient() bool
- func (*IptFilterInputSource) Name() string
- func (*IptFilterInputSource) Timeout() time.Duration
- type JumpAndDropAll
- func (*JumpAndDropAll) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*JumpAndDropAll) ContainerSufficient() bool
- func (*JumpAndDropAll) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
- func (*JumpAndDropAll) LocalSufficient() bool
- func (*JumpAndDropAll) Name() string
- func (*JumpAndDropAll) Timeout() time.Duration
- type TestCase
Constants ¶
const IPExchangePort = 2349
IPExchangePort is the port the container listens on to receive the IP address of the local process.
const NegativeTimeout = 2 * time.Second
NegativeTimeout is the time tests should wait to establish the negative case, i.e. that connections are not made.
const TerminalStatement = "Finished!"
TerminalStatement is the last statement in the test runner.
Variables ¶
var Tests = map[string]TestCase{}
Tests maps test names to TestCase.
New TestCases are added by calling RegisterTestCase in an init function.
Functions ¶
func RegisterTestCase ¶
func RegisterTestCase(tc TestCase)
RegisterTestCase registers tc so it can be run.
Types ¶
type FilterInputDropAll ¶
type FilterInputDropAll struct {
// contains filtered or unexported fields
}
FilterInputDropAll tests that we can drop all traffic to the INPUT chain.
func (*FilterInputDropAll) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*FilterInputDropAll) ContainerSufficient ¶
func (*FilterInputDropAll) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*FilterInputDropAll) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*FilterInputDropAll) LocalSufficient ¶
func (*FilterInputDropAll) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*FilterInputDropAll) Name ¶
func (*FilterInputDropAll) Name() string
Name implements TestCase.Name.
func (*FilterInputDropAll) Timeout ¶
func (*FilterInputDropAll) Timeout() time.Duration
Timeout returns the timeout for the test case.
type FilterInputMultiUDPRules ¶
type FilterInputMultiUDPRules struct {
// contains filtered or unexported fields
}
FilterInputMultiUDPRules verifies that multiple UDP rules are applied correctly. This has the added benefit of testing whether we're serializing rules correctly -- if we do it incorrectly, the iptables tool will misunderstand and save the wrong tables.
func (*FilterInputMultiUDPRules) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*FilterInputMultiUDPRules) ContainerSufficient ¶
func (*FilterInputMultiUDPRules) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*FilterInputMultiUDPRules) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*FilterInputMultiUDPRules) LocalSufficient ¶
func (*FilterInputMultiUDPRules) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*FilterInputMultiUDPRules) Name ¶
func (*FilterInputMultiUDPRules) Name() string
Name implements TestCase.Name.
type FilterInputRequireProtocolUDP ¶
type FilterInputRequireProtocolUDP struct {
// contains filtered or unexported fields
}
FilterInputRequireProtocolUDP checks that "-m udp" requires "-p udp" to be specified.
func (*FilterInputRequireProtocolUDP) ContainerAction ¶
func (*FilterInputRequireProtocolUDP) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*FilterInputRequireProtocolUDP) ContainerSufficient ¶
func (*FilterInputRequireProtocolUDP) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*FilterInputRequireProtocolUDP) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*FilterInputRequireProtocolUDP) LocalSufficient ¶
func (*FilterInputRequireProtocolUDP) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*FilterInputRequireProtocolUDP) Name ¶
func (*FilterInputRequireProtocolUDP) Name() string
Name implements TestCase.Name.
type IptFilterInputCreateUserChain ¶
type IptFilterInputCreateUserChain struct {
// contains filtered or unexported fields
}
IptFilterInputCreateUserChain tests chain creation.
func (*IptFilterInputCreateUserChain) ContainerAction ¶
func (*IptFilterInputCreateUserChain) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputCreateUserChain) ContainerSufficient ¶
func (*IptFilterInputCreateUserChain) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputCreateUserChain) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputCreateUserChain) LocalSufficient ¶
func (*IptFilterInputCreateUserChain) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputCreateUserChain) Name ¶
func (*IptFilterInputCreateUserChain) Name() string
Name implements TestCase.Name.
type IptFilterInputDefaultPolicyAccept ¶
type IptFilterInputDefaultPolicyAccept struct {
// contains filtered or unexported fields
}
IptFilterInputDefaultPolicyAccept tests the default ACCEPT policy.
func (*IptFilterInputDefaultPolicyAccept) ContainerAction ¶
func (*IptFilterInputDefaultPolicyAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDefaultPolicyAccept) ContainerSufficient ¶
func (*IptFilterInputDefaultPolicyAccept) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDefaultPolicyAccept) LocalAction ¶
func (*IptFilterInputDefaultPolicyAccept) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDefaultPolicyAccept) LocalSufficient ¶
func (*IptFilterInputDefaultPolicyAccept) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDefaultPolicyAccept) Name ¶
func (*IptFilterInputDefaultPolicyAccept) Name() string
Name implements TestCase.Name.
type IptFilterInputDefaultPolicyDrop ¶
type IptFilterInputDefaultPolicyDrop struct {
// contains filtered or unexported fields
}
IptFilterInputDefaultPolicyDrop tests the default DROP policy.
func (*IptFilterInputDefaultPolicyDrop) ContainerAction ¶
func (*IptFilterInputDefaultPolicyDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDefaultPolicyDrop) ContainerSufficient ¶
func (*IptFilterInputDefaultPolicyDrop) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDefaultPolicyDrop) LocalAction ¶
func (*IptFilterInputDefaultPolicyDrop) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDefaultPolicyDrop) LocalSufficient ¶
func (*IptFilterInputDefaultPolicyDrop) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDefaultPolicyDrop) Name ¶
func (*IptFilterInputDefaultPolicyDrop) Name() string
Name implements TestCase.Name.
type IptFilterInputDestination ¶
type IptFilterInputDestination struct {
// contains filtered or unexported fields
}
IptFilterInputDestination verifies that we can filter packets via `-d <ipaddr>`.
func (*IptFilterInputDestination) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDestination) ContainerSufficient ¶
func (*IptFilterInputDestination) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDestination) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDestination) LocalSufficient ¶
func (*IptFilterInputDestination) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDestination) Name ¶
func (*IptFilterInputDestination) Name() string
Name implements TestCase.Name.
type IptFilterInputDropAll ¶
type IptFilterInputDropAll struct {
// contains filtered or unexported fields
}
IptFilterInputDropAll tests that we can drop all traffic to the INPUT chain.
func (*IptFilterInputDropAll) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDropAll) ContainerSufficient ¶
func (*IptFilterInputDropAll) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropAll) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDropAll) LocalSufficient ¶
func (*IptFilterInputDropAll) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropAll) Name ¶
func (*IptFilterInputDropAll) Name() string
Name implements TestCase.Name.
type IptFilterInputDropAllExceptOneDstPort ¶
type IptFilterInputDropAllExceptOneDstPort struct {
// contains filtered or unexported fields
}
IptFilterInputDropAllExceptOneDstPort tests that only packets destined to a specific port are accepted, while connections to any other port are dropped. The rule uses a negated multiport destination port specification to allow only one port.
Rule(s):
-P INPUT DROP -A INPUT -p tcp -m multiport ! --dports 0:442,444:32000,32001:65535 -j ACCEPT
func (*IptFilterInputDropAllExceptOneDstPort) ContainerAction ¶
func (*IptFilterInputDropAllExceptOneDstPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction. It installs a catch-all DROP policy for the input chain and a single ACCEPT rule for packets destined to the allowed port. The container listens on allowed and blocked ports; only the former should receive a connection.
func (*IptFilterInputDropAllExceptOneDstPort) ContainerSufficient ¶
func (*IptFilterInputDropAllExceptOneDstPort) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropAllExceptOneDstPort) LocalAction ¶
func (*IptFilterInputDropAllExceptOneDstPort) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction. It connects to both the allowed port and the blocked port, only the former should succeed.
func (*IptFilterInputDropAllExceptOneDstPort) LocalSufficient ¶
func (*IptFilterInputDropAllExceptOneDstPort) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropAllExceptOneDstPort) Name ¶
func (*IptFilterInputDropAllExceptOneDstPort) Name() string
Name implements TestCase.Name.
type IptFilterInputDropAllSrcPorts ¶
type IptFilterInputDropAllSrcPorts struct {
// contains filtered or unexported fields
}
IptFilterInputDropAllSrcPorts tests that all TCP packets, regardless of source port, are dropped. The rule covers all the source ports so that no incoming TCP packet on INPUT is accepted.
Rule(s):
-A INPUT -p tcp -m multiport --sports 0,1,2:32000,32001:65535 -j DROP
func (*IptFilterInputDropAllSrcPorts) ContainerAction ¶
func (*IptFilterInputDropAllSrcPorts) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction. The container will then attempt to receive a UDP packet, which should never arrive due to the DROP rule.
func (*IptFilterInputDropAllSrcPorts) ContainerSufficient ¶
func (*IptFilterInputDropAllSrcPorts) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropAllSrcPorts) LocalAction ¶
LocalAction implements TestCase.LocalAction. It tries to connect to the container's test port, but the DROP rule ensures the packet never arrives at the port.
func (*IptFilterInputDropAllSrcPorts) LocalSufficient ¶
func (*IptFilterInputDropAllSrcPorts) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropAllSrcPorts) Name ¶
func (*IptFilterInputDropAllSrcPorts) Name() string
Name implements TestCase.Name.
type IptFilterInputDropDifferentUDPPort ¶
type IptFilterInputDropDifferentUDPPort struct {
// contains filtered or unexported fields
}
IptFilterInputDropDifferentUDPPort tests that dropping traffic for a single UDP port doesn't drop packets on other ports.
func (*IptFilterInputDropDifferentUDPPort) ContainerAction ¶
func (*IptFilterInputDropDifferentUDPPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDropDifferentUDPPort) ContainerSufficient ¶
func (*IptFilterInputDropDifferentUDPPort) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropDifferentUDPPort) LocalAction ¶
func (*IptFilterInputDropDifferentUDPPort) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDropDifferentUDPPort) LocalSufficient ¶
func (*IptFilterInputDropDifferentUDPPort) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropDifferentUDPPort) Name ¶
func (*IptFilterInputDropDifferentUDPPort) Name() string
Name implements TestCase.Name.
type IptFilterInputDropOnlyUDP ¶
type IptFilterInputDropOnlyUDP struct {
// contains filtered or unexported fields
}
IptFilterInputDropOnlyUDP tests that "-p udp -j DROP" only affects UDP traffic.
func (*IptFilterInputDropOnlyUDP) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDropOnlyUDP) ContainerSufficient ¶
func (*IptFilterInputDropOnlyUDP) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropOnlyUDP) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDropOnlyUDP) LocalSufficient ¶
func (*IptFilterInputDropOnlyUDP) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropOnlyUDP) Name ¶
func (*IptFilterInputDropOnlyUDP) Name() string
Name implements TestCase.Name.
type IptFilterInputDropTCPDestPort ¶
type IptFilterInputDropTCPDestPort struct {
// contains filtered or unexported fields
}
IptFilterInputDropTCPDestPort tests that connections are not accepted on specified source ports.
func (*IptFilterInputDropTCPDestPort) ContainerAction ¶
func (*IptFilterInputDropTCPDestPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDropTCPDestPort) ContainerSufficient ¶
func (*IptFilterInputDropTCPDestPort) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropTCPDestPort) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDropTCPDestPort) LocalSufficient ¶
func (*IptFilterInputDropTCPDestPort) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropTCPDestPort) Name ¶
func (*IptFilterInputDropTCPDestPort) Name() string
Name implements TestCase.Name.
type IptFilterInputDropTCPSrcPort ¶
type IptFilterInputDropTCPSrcPort struct {
// contains filtered or unexported fields
}
IptFilterInputDropTCPSrcPort tests that connections are not accepted on specified source ports.
func (*IptFilterInputDropTCPSrcPort) ContainerAction ¶
func (*IptFilterInputDropTCPSrcPort) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDropTCPSrcPort) ContainerSufficient ¶
func (*IptFilterInputDropTCPSrcPort) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropTCPSrcPort) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDropTCPSrcPort) LocalSufficient ¶
func (*IptFilterInputDropTCPSrcPort) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropTCPSrcPort) Name ¶
func (*IptFilterInputDropTCPSrcPort) Name() string
Name implements TestCase.Name.
type IptFilterInputDropUDP ¶
type IptFilterInputDropUDP struct {
// contains filtered or unexported fields
}
IptFilterInputDropUDP tests that we can drop UDP traffic.
func (*IptFilterInputDropUDP) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDropUDP) ContainerSufficient ¶
func (*IptFilterInputDropUDP) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropUDP) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDropUDP) LocalSufficient ¶
func (*IptFilterInputDropUDP) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropUDP) Name ¶
func (*IptFilterInputDropUDP) Name() string
Name implements TestCase.Name.
type IptFilterInputDropUDPPort ¶
type IptFilterInputDropUDPPort struct {
// contains filtered or unexported fields
}
IptFilterInputDropUDPPort tests that we can drop UDP traffic by port.
func (*IptFilterInputDropUDPPort) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputDropUDPPort) ContainerSufficient ¶
func (*IptFilterInputDropUDPPort) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputDropUDPPort) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputDropUDPPort) LocalSufficient ¶
func (*IptFilterInputDropUDPPort) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputDropUDPPort) Name ¶
func (*IptFilterInputDropUDPPort) Name() string
Name implements TestCase.Name.
type IptFilterInputInterface ¶
type IptFilterInputInterface struct {
// contains filtered or unexported fields
}
IptFilterInputInterface tests that packets are not dropped from interface which is not matching the interface name in the iptables rule.
func (*IptFilterInputInterface) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInterface) ContainerSufficient ¶
func (*IptFilterInputInterface) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInterface) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInterface) LocalSufficient ¶
func (*IptFilterInputInterface) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInterface) Name ¶
func (*IptFilterInputInterface) Name() string
Name implements TestCase.Name.
type IptFilterInputInterfaceAccept ¶
type IptFilterInputInterfaceAccept struct {
// contains filtered or unexported fields
}
IptFilterInputInterfaceAccept tests that packets are accepted from interface matching the iptables rule.
func (*IptFilterInputInterfaceAccept) ContainerAction ¶
func (*IptFilterInputInterfaceAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInterfaceAccept) ContainerSufficient ¶
func (*IptFilterInputInterfaceAccept) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInterfaceAccept) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInterfaceAccept) LocalSufficient ¶
func (*IptFilterInputInterfaceAccept) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInterfaceAccept) Name ¶
func (*IptFilterInputInterfaceAccept) Name() string
Name implements TestCase.Name.
type IptFilterInputInterfaceBeginsWith ¶
type IptFilterInputInterfaceBeginsWith struct {
// contains filtered or unexported fields
}
IptFilterInputInterfaceBeginsWith tests that packets are dropped from an interface which begins with the given interface name.
func (*IptFilterInputInterfaceBeginsWith) ContainerAction ¶
func (*IptFilterInputInterfaceBeginsWith) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInterfaceBeginsWith) ContainerSufficient ¶
func (*IptFilterInputInterfaceBeginsWith) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInterfaceBeginsWith) LocalAction ¶
func (*IptFilterInputInterfaceBeginsWith) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInterfaceBeginsWith) LocalSufficient ¶
func (*IptFilterInputInterfaceBeginsWith) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInterfaceBeginsWith) Name ¶
func (*IptFilterInputInterfaceBeginsWith) Name() string
Name implements TestCase.Name.
type IptFilterInputInterfaceDrop ¶
type IptFilterInputInterfaceDrop struct {
// contains filtered or unexported fields
}
IptFilterInputInterfaceDrop tests that packets are dropped from interface matching the iptables rule.
func (*IptFilterInputInterfaceDrop) ContainerAction ¶
func (*IptFilterInputInterfaceDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInterfaceDrop) ContainerSufficient ¶
func (*IptFilterInputInterfaceDrop) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInterfaceDrop) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInterfaceDrop) LocalSufficient ¶
func (*IptFilterInputInterfaceDrop) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInterfaceDrop) Name ¶
func (*IptFilterInputInterfaceDrop) Name() string
Name implements TestCase.Name.
type IptFilterInputInterfaceInvertAccept ¶
type IptFilterInputInterfaceInvertAccept struct {
// contains filtered or unexported fields
}
IptFilterInputInterfaceInvertAccept tests that we can selectively accept packets not matching the specific incoming interface.
func (*IptFilterInputInterfaceInvertAccept) ContainerAction ¶
func (*IptFilterInputInterfaceInvertAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInterfaceInvertAccept) ContainerSufficient ¶
func (*IptFilterInputInterfaceInvertAccept) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInterfaceInvertAccept) LocalAction ¶
func (*IptFilterInputInterfaceInvertAccept) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInterfaceInvertAccept) LocalSufficient ¶
func (*IptFilterInputInterfaceInvertAccept) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInterfaceInvertAccept) Name ¶
func (*IptFilterInputInterfaceInvertAccept) Name() string
Name implements TestCase.Name.
type IptFilterInputInterfaceInvertDrop ¶
type IptFilterInputInterfaceInvertDrop struct {
// contains filtered or unexported fields
}
IptFilterInputInterfaceInvertDrop tests that we selectively drop packets from interface not matching the interface name.
func (*IptFilterInputInterfaceInvertDrop) ContainerAction ¶
func (*IptFilterInputInterfaceInvertDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInterfaceInvertDrop) ContainerSufficient ¶
func (*IptFilterInputInterfaceInvertDrop) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInterfaceInvertDrop) LocalAction ¶
func (*IptFilterInputInterfaceInvertDrop) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInterfaceInvertDrop) LocalSufficient ¶
func (*IptFilterInputInterfaceInvertDrop) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInterfaceInvertDrop) Name ¶
func (*IptFilterInputInterfaceInvertDrop) Name() string
Name implements TestCase.Name.
type IptFilterInputInvertDestination ¶
type IptFilterInputInvertDestination struct {
// contains filtered or unexported fields
}
IptFilterInputInvertDestination verifies that we can filter packets via `! -d <ipaddr>`.
func (*IptFilterInputInvertDestination) ContainerAction ¶
func (*IptFilterInputInvertDestination) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInvertDestination) ContainerSufficient ¶
func (*IptFilterInputInvertDestination) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInvertDestination) LocalAction ¶
func (*IptFilterInputInvertDestination) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInvertDestination) LocalSufficient ¶
func (*IptFilterInputInvertDestination) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInvertDestination) Name ¶
func (*IptFilterInputInvertDestination) Name() string
Name implements TestCase.Name.
type IptFilterInputInvertDportAccept ¶
type IptFilterInputInvertDportAccept struct {
// contains filtered or unexported fields
}
IptFilterInputInvertDportAccept tests that we can send packets on a negated --dport match
func (*IptFilterInputInvertDportAccept) ContainerAction ¶
func (*IptFilterInputInvertDportAccept) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInvertDportAccept) ContainerSufficient ¶
func (*IptFilterInputInvertDportAccept) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInvertDportAccept) LocalAction ¶
func (*IptFilterInputInvertDportAccept) LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInvertDportAccept) LocalSufficient ¶
func (*IptFilterInputInvertDportAccept) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInvertDportAccept) Name ¶
func (*IptFilterInputInvertDportAccept) Name() string
Name implements TestCase.Name.
type IptFilterInputInvertDportDrop ¶
type IptFilterInputInvertDportDrop struct {
// contains filtered or unexported fields
}
IptFilterInputInvertDportDrop tests that we can send packets on a negated --dport match
func (*IptFilterInputInvertDportDrop) ContainerAction ¶
func (*IptFilterInputInvertDportDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInvertDportDrop) ContainerSufficient ¶
func (*IptFilterInputInvertDportDrop) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInvertDportDrop) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInvertDportDrop) LocalSufficient ¶
func (*IptFilterInputInvertDportDrop) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInvertDportDrop) Name ¶
func (*IptFilterInputInvertDportDrop) Name() string
Name implements TestCase.Name.
type IptFilterInputInvertSource ¶
type IptFilterInputInvertSource struct {
// contains filtered or unexported fields
}
IptFilterInputInvertSource verifies that we can filter packets via `! -s <ipaddr>`.
func (*IptFilterInputInvertSource) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputInvertSource) ContainerSufficient ¶
func (*IptFilterInputInvertSource) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputInvertSource) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputInvertSource) LocalSufficient ¶
func (*IptFilterInputInvertSource) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputInvertSource) Name ¶
func (*IptFilterInputInvertSource) Name() string
Name implements TestCase.Name.
type IptFilterInputJumpBasic ¶
type IptFilterInputJumpBasic struct {
// contains filtered or unexported fields
}
IptFilterInputJumpBasic jumps to a chain and executes a rule there.
func (*IptFilterInputJumpBasic) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputJumpBasic) ContainerSufficient ¶
func (*IptFilterInputJumpBasic) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputJumpBasic) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputJumpBasic) LocalSufficient ¶
func (*IptFilterInputJumpBasic) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputJumpBasic) Name ¶
func (*IptFilterInputJumpBasic) Name() string
Name implements TestCase.Name.
type IptFilterInputJumpBuiltin ¶
type IptFilterInputJumpBuiltin struct {
// contains filtered or unexported fields
}
IptFilterInputJumpBuiltin verifies that jumping to a top-levl chain is illegal.
func (*IptFilterInputJumpBuiltin) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputJumpBuiltin) ContainerSufficient ¶
func (*IptFilterInputJumpBuiltin) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputJumpBuiltin) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputJumpBuiltin) LocalSufficient ¶
func (*IptFilterInputJumpBuiltin) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputJumpBuiltin) Name ¶
func (*IptFilterInputJumpBuiltin) Name() string
Name implements TestCase.Name.
type IptFilterInputJumpReturn ¶
type IptFilterInputJumpReturn struct {
// contains filtered or unexported fields
}
IptFilterInputJumpReturn jumps, returns, and executes a rule.
func (*IptFilterInputJumpReturn) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputJumpReturn) ContainerSufficient ¶
func (*IptFilterInputJumpReturn) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputJumpReturn) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputJumpReturn) LocalSufficient ¶
func (*IptFilterInputJumpReturn) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputJumpReturn) Name ¶
func (*IptFilterInputJumpReturn) Name() string
Name implements TestCase.Name.
type IptFilterInputJumpReturnDrop ¶
type IptFilterInputJumpReturnDrop struct {
// contains filtered or unexported fields
}
IptFilterInputJumpReturnDrop jumps to a chain, returns, and DROPs packets.
func (*IptFilterInputJumpReturnDrop) ContainerAction ¶
func (*IptFilterInputJumpReturnDrop) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputJumpReturnDrop) ContainerSufficient ¶
func (*IptFilterInputJumpReturnDrop) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputJumpReturnDrop) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputJumpReturnDrop) LocalSufficient ¶
func (*IptFilterInputJumpReturnDrop) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputJumpReturnDrop) Name ¶
func (*IptFilterInputJumpReturnDrop) Name() string
Name implements TestCase.Name.
type IptFilterInputJumpTwice ¶
type IptFilterInputJumpTwice struct {
// contains filtered or unexported fields
}
IptFilterInputJumpTwice jumps twice, then returns twice and executes a rule.
func (*IptFilterInputJumpTwice) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputJumpTwice) ContainerSufficient ¶
func (*IptFilterInputJumpTwice) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputJumpTwice) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputJumpTwice) LocalSufficient ¶
func (*IptFilterInputJumpTwice) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputJumpTwice) Name ¶
func (*IptFilterInputJumpTwice) Name() string
Name implements TestCase.Name.
type IptFilterInputReturnUnderflow ¶
type IptFilterInputReturnUnderflow struct {
// contains filtered or unexported fields
}
IptFilterInputReturnUnderflow tests that -j RETURN in a built-in chain causes the underflow rule (i.e. default policy) to be executed.
func (*IptFilterInputReturnUnderflow) ContainerAction ¶
func (*IptFilterInputReturnUnderflow) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputReturnUnderflow) ContainerSufficient ¶
func (*IptFilterInputReturnUnderflow) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputReturnUnderflow) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputReturnUnderflow) LocalSufficient ¶
func (*IptFilterInputReturnUnderflow) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputReturnUnderflow) Name ¶
func (*IptFilterInputReturnUnderflow) Name() string
Name implements TestCase.Name.
type IptFilterInputSerializeJump ¶
type IptFilterInputSerializeJump struct {
// contains filtered or unexported fields
}
IptFilterInputSerializeJump verifies that we can serialize jumps.
func (*IptFilterInputSerializeJump) ContainerAction ¶
func (*IptFilterInputSerializeJump) ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputSerializeJump) ContainerSufficient ¶
func (*IptFilterInputSerializeJump) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputSerializeJump) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputSerializeJump) LocalSufficient ¶
func (*IptFilterInputSerializeJump) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputSerializeJump) Name ¶
func (*IptFilterInputSerializeJump) Name() string
Name implements TestCase.Name.
type IptFilterInputSource ¶
type IptFilterInputSource struct {
// contains filtered or unexported fields
}
IptFilterInputSource verifies that we can filter packets via `-s <ipaddr>`.
func (*IptFilterInputSource) ContainerAction ¶
ContainerAction implements TestCase.ContainerAction.
func (*IptFilterInputSource) ContainerSufficient ¶
func (*IptFilterInputSource) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*IptFilterInputSource) LocalAction ¶
LocalAction implements TestCase.LocalAction.
func (*IptFilterInputSource) LocalSufficient ¶
func (*IptFilterInputSource) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*IptFilterInputSource) Name ¶
func (*IptFilterInputSource) Name() string
Name implements TestCase.Name.
type JumpAndDropAll ¶
type JumpAndDropAll struct {
// contains filtered or unexported fields
}
JumpAndDropAll is a test case that verifies that a jump to a chain with a drop rule works.
func (*JumpAndDropAll) ContainerAction ¶
ContainerAction are the commands that are ran in the container.
func (*JumpAndDropAll) ContainerSufficient ¶
func (*JumpAndDropAll) ContainerSufficient() bool
ContainerSufficient implements TestCase.ContainerSufficient.
func (*JumpAndDropAll) LocalAction ¶
LocalAction are the commands that are ran on the test runner.
func (*JumpAndDropAll) LocalSufficient ¶
func (*JumpAndDropAll) LocalSufficient() bool
LocalSufficient implements TestCase.LocalSufficient.
func (*JumpAndDropAll) Name ¶
func (*JumpAndDropAll) Name() string
Name returns the name of the test case.
func (*JumpAndDropAll) Timeout ¶
func (*JumpAndDropAll) Timeout() time.Duration
Timeout implements TestCase.Timeout.
type TestCase ¶
type TestCase interface {
// Name returns the name of the test.
Name() string
// ContainerAction runs inside the container. It receives the IP of the
// local process.
ContainerAction(ctx context.Context, ip net.IP, ipv6 bool) error
// LocalAction runs locally. It receives the IP of the container.
LocalAction(ctx context.Context, ip net.IP, ipv6 bool) error
// ContainerSufficient indicates whether ContainerAction's return value
// alone indicates whether the test succeeded.
ContainerSufficient() bool
// LocalSufficient indicates whether LocalAction's return value alone
// indicates whether the test succeeded.
LocalSufficient() bool
// Timeout indicates the time to wait for the test to finish.
Timeout() time.Duration
}
A TestCase contains one action to run in the container and one to run locally. The actions run concurrently and each must succeed for the test pass.