1c17c1873SNeale Ranns/*
2c17c1873SNeale Ranns * Copyright (c) 2019 Cisco and/or its affiliates.
3c17c1873SNeale Ranns * Licensed under the Apache License, Version 2.0 (the "License");
4c17c1873SNeale Ranns * you may not use this file except in compliance with the License.
5c17c1873SNeale Ranns * You may obtain a copy of the License at:
6c17c1873SNeale Ranns *
7c17c1873SNeale Ranns *     http://www.apache.org/licenses/LICENSE-2.0
8c17c1873SNeale Ranns *
9c17c1873SNeale Ranns * Unless required by applicable law or agreed to in writing, software
10c17c1873SNeale Ranns * distributed under the License is distributed on an "AS IS" BASIS,
11c17c1873SNeale Ranns * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c17c1873SNeale Ranns * See the License for the specific language governing permissions and
13c17c1873SNeale Ranns * limitations under the License.
14c17c1873SNeale Ranns */
15c17c1873SNeale Ranns
16c17c1873SNeale Ranns#ifndef __VOM_QOS_TYPES_H__
17c17c1873SNeale Ranns#define __VOM_QOS_TYPES_H__
18c17c1873SNeale Ranns
19c17c1873SNeale Ranns#include "vom/enum_base.hpp"
20c17c1873SNeale Ranns
21c17c1873SNeale Rannsnamespace VOM {
22c17c1873SNeale Ranns/**
23c17c1873SNeale Ranns * Types belonging to QoS
24c17c1873SNeale Ranns */
25c17c1873SNeale Rannsnamespace QoS {
26c17c1873SNeale Ranns
2783832e7cSNeale Rannstypedef uint8_t bits_t;
2883832e7cSNeale Ranns
29c17c1873SNeale Ranns/**
30c17c1873SNeale Ranns * The Source of the QoS classification (i.e. which header the bits are
31c17c1873SNeale Ranns * associated with).
32c17c1873SNeale Ranns */
33c17c1873SNeale Rannsclass source_t : public enum_base<source_t>
34c17c1873SNeale Ranns{
35c17c1873SNeale Rannspublic:
36c17c1873SNeale Ranns  const static source_t EXT;
37c17c1873SNeale Ranns  const static source_t VLAN;
38c17c1873SNeale Ranns  const static source_t MPLS;
39c17c1873SNeale Ranns  const static source_t IP;
40c17c1873SNeale Ranns
41c17c1873SNeale Rannsprivate:
42c17c1873SNeale Ranns  /**
43c17c1873SNeale Ranns   * Private constructor taking the value and the string name
44c17c1873SNeale Ranns   */
45c17c1873SNeale Ranns  source_t(int v, const std::string& s);
46c17c1873SNeale Ranns};
47c17c1873SNeale Ranns
48c17c1873SNeale Ranns}; // namesapce QoS
49c17c1873SNeale Ranns
50c17c1873SNeale Ranns}; // namespace VOM
51c17c1873SNeale Ranns
52c17c1873SNeale Ranns/*
53c17c1873SNeale Ranns * fd.io coding-style-patch-verification: ON
54c17c1873SNeale Ranns *
55c17c1873SNeale Ranns * Local Variables:
56c17c1873SNeale Ranns * eval: (c-set-style "mozilla")
57c17c1873SNeale Ranns * End:
58c17c1873SNeale Ranns */
59c17c1873SNeale Ranns
60c17c1873SNeale Ranns#endif