File: dscp_consts.lua

package info (click to toggle)
ntopng 5.2.1%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 121,832 kB
  • sloc: javascript: 143,431; cpp: 71,175; ansic: 11,108; sh: 4,687; makefile: 911; python: 587; sql: 512; pascal: 234; perl: 118; ruby: 52; exp: 4
file content (114 lines) | stat: -rw-r--r-- 2,881 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
--
-- (C) 2020-22 - ntop.org
--
-- This file contains DSCP constats

local dscp_consts = {}

-- ################################################################################

local DSCP = {
   [0x00] = "Best Effort [CS0]",
   [0x01] = "LE",
   [0x08] = "Priority [CS1]",
   [0x0A] = "Priority [AF11]",
   [0x0C] = "Priority [AF12]",
   [0x0E] = "Priority [AF13]",
   [0x10] = "Immediate [CS2]",
   [0x12] = "Immediate [AF21]",
   [0x14] = "Immediate [AF22]",
   [0x16] = "Immediate [AF23]",
   [0x18] = "Flash/Voice [CS3]",
   [0x1A] = "Flash/Voice [AF31]",
   [0x1C] = "Flash/Voice [AF32]",
   [0x1E] = "Flash/Voice [AF33]",
   [0x20] = "Flash Override [CS4]",
   [0x22] = "Flash Override [AF41]",
   [0x24] = "Flash Override [AF42]",
   [0x26] = "Flash Override [AF43]",
   [0x28] = "Critical [CS5]",
   [0x2E] = "Critical [EF]",
   [0x30] = "Internetwork Control [CS6]",
   [0x38] = "Network Control [CS7]"
}

local DSCP_class = {
   [0x00] = "cs0",
   [0x08] = "cs1", [0x0A] = "cs1", [0x0C] = "cs1", [0x0E] = "cs1",
   [0x10] = "cs2", [0x12] = "cs2", [0x14] = "cs2", [0x16] = "cs2",
   [0x18] = "cs3", [0x1A] = "cs3", [0x1C] = "cs3", [0x1E] = "cs3",
   [0x20] = "cs4", [0x22] = "cs4", [0x24] = "cs4", [0x26] = "cs4",
   [0x28] = "cs5", [0x2E] = "cs5",
   [0x30] = "cs6",
   [0x38] = "cs7",
   [0x01] = "LE",
}

local ECN = {
   [0x00] = "Disabled (0)",
   [0x01] = "Enabled (1)",
   [0x02] = "Default (2)",
   [0x03] = "CE"
}

local DS_class = {
   ['cs0'] = "Best Effort",          -- DS 0
   ['cs1'] = "Priority",             -- DS 8,10,12,14
   ['cs2'] = "Immediate",            -- DS 16,18,20,22
   ['cs3'] = "Flash",                -- DS 24,26,28,30
   ['cs4'] = "Flash Override",       -- DS 32,34,36,38
   ['cs5'] = "Critical",             -- DS 40,46
   ['cs6'] = "Internetwork Control", -- DS 48
   ['cs7'] = "Network Control",      -- DS 56
   ['le'] = "LE",                    -- LE
   ['unknown'] = "Unknown"
}

function dscp_consts.dscp_descr(id)
   local descr = DSCP[tonumber(id)]
   if descr == nil then
     descr = "Unknown ["..id.."]"
   end
   return descr
end

function dscp_consts.ecn_descr(id)
   local descr = ECN[id]
   if descr == nil then
     descr = "Unknown ("..id..")"
   end
   return descr
end

function dscp_consts.ds_class_descr(id)
   local descr = DS_class[id]
   if descr == nil then
     descr = "Unknown"
   end
   if id:find("^cs") then
     descr = descr.." ("..string.upper(id)..")"
   end
   return descr
end

function dscp_consts.dscp_class_descr(id)
   local class = DSCP_class[tonumber(id)]
   if class == nil then
      class = "unknown"
   end
   return dscp_consts.ds_class_descr(class)
end

function dscp_consts.dscp_class_list()
   local dscp_list = {}

   for k, v in pairs(DSCP) do 
      dscp_list[k] = {}
      dscp_list[k]["id"] = k
      dscp_list[k]["label"] = v
   end

   return dscp_list
end

return dscp_consts