Patent Publication Number: US-8121120-B2

Title: Packet relay apparatus

Description:
INCORPORATION BY REFERENCE 
     The present application claims priority from Japanese application JP 2008-161128 filed on Jun. 20, 2008, the content of which is hereby incorporated by reference into this application. 
     BACKGROUND OF THE INVENTION 
     The present invention relates to techniques of identifying a packet and determining a priority order, and to bandwidth control techniques of controlling a bandwidth by queuing a packet in accordance with its priority order, respectively for a packet relay apparatus for relaying a packet in a network. The present invention relates also to techniques of setting priority control information and bandwidth control information for a packet relay apparatus. 
     A Wide Area Ethernet (registered trademark) network is widely prevailing nowadays, expanding the techniques of Ethernet (registered trademark) used for a local area network (LAN) to a wide area network (WAN). The Tag-VLAN techniques IEEE802.1Q of multiplexing a plurality of virtual LAN&#39;s on Ethernet (registered trademark) allow to process each Tag-VLAN as a single user so that a number of users can be accommodated inexpensively and easily. 
     A quality of service (QoS) control function is known as techniques of preferentially relaying a packet of a particular user in a Wide Area Ethernet (registered trademark) network and controlling a bandwidth. The QoS control function is provided in a packet relay apparatus for relaying a packet, and mainly includes a QoS search unit for identifying a packet and determining a priority order, and a bandwidth control unit for controlling a bandwidth by queuing a packet in accordance with its priority order. 
     For example, JP-A-2004-363681 describes a method of realizing a QoS control function. With this method, a QoS search unit compares a header of a received packet with the conditions in a search table, and if coincident, the packet is queued in a designated queue. It is necessary to set beforehand conditions to the search table. This method is characterized particularly in that a queuing destination is decided by performing QoS search without restructuring fragment packets divided from one packet to recover the original. 
     The bandwidth control unit has a hierarchical shaper function described in “AX7800R/AX7700R Software Manual Applications Guide, Vol. 2 Ver. 10.2 compatible” ALAXALA Networks Corporation, June 2006, pp. 36-44. With this hierarchical shaper function described in this Guide, for example, in a network configuration multiplexing VLAN&#39;s on one physical port by utilizing a Tag-VLAN function, it is possible to control a bandwidth of each VLAN and control a priority in accordance with user priority order information in a Tag-VLAN header. A minimum bandwidth value, a maximum bandwidth value, a weighting value to be used when a surplus bandwidth is distributed, and the like are set for each VLAN. When the hierarchical shaper function is used, the priority order decision function of the QoS search unit decides aggregate queue information (also called user information) and queue information corresponding to each VLAN to designate a queuing destination of a packet. As this function is applied to downstream traffic of an edge apparatus in a Wide Area Ethernet (registered trademark) network, a minimum bandwidth is ensured for each user even if traffic congestion occurs. 
     An example requiring the hierarchical shaper function will be described. For example, this function is required if a network to which 500 users belong and a packet relay apparatus are connected by a line of 1 Gbit/s and it is desired to ensure a minimum bandwidth of 1 Mbit/s per user under a line bandwidth contract of 500 Mbit/s. By using the hierarchical shaper function, bandwidth control of two stages can be performed, i.e., the minimum bandwidth of each user is controlled to be 1 Mbit/s while the line is restricted to the contract bandwidth. There are requests to aggregate a plurality of business places into one line by utilizing bandwidth control of three stages such as lines—business places—users in a future network configuration. It is anticipated that the number of hierarchical layers to be subjected to bandwidth control will increase. 
     SUMMARY OF THE INVENTION 
     The hierarchical shaper function is generally used by aggregating a plurality of users into one line, and there is a tendency that the number of users accommodated by one port increases in order to reduce a price per port of a packet relay apparatus. As the number of users per port increases, the number of entries of a QoS information management table increases, which table is used when services of each user are identified to decide a priority order. With the method described in JP-A-2004-363681, as the number of users increases, there arises an issue that the number of entries becomes insufficient because of the limited number of entries of the QoS information management table. 
     Further, as the number of users increases, the number of commands for registering an entry in the QoS information management table increases. Furthermore, the hierarchical shaper function described in the cited Guide is associated with an issue of an increased number of commands in the bandwidth control unit for setting bandwidth control information such as a minimum bandwidth value, a maximum bandwidth value, a weighting value to be used when a surplus bandwidth is distributed, and the like. 
     In order to be compatible with a future network configuration, there arises another issue that a queuing unit can be used even if the number of hierarchical levels under bandwidth control increases. 
     In order to settle at least one of these issues, the present invention provides a packet relay apparatus equipped with a bandwidth controller wherein a queuing unit equipped in the bandwidth controller acquires user information for identifying a user and priority order information from a predetermined field in a received packet, and identifies a queue for storing the packet, in accordance with the user information and priority order information. 
     Since a storage destination of a packet is determined based upon header information of the packet, it is possible to suppress the number of entries used of a QoS information management table possessed by a packet processing unit or even to omit entries. 
     Other objects, features and advantages of the invention will become apparent from the following description of the embodiments of the invention taken in conjunction with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram illustrating examples of the internal structure of a packet relay apparatus and a network configuration. 
         FIG. 2  is a diagram illustrating an example of the internal structure of a bandwidth controller. 
         FIG. 3  is a diagram illustrating an example of the structure of a default user table. 
         FIG. 4  is a diagram illustrating an example of the structure of a priority order mapping table. 
         FIG. 5  is a diagram illustrating the format of a Tag-VLAN packet. 
         FIG. 6  is a diagram illustrating the detailed format of tag control information. 
         FIG. 7  is a flow chart illustrating a queuing process A by a header reference unit. 
         FIG. 8  is a diagram illustrating another example of the structure of a packet relay apparatus. 
         FIG. 9  is a diagram illustrating an example of the structure of a QoS information management table. 
         FIG. 10  is a diagram illustrating the format of a Tag-VLAN packet affixed with a control information header. 
         FIG. 11  is a diagram illustrating the detailed format of the control information header. 
         FIG. 12  is a flow chart illustrating a queuing process B by the header reference unit. 
         FIG. 13  is a diagram illustrating another example of the structure of the QoS information management table. 
         FIG. 14  is a diagram illustrating the detailed format of the control information header. 
         FIG. 15  is a flow chart illustrating a queuing process C by the header reference unit. 
         FIG. 16  is a flow chart illustrating a queuing process D by the header reference unit. 
         FIG. 17  is a diagram illustrating an example of a correspondence among a protocol type, user information and priority order information. 
         FIG. 18  is a diagram illustrating an example of a correspondence among fields corresponding to user information and multi stage hierarchical levels. 
         FIG. 19  is a diagram illustrating examples of bandwidth information scenarios of a hierarchical shaper function. 
         FIG. 20  is a diagram illustrating an example of a setting command of the hierarchical shaper function. 
         FIG. 21  is a diagram illustrating examples of the setting command of the hierarchical shaper function. 
         FIG. 22  is a diagram illustrating a relation between the number of users and a bit range of user information. 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     Embodiments of the present invention will now be described with reference to the accompanying drawings. 
       FIG. 1  illustrates the internal structure of a packet relay apparatus according to an embodiment of the present invention and an example of the configuration of networks using the packet relay apparatus. The networks of the embodiment have the configuration that a packet relay apparatus  10  implementing the present invention connects branch office networks  20  to  22  and a Wide Area Ethernet (registered trademark) network  23 . Users  30 ,  31  in the branch office network communicate with users or servers of other branch office networks or a main office network. The users in each branch office network are multiplexed on a line by using Tag-VLAN&#39;s. 
       FIG. 5  illustrates the format of a Tag-VLAN packet of Ethernet (registered trademark). A Tag-VLAN packet  1000  is constituted of: a destination MAC address  1010 ; a source MAC address  1020 ; a VLAN protocol ID  1030  representative of a protocol number of VLAN; tag control information  1040  to be described later with reference to  FIG. 6 ; a type  1050  representative of a protocol type of an upper level layer; a data field  1060  for storing data of Ethernet (registered trademark); and an FCS  1070  for judging whether data was broken. 
       FIG. 6  illustrates the details of the tag control information  1040 . The tag control information is constituted of a user priority order  1041  representative of a priority order of a Tag-VLAN packet, a CFI  1042  representative of a bit order formation of a MAC address, and a VLAN ID  1043  for identifying VLAN. 
     The embodiment will now be described by taking as an example the case of a Tag-VLAN packet, i.e., the case where the packet type is Tag-VLAN. 
     In this embodiment, the packet relay apparatus  10  has the structure including network interfaces  200  to  202  for connecting networks  20  to  23  and executing transmission/reception of a packet relative to the networks, packet processors  100  to  101  for connecting the network interfaces and determining packet relay destinations in accordance with header information of packets to be transmitted and received, a memory  40  for storing software programs and the like to control the apparatus, and a CPU  60  for executing the software programs in the memory, respectively interconnected by buses. For example, as a user a  30  transmits a packet to the same user a in the branch office network  22 , the network interface  200  transfers the received packet to the packet processor  100 . The packet processor  100  determines a relay destination from the header information, and transfers the packet to the network interface  201  having a port from which the packet is to be transmitted. The network interface  201  executes bandwidth control for the user a and transmits the packet to the network  22 . 
     The memory  40  stores therein a command analysis/setting process program  50  and the like, the program being used for analyzing a command for setting a hierarchical shaper function and an input command, and setting the contents of each command to hardware. 
     Each of the packet processors  100  to  101  is constituted of: a packet buffer  110  for storing a received Tag-VLAN packet; an address management table  140  for managing a correspondence between a destination MAC address and an output destination port number; a route search unit  130  for searching the address management table  140  in accordance with the header information of the received packet; and a relay processor  120  for storing the received packet in the packet buffer  110 , outputting a search command to the route search unit  130  in accordance with the header information extracted from the packet, and transmitting the packet to the port corresponding to the search result. 
     The network interfaces  200  and  202  are constituted of bandwidth controllers  300  to  302  for bandwidth control of a received packet and physical layer handling units  210  to  212  for transmitting/receiving a packet to/from a physical line. 
       FIG. 2  illustrates the details of the bandwidth controller  300  characteristic to the present invention. A bandwidth controller  300  is constituted of a queuing unit  400  to be described later, a buffer  310  for holding queues  320  to  336  each for storing a packet, and a transmission controller  330  for transmitting a packet from the queues  320  to  336  in accordance with a set bandwidth. The buffer  310  is equipped with a queue  320  for a default user, eight queues  321  to  328  for a user 1, and eight queues  329  to  336  for a user 2. 
     The queuing unit  400  is constituted of a header reference unit  410 , a default user table  420 , and a priority order mapping table  430 . The header reference unit  410  determines a queuing destination of a received packet, in accordance with information on the VLAN protocol ID  1030  of the Tag-VLAN packet  1000 , the user priority order  1041  and the VLAN ID  1043 . The default user table  420  manages queuing information of a packet other than the Tag-VLAN packet. The priority mapping table  430  manages a correspondence between priority order information and queue information in a Tag-VLAN packet. The default user table  420  holds default user information  421  and default queue information  422 , as illustrated in  FIG. 3 . The priority order mapping table  430  holds priority order information  431  and queue information  432  to be referred to the priority order information, as illustrated in  FIG. 4 . “1 to 8” held in the queue information  432  indicate a relative position of each queue provided for each user. For example, for the user 1, the queues  321  to  328  correspond to the queue information “1 to 8”. Therefore, a packet of the user 1 is stored in the queue  321  corresponding to the queue information “1” if the priority order information is “1”. This is applied also to the default user and user 2. A correspondence between priority order information and queue information can be changed flexibly by the settings of this table. 
     Next, by using the flow chart of  FIG. 7 , description will be made on an example of an operation of the header reference unit  410 . 
     The header reference unit  410  judges whether the VLAN protocol ID  1030  of a received Tag-VLAN packet  1000  is coincident with 0x8100 or 0x9100 representative of a Tag-VLAN packet (Step  2010 ). If coincident, by referring to the packet header information, a VLAN ID  1043  is used as the user information (Step  2020 ), and a user priority order  1041  is used as the priority order information (Step  2030 ). By using the priority order information as a search key, the priority order mapping table  430  is searched to acquire the queue information  432  corresponding to the priority order information  431  (Step  2040 ). The packet is queued in a queue identified by the acquired user information and queue information (Step  2050 ). 
     More specifically, it is assumed for example that “0x8100” is stored in the VLAN protocol ID of a received Tag-VLAN packet  1000 , information representative of “user 1” (e.g., simply “1”) is stored in the VLAN ID  1043 , and “2” is stored in the user priority order  1041 . In this case, since the packet is judged as a Tag-VLAN packet at Step  2010 , it is set that user information=“user 1” (or simply “1”) and priority order information=“2” (Steps  2020  and  2030 ). At Step  2040 , queue information “2” corresponding to the priority order information “2” is acquired at Step  2040 . At Step  2050  a queue  322  corresponding to the queue information “2” is selected from the queues  321  to  328  prepared for the user information “user 1”, and the packet is stored (queued) in the queue  322 . 
     If it is not judged as coincident at Step  2010 , by referring to the default user table  420 , the default user information  421  is used as the user information and the default queue information  422  is used as the queue information (Step  2060 ) to thereafter execute Step  2050 . In this case, since the default user table  420  is referred to, user information=“default user” and default queue information=“1” (Step  2060 ). At Step  2050 , a queue  320  corresponding to the default queue information “1” is selected from the queue  320  prepared for the user information “default user”, and the packet is stored (queued) in the queue  320 . 
     In this embodiment, a value itself stored in the user priority order  1041  in the packet header is used as the priority order information, and a value itself stored in the VLAN ID  1043  is used as the user information. Therefore, a queuing destination can be determined only by referring to the header information of a received packet. It is not necessary to determine a queuing destination of a packet by providing a QoS information management table and searching the table as in prior art. It is therefore unnecessary to provide the QoS information management table and set an entry to the QoS information management table. It is therefore possible to settle the issue that the number of entries becomes insufficient. Further, since the packet processor is not required to search the QoS information management table, a load on the packet processor can be reduced. Furthermore, since the QoS information management table itself with a large number of entries is not required, a memory capacity can be reduced and a packet relay apparatus capable of high speed queuing can be provided inexpensively. 
     In this embodiment, although the user priority order  1041  and VLAN ID  1043  in the packet header are adopted in order to determine the priority order information and user information, another field of the packet may be used to determine the priority order information and user information. This embodiment is particularly useful when the priority order information and user information is determined by one field in the packet. 
     Next, the command analysis/setting process program  50  will be described. 
       FIG. 20  illustrates an input format of a setting command for the hierarchical shaper function, in the command analysis/setting process program  50 . The setting command is constituted of: a command name “shaper”  5100  for the hierarchical shaper function; a sub-command name “auto-configuration”  5110 ; a parameter “&lt;scenario name&gt;”  5120  for selecting a scenario of bandwidth control information to be described later; and a parameter “&lt;user count&gt;”  5130  for determining the number of users per port. As illustrated in  FIG. 19 , the scenario of bandwidth control information is constituted of a minimum bandwidth  5040  and a maximum bandwidth  5050  for determining bandwidth control, a scheduling method  5060  for determining a packet output order, and the like. Scenarios  5010  to  5030  with these combinations are provided. 
     For example, in a scenario A  5010 , a maximum bandwidth  5050  of each user is set to 100 Mbps same as the line bandwidth, and a minimum bandwidth  5040  of each user is set to 1 Mbps obtained by equally dividing the line bandwidth by the input parameter user count  5130  (assuming 100 users). PQ (Priority Queuing) is set as the scheduling method  5060 . In accordance with the selected scenario, bandwidth information of the hierarchical shaper function is set to the transmission controllers  330  of all the bandwidth controllers  300  to  302 . In accordance with the set bandwidth information (minimum and maximum bandwidths of each user and the scheduling method), the bandwidth controller  330  reads a packet from each queue in the buffer  310  and sends the packet to the network to realize bandwidth control of two stages ensuring bandwidths of each user and a line. Description will be made on a bandwidth control operation, for example, when two users 1 and 2 input traffics of 100 Mbps. First, each user ensures a minimum bandwidth of 1 Mbps. Next, the total sum of the minimum bandwidths of 2 Mbps is subtracted from the line bandwidth of 100 Mbps to obtain 98 Mbps which is equally divided by two users input the traffics. Each user is therefore further supplied with a bandwidth of 49 Mbps. A bandwidth ultimately distributed to each of the users 1 and 2 is 1+49=50 Mbps. The transmission controller reads a packet from each queue by preserving the bandwidth distributed to each user. While the minimum bandwidth of each user and the line bandwidth are preserved, a bandwidth not used in the line, if any, is efficiently utilized in the range of the maximum bandwidth. This is the characteristic features of bandwidth control of two stages. Although the minimum bandwidth  5040  of each user is set to a value obtained by equally dividing the line bandwidth by the input number of users, this minimum bandwidth may be a predetermined value. 
     In accordance with the input number of users, a subject field of user information (VLAN ID) of the packet header information may be changed. For example, as shown in  FIG. 22 , if the number of users is power of 2, e.g., 512 per port, then the subject field is lower 8 bits, facilitating implementation to hardware. 
     According to the embodiment, by inputting one command, a predetermined scenario can be selected and one bandwidth control scheme can be applied to all users. It is not necessary to set bandwidth control information for each user as in prior art. The issue that the number of commands increases can be settled, and a command input setting time can be shortened. 
       FIG. 8  illustrates another example of the structure of a packet relay apparatus  3010  according to an embodiment. The packet relay apparatus  3010  is different from the packet relay apparatus  10  described with reference to  FIG. 1  in that a packet processor unit  3100  has a QoS information management table  3160  for storing a packet detection condition and QoS information including user information and queue information of a detected packet, and a QoS search unit  3150  for searching the QoS information management table  3160  by using header information of a received packet as a search key, to acquire QoS information. A relay processor  3120  stores a packet received from a corresponding one of network interfaces  3200  to  3202 , in a packet buffer  3110 , sends a search command to a route search unit  3130  and the QoS search unit  3150 , in accordance with the header information extracted from the packet, and transmits the packet to a port corresponding to the search result. Although the details will be described with reference to  FIG. 12 , bandwidth controllers  3300  to  3302  of the network interfaces  3200  to  3202  are provided further with a QoS reference mode of determining which of the search result by the QoS search unit  3105  and the packet header information is referred to as QoS information. 
       FIG. 9  illustrates an example of the QoS information management table  3160  to be searched by the QoS search unit  3150 . This table is constituted of a packet detection condition  3161  and QoS information. The packet detection condition is determined from packet header information such as a destination MAC address, a source MAC address, a VLAN number, and a user priority order. The QoS information indicates that the packet coincident width the packet detection condition is queued in the queue identified by which user information  3162  and queue information  3163 . 
     The QoS information is transmitted between the packet processors  3100  to  3101  and the network interfaces  3200  to  3202 , by affixing a control information header  3400  illustrated in  FIG. 10  to the head of a packet. As illustrated in  FIG. 11 , user information (control information)  3410  and queue information (control information)  3420  as the search result by the QoS search unit  3150  is written in the control information header  3400 . Namely, in the packet processors  3100  to  3101 , the route search unit  3130  searches a port to which a received packet is output, and the QoS search unit  3150  searches the QoS information. When the packet is transmitted to any one of the network interfaces  3200  to  3202  having a port to which the packet is transmitted, the control information header  3400  is added to the head of the packet, and the QoS information (user information and queue information) searched by the QoS search unit  3150  is stored in the control information header. 
       FIG. 12  is an example of a flow chart illustrating a queuing process by the header reference unit  410  of the bandwidth controllers  3300  to  3302 . The internal structure of each of the bandwidth controllers  3300  to  3302  is the same as that illustrated in  FIG. 2 . 
     Upon reception of a packet with the control information header  3400  from a corresponding one of the packet processors  3100  to  3101 , the header reference unit  410  judges whether the QoS reference mode of the bandwidth controller is packet header reference (Step  4010 ). If the mode is packet header reference, the queuing process A (Step  2000 ) in  FIG. 7  is executed (Step  4020 ). If the mode is not packet header reference, the control information header  3400  is referred to to set the user information (control information)  3410  as the user information and the queue information (control information)  3420  as the control information (Step  4030 ). The packet is queued in the queue identified by the obtained user information and queue information (Step  4040 ). 
     According to this embodiment, selecting one of the search result of the QoS information management table and the packet header information to determine the user information and queue information for identifying a queue in which a received packet is queued, can be performed in the apparatus unit basis so that the structure of the apparatus can be changed flexibly, matching the network requirements. 
     Still another embodiment of the present invention will be described. In this embodiment, although the structure of the packet relay apparatus is the same as that of the packet relay apparatus  3010  shown in  FIG. 8 , data management by the QoS information management table  3160  illustrated in  FIG. 9  is different as illustrated in  FIG. 13 . A QoS information management table  4100  is constituted of: a packet detection condition  4110  for detecting a packet; a user information reference mode  4120  of determining which of the packet header information and the search result by the QoS search unit  3150  is referred to as the user information; a queue information reference mode  4130  of determining which of the packet header information and the search result by the QoS search unit  3150  is referred to as the queue information; and a condition for instructing to queue the packet coincident with the packet detection condition into the packet identified by the use information  4140  and queue information  4150 . In this embodiment, the user information reference mode  4120 , queue information reference mode  4130 , user information  4140  and queue information  4150  are called collectively QoS information. 
     As illustrated in  FIG. 14 , a user information reference mode  4210 , a queue information reference mode  4220 , user information (control information)  4230  and queue information (control information)  4240  which are the search results by the QoS search unit  3150  are stored in the control information header for transferring QoS information between the packet processors  3100  to  3101  and the network interfaces  3200  to  3202 . 
       FIGS. 15 and 16  are an example of a flow chart illustrating a queuing process by the header reference unit of this embodiment. 
     Upon reception of a packet with a control information header  4200  from a corresponding one of the packet processors  3100  to  3101 , the header reference unit  410  judges whether one or both of the user information reference mode  4210  and queue information reference mode  4220  of the control information header  4200  indicate a packet header reference mode (Step  4510 ). If neither the user information reference mode  4210  nor the queue information reference mode  4220  indicates a header reference mode (N at Step  4510 ), by referring to the control information header  4200 , it is set that the user information (control information)  4230  is used as the user information and the queue information (control information)  4240  is used as the queue information (Step  4550 ). If it is judged at Step  4510  that at least one of the user information reference mode  4210  and the queue information reference mode  4220  indicates a header reference mode (Y at Step  4510 ), it is judged whether the VLAN protocol ID  1030  of a received Tag-VLAN packet  1000  is coincident with 0x8100 or 0x9100 indicating a Tag-VLAN packet (Step  4520 ). If not coincident, by referring to the default user table  420 , it is set that the default user information  421  is used as the user information and the default queue information  422  is used as the queue information (Step  4560 ). If it is judged coincident Step  4520 , a queuing process D (Step  4600 ) to be described later is executed (Step  4530 ). A packet is ultimately queued in the queue identified by the obtained user information and queue information (Step  4540 ). 
     In the queuing process D (Step  4600 ) illustrated in  FIG. 16 , it is judged whether the user information reference mode  4210  of the control information header  4200  indicates a packet header reference mode (Step  4610 ). If the mode does not indicate the packet header reference mode, the user information (control information)  4230  is used as the user information (Step  4670 ). If it is judged at Step  4610  that the mode indicates the packet reference mode, the VLAN ID  1043  in the packet header is used as the user information (Step  4620 ). It is judged next whether the queue information reference mode  4220  in the control information header  4200  indicates the packet header reference mode (Step  4630 ). If the mode does not indicate the packet header reference mode, the queue information (control information)  4240  is used as the priority order information (Step  4680 ). If it is judged at Step  4630  that the mode indicates the packet header reference mode, the user priority order  1041  in the packet header is used as the priority order information (Step  4640 ). The priority mapping table  430  is referred to by using the priority order information as a search key to acquire the queue information  432  corresponding to the priority order information  431  (Step  4650 ). 
     According to this embodiment, a queuing method can be changed with each packet. For example, a packet transmitted from an organization having a QoS policy definitely determining a priority order of, e.g., an application type is processed by referring to the priority order information in the packet header. A packet transmitted from an organization having no QoS policy is processed by using the QoS search unit. If there is the QoS policy, the apparatus can be set easily. The number of entries used in the QoS information management table can be suppressed. 
     The command analysis/setting process program  50  described with reference to  FIG. 20  allocates the same bandwidth control information of the hierarchical shaper function to all users. Special users capable of being set individually may be expanded as a parameter like the setting command illustrated in  FIG. 21 . With this command, requirements such as allocating a wider bandwidth to a special user can be satisfied. This setting command is constituted of: a command name “shaper”  5200  of the hierarchical shaper function; a sub-command name “auto-configuration”  5210 ; a parameter“&lt;scenario name&gt;”  5220  to be used for selecting a scenario of bandwidth control information; a parameter “&lt;user count&gt;”  5230  to be used for setting the number of users per port; and a parameter “&lt;special user count&gt;”  5240  for setting the number of special users per port. A command to be set individually for each special user is constituted of a command name “shaper user”  5300 - 5310 , a special user name “special user 1”  5320 , and setting information “setting information”  5330  of the hierarchical shaper function. 
     With this setting, it becomes possible to perform bandwidth control in accordance with the scenario designated by the “&lt;scenario name&gt;”  5220  for users (also called “ordinary users”) other than the special users, and in accordance with the “setting information”  5330  individually set for each special user. For example, a bandwidth left after the special users are given some bandwidth from a line bandwidth may be distributed to ordinary users. In this case, only a scheduling method  5060  of each scenario illustrated in  FIG. 19  is set beforehand, a minimum bandwidth of each ordinary user is set to a bandwidth left after the special users are given some bandwidth from a line bandwidth, and the minimum bandwidth of each ordinary user is set to a bandwidth obtained by dividing the maximum bandwidth by the number of ordinary users. The packet relay apparatus can use mixedly ordinary users to which the same bandwidth control policy is applied uniformly and special users to which a bandwidth and the like different from those of the ordinary users are assigned individually. Such bandwidth settings can be defined arbitrarily by the command analysis/setting process program  50 . 
     In the embodiments described above, a correspondence between the user information and priority order information has been described for the packet type of Tag-VLAN. The present invention is not limited to Tag-VLAN, but it is also applicable as illustrated in  FIG. 17  to Internet Protocol version 4 (IPv4)  3540 , Internet Protocol version 6 (IPv6)  3550 ,  3560  and Multi Protocol Label Switching (MPLS)  3570 . 
     A method of applying the present invention has been described for the hierarchical shaper function of two hierarchical layers. The present invention is also applicable to the case wherein the number of hierarchical layers to be subjected to bandwidth control is increased by logically dividing user information into three hierarchical layer  3700  or N hierarchical layers  3800  as illustrated in  FIG. 18 . 
     For example, for bandwidth control of three hierarchical layers, group information  3720  is stored in the first half of a user information field (VLAN ID  1043  for Tag-VLAN) of the packet header information, and user information  3710  is stored in the second half, each of the first and second halves being used as the user information of each queuing process illustrated in  FIGS. 7 ,  12 ,  15  and  16 . In the buffer  310 , queues are provided for each combination of the group information  3720  and user information  3710 , and a packet is queued in the queue identified by the group information  3720 , user information  3710  and queue information. It is assumed that 12 bits of the VLAN ID  1043  is halved to store the group information  3720  in the first half of 6 bits and store the user information  3710  in the second half of 6 bits. If the group information  3720  is “3” (“000011” in binary), the user information  3710  is “2” (“000010” in binary), and the queue information is “1” (“001” in binary), then a combined number of these binary bits “000011 000010 001” is 1553 (in decimal). This number is used as a queue number of a queue into which a packet is queued. In the number of hierarchical layers to be subjected to bandwidth control is N (N is an integer), the user information field of the packet header information is divided by (N−1), and each divided field is used for storing individual user information. The transmission controller allocates first a bandwidth to each user in the N-th hierarchical layer, sequentially allocates a bandwidth narrower than that of the N-th hierarchical layer, to each user in the (N−1)-th hierarchical layer, and finally allocates a bandwidth to each user in the second hierarchical layer. A packet is read from the corresponding queue while ensuring the finally allocated bandwidth to the second hierarchical layer. In this manner, the packet can be queued, independently from the number of hierarchical layers to be subjected to bandwidth control. 
     The present invention has been described above specifically in conjunction with the embodiments. The present invention is not limited to the embodiments, but it is clearly notified that various modifications are possible without departing from the gist of the present invention.