Documentation ¶
Index ¶
- Constants
- func DimmHeader(tw *tabwriter.Writer)
- func DiskHeader(tw *tabwriter.Writer)
- func Gb(value uint64) uint64
- func Gbps(value uint64) uint64
- func Kb(value uint64) uint64
- func Kbps(value uint64) uint64
- func MHz(value uint64) uint64
- func Mb(value uint64) uint64
- func Mbps(value uint64) uint64
- func NicHeader(tw *tabwriter.Writer)
- func ProcHeader(tw *tabwriter.Writer)
- func Tb(value uint64) uint64
- func Tbps(value uint64) uint64
- type Base
- type Cable
- type CableKind
- type Connector
- type ConnectorKind
- type Device
- type DeviceSpec
- func (s *DeviceSpec) AddDisk(x Disk)
- func (s *DeviceSpec) AddMemory(x Dimm)
- func (s *DeviceSpec) AddNic(x Nic)
- func (s *DeviceSpec) AddProc(x Proc)
- func (s DeviceSpec) Bandwidth() uint64
- func (s DeviceSpec) CoreCount() int
- func (s DeviceSpec) DiskCapacity() uint64
- func (s DeviceSpec) MemoryCapacity() uint64
- type Dimm
- type Dimms
- type Disk
- type DiskFormFactor
- type DiskInterface
- type Disks
- type Element
- type End
- type GPU
- type ISA
- type Layer1
- type MemoryType
- type Nic
- type Nics
- type Port
- type Proc
- type Procs
- type Tty
- type Usb
- type UsbVersion
Constants ¶
const ( Onboard = "eno" Peripheral = "enp" )
Variables ¶
This section is empty.
Functions ¶
func DimmHeader ¶
func DiskHeader ¶
func ProcHeader ¶
Types ¶
type Base ¶
type Cable ¶
A Cable is a physical link between two hosts.
func (*Cable) Breakout ¶
Breakout connects a single port to multiple. This function assumes the first end is the trunk end of the cable.
type CableKind ¶
type CableKind uint16
CableKind defines the type of cable
const ( // UnspecCable indicates the cable kind is not defined UnspecCable CableKind = iota // Cat5 indicates a category 5 copper cable Cat5 // Cat5e indicates a category 5 enhanced copper cable Cat5e // Cat6 indicates a category 6 copper cable Cat6 // DAC indicates a direct attach copper cable DAC DACBreakout // FiberLC indicates a fiber cable with LC type connectors FiberLC // FiberMPOTrunk indicates a fiber trunk cable with MPO connectors FiberMPOTrunk // FiberMPOBreakout indicates a fiber breakout cable with an MPO connector on // the trunk side. FiberMPOBreakout AOC )
type Connector ¶
type Connector struct { Base Kind ConnectorKind `json:"kind,omitempty"` Protocols []Layer1 `json:"layer1,omitempty"` Capacity uint64 `json:"capacity,omitempty"` Port *Port `json:"-" yaml:"-" mapstructure:"-"` }
A Connector couples a cable to a host.
type ConnectorKind ¶
type ConnectorKind uint16
ConnectorKind defines the type of connector.
const ( // UnspecConnector indicates the connector kind is not defined UnspecConnector ConnectorKind = iota // RJ45 type twisted pair connector. RJ45 // SFP type modular connector. SFP // QSFP type modular connector. QSFP // SFPP indicates SFP+ type modular connector SFPP // QSFPP indicates QSFP+ type modular connector QSFPP // SFP28 type modular connector SFP28 // QSFP28 type modular connector QSFP28 // CXP type modular connector CXP // LC type fiber connector LC // MPO type fiber connector MPO // SFP56 type modular connector SFP56 // QSFP56 type modular connector QSFP56 // QSFP double density connector QSFPDD )
func (ConnectorKind) String ¶
func (c ConnectorKind) String() string
type Device ¶
type Device struct { Base Procs []Proc `json:"procs,omitempty"` Memory []Dimm `json:"memory,omitempty"` Nics []Nic `json:"nics,omitempty"` Usbs []Usb `json:"usbs,omitempty"` Ttys []Tty `json:"ttys,omitempty"` Disks []Disk `json:"disks,omitempty"` GPUs []GPU `json:"gpus,omitempty"` }
func GenericServer ¶
GenericServer creates a generic server with the provided number of ports and port speed.
func GenericSwitch ¶
GenericSwitch creates a generic switch with the provided radix and port speed.
type DeviceSpec ¶
type DeviceSpec struct { Base Procs map[string]*Procs Memory map[string]*Dimms Nics map[string]*Nics Disks map[string]*Disks }
DeviceSpec contains a keyed set of components. The semantics behind this data structure are that they key uniquely identifies the object, and that when a new object is added with the same key the count is simply incremented. This is uesful for building device specifications that contain many of the same parts. For example consider a computer with 8 identical ram sticks, or 10 identical drives. This data structure contains the spec for just one and increments a counter.
func NewSpec ¶
func NewSpec(d *Device) *DeviceSpec
func (*DeviceSpec) AddDisk ¶
func (s *DeviceSpec) AddDisk(x Disk)
func (*DeviceSpec) AddMemory ¶
func (s *DeviceSpec) AddMemory(x Dimm)
func (*DeviceSpec) AddNic ¶
func (s *DeviceSpec) AddNic(x Nic)
func (*DeviceSpec) AddProc ¶
func (s *DeviceSpec) AddProc(x Proc)
func (DeviceSpec) Bandwidth ¶
func (s DeviceSpec) Bandwidth() uint64
func (DeviceSpec) CoreCount ¶
func (s DeviceSpec) CoreCount() int
func (DeviceSpec) DiskCapacity ¶
func (s DeviceSpec) DiskCapacity() uint64
func (DeviceSpec) MemoryCapacity ¶
func (s DeviceSpec) MemoryCapacity() uint64
type Dimm ¶
type Dimm struct { Base Type MemoryType `json:"type,omitempty"` Capacity uint64 `json:"capacity,omitempty"` Frequency uint64 `json:"frequency,omitempty"` }
type Disk ¶
type Disk struct { Base Capacity uint64 `json:"capacity"` FormFactor DiskFormFactor `json:"formfactor"` Interface DiskInterface `json:"interface"` }
type DiskFormFactor ¶
type DiskFormFactor int
const ( DiskFormFactorUnknown DiskFormFactor = iota HDD35 HDD25 SSD35 SSD25 MSATA M2_2216 M2_2226 M2_2230 M2_2238 M2_2242 M2_2260 M2_2280 M2_22110 U2 EMMC EUSB )
func (DiskFormFactor) String ¶
func (dff DiskFormFactor) String() string
type DiskInterface ¶
type DiskInterface int
const ( DiskInterfaceUnknown DiskInterface = iota SATA1 SATA2 SATA3 NVMEx2 NVMEx4 MMC SD USB )
func (DiskInterface) String ¶
func (di DiskInterface) String() string
type End ¶
type End []*Connector
An End represents an end of a cable that may have 1 or many connectors (breakout cable).
type Layer1 ¶
type Layer1 uint
Layer 1 (physical) protocol
const ( UnspecProtocol Layer1 = iota // 100 mbps Base100T // 1 gbps Base1000T Base1000X Base1000CX Base1000SX Base1000LX Base1000LX10 Base1000EX Base1000BX10 Base1000ZX // 10 gbps GBase10T GBase10CR GBase10SR GBase10LR GBase10LRM GBase10ER GBase10ZR GBase10LX4 GBase10PR // 25 gbps GBase25CR GBase25SR GBase25LR GBase25ER // 40 gbps GBase40CR4 GBase40SR4 GBase40LR4 GBase40ER4 // 100 gbps GBase100CR4 GBase100SR4 GBase100SR10 GBase100LR4 GBase100ER4 // Console RS232 Uart // 50 gbps GBase50SR4 GBase50LR4 GBase50ER4 GBase50CR GBase50KR GBase50SR GBase50LR GBase50FR GBase50ER LAUI_2 GAUI50_1 GAUI50_2 // 200 gbps GBase200CR4 GBase200KR4 GBase200SR4 GBase200DR4 GBase200FR4 GBase200LR4 GBase200ER4 GAUI200_4 GAUI200_8 // 400 gbps GBase400SR16 GBase400SR8 GBase400SR4_2 GBase400DR4 GBase400FR8 GBase400ER8 GBase400ZR GAUI400_16 GAUI400_8 XBee ZWave Zigbee CXP100 CXP120 )
type MemoryType ¶
type MemoryType int
const ( MemoryTypeUnknown MemoryType = iota DDR3 DDR4 )
func (MemoryType) String ¶
func (t MemoryType) String() string
type Nic ¶
type Port ¶
type Port struct { Protocols []Layer1 `json:"protocol,omitempty"` Capacity uint64 `json:"capacity,omitempty"` //bits per second Mac string `json:"mac,omitempty"` FormFactor ConnectorKind `json:"form_factor,omitempty"` Connector *Connector `json:"-" yaml:"-" mapstructure:"-"` Breakout string Endpoint *xir.Endpoint `json:"-" yaml:"-" mapstructure:"-"` }
type Proc ¶
type Proc struct { Base ISA ISA `json:"isa,omitempty"` Family string `json:"family,omitempty"` BaseFrequency uint64 `json:"basefrequency,omitempty"` L2 uint64 `json:"l2,omitempty"` Cores uint `json:"cores,omitempty"` Threads uint `json:"threads,omitempty"` Tdp uint `json:"tdp,omitempty"` }
Proc represents a processor
type Usb ¶
type Usb struct {
Version UsbVersion `json:"version"`
}
type UsbVersion ¶
type UsbVersion float32
const ( USB1 UsbVersion = 1.0 USB11 UsbVersion = 1.1 USB20 UsbVersion = 2.0 USB21 UsbVersion = 2.1 USB30 UsbVersion = 3.0 USB31 UsbVersion = 3.1 )