netlink/rule.go

44 lines
833 B
Go
Raw Normal View History

2015-11-26 10:50:07 +00:00
package netlink
import (
"fmt"
"net"
2015-12-09 13:07:11 +00:00
"github.com/vishvananda/netlink/nl"
2015-11-26 10:50:07 +00:00
)
// Rule represents a netlink rule.
type Rule struct {
2015-12-09 13:07:11 +00:00
*nl.RtMsg
2015-11-26 10:50:07 +00:00
Priority int
2015-12-09 13:07:11 +00:00
Table int
2015-11-26 10:50:07 +00:00
Mark int
Mask int
2015-12-09 13:07:11 +00:00
TunID uint
2015-11-26 10:50:07 +00:00
Goto int
Src *net.IPNet
Dst *net.IPNet
2015-12-09 13:07:11 +00:00
Flow int
2015-11-26 10:50:07 +00:00
IifName string
OifName string
SuppressIfgroup int
SuppressPrefixlen int
}
func (r Rule) String() string {
return fmt.Sprintf("ip rule %d: from %s table %d", r.Priority, r.Src, r.Table)
}
2015-12-09 13:07:11 +00:00
// NewRule return empty rules.
func NewRule() *Rule {
return &Rule{
SuppressIfgroup: -1,
SuppressPrefixlen: -1,
Priority: -1,
Mark: -1,
Mask: -1,
Goto: -1,
Flow: -1,
}
}