func ClassReplace(class Class) error {
	return pkgHandle.ClassReplace(class)
}
ClassReplace will replace a class to the system.
quivalent to: `tc class replace $class`
The handle MAY be changed.
If a class already exist with this parent/handle pair, the class is changed.
If a class does not already exist with this parent/handle, a new class is created.
package netlink
import (
	"bytes"
	"encoding/binary"
	"encoding/hex"
	"errors"
	"fmt"
	"syscall"
	"github.com/vishvananda/netlink/nl"
	"golang.org/x/sys/unix"
)
type tcStats struct {
	Bytes      uint64  
	Packets    uint32  
	Drops      uint32  
	Overlimits uint32  
	Bps        uint32  
	Pps        uint32  
	Qlen       uint32
	Backlog    uint32
}
func NewHtbClass(attrs ClassAttrs, cattrs HtbClassAttrs) *HtbClass {
	mtu := 1600
	rate := cattrs.Rate / 8
	ceil := cattrs.Ceil / 8
	buffer := cattrs.Buffer
	cbuffer := cattrs.Cbuffer
	if ceil == 0 {
		ceil = rate
	}
	if buffer == 0 {
		buffer = uint32(float64(rate)/Hz() + float64(mtu))
	}
	buffer = uint32(Xmittime(rate, buffer))
	if cbuffer == 0 {
		cbuffer = uint32(float64(ceil)/Hz() + float64(mtu))
	}
	cbuffer = uint32(Xmittime(ceil, cbuffer))
	return &HtbClass{
		ClassAttrs: attrs,
		Rate:       rate,
		Ceil:       ceil,
		Buffer:     buffer,
		Cbuffer:    cbuffer,
		Quantum:    10,
		Level:      0,
		Prio:       0,
	}
}
func ClassDel(class Class) error {
	return pkgHandle.ClassDel(class)
}
func (h *Handle) ClassDel(class Class) error {
	return h.classModify(unix.RTM_DELTCLASS, 0, class)
}
func ClassChange(class Class) error {
	return pkgHandle.ClassChange(class)
}
func (h *Handle) ClassChange(class Class) error {
	return h.classModify(unix.RTM_NEWTCLASS, 0, class)
}