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,
|
|
|
|
}
|
|
|
|
}
|