Add generated files from
https://github.com/opencord/loxigen ab424bc64cce3716a46ae1799804a76946222c6b
Change-Id: I3ceacf63115a67815a33f4f2a9d2d7e3030c1f1a
diff --git a/of12/action.go b/of12/action.go
new file mode 100644
index 0000000..db3cab7
--- /dev/null
+++ b/of12/action.go
@@ -0,0 +1,5866 @@
+/*
+ * Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+ * Copyright (c) 2011, 2012 Open Networking Foundation
+ * Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler.
+ * Copyright 2018, Red Hat, Inc.
+ */
+// Automatically generated by LOXI from template module.go
+// Do not modify
+
+package of12
+
+import (
+ "bytes"
+ "encoding/binary"
+ "encoding/json"
+ "fmt"
+ "net"
+
+ "github.com/opencord/goloxi"
+)
+
+type Action struct {
+ Type uint16
+ Len uint16
+}
+
+type IAction interface {
+ goloxi.Serializable
+ GetType() uint16
+ GetLen() uint16
+ GetActionName() string
+ GetActionFields() map[string]interface{}
+}
+
+func (self *Action) GetType() uint16 {
+ return self.Type
+}
+
+func (self *Action) SetType(v uint16) {
+ self.Type = v
+}
+
+func (self *Action) GetLen() uint16 {
+ return self.Len
+}
+
+func (self *Action) SetLen(v uint16) {
+ self.Len = v
+}
+
+func (self *Action) Serialize(encoder *goloxi.Encoder) error {
+
+ encoder.PutUint16(uint16(self.Type))
+ encoder.PutUint16(uint16(self.Len))
+
+ return nil
+}
+
+func DecodeAction(decoder *goloxi.Decoder) (goloxi.IAction, error) {
+ _action := &Action{}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("Action packet too short: %d < 4", decoder.Length())
+ }
+ _action.Type = uint16(decoder.ReadUint16())
+ _action.Len = uint16(decoder.ReadUint16())
+ oldDecoder := decoder
+ defer func() { decoder = oldDecoder }()
+ decoder = decoder.SliceDecoder(int(_action.Len), 2+2)
+
+ switch _action.Type {
+ case 0:
+ return DecodeActionOutput(_action, decoder)
+ case 11:
+ return DecodeActionCopyTtlOut(_action, decoder)
+ case 12:
+ return DecodeActionCopyTtlIn(_action, decoder)
+ case 15:
+ return DecodeActionSetMplsTtl(_action, decoder)
+ case 16:
+ return DecodeActionDecMplsTtl(_action, decoder)
+ case 17:
+ return DecodeActionPushVlan(_action, decoder)
+ case 18:
+ return DecodeActionPopVlan(_action, decoder)
+ case 19:
+ return DecodeActionPushMpls(_action, decoder)
+ case 20:
+ return DecodeActionPopMpls(_action, decoder)
+ case 21:
+ return DecodeActionSetQueue(_action, decoder)
+ case 22:
+ return DecodeActionGroup(_action, decoder)
+ case 23:
+ return DecodeActionSetNwTtl(_action, decoder)
+ case 24:
+ return DecodeActionDecNwTtl(_action, decoder)
+ case 25:
+ return DecodeActionSetField(_action, decoder)
+ case 65535:
+ return DecodeActionExperimenter(_action, decoder)
+ default:
+ return nil, fmt.Errorf("Invalid type '%d' for 'Action'", _action.Type)
+ }
+}
+
+func NewAction(_type uint16) *Action {
+ obj := &Action{}
+ obj.Type = _type
+ return obj
+}
+
+type ActionExperimenter struct {
+ *Action
+ Experimenter uint32
+}
+
+type IActionExperimenter interface {
+ goloxi.IAction
+ GetExperimenter() uint32
+}
+
+func (self *ActionExperimenter) GetExperimenter() uint32 {
+ return self.Experimenter
+}
+
+func (self *ActionExperimenter) SetExperimenter(v uint32) {
+ self.Experimenter = v
+}
+
+func (self *ActionExperimenter) Serialize(encoder *goloxi.Encoder) error {
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.Experimenter))
+
+ return nil
+}
+
+func DecodeActionExperimenter(parent *Action, decoder *goloxi.Decoder) (IActionExperimenter, error) {
+ _actionexperimenter := &ActionExperimenter{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionExperimenter packet too short: %d < 4", decoder.Length())
+ }
+ _actionexperimenter.Experimenter = uint32(decoder.ReadUint32())
+
+ switch _actionexperimenter.Experimenter {
+ case 8992:
+ return DecodeActionNicira(_actionexperimenter, decoder)
+ case 6035143:
+ return DecodeActionBsn(_actionexperimenter, decoder)
+ default:
+ return nil, fmt.Errorf("Invalid type '%d' for 'ActionExperimenter'", _actionexperimenter.Experimenter)
+ }
+}
+
+func NewActionExperimenter(_experimenter uint32) *ActionExperimenter {
+ obj := &ActionExperimenter{
+ Action: NewAction(65535),
+ }
+ obj.Experimenter = _experimenter
+ return obj
+}
+func (self *ActionExperimenter) GetActionName() string {
+ return "experimenter"
+}
+
+func (self *ActionExperimenter) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Experimenter": self.Experimenter,
+ }
+}
+
+func (self *ActionExperimenter) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionBsn struct {
+ *ActionExperimenter
+ Subtype uint32
+}
+
+type IActionBsn interface {
+ IActionExperimenter
+ GetSubtype() uint32
+}
+
+func (self *ActionBsn) GetSubtype() uint32 {
+ return self.Subtype
+}
+
+func (self *ActionBsn) SetSubtype(v uint32) {
+ self.Subtype = v
+}
+
+func (self *ActionBsn) Serialize(encoder *goloxi.Encoder) error {
+ if err := self.ActionExperimenter.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.Subtype))
+
+ return nil
+}
+
+func DecodeActionBsn(parent *ActionExperimenter, decoder *goloxi.Decoder) (IActionBsn, error) {
+ _actionbsn := &ActionBsn{ActionExperimenter: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionBsn packet too short: %d < 4", decoder.Length())
+ }
+ _actionbsn.Subtype = uint32(decoder.ReadUint32())
+
+ switch _actionbsn.Subtype {
+ case 1:
+ return DecodeActionBsnMirror(_actionbsn, decoder)
+ case 2:
+ return DecodeActionBsnSetTunnelDst(_actionbsn, decoder)
+ case 4:
+ return DecodeActionBsnChecksum(_actionbsn, decoder)
+ default:
+ return nil, fmt.Errorf("Invalid type '%d' for 'ActionBsn'", _actionbsn.Subtype)
+ }
+}
+
+func NewActionBsn(_subtype uint32) *ActionBsn {
+ obj := &ActionBsn{
+ ActionExperimenter: NewActionExperimenter(6035143),
+ }
+ obj.Subtype = _subtype
+ return obj
+}
+func (self *ActionBsn) GetActionName() string {
+ return "bsn"
+}
+
+func (self *ActionBsn) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Subtype": self.Subtype,
+ }
+}
+
+func (self *ActionBsn) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionBsnChecksum struct {
+ *ActionBsn
+ Checksum Checksum128
+}
+
+type IActionBsnChecksum interface {
+ IActionBsn
+ GetChecksum() Checksum128
+}
+
+func (self *ActionBsnChecksum) GetChecksum() Checksum128 {
+ return self.Checksum
+}
+
+func (self *ActionBsnChecksum) SetChecksum(v Checksum128) {
+ self.Checksum = v
+}
+
+func (self *ActionBsnChecksum) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionBsn.Serialize(encoder); err != nil {
+ return err
+ }
+
+ self.Checksum.Serialize(encoder)
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionBsnChecksum(parent *ActionBsn, decoder *goloxi.Decoder) (*ActionBsnChecksum, error) {
+ _actionbsnchecksum := &ActionBsnChecksum{ActionBsn: parent}
+ if decoder.Length() < 16 {
+ return nil, fmt.Errorf("ActionBsnChecksum packet too short: %d < 16", decoder.Length())
+ }
+ _actionbsnchecksum.Checksum.Decode(decoder)
+ return _actionbsnchecksum, nil
+}
+
+func NewActionBsnChecksum() *ActionBsnChecksum {
+ obj := &ActionBsnChecksum{
+ ActionBsn: NewActionBsn(4),
+ }
+ return obj
+}
+func (self *ActionBsnChecksum) GetActionName() string {
+ return "bsn_checksum"
+}
+
+func (self *ActionBsnChecksum) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Checksum": self.Checksum,
+ }
+}
+
+func (self *ActionBsnChecksum) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionBsnMirror struct {
+ *ActionBsn
+ DestPort uint32
+ VlanTag uint32
+ CopyStage uint8
+}
+
+type IActionBsnMirror interface {
+ IActionBsn
+ GetDestPort() uint32
+ GetVlanTag() uint32
+ GetCopyStage() uint8
+}
+
+func (self *ActionBsnMirror) GetDestPort() uint32 {
+ return self.DestPort
+}
+
+func (self *ActionBsnMirror) SetDestPort(v uint32) {
+ self.DestPort = v
+}
+
+func (self *ActionBsnMirror) GetVlanTag() uint32 {
+ return self.VlanTag
+}
+
+func (self *ActionBsnMirror) SetVlanTag(v uint32) {
+ self.VlanTag = v
+}
+
+func (self *ActionBsnMirror) GetCopyStage() uint8 {
+ return self.CopyStage
+}
+
+func (self *ActionBsnMirror) SetCopyStage(v uint8) {
+ self.CopyStage = v
+}
+
+func (self *ActionBsnMirror) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionBsn.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.DestPort))
+ encoder.PutUint32(uint32(self.VlanTag))
+ encoder.PutUint8(uint8(self.CopyStage))
+ encoder.Write(bytes.Repeat([]byte{0}, 3))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionBsnMirror(parent *ActionBsn, decoder *goloxi.Decoder) (*ActionBsnMirror, error) {
+ _actionbsnmirror := &ActionBsnMirror{ActionBsn: parent}
+ if decoder.Length() < 12 {
+ return nil, fmt.Errorf("ActionBsnMirror packet too short: %d < 12", decoder.Length())
+ }
+ _actionbsnmirror.DestPort = uint32(decoder.ReadUint32())
+ _actionbsnmirror.VlanTag = uint32(decoder.ReadUint32())
+ _actionbsnmirror.CopyStage = uint8(decoder.ReadByte())
+ decoder.Skip(3)
+ return _actionbsnmirror, nil
+}
+
+func NewActionBsnMirror() *ActionBsnMirror {
+ obj := &ActionBsnMirror{
+ ActionBsn: NewActionBsn(1),
+ }
+ return obj
+}
+func (self *ActionBsnMirror) GetActionName() string {
+ return "bsn_mirror"
+}
+
+func (self *ActionBsnMirror) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "DestPort": self.DestPort,
+ "VlanTag": self.VlanTag,
+ "CopyStage": self.CopyStage,
+ }
+}
+
+func (self *ActionBsnMirror) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionBsnSetTunnelDst struct {
+ *ActionBsn
+ Dst uint32
+}
+
+type IActionBsnSetTunnelDst interface {
+ IActionBsn
+ GetDst() uint32
+}
+
+func (self *ActionBsnSetTunnelDst) GetDst() uint32 {
+ return self.Dst
+}
+
+func (self *ActionBsnSetTunnelDst) SetDst(v uint32) {
+ self.Dst = v
+}
+
+func (self *ActionBsnSetTunnelDst) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionBsn.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.Dst))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionBsnSetTunnelDst(parent *ActionBsn, decoder *goloxi.Decoder) (*ActionBsnSetTunnelDst, error) {
+ _actionbsnsettunneldst := &ActionBsnSetTunnelDst{ActionBsn: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionBsnSetTunnelDst packet too short: %d < 4", decoder.Length())
+ }
+ _actionbsnsettunneldst.Dst = uint32(decoder.ReadUint32())
+ return _actionbsnsettunneldst, nil
+}
+
+func NewActionBsnSetTunnelDst() *ActionBsnSetTunnelDst {
+ obj := &ActionBsnSetTunnelDst{
+ ActionBsn: NewActionBsn(2),
+ }
+ return obj
+}
+func (self *ActionBsnSetTunnelDst) GetActionName() string {
+ return "bsn_set_tunnel_dst"
+}
+
+func (self *ActionBsnSetTunnelDst) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Dst": self.Dst,
+ }
+}
+
+func (self *ActionBsnSetTunnelDst) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionCopyTtlIn struct {
+ *Action
+}
+
+type IActionCopyTtlIn interface {
+ goloxi.IAction
+}
+
+func (self *ActionCopyTtlIn) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionCopyTtlIn(parent *Action, decoder *goloxi.Decoder) (*ActionCopyTtlIn, error) {
+ _actioncopyttlin := &ActionCopyTtlIn{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionCopyTtlIn packet too short: %d < 4", decoder.Length())
+ }
+ decoder.Skip(4)
+ return _actioncopyttlin, nil
+}
+
+func NewActionCopyTtlIn() *ActionCopyTtlIn {
+ obj := &ActionCopyTtlIn{
+ Action: NewAction(12),
+ }
+ return obj
+}
+func (self *ActionCopyTtlIn) GetActionName() string {
+ return "copy_ttl_in"
+}
+
+func (self *ActionCopyTtlIn) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionCopyTtlIn) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionCopyTtlOut struct {
+ *Action
+}
+
+type IActionCopyTtlOut interface {
+ goloxi.IAction
+}
+
+func (self *ActionCopyTtlOut) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionCopyTtlOut(parent *Action, decoder *goloxi.Decoder) (*ActionCopyTtlOut, error) {
+ _actioncopyttlout := &ActionCopyTtlOut{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionCopyTtlOut packet too short: %d < 4", decoder.Length())
+ }
+ decoder.Skip(4)
+ return _actioncopyttlout, nil
+}
+
+func NewActionCopyTtlOut() *ActionCopyTtlOut {
+ obj := &ActionCopyTtlOut{
+ Action: NewAction(11),
+ }
+ return obj
+}
+func (self *ActionCopyTtlOut) GetActionName() string {
+ return "copy_ttl_out"
+}
+
+func (self *ActionCopyTtlOut) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionCopyTtlOut) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionDecMplsTtl struct {
+ *Action
+}
+
+type IActionDecMplsTtl interface {
+ goloxi.IAction
+}
+
+func (self *ActionDecMplsTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionDecMplsTtl(parent *Action, decoder *goloxi.Decoder) (*ActionDecMplsTtl, error) {
+ _actiondecmplsttl := &ActionDecMplsTtl{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionDecMplsTtl packet too short: %d < 4", decoder.Length())
+ }
+ decoder.Skip(4)
+ return _actiondecmplsttl, nil
+}
+
+func NewActionDecMplsTtl() *ActionDecMplsTtl {
+ obj := &ActionDecMplsTtl{
+ Action: NewAction(16),
+ }
+ return obj
+}
+func (self *ActionDecMplsTtl) GetActionName() string {
+ return "dec_mpls_ttl"
+}
+
+func (self *ActionDecMplsTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionDecMplsTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionDecNwTtl struct {
+ *Action
+}
+
+type IActionDecNwTtl interface {
+ goloxi.IAction
+}
+
+func (self *ActionDecNwTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionDecNwTtl(parent *Action, decoder *goloxi.Decoder) (*ActionDecNwTtl, error) {
+ _actiondecnwttl := &ActionDecNwTtl{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionDecNwTtl packet too short: %d < 4", decoder.Length())
+ }
+ decoder.Skip(4)
+ return _actiondecnwttl, nil
+}
+
+func NewActionDecNwTtl() *ActionDecNwTtl {
+ obj := &ActionDecNwTtl{
+ Action: NewAction(24),
+ }
+ return obj
+}
+func (self *ActionDecNwTtl) GetActionName() string {
+ return "dec_nw_ttl"
+}
+
+func (self *ActionDecNwTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionDecNwTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionGroup struct {
+ *Action
+ GroupId uint32
+}
+
+type IActionGroup interface {
+ goloxi.IAction
+ GetGroupId() uint32
+}
+
+func (self *ActionGroup) GetGroupId() uint32 {
+ return self.GroupId
+}
+
+func (self *ActionGroup) SetGroupId(v uint32) {
+ self.GroupId = v
+}
+
+func (self *ActionGroup) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.GroupId))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionGroup(parent *Action, decoder *goloxi.Decoder) (*ActionGroup, error) {
+ _actiongroup := &ActionGroup{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionGroup packet too short: %d < 4", decoder.Length())
+ }
+ _actiongroup.GroupId = uint32(decoder.ReadUint32())
+ return _actiongroup, nil
+}
+
+func NewActionGroup() *ActionGroup {
+ obj := &ActionGroup{
+ Action: NewAction(22),
+ }
+ return obj
+}
+func (self *ActionGroup) GetActionName() string {
+ return "group"
+}
+
+func (self *ActionGroup) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "GroupId": self.GroupId,
+ }
+}
+
+func (self *ActionGroup) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNicira struct {
+ *ActionExperimenter
+ Subtype uint16
+}
+
+type IActionNicira interface {
+ IActionExperimenter
+ GetSubtype() uint16
+}
+
+func (self *ActionNicira) GetSubtype() uint16 {
+ return self.Subtype
+}
+
+func (self *ActionNicira) SetSubtype(v uint16) {
+ self.Subtype = v
+}
+
+func (self *ActionNicira) Serialize(encoder *goloxi.Encoder) error {
+ if err := self.ActionExperimenter.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Subtype))
+
+ return nil
+}
+
+func DecodeActionNicira(parent *ActionExperimenter, decoder *goloxi.Decoder) (IActionNicira, error) {
+ _actionnicira := &ActionNicira{ActionExperimenter: parent}
+ if decoder.Length() < 2 {
+ return nil, fmt.Errorf("ActionNicira packet too short: %d < 2", decoder.Length())
+ }
+ _actionnicira.Subtype = uint16(decoder.ReadUint16())
+
+ switch _actionnicira.Subtype {
+ case 1:
+ return DecodeActionNxResubmit(_actionnicira, decoder)
+ case 2:
+ return DecodeActionNxSetTunnel(_actionnicira, decoder)
+ case 4:
+ return DecodeActionNxSetQueue(_actionnicira, decoder)
+ case 5:
+ return DecodeActionNxPopQueue(_actionnicira, decoder)
+ case 6:
+ return DecodeActionNxRegMove(_actionnicira, decoder)
+ case 7:
+ return DecodeActionNxRegLoad(_actionnicira, decoder)
+ case 8:
+ return DecodeActionNxNote(_actionnicira, decoder)
+ case 9:
+ return DecodeActionNxSetTunnel64(_actionnicira, decoder)
+ case 10:
+ return DecodeActionNxMultipath(_actionnicira, decoder)
+ case 12:
+ return DecodeActionNxBundle(_actionnicira, decoder)
+ case 13:
+ return DecodeActionNxBundleLoadInPort(_actionnicira, decoder)
+ case 14:
+ return DecodeActionResubmit(_actionnicira, decoder)
+ case 15:
+ return DecodeActionNxOutputReg(_actionnicira, decoder)
+ case 16:
+ return DecodeActionNxLearn(_actionnicira, decoder)
+ case 17:
+ return DecodeActionNxExit(_actionnicira, decoder)
+ case 18:
+ return DecodeActionNiciraDecTtl(_actionnicira, decoder)
+ case 19:
+ return DecodeActionNxFinTimeout(_actionnicira, decoder)
+ case 20:
+ return DecodeActionNxController(_actionnicira, decoder)
+ case 21:
+ return DecodeActionNxDecTtlCntIds(_actionnicira, decoder)
+ case 22:
+ return DecodeActionNxWriteMetadata(_actionnicira, decoder)
+ case 23:
+ return DecodeActionNxPushMpls(_actionnicira, decoder)
+ case 24:
+ return DecodeActionNxPopMpls(_actionnicira, decoder)
+ case 25:
+ return DecodeActionNxSetMplsTtl(_actionnicira, decoder)
+ case 26:
+ return DecodeActionNxDecMplsTtl(_actionnicira, decoder)
+ case 27:
+ return DecodeActionNxStackPush(_actionnicira, decoder)
+ case 28:
+ return DecodeActionNxStackPop(_actionnicira, decoder)
+ case 29:
+ return DecodeActionNxSample(_actionnicira, decoder)
+ case 30:
+ return DecodeActionNxSetMplsLabel(_actionnicira, decoder)
+ case 31:
+ return DecodeActionNxSetMplsTc(_actionnicira, decoder)
+ case 32:
+ return DecodeActionNxOutputReg2(_actionnicira, decoder)
+ case 33:
+ return DecodeActionNxRegLoad2(_actionnicira, decoder)
+ case 34:
+ return DecodeActionNxConjunction(_actionnicira, decoder)
+ case 35:
+ return DecodeActionNxCt(_actionnicira, decoder)
+ case 36:
+ return DecodeActionNxNat(_actionnicira, decoder)
+ case 37:
+ return DecodeActionNxController2(_actionnicira, decoder)
+ case 38:
+ return DecodeActionNxSample2(_actionnicira, decoder)
+ case 39:
+ return DecodeActionNxOutputTrunc(_actionnicira, decoder)
+ case 40:
+ return DecodeActionNxGroup(_actionnicira, decoder)
+ case 41:
+ return DecodeActionNxSample3(_actionnicira, decoder)
+ case 42:
+ return DecodeActionNxClone(_actionnicira, decoder)
+ case 43:
+ return DecodeActionNxCtClear(_actionnicira, decoder)
+ case 44:
+ return DecodeActionNxResubmitTableCt(_actionnicira, decoder)
+ case 45:
+ return DecodeActionNxLearn2(_actionnicira, decoder)
+ case 46:
+ return DecodeActionNxEncap(_actionnicira, decoder)
+ case 47:
+ return DecodeActionNxDecap(_actionnicira, decoder)
+ case 48:
+ return DecodeActionNxDecNshTtl(_actionnicira, decoder)
+ case 254:
+ return DecodeActionNxDebugSlow(_actionnicira, decoder)
+ case 255:
+ return DecodeActionNxDebugRecirc(_actionnicira, decoder)
+ default:
+ return nil, fmt.Errorf("Invalid type '%d' for 'ActionNicira'", _actionnicira.Subtype)
+ }
+}
+
+func NewActionNicira(_subtype uint16) *ActionNicira {
+ obj := &ActionNicira{
+ ActionExperimenter: NewActionExperimenter(8992),
+ }
+ obj.Subtype = _subtype
+ return obj
+}
+func (self *ActionNicira) GetActionName() string {
+ return "nicira"
+}
+
+func (self *ActionNicira) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Subtype": self.Subtype,
+ }
+}
+
+func (self *ActionNicira) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNiciraDecTtl struct {
+ *ActionNicira
+}
+
+type IActionNiciraDecTtl interface {
+ IActionNicira
+}
+
+func (self *ActionNiciraDecTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNiciraDecTtl(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNiciraDecTtl, error) {
+ _actionniciradecttl := &ActionNiciraDecTtl{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNiciraDecTtl packet too short: %d < 6", decoder.Length())
+ }
+ decoder.Skip(2)
+ decoder.Skip(4)
+ return _actionniciradecttl, nil
+}
+
+func NewActionNiciraDecTtl() *ActionNiciraDecTtl {
+ obj := &ActionNiciraDecTtl{
+ ActionNicira: NewActionNicira(18),
+ }
+ return obj
+}
+func (self *ActionNiciraDecTtl) GetActionName() string {
+ return "nicira_dec_ttl"
+}
+
+func (self *ActionNiciraDecTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNiciraDecTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxBundle struct {
+ *ActionNicira
+ Algorithm uint16
+ Fields NxHashFields
+ Basis uint16
+ SlaveType ActionNxBundleSlaveType
+ NSlaves uint16
+ OfsNbits uint16
+ Dst goloxi.IOxmId
+}
+
+type IActionNxBundle interface {
+ IActionNicira
+ GetAlgorithm() uint16
+ GetFields() NxHashFields
+ GetBasis() uint16
+ GetSlaveType() ActionNxBundleSlaveType
+ GetNSlaves() uint16
+ GetOfsNbits() uint16
+ GetDst() goloxi.IOxmId
+}
+
+func (self *ActionNxBundle) GetAlgorithm() uint16 {
+ return self.Algorithm
+}
+
+func (self *ActionNxBundle) SetAlgorithm(v uint16) {
+ self.Algorithm = v
+}
+
+func (self *ActionNxBundle) GetFields() NxHashFields {
+ return self.Fields
+}
+
+func (self *ActionNxBundle) SetFields(v NxHashFields) {
+ self.Fields = v
+}
+
+func (self *ActionNxBundle) GetBasis() uint16 {
+ return self.Basis
+}
+
+func (self *ActionNxBundle) SetBasis(v uint16) {
+ self.Basis = v
+}
+
+func (self *ActionNxBundle) GetSlaveType() ActionNxBundleSlaveType {
+ return self.SlaveType
+}
+
+func (self *ActionNxBundle) SetSlaveType(v ActionNxBundleSlaveType) {
+ self.SlaveType = v
+}
+
+func (self *ActionNxBundle) GetNSlaves() uint16 {
+ return self.NSlaves
+}
+
+func (self *ActionNxBundle) SetNSlaves(v uint16) {
+ self.NSlaves = v
+}
+
+func (self *ActionNxBundle) GetOfsNbits() uint16 {
+ return self.OfsNbits
+}
+
+func (self *ActionNxBundle) SetOfsNbits(v uint16) {
+ self.OfsNbits = v
+}
+
+func (self *ActionNxBundle) GetDst() goloxi.IOxmId {
+ return self.Dst
+}
+
+func (self *ActionNxBundle) SetDst(v goloxi.IOxmId) {
+ self.Dst = v
+}
+
+func (self *ActionNxBundle) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Algorithm))
+ encoder.PutUint16(uint16(self.Fields))
+ encoder.PutUint16(uint16(self.Basis))
+ encoder.PutUint32(uint32(self.SlaveType))
+ encoder.PutUint16(uint16(self.NSlaves))
+ encoder.PutUint16(uint16(self.OfsNbits))
+ self.Dst.Serialize(encoder)
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxBundle(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxBundle, error) {
+ _actionnxbundle := &ActionNxBundle{ActionNicira: parent}
+ if decoder.Length() < 22 {
+ return nil, fmt.Errorf("ActionNxBundle packet too short: %d < 22", decoder.Length())
+ }
+ _actionnxbundle.Algorithm = uint16(decoder.ReadUint16())
+ _actionnxbundle.Fields = NxHashFields(decoder.ReadUint16())
+ _actionnxbundle.Basis = uint16(decoder.ReadUint16())
+ _actionnxbundle.SlaveType = ActionNxBundleSlaveType(decoder.ReadUint32())
+ _actionnxbundle.NSlaves = uint16(decoder.ReadUint16())
+ _actionnxbundle.OfsNbits = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxbundle.Dst = obj
+ }
+
+ decoder.Skip(4)
+ return _actionnxbundle, nil
+}
+
+func NewActionNxBundle() *ActionNxBundle {
+ obj := &ActionNxBundle{
+ ActionNicira: NewActionNicira(12),
+ }
+ return obj
+}
+func (self *ActionNxBundle) GetActionName() string {
+ return "nx_bundle"
+}
+
+func (self *ActionNxBundle) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Algorithm": self.Algorithm,
+ "Fields": self.Fields,
+ "Basis": self.Basis,
+ "SlaveType": self.SlaveType,
+ "NSlaves": self.NSlaves,
+ "OfsNbits": self.OfsNbits,
+ "Dst": self.Dst,
+ }
+}
+
+func (self *ActionNxBundle) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxBundleLoad struct {
+ *ActionNicira
+ Algorithm NxBdAlgorithms
+ Fields NxHashFields
+ Basis uint16
+ SlaveType ActionNxBundleSlaveType
+ NSlaves uint16
+ OfsNbits uint16
+ Dst goloxi.IOxmId
+}
+
+type IActionNxBundleLoad interface {
+ IActionNicira
+ GetAlgorithm() NxBdAlgorithms
+ GetFields() NxHashFields
+ GetBasis() uint16
+ GetSlaveType() ActionNxBundleSlaveType
+ GetNSlaves() uint16
+ GetOfsNbits() uint16
+ GetDst() goloxi.IOxmId
+}
+
+func (self *ActionNxBundleLoad) GetAlgorithm() NxBdAlgorithms {
+ return self.Algorithm
+}
+
+func (self *ActionNxBundleLoad) SetAlgorithm(v NxBdAlgorithms) {
+ self.Algorithm = v
+}
+
+func (self *ActionNxBundleLoad) GetFields() NxHashFields {
+ return self.Fields
+}
+
+func (self *ActionNxBundleLoad) SetFields(v NxHashFields) {
+ self.Fields = v
+}
+
+func (self *ActionNxBundleLoad) GetBasis() uint16 {
+ return self.Basis
+}
+
+func (self *ActionNxBundleLoad) SetBasis(v uint16) {
+ self.Basis = v
+}
+
+func (self *ActionNxBundleLoad) GetSlaveType() ActionNxBundleSlaveType {
+ return self.SlaveType
+}
+
+func (self *ActionNxBundleLoad) SetSlaveType(v ActionNxBundleSlaveType) {
+ self.SlaveType = v
+}
+
+func (self *ActionNxBundleLoad) GetNSlaves() uint16 {
+ return self.NSlaves
+}
+
+func (self *ActionNxBundleLoad) SetNSlaves(v uint16) {
+ self.NSlaves = v
+}
+
+func (self *ActionNxBundleLoad) GetOfsNbits() uint16 {
+ return self.OfsNbits
+}
+
+func (self *ActionNxBundleLoad) SetOfsNbits(v uint16) {
+ self.OfsNbits = v
+}
+
+func (self *ActionNxBundleLoad) GetDst() goloxi.IOxmId {
+ return self.Dst
+}
+
+func (self *ActionNxBundleLoad) SetDst(v goloxi.IOxmId) {
+ self.Dst = v
+}
+
+func (self *ActionNxBundleLoad) Serialize(encoder *goloxi.Encoder) error {
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Algorithm))
+ encoder.PutUint16(uint16(self.Fields))
+ encoder.PutUint16(uint16(self.Basis))
+ encoder.PutUint32(uint32(self.SlaveType))
+ encoder.PutUint16(uint16(self.NSlaves))
+ encoder.PutUint16(uint16(self.OfsNbits))
+ self.Dst.Serialize(encoder)
+
+ return nil
+}
+
+func DecodeActionNxBundleLoad(parent *ActionNicira, decoder *goloxi.Decoder) (IActionNxBundleLoad, error) {
+ _actionnxbundleload := &ActionNxBundleLoad{ActionNicira: parent}
+ if decoder.Length() < 18 {
+ return nil, fmt.Errorf("ActionNxBundleLoad packet too short: %d < 18", decoder.Length())
+ }
+ _actionnxbundleload.Algorithm = NxBdAlgorithms(decoder.ReadUint16())
+ _actionnxbundleload.Fields = NxHashFields(decoder.ReadUint16())
+ _actionnxbundleload.Basis = uint16(decoder.ReadUint16())
+ _actionnxbundleload.SlaveType = ActionNxBundleSlaveType(decoder.ReadUint32())
+ _actionnxbundleload.NSlaves = uint16(decoder.ReadUint16())
+ _actionnxbundleload.OfsNbits = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxbundleload.Dst = obj
+ }
+
+ return _actionnxbundleload, nil
+}
+
+func NewActionNxBundleLoad(_slave_type ActionNxBundleSlaveType) *ActionNxBundleLoad {
+ obj := &ActionNxBundleLoad{
+ ActionNicira: NewActionNicira(13),
+ }
+ obj.SlaveType = _slave_type
+ return obj
+}
+func (self *ActionNxBundleLoad) GetActionName() string {
+ return "nx_bundle_load"
+}
+
+func (self *ActionNxBundleLoad) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Algorithm": self.Algorithm,
+ "Fields": self.Fields,
+ "Basis": self.Basis,
+ "SlaveType": self.SlaveType,
+ "NSlaves": self.NSlaves,
+ "OfsNbits": self.OfsNbits,
+ "Dst": self.Dst,
+ }
+}
+
+func (self *ActionNxBundleLoad) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxBundleLoadInPort struct {
+ *ActionNicira
+ Algorithm NxBdAlgorithms
+ Fields NxHashFields
+ Basis uint16
+ SlaveType ActionNxBundleSlaveType
+ NSlaves uint16
+ OfsNbits uint16
+ Dst goloxi.IOxmId
+ InPorts []*ActionNxBundleLoadSlave
+}
+
+type IActionNxBundleLoadInPort interface {
+ IActionNicira
+ GetAlgorithm() NxBdAlgorithms
+ GetFields() NxHashFields
+ GetBasis() uint16
+ GetSlaveType() ActionNxBundleSlaveType
+ GetNSlaves() uint16
+ GetOfsNbits() uint16
+ GetDst() goloxi.IOxmId
+ GetInPorts() []*ActionNxBundleLoadSlave
+}
+
+func (self *ActionNxBundleLoadInPort) GetAlgorithm() NxBdAlgorithms {
+ return self.Algorithm
+}
+
+func (self *ActionNxBundleLoadInPort) SetAlgorithm(v NxBdAlgorithms) {
+ self.Algorithm = v
+}
+
+func (self *ActionNxBundleLoadInPort) GetFields() NxHashFields {
+ return self.Fields
+}
+
+func (self *ActionNxBundleLoadInPort) SetFields(v NxHashFields) {
+ self.Fields = v
+}
+
+func (self *ActionNxBundleLoadInPort) GetBasis() uint16 {
+ return self.Basis
+}
+
+func (self *ActionNxBundleLoadInPort) SetBasis(v uint16) {
+ self.Basis = v
+}
+
+func (self *ActionNxBundleLoadInPort) GetSlaveType() ActionNxBundleSlaveType {
+ return self.SlaveType
+}
+
+func (self *ActionNxBundleLoadInPort) SetSlaveType(v ActionNxBundleSlaveType) {
+ self.SlaveType = v
+}
+
+func (self *ActionNxBundleLoadInPort) GetNSlaves() uint16 {
+ return self.NSlaves
+}
+
+func (self *ActionNxBundleLoadInPort) SetNSlaves(v uint16) {
+ self.NSlaves = v
+}
+
+func (self *ActionNxBundleLoadInPort) GetOfsNbits() uint16 {
+ return self.OfsNbits
+}
+
+func (self *ActionNxBundleLoadInPort) SetOfsNbits(v uint16) {
+ self.OfsNbits = v
+}
+
+func (self *ActionNxBundleLoadInPort) GetDst() goloxi.IOxmId {
+ return self.Dst
+}
+
+func (self *ActionNxBundleLoadInPort) SetDst(v goloxi.IOxmId) {
+ self.Dst = v
+}
+
+func (self *ActionNxBundleLoadInPort) GetInPorts() []*ActionNxBundleLoadSlave {
+ return self.InPorts
+}
+
+func (self *ActionNxBundleLoadInPort) SetInPorts(v []*ActionNxBundleLoadSlave) {
+ self.InPorts = v
+}
+
+func (self *ActionNxBundleLoadInPort) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Algorithm))
+ encoder.PutUint16(uint16(self.Fields))
+ encoder.PutUint16(uint16(self.Basis))
+ encoder.PutUint32(uint32(self.SlaveType))
+ encoder.PutUint16(uint16(self.NSlaves))
+ encoder.PutUint16(uint16(self.OfsNbits))
+ self.Dst.Serialize(encoder)
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ for _, obj := range self.InPorts {
+ if err := obj.Serialize(encoder); err != nil {
+ return err
+ }
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxBundleLoadInPort(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxBundleLoadInPort, error) {
+ _actionnxbundleloadinport := &ActionNxBundleLoadInPort{ActionNicira: parent}
+ if decoder.Length() < 22 {
+ return nil, fmt.Errorf("ActionNxBundleLoadInPort packet too short: %d < 22", decoder.Length())
+ }
+ _actionnxbundleloadinport.Algorithm = NxBdAlgorithms(decoder.ReadUint16())
+ _actionnxbundleloadinport.Fields = NxHashFields(decoder.ReadUint16())
+ _actionnxbundleloadinport.Basis = uint16(decoder.ReadUint16())
+ _actionnxbundleloadinport.SlaveType = ActionNxBundleSlaveType(decoder.ReadUint32())
+ _actionnxbundleloadinport.NSlaves = uint16(decoder.ReadUint16())
+ _actionnxbundleloadinport.OfsNbits = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxbundleloadinport.Dst = obj
+ }
+
+ decoder.Skip(4)
+
+ end := decoder.Offset() + int(_actionnxbundleloadinport.NSlaves)
+ for decoder.Offset() < end {
+ item, err := DecodeActionNxBundleLoadSlave(decoder)
+ if err != nil {
+ return nil, err
+ }
+ if item != nil {
+ _actionnxbundleloadinport.InPorts = append(_actionnxbundleloadinport.InPorts, item)
+ }
+ }
+ return _actionnxbundleloadinport, nil
+}
+
+func NewActionNxBundleLoadInPort() *ActionNxBundleLoadInPort {
+ obj := &ActionNxBundleLoadInPort{
+ ActionNicira: NewActionNicira(13),
+ }
+ return obj
+}
+func (self *ActionNxBundleLoadInPort) GetActionName() string {
+ return "nx_bundle_load_in_port"
+}
+
+func (self *ActionNxBundleLoadInPort) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Algorithm": self.Algorithm,
+ "Fields": self.Fields,
+ "Basis": self.Basis,
+ "SlaveType": self.SlaveType,
+ "NSlaves": self.NSlaves,
+ "OfsNbits": self.OfsNbits,
+ "Dst": self.Dst,
+ "InPorts": self.InPorts,
+ }
+}
+
+func (self *ActionNxBundleLoadInPort) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxClone struct {
+ *ActionNicira
+ Actions []goloxi.IAction
+}
+
+type IActionNxClone interface {
+ IActionNicira
+ GetActions() []goloxi.IAction
+}
+
+func (self *ActionNxClone) GetActions() []goloxi.IAction {
+ return self.Actions
+}
+
+func (self *ActionNxClone) SetActions(v []goloxi.IAction) {
+ self.Actions = v
+}
+
+func (self *ActionNxClone) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 6))
+ for _, obj := range self.Actions {
+ if err := obj.Serialize(encoder); err != nil {
+ return err
+ }
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxClone(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxClone, error) {
+ _actionnxclone := &ActionNxClone{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxClone packet too short: %d < 6", decoder.Length())
+ }
+ decoder.Skip(6)
+
+ for decoder.Length() >= 8 {
+ item, err := DecodeAction(decoder)
+ if err != nil {
+ return nil, err
+ }
+ if item != nil {
+ _actionnxclone.Actions = append(_actionnxclone.Actions, item)
+ }
+ }
+ return _actionnxclone, nil
+}
+
+func NewActionNxClone() *ActionNxClone {
+ obj := &ActionNxClone{
+ ActionNicira: NewActionNicira(42),
+ }
+ return obj
+}
+func (self *ActionNxClone) GetActionName() string {
+ return "nx_clone"
+}
+
+func (self *ActionNxClone) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Actions": self.Actions,
+ }
+}
+
+func (self *ActionNxClone) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxConjunction struct {
+ *ActionNicira
+ Clause uint8
+ NClauses uint8
+ Id uint32
+}
+
+type IActionNxConjunction interface {
+ IActionNicira
+ GetClause() uint8
+ GetNClauses() uint8
+ GetId() uint32
+}
+
+func (self *ActionNxConjunction) GetClause() uint8 {
+ return self.Clause
+}
+
+func (self *ActionNxConjunction) SetClause(v uint8) {
+ self.Clause = v
+}
+
+func (self *ActionNxConjunction) GetNClauses() uint8 {
+ return self.NClauses
+}
+
+func (self *ActionNxConjunction) SetNClauses(v uint8) {
+ self.NClauses = v
+}
+
+func (self *ActionNxConjunction) GetId() uint32 {
+ return self.Id
+}
+
+func (self *ActionNxConjunction) SetId(v uint32) {
+ self.Id = v
+}
+
+func (self *ActionNxConjunction) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint8(uint8(self.Clause))
+ encoder.PutUint8(uint8(self.NClauses))
+ encoder.PutUint32(uint32(self.Id))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxConjunction(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxConjunction, error) {
+ _actionnxconjunction := &ActionNxConjunction{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxConjunction packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxconjunction.Clause = uint8(decoder.ReadByte())
+ _actionnxconjunction.NClauses = uint8(decoder.ReadByte())
+ _actionnxconjunction.Id = uint32(decoder.ReadUint32())
+ return _actionnxconjunction, nil
+}
+
+func NewActionNxConjunction() *ActionNxConjunction {
+ obj := &ActionNxConjunction{
+ ActionNicira: NewActionNicira(34),
+ }
+ return obj
+}
+func (self *ActionNxConjunction) GetActionName() string {
+ return "nx_conjunction"
+}
+
+func (self *ActionNxConjunction) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Clause": self.Clause,
+ "NClauses": self.NClauses,
+ "Id": self.Id,
+ }
+}
+
+func (self *ActionNxConjunction) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxController struct {
+ *ActionNicira
+ MaxLen uint16
+ ControllerId uint16
+ Reason uint8
+}
+
+type IActionNxController interface {
+ IActionNicira
+ GetMaxLen() uint16
+ GetControllerId() uint16
+ GetReason() uint8
+}
+
+func (self *ActionNxController) GetMaxLen() uint16 {
+ return self.MaxLen
+}
+
+func (self *ActionNxController) SetMaxLen(v uint16) {
+ self.MaxLen = v
+}
+
+func (self *ActionNxController) GetControllerId() uint16 {
+ return self.ControllerId
+}
+
+func (self *ActionNxController) SetControllerId(v uint16) {
+ self.ControllerId = v
+}
+
+func (self *ActionNxController) GetReason() uint8 {
+ return self.Reason
+}
+
+func (self *ActionNxController) SetReason(v uint8) {
+ self.Reason = v
+}
+
+func (self *ActionNxController) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.MaxLen))
+ encoder.PutUint16(uint16(self.ControllerId))
+ encoder.PutUint8(uint8(self.Reason))
+ encoder.Write(bytes.Repeat([]byte{0}, 1))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxController(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxController, error) {
+ _actionnxcontroller := &ActionNxController{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxController packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxcontroller.MaxLen = uint16(decoder.ReadUint16())
+ _actionnxcontroller.ControllerId = uint16(decoder.ReadUint16())
+ _actionnxcontroller.Reason = uint8(decoder.ReadByte())
+ decoder.Skip(1)
+ return _actionnxcontroller, nil
+}
+
+func NewActionNxController() *ActionNxController {
+ obj := &ActionNxController{
+ ActionNicira: NewActionNicira(20),
+ }
+ return obj
+}
+func (self *ActionNxController) GetActionName() string {
+ return "nx_controller"
+}
+
+func (self *ActionNxController) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "MaxLen": self.MaxLen,
+ "ControllerId": self.ControllerId,
+ "Reason": self.Reason,
+ }
+}
+
+func (self *ActionNxController) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxController2 struct {
+ *ActionNicira
+ Properties []IActionNxController2Property
+}
+
+type IActionNxController2 interface {
+ IActionNicira
+ GetProperties() []IActionNxController2Property
+}
+
+func (self *ActionNxController2) GetProperties() []IActionNxController2Property {
+ return self.Properties
+}
+
+func (self *ActionNxController2) SetProperties(v []IActionNxController2Property) {
+ self.Properties = v
+}
+
+func (self *ActionNxController2) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 6))
+ for _, obj := range self.Properties {
+ if err := obj.Serialize(encoder); err != nil {
+ return err
+ }
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxController2(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxController2, error) {
+ _actionnxcontroller2 := &ActionNxController2{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxController2 packet too short: %d < 6", decoder.Length())
+ }
+ decoder.Skip(6)
+
+ for decoder.Length() >= 2 {
+ item, err := DecodeActionNxController2Property(decoder)
+ if err != nil {
+ return nil, err
+ }
+ if item != nil {
+ _actionnxcontroller2.Properties = append(_actionnxcontroller2.Properties, item)
+ }
+ }
+ return _actionnxcontroller2, nil
+}
+
+func NewActionNxController2() *ActionNxController2 {
+ obj := &ActionNxController2{
+ ActionNicira: NewActionNicira(37),
+ }
+ return obj
+}
+func (self *ActionNxController2) GetActionName() string {
+ return "nx_controller2"
+}
+
+func (self *ActionNxController2) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Properties": self.Properties,
+ }
+}
+
+func (self *ActionNxController2) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxCt struct {
+ *ActionNicira
+ Flags NxConntrackFlags
+ ZoneSrc goloxi.IOxmId
+ Value uint16
+ RecircTable uint8
+ Alg uint16
+ Actions []goloxi.IAction
+}
+
+type IActionNxCt interface {
+ IActionNicira
+ GetFlags() NxConntrackFlags
+ GetZoneSrc() goloxi.IOxmId
+ GetValue() uint16
+ GetRecircTable() uint8
+ GetAlg() uint16
+ GetActions() []goloxi.IAction
+}
+
+func (self *ActionNxCt) GetFlags() NxConntrackFlags {
+ return self.Flags
+}
+
+func (self *ActionNxCt) SetFlags(v NxConntrackFlags) {
+ self.Flags = v
+}
+
+func (self *ActionNxCt) GetZoneSrc() goloxi.IOxmId {
+ return self.ZoneSrc
+}
+
+func (self *ActionNxCt) SetZoneSrc(v goloxi.IOxmId) {
+ self.ZoneSrc = v
+}
+
+func (self *ActionNxCt) GetValue() uint16 {
+ return self.Value
+}
+
+func (self *ActionNxCt) SetValue(v uint16) {
+ self.Value = v
+}
+
+func (self *ActionNxCt) GetRecircTable() uint8 {
+ return self.RecircTable
+}
+
+func (self *ActionNxCt) SetRecircTable(v uint8) {
+ self.RecircTable = v
+}
+
+func (self *ActionNxCt) GetAlg() uint16 {
+ return self.Alg
+}
+
+func (self *ActionNxCt) SetAlg(v uint16) {
+ self.Alg = v
+}
+
+func (self *ActionNxCt) GetActions() []goloxi.IAction {
+ return self.Actions
+}
+
+func (self *ActionNxCt) SetActions(v []goloxi.IAction) {
+ self.Actions = v
+}
+
+func (self *ActionNxCt) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Flags))
+ self.ZoneSrc.Serialize(encoder)
+ encoder.PutUint16(uint16(self.Value))
+ encoder.PutUint8(uint8(self.RecircTable))
+ encoder.Write(bytes.Repeat([]byte{0}, 3))
+ encoder.PutUint16(uint16(self.Alg))
+ for _, obj := range self.Actions {
+ if err := obj.Serialize(encoder); err != nil {
+ return err
+ }
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxCt(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxCt, error) {
+ _actionnxct := &ActionNxCt{ActionNicira: parent}
+ if decoder.Length() < 14 {
+ return nil, fmt.Errorf("ActionNxCt packet too short: %d < 14", decoder.Length())
+ }
+ _actionnxct.Flags = NxConntrackFlags(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxct.ZoneSrc = obj
+ }
+
+ _actionnxct.Value = uint16(decoder.ReadUint16())
+ _actionnxct.RecircTable = uint8(decoder.ReadByte())
+ decoder.Skip(3)
+ _actionnxct.Alg = uint16(decoder.ReadUint16())
+
+ for decoder.Length() >= 8 {
+ item, err := DecodeAction(decoder)
+ if err != nil {
+ return nil, err
+ }
+ if item != nil {
+ _actionnxct.Actions = append(_actionnxct.Actions, item)
+ }
+ }
+ return _actionnxct, nil
+}
+
+func NewActionNxCt() *ActionNxCt {
+ obj := &ActionNxCt{
+ ActionNicira: NewActionNicira(35),
+ }
+ return obj
+}
+func (self *ActionNxCt) GetActionName() string {
+ return "nx_ct"
+}
+
+func (self *ActionNxCt) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Flags": self.Flags,
+ "ZoneSrc": self.ZoneSrc,
+ "Value": self.Value,
+ "RecircTable": self.RecircTable,
+ "Alg": self.Alg,
+ "Actions": self.Actions,
+ }
+}
+
+func (self *ActionNxCt) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxCtClear struct {
+ *ActionNicira
+}
+
+type IActionNxCtClear interface {
+ IActionNicira
+}
+
+func (self *ActionNxCtClear) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxCtClear(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxCtClear, error) {
+ _actionnxctclear := &ActionNxCtClear{ActionNicira: parent}
+ return _actionnxctclear, nil
+}
+
+func NewActionNxCtClear() *ActionNxCtClear {
+ obj := &ActionNxCtClear{
+ ActionNicira: NewActionNicira(43),
+ }
+ return obj
+}
+func (self *ActionNxCtClear) GetActionName() string {
+ return "nx_ct_clear"
+}
+
+func (self *ActionNxCtClear) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxCtClear) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxDebugRecirc struct {
+ *ActionNicira
+}
+
+type IActionNxDebugRecirc interface {
+ IActionNicira
+}
+
+func (self *ActionNxDebugRecirc) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxDebugRecirc(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxDebugRecirc, error) {
+ _actionnxdebugrecirc := &ActionNxDebugRecirc{ActionNicira: parent}
+ return _actionnxdebugrecirc, nil
+}
+
+func NewActionNxDebugRecirc() *ActionNxDebugRecirc {
+ obj := &ActionNxDebugRecirc{
+ ActionNicira: NewActionNicira(255),
+ }
+ return obj
+}
+func (self *ActionNxDebugRecirc) GetActionName() string {
+ return "nx_debug_recirc"
+}
+
+func (self *ActionNxDebugRecirc) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxDebugRecirc) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxDebugSlow struct {
+ *ActionNicira
+}
+
+type IActionNxDebugSlow interface {
+ IActionNicira
+}
+
+func (self *ActionNxDebugSlow) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxDebugSlow(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxDebugSlow, error) {
+ _actionnxdebugslow := &ActionNxDebugSlow{ActionNicira: parent}
+ return _actionnxdebugslow, nil
+}
+
+func NewActionNxDebugSlow() *ActionNxDebugSlow {
+ obj := &ActionNxDebugSlow{
+ ActionNicira: NewActionNicira(254),
+ }
+ return obj
+}
+func (self *ActionNxDebugSlow) GetActionName() string {
+ return "nx_debug_slow"
+}
+
+func (self *ActionNxDebugSlow) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxDebugSlow) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxDecMplsTtl struct {
+ *ActionNicira
+}
+
+type IActionNxDecMplsTtl interface {
+ IActionNicira
+}
+
+func (self *ActionNxDecMplsTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxDecMplsTtl(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxDecMplsTtl, error) {
+ _actionnxdecmplsttl := &ActionNxDecMplsTtl{ActionNicira: parent}
+ return _actionnxdecmplsttl, nil
+}
+
+func NewActionNxDecMplsTtl() *ActionNxDecMplsTtl {
+ obj := &ActionNxDecMplsTtl{
+ ActionNicira: NewActionNicira(26),
+ }
+ return obj
+}
+func (self *ActionNxDecMplsTtl) GetActionName() string {
+ return "nx_dec_mpls_ttl"
+}
+
+func (self *ActionNxDecMplsTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxDecMplsTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxDecNshTtl struct {
+ *ActionNicira
+}
+
+type IActionNxDecNshTtl interface {
+ IActionNicira
+}
+
+func (self *ActionNxDecNshTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxDecNshTtl(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxDecNshTtl, error) {
+ _actionnxdecnshttl := &ActionNxDecNshTtl{ActionNicira: parent}
+ return _actionnxdecnshttl, nil
+}
+
+func NewActionNxDecNshTtl() *ActionNxDecNshTtl {
+ obj := &ActionNxDecNshTtl{
+ ActionNicira: NewActionNicira(48),
+ }
+ return obj
+}
+func (self *ActionNxDecNshTtl) GetActionName() string {
+ return "nx_dec_nsh_ttl"
+}
+
+func (self *ActionNxDecNshTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxDecNshTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxDecTtlCntIds struct {
+ *ActionNicira
+ NControllers uint16
+}
+
+type IActionNxDecTtlCntIds interface {
+ IActionNicira
+ GetNControllers() uint16
+}
+
+func (self *ActionNxDecTtlCntIds) GetNControllers() uint16 {
+ return self.NControllers
+}
+
+func (self *ActionNxDecTtlCntIds) SetNControllers(v uint16) {
+ self.NControllers = v
+}
+
+func (self *ActionNxDecTtlCntIds) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.NControllers))
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxDecTtlCntIds(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxDecTtlCntIds, error) {
+ _actionnxdecttlcntids := &ActionNxDecTtlCntIds{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxDecTtlCntIds packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxdecttlcntids.NControllers = uint16(decoder.ReadUint16())
+ decoder.Skip(4)
+ return _actionnxdecttlcntids, nil
+}
+
+func NewActionNxDecTtlCntIds() *ActionNxDecTtlCntIds {
+ obj := &ActionNxDecTtlCntIds{
+ ActionNicira: NewActionNicira(21),
+ }
+ return obj
+}
+func (self *ActionNxDecTtlCntIds) GetActionName() string {
+ return "nx_dec_ttl_cnt_ids"
+}
+
+func (self *ActionNxDecTtlCntIds) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "NControllers": self.NControllers,
+ }
+}
+
+func (self *ActionNxDecTtlCntIds) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxDecap struct {
+ *ActionNicira
+ NewPktType uint32
+}
+
+type IActionNxDecap interface {
+ IActionNicira
+ GetNewPktType() uint32
+}
+
+func (self *ActionNxDecap) GetNewPktType() uint32 {
+ return self.NewPktType
+}
+
+func (self *ActionNxDecap) SetNewPktType(v uint32) {
+ self.NewPktType = v
+}
+
+func (self *ActionNxDecap) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ encoder.PutUint32(uint32(self.NewPktType))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxDecap(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxDecap, error) {
+ _actionnxdecap := &ActionNxDecap{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxDecap packet too short: %d < 6", decoder.Length())
+ }
+ decoder.Skip(2)
+ _actionnxdecap.NewPktType = uint32(decoder.ReadUint32())
+ return _actionnxdecap, nil
+}
+
+func NewActionNxDecap() *ActionNxDecap {
+ obj := &ActionNxDecap{
+ ActionNicira: NewActionNicira(47),
+ }
+ return obj
+}
+func (self *ActionNxDecap) GetActionName() string {
+ return "nx_decap"
+}
+
+func (self *ActionNxDecap) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "NewPktType": self.NewPktType,
+ }
+}
+
+func (self *ActionNxDecap) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxEncap struct {
+ *ActionNicira
+ HdrSize uint16
+ PacketType PacketType
+ Props []IEdPropHeader
+}
+
+type IActionNxEncap interface {
+ IActionNicira
+ GetHdrSize() uint16
+ GetPacketType() PacketType
+ GetProps() []IEdPropHeader
+}
+
+func (self *ActionNxEncap) GetHdrSize() uint16 {
+ return self.HdrSize
+}
+
+func (self *ActionNxEncap) SetHdrSize(v uint16) {
+ self.HdrSize = v
+}
+
+func (self *ActionNxEncap) GetPacketType() PacketType {
+ return self.PacketType
+}
+
+func (self *ActionNxEncap) SetPacketType(v PacketType) {
+ self.PacketType = v
+}
+
+func (self *ActionNxEncap) GetProps() []IEdPropHeader {
+ return self.Props
+}
+
+func (self *ActionNxEncap) SetProps(v []IEdPropHeader) {
+ self.Props = v
+}
+
+func (self *ActionNxEncap) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.HdrSize))
+ encoder.PutUint32(uint32(self.PacketType))
+ for _, obj := range self.Props {
+ if err := obj.Serialize(encoder); err != nil {
+ return err
+ }
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxEncap(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxEncap, error) {
+ _actionnxencap := &ActionNxEncap{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxEncap packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxencap.HdrSize = uint16(decoder.ReadUint16())
+ _actionnxencap.PacketType = PacketType(decoder.ReadUint32())
+
+ for decoder.Length() >= 4 {
+ item, err := DecodeEdPropHeader(decoder)
+ if err != nil {
+ return nil, err
+ }
+ if item != nil {
+ _actionnxencap.Props = append(_actionnxencap.Props, item)
+ }
+ }
+ return _actionnxencap, nil
+}
+
+func NewActionNxEncap() *ActionNxEncap {
+ obj := &ActionNxEncap{
+ ActionNicira: NewActionNicira(46),
+ }
+ return obj
+}
+func (self *ActionNxEncap) GetActionName() string {
+ return "nx_encap"
+}
+
+func (self *ActionNxEncap) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "HdrSize": self.HdrSize,
+ "PacketType": self.PacketType,
+ "Props": self.Props,
+ }
+}
+
+func (self *ActionNxEncap) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxExit struct {
+ *ActionNicira
+}
+
+type IActionNxExit interface {
+ IActionNicira
+}
+
+func (self *ActionNxExit) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxExit(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxExit, error) {
+ _actionnxexit := &ActionNxExit{ActionNicira: parent}
+ return _actionnxexit, nil
+}
+
+func NewActionNxExit() *ActionNxExit {
+ obj := &ActionNxExit{
+ ActionNicira: NewActionNicira(17),
+ }
+ return obj
+}
+func (self *ActionNxExit) GetActionName() string {
+ return "nx_exit"
+}
+
+func (self *ActionNxExit) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxExit) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxFinTimeout struct {
+ *ActionNicira
+ FinIdleTimeout uint16
+ FinHardTimeout uint16
+}
+
+type IActionNxFinTimeout interface {
+ IActionNicira
+ GetFinIdleTimeout() uint16
+ GetFinHardTimeout() uint16
+}
+
+func (self *ActionNxFinTimeout) GetFinIdleTimeout() uint16 {
+ return self.FinIdleTimeout
+}
+
+func (self *ActionNxFinTimeout) SetFinIdleTimeout(v uint16) {
+ self.FinIdleTimeout = v
+}
+
+func (self *ActionNxFinTimeout) GetFinHardTimeout() uint16 {
+ return self.FinHardTimeout
+}
+
+func (self *ActionNxFinTimeout) SetFinHardTimeout(v uint16) {
+ self.FinHardTimeout = v
+}
+
+func (self *ActionNxFinTimeout) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.FinIdleTimeout))
+ encoder.PutUint16(uint16(self.FinHardTimeout))
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxFinTimeout(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxFinTimeout, error) {
+ _actionnxfintimeout := &ActionNxFinTimeout{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxFinTimeout packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxfintimeout.FinIdleTimeout = uint16(decoder.ReadUint16())
+ _actionnxfintimeout.FinHardTimeout = uint16(decoder.ReadUint16())
+ decoder.Skip(2)
+ return _actionnxfintimeout, nil
+}
+
+func NewActionNxFinTimeout() *ActionNxFinTimeout {
+ obj := &ActionNxFinTimeout{
+ ActionNicira: NewActionNicira(19),
+ }
+ return obj
+}
+func (self *ActionNxFinTimeout) GetActionName() string {
+ return "nx_fin_timeout"
+}
+
+func (self *ActionNxFinTimeout) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "FinIdleTimeout": self.FinIdleTimeout,
+ "FinHardTimeout": self.FinHardTimeout,
+ }
+}
+
+func (self *ActionNxFinTimeout) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxGroup struct {
+ *ActionNicira
+ Value uint32
+}
+
+type IActionNxGroup interface {
+ IActionNicira
+ GetValue() uint32
+}
+
+func (self *ActionNxGroup) GetValue() uint32 {
+ return self.Value
+}
+
+func (self *ActionNxGroup) SetValue(v uint32) {
+ self.Value = v
+}
+
+func (self *ActionNxGroup) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxGroup(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxGroup, error) {
+ _actionnxgroup := &ActionNxGroup{ActionNicira: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionNxGroup packet too short: %d < 4", decoder.Length())
+ }
+ _actionnxgroup.Value = uint32(decoder.ReadUint32())
+ return _actionnxgroup, nil
+}
+
+func NewActionNxGroup() *ActionNxGroup {
+ obj := &ActionNxGroup{
+ ActionNicira: NewActionNicira(40),
+ }
+ return obj
+}
+func (self *ActionNxGroup) GetActionName() string {
+ return "nx_group"
+}
+
+func (self *ActionNxGroup) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxGroup) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxLearn struct {
+ *ActionNicira
+ IdleTimeout uint16
+ HardTimeout uint16
+ Priority uint16
+ Cookie uint64
+ Flags uint16
+ TableId uint8
+ FinIdleTimeout uint16
+ FinHardTimeout uint16
+ FlowMods []IFlowModSpec
+}
+
+type IActionNxLearn interface {
+ IActionNicira
+ GetIdleTimeout() uint16
+ GetHardTimeout() uint16
+ GetPriority() uint16
+ GetCookie() uint64
+ GetFlags() uint16
+ GetTableId() uint8
+ GetFinIdleTimeout() uint16
+ GetFinHardTimeout() uint16
+ GetFlowMods() []IFlowModSpec
+}
+
+func (self *ActionNxLearn) GetIdleTimeout() uint16 {
+ return self.IdleTimeout
+}
+
+func (self *ActionNxLearn) SetIdleTimeout(v uint16) {
+ self.IdleTimeout = v
+}
+
+func (self *ActionNxLearn) GetHardTimeout() uint16 {
+ return self.HardTimeout
+}
+
+func (self *ActionNxLearn) SetHardTimeout(v uint16) {
+ self.HardTimeout = v
+}
+
+func (self *ActionNxLearn) GetPriority() uint16 {
+ return self.Priority
+}
+
+func (self *ActionNxLearn) SetPriority(v uint16) {
+ self.Priority = v
+}
+
+func (self *ActionNxLearn) GetCookie() uint64 {
+ return self.Cookie
+}
+
+func (self *ActionNxLearn) SetCookie(v uint64) {
+ self.Cookie = v
+}
+
+func (self *ActionNxLearn) GetFlags() uint16 {
+ return self.Flags
+}
+
+func (self *ActionNxLearn) SetFlags(v uint16) {
+ self.Flags = v
+}
+
+func (self *ActionNxLearn) GetTableId() uint8 {
+ return self.TableId
+}
+
+func (self *ActionNxLearn) SetTableId(v uint8) {
+ self.TableId = v
+}
+
+func (self *ActionNxLearn) GetFinIdleTimeout() uint16 {
+ return self.FinIdleTimeout
+}
+
+func (self *ActionNxLearn) SetFinIdleTimeout(v uint16) {
+ self.FinIdleTimeout = v
+}
+
+func (self *ActionNxLearn) GetFinHardTimeout() uint16 {
+ return self.FinHardTimeout
+}
+
+func (self *ActionNxLearn) SetFinHardTimeout(v uint16) {
+ self.FinHardTimeout = v
+}
+
+func (self *ActionNxLearn) GetFlowMods() []IFlowModSpec {
+ return self.FlowMods
+}
+
+func (self *ActionNxLearn) SetFlowMods(v []IFlowModSpec) {
+ self.FlowMods = v
+}
+
+func (self *ActionNxLearn) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.IdleTimeout))
+ encoder.PutUint16(uint16(self.HardTimeout))
+ encoder.PutUint16(uint16(self.Priority))
+ encoder.PutUint64(uint64(self.Cookie))
+ encoder.PutUint16(uint16(self.Flags))
+ encoder.PutUint8(uint8(self.TableId))
+ encoder.Write(bytes.Repeat([]byte{0}, 1))
+ encoder.PutUint16(uint16(self.FinIdleTimeout))
+ encoder.PutUint16(uint16(self.FinHardTimeout))
+ for _, obj := range self.FlowMods {
+ if err := obj.Serialize(encoder); err != nil {
+ return err
+ }
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxLearn(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxLearn, error) {
+ _actionnxlearn := &ActionNxLearn{ActionNicira: parent}
+ if decoder.Length() < 22 {
+ return nil, fmt.Errorf("ActionNxLearn packet too short: %d < 22", decoder.Length())
+ }
+ _actionnxlearn.IdleTimeout = uint16(decoder.ReadUint16())
+ _actionnxlearn.HardTimeout = uint16(decoder.ReadUint16())
+ _actionnxlearn.Priority = uint16(decoder.ReadUint16())
+ _actionnxlearn.Cookie = uint64(decoder.ReadUint64())
+ _actionnxlearn.Flags = uint16(decoder.ReadUint16())
+ _actionnxlearn.TableId = uint8(decoder.ReadByte())
+ decoder.Skip(1)
+ _actionnxlearn.FinIdleTimeout = uint16(decoder.ReadUint16())
+ _actionnxlearn.FinHardTimeout = uint16(decoder.ReadUint16())
+
+ for decoder.Length() >= 2 {
+ item, err := DecodeFlowModSpec(decoder)
+ if err != nil {
+ return nil, err
+ }
+ if item != nil {
+ _actionnxlearn.FlowMods = append(_actionnxlearn.FlowMods, item)
+ }
+ }
+ return _actionnxlearn, nil
+}
+
+func NewActionNxLearn() *ActionNxLearn {
+ obj := &ActionNxLearn{
+ ActionNicira: NewActionNicira(16),
+ }
+ return obj
+}
+func (self *ActionNxLearn) GetActionName() string {
+ return "nx_learn"
+}
+
+func (self *ActionNxLearn) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "IdleTimeout": self.IdleTimeout,
+ "HardTimeout": self.HardTimeout,
+ "Priority": self.Priority,
+ "Cookie": self.Cookie,
+ "Flags": self.Flags,
+ "TableId": self.TableId,
+ "FinIdleTimeout": self.FinIdleTimeout,
+ "FinHardTimeout": self.FinHardTimeout,
+ "FlowMods": self.FlowMods,
+ }
+}
+
+func (self *ActionNxLearn) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxLearn2 struct {
+ *ActionNicira
+}
+
+type IActionNxLearn2 interface {
+ IActionNicira
+}
+
+func (self *ActionNxLearn2) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxLearn2(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxLearn2, error) {
+ _actionnxlearn2 := &ActionNxLearn2{ActionNicira: parent}
+ return _actionnxlearn2, nil
+}
+
+func NewActionNxLearn2() *ActionNxLearn2 {
+ obj := &ActionNxLearn2{
+ ActionNicira: NewActionNicira(45),
+ }
+ return obj
+}
+func (self *ActionNxLearn2) GetActionName() string {
+ return "nx_learn2"
+}
+
+func (self *ActionNxLearn2) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxLearn2) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxMultipath struct {
+ *ActionNicira
+ Fields NxHashFields
+ Basis uint16
+ Algorithm NxMpAlgorithm
+ MaxLink uint16
+ Arg uint32
+ OfsNbits uint16
+ Dst goloxi.IOxmId
+}
+
+type IActionNxMultipath interface {
+ IActionNicira
+ GetFields() NxHashFields
+ GetBasis() uint16
+ GetAlgorithm() NxMpAlgorithm
+ GetMaxLink() uint16
+ GetArg() uint32
+ GetOfsNbits() uint16
+ GetDst() goloxi.IOxmId
+}
+
+func (self *ActionNxMultipath) GetFields() NxHashFields {
+ return self.Fields
+}
+
+func (self *ActionNxMultipath) SetFields(v NxHashFields) {
+ self.Fields = v
+}
+
+func (self *ActionNxMultipath) GetBasis() uint16 {
+ return self.Basis
+}
+
+func (self *ActionNxMultipath) SetBasis(v uint16) {
+ self.Basis = v
+}
+
+func (self *ActionNxMultipath) GetAlgorithm() NxMpAlgorithm {
+ return self.Algorithm
+}
+
+func (self *ActionNxMultipath) SetAlgorithm(v NxMpAlgorithm) {
+ self.Algorithm = v
+}
+
+func (self *ActionNxMultipath) GetMaxLink() uint16 {
+ return self.MaxLink
+}
+
+func (self *ActionNxMultipath) SetMaxLink(v uint16) {
+ self.MaxLink = v
+}
+
+func (self *ActionNxMultipath) GetArg() uint32 {
+ return self.Arg
+}
+
+func (self *ActionNxMultipath) SetArg(v uint32) {
+ self.Arg = v
+}
+
+func (self *ActionNxMultipath) GetOfsNbits() uint16 {
+ return self.OfsNbits
+}
+
+func (self *ActionNxMultipath) SetOfsNbits(v uint16) {
+ self.OfsNbits = v
+}
+
+func (self *ActionNxMultipath) GetDst() goloxi.IOxmId {
+ return self.Dst
+}
+
+func (self *ActionNxMultipath) SetDst(v goloxi.IOxmId) {
+ self.Dst = v
+}
+
+func (self *ActionNxMultipath) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Fields))
+ encoder.PutUint16(uint16(self.Basis))
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ encoder.PutUint16(uint16(self.Algorithm))
+ encoder.PutUint16(uint16(self.MaxLink))
+ encoder.PutUint32(uint32(self.Arg))
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ encoder.PutUint16(uint16(self.OfsNbits))
+ self.Dst.Serialize(encoder)
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxMultipath(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxMultipath, error) {
+ _actionnxmultipath := &ActionNxMultipath{ActionNicira: parent}
+ if decoder.Length() < 22 {
+ return nil, fmt.Errorf("ActionNxMultipath packet too short: %d < 22", decoder.Length())
+ }
+ _actionnxmultipath.Fields = NxHashFields(decoder.ReadUint16())
+ _actionnxmultipath.Basis = uint16(decoder.ReadUint16())
+ decoder.Skip(2)
+ _actionnxmultipath.Algorithm = NxMpAlgorithm(decoder.ReadUint16())
+ _actionnxmultipath.MaxLink = uint16(decoder.ReadUint16())
+ _actionnxmultipath.Arg = uint32(decoder.ReadUint32())
+ decoder.Skip(2)
+ _actionnxmultipath.OfsNbits = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxmultipath.Dst = obj
+ }
+
+ return _actionnxmultipath, nil
+}
+
+func NewActionNxMultipath() *ActionNxMultipath {
+ obj := &ActionNxMultipath{
+ ActionNicira: NewActionNicira(10),
+ }
+ return obj
+}
+func (self *ActionNxMultipath) GetActionName() string {
+ return "nx_multipath"
+}
+
+func (self *ActionNxMultipath) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Fields": self.Fields,
+ "Basis": self.Basis,
+ "Algorithm": self.Algorithm,
+ "MaxLink": self.MaxLink,
+ "Arg": self.Arg,
+ "OfsNbits": self.OfsNbits,
+ "Dst": self.Dst,
+ }
+}
+
+func (self *ActionNxMultipath) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxNat struct {
+ *ActionNicira
+ Flags uint16
+ RangePresent NxNatRange
+ Ipv4Min net.IP
+ Ipv4Max net.IP
+ Ipv6Min net.IP
+ Ipv6Max net.IP
+ ProtoMin uint32
+ ProtoMax uint32
+}
+
+type IActionNxNat interface {
+ IActionNicira
+ GetFlags() uint16
+ GetRangePresent() NxNatRange
+ GetIpv4Min() net.IP
+ GetIpv4Max() net.IP
+ GetIpv6Min() net.IP
+ GetIpv6Max() net.IP
+ GetProtoMin() uint32
+ GetProtoMax() uint32
+}
+
+func (self *ActionNxNat) GetFlags() uint16 {
+ return self.Flags
+}
+
+func (self *ActionNxNat) SetFlags(v uint16) {
+ self.Flags = v
+}
+
+func (self *ActionNxNat) GetRangePresent() NxNatRange {
+ return self.RangePresent
+}
+
+func (self *ActionNxNat) SetRangePresent(v NxNatRange) {
+ self.RangePresent = v
+}
+
+func (self *ActionNxNat) GetIpv4Min() net.IP {
+ return self.Ipv4Min
+}
+
+func (self *ActionNxNat) SetIpv4Min(v net.IP) {
+ self.Ipv4Min = v
+}
+
+func (self *ActionNxNat) GetIpv4Max() net.IP {
+ return self.Ipv4Max
+}
+
+func (self *ActionNxNat) SetIpv4Max(v net.IP) {
+ self.Ipv4Max = v
+}
+
+func (self *ActionNxNat) GetIpv6Min() net.IP {
+ return self.Ipv6Min
+}
+
+func (self *ActionNxNat) SetIpv6Min(v net.IP) {
+ self.Ipv6Min = v
+}
+
+func (self *ActionNxNat) GetIpv6Max() net.IP {
+ return self.Ipv6Max
+}
+
+func (self *ActionNxNat) SetIpv6Max(v net.IP) {
+ self.Ipv6Max = v
+}
+
+func (self *ActionNxNat) GetProtoMin() uint32 {
+ return self.ProtoMin
+}
+
+func (self *ActionNxNat) SetProtoMin(v uint32) {
+ self.ProtoMin = v
+}
+
+func (self *ActionNxNat) GetProtoMax() uint32 {
+ return self.ProtoMax
+}
+
+func (self *ActionNxNat) SetProtoMax(v uint32) {
+ self.ProtoMax = v
+}
+
+func (self *ActionNxNat) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ encoder.PutUint16(uint16(self.Flags))
+ encoder.PutUint16(uint16(self.RangePresent))
+ encoder.Write(self.Ipv4Min.To4())
+ encoder.Write(self.Ipv4Max.To4())
+ encoder.Write(self.Ipv6Min.To16())
+ encoder.Write(self.Ipv6Max.To16())
+ encoder.PutUint32(uint32(self.ProtoMin))
+ encoder.PutUint32(uint32(self.ProtoMax))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxNat(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxNat, error) {
+ _actionnxnat := &ActionNxNat{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxNat packet too short: %d < 6", decoder.Length())
+ }
+ decoder.Skip(2)
+ _actionnxnat.Flags = uint16(decoder.ReadUint16())
+ _actionnxnat.RangePresent = NxNatRange(decoder.ReadUint16())
+ if _actionnxnat.RangePresent&1 == 1 {
+ _actionnxnat.Ipv4Min = net.IP(decoder.Read(4))
+ }
+ if _actionnxnat.RangePresent&2 == 2 {
+ _actionnxnat.Ipv4Max = net.IP(decoder.Read(4))
+ }
+ if _actionnxnat.RangePresent&4 == 4 {
+ _actionnxnat.Ipv6Min = net.IP(decoder.Read(16))
+ }
+ if _actionnxnat.RangePresent&8 == 8 {
+ _actionnxnat.Ipv6Max = net.IP(decoder.Read(16))
+ }
+ if _actionnxnat.RangePresent&16 == 16 {
+ _actionnxnat.ProtoMin = uint32(decoder.ReadUint32())
+ }
+ if _actionnxnat.RangePresent&32 == 32 {
+ _actionnxnat.ProtoMax = uint32(decoder.ReadUint32())
+ }
+ return _actionnxnat, nil
+}
+
+func NewActionNxNat() *ActionNxNat {
+ obj := &ActionNxNat{
+ ActionNicira: NewActionNicira(36),
+ }
+ return obj
+}
+func (self *ActionNxNat) GetActionName() string {
+ return "nx_nat"
+}
+
+func (self *ActionNxNat) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Flags": self.Flags,
+ "RangePresent": self.RangePresent,
+ "Ipv4Min": self.Ipv4Min,
+ "Ipv4Max": self.Ipv4Max,
+ "Ipv6Min": self.Ipv6Min,
+ "Ipv6Max": self.Ipv6Max,
+ "ProtoMin": self.ProtoMin,
+ "ProtoMax": self.ProtoMax,
+ }
+}
+
+func (self *ActionNxNat) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxNote struct {
+ *ActionNicira
+ Note []byte
+}
+
+type IActionNxNote interface {
+ IActionNicira
+ GetNote() []byte
+}
+
+func (self *ActionNxNote) GetNote() []byte {
+ return self.Note
+}
+
+func (self *ActionNxNote) SetNote(v []byte) {
+ self.Note = v
+}
+
+func (self *ActionNxNote) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(self.Note)
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxNote(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxNote, error) {
+ _actionnxnote := &ActionNxNote{ActionNicira: parent}
+ _actionnxnote.Note = decoder.Read(int(decoder.Length()))
+ return _actionnxnote, nil
+}
+
+func NewActionNxNote() *ActionNxNote {
+ obj := &ActionNxNote{
+ ActionNicira: NewActionNicira(8),
+ }
+ return obj
+}
+func (self *ActionNxNote) GetActionName() string {
+ return "nx_note"
+}
+
+func (self *ActionNxNote) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Note": self.Note,
+ }
+}
+
+func (self *ActionNxNote) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxOutputReg struct {
+ *ActionNicira
+ OfsNbits uint16
+ Src uint32
+ MaxLen uint16
+}
+
+type IActionNxOutputReg interface {
+ IActionNicira
+ GetOfsNbits() uint16
+ GetSrc() uint32
+ GetMaxLen() uint16
+}
+
+func (self *ActionNxOutputReg) GetOfsNbits() uint16 {
+ return self.OfsNbits
+}
+
+func (self *ActionNxOutputReg) SetOfsNbits(v uint16) {
+ self.OfsNbits = v
+}
+
+func (self *ActionNxOutputReg) GetSrc() uint32 {
+ return self.Src
+}
+
+func (self *ActionNxOutputReg) SetSrc(v uint32) {
+ self.Src = v
+}
+
+func (self *ActionNxOutputReg) GetMaxLen() uint16 {
+ return self.MaxLen
+}
+
+func (self *ActionNxOutputReg) SetMaxLen(v uint16) {
+ self.MaxLen = v
+}
+
+func (self *ActionNxOutputReg) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.OfsNbits))
+ encoder.PutUint32(uint32(self.Src))
+ encoder.PutUint16(uint16(self.MaxLen))
+ encoder.Write(bytes.Repeat([]byte{0}, 6))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxOutputReg(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxOutputReg, error) {
+ _actionnxoutputreg := &ActionNxOutputReg{ActionNicira: parent}
+ if decoder.Length() < 14 {
+ return nil, fmt.Errorf("ActionNxOutputReg packet too short: %d < 14", decoder.Length())
+ }
+ _actionnxoutputreg.OfsNbits = uint16(decoder.ReadUint16())
+ _actionnxoutputreg.Src = uint32(decoder.ReadUint32())
+ _actionnxoutputreg.MaxLen = uint16(decoder.ReadUint16())
+ decoder.Skip(6)
+ return _actionnxoutputreg, nil
+}
+
+func NewActionNxOutputReg() *ActionNxOutputReg {
+ obj := &ActionNxOutputReg{
+ ActionNicira: NewActionNicira(15),
+ }
+ return obj
+}
+func (self *ActionNxOutputReg) GetActionName() string {
+ return "nx_output_reg"
+}
+
+func (self *ActionNxOutputReg) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "OfsNbits": self.OfsNbits,
+ "Src": self.Src,
+ "MaxLen": self.MaxLen,
+ }
+}
+
+func (self *ActionNxOutputReg) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxOutputReg2 struct {
+ *ActionNicira
+ OfsNbits uint16
+ MaxLen uint16
+}
+
+type IActionNxOutputReg2 interface {
+ IActionNicira
+ GetOfsNbits() uint16
+ GetMaxLen() uint16
+}
+
+func (self *ActionNxOutputReg2) GetOfsNbits() uint16 {
+ return self.OfsNbits
+}
+
+func (self *ActionNxOutputReg2) SetOfsNbits(v uint16) {
+ self.OfsNbits = v
+}
+
+func (self *ActionNxOutputReg2) GetMaxLen() uint16 {
+ return self.MaxLen
+}
+
+func (self *ActionNxOutputReg2) SetMaxLen(v uint16) {
+ self.MaxLen = v
+}
+
+func (self *ActionNxOutputReg2) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.OfsNbits))
+ encoder.PutUint16(uint16(self.MaxLen))
+ encoder.Write(bytes.Repeat([]byte{0}, 10))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxOutputReg2(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxOutputReg2, error) {
+ _actionnxoutputreg2 := &ActionNxOutputReg2{ActionNicira: parent}
+ if decoder.Length() < 14 {
+ return nil, fmt.Errorf("ActionNxOutputReg2 packet too short: %d < 14", decoder.Length())
+ }
+ _actionnxoutputreg2.OfsNbits = uint16(decoder.ReadUint16())
+ _actionnxoutputreg2.MaxLen = uint16(decoder.ReadUint16())
+ decoder.Skip(10)
+ return _actionnxoutputreg2, nil
+}
+
+func NewActionNxOutputReg2() *ActionNxOutputReg2 {
+ obj := &ActionNxOutputReg2{
+ ActionNicira: NewActionNicira(32),
+ }
+ return obj
+}
+func (self *ActionNxOutputReg2) GetActionName() string {
+ return "nx_output_reg2"
+}
+
+func (self *ActionNxOutputReg2) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "OfsNbits": self.OfsNbits,
+ "MaxLen": self.MaxLen,
+ }
+}
+
+func (self *ActionNxOutputReg2) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxOutputTrunc struct {
+ *ActionNicira
+ Port uint16
+ MaxLen uint32
+}
+
+type IActionNxOutputTrunc interface {
+ IActionNicira
+ GetPort() uint16
+ GetMaxLen() uint32
+}
+
+func (self *ActionNxOutputTrunc) GetPort() uint16 {
+ return self.Port
+}
+
+func (self *ActionNxOutputTrunc) SetPort(v uint16) {
+ self.Port = v
+}
+
+func (self *ActionNxOutputTrunc) GetMaxLen() uint32 {
+ return self.MaxLen
+}
+
+func (self *ActionNxOutputTrunc) SetMaxLen(v uint32) {
+ self.MaxLen = v
+}
+
+func (self *ActionNxOutputTrunc) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Port))
+ encoder.PutUint32(uint32(self.MaxLen))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxOutputTrunc(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxOutputTrunc, error) {
+ _actionnxoutputtrunc := &ActionNxOutputTrunc{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxOutputTrunc packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxoutputtrunc.Port = uint16(decoder.ReadUint16())
+ _actionnxoutputtrunc.MaxLen = uint32(decoder.ReadUint32())
+ return _actionnxoutputtrunc, nil
+}
+
+func NewActionNxOutputTrunc() *ActionNxOutputTrunc {
+ obj := &ActionNxOutputTrunc{
+ ActionNicira: NewActionNicira(39),
+ }
+ return obj
+}
+func (self *ActionNxOutputTrunc) GetActionName() string {
+ return "nx_output_trunc"
+}
+
+func (self *ActionNxOutputTrunc) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Port": self.Port,
+ "MaxLen": self.MaxLen,
+ }
+}
+
+func (self *ActionNxOutputTrunc) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxPopMpls struct {
+ *ActionNicira
+ Value uint16
+}
+
+type IActionNxPopMpls interface {
+ IActionNicira
+ GetValue() uint16
+}
+
+func (self *ActionNxPopMpls) GetValue() uint16 {
+ return self.Value
+}
+
+func (self *ActionNxPopMpls) SetValue(v uint16) {
+ self.Value = v
+}
+
+func (self *ActionNxPopMpls) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxPopMpls(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxPopMpls, error) {
+ _actionnxpopmpls := &ActionNxPopMpls{ActionNicira: parent}
+ if decoder.Length() < 2 {
+ return nil, fmt.Errorf("ActionNxPopMpls packet too short: %d < 2", decoder.Length())
+ }
+ _actionnxpopmpls.Value = uint16(decoder.ReadUint16())
+ return _actionnxpopmpls, nil
+}
+
+func NewActionNxPopMpls() *ActionNxPopMpls {
+ obj := &ActionNxPopMpls{
+ ActionNicira: NewActionNicira(24),
+ }
+ return obj
+}
+func (self *ActionNxPopMpls) GetActionName() string {
+ return "nx_pop_mpls"
+}
+
+func (self *ActionNxPopMpls) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxPopMpls) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxPopQueue struct {
+ *ActionNicira
+}
+
+type IActionNxPopQueue interface {
+ IActionNicira
+}
+
+func (self *ActionNxPopQueue) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxPopQueue(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxPopQueue, error) {
+ _actionnxpopqueue := &ActionNxPopQueue{ActionNicira: parent}
+ return _actionnxpopqueue, nil
+}
+
+func NewActionNxPopQueue() *ActionNxPopQueue {
+ obj := &ActionNxPopQueue{
+ ActionNicira: NewActionNicira(5),
+ }
+ return obj
+}
+func (self *ActionNxPopQueue) GetActionName() string {
+ return "nx_pop_queue"
+}
+
+func (self *ActionNxPopQueue) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxPopQueue) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxPushMpls struct {
+ *ActionNicira
+ Value uint16
+}
+
+type IActionNxPushMpls interface {
+ IActionNicira
+ GetValue() uint16
+}
+
+func (self *ActionNxPushMpls) GetValue() uint16 {
+ return self.Value
+}
+
+func (self *ActionNxPushMpls) SetValue(v uint16) {
+ self.Value = v
+}
+
+func (self *ActionNxPushMpls) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxPushMpls(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxPushMpls, error) {
+ _actionnxpushmpls := &ActionNxPushMpls{ActionNicira: parent}
+ if decoder.Length() < 2 {
+ return nil, fmt.Errorf("ActionNxPushMpls packet too short: %d < 2", decoder.Length())
+ }
+ _actionnxpushmpls.Value = uint16(decoder.ReadUint16())
+ return _actionnxpushmpls, nil
+}
+
+func NewActionNxPushMpls() *ActionNxPushMpls {
+ obj := &ActionNxPushMpls{
+ ActionNicira: NewActionNicira(23),
+ }
+ return obj
+}
+func (self *ActionNxPushMpls) GetActionName() string {
+ return "nx_push_mpls"
+}
+
+func (self *ActionNxPushMpls) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxPushMpls) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxRegLoad struct {
+ *ActionNicira
+ OfsNbits uint16
+ SrcField goloxi.IOxmId
+ Value uint64
+}
+
+type IActionNxRegLoad interface {
+ IActionNicira
+ GetOfsNbits() uint16
+ GetSrcField() goloxi.IOxmId
+ GetValue() uint64
+}
+
+func (self *ActionNxRegLoad) GetOfsNbits() uint16 {
+ return self.OfsNbits
+}
+
+func (self *ActionNxRegLoad) SetOfsNbits(v uint16) {
+ self.OfsNbits = v
+}
+
+func (self *ActionNxRegLoad) GetSrcField() goloxi.IOxmId {
+ return self.SrcField
+}
+
+func (self *ActionNxRegLoad) SetSrcField(v goloxi.IOxmId) {
+ self.SrcField = v
+}
+
+func (self *ActionNxRegLoad) GetValue() uint64 {
+ return self.Value
+}
+
+func (self *ActionNxRegLoad) SetValue(v uint64) {
+ self.Value = v
+}
+
+func (self *ActionNxRegLoad) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.OfsNbits))
+ self.SrcField.Serialize(encoder)
+ encoder.PutUint64(uint64(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxRegLoad(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxRegLoad, error) {
+ _actionnxregload := &ActionNxRegLoad{ActionNicira: parent}
+ if decoder.Length() < 14 {
+ return nil, fmt.Errorf("ActionNxRegLoad packet too short: %d < 14", decoder.Length())
+ }
+ _actionnxregload.OfsNbits = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxregload.SrcField = obj
+ }
+
+ _actionnxregload.Value = uint64(decoder.ReadUint64())
+ return _actionnxregload, nil
+}
+
+func NewActionNxRegLoad() *ActionNxRegLoad {
+ obj := &ActionNxRegLoad{
+ ActionNicira: NewActionNicira(7),
+ }
+ return obj
+}
+func (self *ActionNxRegLoad) GetActionName() string {
+ return "nx_reg_load"
+}
+
+func (self *ActionNxRegLoad) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "OfsNbits": self.OfsNbits,
+ "SrcField": self.SrcField,
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxRegLoad) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxRegLoad2 struct {
+ *ActionNicira
+}
+
+type IActionNxRegLoad2 interface {
+ IActionNicira
+}
+
+func (self *ActionNxRegLoad2) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 6))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxRegLoad2(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxRegLoad2, error) {
+ _actionnxregload2 := &ActionNxRegLoad2{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxRegLoad2 packet too short: %d < 6", decoder.Length())
+ }
+ decoder.Skip(6)
+ return _actionnxregload2, nil
+}
+
+func NewActionNxRegLoad2() *ActionNxRegLoad2 {
+ obj := &ActionNxRegLoad2{
+ ActionNicira: NewActionNicira(33),
+ }
+ return obj
+}
+func (self *ActionNxRegLoad2) GetActionName() string {
+ return "nx_reg_load2"
+}
+
+func (self *ActionNxRegLoad2) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionNxRegLoad2) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxRegMove struct {
+ *ActionNicira
+ NBits uint16
+ SrcOfs uint16
+ DstOfs uint16
+ Src goloxi.IOxmId
+ Dst goloxi.IOxmId
+}
+
+type IActionNxRegMove interface {
+ IActionNicira
+ GetNBits() uint16
+ GetSrcOfs() uint16
+ GetDstOfs() uint16
+ GetSrc() goloxi.IOxmId
+ GetDst() goloxi.IOxmId
+}
+
+func (self *ActionNxRegMove) GetNBits() uint16 {
+ return self.NBits
+}
+
+func (self *ActionNxRegMove) SetNBits(v uint16) {
+ self.NBits = v
+}
+
+func (self *ActionNxRegMove) GetSrcOfs() uint16 {
+ return self.SrcOfs
+}
+
+func (self *ActionNxRegMove) SetSrcOfs(v uint16) {
+ self.SrcOfs = v
+}
+
+func (self *ActionNxRegMove) GetDstOfs() uint16 {
+ return self.DstOfs
+}
+
+func (self *ActionNxRegMove) SetDstOfs(v uint16) {
+ self.DstOfs = v
+}
+
+func (self *ActionNxRegMove) GetSrc() goloxi.IOxmId {
+ return self.Src
+}
+
+func (self *ActionNxRegMove) SetSrc(v goloxi.IOxmId) {
+ self.Src = v
+}
+
+func (self *ActionNxRegMove) GetDst() goloxi.IOxmId {
+ return self.Dst
+}
+
+func (self *ActionNxRegMove) SetDst(v goloxi.IOxmId) {
+ self.Dst = v
+}
+
+func (self *ActionNxRegMove) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.NBits))
+ encoder.PutUint16(uint16(self.SrcOfs))
+ encoder.PutUint16(uint16(self.DstOfs))
+ self.Src.Serialize(encoder)
+ self.Dst.Serialize(encoder)
+ length := len(encoder.Bytes()) - startIndex
+ alignedLength := ((length + 7) / 8 * 8)
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ encoder.Write(bytes.Repeat([]byte{0}, alignedLength-length))
+
+ return nil
+}
+
+func DecodeActionNxRegMove(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxRegMove, error) {
+ _actionnxregmove := &ActionNxRegMove{ActionNicira: parent}
+ if decoder.Length() < 14 {
+ return nil, fmt.Errorf("ActionNxRegMove packet too short: %d < 14", decoder.Length())
+ }
+ _actionnxregmove.NBits = uint16(decoder.ReadUint16())
+ _actionnxregmove.SrcOfs = uint16(decoder.ReadUint16())
+ _actionnxregmove.DstOfs = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxregmove.Src = obj
+ }
+
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxregmove.Dst = obj
+ }
+
+ return _actionnxregmove, nil
+}
+
+func NewActionNxRegMove() *ActionNxRegMove {
+ obj := &ActionNxRegMove{
+ ActionNicira: NewActionNicira(6),
+ }
+ return obj
+}
+func (self *ActionNxRegMove) GetActionName() string {
+ return "nx_reg_move"
+}
+
+func (self *ActionNxRegMove) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "NBits": self.NBits,
+ "SrcOfs": self.SrcOfs,
+ "DstOfs": self.DstOfs,
+ "Src": self.Src,
+ "Dst": self.Dst,
+ }
+}
+
+func (self *ActionNxRegMove) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxResubmit struct {
+ *ActionNicira
+ Value uint16
+}
+
+type IActionNxResubmit interface {
+ IActionNicira
+ GetValue() uint16
+}
+
+func (self *ActionNxResubmit) GetValue() uint16 {
+ return self.Value
+}
+
+func (self *ActionNxResubmit) SetValue(v uint16) {
+ self.Value = v
+}
+
+func (self *ActionNxResubmit) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxResubmit(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxResubmit, error) {
+ _actionnxresubmit := &ActionNxResubmit{ActionNicira: parent}
+ if decoder.Length() < 2 {
+ return nil, fmt.Errorf("ActionNxResubmit packet too short: %d < 2", decoder.Length())
+ }
+ _actionnxresubmit.Value = uint16(decoder.ReadUint16())
+ return _actionnxresubmit, nil
+}
+
+func NewActionNxResubmit() *ActionNxResubmit {
+ obj := &ActionNxResubmit{
+ ActionNicira: NewActionNicira(1),
+ }
+ return obj
+}
+func (self *ActionNxResubmit) GetActionName() string {
+ return "nx_resubmit"
+}
+
+func (self *ActionNxResubmit) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxResubmit) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxResubmitTable struct {
+ *ActionNicira
+ InPort uint16
+ Table uint8
+}
+
+type IActionNxResubmitTable interface {
+ IActionNicira
+ GetInPort() uint16
+ GetTable() uint8
+}
+
+func (self *ActionNxResubmitTable) GetInPort() uint16 {
+ return self.InPort
+}
+
+func (self *ActionNxResubmitTable) SetInPort(v uint16) {
+ self.InPort = v
+}
+
+func (self *ActionNxResubmitTable) GetTable() uint8 {
+ return self.Table
+}
+
+func (self *ActionNxResubmitTable) SetTable(v uint8) {
+ self.Table = v
+}
+
+func (self *ActionNxResubmitTable) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.InPort))
+ encoder.PutUint8(uint8(self.Table))
+ encoder.Write(bytes.Repeat([]byte{0}, 3))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxResubmitTable(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxResubmitTable, error) {
+ _actionnxresubmittable := &ActionNxResubmitTable{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxResubmitTable packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxresubmittable.InPort = uint16(decoder.ReadUint16())
+ _actionnxresubmittable.Table = uint8(decoder.ReadByte())
+ decoder.Skip(3)
+ return _actionnxresubmittable, nil
+}
+
+func NewActionNxResubmitTable() *ActionNxResubmitTable {
+ obj := &ActionNxResubmitTable{
+ ActionNicira: NewActionNicira(14),
+ }
+ return obj
+}
+func (self *ActionNxResubmitTable) GetActionName() string {
+ return "nx_resubmit_table"
+}
+
+func (self *ActionNxResubmitTable) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "InPort": self.InPort,
+ "Table": self.Table,
+ }
+}
+
+func (self *ActionNxResubmitTable) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxResubmitTableCt struct {
+ *ActionNicira
+ InPort uint16
+ Table uint8
+}
+
+type IActionNxResubmitTableCt interface {
+ IActionNicira
+ GetInPort() uint16
+ GetTable() uint8
+}
+
+func (self *ActionNxResubmitTableCt) GetInPort() uint16 {
+ return self.InPort
+}
+
+func (self *ActionNxResubmitTableCt) SetInPort(v uint16) {
+ self.InPort = v
+}
+
+func (self *ActionNxResubmitTableCt) GetTable() uint8 {
+ return self.Table
+}
+
+func (self *ActionNxResubmitTableCt) SetTable(v uint8) {
+ self.Table = v
+}
+
+func (self *ActionNxResubmitTableCt) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.InPort))
+ encoder.PutUint8(uint8(self.Table))
+ encoder.Write(bytes.Repeat([]byte{0}, 3))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxResubmitTableCt(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxResubmitTableCt, error) {
+ _actionnxresubmittablect := &ActionNxResubmitTableCt{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionNxResubmitTableCt packet too short: %d < 6", decoder.Length())
+ }
+ _actionnxresubmittablect.InPort = uint16(decoder.ReadUint16())
+ _actionnxresubmittablect.Table = uint8(decoder.ReadByte())
+ decoder.Skip(3)
+ return _actionnxresubmittablect, nil
+}
+
+func NewActionNxResubmitTableCt() *ActionNxResubmitTableCt {
+ obj := &ActionNxResubmitTableCt{
+ ActionNicira: NewActionNicira(44),
+ }
+ return obj
+}
+func (self *ActionNxResubmitTableCt) GetActionName() string {
+ return "nx_resubmit_table_ct"
+}
+
+func (self *ActionNxResubmitTableCt) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "InPort": self.InPort,
+ "Table": self.Table,
+ }
+}
+
+func (self *ActionNxResubmitTableCt) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSample struct {
+ *ActionNicira
+ Probability uint16
+ CollectorSetId uint32
+ ObsDomainId uint32
+ ObsPointId uint32
+}
+
+type IActionNxSample interface {
+ IActionNicira
+ GetProbability() uint16
+ GetCollectorSetId() uint32
+ GetObsDomainId() uint32
+ GetObsPointId() uint32
+}
+
+func (self *ActionNxSample) GetProbability() uint16 {
+ return self.Probability
+}
+
+func (self *ActionNxSample) SetProbability(v uint16) {
+ self.Probability = v
+}
+
+func (self *ActionNxSample) GetCollectorSetId() uint32 {
+ return self.CollectorSetId
+}
+
+func (self *ActionNxSample) SetCollectorSetId(v uint32) {
+ self.CollectorSetId = v
+}
+
+func (self *ActionNxSample) GetObsDomainId() uint32 {
+ return self.ObsDomainId
+}
+
+func (self *ActionNxSample) SetObsDomainId(v uint32) {
+ self.ObsDomainId = v
+}
+
+func (self *ActionNxSample) GetObsPointId() uint32 {
+ return self.ObsPointId
+}
+
+func (self *ActionNxSample) SetObsPointId(v uint32) {
+ self.ObsPointId = v
+}
+
+func (self *ActionNxSample) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Probability))
+ encoder.PutUint32(uint32(self.CollectorSetId))
+ encoder.PutUint32(uint32(self.ObsDomainId))
+ encoder.PutUint32(uint32(self.ObsPointId))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSample(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSample, error) {
+ _actionnxsample := &ActionNxSample{ActionNicira: parent}
+ if decoder.Length() < 14 {
+ return nil, fmt.Errorf("ActionNxSample packet too short: %d < 14", decoder.Length())
+ }
+ _actionnxsample.Probability = uint16(decoder.ReadUint16())
+ _actionnxsample.CollectorSetId = uint32(decoder.ReadUint32())
+ _actionnxsample.ObsDomainId = uint32(decoder.ReadUint32())
+ _actionnxsample.ObsPointId = uint32(decoder.ReadUint32())
+ return _actionnxsample, nil
+}
+
+func NewActionNxSample() *ActionNxSample {
+ obj := &ActionNxSample{
+ ActionNicira: NewActionNicira(29),
+ }
+ return obj
+}
+func (self *ActionNxSample) GetActionName() string {
+ return "nx_sample"
+}
+
+func (self *ActionNxSample) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Probability": self.Probability,
+ "CollectorSetId": self.CollectorSetId,
+ "ObsDomainId": self.ObsDomainId,
+ "ObsPointId": self.ObsPointId,
+ }
+}
+
+func (self *ActionNxSample) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSample2 struct {
+ *ActionNicira
+ Probability uint16
+ CollectorSetId uint32
+ ObsDomainId uint32
+ ObsPointId uint32
+ SamplingPort uint16
+ Direction uint8
+}
+
+type IActionNxSample2 interface {
+ IActionNicira
+ GetProbability() uint16
+ GetCollectorSetId() uint32
+ GetObsDomainId() uint32
+ GetObsPointId() uint32
+ GetSamplingPort() uint16
+ GetDirection() uint8
+}
+
+func (self *ActionNxSample2) GetProbability() uint16 {
+ return self.Probability
+}
+
+func (self *ActionNxSample2) SetProbability(v uint16) {
+ self.Probability = v
+}
+
+func (self *ActionNxSample2) GetCollectorSetId() uint32 {
+ return self.CollectorSetId
+}
+
+func (self *ActionNxSample2) SetCollectorSetId(v uint32) {
+ self.CollectorSetId = v
+}
+
+func (self *ActionNxSample2) GetObsDomainId() uint32 {
+ return self.ObsDomainId
+}
+
+func (self *ActionNxSample2) SetObsDomainId(v uint32) {
+ self.ObsDomainId = v
+}
+
+func (self *ActionNxSample2) GetObsPointId() uint32 {
+ return self.ObsPointId
+}
+
+func (self *ActionNxSample2) SetObsPointId(v uint32) {
+ self.ObsPointId = v
+}
+
+func (self *ActionNxSample2) GetSamplingPort() uint16 {
+ return self.SamplingPort
+}
+
+func (self *ActionNxSample2) SetSamplingPort(v uint16) {
+ self.SamplingPort = v
+}
+
+func (self *ActionNxSample2) GetDirection() uint8 {
+ return self.Direction
+}
+
+func (self *ActionNxSample2) SetDirection(v uint8) {
+ self.Direction = v
+}
+
+func (self *ActionNxSample2) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Probability))
+ encoder.PutUint32(uint32(self.CollectorSetId))
+ encoder.PutUint32(uint32(self.ObsDomainId))
+ encoder.PutUint32(uint32(self.ObsPointId))
+ encoder.PutUint16(uint16(self.SamplingPort))
+ encoder.PutUint8(uint8(self.Direction))
+ encoder.Write(bytes.Repeat([]byte{0}, 5))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSample2(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSample2, error) {
+ _actionnxsample2 := &ActionNxSample2{ActionNicira: parent}
+ if decoder.Length() < 22 {
+ return nil, fmt.Errorf("ActionNxSample2 packet too short: %d < 22", decoder.Length())
+ }
+ _actionnxsample2.Probability = uint16(decoder.ReadUint16())
+ _actionnxsample2.CollectorSetId = uint32(decoder.ReadUint32())
+ _actionnxsample2.ObsDomainId = uint32(decoder.ReadUint32())
+ _actionnxsample2.ObsPointId = uint32(decoder.ReadUint32())
+ _actionnxsample2.SamplingPort = uint16(decoder.ReadUint16())
+ _actionnxsample2.Direction = uint8(decoder.ReadByte())
+ decoder.Skip(5)
+ return _actionnxsample2, nil
+}
+
+func NewActionNxSample2() *ActionNxSample2 {
+ obj := &ActionNxSample2{
+ ActionNicira: NewActionNicira(38),
+ }
+ return obj
+}
+func (self *ActionNxSample2) GetActionName() string {
+ return "nx_sample2"
+}
+
+func (self *ActionNxSample2) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Probability": self.Probability,
+ "CollectorSetId": self.CollectorSetId,
+ "ObsDomainId": self.ObsDomainId,
+ "ObsPointId": self.ObsPointId,
+ "SamplingPort": self.SamplingPort,
+ "Direction": self.Direction,
+ }
+}
+
+func (self *ActionNxSample2) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSample3 struct {
+ *ActionNicira
+ Probability uint16
+ CollectorSetId uint32
+ ObsDomainId uint32
+ ObsPointId uint32
+ SamplingPort uint16
+ Direction uint8
+}
+
+type IActionNxSample3 interface {
+ IActionNicira
+ GetProbability() uint16
+ GetCollectorSetId() uint32
+ GetObsDomainId() uint32
+ GetObsPointId() uint32
+ GetSamplingPort() uint16
+ GetDirection() uint8
+}
+
+func (self *ActionNxSample3) GetProbability() uint16 {
+ return self.Probability
+}
+
+func (self *ActionNxSample3) SetProbability(v uint16) {
+ self.Probability = v
+}
+
+func (self *ActionNxSample3) GetCollectorSetId() uint32 {
+ return self.CollectorSetId
+}
+
+func (self *ActionNxSample3) SetCollectorSetId(v uint32) {
+ self.CollectorSetId = v
+}
+
+func (self *ActionNxSample3) GetObsDomainId() uint32 {
+ return self.ObsDomainId
+}
+
+func (self *ActionNxSample3) SetObsDomainId(v uint32) {
+ self.ObsDomainId = v
+}
+
+func (self *ActionNxSample3) GetObsPointId() uint32 {
+ return self.ObsPointId
+}
+
+func (self *ActionNxSample3) SetObsPointId(v uint32) {
+ self.ObsPointId = v
+}
+
+func (self *ActionNxSample3) GetSamplingPort() uint16 {
+ return self.SamplingPort
+}
+
+func (self *ActionNxSample3) SetSamplingPort(v uint16) {
+ self.SamplingPort = v
+}
+
+func (self *ActionNxSample3) GetDirection() uint8 {
+ return self.Direction
+}
+
+func (self *ActionNxSample3) SetDirection(v uint8) {
+ self.Direction = v
+}
+
+func (self *ActionNxSample3) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Probability))
+ encoder.PutUint32(uint32(self.CollectorSetId))
+ encoder.PutUint32(uint32(self.ObsDomainId))
+ encoder.PutUint32(uint32(self.ObsPointId))
+ encoder.PutUint16(uint16(self.SamplingPort))
+ encoder.PutUint8(uint8(self.Direction))
+ encoder.Write(bytes.Repeat([]byte{0}, 5))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSample3(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSample3, error) {
+ _actionnxsample3 := &ActionNxSample3{ActionNicira: parent}
+ if decoder.Length() < 22 {
+ return nil, fmt.Errorf("ActionNxSample3 packet too short: %d < 22", decoder.Length())
+ }
+ _actionnxsample3.Probability = uint16(decoder.ReadUint16())
+ _actionnxsample3.CollectorSetId = uint32(decoder.ReadUint32())
+ _actionnxsample3.ObsDomainId = uint32(decoder.ReadUint32())
+ _actionnxsample3.ObsPointId = uint32(decoder.ReadUint32())
+ _actionnxsample3.SamplingPort = uint16(decoder.ReadUint16())
+ _actionnxsample3.Direction = uint8(decoder.ReadByte())
+ decoder.Skip(5)
+ return _actionnxsample3, nil
+}
+
+func NewActionNxSample3() *ActionNxSample3 {
+ obj := &ActionNxSample3{
+ ActionNicira: NewActionNicira(41),
+ }
+ return obj
+}
+func (self *ActionNxSample3) GetActionName() string {
+ return "nx_sample3"
+}
+
+func (self *ActionNxSample3) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Probability": self.Probability,
+ "CollectorSetId": self.CollectorSetId,
+ "ObsDomainId": self.ObsDomainId,
+ "ObsPointId": self.ObsPointId,
+ "SamplingPort": self.SamplingPort,
+ "Direction": self.Direction,
+ }
+}
+
+func (self *ActionNxSample3) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSetMplsLabel struct {
+ *ActionNicira
+ Value uint32
+}
+
+type IActionNxSetMplsLabel interface {
+ IActionNicira
+ GetValue() uint32
+}
+
+func (self *ActionNxSetMplsLabel) GetValue() uint32 {
+ return self.Value
+}
+
+func (self *ActionNxSetMplsLabel) SetValue(v uint32) {
+ self.Value = v
+}
+
+func (self *ActionNxSetMplsLabel) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSetMplsLabel(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSetMplsLabel, error) {
+ _actionnxsetmplslabel := &ActionNxSetMplsLabel{ActionNicira: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionNxSetMplsLabel packet too short: %d < 4", decoder.Length())
+ }
+ _actionnxsetmplslabel.Value = uint32(decoder.ReadUint32())
+ return _actionnxsetmplslabel, nil
+}
+
+func NewActionNxSetMplsLabel() *ActionNxSetMplsLabel {
+ obj := &ActionNxSetMplsLabel{
+ ActionNicira: NewActionNicira(30),
+ }
+ return obj
+}
+func (self *ActionNxSetMplsLabel) GetActionName() string {
+ return "nx_set_mpls_label"
+}
+
+func (self *ActionNxSetMplsLabel) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxSetMplsLabel) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSetMplsTc struct {
+ *ActionNicira
+ Value uint8
+}
+
+type IActionNxSetMplsTc interface {
+ IActionNicira
+ GetValue() uint8
+}
+
+func (self *ActionNxSetMplsTc) GetValue() uint8 {
+ return self.Value
+}
+
+func (self *ActionNxSetMplsTc) SetValue(v uint8) {
+ self.Value = v
+}
+
+func (self *ActionNxSetMplsTc) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint8(uint8(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSetMplsTc(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSetMplsTc, error) {
+ _actionnxsetmplstc := &ActionNxSetMplsTc{ActionNicira: parent}
+ if decoder.Length() < 1 {
+ return nil, fmt.Errorf("ActionNxSetMplsTc packet too short: %d < 1", decoder.Length())
+ }
+ _actionnxsetmplstc.Value = uint8(decoder.ReadByte())
+ return _actionnxsetmplstc, nil
+}
+
+func NewActionNxSetMplsTc() *ActionNxSetMplsTc {
+ obj := &ActionNxSetMplsTc{
+ ActionNicira: NewActionNicira(31),
+ }
+ return obj
+}
+func (self *ActionNxSetMplsTc) GetActionName() string {
+ return "nx_set_mpls_tc"
+}
+
+func (self *ActionNxSetMplsTc) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxSetMplsTc) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSetMplsTtl struct {
+ *ActionNicira
+ Value uint8
+}
+
+type IActionNxSetMplsTtl interface {
+ IActionNicira
+ GetValue() uint8
+}
+
+func (self *ActionNxSetMplsTtl) GetValue() uint8 {
+ return self.Value
+}
+
+func (self *ActionNxSetMplsTtl) SetValue(v uint8) {
+ self.Value = v
+}
+
+func (self *ActionNxSetMplsTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint8(uint8(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSetMplsTtl(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSetMplsTtl, error) {
+ _actionnxsetmplsttl := &ActionNxSetMplsTtl{ActionNicira: parent}
+ if decoder.Length() < 1 {
+ return nil, fmt.Errorf("ActionNxSetMplsTtl packet too short: %d < 1", decoder.Length())
+ }
+ _actionnxsetmplsttl.Value = uint8(decoder.ReadByte())
+ return _actionnxsetmplsttl, nil
+}
+
+func NewActionNxSetMplsTtl() *ActionNxSetMplsTtl {
+ obj := &ActionNxSetMplsTtl{
+ ActionNicira: NewActionNicira(25),
+ }
+ return obj
+}
+func (self *ActionNxSetMplsTtl) GetActionName() string {
+ return "nx_set_mpls_ttl"
+}
+
+func (self *ActionNxSetMplsTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxSetMplsTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSetQueue struct {
+ *ActionNicira
+ Value uint32
+}
+
+type IActionNxSetQueue interface {
+ IActionNicira
+ GetValue() uint32
+}
+
+func (self *ActionNxSetQueue) GetValue() uint32 {
+ return self.Value
+}
+
+func (self *ActionNxSetQueue) SetValue(v uint32) {
+ self.Value = v
+}
+
+func (self *ActionNxSetQueue) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSetQueue(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSetQueue, error) {
+ _actionnxsetqueue := &ActionNxSetQueue{ActionNicira: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionNxSetQueue packet too short: %d < 4", decoder.Length())
+ }
+ _actionnxsetqueue.Value = uint32(decoder.ReadUint32())
+ return _actionnxsetqueue, nil
+}
+
+func NewActionNxSetQueue() *ActionNxSetQueue {
+ obj := &ActionNxSetQueue{
+ ActionNicira: NewActionNicira(4),
+ }
+ return obj
+}
+func (self *ActionNxSetQueue) GetActionName() string {
+ return "nx_set_queue"
+}
+
+func (self *ActionNxSetQueue) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxSetQueue) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSetTunnel struct {
+ *ActionNicira
+ Value uint32
+}
+
+type IActionNxSetTunnel interface {
+ IActionNicira
+ GetValue() uint32
+}
+
+func (self *ActionNxSetTunnel) GetValue() uint32 {
+ return self.Value
+}
+
+func (self *ActionNxSetTunnel) SetValue(v uint32) {
+ self.Value = v
+}
+
+func (self *ActionNxSetTunnel) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSetTunnel(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSetTunnel, error) {
+ _actionnxsettunnel := &ActionNxSetTunnel{ActionNicira: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionNxSetTunnel packet too short: %d < 4", decoder.Length())
+ }
+ _actionnxsettunnel.Value = uint32(decoder.ReadUint32())
+ return _actionnxsettunnel, nil
+}
+
+func NewActionNxSetTunnel() *ActionNxSetTunnel {
+ obj := &ActionNxSetTunnel{
+ ActionNicira: NewActionNicira(2),
+ }
+ return obj
+}
+func (self *ActionNxSetTunnel) GetActionName() string {
+ return "nx_set_tunnel"
+}
+
+func (self *ActionNxSetTunnel) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxSetTunnel) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxSetTunnel64 struct {
+ *ActionNicira
+ Value uint64
+}
+
+type IActionNxSetTunnel64 interface {
+ IActionNicira
+ GetValue() uint64
+}
+
+func (self *ActionNxSetTunnel64) GetValue() uint64 {
+ return self.Value
+}
+
+func (self *ActionNxSetTunnel64) SetValue(v uint64) {
+ self.Value = v
+}
+
+func (self *ActionNxSetTunnel64) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint64(uint64(self.Value))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxSetTunnel64(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxSetTunnel64, error) {
+ _actionnxsettunnel64 := &ActionNxSetTunnel64{ActionNicira: parent}
+ if decoder.Length() < 8 {
+ return nil, fmt.Errorf("ActionNxSetTunnel64 packet too short: %d < 8", decoder.Length())
+ }
+ _actionnxsettunnel64.Value = uint64(decoder.ReadUint64())
+ return _actionnxsettunnel64, nil
+}
+
+func NewActionNxSetTunnel64() *ActionNxSetTunnel64 {
+ obj := &ActionNxSetTunnel64{
+ ActionNicira: NewActionNicira(9),
+ }
+ return obj
+}
+func (self *ActionNxSetTunnel64) GetActionName() string {
+ return "nx_set_tunnel64"
+}
+
+func (self *ActionNxSetTunnel64) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Value": self.Value,
+ }
+}
+
+func (self *ActionNxSetTunnel64) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxStackPop struct {
+ *ActionNicira
+ Offset uint16
+ Field goloxi.IOxmId
+ NBits uint16
+}
+
+type IActionNxStackPop interface {
+ IActionNicira
+ GetOffset() uint16
+ GetField() goloxi.IOxmId
+ GetNBits() uint16
+}
+
+func (self *ActionNxStackPop) GetOffset() uint16 {
+ return self.Offset
+}
+
+func (self *ActionNxStackPop) SetOffset(v uint16) {
+ self.Offset = v
+}
+
+func (self *ActionNxStackPop) GetField() goloxi.IOxmId {
+ return self.Field
+}
+
+func (self *ActionNxStackPop) SetField(v goloxi.IOxmId) {
+ self.Field = v
+}
+
+func (self *ActionNxStackPop) GetNBits() uint16 {
+ return self.NBits
+}
+
+func (self *ActionNxStackPop) SetNBits(v uint16) {
+ self.NBits = v
+}
+
+func (self *ActionNxStackPop) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Offset))
+ self.Field.Serialize(encoder)
+ encoder.PutUint16(uint16(self.NBits))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxStackPop(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxStackPop, error) {
+ _actionnxstackpop := &ActionNxStackPop{ActionNicira: parent}
+ if decoder.Length() < 8 {
+ return nil, fmt.Errorf("ActionNxStackPop packet too short: %d < 8", decoder.Length())
+ }
+ _actionnxstackpop.Offset = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxstackpop.Field = obj
+ }
+
+ _actionnxstackpop.NBits = uint16(decoder.ReadUint16())
+ return _actionnxstackpop, nil
+}
+
+func NewActionNxStackPop() *ActionNxStackPop {
+ obj := &ActionNxStackPop{
+ ActionNicira: NewActionNicira(28),
+ }
+ return obj
+}
+func (self *ActionNxStackPop) GetActionName() string {
+ return "nx_stack_pop"
+}
+
+func (self *ActionNxStackPop) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Offset": self.Offset,
+ "Field": self.Field,
+ "NBits": self.NBits,
+ }
+}
+
+func (self *ActionNxStackPop) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxStackPush struct {
+ *ActionNicira
+ Offset uint16
+ Field goloxi.IOxmId
+ NBits uint16
+}
+
+type IActionNxStackPush interface {
+ IActionNicira
+ GetOffset() uint16
+ GetField() goloxi.IOxmId
+ GetNBits() uint16
+}
+
+func (self *ActionNxStackPush) GetOffset() uint16 {
+ return self.Offset
+}
+
+func (self *ActionNxStackPush) SetOffset(v uint16) {
+ self.Offset = v
+}
+
+func (self *ActionNxStackPush) GetField() goloxi.IOxmId {
+ return self.Field
+}
+
+func (self *ActionNxStackPush) SetField(v goloxi.IOxmId) {
+ self.Field = v
+}
+
+func (self *ActionNxStackPush) GetNBits() uint16 {
+ return self.NBits
+}
+
+func (self *ActionNxStackPush) SetNBits(v uint16) {
+ self.NBits = v
+}
+
+func (self *ActionNxStackPush) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Offset))
+ self.Field.Serialize(encoder)
+ encoder.PutUint16(uint16(self.NBits))
+ length := len(encoder.Bytes()) - startIndex
+ alignedLength := ((length + 23) / 24 * 24)
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ encoder.Write(bytes.Repeat([]byte{0}, alignedLength-length))
+
+ return nil
+}
+
+func DecodeActionNxStackPush(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxStackPush, error) {
+ _actionnxstackpush := &ActionNxStackPush{ActionNicira: parent}
+ if decoder.Length() < 8 {
+ return nil, fmt.Errorf("ActionNxStackPush packet too short: %d < 8", decoder.Length())
+ }
+ _actionnxstackpush.Offset = uint16(decoder.ReadUint16())
+ if obj, err := DecodeOxmId(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionnxstackpush.Field = obj
+ }
+
+ _actionnxstackpush.NBits = uint16(decoder.ReadUint16())
+ return _actionnxstackpush, nil
+}
+
+func NewActionNxStackPush() *ActionNxStackPush {
+ obj := &ActionNxStackPush{
+ ActionNicira: NewActionNicira(27),
+ }
+ return obj
+}
+func (self *ActionNxStackPush) GetActionName() string {
+ return "nx_stack_push"
+}
+
+func (self *ActionNxStackPush) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Offset": self.Offset,
+ "Field": self.Field,
+ "NBits": self.NBits,
+ }
+}
+
+func (self *ActionNxStackPush) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionNxWriteMetadata struct {
+ *ActionNicira
+ Metadata uint64
+ Mask uint64
+}
+
+type IActionNxWriteMetadata interface {
+ IActionNicira
+ GetMetadata() uint64
+ GetMask() uint64
+}
+
+func (self *ActionNxWriteMetadata) GetMetadata() uint64 {
+ return self.Metadata
+}
+
+func (self *ActionNxWriteMetadata) SetMetadata(v uint64) {
+ self.Metadata = v
+}
+
+func (self *ActionNxWriteMetadata) GetMask() uint64 {
+ return self.Mask
+}
+
+func (self *ActionNxWriteMetadata) SetMask(v uint64) {
+ self.Mask = v
+}
+
+func (self *ActionNxWriteMetadata) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 6))
+ encoder.PutUint64(uint64(self.Metadata))
+ encoder.PutUint64(uint64(self.Mask))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionNxWriteMetadata(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionNxWriteMetadata, error) {
+ _actionnxwritemetadata := &ActionNxWriteMetadata{ActionNicira: parent}
+ if decoder.Length() < 22 {
+ return nil, fmt.Errorf("ActionNxWriteMetadata packet too short: %d < 22", decoder.Length())
+ }
+ decoder.Skip(6)
+ _actionnxwritemetadata.Metadata = uint64(decoder.ReadUint64())
+ _actionnxwritemetadata.Mask = uint64(decoder.ReadUint64())
+ return _actionnxwritemetadata, nil
+}
+
+func NewActionNxWriteMetadata() *ActionNxWriteMetadata {
+ obj := &ActionNxWriteMetadata{
+ ActionNicira: NewActionNicira(22),
+ }
+ return obj
+}
+func (self *ActionNxWriteMetadata) GetActionName() string {
+ return "nx_write_metadata"
+}
+
+func (self *ActionNxWriteMetadata) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Metadata": self.Metadata,
+ "Mask": self.Mask,
+ }
+}
+
+func (self *ActionNxWriteMetadata) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionOutput struct {
+ *Action
+ Port Port
+ MaxLen uint16
+}
+
+type IActionOutput interface {
+ goloxi.IAction
+ GetPort() Port
+ GetMaxLen() uint16
+}
+
+func (self *ActionOutput) GetPort() Port {
+ return self.Port
+}
+
+func (self *ActionOutput) SetPort(v Port) {
+ self.Port = v
+}
+
+func (self *ActionOutput) GetMaxLen() uint16 {
+ return self.MaxLen
+}
+
+func (self *ActionOutput) SetMaxLen(v uint16) {
+ self.MaxLen = v
+}
+
+func (self *ActionOutput) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ self.Port.Serialize(encoder)
+ encoder.PutUint16(uint16(self.MaxLen))
+ encoder.Write(bytes.Repeat([]byte{0}, 6))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionOutput(parent *Action, decoder *goloxi.Decoder) (*ActionOutput, error) {
+ _actionoutput := &ActionOutput{Action: parent}
+ if decoder.Length() < 12 {
+ return nil, fmt.Errorf("ActionOutput packet too short: %d < 12", decoder.Length())
+ }
+ _actionoutput.Port.Decode(decoder)
+ _actionoutput.MaxLen = uint16(decoder.ReadUint16())
+ decoder.Skip(6)
+ return _actionoutput, nil
+}
+
+func NewActionOutput() *ActionOutput {
+ obj := &ActionOutput{
+ Action: NewAction(0),
+ }
+ return obj
+}
+func (self *ActionOutput) GetActionName() string {
+ return "output"
+}
+
+func (self *ActionOutput) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Port": self.Port,
+ "MaxLen": self.MaxLen,
+ }
+}
+
+func (self *ActionOutput) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionPopMpls struct {
+ *Action
+ Ethertype uint16
+}
+
+type IActionPopMpls interface {
+ goloxi.IAction
+ GetEthertype() uint16
+}
+
+func (self *ActionPopMpls) GetEthertype() uint16 {
+ return self.Ethertype
+}
+
+func (self *ActionPopMpls) SetEthertype(v uint16) {
+ self.Ethertype = v
+}
+
+func (self *ActionPopMpls) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Ethertype))
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionPopMpls(parent *Action, decoder *goloxi.Decoder) (*ActionPopMpls, error) {
+ _actionpopmpls := &ActionPopMpls{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionPopMpls packet too short: %d < 4", decoder.Length())
+ }
+ _actionpopmpls.Ethertype = uint16(decoder.ReadUint16())
+ decoder.Skip(2)
+ return _actionpopmpls, nil
+}
+
+func NewActionPopMpls() *ActionPopMpls {
+ obj := &ActionPopMpls{
+ Action: NewAction(20),
+ }
+ return obj
+}
+func (self *ActionPopMpls) GetActionName() string {
+ return "pop_mpls"
+}
+
+func (self *ActionPopMpls) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Ethertype": self.Ethertype,
+ }
+}
+
+func (self *ActionPopMpls) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionPopVlan struct {
+ *Action
+}
+
+type IActionPopVlan interface {
+ goloxi.IAction
+}
+
+func (self *ActionPopVlan) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.Write(bytes.Repeat([]byte{0}, 4))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionPopVlan(parent *Action, decoder *goloxi.Decoder) (*ActionPopVlan, error) {
+ _actionpopvlan := &ActionPopVlan{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionPopVlan packet too short: %d < 4", decoder.Length())
+ }
+ decoder.Skip(4)
+ return _actionpopvlan, nil
+}
+
+func NewActionPopVlan() *ActionPopVlan {
+ obj := &ActionPopVlan{
+ Action: NewAction(18),
+ }
+ return obj
+}
+func (self *ActionPopVlan) GetActionName() string {
+ return "pop_vlan"
+}
+
+func (self *ActionPopVlan) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{}
+}
+
+func (self *ActionPopVlan) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionPushMpls struct {
+ *Action
+ Ethertype uint16
+}
+
+type IActionPushMpls interface {
+ goloxi.IAction
+ GetEthertype() uint16
+}
+
+func (self *ActionPushMpls) GetEthertype() uint16 {
+ return self.Ethertype
+}
+
+func (self *ActionPushMpls) SetEthertype(v uint16) {
+ self.Ethertype = v
+}
+
+func (self *ActionPushMpls) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Ethertype))
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionPushMpls(parent *Action, decoder *goloxi.Decoder) (*ActionPushMpls, error) {
+ _actionpushmpls := &ActionPushMpls{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionPushMpls packet too short: %d < 4", decoder.Length())
+ }
+ _actionpushmpls.Ethertype = uint16(decoder.ReadUint16())
+ decoder.Skip(2)
+ return _actionpushmpls, nil
+}
+
+func NewActionPushMpls() *ActionPushMpls {
+ obj := &ActionPushMpls{
+ Action: NewAction(19),
+ }
+ return obj
+}
+func (self *ActionPushMpls) GetActionName() string {
+ return "push_mpls"
+}
+
+func (self *ActionPushMpls) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Ethertype": self.Ethertype,
+ }
+}
+
+func (self *ActionPushMpls) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionPushVlan struct {
+ *Action
+ Ethertype uint16
+}
+
+type IActionPushVlan interface {
+ goloxi.IAction
+ GetEthertype() uint16
+}
+
+func (self *ActionPushVlan) GetEthertype() uint16 {
+ return self.Ethertype
+}
+
+func (self *ActionPushVlan) SetEthertype(v uint16) {
+ self.Ethertype = v
+}
+
+func (self *ActionPushVlan) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.Ethertype))
+ encoder.Write(bytes.Repeat([]byte{0}, 2))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionPushVlan(parent *Action, decoder *goloxi.Decoder) (*ActionPushVlan, error) {
+ _actionpushvlan := &ActionPushVlan{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionPushVlan packet too short: %d < 4", decoder.Length())
+ }
+ _actionpushvlan.Ethertype = uint16(decoder.ReadUint16())
+ decoder.Skip(2)
+ return _actionpushvlan, nil
+}
+
+func NewActionPushVlan() *ActionPushVlan {
+ obj := &ActionPushVlan{
+ Action: NewAction(17),
+ }
+ return obj
+}
+func (self *ActionPushVlan) GetActionName() string {
+ return "push_vlan"
+}
+
+func (self *ActionPushVlan) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Ethertype": self.Ethertype,
+ }
+}
+
+func (self *ActionPushVlan) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionResubmit struct {
+ *ActionNicira
+ InPort uint16
+ Table uint8
+}
+
+type IActionResubmit interface {
+ IActionNicira
+ GetInPort() uint16
+ GetTable() uint8
+}
+
+func (self *ActionResubmit) GetInPort() uint16 {
+ return self.InPort
+}
+
+func (self *ActionResubmit) SetInPort(v uint16) {
+ self.InPort = v
+}
+
+func (self *ActionResubmit) GetTable() uint8 {
+ return self.Table
+}
+
+func (self *ActionResubmit) SetTable(v uint8) {
+ self.Table = v
+}
+
+func (self *ActionResubmit) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.ActionNicira.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint16(uint16(self.InPort))
+ encoder.PutUint8(uint8(self.Table))
+ encoder.Write(bytes.Repeat([]byte{0}, 3))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionResubmit(parent *ActionNicira, decoder *goloxi.Decoder) (*ActionResubmit, error) {
+ _actionresubmit := &ActionResubmit{ActionNicira: parent}
+ if decoder.Length() < 6 {
+ return nil, fmt.Errorf("ActionResubmit packet too short: %d < 6", decoder.Length())
+ }
+ _actionresubmit.InPort = uint16(decoder.ReadUint16())
+ _actionresubmit.Table = uint8(decoder.ReadByte())
+ decoder.Skip(3)
+ return _actionresubmit, nil
+}
+
+func NewActionResubmit() *ActionResubmit {
+ obj := &ActionResubmit{
+ ActionNicira: NewActionNicira(14),
+ }
+ return obj
+}
+func (self *ActionResubmit) GetActionName() string {
+ return "resubmit"
+}
+
+func (self *ActionResubmit) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "InPort": self.InPort,
+ "Table": self.Table,
+ }
+}
+
+func (self *ActionResubmit) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionSetField struct {
+ *Action
+ Field goloxi.IOxm
+}
+
+type IActionSetField interface {
+ goloxi.IAction
+ GetField() goloxi.IOxm
+}
+
+func (self *ActionSetField) GetField() goloxi.IOxm {
+ return self.Field
+}
+
+func (self *ActionSetField) SetField(v goloxi.IOxm) {
+ self.Field = v
+}
+
+func (self *ActionSetField) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ self.Field.Serialize(encoder)
+ length := len(encoder.Bytes()) - startIndex
+ alignedLength := ((length + 7) / 8 * 8)
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(alignedLength))
+
+ encoder.Write(bytes.Repeat([]byte{0}, alignedLength-length))
+
+ return nil
+}
+
+func DecodeActionSetField(parent *Action, decoder *goloxi.Decoder) (*ActionSetField, error) {
+ _actionsetfield := &ActionSetField{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionSetField packet too short: %d < 4", decoder.Length())
+ }
+ if obj, err := DecodeOxm(decoder); err != nil {
+ return nil, err
+ } else {
+ _actionsetfield.Field = obj
+ }
+
+ return _actionsetfield, nil
+}
+
+func NewActionSetField() *ActionSetField {
+ obj := &ActionSetField{
+ Action: NewAction(25),
+ }
+ return obj
+}
+func (self *ActionSetField) GetActionName() string {
+ return "set_field"
+}
+
+func (self *ActionSetField) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "Field": self.Field,
+ }
+}
+
+func (self *ActionSetField) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionSetMplsTtl struct {
+ *Action
+ MplsTtl uint8
+}
+
+type IActionSetMplsTtl interface {
+ goloxi.IAction
+ GetMplsTtl() uint8
+}
+
+func (self *ActionSetMplsTtl) GetMplsTtl() uint8 {
+ return self.MplsTtl
+}
+
+func (self *ActionSetMplsTtl) SetMplsTtl(v uint8) {
+ self.MplsTtl = v
+}
+
+func (self *ActionSetMplsTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint8(uint8(self.MplsTtl))
+ encoder.Write(bytes.Repeat([]byte{0}, 3))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionSetMplsTtl(parent *Action, decoder *goloxi.Decoder) (*ActionSetMplsTtl, error) {
+ _actionsetmplsttl := &ActionSetMplsTtl{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionSetMplsTtl packet too short: %d < 4", decoder.Length())
+ }
+ _actionsetmplsttl.MplsTtl = uint8(decoder.ReadByte())
+ decoder.Skip(3)
+ return _actionsetmplsttl, nil
+}
+
+func NewActionSetMplsTtl() *ActionSetMplsTtl {
+ obj := &ActionSetMplsTtl{
+ Action: NewAction(15),
+ }
+ return obj
+}
+func (self *ActionSetMplsTtl) GetActionName() string {
+ return "set_mpls_ttl"
+}
+
+func (self *ActionSetMplsTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "MplsTtl": self.MplsTtl,
+ }
+}
+
+func (self *ActionSetMplsTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionSetNwTtl struct {
+ *Action
+ NwTtl uint8
+}
+
+type IActionSetNwTtl interface {
+ goloxi.IAction
+ GetNwTtl() uint8
+}
+
+func (self *ActionSetNwTtl) GetNwTtl() uint8 {
+ return self.NwTtl
+}
+
+func (self *ActionSetNwTtl) SetNwTtl(v uint8) {
+ self.NwTtl = v
+}
+
+func (self *ActionSetNwTtl) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint8(uint8(self.NwTtl))
+ encoder.Write(bytes.Repeat([]byte{0}, 3))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionSetNwTtl(parent *Action, decoder *goloxi.Decoder) (*ActionSetNwTtl, error) {
+ _actionsetnwttl := &ActionSetNwTtl{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionSetNwTtl packet too short: %d < 4", decoder.Length())
+ }
+ _actionsetnwttl.NwTtl = uint8(decoder.ReadByte())
+ decoder.Skip(3)
+ return _actionsetnwttl, nil
+}
+
+func NewActionSetNwTtl() *ActionSetNwTtl {
+ obj := &ActionSetNwTtl{
+ Action: NewAction(23),
+ }
+ return obj
+}
+func (self *ActionSetNwTtl) GetActionName() string {
+ return "set_nw_ttl"
+}
+
+func (self *ActionSetNwTtl) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "NwTtl": self.NwTtl,
+ }
+}
+
+func (self *ActionSetNwTtl) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}
+
+type ActionSetQueue struct {
+ *Action
+ QueueId uint32
+}
+
+type IActionSetQueue interface {
+ goloxi.IAction
+ GetQueueId() uint32
+}
+
+func (self *ActionSetQueue) GetQueueId() uint32 {
+ return self.QueueId
+}
+
+func (self *ActionSetQueue) SetQueueId(v uint32) {
+ self.QueueId = v
+}
+
+func (self *ActionSetQueue) Serialize(encoder *goloxi.Encoder) error {
+ startIndex := len(encoder.Bytes())
+ if err := self.Action.Serialize(encoder); err != nil {
+ return err
+ }
+
+ encoder.PutUint32(uint32(self.QueueId))
+ length := len(encoder.Bytes()) - startIndex
+
+ binary.BigEndian.PutUint16(encoder.Bytes()[startIndex+2:startIndex+4], uint16(length))
+
+ return nil
+}
+
+func DecodeActionSetQueue(parent *Action, decoder *goloxi.Decoder) (*ActionSetQueue, error) {
+ _actionsetqueue := &ActionSetQueue{Action: parent}
+ if decoder.Length() < 4 {
+ return nil, fmt.Errorf("ActionSetQueue packet too short: %d < 4", decoder.Length())
+ }
+ _actionsetqueue.QueueId = uint32(decoder.ReadUint32())
+ return _actionsetqueue, nil
+}
+
+func NewActionSetQueue() *ActionSetQueue {
+ obj := &ActionSetQueue{
+ Action: NewAction(21),
+ }
+ return obj
+}
+func (self *ActionSetQueue) GetActionName() string {
+ return "set_queue"
+}
+
+func (self *ActionSetQueue) GetActionFields() map[string]interface{} {
+ return map[string]interface{}{
+ "QueueId": self.QueueId,
+ }
+}
+
+func (self *ActionSetQueue) MarshalJSON() ([]byte, error) {
+ jsonValue, err := json.Marshal(self.GetActionFields())
+ if err != nil {
+ return nil, err
+ }
+ return []byte(fmt.Sprintf("{\"Type\":\"%s\",\"Arguments\":%s}", self.GetActionName(), string(jsonValue))), nil
+}