| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*******************************************************************************
- * Copyright (c) 2009, Rockwell Automation, Inc.
- * All rights reserved.
- *
- ******************************************************************************/
- #ifndef OPENER_CIPQOS_H_
- #define OPENER_CIPQOS_H_
- /** @file cipqos.h
- * @brief Public interface of the QoS Object
- *
- */
- #include "typedefs.h"
- #include "ciptypes.h"
- #include "cipconnectionmanager.h"
- /** @brief QoS Object class code */
- static const CipUint kCipQoSClassCode = 0x48U;
- /* public types */
- /** This type represents the group of DSCP values of the QoS object. */
- typedef struct cip_qos_dscp_values {
- CipUsint event; /**< Attr. #2: DSCP value for event messages */
- CipUsint general; /**< Attr. #3: DSCP value for general messages */
- CipUsint urgent; /**< Attr. #4: DSCP value for CIP transport class 0/1 Urgent priority messages */
- CipUsint scheduled; /**< Attr. #5: DSCP value for CIP transport class 0/1 Scheduled priority messages */
- CipUsint high; /**< Attr. #6: DSCP value for CIP transport class 0/1 High priority messages */
- CipUsint low; /**< Attr. #7: DSCP value for CIP transport class 0/1 low priority messages */
- CipUsint explicit_msg; /**< Attr. #8: DSCP value for CIP explicit messages (transport class 2/3 and UCMM)
- and all other EtherNet/IP encapsulation messages */
- } CipQosDscpValues;
- /** This type represents the QoS object */
- typedef struct {
- CipUsint q_frames_enable; /**< Attr. #1: Enables or disable sending 802.1Q frames on CIP and IEEE 1588 messages */
- CipQosDscpValues dscp; /**< Attributes #2 ... #8 of DSCP values - beware! must not be the used set */
- } CipQosObject;
- /* public data */
- extern CipQosObject g_qos;
- /* public functions */
- /** @brief Provide the matching DSCP value for a given connection object priority level
- */
- CipUsint CipQosGetDscpPriority(ConnectionObjectPriority priority);
- /** @brief Create and initialize the QoS object
- */
- EipStatus CipQoSInit(void);
- /** @brief Updates the currently used set of DSCP priority values
- */
- void CipQosUpdateUsedSetQosValues(void);
- /** @brief Reset attribute values to default. Does not update currently used set */
- void CipQosResetAttributesToDefaultValues(void);
- #endif /* OPENER_CIPQOS_H_*/
|