xref: /openbmc/slpd-lite/slp_meta.hpp (revision 20bab74865ba955921eb0e4e427c84e37e1c8916)
1309ac445SRatan Gupta #pragma once
2309ac445SRatan Gupta 
3309ac445SRatan Gupta namespace slp
4309ac445SRatan Gupta {
5309ac445SRatan Gupta /** @brief SLP Version */
6309ac445SRatan Gupta constexpr size_t VERSION_2 = 2;
7309ac445SRatan Gupta constexpr auto SUCCESS = 0;
8309ac445SRatan Gupta /** @brief SLP Port */
9309ac445SRatan Gupta constexpr auto PORT = 427;
10309ac445SRatan Gupta 
11309ac445SRatan Gupta constexpr auto TIMEOUT = 30;
12309ac445SRatan Gupta /** @brief SLP service lifetime */
13309ac445SRatan Gupta constexpr auto LIFETIME = 5;
14309ac445SRatan Gupta 
15eebd0815SAndrew Geissler /** @brief Largest input or output buffer allowed */
16eebd0815SAndrew Geissler constexpr size_t MAX_LEN = 255;
17eebd0815SAndrew Geissler 
18309ac445SRatan Gupta /** @brief Defines the constants for slp header.
19309ac445SRatan Gupta  *  Size and the offsets.
20309ac445SRatan Gupta  */
21309ac445SRatan Gupta namespace header
22309ac445SRatan Gupta {
23309ac445SRatan Gupta 
24309ac445SRatan Gupta constexpr size_t SIZE_VERSION = 1;
25309ac445SRatan Gupta constexpr size_t SIZE_LENGTH = 1;
26309ac445SRatan Gupta constexpr size_t SIZE_FLAGS = 2;
27309ac445SRatan Gupta constexpr size_t SIZE_EXT = 3;
28309ac445SRatan Gupta constexpr size_t SIZE_XID = 2;
29309ac445SRatan Gupta constexpr size_t SIZE_LANG = 2;
30309ac445SRatan Gupta 
31309ac445SRatan Gupta constexpr size_t OFFSET_VERSION = 0;
32309ac445SRatan Gupta constexpr size_t OFFSET_FUNCTION = 1;
33309ac445SRatan Gupta constexpr size_t OFFSET_LENGTH = 4;
34309ac445SRatan Gupta constexpr size_t OFFSET_FLAGS = 5;
35309ac445SRatan Gupta constexpr size_t OFFSET_EXT = 7;
36309ac445SRatan Gupta constexpr size_t OFFSET_XID = 10;
37309ac445SRatan Gupta constexpr size_t OFFSET_LANG_LEN = 12;
38309ac445SRatan Gupta constexpr size_t OFFSET_LANG = 14;
39309ac445SRatan Gupta 
40309ac445SRatan Gupta constexpr size_t MIN_LEN = 14;
41309ac445SRatan Gupta } // namespace header
42309ac445SRatan Gupta 
43309ac445SRatan Gupta /** @brief Defines the constants for slp response.
44309ac445SRatan Gupta  *  Size and the offsets.
45309ac445SRatan Gupta  */
46309ac445SRatan Gupta 
47309ac445SRatan Gupta namespace response
48309ac445SRatan Gupta {
49309ac445SRatan Gupta 
50309ac445SRatan Gupta constexpr size_t SIZE_ERROR = 2;
51309ac445SRatan Gupta constexpr size_t SIZE_SERVICE = 2;
52309ac445SRatan Gupta constexpr size_t SIZE_URL_COUNT = 2;
53309ac445SRatan Gupta constexpr size_t SIZE_URL_ENTRY = 6;
54309ac445SRatan Gupta constexpr size_t SIZE_RESERVED = 1;
55309ac445SRatan Gupta constexpr size_t SIZE_LIFETIME = 2;
56309ac445SRatan Gupta constexpr size_t SIZE_URLLENGTH = 2;
57309ac445SRatan Gupta constexpr size_t SIZE_AUTH = 1;
58309ac445SRatan Gupta 
59309ac445SRatan Gupta constexpr size_t OFFSET_SERVICE_LEN = 18;
60309ac445SRatan Gupta constexpr size_t OFFSET_SERVICE = 20;
61309ac445SRatan Gupta constexpr size_t OFFSET_URL_ENTRY = 18;
62309ac445SRatan Gupta 
63309ac445SRatan Gupta } // namespace response
64309ac445SRatan Gupta 
65309ac445SRatan Gupta /** @brief Defines the constants for slp request.
66309ac445SRatan Gupta  *  Size and the offsets.
67309ac445SRatan Gupta  */
68309ac445SRatan Gupta namespace request
69309ac445SRatan Gupta {
70309ac445SRatan Gupta 
71309ac445SRatan Gupta constexpr size_t MIN_SRVTYPE_LEN = 22;
72*20bab748SAndrew Geissler constexpr size_t MIN_SRV_LEN = 24;
73309ac445SRatan Gupta 
74309ac445SRatan Gupta constexpr size_t SIZE_PRLIST = 2;
75309ac445SRatan Gupta constexpr size_t SIZE_NAMING = 2;
76309ac445SRatan Gupta constexpr size_t SIZE_SCOPE = 2;
77309ac445SRatan Gupta constexpr size_t SIZE_SERVICE_TYPE = 2;
78309ac445SRatan Gupta constexpr size_t SIZE_PREDICATE = 2;
79309ac445SRatan Gupta constexpr size_t SIZE_SLPI = 2;
80309ac445SRatan Gupta 
81309ac445SRatan Gupta constexpr size_t OFFSET_PR_LEN = 16;
82309ac445SRatan Gupta constexpr size_t OFFSET_PR = 18;
83309ac445SRatan Gupta constexpr size_t OFFSET_SERVICE = 20;
84309ac445SRatan Gupta 
85309ac445SRatan Gupta } // namespace request
86309ac445SRatan Gupta } // namespace slp
87