33 const uint16_t port_range_start,
34 const uint16_t port_range_end) {
36 uint32_t original_sport;
38 if (!port_range_start || !port_range_end || sport < port_range_start) {
39 return std::make_pair(sport, index);
42 if ((sport >= port_range_start) &&
43 (sport <= port_range_end)) {
44 return std::make_pair(sport, index);
47 uint16_t port_range = port_range_end - port_range_start + 1;
56 original_sport = (((sport - port_range_end) % port_range) - 1)
58 index = ((sport - port_range_end) / port_range) + 1;
60 return std::make_pair(original_sport, index);
65 const uint16_t port_range_start,
66 const uint16_t port_range_end) {
67 if (!index || !port_range_start || !port_range_end) {
71 uint16_t port_range = port_range_end - port_range_start + 1;
80 return static_cast<uint32_t
>(port_range_start + (port_range * index)
81 + (sport - port_range_start));
std::pair< uint32_t, size_t > BgpAsServicePortIndexPair
static uint32_t EncodeBgpaasServicePort(const uint32_t sport, const size_t index, const uint16_t port_range_start, const uint16_t port_range_end)
static BgpAsServicePortIndexPair DecodeBgpaasServicePort(const uint32_t sport, const uint16_t port_range_start, const uint16_t port_range_end)