The benefit of U.S. provisional patent application No.60/885,982 entitled "A METHOD AND APPARATUS FOR MULTI-LINK SUPPORT FOR NETWORK BASEDMANITYME AGEMENT", filed on 22.1.2007, is hereby incorporated by reference in its entirety.
Detailed Description
Systems and methods are provided to facilitate concurrent messaging in a network-based mobility management system. In one aspect, a method of communication is provided. The method comprises the following steps: a communication link is established with a network domain node through an access component and at least one other communication link established with the network domain node through at least one other access component is enabled. Further comprising initiating concurrent communication with the network domain node via the access means or the other access means.
Moreover, various aspects are described herein in connection with a terminal. A terminal can also be called a system, user device, subscriber unit, subscriber station, mobile, remote station, remote terminal, access terminal, user agent, or user equipment. The user equipment may be a cellular telephone, a cordless telephone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a PDA, a handheld device having wireless connection capability, a module within a terminal, a card (e.g., a PCMCIA card) that may be attached to or integrated within a host device, or other processing device connected to a wireless modem.
Furthermore, aspects of the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer or computing components to implement various aspects of the claimed subject matter. The term "article of manufacture" as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer-readable media may include, but are not limited to, magnetic storage devices (e.g., hard disk, floppy disk, magnetic strip …), optical disks (e.g., Compact Disk (CD), Digital Versatile Disk (DVD) …), smart cards, and flash memory devices (e.g., memory card, memory stick, key disk …). Further, it should be understood that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving voice mail or in accessing a network such as a cellular network. Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of what is described herein.
Referring now to fig. 1, a system 100 illustrates the principles of concurrent messaging in a communication environment. The network or domain 110 includes at least one domain node 120 that communicates with one or more access components 130, which may include interface points to the domain, e.g., access nodes, access routers, base stations, and so forth. The mobile device 140 attempts to establish one or more concurrent communication links 150 with the domain node 120 via the access component 130. For example, the mobile device 140 may attempt to form a first communication link via a first access component at 130, and after moving to another location, the mobile device forms a subsequent link, e.g., with a second access component at 130. As can be appreciated, a plurality of such communication links can be formed between the mobile device 140, the access component 130, and the domain node 120. As shown, policy component 160 provides rules or controls for supporting communication link 150. Quality of service (QoS) component 170, which may include one or more admission control decisions, is used to create message routes in system 100 that are related to a particular flow or application. Policy component 160 and QoS component 170 are described in more detail below with reference to fig. 2-4.
In one aspect, in a network-based mobility management system, sequence data may be used for message ordering to facilitate orderly communication within the domain 110. For example, during registration of a communication channel between the mobile device 140 and a domain node 120 (e.g., a Local Mobility Anchor (LMA)) in the domain 110, sequence information or data may be applied to the registration to facilitate ordering of messages in the domain 110 for the mobile device 140. For example, the sequence data 150 may be in the form of sequence numbers or timestamp information that may be assigned by the device 140 or a proxy node within the domain 110.
In one particular example, system 100 may use Proxy Mobile Internet Protocol (PMIP). Such mobility protocols are often used in network domains 110, which include nodes such as access nodes and Local Mobility Anchors (LMAs), which often use the Mobile IP protocol along with domain protocols to manage various devices within the domain 110, for example. One such domain protocol is known as the network-based local mobility management (NETLMM) protocol. In one aspect, PMIP and NETLMM may encounter out-of-order delivery of mobility management messages from different access components 130 to the domain node 120. If the messages arrive out of order at the domain node 120, the domain node will send traffic to the wrong access component 130. Thus, in one example, PMIP/NETLMM messages from the access component 130 are triggered by a communication link creation event as will be described in more detail with reference to fig. 2. This may take different forms, including some form of L2 connection request, such as Address Resolution Protocol (ARP), Neighbor Discovery (ND), Dynamic Host Configuration Protocol (DHCP), or other protocol. Other protocols that may be used by the system 100 include, for example, resource reservation protocol (RSVP), local RSVP, Next Generation Signaling (NSIS) protocol, and MARC communication protocol.
Note that the terminal or mobile device 140 may be, for example: such as an SD card, network card, wireless network card, computer (including laptop, desktop, personal digital assistant, PDA), mobile phone, smart phone or any other suitable terminal that can be used to access a network. The mobile device 140 accesses the network through the access component 130. In one example, the connection between the mobile device 140 and the access component 130 can be wireless in nature, where the access component can be a base station and the mobile device can be a wireless terminal. For example, the device 140 and the access component 130 may communicate via any suitable wireless protocol including, but not limited to, Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Frequency Division Multiple Access (FDMA), Orthogonal Frequency Division Multiplexing (OFDM), FLASH OFDM, Orthogonal Frequency Division Multiple Access (OFDMA), or any other suitable protocol.
Similar to the mobile device 140, the access component 130 can be an access node associated with a wired network or a wireless network. For this purpose, the access component 130 may be, for example, a router, a switch, or the like. The access component 130 may include one or more interfaces, such as a communication module, for communicating with other network nodes. Further, the access component 130 can be a base station (or wireless access point) in a cellular-type network, where the base station (or wireless access point) is used to provide wireless coverage to a plurality of users. Such a base station (or wireless access point) may be used to provide continuous coverage to one or more cellular telephones and/or other wireless terminals.
Referring now to fig. 2, an exemplary network access system 200 is illustrated that can form multiple concurrent communication links and facilitate message ordering. The system 200 includes a Local Mobility Anchor (LMA)210 in communication with a mobile device 230 through one or more access points 220 and an access component 224. System 200 uses signaling components and processing logic that enable the use of multiple concurrent links (or connections) in a network-based mobility management system. This may be accomplished by processing events (or triggers) corresponding to one link independently of the other links (e.g., when a new link is established, it does not necessarily indicate that the previous link was lost or dropped). When multiple links are supported concurrently, the use of the links to transmit traffic (e.g., forwarding packets and/or distributing various traffic flows) may be controlled by predetermined policies, explicitly signaled policies, or a combination thereof, which will be described in more detail below with reference to fig. 3.
In other aspects, a signaling component (which may be associated with the LMA210 or the access component 224) uses quality of service (QoS) signaling and/or admission control decisions to trigger the creation of a route in the network that is related to a particular flow/application. For example, when a mobile device owns multiple links to a network, QoS signaling (e.g., RSVP, local RSVP, NSIS, MARC, or others) may be used to request resources on a particular link. According to one aspect, the QoS reservation process (e.g., signaling and/or admission control associated with supporting QoS) triggers the creation of a flow-specific route that points to the link on which the reservation is made.
Referring now to fig. 3, an alternative system 300 illustrates concurrent messaging flows. Before starting, it is noted that the protocols and rules described with reference to fig. 3 may also be applied to the architecture described above in fig. 2. Similarly, the concepts described with reference to fig. 1 and 2 can also be applied to the system 300. In this example, the LMA 310 communicates with the mobile device 330 through one or more access components 320 (e.g., access routers). The system 300 illustrates how, in this example, the LMA 310 redirects some traffic to the AR2340 and some other traffic to the AR3350, and some other traffic to the AP4360, based on the protocols described herein.
The Local Mobility Agent (LMA)310 is a generic term used for mobility agents in various NetLMM schemes (or other network protocols). For example, the LMA 310 may be a modified Home Agent (HA). One NetLMM protocol proposal is based on mobile IP, in which case it is often referred to as proxy mobile IP (pmip). According to one aspect, the NetLMM protocol reacts to one or more types of triggers including, for example, link state triggers and QoS triggers. The link state trigger signal indicates the state of a given link. For example, a Link may become operational (Link-Up) or may become disconnected (Link-Down). The QoS trigger represents a reservation request from a mobile device or a network device on behalf of the mobile device. For example, the mobile device 330 may request that a particular type of quality of service be applied to a given flow.
Quality of service is often expressed in terms of Flow specs (Flow specs), which are typically a set of QoS-related primitives (e.g., minimum bandwidth, maximum allowed delay, etc.), and Filter specs (Filter specs), which are typically a set of packet classification criteria (e.g., source address, destination address, port number, etc.).
According to one aspect, NetLMM may react according to the following exemplary rules or policies:
when a link operation trigger is encountered, the Access Router (AR) registers the link with the LMA.
When a link-not-run trigger is encountered, the AR de-registers the link from the LMA.
When multiple links are simultaneously registered for the same mobile device at the LMA 310, the multiple links are handled as alternative links. In this case, the LMA 310 may apply a default/optional forwarding policy, which may involve sending some flows on one link and some on the other (flow/packet splitting), or the LMA sending one copy of the traffic to all available links (X-casting), or applying other defined policies.
When a particular QoS request is received for a given flow on one link, the AR performs flow-specific registration with the LMA 310. The LMA then sends traffic matching the flow to that particular link.
The AR performs de-registration associated with a particular flow if the QoS reservation for a given flow is deleted or expired.
If the QoS request indicates that the flow can be unicast or x-cast, then an appropriate registration can be performed, otherwise the LMA may use local policies on how to handle requests related to a particular flow over multiple links. Thus, if a flow is to be unicast to a mobile device, resources for the flow should be reserved on one link and not on the other link.
The quality of service request may include a request for a best effort application (best effort application). Best effort applications may also benefit from the QoS involved.
If the link creation signaling identifies other existing links, a Context Transfer (Context Transfer) component can be used to make changes around sometimes lengthy QoS reservation specifications (flow specification and/or filter specification). In this case, such reservations may be referenced using a handle (handle), such as a service class ID, reservation Id, flow Specification Id, filter Specification Id, or other appropriate ID negotiated during establishment of the reservation. In this case, an entity that wants to move a reservation from one link to another, e.g., mobile device 330, sends a QoS reservation with the appropriate ID to the new AR. The new AR at 320 then registers the corresponding flow with the LMA. A similar procedure may follow in order to release resources for the flow from the original AR. Note that although 6 access components are illustrated in system 300, more or less than 6 such components may be used.
Turning to fig. 4, an exemplary message flow diagram 400 is illustrated. The message flow diagram 400 represents only one of many possible messaging scenarios. In this example, two concurrent links are established, but it is understood that more than two links may be established with respective mobile devices 410. As shown, the mobile device 410 communicates with the LMA440 through Access Points (APs) 420 and 430. A link creation message is sent from the mobile device to AP 1420. A PMIP request 446 is then sent from the AP1420 to the LMA 440. At 450, a PMIP response is sent from the LMA440 to the AP 1420. At 452, a tunnel is created between the LMA440 and the AP 1420. Because the mobile device 410 has only one link with the AP1420, the tunnel 452 carries traffic for the mobile device 410. In a similar manner, an additional link is created 456 between the mobile device 410 and the AP 2430.
PMIP request 460 is sent to LMA440, and AP2430 receives PMIP response 462. At 466, the mobile device 410 generates a QoS request and transmits to the AP 2430. The QoS request 466 may identify a particular flow from the plurality of flows currently used by the mobile device 410 for which the requested QoS should be applied. The PMIP request 470 including the particular flow defined in the QoS request 466 is then sent to the LMA 440. At 472, notifications may be exchanged between AP1420 and AP2430 to inform AP1420 of redirection of a given flow via AP 2430. At 476, a PMIP response is sent to the AP 2430. At 480, a QoS response is transmitted to the mobile device 410. At 482 and 486, tunnels are created between the LMA440 and the AP1420 and AP2430, respectively. The tunnel 482 now carries all flows for the mobile device 410 except the one identified in the QoS request 466. The tunnel 486 now carries the flow identified in the QoS request 466.
Referring to fig. 5, a message flow diagram 500 illustrates exemplary messages and registrations depicted in fig. 4. In diagram 500, dashed lines represent optional messages that may be provided in any manner. The mobile device 502 creates an initial link 501 with the AP 2504. The AP2504 then enables the sequence number 508 with the Network Controller (NC)/mobility agent (PM) 510. Note that the NC and PM at 510 may be co-located, or may be separate, but intercommunicating processes. The AP2504 uses the sequence number 508 provided by the NC/PM 510 to perform PMIP registration with the LMA 514. Now, at 520, the LMA 514 forms a tunnel for the mobile device that points to the AP 2504.
At 530, the mobile device 502 sends a link measurement report (e.g., an SNR report) to the NC/PM 510. The NC/PM 510 determines that AP3540 is the preferred access point for the mobile device 502 and, at 534, sends a command to the mobile device 502 instructing it to move to AP 3540. NC/PM 510 also sends a new sequence number 550 to AP 3540. The mobile 502 creates a link 560 to the AP3540 and this time the AP3 performs PMIP registration using the new sequence number. The tunnel 570 for mobile 502 is now pointing to AP 3540. The sequence number may be a number or a timestamp or other incremented ID. The PMIP protocol is used as an exemplary implementation of NetLMM, which may be implemented with other message types between an access router (also referred to as a MAG) and the LMA 514. Another variation of this message exchange is that instead of PMIP, conventional MIP may be used for the NC/PM 510 node (which provides a mobile IP client) and the LMA (which provides a mobile IP home agent). The AP may optionally be a mobile IP foreign agent if desired.
Referring to fig. 6, a method 600 involving message ordering and registration is illustrated. While, for purposes of simplicity of explanation, the methodologies are shown and described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance with one or more embodiments, occur in different orders and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be utilized to implement a methodology in accordance with the claimed subject matter.
Proceeding to 602, the process 600 begins where, at 604, an initial registration is performed when the mobile device communicates with a domain node, such as a Local Mobility Anchor (LMA), via an access node. At 606, based on the registration, the device generates a sequence number that will be used during communication with the corresponding access node registered at 604. At 608, when the mobile device moves out of range of the previous access point and into range of another access point, a subsequent registration is performed with the LMA through the new access point. At 610, the mobile device assigns a new sequence number for the subsequent registration at 608. As described above, the sequence number may take the form of, for example, incrementing data, decrementing data, or time stamp data. Further, if another access point is encountered, another registration may be performed and another sequence number may be generated.
At 612, when the mobile device communicates with a given access point, it uses the corresponding sequence number. For example, if sequence number 1 is generated when registering through access point 1, sequence number 1 is used as part of the messaging protocol for further communications through access point 1. Similarly, if sequence number 2 is generated when registering with access point 2, the mobile device uses sequence number 2 as part of its messaging protocol for further communications through access point 2. In this way, message ordering can be achieved and effects such as node ping-pong are mitigated. As can be appreciated, more than two nodes may be registered, and additional access points may be provided with additional sequence numbers as needed.
Turning now to fig. 7 and 8 together, a system is provided that involves sequencing with respect to terminals, operator networks, access nodes, and their traffic flows. The system is represented as a series of interrelated functional blocks, which can represent functions implemented by a processor, software, hardware, firmware, or any suitable combination thereof.
And in particular to fig. 7, a system 700 facilitates communication between a mobile device and a plurality of communication links. System 700 includes a logical module 710 for receiving a plurality of link responses from a network domain and a logical module 720 for processing the link responses. The system 700 also includes a logic module 730 for communicating over a plurality of communication links based on the link responses.
Referring now to fig. 8, a system 800 facilitates enabling communications from a network domain. System 800 includes a logical module 810 for generating a plurality of link responses from a network domain and a logical module 820 for processing the link responses. The system 800 also includes a logic module 830 for communicating over a plurality of communication links based on the link responses.
Fig. 9 illustrates a communication device 900, which can be a wireless communication device, such as a wireless terminal. Additionally or alternatively, communications apparatus 900 can reside within a wired network. Communications apparatus 900 can include a memory 902 that can retain instructions for configuring such apparatus with respect to QoS data and sequence data for a terminal (and traffic flows associated therewith). Further, communications apparatus 900 can include a processor 904 that can execute instructions within memory 902 and/or instructions received from another network device, where the instructions can relate to configuring communications apparatus 900 or an associated communications apparatus.
The memory 900 retains instructions for receiving a profile (profile) associated with one or more services, wherein the profile can be associated with a home network element and can be modified via a visited network element, the profile being used to provide services to a roaming access terminal. In another aspect, a memory holds instructions for generating a profile associated with one or more services, where the profile can be associated with a home network component and can be modified via a service specification component. For example, the profile may be used to provide services to a roaming access terminal.
To provide additional context for one or more embodiments described herein, fig. 11 is provided to illustrate an exemplary communication system 1100 that includes a plurality of nodes interconnected by communication links. System 1100 may communicate information over wireless links using Orthogonal Frequency Division Multiplexed (OFDM) signals. However, other types of signals are also contemplated, such as Code Division Multiple Access (CDMA) signals or Time Division Multiple Access (TDMA) signals (as well as signals used in land-based networks). Nodes in the communication system 1100 exchange information using signals (e.g., messages) based on a communication protocol (e.g., Internet Protocol (IP)). The communication links of system 1100 may be implemented, for example, using wire, fiber optic cable, and/or wireless communication techniques. System 1100 includes a plurality of end nodes 1102-1112 that access the communication system 1100 through a plurality of access nodes 1114-1118. End node 1102-. The communication system 1100 also includes a plurality of other nodes 1120 and 1130 for providing interconnections or providing specific services or functions.
Communication system 1100 depicts a network 1160 that includes an access control node 1120, a mobility support node 1122, a policy control node 1124, and an application server node 1126, all of which are coupled to an intermediate network node 1128 by respective network links 1132 and 1138, respectively. In some embodiments, an access control node, such as a Remote Authentication Dial In User Service (RADIUS) or Diameter server, supports authentication, authorization and/or accounting for end nodes and/or services associated with end nodes. In some embodiments, mobility support node 1122, e.g., a Mobile IP home agent and/or context transfer server, supports mobility (e.g., handoff) of end nodes between access nodes, e.g., by redirecting traffic to/from the end node and/or transferring state associated with the end node between access nodes. In some embodiments, a policy control node 1124, such as a policy server or Policy Decision Point (PDP), supports policy authorization for service or application layer sessions. In some embodiments, an application server node 1126, such as a session initiation protocol server, streaming media server, or other application layer server, supports session signaling for services available to end nodes and/or provides services or content available to end nodes.
Intermediate network node 1128 in network 1160 provides interconnection to network nodes that are external from the perspective of network 1160 through network link 1134. Network link 1134 is connected to an intermediate network node 1130, which intermediate network node 1130 also provides connectivity to access nodes 1114, 1116 and 1118 through network link 1136 and 1140, respectively. Each access node 1114-. In the communication system 1100, each access node 1114 is depicted as providing access using wireless technology (e.g., a wireless access link) 1118. However, wired technologies may also be utilized for providing access. The radio coverage (e.g., communication cells 1154 and 1158 of each access node 1114 and 1118) is shown as a circle surrounding the respective access node.
Communication system 1100 may be used as a basis for explaining the various embodiments described herein. Alternative embodiments include various network topologies wherein the number and type of nodes (including network nodes, access nodes, end nodes, and various control, support, and server nodes), the number and type of links, and the interconnections between the various nodes may differ from communication system 1100. In addition, some of the functional entities described in communication system 1100 may be omitted or combined. The location and layout of these functional entities may also be changed.
Fig. 12 provides an illustration of an exemplary end node 1200, e.g., a wireless terminal. End node 1200 represents a device that may be used as any of end nodes 1102-1112 (fig. 11). End node 1200 includes a processor 1202, a wireless communication interface module 1204, a user input/output interface 1206, and memory 1208 coupled together by a bus 1210. Accordingly, the various components of end node 1200 can exchange information, signals and data via bus 1210. Components 1202 and 1208 of end node 1200 may be located within housing 1212.
Wireless communication interface module 1204 provides a mechanism by which the internal components of end node 1200 can send and receive signals to/from external devices and network nodes, e.g., access nodes. Wireless communication interface module 1204 includes a receiver module 1214, e.g., having a corresponding receive antenna 1216, and a transmitter module 1218, e.g., having a corresponding transmit antenna 1220, for coupling end node 1200 to other network nodes, e.g., via wireless communication channels.
End node 1200 also includes a user input device 1222 (e.g., a keypad) and a user output device 1224 (e.g., a display) coupled to bus 1210 by user input/output interface 1206. Thus, user input/output devices 1222 and 1224 can exchange information, signals and data with other components of end node 1200 through user input/output interface 1206 and bus 1210. User input/output interface 1206 and associated devices 1222 and 1224 provide some mechanisms by which a user can operate end node 1200 to accomplish various tasks. In particular, user input device 1222 and user output device 1224 provide functionality that allows a user to control end node 1200 and applications, e.g., modules, programs, routines and/or functions, that execute in memory 1208 of end node 1200.
Processor 1202, which is controlled by various modules (e.g., routines) included in memory 1208, controls operation of end node 1200 to perform various signaling and processing. The modules included in memory 1208 execute at startup or when called by other modules. Modules may exchange data, information, and signals when executed. Modules may also share data and information when executed. Memory 1208 of end node 1200 includes a control signaling module 1226, an application module 1228, and a traffic control module 1230, which further includes configuration information 1232 and various additional modules.
The control signaling module 1226 controls processing relating to: signals (e.g., messages) for controlling the operation and/or configuration of various aspects of end node 1200, including, for example, traffic control module 1230, as well as configuration information 1232 and various additional modules included. In some embodiments, control signaling module 1226 may include state information (e.g., parameters, state, and/or other information) relating to the operation of end node 1200 and/or one or more signaling protocols supported by the control signaling module 1226. In particular, control signaling module 1226 may include configuration information (e.g., end node identification information and/or parameter settings) as well as operational information (e.g., information regarding current processing state, state of pending message transactions, etc.).
The application module 1228 controls processing relating to: processing and communications for one or more applications supported by end node 1200. In some embodiments, the processing of application module 1228 may include tasks relating to: input/output information, manipulate information associated with the application, and/or receive or transmit signals (e.g., messages) associated with the application through user input/output interface 1206. In some embodiments, application module 1228 includes state information, such as parameters, states, and/or other information, relating to the operation of one or more applications supported by application module 1228. In particular, application module 1228 may include configuration information (e.g., end node identification information and/or parameter settings) and operational information (e.g., information regarding current processing state, state of pending responses, etc.). Applications supported by application module 1228 include, for example, voice over IP (VoIP), web browsing, streaming audio/video, instant messaging, file sharing, gaming, and so forth.
The traffic control module 1230 controls processing relating to: data information, e.g., messages, packets, and/or frames, is received and transmitted through the wireless communication interface module 1204. The example traffic control module 1230 includes configuration information 1232 as well as various additional modules for controlling various aspects of the QoS of packets and/or traffic flows (e.g., associated sequences of packets). In some embodiments, various additional modules are included to perform specific functions and operations as needed to support specific aspects of traffic control. Modules may be omitted and/or combined as needed depending on the functional requirements of the traffic control. Each additional module included in the traffic control module 1230 is described next.
Admission control module 1234 maintains information relating to resource utilization/availability and determines whether sufficient resources are available to support the QoS parameters desired to be associated with a particular traffic flow. Resource availability information maintained by admission control module 1234 includes, for example, packet and/or frame queuing capacity, scheduling capacity, and processing and storage capacity needed to support one or more traffic flows. Control signaling module 1226, application module 1228, and/or other modules included in end node 1200 may query admission control module 1234 to determine whether sufficient resources are available to support the new or modified traffic flow, where the admission control determination is based on the QoS parameters for the particular traffic flow and the QoS parameters defined in the profile. Configuration information 1232 may include configuration information (e.g., parameter settings) that affect the operation of admission control module 1234, e.g., an admission control threshold that indicates a percentage of resources that may be allocated before rejecting additional requests.
The uplink scheduler module 1236 controls processing relating to: transmission scheduling (e.g., ordering and/or timing) and transmission resource allocation (e.g., information coding rate, transmission time slots and/or transmission power) for data information (e.g., messages, packets and/or frames) to be transmitted (e.g., from end node 1200 to an access node) via wireless communication interface module 1204. Uplink scheduler module 1236 can schedule transmissions and allocate transmission resources based on QoS parameters associated with one or more traffic flows. In some embodiments, the scheduling and/or resource allocation operations performed by uplink scheduler module 1236 are in turn a function of channel conditions and other factors (e.g., power budget).
The uplink PHY/MAC module 1238 controls Physical (PHY) layer and Medium Access Control (MAC) layer processing relating to: data information, e.g., messages, packets, and/or frames, is sent (e.g., from end node 1200 to an access node) through wireless communication interface module 1204. For example, operation of uplink PHY/MAC module 1238 includes transmitting and receiving control information, such as signals or messages, to coordinate transmission of data information (e.g., messages, packets, and/or frames). Configuration information 1232 can include configuration information (e.g., parameter settings) that affect the operation of uplink PHY/MAC module 1238, e.g., a frequency, band, channel, spreading code, or hopping code for transmission, an identifier associated with end node 1200, a request dictionary that specifies the use of allocation request channels, and so forth.
Uplink LLC (arq) module 1240 controls Logical Link Control (LLC) layer processing relating to: data information, e.g., messages, packets, and/or frames, is sent (e.g., from end node 1200 to an access node) through wireless communication interface module 1204. Uplink llc (ARQ) module 1240 includes processing associated with automatic repeat request (ARQ) functionality, e.g., retransmission of lost packets or frames. Uplink LLC (arq) module 1240 may also include processing relating to adding LLC headers (headers) and/or trailers (trailer) to higher layer messages (e.g., packets), for example, to provide additional functionality, e.g., multi-protocol multiplexing/demultiplexing through a type field, or error detection through the use of a checksum field. Uplink LLC (ARQ) module 1240 can also perform fragmentation of higher layer messages (e.g., packets) into sub-portions (e.g., frames to be transmitted by uplink PHY/MAC module 1240). Configuration information 1232 may include configuration information that affects the operation of uplink llc (ARQ) module 1240, e.g., ARQ window size, maximum number of retransmissions, discard timer, etc.
Uplink queue management module 1242 maintains information and controls processing relating to: data information to be transmitted (e.g., from end node 1200 to an access node) through wireless communication interface module 1204 is stored. For example, uplink queue management module 1242 can control storing data information awaiting transmission and maintain state information related to the data information awaiting transmission on a per traffic flow basis, e.g., packets associated with each traffic flow can be stored in respective queues. For example, uplink queue management module 1242 supports various queue management techniques and/or functions (e.g., head drop, tail drop) and various Active Queue Management (AQM) mechanisms (e.g., Random Early Detection (RED)). Configuration information 1232 can include configuration information that affects the operation of uplink queue management module 1242, e.g., queue limits, drop policies, and/or AQM thresholds associated with one or more traffic flows.
Uplink classifier module 1244 controls processing relating to: data information is identified as belonging to a particular traffic flow prior to being transmitted (e.g., from end node 1200 to an access node) through wireless communication interface module 1204. In some embodiments, the uplink classifier module 1244 classifies messages, packets, and/or frames to be transmitted by utilizing the wireless communication interface module 1204 as belonging to one of a plurality of traffic flows based on an examination of one or more header and/or payload fields. The results of the classification by uplink classifier module 1244 may affect the processing of the classified data information by uplink queue management module 1242 as well as other modules within memory 1208. For example, the results may determine a particular queue to associate with a message, packet, and/or frame for storage and further affect subsequent processing (e.g., scheduling). The configuration information may include configuration information that affects the operation of uplink classifier module 1244, e.g., a set of one or more classification filter rules that specify criteria for associating data information (e.g., messages, packets, and/or frames) as belonging to one or more traffic flows.
Downlink PHY/MAC module 1246 controls PHY and MAC layer processing relating to: data information is received through the wireless communication interface module 1204. Operation of downlink PHY/MAC module 1246 may include transmitting and receiving control information to coordinate reception of data information. Configuration information 1204 may include configuration information that affects the operation of downlink PHY/MAC module 1246, e.g., the frequency, band, channel, spreading or hopping code used for reception, an identifier associated with end node 1200, etc.
Downlink LLC (ARQ) module 1248 controls LLC layer processing relating to: data information is received through the wireless communication interface module 1204. Downlink llc (ARQ) module 1248 includes processing associated with ARQ functionality, e.g., retransmission of lost packets or frames. For example, downlink LLC (ARQ) module 1248 can also include processing relating to an LLC header and/or trailer encapsulating higher layer messages, which provides additional functionality, e.g., multi-protocol multiplexing/demultiplexing through a type field, or error detection through a checksum field. Downlink LLC (ARQ) module 1248 can also perform reassembly of frames received by downlink PHY/MAC module 1246 into higher layer messages. Configuration information 1232 may include, and in some embodiments includes, configuration information (e.g., parameter settings) that affect the operation of downlink llc (ARQ) module 1248, e.g., ARQ window size, maximum number of retransmissions, discard timer, and so forth.
Fig. 13 provides a detailed illustration of an exemplary access node 1300 implemented in accordance with the present invention. The access node 1300 is a detailed representation of an apparatus that may be used as any of the access nodes 1114 and 1118 depicted in fig. 11. In the fig. 13 embodiment, access node 1300 includes a processor 1302, memory 1304, a network/internetwork interface module 1306 and a wireless communication interface module 1308 coupled together by a bus 1310. Accordingly, through bus 1310, the various components of access node 1300 may exchange information, signals, and data. The components 1302 and 1310 of the access node 1300 may be located within a housing 1312.
The network/internetwork interface module 1306 provides a mechanism by which the internal components of the access node 1300 can send and receive signals to/from external devices and network nodes. The network/internetwork interface module 1306 includes a receiver module 1314 and a transmitter module 1316 used to couple the node 1300 to other network nodes, e.g., through copper or fiber optic lines. Wireless communication interface module 1308 also provides a mechanism by which the internal components of access node 1300 can send signals to and receive signals from external devices and network nodes (e.g., end nodes). Wireless communication interface module 1308 includes, for example, a receiver module 1318 with a corresponding receive antenna 1320 and a transmitter module 1322 with a corresponding transmit antenna 1324. Wireless communication interface module 1308 is used to couple access node 1300 to other nodes, e.g., over wireless communication channels.
Processor 1302, under control of various modules (e.g., routines) included in memory 1304, controls operation of access node 1300 to perform various signaling and processing. The modules included in memory 1304 execute at startup or when called upon by other modules. Modules may exchange data, information, and signals when executed. Modules may also share data and information when executed. In the fig. 13 embodiment, memory 1304 of access node 1300 includes a control signaling module 1326 and a traffic control module 1328 that further includes configuration information 1330 and various additional modules 1332 and 1354.
The control signaling module 1326 controls processing relating to: signals (e.g., messages) for controlling the operation and/or configuration of various aspects of access node 1300, including, for example, traffic control module 1328 and configuration information 1330 and various additional modules 1335 and 1354 included therein, are received and transmitted. For example, control signaling module 1326 includes state information, e.g., parameters, status, and/or other information, related to the operation of access node 1300 and/or one or more signaling protocols supported by control signaling module 1326. In particular, control signaling module 1326 may include configuration information (e.g., access node identification information and/or parameter settings) and operational information (e.g., information regarding current processing state, state of pending message transactions, etc.).
The traffic control module 1328 controls processing relating to: data information, e.g., messages, packets, and/or frames, is received and transmitted through wireless communication interface module 1308. For example, the traffic control module may include configuration information 1330 and various additional modules 1332 and 1354 for controlling various aspects of the quality of service of packets and/or traffic flows (e.g., associated sequences of packets). In some embodiments, traffic control module 1328 includes state information, e.g., parameters, status, and/or other information, relating to the operation of one or more of access node 1300, traffic control module 1328, and/or various additional modules 1332 and 1354 included therein. Configuration information 1330 (e.g., parameter settings) determines, influences, and/or specifies the operation of traffic control module 1328 and/or the various additional modules 1332 and 1354 included therein. In some embodiments, various additional modules are included to perform specific functions and operations as needed to support specific aspects of traffic control. In various embodiments, modules may be omitted and/or combined as needed, depending on the functional requirements of the traffic control. Each additional module included in the traffic control module 1328 is described next.
Admission control module 1332 maintains information relating to resource utilization/availability and determines whether sufficient resources are available to support the quality of service requirements of a particular traffic flow. Resource availability information maintained by admission control module 1332 includes, for example, packet and/or frame queuing capacity, scheduling capacity, and processing and storage capacity required to support one or more traffic flows. Control signaling module 1326 and/or other modules included in access node 1300 can query admission control module 1332 to determine whether sufficient resources are available to support a new or modified traffic flow, where admission control determinations are based on quality of service requests and/or available resources for a particular traffic flow. Configuration information 1330 can include configuration information (e.g., parameter settings) that affect the operation of admission control module 1332, e.g., an admission control threshold that indicates a percentage of resources that can be allocated before rejecting additional requests.
Uplink scheduler module 1334 controls processing relating to: scheduling (e.g., ordering and/or timing) of transmissions and allocation of transmission resources (e.g., information coding rate, transmission time slots and/or transmission power) for data information (e.g., messages, packets and/or frames) to be received from one or more end nodes to an access node by way of radio interface module 1308. Uplink scheduler module 1334 can schedule transmissions and allocate transmission resources based on quality of service requirements and/or restrictions associated with one or more traffic flows and/or one or more end nodes. Configuration information 1330 can include configuration information that affects the operation of uplink scheduler module 1334, e.g., a priority, rate bound, latency bound, and/or sharing weight associated with one or more traffic flows and/or end nodes. In some embodiments, the scheduling and/or resource allocation operations performed by uplink scheduler module 1334 are, in turn, a function of channel conditions and other factors (e.g., power budget).
Downlink scheduler module 1336 controls processing relating to: scheduling (e.g., ordering and/or timing) of transmission of data information (e.g., messages, packets, and/or frames) and allocation of transmission resources (e.g., information coding rate, transmission time slots, and/or transmission power) to be sent from access node 1300 to one or more end nodes via radio interface module 1308. Downlink scheduler module 1336 may schedule transmissions and allocate transmission resources based on quality of service requirements and/or restrictions associated with one or more traffic flows and/or one or more end nodes. Configuration information 1330 can include configuration information that affects the operation of downlink scheduler module 1336, e.g., a priority, rate bound, latency bound, and/or sharing weight associated with one or more traffic flows and/or end nodes. In some embodiments, the scheduling and/or resource allocation operations performed by downlink scheduler module 1336 are in turn a function of channel conditions and other factors (e.g., power budget).
Uplink traffic conditioner module 1338 controls processing relating to: traffic conditioning (e.g., metering, marking, policing, etc.) for data information (e.g., messages, packets, and/or frames) received by wireless interface module 1308 (e.g., sent from an end node to access node 1300). Uplink traffic conditioner module 1338 can condition traffic, e.g., meter, mark, and/or police, based on quality of service requirements and restrictions associated with one or more traffic flows and/or one or more end nodes. Configuration information 1330 can include configuration information that affects the operation of uplink traffic conditioner module 1338, e.g., a rate bound and/or marker value associated with one or more traffic flows and/or end nodes.
The uplink classifier module 1340 controls processing relating to: data information (e.g., messages, packets, and/or frames) received by wireless interface module 1308 (e.g., sent from an end node to access node 1300) is identified as belonging to a particular traffic flow before being processed by uplink traffic conditioner module 1338. In some embodiments, uplink classifier module 1340 classifies messages, packets, and/or frames received through wireless communication interface module 1308 as belonging to one of a plurality of traffic flows based on examination of one or more header and/or payload fields. The classification results of uplink classifier module 1340 can affect the processing of the classified data information (e.g., messages, packets, and/or frames) by uplink conditioner module 1338, e.g., the results can determine the particular data structure or state machine to be associated with the message, packet, and/or frame, and further affect subsequent processing (e.g., metering, marking, and/or policing). Configuration information 1330 can include configuration information that affects the operation of uplink classifier module 1340, e.g., a set of one or more classification filter rules that specify criteria for associating data information (e.g., messages, packets, and/or frames) as belonging to one or more traffic flows.
Uplink LLC (arq) module 1342 controls LLC layer processing relating to: data information, e.g., packets and/or frames, is received (e.g., sent from an end node to access node 1300) by way of wireless communication interface module 1308. Uplink LLC (ARQ) module 1342 includes processing associated with ARQ capabilities, e.g., retransmission of lost packets or frames. In some embodiments, uplink LLC (ARQ) module 1342 further includes processing relating to an LLC header and/or trailer encapsulating higher layer messages (e.g., packets), which provides additional functionality, e.g., multi-protocol multiplexing/demultiplexing through a type field or error detection through a checksum field. Uplink LLC (ARQ) module 1342 can also perform reassembly of frames received by uplink PHY/MAC module 1344 into higher layer messages (e.g., packets). Configuration information 1330 can include configuration information that affects the operation of uplink LLC (ARQ) module 1342, e.g., an ARQ window size, a maximum number of retransmissions, a discard timer, and so on.
Uplink PHY/MAC module 1344 controls PHY layer and MAC layer processing relating to: data information, e.g., packets and/or frames, is received (e.g., sent from an end node to access node 1300) by way of wireless communication interface module 1308. In some embodiments, operation of uplink PHY/MAC module 1344 includes transmitting and receiving control information, such as signals or messages, to coordinate reception of data information (e.g., messages, packets, and/or frames). Configuration information 1330 can include configuration information that affects the operation of uplink PHY/MAC module 1344, e.g., a frequency, band, channel, spreading code, or hopping code to be used for reception, an identifier associated with access node 1300, etc.
Downlink classifier module 1346 controls processing relating to: data information (e.g., messages, packets, and/or frames) is identified as belonging to a particular traffic flow prior to being sent (e.g., from access node 1300 to an end node) by way of wireless communication interface module 1308. In some embodiments, downlink classifier module 1346 classifies messages, packets, and/or frames to be sent over wireless communication interface module 1308 as belonging to one of a plurality of traffic flows based on examination of one or more header and/or payload fields. The classification results of downlink classifier module 1346 may affect the processing of the classified data information (e.g., messages, packets, and/or frames) by downlink queue management module 1350 and other modules 1348, 1352, and 1354, e.g., the results may determine the particular queue to associate with the message, packet, and/or frame for storage, and may further affect subsequent processing, such as scheduling. Configuration information 1330 can include configuration information (e.g., parameter settings) that affect the operation of downlink classifier module 1346, e.g., a set of one or more classification filter rules that specify criteria for associating data information (e.g., messages, packets, and/or frames) as belonging to one or more traffic flows.
The downlink traffic conditioner module 1348 controls processing relating to: traffic conditioning (e.g., metering, marking, policing, etc.) for data information (e.g., messages, packets, and/or frames) to be sent through wireless interface module 1308 (e.g., from access node 1300 to an end node). Downlink traffic conditioner module 1348 can condition traffic, e.g., meter, mark, and/or police, based on quality of service requirements and constraints associated with one or more traffic flows and/or one or more end nodes. Configuration information 1330 can include configuration information that affects the operation of downlink traffic conditioner module 1348, e.g., a rate bound and/or a marking value associated with one or more traffic flows and/or end nodes.
Downlink queue management module 1350 maintains information and controls processing relating to: data information, e.g., messages, packets, and/or frames, to be sent by wireless communication interface module 1308, e.g., from access node 1300 to an end node, is stored. The downlink queue management module may control storing of data information awaiting transmission and maintain state information related to the data information awaiting transmission on a per traffic flow basis, e.g., packets associated with each traffic flow may be stored in respective queues. In some embodiments, downlink queue management module 1350 supports various queue management techniques and/or functions (e.g., decapitating) and various AQM mechanisms (e.g., RED). Configuration information 1330 can include configuration information that affects the operation of downlink queue management module 1350, e.g., queue limits, drop policies, and/or AQM thresholds associated with one or more traffic flows.
Downlink LLC (ARQ) module 1352 controls LLC layer processing relating to: data information (e.g., messages, packets, and/or frames) is sent (e.g., from access node 1300 to the end node) through wireless communication interface module 1308. Downlink llc (ARQ) module 1352 includes processing associated with ARQ functionality, e.g., retransmission of lost packets or frames. In some embodiments, downlink LLC (arq) module 1352 also includes processing relating to the addition of LLC headers and/or trailers to higher layer messages (e.g., packets) to provide additional functionality, e.g., to provide multi-protocol multiplexing/demultiplexing through a type field or to provide error detection through a checksum field. Downlink LLC (ARQ) module 1352 can also perform fragmentation of higher layer messages (e.g., packets) into sub-portions (e.g., frames to be transmitted by downlink PHY/MAC module 1354). Configuration information 1330 can include configuration information that affects the operation of downlink LLC (ARQ) module 1352, e.g., an ARQ window size, a maximum number of retransmissions, a discard timer, and so on.
Downlink PHY/MAC module 1354 controls PHY layer and MAC layer processing relating to: data information, e.g., messages, packets, and/or frames, is sent (e.g., from access node 1300 to the end node) through wireless communication interface module 1308. In some embodiments, operation of downlink PHY/MAC module 1354 includes transmitting and receiving control information, such as signals or messages, to coordinate transmission of data information (e.g., messages, packets, or frames). Configuration information 1330 can include configuration information (e.g., parameter settings) that affect the operation of downlink PHY/MAC module 1354, e.g., a frequency, band, channel, spreading code, or frequency hopping code to be used for transmission, an identifier associated with access node 1300, and so forth.
Fig. 14 illustrates exemplary signaling and traffic flows between various modules included in exemplary end node 1200 and exemplary access node 1300. The end node 1200 of fig. 14 and the access node 1300 of fig. 14 are simplified representations of the end node 1200 of fig. 12 and the access node 1300 of fig. 13, respectively. The example of fig. 14 shows that application module 1228 sends and receives data information, e.g., a traffic stream comprising a series of messages, packets, or frames. In the context of the exemplary system of fig. 11, end node 1200 of fig. 14 may be any one of end nodes 1102-1112 depicted in fig. 11, and application module 1228 included in end node 1200 of fig. 14 may exchange data information with another node in the system (e.g., another end node 1102-1112 or application server node 1126 as depicted in fig. 11). In fig. 14 and the following description, the node that exchanges data information with end node 1200 of fig. 14 is referred to as a correspondent node (correlating node).
Data information (e.g., traffic flow comprising a series of messages, packets, or frames) transmitted from an application module 1228 in end node 1200 to a corresponding node is illustrated by a series of arrows 1402-1408, processed by a series of modules 1238-1244 included in end node 1200, after which the data information is transmitted from end node 1200 to access node 1300 (e.g., by wireless communication interface module 1204). Subsequent receipt by access node 1300 (e.g., by wireless communication interface module 1308) of the data information (e.g., traffic flow comprising a series of messages, packets, or frames) sent from application module 1228 in end node 1200 to the corresponding node is illustrated by a series of arrows 1410, which are processed by a series of modules 1338 1344 included in access node 1300 before being forwarded (e.g., redirected to an intermediate node connected to the access node based on routing information) from access node 1300 to the corresponding node by network/internetwork interface module 1306.
Data information (e.g., a traffic flow comprising a series of messages, packets, or frames) sent from a correspondent node to application module 1228 in end node 1228 is illustrated by a series of arrows 1420-. Subsequent receipt by end node 1200 (e.g., by wireless communication interface module 1204) of the data information (e.g., a traffic flow comprising a series of messages, packets, or frames) sent from the corresponding node to application module 1228 in end node 1200 is illustrated by a series of arrows 1430-1434 for processing by a series of modules 1246 and 1248 included in end node 1200 before it is transmitted to application module 1228 in end node 1200.
In addition to describing the exchange of data information (e.g., traffic flows), fig. 14 also describes the exchange of control information (e.g., signaling flows and/or communication interfaces). In particular, the example of fig. 14 describes the exchange of control information between a control signaling module 1326 and a traffic control module 1328 included in the access node 1300. Similarly, the example of fig. 14 depicts the exchange of control information between a control signaling module 1226 and a traffic control module 1230 included in end node 1200. As shown, the exchange of control information between the modules in the access node 1300 and end node 1200 allows the respective control signaling modules 1226/1326 of the access node 1300/end node 1200 to affect (e.g., set up, modify and/or monitor) the configuration and/or operation of the various modules included in the respective traffic control modules 1328/1230 as needed to provide proper quality of service handling for data information (e.g., traffic flows) from/to the application modules 1228 in the end node 1200.
The exchange of control information (e.g., signaling flows and/or communications interfaces) is also shown a) between another node and control signaling module 1326 in access node 1300, b) between application module 1228 in end node 1200 and control signaling module 1226 in end node 1200, and c) between respective control signaling modules 1326/1226 in access node 1300 and end node 1200. The exchange of such control information (e.g., signaling flows and/or communications interfaces) enables the configuration and/or operation of traffic control module 1328/1230 in access node 1300 and end node 1200 to be affected by a) one or more additional nodes (e.g., access control node 1120 and/or application server node 1126), b) application module 1228 in end node 1200, or c) a combination of one or more additional nodes and application module 1228 in end node 1200.
What has been described above includes examples of one or more embodiments. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the aforementioned embodiments, but one of ordinary skill in the art may recognize that many further combinations and permutations of various embodiments are possible. Accordingly, the described embodiments are intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term "includes" is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term "comprising" as "comprising" is interpreted when employed as a transitional word in a claim.