22 if (
dscp != DSCP_Invalid &&
dscp != DSCP_Undefined) {
23 packetPriority = ((
int)
dscp) << 2;
32 if (level != PacketPriorityInvalid && level != PacketPriorityUndefined) {
33 packetPriority = ((
int)level) << 2;
41 size_t p = priority.find(
':');
42 if (
p == std::string::npos) {
46 std::string key = priority.substr(0,
p);
47 std::string value = priority.substr(
p + 1);
48 if (key.length() <= 0 || value.length() <= 0) {
54 if (level != PacketPriorityInvalid && level != PacketPriorityUndefined) {
55 setPacketPriorityByLevel(level);
58 }
else if (key ==
"DSCP") {
60 if (
dscp != DSCP_Invalid &&
dscp != DSCP_Undefined) {
61 setPacketPriorityByDscp(
dscp);
64 }
else if (key ==
"TOS") {
67 if (
p ==
nullptr &&
tos >= 0) {
68 setPacketPrioritybyTOS(
tos);
79 switch (packetPriority) {
127 return DSCP_Undefined;
133 switch (packetPriority) {
135 return PacketPriorityInvalid;
137 return PacketPriorityNormal;
139 return PacketPriorityLow;
141 return PacketPriorityHigh;
143 return PacketPriorityCritical;
145 return PacketPriorityUndefined;
212 return PacketPriorityNormal;
214 return PacketPriorityLow;
216 return PacketPriorityHigh;
218 return PacketPriorityCritical;
220 return PacketPriorityInvalid;
A mini-server for performing network communication in the background.
PacketPriorityDSCP
The PacketPriorityDSCP defines the packets quality of service (priority) using DSCP.
bool setPacketPriority(const std::string &priority)
sets the packet priority from a string.
static PacketPriorityLevel getLevelByVocab(yarp::conf::vocab32_t vocab)
returns the priority level
PacketPriorityDSCP getPacketPriorityAsDSCP() const
returns the packet DSCP class
static PacketPriorityDSCP getDSCPByVocab(yarp::conf::vocab32_t vocab)
returns the IPV4/6 DSCP value given as DSCP code
PacketPriorityLevel
The PacketPriorityLevel defines the packets quality of service (priority) levels.
void setPacketPriorityByDscp(PacketPriorityDSCP dscp)
sets the packet priority given as DSCP class
void setPacketPriorityByLevel(PacketPriorityLevel level)
sets the packet priority given as PacketPriorityLevel
PacketPriorityLevel getPacketPriorityAsLevel() const
returns the packet TOS value
NetInt32 encode(const std::string &str)
Convert a string into a vocabulary identifier.
constexpr yarp::conf::vocab32_t createVocab32(char a, char b=0, char c=0, char d=0)
Create a vocab from chars.