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