The present invention relates to home gateway (router) devices.
A home gateway (router) device may also be called a residential gateway device. Such devices are typically used to connect devices in a home to each other and to the Internet. Such gateway devices may combine a Digital Subscriber Line (DSL) modem or cable modem, a network switch, a router, and a wireless access point (AP). A home gateway device may be a router, a bridge or a brouter.
In a home gateway (router) device, it is desired to treat certain data streams (voice, video, etc.) with Quality of Service (QoS). Data streams (packets) may carry multimedia including audio, video, data or any other content. Typically, streams of such packets include an IEEE 802.1Q Virtual Local Area Network (VLAN) header containing an IEEE 802.1p priority field, whose value indicates the desired QoS treatment. However, some network operators desire QoS treatment without the trouble of defining and configuring VLANs. The IEEE 802.1Q specification allows for this by allocating VLAN ID=0 as ‘no VLAN’ or the ‘Null’ VLAN. Specifically, a VLAN tagged packet with VLAN ID (VID)=0 indicates that all but the tag's IEEE 802.1p priority field should be ignored. In IEEE 802.1Q, valid VLAN IDs range from 1 to 4094, and IEEE 802.1Q-compliant network protocol stacks permit only this range. However, some network switches, such as those commonly found within home gateway devices, do not fully comply with IEEE 802.1Q and may treat all VLAN-tagged packets, including those with VID=0, as true VLAN tagged packets. As a result, these Null VLAN packets may not be handled properly by the switch or by standard IEEE 802.1Q-compliant protocol stacks since the VLAN ID does not match the Default VID or other valid predefined VIDs. As a result, on ingress the switch may treat these packets as residing on a VLAN distinct from the Default VID, and/or the IEEE 802.1Q compliant protocol stack may drop these ‘invalid VLAN’ packets. On egress the switch may discard these ‘invalid VLAN’ packets or flood them to all local area network (LAN) ports. Any of these scenarios leads to undesired and unacceptable operation.
One possible solution is to ensure that the chosen switch hardware is fully IEEE 802.1Q compliant (does not treat VLAN VID=0 as a real VLAN.) If the selected hardware switch is not fully IEEE 802.1Q compliant, select a fully IEEE 802.1Q compliant switch for use in the home gateway. Of course, this approach may constrain the gateway vendor in terms finding a cost-effective silicon solution (based on hardware availability, pricing, etc.)
The present invention relates to home gateway devices. In particular, in the present invention a home gateway device sends and receives IEEE 802.1p-tagged packets. The IEEE 802.1p tagged packets are internally translated to and from packets having a valid VLAN ID so that IEEE 802.1Q non-compliant switch hardware can interoperate with IEEE 802.1Q-compliant protocol stacks.
In the present invention, IEEE 802.1p-only tagged streams (VLAN ID=0) are internally translated to a valid predefined VLAN ID so that the protocol stack treats the stream as if it was carried on a valid VLAN ID. When the protocol stack needs to transmit these stream packets back out through the switch, the predefined VLAN ID is translated back to VID=0 before being sent to the switch. The result is that the packets are handled with the proper QoS treatment, while permitting the use of IEEE 802.1Q non-compliant switch hardware.
A method and apparatus are described including setting a default virtual local area network identification number of a switch to 0, receiving a data packet from a local area network interface, applying a virtual local area network header with identification number 0, if the data packet is untagged, determining if a virtual local area network identification number in a header of the data packet is a first predefined value, translating the virtual local area network identification number to a second predefined value in the header of the data packet if the virtual local area network identification number is equal to the first predefined value and forwarding the data packet to a local area network protocol stack network interface. Also described are a method and apparatus including creating a table entry in a switch virtual local area network table for virtual local area network identification number 0, receiving a data packet from a local area network protocol stack network interface, determining if a virtual local area network identification number in a header of the data packet is a first predefined value, translating the virtual local area network identification number to a second predefined value in the header of the data packet if the virtual local area network identification number is equal to the first predefined value, forwarding the data packet to a host management port in the switch, performing a table look-up in the switch virtual local area network table to locate a correct local area network interface to which to forward the data packet and forwarding the data packet from the host management port of the switch to the correct local area network interface.
The present invention is best understood from the following detailed description when read in conjunction with the accompanying drawings. The drawings include the following figures briefly described below:
Typically a router, and thus, a home gateway device as used herein, has a control plane and a forwarding plane. The control plane usually includes static (pre-configured) and/or dynamically generated routing tables. The forwarding plane forwards packets between ingress and egress interfaces. Routers (home gateway devices) ensure that packets are forwarded to the correct network interface using information in the packet headers and routing tables.
In the present invention, the switch is initialized as follows:
In the present invention, when untagged or IEEE 802.1p tagged (VID=0) packets are received on a switch LAN port, they are forwarded to the host management port of the switch with a VLAN tag having VID=0. The host management port connects to the host processor LAN network driver (which executes on the host CPU). The host processor LAN network interface connects the LAN network driver to the LAN network (NW) protocol stack to send/receive packets to/from the host management port. The host CPU functionality includes a dual protocol stack—a wide area network (WAN) protocol stack and a LAN protocol stack. In the present invention, a translation layer is added to the LAN network driver to translate received packets with VID=0 to packets with a valid predefined IEEE 802.1Q protocol stack VID (typically, VID=1). Translation to a valid predefined VID (1 to 4094) ensures that these packets will be properly processed per the IEEE 802.1Q spec by the IEEE 802.1Q compliant network protocol stack. The LAN network driver then passes these translated packets to the LAN network protocol stack per normal operation. When the LAN protocol stack wishes to send an IEEE 802.1p tagged packet, it passes the packet (with valid predefined VLAN VID=1) to the LAN network driver. In this direction (transmit/egress) the LAN network driver translation layer translates predefined VID=1 back to VID=0 and sends the frame to the host management port. In the present invention the switch controller consults its VLAN table VID=0 entry to decide to which LAN port(s) the packet will be forwarded.
As a result of the present invention, the IEEE 802.1Q non-compliant switch operates in a fashion compatible with the IEEE 802.1Q protocol stack: On ingress, IEEE 802.1p-only tagged packets are not discarded by the switch or by the IEEE 802.1Q protocol stack, Additionally, untagged packets are treated as belonging to the Default VLAN (VID=0) in accordance with network operators' wishes to avoid multiple VLANs and their configuration. On egress, IEEE 802.1p-only tagged packets are not discarded by the switch or flooded to all LAN switch ports.
On the receive side of operations, initialization is required. Specifically, the default virtual local area network identification number of the switch is set to 0. A data packet is received by a switch from one of the local area network interfaces. If the data packet is untagged, then a virtual local area network header with identification number 0 is applied to the data packet by the switch. The data packet is examined by the local area network driver to determine if the virtual network local area network identification number in the header is a first predefined value. If the virtual network local area network identification number in the header is the first predefined value, then the virtual network local area network identification number is translated to a second predefined value by the local area network driver. The data packet is then forwarded to a local area network protocol stack network interface by the local area network driver.
On the transmit side of operations, initialization is required. Specifically, a table entry is created in a switch virtual local area network table for a virtual local area network identification number 0. A data packet is received by a host management port of the switch from a local area network protocol stack network interface. The local area network driver determines if a virtual local area network identification number in a header of the data packet is a first predefined value. If the virtual local area network identification number in the header of the data packet is the first predefined value, then the local area network driver translates the virtual local area network identification number in the header of the data packet to a second predefined value. The local area network driver then forwards the data packet to the host management port of the switch. The switch then performs a table lookup in the switch virtual local area network table to locate a correct local area network interface to which to forward the data packet. The switch then forwards the data packet to the correct local area network interface.
Four LAN interfaces/ports are shown. Each interface/port may contain MAC (media access control) and Physical Layer (PHY) logic to communicate directly with home devices, or may simply provide MAC layer logic for connection with home gateway PHY devices located external to the switch.
It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Preferably, the present invention is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof), which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device.
It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US11/52259 | 9/20/2011 | WO | 00 | 3/17/2014 |