~ubuntu-branches/ubuntu/maverick/u-boot-omap3/maverick

« back to all changes in this revision

Viewing changes to cpu/ixp/npe/include/IxEthDBQoS.h

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-03-22 15:06:23 UTC
  • Revision ID: james.westby@ubuntu.com-20100322150623-i21g8rgiyl5dohag
Tags: upstream-2010.3git20100315
ImportĀ upstreamĀ versionĀ 2010.3git20100315

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * @file IxEthDBQoS.h
 
3
 *
 
4
 * @brief Public definitions for QoS traffic classes
 
5
 * 
 
6
 * @par
 
7
 * IXP400 SW Release version 2.0
 
8
 * 
 
9
 * -- Copyright Notice --
 
10
 * 
 
11
 * @par
 
12
 * Copyright 2001-2005, Intel Corporation.
 
13
 * All rights reserved.
 
14
 * 
 
15
 * @par
 
16
 * Redistribution and use in source and binary forms, with or without
 
17
 * modification, are permitted provided that the following conditions
 
18
 * are met:
 
19
 * 1. Redistributions of source code must retain the above copyright
 
20
 *    notice, this list of conditions and the following disclaimer.
 
21
 * 2. Redistributions in binary form must reproduce the above copyright
 
22
 *    notice, this list of conditions and the following disclaimer in the
 
23
 *    documentation and/or other materials provided with the distribution.
 
24
 * 3. Neither the name of the Intel Corporation nor the names of its contributors
 
25
 *    may be used to endorse or promote products derived from this software
 
26
 *    without specific prior written permission.
 
27
 * 
 
28
 * @par
 
29
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
 
30
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
31
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
32
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
 
33
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
34
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 
35
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
36
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 
37
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 
38
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 
39
 * SUCH DAMAGE.
 
40
 * 
 
41
 * @par
 
42
 * -- End of Copyright Notice --
 
43
 */
 
44
 
 
45
/**
 
46
 * @defgroup IxEthDBPortDefs IXP400 Ethernet QoS definitions
 
47
 *
 
48
 * @brief IXP00 Public definitions for QoS traffic classes
 
49
 *
 
50
 * @{
 
51
 */
 
52
 
 
53
#ifndef IxEthDBQoS_H
 
54
#define IxEthDBQoS_H
 
55
 
 
56
/**
 
57
 * @def IX_ETH_DB_QUEUE_UNAVAILABLE
 
58
 * @brief alias to indicate a queue (traffic class) is not available
 
59
 */
 
60
#define IX_ETH_DB_QUEUE_UNAVAILABLE  (0)
 
61
 
 
62
#ifndef IX_IEEE802_1Q_QOS_PRIORITY_COUNT
 
63
/**
 
64
 * @def IX_IEEE802_1Q_QOS_PRIORITY_COUNT
 
65
 * @brief number of QoS priorities, according to IEEE 802.1Q
 
66
 */
 
67
#define IX_IEEE802_1Q_QOS_PRIORITY_COUNT (8)
 
68
#endif
 
69
 
 
70
/**
 
71
 * @brief array containing all the supported traffic class configurations
 
72
 */
 
73
static const
 
74
UINT8 ixEthDBQueueAssignments[][IX_IEEE802_1Q_QOS_PRIORITY_COUNT] = 
 
75
{
 
76
    { 4, 5, 6, 7, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE },
 
77
    { 15, 16, 17, 18, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE },
 
78
    { 11, 23, 26, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE, IX_ETH_DB_QUEUE_UNAVAILABLE,  IX_ETH_DB_QUEUE_UNAVAILABLE },
 
79
    { 4, 5, 6, 7, 8, 9, 10, 11 }
 
80
    /* add here all other cases of queue configuration structures and update ixEthDBTrafficClassDefinitions to use them */
 
81
};
 
82
 
 
83
/**
 
84
 * @brief value used to index the NPE A functionality ID in the traffic class definition table
 
85
 */
 
86
#define IX_ETH_DB_NPE_A_FUNCTIONALITY_ID_INDEX    (0)
 
87
 
 
88
/**
 
89
 * @brief value used to index the traffic class count in the traffic class definition table
 
90
 */
 
91
#define IX_ETH_DB_TRAFFIC_CLASS_COUNT_INDEX       (1)
 
92
 
 
93
/**
 
94
 * @brief value used to index the queue assignment index in the traffic class definition table
 
95
 */
 
96
#define IX_ETH_DB_QUEUE_ASSIGNMENT_INDEX          (2)
 
97
 
 
98
/**
 
99
 * @brief traffic class definitions
 
100
 *
 
101
 * This array contains the default traffic class definition configuration,
 
102
 * as well as any special cases dictated by the functionality ID of NPE A.
 
103
 *
 
104
 * The default case should not be removed (otherwise the Ethernet
 
105
 * components will assert a fatal failure on initialization).
 
106
 */
 
107
static const
 
108
UINT8 ixEthDBTrafficClassDefinitions[][3] = 
 
109
{
 
110
    /* NPE A functionality ID | traffic class count | queue assignment index (points to the queue enumeration in ixEthDBQueueAssignments) */
 
111
    {            0x00,                      4,                    0 }, /* default case - DO NOT REMOVE */
 
112
    {            0x04,                      4,                    1 }, /* NPE A image ID 0.4.0.0 */
 
113
    {            0x09,                      3,                    2 }, /* NPE A image ID 0.9.0.0 */
 
114
    {            0x80,                      8,                    3 }, /* NPE A image ID 10.80.02.0 */
 
115
    {            0x81,                      8,                    3 }, /* NPE A image ID 10.81.02.0 */
 
116
    {            0x82,                      8,                    3 }  /* NPE A image ID 10.82.02.0 */
 
117
};
 
118
 
 
119
/**
 
120
 * @brief IEEE 802.1Q recommended QoS Priority => traffic class maps
 
121
 *
 
122
 * @verbatim
 
123
                    Number of available traffic classes
 
124
                    1 2 3 4 5 6 7 8
 
125
    QoS Priority
 
126
        0           0 0 0 1 1 1 1 2
 
127
        1           0 0 0 0 0 0 0 0
 
128
        2           0 0 0 0 0 0 0 1
 
129
        3           0 0 0 1 1 2 2 3
 
130
        4           0 1 1 2 2 3 3 4
 
131
        5           0 1 1 2 3 4 4 5
 
132
        6           0 1 2 3 4 5 5 6
 
133
        7           0 1 2 3 4 5 6 7
 
134
 
 
135
    @endverbatim
 
136
 */
 
137
static const
 
138
UINT8 ixEthIEEE802_1QUserPriorityToTrafficClassMapping[IX_IEEE802_1Q_QOS_PRIORITY_COUNT][IX_IEEE802_1Q_QOS_PRIORITY_COUNT] = 
 
139
 {
 
140
     { 0, 0, 0, 0, 0, 0, 0, 0 }, /* 1 traffic class available */
 
141
     { 0, 0, 0, 0, 1, 1, 1, 1 }, /* 2 traffic classes available */
 
142
     { 0, 0, 0, 0, 1, 1, 2, 2 }, /* 3 traffic classes available */
 
143
     { 1, 0, 0, 1, 2, 2, 3, 3 }, /* 4 traffic classes available */
 
144
     { 1, 0, 0, 1, 2, 3, 4, 4 }, /* 5 traffic classes available */
 
145
     { 1, 0, 0, 2, 3, 4, 5, 5 }, /* 6 traffic classes available */
 
146
     { 1, 0, 0, 2, 3, 4, 5, 6 }, /* 7 traffic classes available */
 
147
     { 2, 0, 1, 3, 4, 5, 6, 7 }  /* 8 traffic classes available */
 
148
 };
 
149
 
 
150
#endif /* IxEthDBQoS_H */
 
151
 
 
152
/**
 
153
 *@}
 
154
 */