github.com/edwarnicke/govpp@v0.0.0-20230130211138-14ef5d20b1d0/binapi/lisp_types/lisp_types.ba.go (about)

     1  // Code generated by GoVPP's binapi-generator. DO NOT EDIT.
     2  // versions:
     3  //  binapi-generator: v0.4.0-dev
     4  //  VPP:              23.02-rc0~189-g57127b32a
     5  // source: /usr/share/vpp/api/plugins/lisp_types.api.json
     6  
     7  // Package lisp_types contains generated bindings for API file lisp_types.api.
     8  //
     9  // Contents:
    10  //   2 enums
    11  //   5 structs
    12  //   1 union
    13  //
    14  package lisp_types
    15  
    16  import (
    17  	"strconv"
    18  
    19  	api "git.fd.io/govpp.git/api"
    20  	codec "git.fd.io/govpp.git/codec"
    21  	ethernet_types "github.com/edwarnicke/govpp/binapi/ethernet_types"
    22  	interface_types "github.com/edwarnicke/govpp/binapi/interface_types"
    23  	ip_types "github.com/edwarnicke/govpp/binapi/ip_types"
    24  )
    25  
    26  // This is a compile-time assertion to ensure that this generated file
    27  // is compatible with the GoVPP api package it is being compiled against.
    28  // A compilation error at this line likely means your copy of the
    29  // GoVPP api package needs to be updated.
    30  const _ = api.GoVppAPIPackageIsVersion2
    31  
    32  // EidType defines enum 'eid_type'.
    33  type EidType uint8
    34  
    35  const (
    36  	EID_TYPE_API_PREFIX EidType = 0
    37  	EID_TYPE_API_MAC    EidType = 1
    38  	EID_TYPE_API_NSH    EidType = 2
    39  )
    40  
    41  var (
    42  	EidType_name = map[uint8]string{
    43  		0: "EID_TYPE_API_PREFIX",
    44  		1: "EID_TYPE_API_MAC",
    45  		2: "EID_TYPE_API_NSH",
    46  	}
    47  	EidType_value = map[string]uint8{
    48  		"EID_TYPE_API_PREFIX": 0,
    49  		"EID_TYPE_API_MAC":    1,
    50  		"EID_TYPE_API_NSH":    2,
    51  	}
    52  )
    53  
    54  func (x EidType) String() string {
    55  	s, ok := EidType_name[uint8(x)]
    56  	if ok {
    57  		return s
    58  	}
    59  	return "EidType(" + strconv.Itoa(int(x)) + ")"
    60  }
    61  
    62  // HmacKeyID defines enum 'hmac_key_id'.
    63  type HmacKeyID uint8
    64  
    65  const (
    66  	KEY_ID_API_HMAC_NO_KEY      HmacKeyID = 0
    67  	KEY_ID_API_HMAC_SHA_1_96    HmacKeyID = 1
    68  	KEY_ID_API_HMAC_SHA_256_128 HmacKeyID = 2
    69  )
    70  
    71  var (
    72  	HmacKeyID_name = map[uint8]string{
    73  		0: "KEY_ID_API_HMAC_NO_KEY",
    74  		1: "KEY_ID_API_HMAC_SHA_1_96",
    75  		2: "KEY_ID_API_HMAC_SHA_256_128",
    76  	}
    77  	HmacKeyID_value = map[string]uint8{
    78  		"KEY_ID_API_HMAC_NO_KEY":      0,
    79  		"KEY_ID_API_HMAC_SHA_1_96":    1,
    80  		"KEY_ID_API_HMAC_SHA_256_128": 2,
    81  	}
    82  )
    83  
    84  func (x HmacKeyID) String() string {
    85  	s, ok := HmacKeyID_name[uint8(x)]
    86  	if ok {
    87  		return s
    88  	}
    89  	return "HmacKeyID(" + strconv.Itoa(int(x)) + ")"
    90  }
    91  
    92  // Eid defines type 'eid'.
    93  type Eid struct {
    94  	Type    EidType         `binapi:"eid_type,name=type" json:"type,omitempty"`
    95  	Address EidAddressUnion `binapi:"eid_address,name=address" json:"address,omitempty"`
    96  }
    97  
    98  // HmacKey defines type 'hmac_key'.
    99  type HmacKey struct {
   100  	ID  HmacKeyID `binapi:"hmac_key_id,name=id" json:"id,omitempty"`
   101  	Key []byte    `binapi:"u8[64],name=key" json:"key,omitempty"`
   102  }
   103  
   104  // LocalLocator defines type 'local_locator'.
   105  type LocalLocator struct {
   106  	SwIfIndex interface_types.InterfaceIndex `binapi:"interface_index,name=sw_if_index" json:"sw_if_index,omitempty"`
   107  	Priority  uint8                          `binapi:"u8,name=priority" json:"priority,omitempty"`
   108  	Weight    uint8                          `binapi:"u8,name=weight" json:"weight,omitempty"`
   109  }
   110  
   111  // Nsh defines type 'nsh'.
   112  type Nsh struct {
   113  	Spi uint32 `binapi:"u32,name=spi" json:"spi,omitempty"`
   114  	Si  uint8  `binapi:"u8,name=si" json:"si,omitempty"`
   115  }
   116  
   117  // RemoteLocator defines type 'remote_locator'.
   118  type RemoteLocator struct {
   119  	Priority  uint8            `binapi:"u8,name=priority" json:"priority,omitempty"`
   120  	Weight    uint8            `binapi:"u8,name=weight" json:"weight,omitempty"`
   121  	IPAddress ip_types.Address `binapi:"address,name=ip_address" json:"ip_address,omitempty"`
   122  }
   123  
   124  // EidAddressUnion defines union 'eid_address'.
   125  type EidAddressUnion struct {
   126  	// EidAddressUnion can be one of:
   127  	// - Prefix *ip_types.Prefix
   128  	// - Mac *ethernet_types.MacAddress
   129  	// - Nsh *Nsh
   130  	XXX_UnionData [18]byte
   131  }
   132  
   133  func EidAddressUnionPrefix(a ip_types.Prefix) (u EidAddressUnion) {
   134  	u.SetPrefix(a)
   135  	return
   136  }
   137  func (u *EidAddressUnion) SetPrefix(a ip_types.Prefix) {
   138  	buf := codec.NewBuffer(u.XXX_UnionData[:])
   139  	buf.EncodeUint8(uint8(a.Address.Af))
   140  	buf.EncodeBytes(a.Address.Un.XXX_UnionData[:], 16)
   141  	buf.EncodeUint8(a.Len)
   142  }
   143  func (u *EidAddressUnion) GetPrefix() (a ip_types.Prefix) {
   144  	buf := codec.NewBuffer(u.XXX_UnionData[:])
   145  	a.Address.Af = ip_types.AddressFamily(buf.DecodeUint8())
   146  	copy(a.Address.Un.XXX_UnionData[:], buf.DecodeBytes(16))
   147  	a.Len = buf.DecodeUint8()
   148  	return
   149  }
   150  
   151  func EidAddressUnionMac(a ethernet_types.MacAddress) (u EidAddressUnion) {
   152  	u.SetMac(a)
   153  	return
   154  }
   155  func (u *EidAddressUnion) SetMac(a ethernet_types.MacAddress) {
   156  	buf := codec.NewBuffer(u.XXX_UnionData[:])
   157  	buf.EncodeBytes(a[:], 6)
   158  }
   159  func (u *EidAddressUnion) GetMac() (a ethernet_types.MacAddress) {
   160  	buf := codec.NewBuffer(u.XXX_UnionData[:])
   161  	copy(a[:], buf.DecodeBytes(6))
   162  	return
   163  }
   164  
   165  func EidAddressUnionNsh(a Nsh) (u EidAddressUnion) {
   166  	u.SetNsh(a)
   167  	return
   168  }
   169  func (u *EidAddressUnion) SetNsh(a Nsh) {
   170  	buf := codec.NewBuffer(u.XXX_UnionData[:])
   171  	buf.EncodeUint32(a.Spi)
   172  	buf.EncodeUint8(a.Si)
   173  }
   174  func (u *EidAddressUnion) GetNsh() (a Nsh) {
   175  	buf := codec.NewBuffer(u.XXX_UnionData[:])
   176  	a.Spi = buf.DecodeUint32()
   177  	a.Si = buf.DecodeUint8()
   178  	return
   179  }