lldp_ext_med.h File Reference

LLDP-MED extension (LLDP for Media Endpoint Devices) More...

#include "core/net.h"
#include "lldp/lldp.h"

Go to the source code of this file.

Macros

#define LLDP_MED_MIN_INVENTORY_STRING_LEN   0
 
#define LLDP_MED_MAX_INVENTORY_STRING_LEN   32
 

Enumerations

enum  LldpMedSubtype {
  LLDP_MED_SUBTYPE_RESERVED = 0 , LLDP_MED_SUBTYPE_LLDP_MED_CAP = 1 , LLDP_MED_SUBTYPE_NETWORK_POLICY = 2 , LLDP_MED_SUBTYPE_LOCATION_ID = 3 ,
  LLDP_MED_SUBTYPE_EXT_POWER_VIA_MDI = 4 , LLDP_MED_SUBTYPE_HARDWARE_REVISION = 5 , LLDP_MED_SUBTYPE_FIRMWARE_REVISION = 6 , LLDP_MED_SUBTYPE_SOFTWARE_REVISION = 7 ,
  LLDP_MED_SUBTYPE_SERIAL_NUMBER = 8 , LLDP_MED_SUBTYPE_MANUFACTURER_NAME = 9 , LLDP_MED_SUBTYPE_MODEL_NAME = 10 , LLDP_MED_SUBTYPE_ASSET_ID = 11
}
 LLDP-MED subtypes. More...
 
enum  LldpMedCap {
  LLDP_MED_CAP = 0x0001 , LLDP_MED_CAP_NETWORK_POLICY = 0x0002 , LLDP_MED_CAP_LOCATION = 0x0004 , LLDP_MED_CAP_EXTENDED_PSE = 0x0008 ,
  LLDP_MED_CAP_EXTENDED_PD = 0x0010 , LLDP_MED_CAP_INVENTORY = 0x0020
}
 LLDP-MED capabilities. More...
 
enum  LldpMedDeviceType {
  LLDP_MED_DEVICE_TYPE_NOT_DEFINED = 0 , LLDP_MED_DEVICE_TYPE_ENDPOINT_CLASS_1 = 1 , LLDP_MED_DEVICE_TYPE_ENDPOINT_CLASS_2 = 2 , LLDP_MED_DEVICE_TYPE_ENDPOINT_CLASS_3 = 3 ,
  LLDP_MED_DEVICE_TYPE_NETWORK_CONNECTIVITY = 4
}
 LLDP-MED device type. More...
 
enum  LldpMedAppType {
  LLDP_MED_APP_TYPE_RESERVED = 0 , LLDP_MED_APP_TYPE_VOICE = 1 , LLDP_MED_APP_TYPE_VOICE_SIGNALING = 2 , LLDP_MED_APP_TYPE_GUEST_VOICE = 3 ,
  LLDP_MED_APP_TYPE_GUEST_VOICE_SIGNALING = 4 , LLDP_MED_APP_TYPE_SOFTPHONE_VOICE = 5 , LLDP_MED_APP_TYPE_VIDEO_CONFERENCING = 6 , LLDP_MED_APP_TYPE_STREAMING_VIDEO = 7 ,
  LLDP_MED_APP_TYPE_VIDEO_SIGNALING = 8
}
 Application type. More...
 
enum  LldpMedLocationDataFormat { LLDP_MED_LOCATION_DATA_FORMAT_INVALID = 0 , LLDP_MED_LOCATION_DATA_FORMAT_COORD_BASED_LCI = 1 , LLDP_MED_LOCATION_DATA_FORMAT_CIVIC_ADDR_LCI = 2 , LLDP_MED_LOCATION_DATA_FORMAT_ECS_ELIN = 3 }
 Location data format. More...
 
enum  LldpMedPowerType { LLDP_MED_POWER_TYPE_PSE_DEVICE = 0 , LLDP_MED_POWER_TYPE_PD_DEVICE = 1 , LLDP_MED_POWER_TYPE_RESERVED_1 = 2 , LLDP_MED_POWER_TYPE_RESERVED_2 = 3 }
 Power type. More...
 
enum  LldpMedPowerSource {
  LLDP_MED_PD_POWER_SOURCE_UNKNOWN = 0 , LLDP_MED_PD_POWER_SOURCE_PSE = 1 , LLDP_MED_PD_POWER_SOURCE_LOCAL = 2 , LLDP_MED_PD_POWER_SOURCE_PSE_AND_LOCAL = 3 ,
  LLDP_MED_PSE_POWER_SOURCE_UNKNOWN = 0 , LLDP_MED_PSE_POWER_SOURCE_PRIMARY = 1 , LLDP_MED_PSE_POWER_SOURCE_BACKUP = 2 , LLDP_MED_PSE_POWER_SOURCE_RESERVED = 3
}
 Power source. More...
 
enum  LldpMedPowerPriority { LLDP_MED_POWER_PRIORITY_UNKNOWN = 0 , LLDP_MED_POWER_PRIORITY_CRITICAL = 1 , LLDP_MED_POWER_PRIORITY_HIGH = 2 , LLDP_MED_POWER_PRIORITY_LOW = 3 }
 Power priority. More...
 

Functions

error_t lldpMedSetLocalCap (LldpAgentContext *context, uint16_t capabilities, LldpMedDeviceType deviceType)
 Set LLDP-MED capabilities. More...
 
error_t lldpMedSetLocalNetworkPolicy (LldpAgentContext *context, uint_t portIndex, LldpMedAppType appType, bool_t u, bool_t t, uint16_t vlanId, uint8_t l2Priority, uint8_t dscpValue)
 Set network policy. More...
 
error_t lldpMedSetLocalLocationId (LldpAgentContext *context, uint_t portIndex, LldpMedLocationDataFormat locationDataFormat, const void *locationId, size_t locationIdLen)
 Set location identification. More...
 
error_t lldpMedSetLocalExtPowerViaMdi (LldpAgentContext *context, uint_t portIndex, LldpMedPowerType powerType, LldpMedPowerSource powerSource, LldpMedPowerPriority powerPriority, uint16_t powerValue)
 Set extended power-via-MDI. More...
 
error_t lldpMedSetLocalHardwareRevision (LldpAgentContext *context, const char_t *hardwareRevision)
 Set hardware revision. More...
 
error_t lldpMedSetLocalFirmwareRevision (LldpAgentContext *context, const char_t *firmwareRevision)
 Set firmware revision. More...
 
error_t lldpMedSetLocalSoftwareRevision (LldpAgentContext *context, const char_t *softwareRevision)
 Set software revision. More...
 
error_t lldpMedSetLocalSerialNumber (LldpAgentContext *context, const char_t *serialNumber)
 Set serial number. More...
 
error_t lldpMedSetLocalManufacturerName (LldpAgentContext *context, const char_t *manufacturerName)
 Set manufacturer name. More...
 
error_t lldpMedSetLocalModelName (LldpAgentContext *context, const char_t *modelName)
 Set model name. More...
 
error_t lldpMedSetLocalAssetId (LldpAgentContext *context, const char_t *assetId)
 Set asset identifier. More...
 
error_t lldpMedDeleteLocalTlv (LldpAgentContext *context, LldpMedSubtype subtype)
 Remove all LLDP-MED specific TLVs with specified subtype. More...
 

Variables

typedef __packed_struct
 LLDP-MED Capabilities TLV. More...
 
uint8_t deviceType
 
 LldpMedCapTlv
 
uint8_t vlanIdH
 
uint8_t x
 
uint8_t t
 
uint8_t u
 
uint8_t l2PriorityH
 
uint8_t vlanIdL
 
uint8_t dscpValue
 
uint8_t l2PriorityL
 
 LldpMedNetworkPolicyTlv
 
uint8_t locationId []
 
 LldpMedLocationIdTlv
 
uint8_t powerSource
 
uint8_t powerType
 
uint16_t powerValue
 
 LldpMedExtPowerViaMdiTlv
 

Detailed Description

LLDP-MED extension (LLDP for Media Endpoint Devices)

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.0

Definition in file lldp_ext_med.h.

Macro Definition Documentation

◆ LLDP_MED_MAX_INVENTORY_STRING_LEN

#define LLDP_MED_MAX_INVENTORY_STRING_LEN   32

Definition at line 41 of file lldp_ext_med.h.

◆ LLDP_MED_MIN_INVENTORY_STRING_LEN

#define LLDP_MED_MIN_INVENTORY_STRING_LEN   0

Definition at line 39 of file lldp_ext_med.h.

Enumeration Type Documentation

◆ LldpMedAppType

Application type.

Enumerator
LLDP_MED_APP_TYPE_RESERVED 

Reserved.

LLDP_MED_APP_TYPE_VOICE 

Voice.

LLDP_MED_APP_TYPE_VOICE_SIGNALING 

Voice signaling.

LLDP_MED_APP_TYPE_GUEST_VOICE 

Guest Voice.

LLDP_MED_APP_TYPE_GUEST_VOICE_SIGNALING 

Guest Voice Signaling.

LLDP_MED_APP_TYPE_SOFTPHONE_VOICE 

Softphone Voice.

LLDP_MED_APP_TYPE_VIDEO_CONFERENCING 

Video Conferencing.

LLDP_MED_APP_TYPE_STREAMING_VIDEO 

Streaming Video.

LLDP_MED_APP_TYPE_VIDEO_SIGNALING 

Video signaling.

Definition at line 103 of file lldp_ext_med.h.

◆ LldpMedCap

enum LldpMedCap

LLDP-MED capabilities.

Enumerator
LLDP_MED_CAP 

LLDP-MED capabilities.

LLDP_MED_CAP_NETWORK_POLICY 

Network policy.

LLDP_MED_CAP_LOCATION 

Location identification.

LLDP_MED_CAP_EXTENDED_PSE 

Extended power via MDI - PSE.

LLDP_MED_CAP_EXTENDED_PD 

Extended power via MDI - PD.

LLDP_MED_CAP_INVENTORY 

Inventory.

Definition at line 74 of file lldp_ext_med.h.

◆ LldpMedDeviceType

LLDP-MED device type.

Enumerator
LLDP_MED_DEVICE_TYPE_NOT_DEFINED 

Type not defined.

LLDP_MED_DEVICE_TYPE_ENDPOINT_CLASS_1 

Endpoint class I.

LLDP_MED_DEVICE_TYPE_ENDPOINT_CLASS_2 

Endpoint class II.

LLDP_MED_DEVICE_TYPE_ENDPOINT_CLASS_3 

Endpoint class III.

LLDP_MED_DEVICE_TYPE_NETWORK_CONNECTIVITY 

Network connectivity.

Definition at line 89 of file lldp_ext_med.h.

◆ LldpMedLocationDataFormat

Location data format.

Enumerator
LLDP_MED_LOCATION_DATA_FORMAT_INVALID 

Invalid.

LLDP_MED_LOCATION_DATA_FORMAT_COORD_BASED_LCI 

Coordinate-based LCI.

LLDP_MED_LOCATION_DATA_FORMAT_CIVIC_ADDR_LCI 

Civic Address LCI.

LLDP_MED_LOCATION_DATA_FORMAT_ECS_ELIN 

ECS ELIN.

Definition at line 121 of file lldp_ext_med.h.

◆ LldpMedPowerPriority

Power priority.

Enumerator
LLDP_MED_POWER_PRIORITY_UNKNOWN 

Unknown.

LLDP_MED_POWER_PRIORITY_CRITICAL 

Critical.

LLDP_MED_POWER_PRIORITY_HIGH 

High.

LLDP_MED_POWER_PRIORITY_LOW 

Low.

Definition at line 164 of file lldp_ext_med.h.

◆ LldpMedPowerSource

Power source.

Enumerator
LLDP_MED_PD_POWER_SOURCE_UNKNOWN 

Unknown (PD device type)

LLDP_MED_PD_POWER_SOURCE_PSE 

PSE (PD device type)

LLDP_MED_PD_POWER_SOURCE_LOCAL 

Local (PD device type)

LLDP_MED_PD_POWER_SOURCE_PSE_AND_LOCAL 

PSE and local (PD device type)

LLDP_MED_PSE_POWER_SOURCE_UNKNOWN 

Unknown (PSE device type)

LLDP_MED_PSE_POWER_SOURCE_PRIMARY 

Primary Power Source (PSE device type)

LLDP_MED_PSE_POWER_SOURCE_BACKUP 

Backup Power Source (PSE device type)

LLDP_MED_PSE_POWER_SOURCE_RESERVED 

Reserved (PSE device type)

Definition at line 147 of file lldp_ext_med.h.

◆ LldpMedPowerType

Power type.

Enumerator
LLDP_MED_POWER_TYPE_PSE_DEVICE 

PSE Device.

LLDP_MED_POWER_TYPE_PD_DEVICE 

PD Device.

LLDP_MED_POWER_TYPE_RESERVED_1 

Reserved.

LLDP_MED_POWER_TYPE_RESERVED_2 

Reserved.

Definition at line 134 of file lldp_ext_med.h.

◆ LldpMedSubtype

LLDP-MED subtypes.

Enumerator
LLDP_MED_SUBTYPE_RESERVED 

Reserved.

LLDP_MED_SUBTYPE_LLDP_MED_CAP 

LLDP-MED Capabilities.

LLDP_MED_SUBTYPE_NETWORK_POLICY 

Network Policy.

LLDP_MED_SUBTYPE_LOCATION_ID 

Location Identification.

LLDP_MED_SUBTYPE_EXT_POWER_VIA_MDI 

Extended Power-via-MDI.

LLDP_MED_SUBTYPE_HARDWARE_REVISION 

Inventory - Hardware Revision.

LLDP_MED_SUBTYPE_FIRMWARE_REVISION 

Inventory - Firmware Revision.

LLDP_MED_SUBTYPE_SOFTWARE_REVISION 

Inventory - Software Revision.

LLDP_MED_SUBTYPE_SERIAL_NUMBER 

Inventory - Serial Number.

LLDP_MED_SUBTYPE_MANUFACTURER_NAME 

Inventory - Manufacturer Name.

LLDP_MED_SUBTYPE_MODEL_NAME 

Inventory - Model Name.

LLDP_MED_SUBTYPE_ASSET_ID 

Inventory - Asset ID.

Definition at line 53 of file lldp_ext_med.h.

Function Documentation

◆ lldpMedDeleteLocalTlv()

error_t lldpMedDeleteLocalTlv ( LldpAgentContext context,
LldpMedSubtype  subtype 
)

Remove all LLDP-MED specific TLVs with specified subtype.

Parameters
[in]contextPointer to the LLDP agent context
[in]subtypeTLV subtype
Returns
Error code

Definition at line 838 of file lldp_ext_med.c.

◆ lldpMedSetLocalAssetId()

error_t lldpMedSetLocalAssetId ( LldpAgentContext context,
const char_t assetId 
)

Set asset identifier.

Parameters
[in]contextPointer to the LLDP agent context
[in]assetIdAlphanumerical string that contains the asset identifier of the endpoint
Returns
Error code

Definition at line 786 of file lldp_ext_med.c.

◆ lldpMedSetLocalCap()

error_t lldpMedSetLocalCap ( LldpAgentContext context,
uint16_t  capabilities,
LldpMedDeviceType  deviceType 
)

Set LLDP-MED capabilities.

Parameters
[in]contextPointer to the LLDP agent context
[in]capabilitiesBit-map of the supported set of capabilities
[in]deviceTypeLLDP-MED device type
Returns
Error code

Definition at line 54 of file lldp_ext_med.c.

◆ lldpMedSetLocalExtPowerViaMdi()

error_t lldpMedSetLocalExtPowerViaMdi ( LldpAgentContext context,
uint_t  portIndex,
LldpMedPowerType  powerType,
LldpMedPowerSource  powerSource,
LldpMedPowerPriority  powerPriority,
uint16_t  powerValue 
)

Set extended power-via-MDI.

Parameters
[in]contextPointer to the LLDP agent context
[in]portIndexPort index
[in]powerTypeBinary value that represents whether LLDP-MED device is a Power Sourcing Entity (PSE) or Power Device (PD)
[in]powerSourceBinary value that represents the power source being utilized by a PSE or PD device
[in]powerPriorityBinary value that represents the priority of the PD type device to the power being supplied by the PSE type device, or the power priority associated with the PSE type device's port that is sourcing the power via MDI
[in]powerValueNumerical value that indicates the total power in watts required by a PD device from a PSE device, or the total power a PSE device is capable of sourcing over a maximum length cable based on its current configuration
Returns
Error code

Definition at line 393 of file lldp_ext_med.c.

◆ lldpMedSetLocalFirmwareRevision()

error_t lldpMedSetLocalFirmwareRevision ( LldpAgentContext context,
const char_t firmwareRevision 
)

Set firmware revision.

Parameters
[in]contextPointer to the LLDP agent context
[in]firmwareRevisionAlphanumerical string that contains the firmware revision of the endpoint
Returns
Error code

Definition at line 518 of file lldp_ext_med.c.

◆ lldpMedSetLocalHardwareRevision()

error_t lldpMedSetLocalHardwareRevision ( LldpAgentContext context,
const char_t hardwareRevision 
)

Set hardware revision.

Parameters
[in]contextPointer to the LLDP agent context
[in]hardwareRevisionAlphanumerical string that contains the hardware revision of the endpoint
Returns
Error code

Definition at line 464 of file lldp_ext_med.c.

◆ lldpMedSetLocalLocationId()

error_t lldpMedSetLocalLocationId ( LldpAgentContext context,
uint_t  portIndex,
LldpMedLocationDataFormat  locationDataFormat,
const void *  locationId,
size_t  locationIdLen 
)

Set location identification.

Parameters
[in]contextPointer to the LLDP agent context
[in]portIndexPort index
[in]locationDataFormatLocation ID data format
[in]locationIdLocation ID
[in]locationIdLenLength of the location ID, in bytes
Returns
Error code

Definition at line 243 of file lldp_ext_med.c.

◆ lldpMedSetLocalManufacturerName()

error_t lldpMedSetLocalManufacturerName ( LldpAgentContext context,
const char_t manufacturerName 
)

Set manufacturer name.

Parameters
[in]contextPointer to the LLDP agent context
[in]manufacturerNameAlphanumerical string that contains the manufacturer name of the endpoint
Returns
Error code

Definition at line 679 of file lldp_ext_med.c.

◆ lldpMedSetLocalModelName()

error_t lldpMedSetLocalModelName ( LldpAgentContext context,
const char_t modelName 
)

Set model name.

Parameters
[in]contextPointer to the LLDP agent context
[in]modelNameAlphanumerical string that contains the model name of the endpoint
Returns
Error code

Definition at line 733 of file lldp_ext_med.c.

◆ lldpMedSetLocalNetworkPolicy()

error_t lldpMedSetLocalNetworkPolicy ( LldpAgentContext context,
uint_t  portIndex,
LldpMedAppType  appType,
bool_t  u,
bool_t  t,
uint16_t  vlanId,
uint8_t  l2Priority,
uint8_t  dscpValue 
)

Set network policy.

Parameters
[in]contextPointer to the LLDP agent context
[in]portIndexPort index
[in]appTypePrimary function of the application
[in]uUnknown policy flag (U)
[in]tTagged flag (T)
[in]vlanIdVLAN identifier for the port
[in]l2PriorityLayer 2 priority to be used
[in]dscpValueDSCP value to be used
Returns
Error code

Definition at line 116 of file lldp_ext_med.c.

◆ lldpMedSetLocalSerialNumber()

error_t lldpMedSetLocalSerialNumber ( LldpAgentContext context,
const char_t serialNumber 
)

Set serial number.

Parameters
[in]contextPointer to the LLDP agent context
[in]serialNumberAlphanumerical string that contains the serial number of the endpoint
Returns
Error code

Definition at line 626 of file lldp_ext_med.c.

◆ lldpMedSetLocalSoftwareRevision()

error_t lldpMedSetLocalSoftwareRevision ( LldpAgentContext context,
const char_t softwareRevision 
)

Set software revision.

Parameters
[in]contextPointer to the LLDP agent context
[in]softwareRevisionAlphanumerical string that contains the software revision of the endpoint
Returns
Error code

Definition at line 572 of file lldp_ext_med.c.

Variable Documentation

◆ __packed_struct

typedef __packed_struct
Initial value:
{
uint16_t capabilities

LLDP-MED Capabilities TLV.

Extended Power-Via-MDI TLV.

Location Identification TLV.

Network Policy TLV.

Definition at line 185 of file lldp_ext_med.h.

◆ deviceType

uint8_t deviceType

Definition at line 188 of file lldp_ext_med.h.

◆ dscpValue

uint8_t dscpValue

Definition at line 216 of file lldp_ext_med.h.

◆ l2PriorityH

uint8_t l2PriorityH

Definition at line 214 of file lldp_ext_med.h.

◆ l2PriorityL

uint8_t l2PriorityL

Definition at line 217 of file lldp_ext_med.h.

◆ LldpMedCapTlv

LldpMedCapTlv

Definition at line 189 of file lldp_ext_med.h.

◆ LldpMedExtPowerViaMdiTlv

LldpMedExtPowerViaMdiTlv

Definition at line 250 of file lldp_ext_med.h.

◆ LldpMedLocationIdTlv

LldpMedLocationIdTlv

Definition at line 230 of file lldp_ext_med.h.

◆ LldpMedNetworkPolicyTlv

LldpMedNetworkPolicyTlv

Definition at line 219 of file lldp_ext_med.h.

◆ locationId

uint8_t locationId[]

Definition at line 229 of file lldp_ext_med.h.

◆ powerSource

uint8_t powerSource

Definition at line 246 of file lldp_ext_med.h.

◆ powerType

uint8_t powerType

Definition at line 247 of file lldp_ext_med.h.

◆ powerValue

uint16_t powerValue

Definition at line 248 of file lldp_ext_med.h.

◆ t

uint8_t t

Definition at line 212 of file lldp_ext_med.h.

◆ u

uint8_t u

Definition at line 213 of file lldp_ext_med.h.

◆ vlanIdH

uint8_t vlanIdH

Definition at line 210 of file lldp_ext_med.h.

◆ vlanIdL

uint8_t vlanIdL

Definition at line 215 of file lldp_ext_med.h.

◆ x

uint8_t x

Definition at line 211 of file lldp_ext_med.h.