func (action *ActionRSS) Reload() {
	cptr := action.cptr
	if cptr == nil {
		cptr = (*C.struct_rte_flow_action_rss)(C.malloc(C.sizeof_struct_rte_flow_action_rss))
		*cptr = C.struct_rte_flow_action_rss{}
		action.cptr = cptr
	}
	if len(action.Queues) > 0 {
		sz := C.size_t(len(action.Queues)) * C.size_t(unsafe.Sizeof(action.Queues[0]))
		cQueues := C.malloc(sz)
		C.memcpy(cQueues, unsafe.Pointer(&action.Queues[0]), sz)
		C.free(unsafe.Pointer(cptr.queue))
		cptr.queue_num = C.uint32_t(len(action.Queues))
		cptr.queue = (*C.uint16_t)(cQueues)
	}
	if len(action.Key) > 0 {
		sz := C.size_t(len(action.Key))
		cKey := C.malloc(sz)
		C.memcpy(cKey, unsafe.Pointer(&action.Key[0]), sz)
		C.free(unsafe.Pointer(cptr.key))
		cptr.key_len = C.uint32_t(len(action.Key))
		cptr.key = (*C.uint8_t)(cKey)
	}
	cptr.level = C.uint32_t(action.Level)
	cptr.types = C.uint64_t(action.Types)
	cptr._func = uint32(action.Func)
	runtime.SetFinalizer(action, nil)
	runtime.SetFinalizer(action, (*ActionRSS).free)
}
Reload implements Action interface.
package flow
import "C"
import (
	"runtime"
	"unsafe"
)
var _ Action = (*ActionRSS)(nil)
type ActionRSS struct {
	Func   HashFunction
	Queues []uint16
	Key    []byte
	Level  uint32
	Types  uint64
	cptr *C.struct_rte_flow_action_rss
}
func (action *ActionRSS) free() {
	cptr := action.cptr
	C.free(unsafe.Pointer(cptr.key))
	C.free(unsafe.Pointer(cptr.queue))
	C.free(unsafe.Pointer(cptr))
}